let M be non empty set ; :: thesis: for V being ComplexNormSpace
for f2 being PartFunc of M,the carrier of 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,the carrier of 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,the carrier of 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: dom ((f1 (#) f2) | X) = (dom (f1 (#) f2)) /\ X by RELAT_1:90
.= ((dom f1) /\ (dom f2)) /\ (X /\ X) by Def3
.= (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:90
.= ((dom f1) /\ X) /\ (dom (f2 | X)) by XBOOLE_1:16
.= (dom (f1 | X)) /\ (dom (f2 | X)) by RELAT_1:90
.= dom ((f1 | X) (#) (f2 | X)) by Def3 ;
now
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 c in (dom (f1 (#) f2)) /\ X by RELAT_1:90;
then A3: ( c in dom (f1 (#) f2) & c in X ) by XBOOLE_0:def 4;
then c in (dom f1) /\ (dom f2) by Def3;
then A4: ( c in dom f1 & c in dom f2 ) by XBOOLE_0:def 4;
then ( c in (dom f1) /\ X & c in (dom f2) /\ X ) by A3, XBOOLE_0:def 4;
then A5: ( c in dom (f1 | X) & c in dom (f2 | X) ) by RELAT_1:90;
then c in (dom (f1 | X)) /\ (dom (f2 | X)) by XBOOLE_0:def 4;
then A6: c in dom ((f1 | X) (#) (f2 | X)) by Def3;
A7: (f1 | X) /. c = (f1 | X) . c by A5, PARTFUN1:def 8
.= f1 . c by A5, FUNCT_1:70
.= f1 /. c by A4, PARTFUN1:def 8 ;
thus ((f1 (#) f2) | X) /. c = (f1 (#) f2) /. c by A2, PARTFUN2:32
.= (f1 /. c) * (f2 /. c) by A3, Def3
.= ((f1 | X) /. c) * ((f2 | X) /. c) by A5, A7, PARTFUN2:32
.= ((f1 | X) (#) (f2 | X)) /. c by A6, Def3 ; :: thesis: verum
end;
hence (f1 (#) f2) | X = (f1 | X) (#) (f2 | X) by A1, PARTFUN2:3; :: thesis: ( (f1 (#) f2) | X = (f1 | X) (#) f2 & (f1 (#) f2) | X = f1 (#) (f2 | X) )
A8: dom ((f1 (#) f2) | X) = (dom (f1 (#) f2)) /\ X by RELAT_1:90
.= ((dom f1) /\ (dom f2)) /\ X by Def3
.= ((dom f1) /\ X) /\ (dom f2) by XBOOLE_1:16
.= (dom (f1 | X)) /\ (dom f2) by RELAT_1:90
.= dom ((f1 | X) (#) f2) by Def3 ;
now
let c be Element of M; :: thesis: ( c in dom ((f1 (#) f2) | X) implies ((f1 (#) f2) | X) /. c = ((f1 | X) (#) f2) /. c )
assume A9: c in dom ((f1 (#) f2) | X) ; :: thesis: ((f1 (#) f2) | X) /. c = ((f1 | X) (#) f2) /. c
then c in (dom (f1 (#) f2)) /\ X by RELAT_1:90;
then A10: ( c in dom (f1 (#) f2) & c in X ) by XBOOLE_0:def 4;
then c in (dom f1) /\ (dom f2) by Def3;
then A11: ( c in dom f1 & c in dom f2 ) by XBOOLE_0:def 4;
then ( c in (dom f1) /\ X & c in dom f2 ) by A10, XBOOLE_0:def 4;
then A12: ( c in dom (f1 | X) & c in dom f2 ) by RELAT_1:90;
then c in (dom (f1 | X)) /\ (dom f2) by XBOOLE_0:def 4;
then A13: c in dom ((f1 | X) (#) f2) by Def3;
A14: (f1 | X) /. c = (f1 | X) . c by A12, PARTFUN1:def 8
.= f1 . c by A12, FUNCT_1:70 ;
thus ((f1 (#) f2) | X) /. c = (f1 (#) f2) /. c by A9, PARTFUN2:32
.= (f1 /. c) * (f2 /. c) by A10, Def3
.= ((f1 | X) /. c) * (f2 /. c) by A11, A14, PARTFUN1:def 8
.= ((f1 | X) (#) f2) /. c by A13, Def3 ; :: thesis: verum
end;
hence (f1 (#) f2) | X = (f1 | X) (#) f2 by A8, PARTFUN2:3; :: thesis: (f1 (#) f2) | X = f1 (#) (f2 | X)
A15: dom ((f1 (#) f2) | X) = (dom (f1 (#) f2)) /\ X by RELAT_1:90
.= ((dom f1) /\ (dom f2)) /\ X by Def3
.= (dom f1) /\ ((dom f2) /\ X) by XBOOLE_1:16
.= (dom f1) /\ (dom (f2 | X)) by RELAT_1:90
.= dom (f1 (#) (f2 | X)) by Def3 ;
now
let c be Element of M; :: thesis: ( c in dom ((f1 (#) f2) | X) implies ((f1 (#) f2) | X) /. c = (f1 (#) (f2 | X)) /. c )
assume A16: c in dom ((f1 (#) f2) | X) ; :: thesis: ((f1 (#) f2) | X) /. c = (f1 (#) (f2 | X)) /. c
then c in (dom (f1 (#) f2)) /\ X by RELAT_1:90;
then A17: ( c in dom (f1 (#) f2) & c in X ) by XBOOLE_0:def 4;
then c in (dom f1) /\ (dom f2) by Def3;
then ( c in dom f1 & c in dom f2 ) by XBOOLE_0:def 4;
then ( c in dom f1 & c in (dom f2) /\ X ) by A17, XBOOLE_0:def 4;
then A18: ( c in dom f1 & c in dom (f2 | X) ) by RELAT_1:90;
then c in (dom f1) /\ (dom (f2 | X)) by XBOOLE_0:def 4;
then A19: c in dom (f1 (#) (f2 | X)) by Def3;
thus ((f1 (#) f2) | X) /. c = (f1 (#) f2) /. c by A16, PARTFUN2:32
.= (f1 /. c) * (f2 /. c) by A17, Def3
.= (f1 /. c) * ((f2 | X) /. c) by A18, PARTFUN2:32
.= (f1 (#) (f2 | X)) /. c by A19, Def3 ; :: thesis: verum
end;
hence (f1 (#) f2) | X = f1 (#) (f2 | X) by A15, PARTFUN2:3; :: thesis: verum