set f = F1();
set G = F2();
set D = F3();
deffunc H3( Symbol of F2(), FinSequence) -> Element of F3() = F5($1,(pr1 (roots $2)),(pr2 (roots $2)));
Union F1() c= FinTrees [:the carrier of F2(),F3():]
proof
let u be set ; :: according to TARSKI:def 3 :: thesis: ( not u in Union F1() or u in FinTrees [:the carrier of F2(),F3():] )
assume u in Union F1() ; :: thesis: u in FinTrees [:the carrier of F2(),F3():]
then consider k being set such that
A4: ( k in NAT & u in F1() . k ) by A1, CARD_5:10;
defpred S1[ Element of NAT ] means for u being set st u in F1() . $1 holds
u in FinTrees [:the carrier of F2(),F3():];
A5: S1[ 0 ]
proof
let u be set ; :: thesis: ( u in F1() . 0 implies u in FinTrees [:the carrier of F2(),F3():] )
assume u in F1() . 0 ; :: thesis: u in FinTrees [:the carrier of F2(),F3():]
then ex t being Symbol of F2() ex d being Element of F3() st
( u = root-tree [t,d] & ( ( t in Terminals F2() & d = F4(t) ) or ( t ==> {} & d = F5(t,{} ,{} ) ) ) ) by A2;
hence u in FinTrees [:the carrier of F2(),F3():] ; :: thesis: verum
end;
A6: now
let n be Element of NAT ; :: thesis: ( S1[n] implies S1[n + 1] )
assume A7: S1[n] ; :: thesis: S1[n + 1]
thus S1[n + 1] :: thesis: verum
proof
let u be set ; :: thesis: ( u in F1() . (n + 1) implies u in FinTrees [:the carrier of F2(),F3():] )
assume u in F1() . (n + 1) ; :: thesis: u in FinTrees [:the carrier of F2(),F3():]
then u in (F1() . n) \/ { ([o,H3(o,p)] -tree p) where o is Symbol of F2(), p is Element of (F1() . n) * : ex q being FinSequence of FinTrees [:the carrier of F2(),F3():] st
( p = q & o ==> pr1 (roots q) )
}
by A3;
then A8: ( u in F1() . n or u in { ([o,H3(o,p)] -tree p) where o is Symbol of F2(), p is Element of (F1() . n) * : ex q being FinSequence of FinTrees [:the carrier of F2(),F3():] st
( p = q & o ==> pr1 (roots q) )
}
) by XBOOLE_0:def 3;
assume A9: not u in FinTrees [:the carrier of F2(),F3():] ; :: thesis: contradiction
then consider o being Symbol of F2(), p being Element of (F1() . n) * such that
A10: ( u = [o,H3(o,p)] -tree p & ex q being FinSequence of FinTrees [:the carrier of F2(),F3():] st
( p = q & o ==> pr1 (roots q) ) ) by A7, A8;
reconsider p = p as FinSequence of FinTrees [:the carrier of F2(),F3():] by A10;
u = [o,H3(o,p)] -tree p by A10;
hence contradiction by A9; :: thesis: verum
end;
end;
for n being Element of NAT holds S1[n] from NAT_1:sch 1(A5, A6);
hence u in FinTrees [:the carrier of F2(),F3():] by A4; :: thesis: verum
end;
then reconsider X = Union F1() as Subset of (FinTrees [:the carrier of F2(),F3():]) ;
take X ; :: thesis: ( X = Union F1() & ( for d being Symbol of F2() st d in Terminals F2() holds
root-tree [d,F4(d)] in X ) & ( for o being Symbol of F2()
for p being FinSequence of X st o ==> pr1 (roots p) holds
[o,F5(o,(pr1 (roots p)),(pr2 (roots p)))] -tree p in X ) & ( for F being Subset of (FinTrees [:the carrier of F2(),F3():]) st ( for d being Symbol of F2() st d in Terminals F2() holds
root-tree [d,F4(d)] in F ) & ( for o being Symbol of F2()
for p being FinSequence of F st o ==> pr1 (roots p) holds
[o,F5(o,(pr1 (roots p)),(pr2 (roots p)))] -tree p in F ) holds
X c= F ) )

