defpred S1[ set , set ] means ex f being Function of ((FreeGen F3()) . $1),(the Sorts of F2() . $1) st
( $2 = f & ( for x being Element of F3() . $1 holds f . (root-tree [x,$1]) = F4(x,$1) ) );
A2:
for a being set st a in the carrier of F1() holds
ex y being set st S1[a,y]
proof
let a be
set ;
( a in the carrier of F1() implies ex y being set st S1[a,y] )
assume
a in the
carrier of
F1()
;
ex y being set st S1[a,y]
then reconsider s =
a as
SortSymbol of
F1() ;
defpred S2[
set ,
set ]
means ex
x being
Element of
F3()
. s st
( $1
= root-tree [x,s] & $2
= F4(
x,
s) );
A3:
(FreeGen F3()) . s = FreeGen s,
F3()
by MSAFREE:def 18;
A4:
for
y being
set st
y in (FreeGen F3()) . s holds
ex
z being
set st
(
z in the
Sorts of
F2()
. s &
S2[
y,
z] )
proof
let y be
set ;
( y in (FreeGen F3()) . s implies ex z being set st
( z in the Sorts of F2() . s & S2[y,z] ) )
assume
y in (FreeGen F3()) . s
;
ex z being set st
( z in the Sorts of F2() . s & S2[y,z] )
then consider a being
set such that A5:
a in F3()
. s
and A6:
y = root-tree [a,s]
by A3, MSAFREE:def 17;
reconsider a =
a as
Element of
F3()
. s by A5;
take z =
F4(
a,
s);
( z in the Sorts of F2() . s & S2[y,z] )
thus
z in the
Sorts of
F2()
. s
by A1;
S2[y,z]
take
a
;
( y = root-tree [a,s] & z = F4(a,s) )
thus
(
y = root-tree [a,s] &
z = F4(
a,
s) )
by A6;
verum
end;
consider f being
Function such that A7:
(
dom f = (FreeGen F3()) . s &
rng f c= the
Sorts of
F2()
. s )
and A8:
for
y being
set st
y in (FreeGen F3()) . s holds
S2[
y,
f . y]
from WELLORD2:sch 1(A4);
reconsider f =
f as
Function of
((FreeGen F3()) . a),
(the Sorts of F2() . a) by A7, FUNCT_2:4;
take y =
f;
S1[a,y]
take
f
;
( y = f & ( for x being Element of F3() . a holds f . (root-tree [x,a]) = F4(x,a) ) )
thus
y = f
;
for x being Element of F3() . a holds f . (root-tree [x,a]) = F4(x,a)
let x be
Element of
F3()
. a;
f . (root-tree [x,a]) = F4(x,a)
root-tree [x,s] in (FreeGen F3()) . s
by A3, MSAFREE:def 17;
then consider z being
Element of
F3()
. s such that A9:
root-tree [x,s] = root-tree [z,s]
and A10:
f . (root-tree [x,s]) = F4(
z,
s)
by A8;
[x,s] = [z,s]
by A9, TREES_4:4;
hence
f . (root-tree [x,a]) = F4(
x,
a)
by A10, ZFMISC_1:33;
verum
end;
consider h being Function such that
A11:
dom h = the carrier of F1()
and
A12:
for a being set st a in the carrier of F1() holds
S1[a,h . a]
from CLASSES1:sch 1(A2);
reconsider h = h as ManySortedSet of the carrier of F1() by A11, PARTFUN1:def 4, RELAT_1:def 18;
h is ManySortedFunction of FreeGen F3(),the Sorts of F2()
then reconsider h = h as ManySortedFunction of FreeGen F3(),the Sorts of F2() ;
consider H being ManySortedFunction of (FreeMSA F3()),F2() such that
A13:
H is_homomorphism FreeMSA F3(),F2()
and
A14:
H || (FreeGen F3()) = h
by MSAFREE:def 5;
take
H
; ( H is_homomorphism FreeMSA F3(),F2() & ( for s being SortSymbol of F1()
for x being Element of F3() . s holds (H . s) . (root-tree [x,s]) = F4(x,s) ) )
thus
H is_homomorphism FreeMSA F3(),F2()
by A13; for s being SortSymbol of F1()
for x being Element of F3() . s holds (H . s) . (root-tree [x,s]) = F4(x,s)
let s be SortSymbol of F1(); for x being Element of F3() . s holds (H . s) . (root-tree [x,s]) = F4(x,s)
let x be Element of F3() . s; (H . s) . (root-tree [x,s]) = F4(x,s)
A15:
ex f being Function of ((FreeGen F3()) . s),(the Sorts of F2() . s) st
( h . s = f & ( for x being Element of F3() . s holds f . (root-tree [x,s]) = F4(x,s) ) )
by A12;
reconsider t = root-tree [x,s] as Term of F1(),F3() by MSATERM:4;
(FreeGen F3()) . s = FreeGen s,F3()
by MSAFREE:def 18;
then A16:
t in (FreeGen F3()) . s
by MSAFREE:def 17;
h . s = (H . s) | ((FreeGen F3()) . s)
by A14, MSAFREE:def 1;
then
(H . s) . (root-tree [x,s]) = (h . s) . (root-tree [x,s])
by A16, FUNCT_1:72;
hence
(H . s) . (root-tree [x,s]) = F4(x,s)
by A15; verum