let C be initialized ConstructorSignature; :: thesis: for t being set holds
( t in Terminals (DTConMSA (MSVars C)) iff ex x being variable st t = [x,(a_Term C)] )
let t be set ; :: thesis: ( t in Terminals (DTConMSA (MSVars C)) iff ex x being variable st t = [x,(a_Term C)] )
set X = MSVars C;
A0:
Terminals (DTConMSA (MSVars C)) = Union (coprod (MSVars C))
by ThTNT;
A1:
dom (MSVars C) = the carrier of C
by PARTFUN1:def 4;
A2:
the carrier of C = {a_Type ,an_Adj ,a_Term }
by CONSTRSIGN;
A3:
( (MSVars C) . a_Type = {} & (MSVars C) . an_Adj = {} & (MSVars C) . a_Term = Vars )
by MSVARS;
hereby :: thesis: ( ex x being variable st t = [x,(a_Term C)] implies t in Terminals (DTConMSA (MSVars C)) )
assume
t in Terminals (DTConMSA (MSVars C))
;
:: thesis: ex x being variable st t = [x,(a_Term C)]then A4:
(
t `2 in dom (MSVars C) &
t `1 in (MSVars C) . (t `2 ) &
t = [(t `1 ),(t `2 )] )
by A0, CARD_3:33;
then A5:
(
t `2 = a_Type or
t `2 = an_Adj or
t `2 = a_Term )
by A1, A2, ENUMSET1:def 1;
then reconsider x =
t `1 as
variable by A3, A4;
take x =
x;
:: thesis: t = [x,(a_Term C)]thus
t = [x,(a_Term C)]
by A3, A4, A5;
:: thesis: verum
end;
given x being variable such that A6:
t = [x,(a_Term C)]
; :: thesis: t in Terminals (DTConMSA (MSVars C))
( t `1 = x & t `2 = a_Term )
by A6, MCART_1:7;
hence
t in Terminals (DTConMSA (MSVars C))
by A0, A1, A3, A6, CARD_3:33; :: thesis: verum