let C be non empty set ; :: thesis: for f1, f2, f3 being PartFunc of C,COMPLEX holds (f1 (#) f2) (#) f3 = f1 (#) (f2 (#) f3)
let f1, f2, f3 be PartFunc of C,COMPLEX ; :: thesis: (f1 (#) f2) (#) f3 = f1 (#) (f2 (#) f3)
A1: dom ((f1 (#) f2) (#) f3) = (dom (f1 (#) f2)) /\ (dom f3) by Th5
.= ((dom f1) /\ (dom f2)) /\ (dom f3) by Th5
.= (dom f1) /\ ((dom f2) /\ (dom f3)) by XBOOLE_1:16
.= (dom f1) /\ (dom (f2 (#) f3)) by Th5
.= dom (f1 (#) (f2 (#) f3)) by Th5 ;
now
let c be Element of C; :: thesis: ( c in dom ((f1 (#) f2) (#) f3) implies ((f1 (#) f2) (#) f3) /. c = (f1 (#) (f2 (#) f3)) /. c )
assume A2: c in dom ((f1 (#) f2) (#) f3) ; :: thesis: ((f1 (#) f2) (#) f3) /. c = (f1 (#) (f2 (#) f3)) /. c
then c in (dom f1) /\ (dom (f2 (#) f3)) by A1, Th5;
then A3: c in dom (f2 (#) f3) by XBOOLE_0:def 4;
c in (dom (f1 (#) f2)) /\ (dom f3) by A2, Th5;
then A4: c in dom (f1 (#) f2) by XBOOLE_0:def 4;
thus ((f1 (#) f2) (#) f3) /. c = ((f1 (#) f2) /. c) * (f3 /. c) by A2, Th5
.= ((f1 /. c) * (f2 /. c)) * (f3 /. c) by A4, Th5
.= (f1 /. c) * ((f2 /. c) * (f3 /. c))
.= (f1 /. c) * ((f2 (#) f3) /. c) by A3, Th5
.= (f1 (#) (f2 (#) f3)) /. c by A1, A2, Th5 ; :: thesis: verum
end;
hence (f1 (#) f2) (#) f3 = f1 (#) (f2 (#) f3) by A1, PARTFUN2:3; :: thesis: verum