let o be OperSymbol of C; :: according to ABCMIZ_1:def 57 :: thesis: for p, q being FinSequence of (Free C,(MSVars C)) st [o,the carrier of C] -tree p in Union the Sorts of (Free C,(MSVars C)) & q = (f # ) * p holds
(f # ) . ([o,the carrier of C] -tree p) = [o,the carrier of C] -tree q
let p, q be FinSequence of (Free C,(MSVars C)); :: thesis: ( [o,the carrier of C] -tree p in Union the Sorts of (Free C,(MSVars C)) & q = (f # ) * p implies (f # ) . ([o,the carrier of C] -tree p) = [o,the carrier of C] -tree q )
assume 00:
( [o,the carrier of C] -tree p in Union the Sorts of (Free C,(MSVars C)) & q = (f # ) * p )
; :: thesis: (f # ) . ([o,the carrier of C] -tree p) = [o,the carrier of C] -tree q
0D:
dom (f # ) = Union the Sorts of (Free C,(MSVars C))
by FUNCT_2:def 1;
reconsider t = [o,the carrier of C] -tree p as expression of C by 00;
0R:
t . {} = [o,the carrier of C]
by TREES_4:def 4;
set V = (MSVars C) \/ (the carrier of C --> {0 });
per cases
( o is constructor or o = * or o = non_op )
by CNSTR2;
suppose X0:
o = *
;
:: thesis: (f # ) . ([o,the carrier of C] -tree p) = [o,the carrier of C] -tree qthen consider a being
expression of
C,
an_Adj C,
s being
expression of
C,
a_Type C such that X1:
t = (ast C) term a,
s
by 0R, ThAst2;
a in the
Sorts of
(Free C,(MSVars C)) . (an_Adj C)
by ELEMENT;
then
(f # ) . a in the
Sorts of
(Free C,(MSVars C)) . (an_Adj C)
by ThTr;
then reconsider fa =
(f # ) . a as
expression of
C,
an_Adj C by Th42;
s in the
Sorts of
(Free C,(MSVars C)) . (a_Type C)
by ELEMENT;
then
(f # ) . s in the
Sorts of
(Free C,(MSVars C)) . (a_Type C)
by ThTr;
then reconsider fs =
(f # ) . s as
expression of
C,
a_Type C by Th42;
t = [(ast C),the carrier of C] -tree <*a,s*>
by X1, ThAst;
then
(
p = <*a,s*> &
a in dom (f # ) &
s in dom (f # ) )
by 0D, TREES_4:15;
then
q = <*fa,fs*>
by 00, FINSEQ_2:145;
then
[o,the carrier of C] -tree q = (ast C) term fa,
fs
by X0, ThAst;
hence
(f # ) . ([o,the carrier of C] -tree p) = [o,the carrier of C] -tree q
by X1, SUBST;
:: thesis: verum end; suppose X0:
o = non_op
;
:: thesis: (f # ) . ([o,the carrier of C] -tree p) = [o,the carrier of C] -tree qthen consider a being
expression of
C,
an_Adj C such that X1:
t = (non_op C) term a
by 0R, ThNon2;
a in the
Sorts of
(Free C,(MSVars C)) . (an_Adj C)
by ELEMENT;
then
(f # ) . a in the
Sorts of
(Free C,(MSVars C)) . (an_Adj C)
by ThTr;
then reconsider fa =
(f # ) . a as
expression of
C,
an_Adj C by Th42;
t = [(non_op C),the carrier of C] -tree <*a*>
by X1, ThNon;
then
(
p = <*a*> &
a in dom (f # ) )
by 0D, TREES_4:15;
then
q = <*fa*>
by 00, BAGORDER:3;
then
[o,the carrier of C] -tree q = (non_op C) term fa
by X0, ThNon;
hence
(f # ) . ([o,the carrier of C] -tree p) = [o,the carrier of C] -tree q
by X1, SUBST;
:: thesis: verum end; end;