let f, g be Function; :: thesis: ( f is one-to-one & g is one-to-one implies (~ [:f,g:]) " = ~ ([:g,f:] " ) )
assume that
A1: f is one-to-one and
A2: g is one-to-one ; :: thesis: (~ [:f,g:]) " = ~ ([:g,f:] " )
A3: [:g,f:] " = [:(g " ),(f " ):] by A1, A2, Th7;
then A4: dom ([:g,f:] " ) = [:(dom (g " )),(dom (f " )):] by FUNCT_3:def 9;
A5: dom [:f,g:] = [:(dom f),(dom g):] by FUNCT_3:def 9;
A6: dom [:g,f:] = [:(dom g),(dom f):] by FUNCT_3:def 9;
A7: [:g,f:] is one-to-one by A1, A2, ISOCAT_1:1;
A8: [:f,g:] is one-to-one by A1, A2, ISOCAT_1:1;
then A9: ~ [:f,g:] is one-to-one by Th9;
A10: [:f,g:] " = [:(f " ),(g " ):] by A1, A2, Th7;
A11: dom (~ ([:g,f:] " )) = [:(dom (f " )),(dom (g " )):] by A4, FUNCT_4:47
.= dom [:(f " ),(g " ):] by FUNCT_3:def 9
.= rng [:f,g:] by A8, A10, FUNCT_1:54
.= rng (~ [:f,g:]) by A5, FUNCT_4:48 ;
now
let y, x be set ; :: thesis: ( ( y in rng (~ [:f,g:]) & x = (~ ([:g,f:] " )) . y implies ( x in dom (~ [:f,g:]) & (~ [:f,g:]) . x = y ) ) & ( x in dom (~ [:f,g:]) & (~ [:f,g:]) . x = y implies ( y in rng (~ [:f,g:]) & x = (~ ([:g,f:] " )) . y ) ) )
hereby :: thesis: ( x in dom (~ [:f,g:]) & (~ [:f,g:]) . x = y implies ( y in rng (~ [:f,g:]) & x = (~ ([:g,f:] " )) . y ) )
assume that
A12: y in rng (~ [:f,g:]) and
A13: x = (~ ([:g,f:] " )) . y ; :: thesis: ( x in dom (~ [:f,g:]) & (~ [:f,g:]) . x = y )
y in rng [:f,g:] by A5, A12, FUNCT_4:48;
then y in [:(rng f),(rng g):] by FUNCT_3:88;
then consider y1, y2 being set such that
A14: y1 in rng f and
A15: y2 in rng g and
A16: y = [y1,y2] by ZFMISC_1:103;
set x1 = (f " ) . y1;
set x2 = (g " ) . y2;
A17: y2 in dom (g " ) by A2, A15, FUNCT_1:54;
A18: y1 in dom (f " ) by A1, A14, FUNCT_1:54;
then [y2,y1] in dom ([:g,f:] " ) by A4, A17, ZFMISC_1:106;
then A19: (~ ([:g,f:] " )) . y1,y2 = [:(g " ),(f " ):] . y2,y1 by A3, FUNCT_4:def 2
.= [((g " ) . y2),((f " ) . y1)] by A17, A18, FUNCT_3:def 9 ;
A20: y1 in dom (f " ) by A1, A14, FUNCT_1:54;
A21: y2 in dom (g " ) by A2, A15, FUNCT_1:54;
A22: (f " ) . y1 in rng (f " ) by A20, FUNCT_1:def 5;
A23: (g " ) . y2 in rng (g " ) by A21, FUNCT_1:def 5;
A24: (f " ) . y1 in dom f by A1, A22, FUNCT_1:55;
A25: (g " ) . y2 in dom g by A2, A23, FUNCT_1:55;
then A26: [((g " ) . y2),((f " ) . y1)] in dom [:g,f:] by A6, A24, ZFMISC_1:106;
then A27: [((g " ) . y2),((f " ) . y1)] in dom (~ [:f,g:]) by A5, A6, FUNCT_4:47;
thus x in dom (~ [:f,g:]) by A5, A6, A13, A16, A19, A26, FUNCT_4:47; :: thesis: (~ [:f,g:]) . x = y
A28: f . ((f " ) . y1) = y1 by A1, A14, FUNCT_1:54;
A29: g . ((g " ) . y2) = y2 by A2, A15, FUNCT_1:54;
thus (~ [:f,g:]) . x = (~ [:f,g:]) . ((g " ) . y2),((f " ) . y1) by A13, A16, A19
.= [:f,g:] . ((f " ) . y1),((g " ) . y2) by A27, FUNCT_4:44
.= y by A16, A24, A25, A28, A29, FUNCT_3:def 9 ; :: thesis: verum
end;
assume that
A30: x in dom (~ [:f,g:]) and
A31: (~ [:f,g:]) . x = y ; :: thesis: ( y in rng (~ [:f,g:]) & x = (~ ([:g,f:] " )) . y )
thus y in rng (~ [:f,g:]) by A30, A31, FUNCT_1:def 5; :: thesis: x = (~ ([:g,f:] " )) . y
x in dom [:g,f:] by A5, A6, A30, FUNCT_4:47;
then consider x1, x2 being set such that
A32: x1 in dom g and
A33: x2 in dom f and
A34: x = [x1,x2] by A6, ZFMISC_1:103;
A35: (~ [:f,g:]) . x1,x2 = [:f,g:] . x2,x1 by A30, A34, FUNCT_4:44
.= [(f . x2),(g . x1)] by A32, A33, FUNCT_3:def 9 ;
A36: g . x1 in rng g by A32, FUNCT_1:def 5;
f . x2 in rng f by A33, FUNCT_1:def 5;
then [(g . x1),(f . x2)] in [:(rng g),(rng f):] by A36, ZFMISC_1:106;
then [(g . x1),(f . x2)] in rng [:g,f:] by FUNCT_3:88;
then A37: [(g . x1),(f . x2)] in dom ([:g,f:] " ) by A7, FUNCT_1:55;
[x1,x2] in dom [:g,f:] by A6, A32, A33, ZFMISC_1:106;
hence x = ([:g,f:] " ) . ([:g,f:] . x1,x2) by A7, A34, FUNCT_1:56
.= ([:g,f:] " ) . (g . x1),(f . x2) by A32, A33, FUNCT_3:def 9
.= (~ ([:g,f:] " )) . (f . x2),(g . x1) by A37, FUNCT_4:def 2
.= (~ ([:g,f:] " )) . y by A31, A34, A35 ;
:: thesis: verum
end;
hence (~ [:f,g:]) " = ~ ([:g,f:] " ) by A9, A11, FUNCT_1:54; :: thesis: verum