let C be 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)
let e be expression of C; ( (e . {}) `1 in Constructors implies e in the Sorts of (Free (C,(MSVars C))) . (((e . {}) `1) `1) )
assume A1:
(e . {}) `1 in Constructors
; e in the Sorts of (Free (C,(MSVars C))) . (((e . {}) `1) `1)
per cases
( 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 Th11;
suppose
ex
o being
OperSymbol of
C st
(
e . {} = [o, the carrier of C] & (
o in Constructors or
o = * or
o = non_op ) )
;
e in the Sorts of (Free (C,(MSVars C))) . (((e . {}) `1) `1)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,
((MSVars C) (\/) ( 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= MSVars C
by MSAFREE3:27;
then
e in { t1 where t1 is Term of C,((MSVars C) (\/) ( the carrier of C --> {0})) : ( the_sort_of t1 = the_sort_of t & variables_in t1 c= MSVars C ) }
;
then
e in (C -Terms ((MSVars C),((MSVars C) (\/) ( 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;
verum end; end;