thus X = Union F1() ; :: thesis: ( ( for d being Symbol of F2() st d in Terminals F2() holds
root-tree [d,F4(d)] in X ) & ( for o being Symbol of F2()
for p being FinSequence of X st o ==> pr1 (roots p) holds
[o,F5(o,(pr1 (roots p)),(pr2 (roots p)))] -tree p in X ) & ( for F being Subset of (FinTrees [:the carrier of F2(),F3():]) st ( for d being Symbol of F2() st d in Terminals F2() holds
root-tree [d,F4(d)] in F ) & ( for o being Symbol of F2()
for p being FinSequence of F st o ==> pr1 (roots p) holds
[o,F5(o,(pr1 (roots p)),(pr2 (roots p)))] -tree p in F ) holds
X c= F ) )

hereby :: thesis: ( ( for o being Symbol of F2()
for p being FinSequence of X st o ==> pr1 (roots p) holds
[o,F5(o,(pr1 (roots p)),(pr2 (roots p)))] -tree p in X ) & ( for F being Subset of (FinTrees [:the carrier of F2(),F3():]) st ( for d being Symbol of F2() st d in Terminals F2() holds
root-tree [d,F4(d)] in F ) & ( for o being Symbol of F2()
for p being FinSequence of F st o ==> pr1 (roots p) holds
[o,F5(o,(pr1 (roots p)),(pr2 (roots p)))] -tree p in F ) holds
X c= F ) )
let d be Symbol of F2(); :: thesis: ( d in Terminals F2() implies root-tree [d,F4(d)] in X )
assume d in Terminals F2() ; :: thesis: root-tree [d,F4(d)] in X
then root-tree [d,F4(d)] in F1() . 0 by A2;
hence root-tree [d,F4(d)] in X by A1, CARD_5:10; :: thesis: verum
end;
hereby :: thesis: for F being Subset of (FinTrees [:the carrier of F2(),F3():]) st ( for d being Symbol of F2() st d in Terminals F2() holds
root-tree [d,F4(d)] in F ) & ( for o being Symbol of F2()
for p being FinSequence of F st o ==> pr1 (roots p) holds
[o,F5(o,(pr1 (roots p)),(pr2 (roots p)))] -tree p in F ) holds
X c= F
let o be Symbol of F2(); :: thesis: for p being FinSequence of X st o ==> pr1 (roots p) holds
[o,F5(o,(pr1 (roots p)),(pr2 (roots p)))] -tree p in X

