reserve i,j for Nat;

theorem Th12:
 for C being initialized ConstructorSignature for e being expression of C
 for o being OperSymbol of C st e.{} = [o, the carrier of C]
  holds
    e is expression of C, the_result_sort_of o
  proof let C be initialized ConstructorSignature;
   let e be expression of C;
   let o be OperSymbol of C such that
A1: e.{} = [o, the carrier of C];
   set X = MSVars C, Y = X (\/) ((the carrier of C) --> {0});
   reconsider t = e as Term of C, Y by MSAFREE3:8;
    variables_in t c= X by MSAFREE3:27; then
    e in {t1 where t1 is Term of C, Y:
          the_sort_of t1 = the_sort_of t & variables_in t1 c= X}; then
    e in C-Terms(X,Y).the_sort_of t by MSAFREE3:def 5; then
A2: e in (the Sorts of Free(C, X)).the_sort_of t by MSAFREE3:24;
    the_sort_of t = the_result_sort_of o by A1,MSATERM:17;
   hence thesis by A2,ABCMIZ_1:def 28;
  end;
