例えば,次のような例を考えてみます.ここでは + は Real についてのみ定義されているとします.
reserve A,B for Real;
C,D for Nat;
L:C=A+B;
......
D=A by...;
then C=D+B by L;
A,B が Real,C が Nat のときに,C=A+B と
D=A が証明されたとします.ここで D=A という式を C=A+B に代入して,C=D+B by L とするとるとエラーになります.どうしてかというと,これは代入できるはずですが,D と B は mode が違うわけです.+ という演算子は Real に対してのみ定義されているのであって,Nat については定義されていないわけです.ですから,unknown functor というエラーになります.
このエラーは変数 D のmodeを拡張することにより解決することができます.Nat である D を,Real でもあることがいえればいいわけです.