let p be FinSequence of X; :: thesis: ( o ==> pr1 (roots p) implies [o,F5(o,(pr1 (roots p)),(pr2 (roots p)))] -tree p in X )
assume A11: o ==> pr1 (roots p) ; :: thesis: [o,F5(o,(pr1 (roots p)),(pr2 (roots p)))] -tree p in X
set s = pr1 (roots p);
set v = pr2 (roots p);
A12: dom p = Seg (len p) by FINSEQ_1:def 3;
defpred S1[ set , set ] means p . $1 in F1() . $2;
A13: for x being Nat st x in Seg (len p) holds
ex n being Element of NAT st S1[x,n]
proof
let x be Nat; :: thesis: ( x in Seg (len p) implies ex n being Element of NAT st S1[x,n] )
assume x in Seg (len p) ; :: thesis: ex n being Element of NAT st S1[x,n]
then ( p . x in rng p & rng p c= X ) by A12, FINSEQ_1:def 4, FUNCT_1:def 5;
then ex n being set st
( n in NAT & p . x in F1() . n ) by A1, CARD_5:10;
hence ex n being Element of NAT st S1[x,n] ; :: thesis: verum
end;
consider pn being FinSequence of NAT such that
A14: ( dom pn = Seg (len p) & ( for k being Nat st k in Seg (len p) holds
S1[k,pn . k] ) ) from FINSEQ_1:sch 5(A13);
A15: now
defpred S2[ Element of NAT , Element of NAT ] means $1 >= $2;
assume rng pn <> {} ; :: thesis: ex n being Element of NAT st rng p c= F1() . n
then A16: ( rng pn is finite & rng pn <> {} & rng pn c= NAT ) by FINSEQ_1:def 4;
A17: for x, y being Element of NAT holds
( S2[x,y] or S2[y,x] ) ;
A18: for x, y, z being Element of NAT st S2[x,y] & S2[y,z] holds
S2[x,z] by XXREAL_0:2;
consider n being Element of NAT such that
A19: ( n in rng pn & ( for y being Element of NAT st y in rng pn holds
S2[n,y] ) ) from CQC_SIM1:sch 4(A16, A17, A18);
take n = n; :: thesis: rng p c= F1() . n
thus rng p c= F1() . n :: thesis: verum
proof
let t be set ; :: according to TARSKI:def 3 :: thesis: ( not t in rng p or t in F1() . n )
assume t in rng p ; :: thesis: t in F1() . n
then consider k being set such that
A20: ( k in dom p & t = p . k ) by FUNCT_1:def 5;
reconsider k = k as Element of NAT by A20;
A21: pn . k in rng pn by A12, A14, A20, FUNCT_1:def 5;
then reconsider pnk = pn . k as Element of NAT by A16;
consider s being Nat such that
A22: n = pnk + s by A19, A21, NAT_1:10;
reconsider s = s as Element of NAT by ORDINAL1:def 13;
deffunc H4( set , set ) -> set = { ([o1,F5(o1,(pr1 (roots p1)),(pr2 (roots p1)))] -tree p1) where o1 is Symbol of F2(), p1 is Element of (F1() . $1) * : ex q being FinSequence of FinTrees [:the carrier of F2(),F3():] st
( p1 = q & o1 ==> pr1 (roots q) )
}
;
A24: for n being Element of NAT holds F1() . n c= F1() . (n + 1)
proof
let n be Element of NAT ; :: thesis: F1() . n c= F1() . (n + 1)
F1() . (n + 1) = (F1() . n) \/ H4(n,F1() . n) by A3;
hence F1() . n c= F1() . (n + 1) by XBOOLE_1:7; :: thesis: verum
end;
A25: F1() . pnk c= F1() . n by A22, A24, MEASURE2:22, NAT_1:11;
t in F1() . (pn . k) by A12, A14, A20;
hence t in F1() . n by A25; :: thesis: verum
end;
end;
now
assume rng pn = {} ; :: thesis: rng p c= F1() . 0
then pn = {} ;
then p = {} by A14;
then rng p = {} ;
hence rng p c= F1() . 0 by XBOOLE_1:2; :: thesis: verum
end;
then consider n being Element of NAT such that
A27: rng p c= F1() . n by A15;
( X = union (rng F1()) & F1() . n in rng F1() ) by A1, CARD_3:def 4, FUNCT_1:def 5;
then F1() . n c= X by ZFMISC_1:92;
then reconsider fn = F1() . n as Subset of (FinTrees [:the carrier of F2(),F3():]) by XBOOLE_1:1;
reconsider q = p as FinSequence of fn by A27, FINSEQ_1:def 4;
reconsider q' = q as Element of fn * by FINSEQ_1:def 11;
[o,F5(o,(pr1 (roots p)),(pr2 (roots p)))] -tree q' in { ([oo,H3(oo,pp)] -tree pp) where oo is Symbol of F2(), pp is Element of fn * : ex q being FinSequence of FinTrees [:the carrier of F2(),F3():] st
( pp = q & oo ==> pr1 (roots q) )
}
by A11;
then [o,F5(o,(pr1 (roots p)),(pr2 (roots p)))] -tree q' in (F1() . n) \/ { ([oo,H3(oo,pp)] -tree pp) where oo is Symbol of F2(), pp is Element of fn * : ex q being FinSequence of FinTrees [:the carrier of F2(),F3():] st
( pp = q & oo ==> pr1 (roots q) )
}
by XBOOLE_0:def 3;
then [o,F5(o,(pr1 (roots p)),(pr2 (roots p)))] -tree q' in F1() . (n + 1) by A3;
hence [o,F5(o,(pr1 (roots p)),(pr2 (roots p)))] -tree p in X by A1, CARD_5:10; :: thesis: verum
end;
let F be Subset of (FinTrees [:the carrier of F2(),F3():]); :: thesis: ( ( for d being Symbol of F2() st d in Terminals F2() holds
root-tree [d,F4(d)] in F ) & ( for o being Symbol of F2()
for p being FinSequence of F st o ==> pr1 (roots p) holds
[o,F5(o,(pr1 (roots p)),(pr2 (roots p)))] -tree p in F ) implies X c= F )

