reserve i,j for Nat;

theorem Th13:
 for C being initialized standardized ConstructorSignature
 for e being expression of C
  holds
    ( (e.{})`1 = * implies e is expression of C, a_Type C ) &
    ( (e.{})`1 = non_op implies e is expression of C, an_Adj C )
  proof let C be initialized standardized ConstructorSignature;
   let e be expression of C;
   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
A1:  e = x-term C & e.{} = [x, a_Term];
    thus thesis by A1;
   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
A2:  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
A3:  e in (the Sorts of Free(C, X)).the_sort_of t by MSAFREE3:24;
A4:  the_result_sort_of non_op C = an_Adj C &
     the_result_sort_of ast C = a_Type C by ABCMIZ_1:38;
A5:  (e.{})`1 = o & non_op C = non_op & ast C = * by A2;
     the_sort_of t = the_result_sort_of o by A2,MSATERM:17;
    hence thesis by A3,A4,A5,ABCMIZ_1:def 28;
   end;
  end;
