let X, Y be set ; for p, q being Function-yielding FinSequence st rng (compose (p,X)) c= Y holds
compose ((p ^ q),X) = (compose (q,Y)) * (compose (p,X))
let p, q be Function-yielding FinSequence; ( rng (compose (p,X)) c= Y implies compose ((p ^ q),X) = (compose (q,Y)) * (compose (p,X)) )
assume A1:
rng (compose (p,X)) c= Y
; compose ((p ^ q),X) = (compose (q,Y)) * (compose (p,X))
defpred S1[ Function-yielding FinSequence] means compose ((p ^ $1),X) = (compose ($1,Y)) * (compose (p,X));
A2:
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 A3:
compose (
(p ^ q),
X)
= (compose (q,Y)) * (compose (p,X))
;
for f being Function holds S1[q ^ <*f*>]
let f be
Function;
S1[q ^ <*f*>]
thus compose (
(p ^ (q ^ <*f*>)),
X) =
compose (
((p ^ q) ^ <*f*>),
X)
by FINSEQ_1:32
.=
f * (compose ((p ^ q),X))
by Th40
.=
(f * (compose (q,Y))) * (compose (p,X))
by A3, RELAT_1:36
.=
(compose ((q ^ <*f*>),Y)) * (compose (p,X))
by Th40
;
verum
end;
compose ((p ^ {}),X) =
compose (p,X)
by FINSEQ_1:34
.=
(id Y) * (compose (p,X))
by A1, RELAT_1:53
.=
(compose ({},Y)) * (compose (p,X))
by Th38
;
then A4:
S1[ {} ]
;
for q being Function-yielding FinSequence holds S1[q]
from FUNCT_7:sch 5(A4, A2);
hence
compose ((p ^ q),X) = (compose (q,Y)) * (compose (p,X))
; verum