assume A28: ( ( for d being Symbol of F2() st d in Terminals F2() holds
root-tree [d,F4(d)] in F ) & ( for o being Symbol of F2()
for p being FinSequence of F st o ==> pr1 (roots p) holds
[o,H3(o,p)] -tree p in F ) ) ; :: thesis: X c= F
defpred S1[ Element of NAT ] means F1() . $1 c= F;
A29: S1[ 0 ]
proof
let x be set ; :: according to TARSKI:def 3 :: thesis: ( not x in F1() . 0 or x in F )
reconsider p = <*> F as FinSequence of F ;
assume x in F1() . 0 ; :: thesis: x in F
then consider t being Symbol of F2(), d being Element of F3() such that
A30: ( x = root-tree [t,d] & ( ( t in Terminals F2() & d = F4(t) ) or ( t ==> pr1 (roots p) & d = H3(t,p) ) ) ) by A2, Th3, Th7;
[t,d] -tree p = root-tree [t,d] by TREES_4:20;
hence x in F by A28, A30; :: thesis: verum
end;
A31: now
let n be Element of NAT ; :: thesis: ( S1[n] implies S1[n + 1] )
assume A32: S1[n] ; :: thesis: S1[n + 1]
thus S1[n + 1] :: thesis: verum
proof
let x be set ; :: according to TARSKI:def 3 :: thesis: ( not x in F1() . (n + 1) or x in F )
assume A33: ( x in F1() . (n + 1) & not x in F ) ; :: thesis: contradiction
then x in (F1() . n) \/ { ([oo,H3(oo,pp)] -tree pp) where oo is Symbol of F2(), pp is Element of (F1() . n) * : ex q being FinSequence of FinTrees [:the carrier of F2(),F3():] st
( pp = q & oo ==> pr1 (roots q) )
}
by A3;
then ( x in F1() . n or x in { ([oo,H3(oo,pp)] -tree pp) where oo is Symbol of F2(), pp is Element of (F1() . n) * : ex q being FinSequence of FinTrees [:the carrier of F2(),F3():] st
( pp = q & oo ==> pr1 (roots q) )
}
) by XBOOLE_0:def 3;
then consider o being Symbol of F2(), p being Element of (F1() . n) * such that
A34: ( x = [o,H3(o,p)] -tree p & ex q being FinSequence of FinTrees [:the carrier of F2(),F3():] st
( p = q & o ==> pr1 (roots q) ) ) by A32, A33;
rng p c= F1() . n by FINSEQ_1:def 4;
then rng p c= F by A32, XBOOLE_1:1;
then reconsider p = p as FinSequence of F by FINSEQ_1:def 4;
o ==> pr1 (roots p) by A34;
hence contradiction by A28, A33, A34; :: thesis: verum
end;
end;
A35: for n being Element of NAT holds S1[n] from NAT_1:sch 1(A29, A31);
thus X c= F :: thesis: verum
proof
let x be set ; :: according to TARSKI:def 3 :: thesis: ( not x in X or x in F )
assume x in X ; :: thesis: x in F
then consider n being set such that
A36: ( n in NAT & x in F1() . n ) by A1, CARD_5:10;
F1() . n c= F by A35, A36;
hence x in F by A36; :: thesis: verum
end;