let M be non empty set ; :: thesis: for V being ComplexNormSpace
for f2 being PartFunc of M,V
for X being set
for f1 being PartFunc of M,COMPLEX holds
( (f1 (#) f2) | X = (f1 | X) (#) (f2 | X) & (f1 (#) f2) | X = (f1 | X) (#) f2 & (f1 (#) f2) | X = f1 (#) (f2 | X) )

let V be ComplexNormSpace; :: thesis: for f2 being PartFunc of M,V
for X being set
for f1 being PartFunc of M,COMPLEX holds
( (f1 (#) f2) | X = (f1 | X) (#) (f2 | X) & (f1 (#) f2) | X = (f1 | X) (#) f2 & (f1 (#) f2) | X = f1 (#) (f2 | X) )

let f2 be PartFunc of M,V; :: thesis: for X being set
for f1 being PartFunc of M,COMPLEX holds
( (f1 (#) f2) | X = (f1 | X) (#) (f2 | X) & (f1 (#) f2) | X = (f1 | X) (#) f2 & (f1 (#) f2) | X = f1 (#) (f2 | X) )

let X be set ; :: thesis: for f1 being PartFunc of M,COMPLEX holds
( (f1 (#) f2) | X = (f1 | X) (#) (f2 | X) & (f1 (#) f2) | X = (f1 | X) (#) f2 & (f1 (#) f2) | X = f1 (#) (f2 | X) )

let f1 be PartFunc of M,COMPLEX; :: thesis: ( (f1 (#) f2) | X = (f1 | X) (#) (f2 | X) & (f1 (#) f2) | X = (f1 | X) (#) f2 & (f1 (#) f2) | X = f1 (#) (f2 | X) )
A1: now :: thesis: for c being Element of M st c in dom ((f1 (#) f2) | X) holds
((f1 (#) f2) | X) /. c = ((f1 | X) (#) (f2 | X)) /. c
let c be Element of M; :: thesis: ( c in dom ((f1 (#) f2) | X) implies ((f1 (#) f2) | X) /. c = ((f1 | X) (#) (f2 | X)) /. c )
assume A2: c in dom ((f1 (#) f2) | X) ; :: thesis: ((f1 (#) f2) | X) /. c = ((f1 | X) (#) (f2 | X)) /. c
then A3: c in (dom (f1 (#) f2)) /\ X by RELAT_1:61;
then A4: c in X by XBOOLE_0:def 4;
A5: c in dom (f1 (#) f2) by A3, XBOOLE_0:def 4;
then A6: c in (dom f1) /\ (dom f2) by Def1;
then A7: c in dom f1 by XBOOLE_0:def 4;
then c in (dom f1) /\ X by A4, XBOOLE_0:def 4;
then A8: c in dom (f1 | X) by RELAT_1:61;
then A9: (f1 | X) /. c = (f1 | X) . c by PARTFUN1:def 6
.= f1 . c by A8, FUNCT_1:47
.= f1 /. c by A7, PARTFUN1:def 6 ;
c in dom f2 by A6, XBOOLE_0:def 4;
then c in (dom f2) /\ X by A4, XBOOLE_0:def 4;
then A10: c in dom (f2 | X) by RELAT_1:61;
then c in (dom (f1 | X)) /\ (dom (f2 | X)) by A8, XBOOLE_0:def 4;
then A11: c in dom ((f1 | X) (#) (f2 | X)) by Def1;
thus ((f1 (#) f2) | X) /. c = (f1 (#) f2) /. c by A2, PARTFUN2:15
.= (f1 /. c) * (f2 /. c) by A5, Def1
.= ((f1 | X) /. c) * ((f2 | X) /. c) by A10, A9, PARTFUN2:15
.= ((f1 | X) (#) (f2 | X)) /. c by A11, Def1 ; :: thesis: verum
end;
dom ((f1 (#) f2) | X) = (dom (f1 (#) f2)) /\ X by RELAT_1:61
.= ((dom f1) /\ (dom f2)) /\ (X /\ X) by Def1
.= (dom f1) /\ ((dom f2) /\ (X /\ X)) by XBOOLE_1:16
.= (dom f1) /\ (((dom f2) /\ X) /\ X) by XBOOLE_1:16
.= (dom f1) /\ (X /\ (dom (f2 | X))) by RELAT_1:61
.= ((dom f1) /\ X) /\ (dom (f2 | X)) by XBOOLE_1:16
.= (dom (f1 | X)) /\ (dom (f2 | X)) by RELAT_1:61
.= dom ((f1 | X) (#) (f2 | X)) by Def1 ;
hence (f1 (#) f2) | X = (f1 | X) (#) (f2 | X) by A1, PARTFUN2:1; :: thesis: ( (f1 (#) f2) | X = (f1 | X) (#) f2 & (f1 (#) f2) | X = f1 (#) (f2 | X) )
A12: now :: thesis: for c being Element of M st c in dom ((f1 (#) f2) | X) holds
((f1 (#) f2) | X) /. c = ((f1 | X) (#) f2) /. c
let c be Element of M; :: thesis: ( c in dom ((f1 (#) f2) | X) implies ((f1 (#) f2) | X) /. c = ((f1 | X) (#) f2) /. c )
assume A13: c in dom ((f1 (#) f2) | X) ; :: thesis: ((f1 (#) f2) | X) /. c = ((f1 | X) (#) f2) /. c
then A14: c in (dom (f1 (#) f2)) /\ X by RELAT_1:61;
then A15: c in dom (f1 (#) f2) by XBOOLE_0:def 4;
then A16: c in (dom f1) /\ (dom f2) by Def1;
then A17: c in dom f1 by XBOOLE_0:def 4;
c in X by A14, XBOOLE_0:def 4;
then c in (dom f1) /\ X by A17, XBOOLE_0:def 4;
then A18: c in dom (f1 | X) by RELAT_1:61;
then A19: (f1 | X) /. c = (f1 | X) . c by PARTFUN1:def 6
.= f1 . c by A18, FUNCT_1:47 ;
c in dom f2 by A16, XBOOLE_0:def 4;
then c in (dom (f1 | X)) /\ (dom f2) by A18, XBOOLE_0:def 4;
then A20: c in dom ((f1 | X) (#) f2) by Def1;
thus ((f1 (#) f2) | X) /. c = (f1 (#) f2) /. c by A13, PARTFUN2:15
.= (f1 /. c) * (f2 /. c) by A15, Def1
.= ((f1 | X) /. c) * (f2 /. c) by A17, A19, PARTFUN1:def 6
.= ((f1 | X) (#) f2) /. c by A20, Def1 ; :: thesis: verum
end;
dom ((f1 (#) f2) | X) = (dom (f1 (#) f2)) /\ X by RELAT_1:61
.= ((dom f1) /\ (dom f2)) /\ X by Def1
.= ((dom f1) /\ X) /\ (dom f2) by XBOOLE_1:16
.= (dom (f1 | X)) /\ (dom f2) by RELAT_1:61
.= dom ((f1 | X) (#) f2) by Def1 ;
hence (f1 (#) f2) | X = (f1 | X) (#) f2 by A12, PARTFUN2:1; :: thesis: (f1 (#) f2) | X = f1 (#) (f2 | X)
A21: now :: thesis: for c being Element of M st c in dom ((f1 (#) f2) | X) holds
((f1 (#) f2) | X) /. c = (f1 (#) (f2 | X)) /. c
let c be Element of M; :: thesis: ( c in dom ((f1 (#) f2) | X) implies ((f1 (#) f2) | X) /. c = (f1 (#) (f2 | X)) /. c )
assume A22: c in dom ((f1 (#) f2) | X) ; :: thesis: ((f1 (#) f2) | X) /. c = (f1 (#) (f2 | X)) /. c
then A23: c in (dom (f1 (#) f2)) /\ X by RELAT_1:61;
then A24: c in X by XBOOLE_0:def 4;
A25: c in dom (f1 (#) f2) by A23, XBOOLE_0:def 4;
then A26: c in (dom f1) /\ (dom f2) by Def1;
then c in dom f2 by XBOOLE_0:def 4;
then c in (dom f2) /\ X by A24, XBOOLE_0:def 4;
then A27: c in dom (f2 | X) by RELAT_1:61;
c in dom f1 by A26, XBOOLE_0:def 4;
then c in (dom f1) /\ (dom (f2 | X)) by A27, XBOOLE_0:def 4;
then A28: c in dom (f1 (#) (f2 | X)) by Def1;
thus ((f1 (#) f2) | X) /. c = (f1 (#) f2) /. c by A22, PARTFUN2:15
.= (f1 /. c) * (f2 /. c) by A25, Def1
.= (f1 /. c) * ((f2 | X) /. c) by A27, PARTFUN2:15
.= (f1 (#) (f2 | X)) /. c by A28, Def1 ; :: thesis: verum
end;
dom ((f1 (#) f2) | X) = (dom (f1 (#) f2)) /\ X by RELAT_1:61
.= ((dom f1) /\ (dom f2)) /\ X by Def1
.= (dom f1) /\ ((dom f2) /\ X) by XBOOLE_1:16
.= (dom f1) /\ (dom (f2 | X)) by RELAT_1:61
.= dom (f1 (#) (f2 | X)) by Def1 ;
hence (f1 (#) f2) | X = f1 (#) (f2 | X) by A21, PARTFUN2:1; :: thesis: verum