let I be set ; :: thesis: for A, B being ManySortedSet of I
for f, g being Function st rngs (f -MSF I,A) c= B holds
(g * f) -MSF I,A = (g -MSF I,B) ** (f -MSF I,A)

let A, B be ManySortedSet of I; :: thesis: for f, g being Function st rngs (f -MSF I,A) c= B holds
(g * f) -MSF I,A = (g -MSF I,B) ** (f -MSF I,A)

let f, g be Function; :: thesis: ( rngs (f -MSF I,A) c= B implies (g * f) -MSF I,A = (g -MSF I,B) ** (f -MSF I,A) )
assume A1: rngs (f -MSF I,A) c= B ; :: thesis: (g * f) -MSF I,A = (g -MSF I,B) ** (f -MSF I,A)
A2: I /\ I = I ;
( dom (g -MSF I,B) = I & dom (f -MSF I,A) = I ) by PARTFUN1:def 4;
then A3: dom ((g -MSF I,B) ** (f -MSF I,A)) = I by A2, PBOOLE:def 24;
A4: now
let i be set ; :: thesis: ( i in I implies ((g * f) -MSF I,A) . i = ((g -MSF I,B) ** (f -MSF I,A)) . i )
assume A5: i in I ; :: thesis: ((g * f) -MSF I,A) . i = ((g -MSF I,B) ** (f -MSF I,A)) . i
then A6: (f -MSF I,A) . i = f | (A . i) by Def1;
dom (f -MSF I,A) = I by PARTFUN1:def 4;
then (rngs (f -MSF I,A)) . i = rng (f | (A . i)) by A5, A6, FUNCT_6:31;
then rng (f | (A . i)) c= B . i by A1, A5, PBOOLE:def 5;
then ( (g * f) | (A . i) = g * (f | (A . i)) & (B . i) | (f | (A . i)) = f | (A . i) ) by RELAT_1:112, RELAT_1:125;
then A7: (g * f) | (A . i) = (g | (B . i)) * (f | (A . i)) by MONOID_1:2;
( ((g * f) -MSF I,A) . i = (g * f) | (A . i) & (g -MSF I,B) . i = g | (B . i) ) by A5, Def1;
hence ((g * f) -MSF I,A) . i = ((g -MSF I,B) ** (f -MSF I,A)) . i by A3, A5, A6, A7, PBOOLE:def 24; :: thesis: verum
end;
dom ((g * f) -MSF I,A) = I by PARTFUN1:def 4;
hence (g * f) -MSF I,A = (g -MSF I,B) ** (f -MSF I,A) by A3, A4, FUNCT_1:9; :: thesis: verum