let p, q be Tree-yielding FinSequence; :: thesis: for T1, T2 being Tree holds tree ((p ^ <*T1*>) ^ q) = (tree ((p ^ <*T2*>) ^ q)) with-replacement (<*(len p)*>,T1)
let T1, T2 be Tree; :: thesis: tree ((p ^ <*T1*>) ^ q) = (tree ((p ^ <*T2*>) ^ q)) with-replacement (<*(len p)*>,T1)
set w1 = (p ^ <*T1*>) ^ q;
set W1 = tree ((p ^ <*T1*>) ^ q);
set w2 = (p ^ <*T2*>) ^ q;
set W2 = tree ((p ^ <*T2*>) ^ q);
set W = (tree ((p ^ <*T2*>) ^ q)) with-replacement (<*(len p)*>,T1);
A1: len <*T1*> = 1 by FINSEQ_1:40;
A2: len <*T2*> = 1 by FINSEQ_1:40;
A3: len (p ^ <*T1*>) = (len p) + 1 by A1, FINSEQ_1:22;
A4: len ((p ^ <*T1*>) ^ q) = (len (p ^ <*T1*>)) + (len q) by FINSEQ_1:22;
A5: len (p ^ <*T2*>) = (len p) + 1 by A2, FINSEQ_1:22;
A6: len ((p ^ <*T2*>) ^ q) = (len (p ^ <*T2*>)) + (len q) by FINSEQ_1:22;
(len p) + 1 <= ((len p) + 1) + (len q) by NAT_1:11;
then A7: len p < ((len p) + 1) + (len q) by NAT_1:13;
then A8: ((p ^ <*T2*>) ^ q) . ((len p) + 1) in rng ((p ^ <*T2*>) ^ q) by A5, A6, Lm3;
rng ((p ^ <*T2*>) ^ q) is constituted-Trees by Def9;
then A9: {} in ((p ^ <*T2*>) ^ q) . ((len p) + 1) by A8, TREES_1:22;
<*(len p)*> ^ {} = <*(len p)*> by FINSEQ_1:34;
then A10: <*(len p)*> in tree ((p ^ <*T2*>) ^ q) by A5, A6, A7, A9, Def15;
let r be FinSequence of NAT ; :: according to TREES_2:def 1 :: thesis: ( ( not r in tree ((p ^ <*T1*>) ^ q) or r in (tree ((p ^ <*T2*>) ^ q)) with-replacement (<*(len p)*>,T1) ) & ( not r in (tree ((p ^ <*T2*>) ^ q)) with-replacement (<*(len p)*>,T1) or r in tree ((p ^ <*T1*>) ^ q) ) )
thus ( r in tree ((p ^ <*T1*>) ^ q) implies r in (tree ((p ^ <*T2*>) ^ q)) with-replacement (<*(len p)*>,T1) ) :: thesis: ( not r in (tree ((p ^ <*T2*>) ^ q)) with-replacement (<*(len p)*>,T1) or r in tree ((p ^ <*T1*>) ^ q) )
proof
assume r in tree ((p ^ <*T1*>) ^ q) ; :: thesis: r in (tree ((p ^ <*T2*>) ^ q)) with-replacement (<*(len p)*>,T1)
then A11: ( r = {} or ex n being Nat ex s being FinSequence st
( n < len ((p ^ <*T1*>) ^ q) & s in ((p ^ <*T1*>) ^ q) . (n + 1) & r = <*n*> ^ s ) ) by Def15;
now :: thesis: ( ex n being Nat ex s being FinSequence st
( n < len ((p ^ <*T1*>) ^ q) & s in ((p ^ <*T1*>) ^ q) . (n + 1) & r = <*n*> ^ s ) implies r in (tree ((p ^ <*T2*>) ^ q)) with-replacement (<*(len p)*>,T1) )
given n being Nat, s being FinSequence such that A12: n < len ((p ^ <*T1*>) ^ q) and
A13: s in ((p ^ <*T1*>) ^ q) . (n + 1) and
A14: r = <*n*> ^ s ; :: thesis: r in (tree ((p ^ <*T2*>) ^ q)) with-replacement (<*(len p)*>,T1)
reconsider s = s as FinSequence of NAT by A14, FINSEQ_1:36;
A15: ( n <= len p or n >= (len p) + 1 ) by NAT_1:13;
A16: now :: thesis: ( n < len p implies r in (tree ((p ^ <*T2*>) ^ q)) with-replacement (<*(len p)*>,T1) )
assume A17: n < len p ; :: thesis: r in (tree ((p ^ <*T2*>) ^ q)) with-replacement (<*(len p)*>,T1)
then A18: n + 1 in dom p by Lm3;
A19: dom p c= dom (p ^ <*T2*>) by FINSEQ_1:26;
A20: dom p c= dom (p ^ <*T1*>) by FINSEQ_1:26;
A21: (p ^ <*T2*>) . (n + 1) = p . (n + 1) by A18, FINSEQ_1:def 7;
A22: (p ^ <*T1*>) . (n + 1) = p . (n + 1) by A18, FINSEQ_1:def 7;
A23: ((p ^ <*T2*>) ^ q) . (n + 1) = p . (n + 1) by A18, A19, A21, FINSEQ_1:def 7;
((p ^ <*T1*>) ^ q) . (n + 1) = p . (n + 1) by A18, A20, A22, FINSEQ_1:def 7;
then A24: r in tree ((p ^ <*T2*>) ^ q) by A3, A4, A5, A6, A12, A13, A14, A23, Def15;
not <*(len p)*> is_a_prefix_of <*n*> ^ s by A17, TREES_1:50;
then not <*(len p)*> is_a_proper_prefix_of <*n*> ^ s ;
hence r in (tree ((p ^ <*T2*>) ^ q)) with-replacement (<*(len p)*>,T1) by A10, A14, A24, TREES_1:def 9; :: thesis: verum
end;
A25: now :: thesis: ( n = len p implies r in (tree ((p ^ <*T2*>) ^ q)) with-replacement (<*(len p)*>,T1) )
assume A26: n = len p ; :: thesis: r in (tree ((p ^ <*T2*>) ^ q)) with-replacement (<*(len p)*>,T1)
then A27: (p ^ <*T1*>) . (n + 1) = T1 by FINSEQ_1:42;
n < (len p) + 1 by A26, NAT_1:13;
then n + 1 in dom (p ^ <*T1*>) by A3, Lm3;
then A28: ((p ^ <*T1*>) ^ q) . (n + 1) = T1 by A27, FINSEQ_1:def 7;
s = s ;
hence r in (tree ((p ^ <*T2*>) ^ q)) with-replacement (<*(len p)*>,T1) by A10, A13, A14, A26, A28, TREES_1:def 9; :: thesis: verum
end;
now :: thesis: ( n >= (len p) + 1 & n < ((len p) + 1) + (len q) implies r in (tree ((p ^ <*T2*>) ^ q)) with-replacement (<*(len p)*>,T1) )
assume that
A29: n >= (len p) + 1 and
A30: n < ((len p) + 1) + (len q) ; :: thesis: r in (tree ((p ^ <*T2*>) ^ q)) with-replacement (<*(len p)*>,T1)
A31: n + 1 >= ((len p) + 1) + 1 by A29, XREAL_1:7;
A32: n + 1 <= ((len p) + 1) + (len q) by A30, NAT_1:13;
then A33: ((p ^ <*T1*>) ^ q) . (n + 1) = q . ((n + 1) - ((len p) + 1)) by A3, A31, FINSEQ_1:23;
((p ^ <*T2*>) ^ q) . (n + 1) = q . ((n + 1) - ((len p) + 1)) by A5, A31, A32, FINSEQ_1:23;
then A34: r in tree ((p ^ <*T2*>) ^ q) by A3, A4, A5, A6, A12, A13, A14, A33, Def15;
len p <> n by A29, NAT_1:13;
then not <*(len p)*> is_a_prefix_of <*n*> ^ s by TREES_1:50;
then not <*(len p)*> is_a_proper_prefix_of <*n*> ^ s ;
hence r in (tree ((p ^ <*T2*>) ^ q)) with-replacement (<*(len p)*>,T1) by A10, A14, A34, TREES_1:def 9; :: thesis: verum
end;
hence r in (tree ((p ^ <*T2*>) ^ q)) with-replacement (<*(len p)*>,T1) by A3, A12, A15, A16, A25, FINSEQ_1:22, XXREAL_0:1; :: thesis: verum
end;
hence r in (tree ((p ^ <*T2*>) ^ q)) with-replacement (<*(len p)*>,T1) by A11, TREES_1:22; :: thesis: verum
end;
assume r in (tree ((p ^ <*T2*>) ^ q)) with-replacement (<*(len p)*>,T1) ; :: thesis: r in tree ((p ^ <*T1*>) ^ q)
then A35: ( ( r in tree ((p ^ <*T2*>) ^ q) & not <*(len p)*> is_a_proper_prefix_of r ) or ex s being FinSequence of NAT st
( s in T1 & r = <*(len p)*> ^ s ) ) by A10, TREES_1:def 9;
assume A36: not r in tree ((p ^ <*T1*>) ^ q) ; :: thesis: contradiction
then A37: r <> {} by Def15;
A38: (p ^ <*T1*>) . ((len p) + 1) = T1 by FINSEQ_1:42;
A39: len p < (len p) + 1 by NAT_1:13;
(len p) + 1 <= ((len p) + 1) + (len q) by NAT_1:11;
then A40: len p < len ((p ^ <*T2*>) ^ q) by A5, A6, NAT_1:13;
(len p) + 1 in dom (p ^ <*T1*>) by A3, A39, Lm3;
then A41: ((p ^ <*T1*>) ^ q) . ((len p) + 1) = T1 by A38, FINSEQ_1:def 7;
then consider n being Nat, s being FinSequence such that
A42: n < len ((p ^ <*T2*>) ^ q) and
A43: s in ((p ^ <*T2*>) ^ q) . (n + 1) and
A44: r = <*n*> ^ s by A3, A4, A5, A6, A35, A36, A37, A40, Def15;
reconsider s = s as FinSequence of NAT by A44, FINSEQ_1:36;
A45: ( n = len p implies s = {} ) by A3, A4, A5, A6, A35, A36, A41, A42, A44, Def15, TREES_1:10;
{} in T1 by TREES_1:22;
then n <> len p by A3, A4, A5, A6, A36, A41, A42, A44, A45, Def15;
then ( n < len p or ( n > len p & 1 <= 1 ) ) by XXREAL_0:1;
then ( ( 1 <= 1 + n & 1 + n = n + 1 & n + 1 <= len p & (p ^ <*T1*>) ^ q = p ^ (<*T1*> ^ q) & (p ^ <*T2*>) ^ q = p ^ (<*T2*> ^ q) ) or ( (len p) + 1 < n + 1 & n + 1 <= len ((p ^ <*T1*>) ^ q) ) ) by A3, A4, A5, A6, A42, FINSEQ_1:32, NAT_1:11, NAT_1:13, XREAL_1:6;
then ( ( ((p ^ <*T1*>) ^ q) . (n + 1) = p . (n + 1) & ((p ^ <*T2*>) ^ q) . (n + 1) = p . (n + 1) ) or ( ((p ^ <*T1*>) ^ q) . (n + 1) = q . ((n + 1) - ((len p) + 1)) & ((p ^ <*T2*>) ^ q) . (n + 1) = q . ((n + 1) - ((len p) + 1)) ) ) by A3, A4, A5, A6, Lm1, FINSEQ_1:24;
hence contradiction by A3, A4, A5, A6, A36, A42, A43, A44, Def15; :: thesis: verum