let p, q be FinSequence; for x being object st q ^ <*x*> is one-to-one & rng (q ^ <*x*>) c= rng p holds
ex p1, p2 being FinSequence st
( p = (p1 ^ <*x*>) ^ p2 & rng q c= rng (p1 ^ p2) )
let x be object ; ( q ^ <*x*> is one-to-one & rng (q ^ <*x*>) c= rng p implies ex p1, p2 being FinSequence st
( p = (p1 ^ <*x*>) ^ p2 & rng q c= rng (p1 ^ p2) ) )
set r = q ^ <*x*>;
set i = (len q) + 1;
assume that
A1:
q ^ <*x*> is one-to-one
and
A2:
rng (q ^ <*x*>) c= rng p
; ex p1, p2 being FinSequence st
( p = (p1 ^ <*x*>) ^ p2 & rng q c= rng (p1 ^ p2) )
A3:
(q ^ <*x*>) . ((len q) + 1) = x
by FINSEQ_1:42;
rng q c= rng (q ^ <*x*>)
by FINSEQ_1:29;
then A4:
rng q c= rng p
by A2;
( len (q ^ <*x*>) = (len q) + 1 & 1 <= (len q) + 1 )
by FINSEQ_2:16, NAT_1:11;
then A5:
(len q) + 1 in dom (q ^ <*x*>)
by FINSEQ_3:25;
then consider y being object such that
A6:
y in dom p
and
A7:
(q ^ <*x*>) . ((len q) + 1) = p . y
by A2, FUNCT_1:114;
reconsider j = y as Element of NAT by A6;
j <= len p
by A6, FINSEQ_3:25;
then consider k being Nat such that
A8:
len p = j + k
by NAT_1:10;
reconsider k = k as Element of NAT by ORDINAL1:def 12;
consider s, p2 being FinSequence such that
A9:
len s = j
and
len p2 = k
and
A10:
p = s ^ p2
by A8, FINSEQ_2:22;
A11:
1 <= j
by A6, FINSEQ_3:25;
then
ex m being Nat st j = 1 + m
by NAT_1:10;
then consider p1 being FinSequence, d being object such that
A12:
s = p1 ^ <*d*>
by A9, FINSEQ_2:18;
j in dom s
by A9, A11, FINSEQ_3:25;
then A13:
s . j = x
by A7, A10, A3, FINSEQ_1:def 7;
take
p1
; ex p2 being FinSequence st
( p = (p1 ^ <*x*>) ^ p2 & rng q c= rng (p1 ^ p2) )
take
p2
; ( p = (p1 ^ <*x*>) ^ p2 & rng q c= rng (p1 ^ p2) )
A14:
j = (len p1) + 1
by A9, A12, FINSEQ_2:16;
hence
p = (p1 ^ <*x*>) ^ p2
by A10, A12, A13, FINSEQ_1:42; rng q c= rng (p1 ^ p2)
let y be object ; TARSKI:def 3 ( not y in rng q or y in rng (p1 ^ p2) )
assume A15:
y in rng q
; y in rng (p1 ^ p2)
then A20:
y <> x
by A15;
s = p1 ^ <*x*>
by A12, A14, A13, FINSEQ_1:42;
then rng p =
(rng (p1 ^ <*x*>)) \/ (rng p2)
by A10, FINSEQ_1:31
.=
((rng p1) \/ (rng <*x*>)) \/ (rng p2)
by FINSEQ_1:31
.=
((rng p1) \/ (rng p2)) \/ (rng <*x*>)
by XBOOLE_1:4
.=
(rng (p1 ^ p2)) \/ (rng <*x*>)
by FINSEQ_1:31
.=
(rng (p1 ^ p2)) \/ {x}
by FINSEQ_1:38
;
then
( y in rng (p1 ^ p2) or y in {x} )
by A15, A4, XBOOLE_0:def 3;
hence
y in rng (p1 ^ p2)
by A20, TARSKI:def 1; verum