let f, g, h, k be Function; :: thesis: [:f,h:] * <:g,k:> = <:(f * g),(h * k):>
for x being set holds
( x in dom ([:f,h:] * <:g,k:>) iff x in dom <:(f * g),(h * k):> )
proof
let x be set ; :: thesis: ( x in dom ([:f,h:] * <:g,k:>) iff x in dom <:(f * g),(h * k):> )
thus ( x in dom ([:f,h:] * <:g,k:>) implies x in dom <:(f * g),(h * k):> ) :: thesis: ( x in dom <:(f * g),(h * k):> implies x in dom ([:f,h:] * <:g,k:>) )
proof
assume x in dom ([:f,h:] * <:g,k:>) ; :: thesis: x in dom <:(f * g),(h * k):>
then ( x in dom <:g,k:> & <:g,k:> . x in dom [:f,h:] ) by FUNCT_1:21;
then ( x in dom <:g,k:> & [(g . x),(k . x)] in dom [:f,h:] ) by Def8;
then ( [(g . x),(k . x)] in [:(dom f),(dom h):] & x in (dom g) /\ (dom k) ) by Def8, Def9;
then ( g . x in dom f & k . x in dom h & x in dom g & x in dom k ) by XBOOLE_0:def 4, ZFMISC_1:106;
then ( x in dom (f * g) & x in dom (h * k) ) by FUNCT_1:21;
then x in (dom (f * g)) /\ (dom (h * k)) by XBOOLE_0:def 4;
hence x in dom <:(f * g),(h * k):> by Def8; :: thesis: verum
end;
assume x in dom <:(f * g),(h * k):> ; :: thesis: x in dom ([:f,h:] * <:g,k:>)
then x in (dom (f * g)) /\ (dom (h * k)) by Def8;
then ( x in dom (f * g) & x in dom (h * k) ) by XBOOLE_0:def 4;
then ( g . x in dom f & k . x in dom h & x in dom g & x in dom k ) by FUNCT_1:21;
then ( [(g . x),(k . x)] in [:(dom f),(dom h):] & x in (dom g) /\ (dom k) ) by XBOOLE_0:def 4, ZFMISC_1:106;
then ( [(g . x),(k . x)] in dom [:f,h:] & x in dom <:g,k:> ) by Def8, Def9;
then ( <:g,k:> . x in dom [:f,h:] & x in dom <:g,k:> ) by Def8;
hence x in dom ([:f,h:] * <:g,k:>) by FUNCT_1:21; :: thesis: verum
end;
then A1: dom ([:f,h:] * <:g,k:>) = dom <:(f * g),(h * k):> by TARSKI:2;
for x being set st x in dom ([:f,h:] * <:g,k:>) holds
([:f,h:] * <:g,k:>) . x = <:(f * g),(h * k):> . x
proof
let x be set ; :: thesis: ( x in dom ([:f,h:] * <:g,k:>) implies ([:f,h:] * <:g,k:>) . x = <:(f * g),(h * k):> . x )
assume A2: x in dom ([:f,h:] * <:g,k:>) ; :: thesis: ([:f,h:] * <:g,k:>) . x = <:(f * g),(h * k):> . x
then A3: ( x in dom <:g,k:> & <:g,k:> . x in dom [:f,h:] ) by FUNCT_1:21;
then [(g . x),(k . x)] in dom [:f,h:] by Def8;
then ( [(g . x),(k . x)] in [:(dom f),(dom h):] & x in (dom g) /\ (dom k) ) by A3, Def8, Def9;
then A4: ( g . x in dom f & k . x in dom h & x in dom g & x in dom k ) by XBOOLE_0:def 4, ZFMISC_1:106;
then ( x in dom (f * g) & x in dom (h * k) ) by FUNCT_1:21;
then A5: x in (dom (f * g)) /\ (dom (h * k)) by XBOOLE_0:def 4;
thus ([:f,h:] * <:g,k:>) . x = [:f,h:] . (<:g,k:> . x) by A2, FUNCT_1:22
.= [:f,h:] . (g . x),(k . x) by A3, Def8
.= [(f . (g . x)),(h . (k . x))] by A4, Def9
.= [((f * g) . x),(h . (k . x))] by A4, FUNCT_1:23
.= [((f * g) . x),((h * k) . x)] by A4, FUNCT_1:23
.= <:(f * g),(h * k):> . x by A5, Th68 ; :: thesis: verum
end;
hence [:f,h:] * <:g,k:> = <:(f * g),(h * k):> by A1, FUNCT_1:9; :: thesis: verum