let X be set ; for p being FuncSequence st p <> {} holds
dom (compose (p,X)) = (firstdom p) /\ X
defpred S1[ Function-yielding FinSequence] means ( $1 is FuncSequence & $1 <> {} implies dom (compose ($1,X)) = (firstdom $1) /\ X );
A1:
for p being Function-yielding FinSequence st S1[p] holds
for f being Function holds S1[p ^ <*f*>]
proof
let q be
Function-yielding FinSequence;
( S1[q] implies for f being Function holds S1[q ^ <*f*>] )
assume A2:
(
q is
FuncSequence &
q <> {} implies
dom (compose (q,X)) = (firstdom q) /\ X )
;
for f being Function holds S1[q ^ <*f*>]
let f be
Function;
S1[q ^ <*f*>]
assume that A3:
q ^ <*f*> is
FuncSequence
and
q ^ <*f*> <> {}
;
dom (compose ((q ^ <*f*>),X)) = (firstdom (q ^ <*f*>)) /\ X
A4:
compose (
(q ^ <*f*>),
X)
= f * (compose (q,X))
by Th40;
per cases
( q = {} or q <> {} )
;
suppose A7:
q <> {}
;
dom (compose ((q ^ <*f*>),X)) = (firstdom (q ^ <*f*>)) /\ Xthen consider y being
object ,
s being
FinSequence such that A8:
q = <*y*> ^ s
and A9:
len q = (len s) + 1
by REWRITE1:5;
reconsider y =
y as
set by TARSKI:1;
q . 1
= y
by A8, FINSEQ_1:41;
then A10:
firstdom q = proj1 y
by A8, Def5;
A11:
len q >= 1
by A9, NAT_1:11;
then
len q in dom q
by FINSEQ_3:25;
then A12:
(q ^ <*f*>) . (len q) = q . (len q)
by FINSEQ_1:def 7;
A13:
rng (compose (q,X)) c= lastrng q
by A7, Th58;
consider p being
FinSequence such that
len p = (len (q ^ <*f*>)) + 1
and A14:
for
i being
Nat st
i in dom (q ^ <*f*>) holds
(q ^ <*f*>) . i in Funcs (
(p . i),
(p . (i + 1)))
by A3, Def7;
consider r being
FinSequence,
x being
object such that A15:
q = r ^ <*x*>
by A7, FINSEQ_1:46;
len <*f*> = 1
by FINSEQ_1:40;
then A16:
len (q ^ <*f*>) = (len q) + 1
by FINSEQ_1:22;
then
len q <= len (q ^ <*f*>)
by NAT_1:11;
then
len q in dom (q ^ <*f*>)
by A11, FINSEQ_3:25;
then A17:
(q ^ <*f*>) . (len q) in Funcs (
(p . (len q)),
(p . ((len q) + 1)))
by A14;
len <*x*> = 1
by FINSEQ_1:40;
then
len q = (len r) + 1
by A15, FINSEQ_1:22;
then
q . (len q) = x
by A15, FINSEQ_1:42;
then consider g being
Function such that A18:
x = g
and
dom g = p . (len q)
and A19:
rng g c= p . ((len q) + 1)
by A17, A12, FUNCT_2:def 2;
A20:
(<*y*> ^ (s ^ <*f*>)) . 1
= y
by FINSEQ_1:41;
(len q) + 1
>= 1
by NAT_1:11;
then
(len q) + 1
in dom (q ^ <*f*>)
by A16, FINSEQ_3:25;
then A21:
(q ^ <*f*>) . ((len q) + 1) in Funcs (
(p . ((len q) + 1)),
(p . (((len q) + 1) + 1)))
by A14;
(q ^ <*f*>) . ((len q) + 1) = f
by FINSEQ_1:42;
then A22:
ex
g being
Function st
(
f = g &
dom g = p . ((len q) + 1) &
rng g c= p . (((len q) + 1) + 1) )
by A21, FUNCT_2:def 2;
q ^ <*f*> = <*y*> ^ (s ^ <*f*>)
by A8, FINSEQ_1:32;
then A23:
firstdom (q ^ <*f*>) = proj1 y
by A20, Def5;
lastrng q = rng g
by A15, A18, Th57;
hence
dom (compose ((q ^ <*f*>),X)) = (firstdom (q ^ <*f*>)) /\ X
by A2, A3, A4, A7, A23, A10, A19, A22, A13, Th59, RELAT_1:27, XBOOLE_1:1;
verum end; end;
end;
A24:
S1[ {} ]
;
for p being Function-yielding FinSequence holds S1[p]
from FUNCT_7:sch 5(A24, A1);
hence
for p being FuncSequence st p <> {} holds
dom (compose (p,X)) = (firstdom p) /\ X
; verum