let C be initialized standardized ConstructorSignature; :: thesis: for e being expression of C holds
( ex x being Element of Vars st
( e = x -term C & e . {} = [x,a_Term ] ) or ex o being OperSymbol of C st
( e . {} = [o,the carrier of C] & ( o in Constructors or o = * or o = non_op ) ) )

let e be expression of C; :: thesis: ( ex x being Element of Vars st
( e = x -term C & e . {} = [x,a_Term ] ) or ex o being OperSymbol of C st
( e . {} = [o,the carrier of C] & ( o in Constructors or o = * or o = non_op ) ) )

set X = MSVars C;
set Y = (MSVars C) \/ (the carrier of C --> {0 });
reconsider q = e as Term of C,((MSVars C) \/ (the carrier of C --> {0 })) by MSAFREE3:9;
per cases ( ex s being SortSymbol of C ex v being Element of ((MSVars C) \/ (the carrier of C --> {0 })) . s st q . {} = [v,s] or q . {} in [:the carrier' of C,{the carrier of C}:] ) by MSATERM:2;
suppose ex s being SortSymbol of C ex v being Element of ((MSVars C) \/ (the carrier of C --> {0 })) . s st q . {} = [v,s] ; :: thesis: ( ex x being Element of Vars st
( e = x -term C & e . {} = [x,a_Term ] ) or ex o being OperSymbol of C st
( e . {} = [o,the carrier of C] & ( o in Constructors or o = * or o = non_op ) ) )

then consider s being SortSymbol of C, v being Element of ((MSVars C) \/ (the carrier of C --> {0 })) . s such that
A1: q . {} = [v,s] ;
consider z being set such that
A4: ( z in dom the Sorts of (Free C,(MSVars C)) & e in the Sorts of (Free C,(MSVars C)) . z ) by CARD_5:10;
reconsider z = z as SortSymbol of C by A4, PARTFUN1:def 4;
the carrier of C = {a_Type ,an_Adj ,a_Term } by ABCMIZ_1:def 9;
then A5: ( z = a_Type or z = an_Adj or z = a_Term ) by ENUMSET1:def 1;
A3: q = root-tree [v,s] by A1, MSATERM:5;
then A6: the_sort_of q = s by MSATERM:14;
A7: the Sorts of (Free C,(MSVars C)) = C -Terms (MSVars C),((MSVars C) \/ (the carrier of C --> {0 })) by MSAFREE3:25;
then the Sorts of (Free C,(MSVars C)) c= the Sorts of (FreeMSA ((MSVars C) \/ (the carrier of C --> {0 }))) by PBOOLE:def 23;
then ( the Sorts of (Free C,(MSVars C)) . z c= the Sorts of (FreeMSA ((MSVars C) \/ (the carrier of C --> {0 }))) . z & FreeMSA ((MSVars C) \/ (the carrier of C --> {0 })) = MSAlgebra(# (FreeSort ((MSVars C) \/ (the carrier of C --> {0 }))),(FreeOper ((MSVars C) \/ (the carrier of C --> {0 }))) #) ) by PBOOLE:def 5;
then ( q in the Sorts of (FreeMSA ((MSVars C) \/ (the carrier of C --> {0 }))) . z & the Sorts of (FreeMSA ((MSVars C) \/ (the carrier of C --> {0 }))) . z = FreeSort ((MSVars C) \/ (the carrier of C --> {0 })),z ) by A4, MSAFREE:def 13;
then A8: s = z by A6, MSATERM:def 5;
then v in (MSVars C) . z by A3, A4, A7, MSAFREE3:19;
then A9: ( v in Vars & z = a_Term ) by A5, ABCMIZ_1:def 25;
then reconsider x = v as Element of Vars ;
e = x -term C by A1, MSATERM:5, A8, A9;
hence ( ex x being Element of Vars st
( e = x -term C & e . {} = [x,a_Term ] ) or ex o being OperSymbol of C st
( e . {} = [o,the carrier of C] & ( o in Constructors or o = * or o = non_op ) ) ) by A1, A8, A9; :: thesis: verum
end;
suppose q . {} in [:the carrier' of C,{the carrier of C}:] ; :: thesis: ( ex x being Element of Vars st
( e = x -term C & e . {} = [x,a_Term ] ) or 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, s being set such that
B1: ( o in the carrier' of C & s in {the carrier of C} & q . {} = [o,s] ) by ZFMISC_1:def 2;
reconsider o = o as OperSymbol of C by B1;
( o is constructor iff ( o <> * & o <> non_op ) ) by ABCMIZ_1:def 11;
then ( s = the carrier of C & ( o in Constructors or o = * or o = non_op ) ) by B1, TARSKI:def 1, StandardizedDef;
hence ( ex x being Element of Vars st
( e = x -term C & e . {} = [x,a_Term ] ) or ex o being OperSymbol of C st
( e . {} = [o,the carrier of C] & ( o in Constructors or o = * or o = non_op ) ) ) by B1; :: thesis: verum
end;
end;