let C be initialized standardized ConstructorSignature; for t being expression of C holds
( t is pure expression of C, a_Type C iff ( (t . {}) `1 in Constructors & ((t . {}) `1) `1 = a_Type ) )
set X = MSVars C;
set V = (MSVars C) \/ ( the carrier of C --> {0});
let t be expression of C; ( t is pure expression of C, a_Type C iff ( (t . {}) `1 in Constructors & ((t . {}) `1) `1 = a_Type ) )
consider A being MSSubset of (FreeMSA ((MSVars C) \/ ( the carrier of C --> {0}))) such that
A1:
( Free (C,(MSVars C)) = GenMSAlg A & A = (Reverse ((MSVars C) \/ ( the carrier of C --> {0}))) "" (MSVars C) )
by MSAFREE3:def 2;
the Sorts of (Free (C,(MSVars C))) is MSSubset of (FreeMSA ((MSVars C) \/ ( the carrier of C --> {0})))
by A1, MSUALG_2:def 10;
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 A2:
the Sorts of (Free (C,(MSVars C))) . (a_Type C) c= the Sorts of (FreeMSA ((MSVars C) \/ ( the carrier of C --> {0}))) . (a_Type C)
by PBOOLE:def 5;
per cases
( ( (t . {}) `1 in Vars & (t . {}) `2 = a_Term & t is quasi-term of C ) or ( (t . {}) `2 = the carrier of C & (t . {}) `1 in Constructors & (t . {}) `1 in the carrier' of C ) or (t . {}) `1 = * or (t . {}) `1 = non_op )
by Th50;
suppose that B1:
(t . {}) `2 = the
carrier of
C
and B2:
(t . {}) `1 in Constructors
and B3:
(t . {}) `1 in the
carrier' of
C
;
( t is pure expression of C, a_Type C iff ( (t . {}) `1 in Constructors & ((t . {}) `1) `1 = a_Type ) )reconsider o =
(t . {}) `1 as
OperSymbol of
C by B3;
reconsider tt =
t as
Term of
C,
((MSVars C) \/ ( the carrier of C --> {0})) by MSAFREE3:9;
not
o in {*,non_op}
by B2, ABCMIZ_1:39, XBOOLE_0:3;
then
(
o <> * &
o <> non_op )
by TARSKI:def 2;
then
o is
constructor
by ABCMIZ_1:def 11;
then B4:
o `1 = the_result_sort_of o
by StandardizedDef;
B7:
t . {} = [o,((t . {}) `2)]
by Lem5;
then B5:
the_sort_of tt = the_result_sort_of o
by B1, MSATERM:17;
assume
(t . {}) `1 in Constructors
;
( not ((t . {}) `1) `1 = a_Type or t is pure expression of C, a_Type C )assume
((t . {}) `1) `1 = a_Type
;
t is pure expression of C, a_Type Cthen reconsider t =
t as
expression of
C,
a_Type C by B1, B7, Th46, B4;
t is
pure
proof
given a being
expression of
C,
an_Adj C,
q being
expression of
C,
a_Type C such that B9:
t = (ast C) term (
a,
q)
;
ABCMIZ_1:def 41 contradiction
t = [*, the carrier of C] -tree <*a,q*>
by B9, ABCMIZ_1:46;
then
t . {} = [*, the carrier of C]
by TREES_4:def 4;
then
(t . {}) `1 = *
by MCART_1:7;
then
(t . {}) `1 in {*,non_op}
by TARSKI:def 2;
hence
contradiction
by B2, XBOOLE_0:3, ABCMIZ_1:39;
verum
end; hence
t is
pure expression of
C,
a_Type C
;
verum end; suppose Z0:
(t . {}) `1 = *
;
( t is pure expression of C, a_Type C iff ( (t . {}) `1 in Constructors & ((t . {}) `1) `1 = a_Type ) )then
(t . {}) `1 in {*,non_op}
by TARSKI:def 2;
then Z2:
not
(t . {}) `1 in Constructors
by XBOOLE_0:3, ABCMIZ_1:39;
consider a being
expression of
C,
an_Adj C,
q being
expression of
C,
a_Type C such that Z1:
t = [*,3] -tree (
a,
q)
by Z0, Th52;
t =
[*,3] -tree <*a,q*>
by Z1, TREES_4:def 6
.=
[*, the carrier of C] -tree <*a,q*>
by ABCMIZ_1:def 9, YELLOW11:1
.=
(ast C) term (
a,
q)
by ABCMIZ_1:46
;
hence
(
t is
pure expression of
C,
a_Type C iff (
(t . {}) `1 in Constructors &
((t . {}) `1) `1 = a_Type ) )
by Z2, ABCMIZ_1:def 41;
verum end; suppose Z0:
(t . {}) `1 = non_op
;
( t is pure expression of C, a_Type C iff ( (t . {}) `1 in Constructors & ((t . {}) `1) `1 = a_Type ) )then
(t . {}) `1 in {*,non_op}
by TARSKI:def 2;
then Z2:
not
(t . {}) `1 in Constructors
by XBOOLE_0:3, ABCMIZ_1:39;
consider a being
expression of
C,
an_Adj C such that Z1:
t = [non_op,3] -tree a
by Z0, Th53;
t = [non_op,3] -tree <*a*>
by Z1, TREES_4:def 5;
then
t . {} = [non_op,3]
by TREES_4:def 4;
then
(t . {}) `1 = non_op
by MCART_1:7;
then
t is
expression of
C,
an_Adj C
by Th47;
hence
(
t is
pure expression of
C,
a_Type C iff (
(t . {}) `1 in Constructors &
((t . {}) `1) `1 = a_Type ) )
by Z2, ABCMIZ_1:48;
verum end; end;