let X1, X2 be non empty constituted-DTrees set ; ( ( for t being Element of X1 holds t is finite ) & ( for t being Element of X2 holds t is finite ) implies for C being set holds C -ImmediateSubtrees (X1 \/ X2) = (C -ImmediateSubtrees X1) +* (C -ImmediateSubtrees X2) )
assume that
A1:
for t being Element of X1 holds t is finite
and
A2:
for t being Element of X2 holds t is finite
; for C being set holds C -ImmediateSubtrees (X1 \/ X2) = (C -ImmediateSubtrees X1) +* (C -ImmediateSubtrees X2)
let C be set ; C -ImmediateSubtrees (X1 \/ X2) = (C -ImmediateSubtrees X1) +* (C -ImmediateSubtrees X2)
set X = X1 \/ X2;
set f = C -ImmediateSubtrees (X1 \/ X2);
set f1 = C -ImmediateSubtrees X1;
set f2 = C -ImmediateSubtrees X2;
A4:
dom (C -ImmediateSubtrees (X1 \/ X2)) = C -Subtrees (X1 \/ X2)
by FUNCT_2:def 1;
A5:
dom (C -ImmediateSubtrees X1) = C -Subtrees X1
by FUNCT_2:def 1;
A6:
dom (C -ImmediateSubtrees X2) = C -Subtrees X2
by FUNCT_2:def 1;
A7:
C -Subtrees (X1 \/ X2) = (C -Subtrees X1) \/ (C -Subtrees X2)
by Th8;
now for x being object st x in (dom (C -ImmediateSubtrees X1)) \/ (dom (C -ImmediateSubtrees X2)) holds
( ( x in dom (C -ImmediateSubtrees X2) implies (C -ImmediateSubtrees (X1 \/ X2)) . x = (C -ImmediateSubtrees X2) . x ) & ( not x in dom (C -ImmediateSubtrees X2) implies (C -ImmediateSubtrees (X1 \/ X2)) . x = (C -ImmediateSubtrees X1) . x ) )let x be
object ;
( x in (dom (C -ImmediateSubtrees X1)) \/ (dom (C -ImmediateSubtrees X2)) implies ( ( x in dom (C -ImmediateSubtrees X2) implies (C -ImmediateSubtrees (X1 \/ X2)) . x = (C -ImmediateSubtrees X2) . x ) & ( not x in dom (C -ImmediateSubtrees X2) implies (C -ImmediateSubtrees (X1 \/ X2)) . x = (C -ImmediateSubtrees X1) . x ) ) )assume A8:
x in (dom (C -ImmediateSubtrees X1)) \/ (dom (C -ImmediateSubtrees X2))
;
( ( x in dom (C -ImmediateSubtrees X2) implies (C -ImmediateSubtrees (X1 \/ X2)) . x = (C -ImmediateSubtrees X2) . x ) & ( not x in dom (C -ImmediateSubtrees X2) implies (C -ImmediateSubtrees (X1 \/ X2)) . x = (C -ImmediateSubtrees X1) . x ) )then reconsider t =
x as
Element of
Subtrees (X1 \/ X2) by A5, A6, A7;
(C -ImmediateSubtrees (X1 \/ X2)) . x in (Subtrees (X1 \/ X2)) *
by A5, A6, A7, A8, FUNCT_2:5;
then reconsider p =
(C -ImmediateSubtrees (X1 \/ X2)) . x as
FinSequence of
Subtrees (X1 \/ X2) by FINSEQ_1:def 11;
hereby ( not x in dom (C -ImmediateSubtrees X2) implies (C -ImmediateSubtrees (X1 \/ X2)) . x = (C -ImmediateSubtrees X1) . x )
assume A9:
x in dom (C -ImmediateSubtrees X2)
;
(C -ImmediateSubtrees (X1 \/ X2)) . x = (C -ImmediateSubtrees X2) . xthen
(C -ImmediateSubtrees X2) . x in (Subtrees X2) *
by A6, FUNCT_2:5;
then reconsider p2 =
(C -ImmediateSubtrees X2) . x as
FinSequence of
Subtrees X2 by FINSEQ_1:def 11;
A10:
t = (t . {}) -tree p
by A3, A5, A6, A7, A8, TREES_9:def 13;
t = (t . {}) -tree p2
by A2, A6, A9, TREES_9:def 13;
hence
(C -ImmediateSubtrees (X1 \/ X2)) . x = (C -ImmediateSubtrees X2) . x
by A10, TREES_4:15;
verum
end; assume
not
x in dom (C -ImmediateSubtrees X2)
;
(C -ImmediateSubtrees (X1 \/ X2)) . x = (C -ImmediateSubtrees X1) . xthen A11:
x in dom (C -ImmediateSubtrees X1)
by A8, XBOOLE_0:def 3;
then
(C -ImmediateSubtrees X1) . x in (Subtrees X1) *
by A5, FUNCT_2:5;
then reconsider p1 =
(C -ImmediateSubtrees X1) . x as
FinSequence of
Subtrees X1 by FINSEQ_1:def 11;
A12:
t = (t . {}) -tree p
by A3, A5, A6, A7, A8, TREES_9:def 13;
t = (t . {}) -tree p1
by A1, A5, A11, TREES_9:def 13;
hence
(C -ImmediateSubtrees (X1 \/ X2)) . x = (C -ImmediateSubtrees X1) . x
by A12, TREES_4:15;
verum end;
hence
C -ImmediateSubtrees (X1 \/ X2) = (C -ImmediateSubtrees X1) +* (C -ImmediateSubtrees X2)
by A4, A5, A6, A7, FUNCT_4:def 1; verum