reserve i,j for Nat;

theorem
 for C being initialized standardized ConstructorSignature
 for e being expression of C
  st (e.{})`1 in Constructors
  holds e in (the Sorts of Free(C, MSVars C)).(e.{})`1`1
  proof let C be initialized standardized ConstructorSignature;
   let e be expression of C;
   assume
A1: (e.{})`1 in Constructors;
   per cases by Th11;
   suppose
     ex x being Element of Vars st e = x-term C & e.{} = [x, a_Term]; then
    consider x being Element of Vars such that
A2:  e = x-term C & e.{} = [x, a_Term];
     (e.{})`1 = x by A2;
    hence thesis by A1,Th8,XBOOLE_0:3;
   end;
   suppose
     ex o being OperSymbol of C st e.{} = [o, the carrier of C] &
     ( o in Constructors or o = * or o = non_op ); then
    consider o being OperSymbol of C such that
A3:  e.{} = [o, the carrier of C];
A4:  (e.{})`1 = o by A3;
     * in {*, non_op} & non_op in {*, non_op} by TARSKI:def 2; then
     o <> * & o <> non_op by A1,A4,ABCMIZ_1:39,XBOOLE_0:3; then
A5:  o is constructor;
    set X = MSVars C;
    reconsider t = e as Term of C, X (\/) ((the carrier of C) --> {0})
      by MSAFREE3:8;
A6:  the_sort_of t = the_result_sort_of o by A3,MSATERM:17
         .= o`1 by A5,Def1;
     variables_in t c= X by MSAFREE3:27; then
     e in {t1 where t1 is Term of C, X (\/) ((the carrier of C) --> {0}):
           the_sort_of t1 = the_sort_of t & variables_in t1 c= X}; then
     e in C-Terms(X, X (\/) ((the carrier of C)-->{0})).the_sort_of t
       by MSAFREE3:def 5;
    hence e in (the Sorts of Free(C, MSVars C)).(e.{})`1`1
      by A4,A6,MSAFREE3:23;
   end;
  end;
