:: ALTCAT_4 semantic presentation begin registration let C be non empty with_units AltCatStr ; let o be object of C; cluster<^o,o^> -> non empty ; coherence not <^o,o^> is empty by ALTCAT_1:19; end; theorem Th1: :: ALTCAT_4:1 for C being category for o1, o2, o3 being object of C for v being Morphism of o1,o2 for u being Morphism of o1,o3 for f being Morphism of o2,o3 st u = f * v & (f ") * f = idm o2 & <^o1,o2^> <> {} & <^o2,o3^> <> {} & <^o3,o2^> <> {} holds v = (f ") * u proof let C be category; ::_thesis: for o1, o2, o3 being object of C for v being Morphism of o1,o2 for u being Morphism of o1,o3 for f being Morphism of o2,o3 st u = f * v & (f ") * f = idm o2 & <^o1,o2^> <> {} & <^o2,o3^> <> {} & <^o3,o2^> <> {} holds v = (f ") * u let o1, o2, o3 be object of C; ::_thesis: for v being Morphism of o1,o2 for u being Morphism of o1,o3 for f being Morphism of o2,o3 st u = f * v & (f ") * f = idm o2 & <^o1,o2^> <> {} & <^o2,o3^> <> {} & <^o3,o2^> <> {} holds v = (f ") * u let v be Morphism of o1,o2; ::_thesis: for u being Morphism of o1,o3 for f being Morphism of o2,o3 st u = f * v & (f ") * f = idm o2 & <^o1,o2^> <> {} & <^o2,o3^> <> {} & <^o3,o2^> <> {} holds v = (f ") * u let u be Morphism of o1,o3; ::_thesis: for f being Morphism of o2,o3 st u = f * v & (f ") * f = idm o2 & <^o1,o2^> <> {} & <^o2,o3^> <> {} & <^o3,o2^> <> {} holds v = (f ") * u let f be Morphism of o2,o3; ::_thesis: ( u = f * v & (f ") * f = idm o2 & <^o1,o2^> <> {} & <^o2,o3^> <> {} & <^o3,o2^> <> {} implies v = (f ") * u ) assume that A1: u = f * v and A2: (f ") * f = idm o2 and A3: <^o1,o2^> <> {} and A4: ( <^o2,o3^> <> {} & <^o3,o2^> <> {} ) ; ::_thesis: v = (f ") * u thus (f ") * u = ((f ") * f) * v by A1, A3, A4, ALTCAT_1:21 .= v by A2, A3, ALTCAT_1:20 ; ::_thesis: verum end; theorem Th2: :: ALTCAT_4:2 for C being category for o2, o3, o1 being object of C for v being Morphism of o2,o3 for u being Morphism of o1,o3 for f being Morphism of o1,o2 st u = v * f & f * (f ") = idm o2 & <^o1,o2^> <> {} & <^o2,o1^> <> {} & <^o2,o3^> <> {} holds v = u * (f ") proof let C be category; ::_thesis: for o2, o3, o1 being object of C for v being Morphism of o2,o3 for u being Morphism of o1,o3 for f being Morphism of o1,o2 st u = v * f & f * (f ") = idm o2 & <^o1,o2^> <> {} & <^o2,o1^> <> {} & <^o2,o3^> <> {} holds v = u * (f ") let o2, o3, o1 be object of C; ::_thesis: for v being Morphism of o2,o3 for u being Morphism of o1,o3 for f being Morphism of o1,o2 st u = v * f & f * (f ") = idm o2 & <^o1,o2^> <> {} & <^o2,o1^> <> {} & <^o2,o3^> <> {} holds v = u * (f ") let v be Morphism of o2,o3; ::_thesis: for u being Morphism of o1,o3 for f being Morphism of o1,o2 st u = v * f & f * (f ") = idm o2 & <^o1,o2^> <> {} & <^o2,o1^> <> {} & <^o2,o3^> <> {} holds v = u * (f ") let u be Morphism of o1,o3; ::_thesis: for f being Morphism of o1,o2 st u = v * f & f * (f ") = idm o2 & <^o1,o2^> <> {} & <^o2,o1^> <> {} & <^o2,o3^> <> {} holds v = u * (f ") let f be Morphism of o1,o2; ::_thesis: ( u = v * f & f * (f ") = idm o2 & <^o1,o2^> <> {} & <^o2,o1^> <> {} & <^o2,o3^> <> {} implies v = u * (f ") ) assume that A1: u = v * f and A2: f * (f ") = idm o2 and A3: ( <^o1,o2^> <> {} & <^o2,o1^> <> {} ) and A4: <^o2,o3^> <> {} ; ::_thesis: v = u * (f ") thus u * (f ") = v * (f * (f ")) by A1, A3, A4, ALTCAT_1:21 .= v by A2, A4, ALTCAT_1:def_17 ; ::_thesis: verum end; theorem Th3: :: ALTCAT_4:3 for C being category for o1, o2 being object of C for m being Morphism of o1,o2 st <^o1,o2^> <> {} & <^o2,o1^> <> {} & m is iso holds m " is iso proof let C be category; ::_thesis: for o1, o2 being object of C for m being Morphism of o1,o2 st <^o1,o2^> <> {} & <^o2,o1^> <> {} & m is iso holds m " is iso let o1, o2 be object of C; ::_thesis: for m being Morphism of o1,o2 st <^o1,o2^> <> {} & <^o2,o1^> <> {} & m is iso holds m " is iso let m be Morphism of o1,o2; ::_thesis: ( <^o1,o2^> <> {} & <^o2,o1^> <> {} & m is iso implies m " is iso ) assume A1: ( <^o1,o2^> <> {} & <^o2,o1^> <> {} ) ; ::_thesis: ( not m is iso or m " is iso ) assume m is iso ; ::_thesis: m " is iso then A2: ( m is retraction & m is coretraction ) by ALTCAT_3:5; hence (m ") * ((m ") ") = (m ") * m by A1, ALTCAT_3:3 .= idm o1 by A1, A2, ALTCAT_3:2 ; :: according to ALTCAT_3:def_5 ::_thesis: ((m ") ") * (m ") = idm o2 thus ((m ") ") * (m ") = m * (m ") by A1, A2, ALTCAT_3:3 .= idm o2 by A1, A2, ALTCAT_3:2 ; ::_thesis: verum end; theorem Th4: :: ALTCAT_4:4 for C being non empty with_units AltCatStr for o being object of C holds ( idm o is epi & idm o is mono ) proof let C be non empty with_units AltCatStr ; ::_thesis: for o being object of C holds ( idm o is epi & idm o is mono ) let o be object of C; ::_thesis: ( idm o is epi & idm o is mono ) thus idm o is epi ::_thesis: idm o is mono proof let o1 be object of C; :: according to ALTCAT_3:def_8 ::_thesis: ( <^o,o1^> = {} or for b1, b2 being M2(<^o,o1^>) holds ( not b1 * (idm o) = b2 * (idm o) or b1 = b2 ) ) assume A1: <^o,o1^> <> {} ; ::_thesis: for b1, b2 being M2(<^o,o1^>) holds ( not b1 * (idm o) = b2 * (idm o) or b1 = b2 ) let B, C be Morphism of o,o1; ::_thesis: ( not B * (idm o) = C * (idm o) or B = C ) assume A2: B * (idm o) = C * (idm o) ; ::_thesis: B = C thus B = B * (idm o) by A1, ALTCAT_1:def_17 .= C by A1, A2, ALTCAT_1:def_17 ; ::_thesis: verum end; let o1 be object of C; :: according to ALTCAT_3:def_7 ::_thesis: ( <^o1,o^> = {} or for b1, b2 being M2(<^o1,o^>) holds ( not (idm o) * b1 = (idm o) * b2 or b1 = b2 ) ) assume A3: <^o1,o^> <> {} ; ::_thesis: for b1, b2 being M2(<^o1,o^>) holds ( not (idm o) * b1 = (idm o) * b2 or b1 = b2 ) let B, C be Morphism of o1,o; ::_thesis: ( not (idm o) * B = (idm o) * C or B = C ) assume A4: (idm o) * B = (idm o) * C ; ::_thesis: B = C thus B = (idm o) * B by A3, ALTCAT_1:20 .= C by A3, A4, ALTCAT_1:20 ; ::_thesis: verum end; registration let C be non empty with_units AltCatStr ; let o be object of C; cluster idm o -> retraction coretraction mono epi ; coherence ( idm o is epi & idm o is mono & idm o is retraction & idm o is coretraction ) by Th4, ALTCAT_3:1; end; registration let C be category; let o be object of C; cluster idm o -> iso ; coherence idm o is iso by ALTCAT_3:6; end; theorem :: ALTCAT_4:5 for C being category for o1, o2 being object of C for f being Morphism of o1,o2 for g, h being Morphism of o2,o1 st h * f = idm o1 & f * g = idm o2 & <^o1,o2^> <> {} & <^o2,o1^> <> {} holds g = h proof let C be category; ::_thesis: for o1, o2 being object of C for f being Morphism of o1,o2 for g, h being Morphism of o2,o1 st h * f = idm o1 & f * g = idm o2 & <^o1,o2^> <> {} & <^o2,o1^> <> {} holds g = h let o1, o2 be object of C; ::_thesis: for f being Morphism of o1,o2 for g, h being Morphism of o2,o1 st h * f = idm o1 & f * g = idm o2 & <^o1,o2^> <> {} & <^o2,o1^> <> {} holds g = h let f be Morphism of o1,o2; ::_thesis: for g, h being Morphism of o2,o1 st h * f = idm o1 & f * g = idm o2 & <^o1,o2^> <> {} & <^o2,o1^> <> {} holds g = h let g, h be Morphism of o2,o1; ::_thesis: ( h * f = idm o1 & f * g = idm o2 & <^o1,o2^> <> {} & <^o2,o1^> <> {} implies g = h ) assume that A1: h * f = idm o1 and A2: ( f * g = idm o2 & <^o1,o2^> <> {} ) and A3: <^o2,o1^> <> {} ; ::_thesis: g = h thus g = (h * f) * g by A1, A3, ALTCAT_1:20 .= h * (idm o2) by A2, A3, ALTCAT_1:21 .= h by A3, ALTCAT_1:def_17 ; ::_thesis: verum end; theorem :: ALTCAT_4:6 for C being category st ( for o1, o2 being object of C for f being Morphism of o1,o2 holds f is coretraction ) holds for a, b being object of C for g being Morphism of a,b st <^a,b^> <> {} & <^b,a^> <> {} holds g is iso proof let C be category; ::_thesis: ( ( for o1, o2 being object of C for f being Morphism of o1,o2 holds f is coretraction ) implies for a, b being object of C for g being Morphism of a,b st <^a,b^> <> {} & <^b,a^> <> {} holds g is iso ) assume A1: for o1, o2 being object of C for f being Morphism of o1,o2 holds f is coretraction ; ::_thesis: for a, b being object of C for g being Morphism of a,b st <^a,b^> <> {} & <^b,a^> <> {} holds g is iso let a, b be object of C; ::_thesis: for g being Morphism of a,b st <^a,b^> <> {} & <^b,a^> <> {} holds g is iso let g be Morphism of a,b; ::_thesis: ( <^a,b^> <> {} & <^b,a^> <> {} implies g is iso ) assume that A2: <^a,b^> <> {} and A3: <^b,a^> <> {} ; ::_thesis: g is iso A4: g is coretraction by A1; g is retraction proof consider f being Morphism of b,a such that A5: f is_left_inverse_of g by A4, ALTCAT_3:def_3; take f ; :: according to ALTCAT_3:def_2 ::_thesis: g is_left_inverse_of f A6: f is mono by A1, A2, A3, ALTCAT_3:16; f * (g * f) = (f * g) * f by A2, A3, ALTCAT_1:21 .= (idm a) * f by A5, ALTCAT_3:def_1 .= f by A3, ALTCAT_1:20 .= f * (idm b) by A3, ALTCAT_1:def_17 ; hence g * f = idm b by A6, ALTCAT_3:def_7; :: according to ALTCAT_3:def_1 ::_thesis: verum end; hence g is iso by A2, A3, A4, ALTCAT_3:6; ::_thesis: verum end; begin theorem :: ALTCAT_4:7 for C being category for o1, o2 being object of C for m, m9 being Morphism of o1,o2 st m is _zero & m9 is _zero & ex O being object of C st O is _zero holds m = m9 proof let C be category; ::_thesis: for o1, o2 being object of C for m, m9 being Morphism of o1,o2 st m is _zero & m9 is _zero & ex O being object of C st O is _zero holds m = m9 let o1, o2 be object of C; ::_thesis: for m, m9 being Morphism of o1,o2 st m is _zero & m9 is _zero & ex O being object of C st O is _zero holds m = m9 let m, m9 be Morphism of o1,o2; ::_thesis: ( m is _zero & m9 is _zero & ex O being object of C st O is _zero implies m = m9 ) assume that A1: m is _zero and A2: m9 is _zero ; ::_thesis: ( for O being object of C holds not O is _zero or m = m9 ) given O being object of C such that A3: O is _zero ; ::_thesis: m = m9 set n = the Morphism of O,O; set b = the Morphism of O,o2; set a = the Morphism of o1,O; thus m = ( the Morphism of O,o2 * (( the Morphism of O,O ") * the Morphism of O,O)) * the Morphism of o1,O by A1, A3, ALTCAT_3:def_12 .= m9 by A2, A3, ALTCAT_3:def_12 ; ::_thesis: verum end; theorem :: ALTCAT_4:8 for C being non empty AltCatStr for O, A being object of C for M being Morphism of O,A st O is terminal holds M is mono proof let C be non empty AltCatStr ; ::_thesis: for O, A being object of C for M being Morphism of O,A st O is terminal holds M is mono let O, A be object of C; ::_thesis: for M being Morphism of O,A st O is terminal holds M is mono let M be Morphism of O,A; ::_thesis: ( O is terminal implies M is mono ) assume A1: O is terminal ; ::_thesis: M is mono let o be object of C; :: according to ALTCAT_3:def_7 ::_thesis: ( <^o,O^> = {} or for b1, b2 being M2(<^o,O^>) holds ( not M * b1 = M * b2 or b1 = b2 ) ) assume A2: <^o,O^> <> {} ; ::_thesis: for b1, b2 being M2(<^o,O^>) holds ( not M * b1 = M * b2 or b1 = b2 ) let a, b be Morphism of o,O; ::_thesis: ( not M * a = M * b or a = b ) assume M * a = M * b ; ::_thesis: a = b consider N being Morphism of o,O such that N in <^o,O^> and A3: for M1 being Morphism of o,O st M1 in <^o,O^> holds N = M1 by A1, ALTCAT_3:27; thus a = N by A2, A3 .= b by A2, A3 ; ::_thesis: verum end; theorem :: ALTCAT_4:9 for C being non empty AltCatStr for O, A being object of C for M being Morphism of A,O st O is initial holds M is epi proof let C be non empty AltCatStr ; ::_thesis: for O, A being object of C for M being Morphism of A,O st O is initial holds M is epi let O, A be object of C; ::_thesis: for M being Morphism of A,O st O is initial holds M is epi let M be Morphism of A,O; ::_thesis: ( O is initial implies M is epi ) assume A1: O is initial ; ::_thesis: M is epi let o be object of C; :: according to ALTCAT_3:def_8 ::_thesis: ( <^O,o^> = {} or for b1, b2 being M2(<^O,o^>) holds ( not b1 * M = b2 * M or b1 = b2 ) ) assume A2: <^O,o^> <> {} ; ::_thesis: for b1, b2 being M2(<^O,o^>) holds ( not b1 * M = b2 * M or b1 = b2 ) let a, b be Morphism of O,o; ::_thesis: ( not a * M = b * M or a = b ) assume a * M = b * M ; ::_thesis: a = b consider N being Morphism of O,o such that N in <^O,o^> and A3: for M1 being Morphism of O,o st M1 in <^O,o^> holds N = M1 by A1, ALTCAT_3:25; thus a = N by A2, A3 .= b by A2, A3 ; ::_thesis: verum end; theorem :: ALTCAT_4:10 for C being category for o2, o1 being object of C st o2 is terminal & o1,o2 are_iso holds o1 is terminal proof let C be category; ::_thesis: for o2, o1 being object of C st o2 is terminal & o1,o2 are_iso holds o1 is terminal let o2, o1 be object of C; ::_thesis: ( o2 is terminal & o1,o2 are_iso implies o1 is terminal ) assume that A1: o2 is terminal and A2: o1,o2 are_iso ; ::_thesis: o1 is terminal for o3 being object of C ex M being Morphism of o3,o1 st ( M in <^o3,o1^> & ( for v being Morphism of o3,o1 st v in <^o3,o1^> holds M = v ) ) proof consider f being Morphism of o1,o2 such that A3: f is iso by A2, ALTCAT_3:def_6; A4: (f ") * f = idm o1 by A3, ALTCAT_3:def_5; let o3 be object of C; ::_thesis: ex M being Morphism of o3,o1 st ( M in <^o3,o1^> & ( for v being Morphism of o3,o1 st v in <^o3,o1^> holds M = v ) ) consider u being Morphism of o3,o2 such that A5: u in <^o3,o2^> and A6: for M1 being Morphism of o3,o2 st M1 in <^o3,o2^> holds u = M1 by A1, ALTCAT_3:27; take (f ") * u ; ::_thesis: ( (f ") * u in <^o3,o1^> & ( for v being Morphism of o3,o1 st v in <^o3,o1^> holds (f ") * u = v ) ) A7: <^o2,o1^> <> {} by A2, ALTCAT_3:def_6; then A8: <^o3,o1^> <> {} by A5, ALTCAT_1:def_2; hence (f ") * u in <^o3,o1^> ; ::_thesis: for v being Morphism of o3,o1 st v in <^o3,o1^> holds (f ") * u = v A9: <^o1,o2^> <> {} by A2, ALTCAT_3:def_6; let v be Morphism of o3,o1; ::_thesis: ( v in <^o3,o1^> implies (f ") * u = v ) assume v in <^o3,o1^> ; ::_thesis: (f ") * u = v f * v = u by A5, A6; hence (f ") * u = v by A4, A9, A7, A8, Th1; ::_thesis: verum end; hence o1 is terminal by ALTCAT_3:27; ::_thesis: verum end; theorem :: ALTCAT_4:11 for C being category for o1, o2 being object of C st o1 is initial & o1,o2 are_iso holds o2 is initial proof let C be category; ::_thesis: for o1, o2 being object of C st o1 is initial & o1,o2 are_iso holds o2 is initial let o1, o2 be object of C; ::_thesis: ( o1 is initial & o1,o2 are_iso implies o2 is initial ) assume that A1: o1 is initial and A2: o1,o2 are_iso ; ::_thesis: o2 is initial for o3 being object of C ex M being Morphism of o2,o3 st ( M in <^o2,o3^> & ( for v being Morphism of o2,o3 st v in <^o2,o3^> holds M = v ) ) proof consider f being Morphism of o1,o2 such that A3: f is iso by A2, ALTCAT_3:def_6; A4: f * (f ") = idm o2 by A3, ALTCAT_3:def_5; let o3 be object of C; ::_thesis: ex M being Morphism of o2,o3 st ( M in <^o2,o3^> & ( for v being Morphism of o2,o3 st v in <^o2,o3^> holds M = v ) ) consider u being Morphism of o1,o3 such that A5: u in <^o1,o3^> and A6: for M1 being Morphism of o1,o3 st M1 in <^o1,o3^> holds u = M1 by A1, ALTCAT_3:25; take u * (f ") ; ::_thesis: ( u * (f ") in <^o2,o3^> & ( for v being Morphism of o2,o3 st v in <^o2,o3^> holds u * (f ") = v ) ) A7: <^o2,o1^> <> {} by A2, ALTCAT_3:def_6; then A8: <^o2,o3^> <> {} by A5, ALTCAT_1:def_2; hence u * (f ") in <^o2,o3^> ; ::_thesis: for v being Morphism of o2,o3 st v in <^o2,o3^> holds u * (f ") = v A9: <^o1,o2^> <> {} by A2, ALTCAT_3:def_6; let v be Morphism of o2,o3; ::_thesis: ( v in <^o2,o3^> implies u * (f ") = v ) assume v in <^o2,o3^> ; ::_thesis: u * (f ") = v v * f = u by A5, A6; hence u * (f ") = v by A4, A9, A7, A8, Th2; ::_thesis: verum end; hence o2 is initial by ALTCAT_3:25; ::_thesis: verum end; theorem :: ALTCAT_4:12 for C being category for o1, o2 being object of C st o1 is initial & o2 is terminal & <^o2,o1^> <> {} holds ( o2 is initial & o1 is terminal ) proof let C be category; ::_thesis: for o1, o2 being object of C st o1 is initial & o2 is terminal & <^o2,o1^> <> {} holds ( o2 is initial & o1 is terminal ) let o1, o2 be object of C; ::_thesis: ( o1 is initial & o2 is terminal & <^o2,o1^> <> {} implies ( o2 is initial & o1 is terminal ) ) assume that A1: o1 is initial and A2: o2 is terminal ; ::_thesis: ( not <^o2,o1^> <> {} or ( o2 is initial & o1 is terminal ) ) consider l being Morphism of o1,o2 such that A3: l in <^o1,o2^> and for M1 being Morphism of o1,o2 st M1 in <^o1,o2^> holds l = M1 by A1, ALTCAT_3:25; assume <^o2,o1^> <> {} ; ::_thesis: ( o2 is initial & o1 is terminal ) then consider m being set such that A4: m in <^o2,o1^> by XBOOLE_0:def_1; reconsider m = m as Morphism of o2,o1 by A4; for o3 being object of C ex M being Morphism of o2,o3 st ( M in <^o2,o3^> & ( for M1 being Morphism of o2,o3 st M1 in <^o2,o3^> holds M = M1 ) ) proof let o3 be object of C; ::_thesis: ex M being Morphism of o2,o3 st ( M in <^o2,o3^> & ( for M1 being Morphism of o2,o3 st M1 in <^o2,o3^> holds M = M1 ) ) consider M being Morphism of o1,o3 such that A5: M in <^o1,o3^> and A6: for M1 being Morphism of o1,o3 st M1 in <^o1,o3^> holds M = M1 by A1, ALTCAT_3:25; take M * m ; ::_thesis: ( M * m in <^o2,o3^> & ( for M1 being Morphism of o2,o3 st M1 in <^o2,o3^> holds M * m = M1 ) ) <^o2,o3^> <> {} by A4, A5, ALTCAT_1:def_2; hence M * m in <^o2,o3^> ; ::_thesis: for M1 being Morphism of o2,o3 st M1 in <^o2,o3^> holds M * m = M1 let M1 be Morphism of o2,o3; ::_thesis: ( M1 in <^o2,o3^> implies M * m = M1 ) assume A7: M1 in <^o2,o3^> ; ::_thesis: M * m = M1 consider i2 being Morphism of o2,o2 such that i2 in <^o2,o2^> and A8: for M1 being Morphism of o2,o2 st M1 in <^o2,o2^> holds i2 = M1 by A2, ALTCAT_3:27; thus M * m = (M1 * l) * m by A5, A6 .= M1 * (l * m) by A4, A3, A7, ALTCAT_1:21 .= M1 * i2 by A8 .= M1 * (idm o2) by A8 .= M1 by A7, ALTCAT_1:def_17 ; ::_thesis: verum end; hence o2 is initial by ALTCAT_3:25; ::_thesis: o1 is terminal for o3 being object of C ex M being Morphism of o3,o1 st ( M in <^o3,o1^> & ( for M1 being Morphism of o3,o1 st M1 in <^o3,o1^> holds M = M1 ) ) proof let o3 be object of C; ::_thesis: ex M being Morphism of o3,o1 st ( M in <^o3,o1^> & ( for M1 being Morphism of o3,o1 st M1 in <^o3,o1^> holds M = M1 ) ) consider M being Morphism of o3,o2 such that A9: M in <^o3,o2^> and A10: for M1 being Morphism of o3,o2 st M1 in <^o3,o2^> holds M = M1 by A2, ALTCAT_3:27; take m * M ; ::_thesis: ( m * M in <^o3,o1^> & ( for M1 being Morphism of o3,o1 st M1 in <^o3,o1^> holds m * M = M1 ) ) <^o3,o1^> <> {} by A4, A9, ALTCAT_1:def_2; hence m * M in <^o3,o1^> ; ::_thesis: for M1 being Morphism of o3,o1 st M1 in <^o3,o1^> holds m * M = M1 let M1 be Morphism of o3,o1; ::_thesis: ( M1 in <^o3,o1^> implies m * M = M1 ) assume A11: M1 in <^o3,o1^> ; ::_thesis: m * M = M1 consider i1 being Morphism of o1,o1 such that i1 in <^o1,o1^> and A12: for M1 being Morphism of o1,o1 st M1 in <^o1,o1^> holds i1 = M1 by A1, ALTCAT_3:25; thus m * M = m * (l * M1) by A9, A10 .= (m * l) * M1 by A4, A3, A11, ALTCAT_1:21 .= i1 * M1 by A12 .= (idm o1) * M1 by A12 .= M1 by A11, ALTCAT_1:20 ; ::_thesis: verum end; hence o1 is terminal by ALTCAT_3:27; ::_thesis: verum end; begin theorem Th13: :: ALTCAT_4:13 for A, B being non empty transitive with_units AltCatStr for F being contravariant Functor of A,B for a being object of A holds F . (idm a) = idm (F . a) proof let A, B be non empty transitive with_units AltCatStr ; ::_thesis: for F being contravariant Functor of A,B for a being object of A holds F . (idm a) = idm (F . a) let F be contravariant Functor of A,B; ::_thesis: for a being object of A holds F . (idm a) = idm (F . a) let a be object of A; ::_thesis: F . (idm a) = idm (F . a) thus F . (idm a) = (Morph-Map (F,a,a)) . (idm a) by FUNCTOR0:def_16 .= idm (F . a) by FUNCTOR0:def_20 ; ::_thesis: verum end; theorem Th14: :: ALTCAT_4:14 for C1, C2 being non empty AltCatStr for F being Contravariant FunctorStr over C1,C2 holds ( F is full iff for o1, o2 being object of C1 holds Morph-Map (F,o2,o1) is onto ) proof let C1, C2 be non empty AltCatStr ; ::_thesis: for F being Contravariant FunctorStr over C1,C2 holds ( F is full iff for o1, o2 being object of C1 holds Morph-Map (F,o2,o1) is onto ) let F be Contravariant FunctorStr over C1,C2; ::_thesis: ( F is full iff for o1, o2 being object of C1 holds Morph-Map (F,o2,o1) is onto ) set I = [: the carrier of C1, the carrier of C1:]; hereby ::_thesis: ( ( for o1, o2 being object of C1 holds Morph-Map (F,o2,o1) is onto ) implies F is full ) assume A1: F is full ; ::_thesis: for o1, o2 being object of C1 holds Morph-Map (F,o2,o1) is onto let o1, o2 be object of C1; ::_thesis: Morph-Map (F,o2,o1) is onto thus Morph-Map (F,o2,o1) is onto ::_thesis: verum proof A2: [o2,o1] in [: the carrier of C1, the carrier of C1:] by ZFMISC_1:87; then A3: [o2,o1] in dom the ObjectMap of F by FUNCT_2:def_1; consider f being ManySortedFunction of the Arrows of C1, the Arrows of C2 * the ObjectMap of F such that A4: f = the MorphMap of F and A5: f is "onto" by A1, FUNCTOR0:def_32; rng (f . [o2,o1]) = ( the Arrows of C2 * the ObjectMap of F) . [o2,o1] by A5, A2, MSUALG_3:def_3; hence rng (Morph-Map (F,o2,o1)) = the Arrows of C2 . ( the ObjectMap of F . (o2,o1)) by A4, A3, FUNCT_1:13 .= <^(F . o1),(F . o2)^> by FUNCTOR0:23 ; :: according to FUNCT_2:def_3 ::_thesis: verum end; end; assume A6: for o1, o2 being object of C1 holds Morph-Map (F,o2,o1) is onto ; ::_thesis: F is full ex I29 being non empty set ex B9 being ManySortedSet of I29 ex f9 being Function of [: the carrier of C1, the carrier of C1:],I29 st ( the ObjectMap of F = f9 & the Arrows of C2 = B9 & the MorphMap of F is ManySortedFunction of the Arrows of C1,B9 * f9 ) by FUNCTOR0:def_3; then reconsider f = the MorphMap of F as ManySortedFunction of the Arrows of C1, the Arrows of C2 * the ObjectMap of F ; take f ; :: according to FUNCTOR0:def_32 ::_thesis: ( f = the MorphMap of F & f is "onto" ) thus f = the MorphMap of F ; ::_thesis: f is "onto" let i be set ; :: according to MSUALG_3:def_3 ::_thesis: ( not i in [: the carrier of C1, the carrier of C1:] or proj2 (f . i) = ( the ObjectMap of F * the Arrows of C2) . i ) assume i in [: the carrier of C1, the carrier of C1:] ; ::_thesis: proj2 (f . i) = ( the ObjectMap of F * the Arrows of C2) . i then consider o2, o1 being set such that A7: ( o2 in the carrier of C1 & o1 in the carrier of C1 ) and A8: i = [o2,o1] by ZFMISC_1:84; reconsider o1 = o1, o2 = o2 as object of C1 by A7; [o2,o1] in [: the carrier of C1, the carrier of C1:] by ZFMISC_1:87; then A9: [o2,o1] in dom the ObjectMap of F by FUNCT_2:def_1; Morph-Map (F,o2,o1) is onto by A6; then rng (Morph-Map (F,o2,o1)) = the Arrows of C2 . ((F . o1),(F . o2)) by FUNCT_2:def_3 .= the Arrows of C2 . ( the ObjectMap of F . (o2,o1)) by FUNCTOR0:23 .= ( the Arrows of C2 * the ObjectMap of F) . [o2,o1] by A9, FUNCT_1:13 ; hence proj2 (f . i) = ( the ObjectMap of F * the Arrows of C2) . i by A8; ::_thesis: verum end; theorem Th15: :: ALTCAT_4:15 for C1, C2 being non empty AltCatStr for F being Contravariant FunctorStr over C1,C2 holds ( F is faithful iff for o1, o2 being object of C1 holds Morph-Map (F,o2,o1) is one-to-one ) proof let C1, C2 be non empty AltCatStr ; ::_thesis: for F being Contravariant FunctorStr over C1,C2 holds ( F is faithful iff for o1, o2 being object of C1 holds Morph-Map (F,o2,o1) is one-to-one ) let F be Contravariant FunctorStr over C1,C2; ::_thesis: ( F is faithful iff for o1, o2 being object of C1 holds Morph-Map (F,o2,o1) is one-to-one ) set I = [: the carrier of C1, the carrier of C1:]; hereby ::_thesis: ( ( for o1, o2 being object of C1 holds Morph-Map (F,o2,o1) is one-to-one ) implies F is faithful ) assume F is faithful ; ::_thesis: for o1, o2 being object of C1 holds Morph-Map (F,o2,o1) is one-to-one then A1: the MorphMap of F is "1-1" by FUNCTOR0:def_30; let o1, o2 be object of C1; ::_thesis: Morph-Map (F,o2,o1) is one-to-one ( [o2,o1] in [: the carrier of C1, the carrier of C1:] & dom the MorphMap of F = [: the carrier of C1, the carrier of C1:] ) by PARTFUN1:def_2, ZFMISC_1:87; hence Morph-Map (F,o2,o1) is one-to-one by A1, MSUALG_3:def_2; ::_thesis: verum end; assume A2: for o1, o2 being object of C1 holds Morph-Map (F,o2,o1) is one-to-one ; ::_thesis: F is faithful let i be set ; :: according to FUNCTOR0:def_30,MSUALG_3:def_2 ::_thesis: for b1 being set holds ( not i in proj1 the MorphMap of F or not the MorphMap of F . i = b1 or b1 is one-to-one ) let f be Function; ::_thesis: ( not i in proj1 the MorphMap of F or not the MorphMap of F . i = f or f is one-to-one ) assume that A3: i in dom the MorphMap of F and A4: the MorphMap of F . i = f ; ::_thesis: f is one-to-one dom the MorphMap of F = [: the carrier of C1, the carrier of C1:] by PARTFUN1:def_2; then consider o1, o2 being set such that A5: ( o1 in the carrier of C1 & o2 in the carrier of C1 ) and A6: i = [o1,o2] by A3, ZFMISC_1:84; reconsider o1 = o1, o2 = o2 as object of C1 by A5; the MorphMap of F . (o1,o2) = Morph-Map (F,o1,o2) ; hence f is one-to-one by A2, A4, A6; ::_thesis: verum end; theorem Th16: :: ALTCAT_4:16 for C1, C2 being non empty AltCatStr for F being Covariant FunctorStr over C1,C2 for o1, o2 being object of C1 for Fm being Morphism of (F . o1),(F . o2) st <^o1,o2^> <> {} & F is full & F is feasible holds ex m being Morphism of o1,o2 st Fm = F . m proof let C1, C2 be non empty AltCatStr ; ::_thesis: for F being Covariant FunctorStr over C1,C2 for o1, o2 being object of C1 for Fm being Morphism of (F . o1),(F . o2) st <^o1,o2^> <> {} & F is full & F is feasible holds ex m being Morphism of o1,o2 st Fm = F . m let F be Covariant FunctorStr over C1,C2; ::_thesis: for o1, o2 being object of C1 for Fm being Morphism of (F . o1),(F . o2) st <^o1,o2^> <> {} & F is full & F is feasible holds ex m being Morphism of o1,o2 st Fm = F . m let o1, o2 be object of C1; ::_thesis: for Fm being Morphism of (F . o1),(F . o2) st <^o1,o2^> <> {} & F is full & F is feasible holds ex m being Morphism of o1,o2 st Fm = F . m let Fm be Morphism of (F . o1),(F . o2); ::_thesis: ( <^o1,o2^> <> {} & F is full & F is feasible implies ex m being Morphism of o1,o2 st Fm = F . m ) assume A1: <^o1,o2^> <> {} ; ::_thesis: ( not F is full or not F is feasible or ex m being Morphism of o1,o2 st Fm = F . m ) assume F is full ; ::_thesis: ( not F is feasible or ex m being Morphism of o1,o2 st Fm = F . m ) then Morph-Map (F,o1,o2) is onto by FUNCTOR1:15; then A2: rng (Morph-Map (F,o1,o2)) = <^(F . o1),(F . o2)^> by FUNCT_2:def_3; assume F is feasible ; ::_thesis: ex m being Morphism of o1,o2 st Fm = F . m then A3: <^(F . o1),(F . o2)^> <> {} by A1, FUNCTOR0:def_18; then consider m being set such that A4: m in dom (Morph-Map (F,o1,o2)) and A5: Fm = (Morph-Map (F,o1,o2)) . m by A2, FUNCT_1:def_3; reconsider m = m as Morphism of o1,o2 by A3, A4, FUNCT_2:def_1; take m ; ::_thesis: Fm = F . m thus Fm = F . m by A1, A3, A5, FUNCTOR0:def_15; ::_thesis: verum end; theorem Th17: :: ALTCAT_4:17 for C1, C2 being non empty AltCatStr for F being Contravariant FunctorStr over C1,C2 for o1, o2 being object of C1 for Fm being Morphism of (F . o2),(F . o1) st <^o1,o2^> <> {} & F is full & F is feasible holds ex m being Morphism of o1,o2 st Fm = F . m proof let C1, C2 be non empty AltCatStr ; ::_thesis: for F being Contravariant FunctorStr over C1,C2 for o1, o2 being object of C1 for Fm being Morphism of (F . o2),(F . o1) st <^o1,o2^> <> {} & F is full & F is feasible holds ex m being Morphism of o1,o2 st Fm = F . m let F be Contravariant FunctorStr over C1,C2; ::_thesis: for o1, o2 being object of C1 for Fm being Morphism of (F . o2),(F . o1) st <^o1,o2^> <> {} & F is full & F is feasible holds ex m being Morphism of o1,o2 st Fm = F . m let o1, o2 be object of C1; ::_thesis: for Fm being Morphism of (F . o2),(F . o1) st <^o1,o2^> <> {} & F is full & F is feasible holds ex m being Morphism of o1,o2 st Fm = F . m let Fm be Morphism of (F . o2),(F . o1); ::_thesis: ( <^o1,o2^> <> {} & F is full & F is feasible implies ex m being Morphism of o1,o2 st Fm = F . m ) assume A1: <^o1,o2^> <> {} ; ::_thesis: ( not F is full or not F is feasible or ex m being Morphism of o1,o2 st Fm = F . m ) assume F is full ; ::_thesis: ( not F is feasible or ex m being Morphism of o1,o2 st Fm = F . m ) then Morph-Map (F,o1,o2) is onto by Th14; then A2: rng (Morph-Map (F,o1,o2)) = <^(F . o2),(F . o1)^> by FUNCT_2:def_3; assume F is feasible ; ::_thesis: ex m being Morphism of o1,o2 st Fm = F . m then A3: <^(F . o2),(F . o1)^> <> {} by A1, FUNCTOR0:def_19; then consider m being set such that A4: m in dom (Morph-Map (F,o1,o2)) and A5: Fm = (Morph-Map (F,o1,o2)) . m by A2, FUNCT_1:def_3; reconsider m = m as Morphism of o1,o2 by A3, A4, FUNCT_2:def_1; take m ; ::_thesis: Fm = F . m thus Fm = F . m by A1, A3, A5, FUNCTOR0:def_16; ::_thesis: verum end; theorem Th18: :: ALTCAT_4:18 for A, B being non empty transitive with_units AltCatStr for F being covariant Functor of A,B for o1, o2 being object of A for a being Morphism of o1,o2 st <^o1,o2^> <> {} & <^o2,o1^> <> {} & a is retraction holds F . a is retraction proof let A, B be non empty transitive with_units AltCatStr ; ::_thesis: for F being covariant Functor of A,B for o1, o2 being object of A for a being Morphism of o1,o2 st <^o1,o2^> <> {} & <^o2,o1^> <> {} & a is retraction holds F . a is retraction let F be covariant Functor of A,B; ::_thesis: for o1, o2 being object of A for a being Morphism of o1,o2 st <^o1,o2^> <> {} & <^o2,o1^> <> {} & a is retraction holds F . a is retraction let o1, o2 be object of A; ::_thesis: for a being Morphism of o1,o2 st <^o1,o2^> <> {} & <^o2,o1^> <> {} & a is retraction holds F . a is retraction let a be Morphism of o1,o2; ::_thesis: ( <^o1,o2^> <> {} & <^o2,o1^> <> {} & a is retraction implies F . a is retraction ) assume A1: ( <^o1,o2^> <> {} & <^o2,o1^> <> {} ) ; ::_thesis: ( not a is retraction or F . a is retraction ) assume a is retraction ; ::_thesis: F . a is retraction then consider b being Morphism of o2,o1 such that A2: b is_right_inverse_of a by ALTCAT_3:def_2; take F . b ; :: according to ALTCAT_3:def_2 ::_thesis: F . a is_left_inverse_of F . b a * b = idm o2 by A2, ALTCAT_3:def_1; hence (F . a) * (F . b) = F . (idm o2) by A1, FUNCTOR0:def_23 .= idm (F . o2) by FUNCTOR2:1 ; :: according to ALTCAT_3:def_1 ::_thesis: verum end; theorem Th19: :: ALTCAT_4:19 for A, B being non empty transitive with_units AltCatStr for F being covariant Functor of A,B for o1, o2 being object of A for a being Morphism of o1,o2 st <^o1,o2^> <> {} & <^o2,o1^> <> {} & a is coretraction holds F . a is coretraction proof let A, B be non empty transitive with_units AltCatStr ; ::_thesis: for F being covariant Functor of A,B for o1, o2 being object of A for a being Morphism of o1,o2 st <^o1,o2^> <> {} & <^o2,o1^> <> {} & a is coretraction holds F . a is coretraction let F be covariant Functor of A,B; ::_thesis: for o1, o2 being object of A for a being Morphism of o1,o2 st <^o1,o2^> <> {} & <^o2,o1^> <> {} & a is coretraction holds F . a is coretraction let o1, o2 be object of A; ::_thesis: for a being Morphism of o1,o2 st <^o1,o2^> <> {} & <^o2,o1^> <> {} & a is coretraction holds F . a is coretraction let a be Morphism of o1,o2; ::_thesis: ( <^o1,o2^> <> {} & <^o2,o1^> <> {} & a is coretraction implies F . a is coretraction ) assume A1: ( <^o1,o2^> <> {} & <^o2,o1^> <> {} ) ; ::_thesis: ( not a is coretraction or F . a is coretraction ) assume a is coretraction ; ::_thesis: F . a is coretraction then consider b being Morphism of o2,o1 such that A2: a is_right_inverse_of b by ALTCAT_3:def_3; take F . b ; :: according to ALTCAT_3:def_3 ::_thesis: F . b is_left_inverse_of F . a b * a = idm o1 by A2, ALTCAT_3:def_1; hence (F . b) * (F . a) = F . (idm o1) by A1, FUNCTOR0:def_23 .= idm (F . o1) by FUNCTOR2:1 ; :: according to ALTCAT_3:def_1 ::_thesis: verum end; theorem Th20: :: ALTCAT_4:20 for A, B being category for F being covariant Functor of A,B for o1, o2 being object of A for a being Morphism of o1,o2 st <^o1,o2^> <> {} & <^o2,o1^> <> {} & a is iso holds F . a is iso proof let A, B be category; ::_thesis: for F being covariant Functor of A,B for o1, o2 being object of A for a being Morphism of o1,o2 st <^o1,o2^> <> {} & <^o2,o1^> <> {} & a is iso holds F . a is iso let F be covariant Functor of A,B; ::_thesis: for o1, o2 being object of A for a being Morphism of o1,o2 st <^o1,o2^> <> {} & <^o2,o1^> <> {} & a is iso holds F . a is iso let o1, o2 be object of A; ::_thesis: for a being Morphism of o1,o2 st <^o1,o2^> <> {} & <^o2,o1^> <> {} & a is iso holds F . a is iso let a be Morphism of o1,o2; ::_thesis: ( <^o1,o2^> <> {} & <^o2,o1^> <> {} & a is iso implies F . a is iso ) assume that A1: ( <^o1,o2^> <> {} & <^o2,o1^> <> {} ) and A2: a is iso ; ::_thesis: F . a is iso ( a is retraction & a is coretraction ) by A1, A2, ALTCAT_3:6; then A3: ( F . a is retraction & F . a is coretraction ) by A1, Th18, Th19; ( <^(F . o1),(F . o2)^> <> {} & <^(F . o2),(F . o1)^> <> {} ) by A1, FUNCTOR0:def_18; hence F . a is iso by A3, ALTCAT_3:6; ::_thesis: verum end; theorem :: ALTCAT_4:21 for A, B being category for F being covariant Functor of A,B for o1, o2 being object of A st o1,o2 are_iso holds F . o1,F . o2 are_iso proof let A, B be category; ::_thesis: for F being covariant Functor of A,B for o1, o2 being object of A st o1,o2 are_iso holds F . o1,F . o2 are_iso let F be covariant Functor of A,B; ::_thesis: for o1, o2 being object of A st o1,o2 are_iso holds F . o1,F . o2 are_iso let o1, o2 be object of A; ::_thesis: ( o1,o2 are_iso implies F . o1,F . o2 are_iso ) assume A1: o1,o2 are_iso ; ::_thesis: F . o1,F . o2 are_iso then consider a being Morphism of o1,o2 such that A2: a is iso by ALTCAT_3:def_6; A3: ( <^o1,o2^> <> {} & <^o2,o1^> <> {} ) by A1, ALTCAT_3:def_6; hence ( <^(F . o1),(F . o2)^> <> {} & <^(F . o2),(F . o1)^> <> {} ) by FUNCTOR0:def_18; :: according to ALTCAT_3:def_6 ::_thesis: ex b1 being M2(<^(F . o1),(F . o2)^>) st b1 is iso take F . a ; ::_thesis: F . a is iso thus F . a is iso by A3, A2, Th20; ::_thesis: verum end; theorem Th22: :: ALTCAT_4:22 for A, B being non empty transitive with_units AltCatStr for F being contravariant Functor of A,B for o1, o2 being object of A for a being Morphism of o1,o2 st <^o1,o2^> <> {} & <^o2,o1^> <> {} & a is retraction holds F . a is coretraction proof let A, B be non empty transitive with_units AltCatStr ; ::_thesis: for F being contravariant Functor of A,B for o1, o2 being object of A for a being Morphism of o1,o2 st <^o1,o2^> <> {} & <^o2,o1^> <> {} & a is retraction holds F . a is coretraction let F be contravariant Functor of A,B; ::_thesis: for o1, o2 being object of A for a being Morphism of o1,o2 st <^o1,o2^> <> {} & <^o2,o1^> <> {} & a is retraction holds F . a is coretraction let o1, o2 be object of A; ::_thesis: for a being Morphism of o1,o2 st <^o1,o2^> <> {} & <^o2,o1^> <> {} & a is retraction holds F . a is coretraction let a be Morphism of o1,o2; ::_thesis: ( <^o1,o2^> <> {} & <^o2,o1^> <> {} & a is retraction implies F . a is coretraction ) assume A1: ( <^o1,o2^> <> {} & <^o2,o1^> <> {} ) ; ::_thesis: ( not a is retraction or F . a is coretraction ) assume a is retraction ; ::_thesis: F . a is coretraction then consider b being Morphism of o2,o1 such that A2: b is_right_inverse_of a by ALTCAT_3:def_2; take F . b ; :: according to ALTCAT_3:def_3 ::_thesis: F . b is_left_inverse_of F . a a * b = idm o2 by A2, ALTCAT_3:def_1; hence (F . b) * (F . a) = F . (idm o2) by A1, FUNCTOR0:def_24 .= idm (F . o2) by Th13 ; :: according to ALTCAT_3:def_1 ::_thesis: verum end; theorem Th23: :: ALTCAT_4:23 for A, B being non empty transitive with_units AltCatStr for F being contravariant Functor of A,B for o1, o2 being object of A for a being Morphism of o1,o2 st <^o1,o2^> <> {} & <^o2,o1^> <> {} & a is coretraction holds F . a is retraction proof let A, B be non empty transitive with_units AltCatStr ; ::_thesis: for F being contravariant Functor of A,B for o1, o2 being object of A for a being Morphism of o1,o2 st <^o1,o2^> <> {} & <^o2,o1^> <> {} & a is coretraction holds F . a is retraction let F be contravariant Functor of A,B; ::_thesis: for o1, o2 being object of A for a being Morphism of o1,o2 st <^o1,o2^> <> {} & <^o2,o1^> <> {} & a is coretraction holds F . a is retraction let o1, o2 be object of A; ::_thesis: for a being Morphism of o1,o2 st <^o1,o2^> <> {} & <^o2,o1^> <> {} & a is coretraction holds F . a is retraction let a be Morphism of o1,o2; ::_thesis: ( <^o1,o2^> <> {} & <^o2,o1^> <> {} & a is coretraction implies F . a is retraction ) assume A1: ( <^o1,o2^> <> {} & <^o2,o1^> <> {} ) ; ::_thesis: ( not a is coretraction or F . a is retraction ) assume a is coretraction ; ::_thesis: F . a is retraction then consider b being Morphism of o2,o1 such that A2: a is_right_inverse_of b by ALTCAT_3:def_3; take F . b ; :: according to ALTCAT_3:def_2 ::_thesis: F . a is_left_inverse_of F . b b * a = idm o1 by A2, ALTCAT_3:def_1; hence (F . a) * (F . b) = F . (idm o1) by A1, FUNCTOR0:def_24 .= idm (F . o1) by Th13 ; :: according to ALTCAT_3:def_1 ::_thesis: verum end; theorem Th24: :: ALTCAT_4:24 for A, B being category for F being contravariant Functor of A,B for o1, o2 being object of A for a being Morphism of o1,o2 st <^o1,o2^> <> {} & <^o2,o1^> <> {} & a is iso holds F . a is iso proof let A, B be category; ::_thesis: for F being contravariant Functor of A,B for o1, o2 being object of A for a being Morphism of o1,o2 st <^o1,o2^> <> {} & <^o2,o1^> <> {} & a is iso holds F . a is iso let F be contravariant Functor of A,B; ::_thesis: for o1, o2 being object of A for a being Morphism of o1,o2 st <^o1,o2^> <> {} & <^o2,o1^> <> {} & a is iso holds F . a is iso let o1, o2 be object of A; ::_thesis: for a being Morphism of o1,o2 st <^o1,o2^> <> {} & <^o2,o1^> <> {} & a is iso holds F . a is iso let a be Morphism of o1,o2; ::_thesis: ( <^o1,o2^> <> {} & <^o2,o1^> <> {} & a is iso implies F . a is iso ) assume that A1: ( <^o1,o2^> <> {} & <^o2,o1^> <> {} ) and A2: a is iso ; ::_thesis: F . a is iso ( a is retraction & a is coretraction ) by A1, A2, ALTCAT_3:6; then A3: ( F . a is retraction & F . a is coretraction ) by A1, Th22, Th23; ( <^(F . o1),(F . o2)^> <> {} & <^(F . o2),(F . o1)^> <> {} ) by A1, FUNCTOR0:def_19; hence F . a is iso by A3, ALTCAT_3:6; ::_thesis: verum end; theorem :: ALTCAT_4:25 for A, B being category for F being contravariant Functor of A,B for o1, o2 being object of A st o1,o2 are_iso holds F . o2,F . o1 are_iso proof let A, B be category; ::_thesis: for F being contravariant Functor of A,B for o1, o2 being object of A st o1,o2 are_iso holds F . o2,F . o1 are_iso let F be contravariant Functor of A,B; ::_thesis: for o1, o2 being object of A st o1,o2 are_iso holds F . o2,F . o1 are_iso let o1, o2 be object of A; ::_thesis: ( o1,o2 are_iso implies F . o2,F . o1 are_iso ) assume A1: o1,o2 are_iso ; ::_thesis: F . o2,F . o1 are_iso then consider a being Morphism of o1,o2 such that A2: a is iso by ALTCAT_3:def_6; A3: ( <^o1,o2^> <> {} & <^o2,o1^> <> {} ) by A1, ALTCAT_3:def_6; hence ( <^(F . o2),(F . o1)^> <> {} & <^(F . o1),(F . o2)^> <> {} ) by FUNCTOR0:def_19; :: according to ALTCAT_3:def_6 ::_thesis: ex b1 being M2(<^(F . o2),(F . o1)^>) st b1 is iso take F . a ; ::_thesis: F . a is iso thus F . a is iso by A3, A2, Th24; ::_thesis: verum end; theorem Th26: :: ALTCAT_4:26 for A, B being non empty transitive with_units AltCatStr for F being covariant Functor of A,B for o1, o2 being object of A for a being Morphism of o1,o2 st F is full & F is faithful & <^o1,o2^> <> {} & <^o2,o1^> <> {} & F . a is retraction holds a is retraction proof let A, B be non empty transitive with_units AltCatStr ; ::_thesis: for F being covariant Functor of A,B for o1, o2 being object of A for a being Morphism of o1,o2 st F is full & F is faithful & <^o1,o2^> <> {} & <^o2,o1^> <> {} & F . a is retraction holds a is retraction let F be covariant Functor of A,B; ::_thesis: for o1, o2 being object of A for a being Morphism of o1,o2 st F is full & F is faithful & <^o1,o2^> <> {} & <^o2,o1^> <> {} & F . a is retraction holds a is retraction let o1, o2 be object of A; ::_thesis: for a being Morphism of o1,o2 st F is full & F is faithful & <^o1,o2^> <> {} & <^o2,o1^> <> {} & F . a is retraction holds a is retraction let a be Morphism of o1,o2; ::_thesis: ( F is full & F is faithful & <^o1,o2^> <> {} & <^o2,o1^> <> {} & F . a is retraction implies a is retraction ) assume that A1: ( F is full & F is faithful ) and A2: <^o1,o2^> <> {} and A3: <^o2,o1^> <> {} ; ::_thesis: ( not F . a is retraction or a is retraction ) A4: <^(F . o2),(F . o1)^> <> {} by A3, FUNCTOR0:def_18; assume F . a is retraction ; ::_thesis: a is retraction then consider b being Morphism of (F . o2),(F . o1) such that A5: b is_right_inverse_of F . a by ALTCAT_3:def_2; Morph-Map (F,o2,o1) is onto by A1, FUNCTOR1:15; then rng (Morph-Map (F,o2,o1)) = <^(F . o2),(F . o1)^> by FUNCT_2:def_3; then consider a9 being set such that A6: a9 in dom (Morph-Map (F,o2,o1)) and A7: b = (Morph-Map (F,o2,o1)) . a9 by A4, FUNCT_1:def_3; reconsider a9 = a9 as Morphism of o2,o1 by A4, A6, FUNCT_2:def_1; take a9 ; :: according to ALTCAT_3:def_2 ::_thesis: a is_left_inverse_of a9 A8: (F . a) * b = idm (F . o2) by A5, ALTCAT_3:def_1; A9: ( dom (Morph-Map (F,o2,o2)) = <^o2,o2^> & Morph-Map (F,o2,o2) is one-to-one ) by A1, FUNCTOR1:16, FUNCT_2:def_1; (Morph-Map (F,o2,o2)) . (idm o2) = F . (idm o2) by FUNCTOR0:def_15 .= idm (F . o2) by FUNCTOR2:1 .= (F . a) * (F . a9) by A3, A8, A4, A7, FUNCTOR0:def_15 .= F . (a * a9) by A2, A3, FUNCTOR0:def_23 .= (Morph-Map (F,o2,o2)) . (a * a9) by FUNCTOR0:def_15 ; hence a * a9 = idm o2 by A9, FUNCT_1:def_4; :: according to ALTCAT_3:def_1 ::_thesis: verum end; theorem Th27: :: ALTCAT_4:27 for A, B being non empty transitive with_units AltCatStr for F being covariant Functor of A,B for o1, o2 being object of A for a being Morphism of o1,o2 st F is full & F is faithful & <^o1,o2^> <> {} & <^o2,o1^> <> {} & F . a is coretraction holds a is coretraction proof let A, B be non empty transitive with_units AltCatStr ; ::_thesis: for F being covariant Functor of A,B for o1, o2 being object of A for a being Morphism of o1,o2 st F is full & F is faithful & <^o1,o2^> <> {} & <^o2,o1^> <> {} & F . a is coretraction holds a is coretraction let F be covariant Functor of A,B; ::_thesis: for o1, o2 being object of A for a being Morphism of o1,o2 st F is full & F is faithful & <^o1,o2^> <> {} & <^o2,o1^> <> {} & F . a is coretraction holds a is coretraction let o1, o2 be object of A; ::_thesis: for a being Morphism of o1,o2 st F is full & F is faithful & <^o1,o2^> <> {} & <^o2,o1^> <> {} & F . a is coretraction holds a is coretraction let a be Morphism of o1,o2; ::_thesis: ( F is full & F is faithful & <^o1,o2^> <> {} & <^o2,o1^> <> {} & F . a is coretraction implies a is coretraction ) assume that A1: ( F is full & F is faithful ) and A2: <^o1,o2^> <> {} and A3: <^o2,o1^> <> {} ; ::_thesis: ( not F . a is coretraction or a is coretraction ) A4: <^(F . o2),(F . o1)^> <> {} by A3, FUNCTOR0:def_18; assume F . a is coretraction ; ::_thesis: a is coretraction then consider b being Morphism of (F . o2),(F . o1) such that A5: F . a is_right_inverse_of b by ALTCAT_3:def_3; Morph-Map (F,o2,o1) is onto by A1, FUNCTOR1:15; then rng (Morph-Map (F,o2,o1)) = <^(F . o2),(F . o1)^> by FUNCT_2:def_3; then consider a9 being set such that A6: a9 in dom (Morph-Map (F,o2,o1)) and A7: b = (Morph-Map (F,o2,o1)) . a9 by A4, FUNCT_1:def_3; reconsider a9 = a9 as Morphism of o2,o1 by A4, A6, FUNCT_2:def_1; take a9 ; :: according to ALTCAT_3:def_3 ::_thesis: a9 is_left_inverse_of a A8: b * (F . a) = idm (F . o1) by A5, ALTCAT_3:def_1; A9: ( dom (Morph-Map (F,o1,o1)) = <^o1,o1^> & Morph-Map (F,o1,o1) is one-to-one ) by A1, FUNCTOR1:16, FUNCT_2:def_1; (Morph-Map (F,o1,o1)) . (idm o1) = F . (idm o1) by FUNCTOR0:def_15 .= idm (F . o1) by FUNCTOR2:1 .= (F . a9) * (F . a) by A3, A8, A4, A7, FUNCTOR0:def_15 .= F . (a9 * a) by A2, A3, FUNCTOR0:def_23 .= (Morph-Map (F,o1,o1)) . (a9 * a) by FUNCTOR0:def_15 ; hence a9 * a = idm o1 by A9, FUNCT_1:def_4; :: according to ALTCAT_3:def_1 ::_thesis: verum end; theorem Th28: :: ALTCAT_4:28 for A, B being category for F being covariant Functor of A,B for o1, o2 being object of A for a being Morphism of o1,o2 st F is full & F is faithful & <^o1,o2^> <> {} & <^o2,o1^> <> {} & F . a is iso holds a is iso proof let A, B be category; ::_thesis: for F being covariant Functor of A,B for o1, o2 being object of A for a being Morphism of o1,o2 st F is full & F is faithful & <^o1,o2^> <> {} & <^o2,o1^> <> {} & F . a is iso holds a is iso let F be covariant Functor of A,B; ::_thesis: for o1, o2 being object of A for a being Morphism of o1,o2 st F is full & F is faithful & <^o1,o2^> <> {} & <^o2,o1^> <> {} & F . a is iso holds a is iso let o1, o2 be object of A; ::_thesis: for a being Morphism of o1,o2 st F is full & F is faithful & <^o1,o2^> <> {} & <^o2,o1^> <> {} & F . a is iso holds a is iso let a be Morphism of o1,o2; ::_thesis: ( F is full & F is faithful & <^o1,o2^> <> {} & <^o2,o1^> <> {} & F . a is iso implies a is iso ) assume that A1: ( F is full & F is faithful ) and A2: ( <^o1,o2^> <> {} & <^o2,o1^> <> {} ) and A3: F . a is iso ; ::_thesis: a is iso ( <^(F . o1),(F . o2)^> <> {} & <^(F . o2),(F . o1)^> <> {} ) by A2, FUNCTOR0:def_18; then ( F . a is retraction & F . a is coretraction ) by A3, ALTCAT_3:6; then ( a is retraction & a is coretraction ) by A1, A2, Th26, Th27; hence a is iso by A2, ALTCAT_3:6; ::_thesis: verum end; theorem :: ALTCAT_4:29 for A, B being category for F being covariant Functor of A,B for o1, o2 being object of A st F is full & F is faithful & <^o1,o2^> <> {} & <^o2,o1^> <> {} & F . o1,F . o2 are_iso holds o1,o2 are_iso proof let A, B be category; ::_thesis: for F being covariant Functor of A,B for o1, o2 being object of A st F is full & F is faithful & <^o1,o2^> <> {} & <^o2,o1^> <> {} & F . o1,F . o2 are_iso holds o1,o2 are_iso let F be covariant Functor of A,B; ::_thesis: for o1, o2 being object of A st F is full & F is faithful & <^o1,o2^> <> {} & <^o2,o1^> <> {} & F . o1,F . o2 are_iso holds o1,o2 are_iso let o1, o2 be object of A; ::_thesis: ( F is full & F is faithful & <^o1,o2^> <> {} & <^o2,o1^> <> {} & F . o1,F . o2 are_iso implies o1,o2 are_iso ) assume that A1: ( F is full & F is faithful ) and A2: <^o1,o2^> <> {} and A3: <^o2,o1^> <> {} and A4: F . o1,F . o2 are_iso ; ::_thesis: o1,o2 are_iso consider Fa being Morphism of (F . o1),(F . o2) such that A5: Fa is iso by A4, ALTCAT_3:def_6; consider a being Morphism of o1,o2 such that A6: Fa = F . a by A1, A2, Th16; thus ( <^o1,o2^> <> {} & <^o2,o1^> <> {} ) by A2, A3; :: according to ALTCAT_3:def_6 ::_thesis: ex b1 being M2(<^o1,o2^>) st b1 is iso take a ; ::_thesis: a is iso thus a is iso by A1, A2, A3, A5, A6, Th28; ::_thesis: verum end; theorem Th30: :: ALTCAT_4:30 for A, B being non empty transitive with_units AltCatStr for F being contravariant Functor of A,B for o1, o2 being object of A for a being Morphism of o1,o2 st F is full & F is faithful & <^o1,o2^> <> {} & <^o2,o1^> <> {} & F . a is retraction holds a is coretraction proof let A, B be non empty transitive with_units AltCatStr ; ::_thesis: for F being contravariant Functor of A,B for o1, o2 being object of A for a being Morphism of o1,o2 st F is full & F is faithful & <^o1,o2^> <> {} & <^o2,o1^> <> {} & F . a is retraction holds a is coretraction let F be contravariant Functor of A,B; ::_thesis: for o1, o2 being object of A for a being Morphism of o1,o2 st F is full & F is faithful & <^o1,o2^> <> {} & <^o2,o1^> <> {} & F . a is retraction holds a is coretraction let o1, o2 be object of A; ::_thesis: for a being Morphism of o1,o2 st F is full & F is faithful & <^o1,o2^> <> {} & <^o2,o1^> <> {} & F . a is retraction holds a is coretraction let a be Morphism of o1,o2; ::_thesis: ( F is full & F is faithful & <^o1,o2^> <> {} & <^o2,o1^> <> {} & F . a is retraction implies a is coretraction ) assume that A1: ( F is full & F is faithful ) and A2: <^o1,o2^> <> {} and A3: <^o2,o1^> <> {} ; ::_thesis: ( not F . a is retraction or a is coretraction ) A4: <^(F . o1),(F . o2)^> <> {} by A3, FUNCTOR0:def_19; assume F . a is retraction ; ::_thesis: a is coretraction then consider b being Morphism of (F . o1),(F . o2) such that A5: b is_right_inverse_of F . a by ALTCAT_3:def_2; Morph-Map (F,o2,o1) is onto by A1, Th14; then rng (Morph-Map (F,o2,o1)) = <^(F . o1),(F . o2)^> by FUNCT_2:def_3; then consider a9 being set such that A6: a9 in dom (Morph-Map (F,o2,o1)) and A7: b = (Morph-Map (F,o2,o1)) . a9 by A4, FUNCT_1:def_3; reconsider a9 = a9 as Morphism of o2,o1 by A4, A6, FUNCT_2:def_1; take a9 ; :: according to ALTCAT_3:def_3 ::_thesis: a9 is_left_inverse_of a A8: (F . a) * b = idm (F . o1) by A5, ALTCAT_3:def_1; A9: ( dom (Morph-Map (F,o1,o1)) = <^o1,o1^> & Morph-Map (F,o1,o1) is one-to-one ) by A1, Th15, FUNCT_2:def_1; (Morph-Map (F,o1,o1)) . (idm o1) = F . (idm o1) by FUNCTOR0:def_16 .= idm (F . o1) by Th13 .= (F . a) * (F . a9) by A3, A8, A4, A7, FUNCTOR0:def_16 .= F . (a9 * a) by A2, A3, FUNCTOR0:def_24 .= (Morph-Map (F,o1,o1)) . (a9 * a) by FUNCTOR0:def_16 ; hence a9 * a = idm o1 by A9, FUNCT_1:def_4; :: according to ALTCAT_3:def_1 ::_thesis: verum end; theorem Th31: :: ALTCAT_4:31 for A, B being non empty transitive with_units AltCatStr for F being contravariant Functor of A,B for o1, o2 being object of A for a being Morphism of o1,o2 st F is full & F is faithful & <^o1,o2^> <> {} & <^o2,o1^> <> {} & F . a is coretraction holds a is retraction proof let A, B be non empty transitive with_units AltCatStr ; ::_thesis: for F being contravariant Functor of A,B for o1, o2 being object of A for a being Morphism of o1,o2 st F is full & F is faithful & <^o1,o2^> <> {} & <^o2,o1^> <> {} & F . a is coretraction holds a is retraction let F be contravariant Functor of A,B; ::_thesis: for o1, o2 being object of A for a being Morphism of o1,o2 st F is full & F is faithful & <^o1,o2^> <> {} & <^o2,o1^> <> {} & F . a is coretraction holds a is retraction let o1, o2 be object of A; ::_thesis: for a being Morphism of o1,o2 st F is full & F is faithful & <^o1,o2^> <> {} & <^o2,o1^> <> {} & F . a is coretraction holds a is retraction let a be Morphism of o1,o2; ::_thesis: ( F is full & F is faithful & <^o1,o2^> <> {} & <^o2,o1^> <> {} & F . a is coretraction implies a is retraction ) assume that A1: ( F is full & F is faithful ) and A2: <^o1,o2^> <> {} and A3: <^o2,o1^> <> {} ; ::_thesis: ( not F . a is coretraction or a is retraction ) A4: <^(F . o1),(F . o2)^> <> {} by A3, FUNCTOR0:def_19; assume F . a is coretraction ; ::_thesis: a is retraction then consider b being Morphism of (F . o1),(F . o2) such that A5: F . a is_right_inverse_of b by ALTCAT_3:def_3; Morph-Map (F,o2,o1) is onto by A1, Th14; then rng (Morph-Map (F,o2,o1)) = <^(F . o1),(F . o2)^> by FUNCT_2:def_3; then consider a9 being set such that A6: a9 in dom (Morph-Map (F,o2,o1)) and A7: b = (Morph-Map (F,o2,o1)) . a9 by A4, FUNCT_1:def_3; reconsider a9 = a9 as Morphism of o2,o1 by A4, A6, FUNCT_2:def_1; take a9 ; :: according to ALTCAT_3:def_2 ::_thesis: a is_left_inverse_of a9 A8: b * (F . a) = idm (F . o2) by A5, ALTCAT_3:def_1; A9: ( dom (Morph-Map (F,o2,o2)) = <^o2,o2^> & Morph-Map (F,o2,o2) is one-to-one ) by A1, Th15, FUNCT_2:def_1; (Morph-Map (F,o2,o2)) . (idm o2) = F . (idm o2) by FUNCTOR0:def_16 .= idm (F . o2) by Th13 .= (F . a9) * (F . a) by A3, A8, A4, A7, FUNCTOR0:def_16 .= F . (a * a9) by A2, A3, FUNCTOR0:def_24 .= (Morph-Map (F,o2,o2)) . (a * a9) by FUNCTOR0:def_16 ; hence a * a9 = idm o2 by A9, FUNCT_1:def_4; :: according to ALTCAT_3:def_1 ::_thesis: verum end; theorem Th32: :: ALTCAT_4:32 for A, B being category for F being contravariant Functor of A,B for o1, o2 being object of A for a being Morphism of o1,o2 st F is full & F is faithful & <^o1,o2^> <> {} & <^o2,o1^> <> {} & F . a is iso holds a is iso proof let A, B be category; ::_thesis: for F being contravariant Functor of A,B for o1, o2 being object of A for a being Morphism of o1,o2 st F is full & F is faithful & <^o1,o2^> <> {} & <^o2,o1^> <> {} & F . a is iso holds a is iso let F be contravariant Functor of A,B; ::_thesis: for o1, o2 being object of A for a being Morphism of o1,o2 st F is full & F is faithful & <^o1,o2^> <> {} & <^o2,o1^> <> {} & F . a is iso holds a is iso let o1, o2 be object of A; ::_thesis: for a being Morphism of o1,o2 st F is full & F is faithful & <^o1,o2^> <> {} & <^o2,o1^> <> {} & F . a is iso holds a is iso let a be Morphism of o1,o2; ::_thesis: ( F is full & F is faithful & <^o1,o2^> <> {} & <^o2,o1^> <> {} & F . a is iso implies a is iso ) assume that A1: ( F is full & F is faithful ) and A2: ( <^o1,o2^> <> {} & <^o2,o1^> <> {} ) and A3: F . a is iso ; ::_thesis: a is iso ( <^(F . o1),(F . o2)^> <> {} & <^(F . o2),(F . o1)^> <> {} ) by A2, FUNCTOR0:def_19; then ( F . a is retraction & F . a is coretraction ) by A3, ALTCAT_3:6; then ( a is retraction & a is coretraction ) by A1, A2, Th30, Th31; hence a is iso by A2, ALTCAT_3:6; ::_thesis: verum end; theorem :: ALTCAT_4:33 for A, B being category for F being contravariant Functor of A,B for o1, o2 being object of A st F is full & F is faithful & <^o1,o2^> <> {} & <^o2,o1^> <> {} & F . o2,F . o1 are_iso holds o1,o2 are_iso proof let A, B be category; ::_thesis: for F being contravariant Functor of A,B for o1, o2 being object of A st F is full & F is faithful & <^o1,o2^> <> {} & <^o2,o1^> <> {} & F . o2,F . o1 are_iso holds o1,o2 are_iso let F be contravariant Functor of A,B; ::_thesis: for o1, o2 being object of A st F is full & F is faithful & <^o1,o2^> <> {} & <^o2,o1^> <> {} & F . o2,F . o1 are_iso holds o1,o2 are_iso let o1, o2 be object of A; ::_thesis: ( F is full & F is faithful & <^o1,o2^> <> {} & <^o2,o1^> <> {} & F . o2,F . o1 are_iso implies o1,o2 are_iso ) assume that A1: ( F is full & F is faithful ) and A2: <^o1,o2^> <> {} and A3: <^o2,o1^> <> {} and A4: F . o2,F . o1 are_iso ; ::_thesis: o1,o2 are_iso consider Fa being Morphism of (F . o2),(F . o1) such that A5: Fa is iso by A4, ALTCAT_3:def_6; consider a being Morphism of o1,o2 such that A6: Fa = F . a by A1, A2, Th17; thus ( <^o1,o2^> <> {} & <^o2,o1^> <> {} ) by A2, A3; :: according to ALTCAT_3:def_6 ::_thesis: ex b1 being M2(<^o1,o2^>) st b1 is iso take a ; ::_thesis: a is iso thus a is iso by A1, A2, A3, A5, A6, Th32; ::_thesis: verum end; Lm1: now__::_thesis:_for_C_being_non_empty_transitive_AltCatStr_ for_p1,_p2,_p3_being_object_of_C_st_the_Arrows_of_C_._(p1,p3)_=_{}_holds_ [:(_the_Arrows_of_C_._(p2,p3)),(_the_Arrows_of_C_._(p1,p2)):]_=_{} let C be non empty transitive AltCatStr ; ::_thesis: for p1, p2, p3 being object of C st the Arrows of C . (p1,p3) = {} holds [:( the Arrows of C . (p2,p3)),( the Arrows of C . (p1,p2)):] = {} let p1, p2, p3 be object of C; ::_thesis: ( the Arrows of C . (p1,p3) = {} implies [:( the Arrows of C . (p2,p3)),( the Arrows of C . (p1,p2)):] = {} ) assume A1: the Arrows of C . (p1,p3) = {} ; ::_thesis: [:( the Arrows of C . (p2,p3)),( the Arrows of C . (p1,p2)):] = {} thus [:( the Arrows of C . (p2,p3)),( the Arrows of C . (p1,p2)):] = {} ::_thesis: verum proof assume [:( the Arrows of C . (p2,p3)),( the Arrows of C . (p1,p2)):] <> {} ; ::_thesis: contradiction then consider k being set such that A2: k in [:( the Arrows of C . (p2,p3)),( the Arrows of C . (p1,p2)):] by XBOOLE_0:def_1; consider u1, u2 being set such that A3: ( u1 in the Arrows of C . (p2,p3) & u2 in the Arrows of C . (p1,p2) ) and k = [u1,u2] by A2, ZFMISC_1:def_2; ( u1 in <^p2,p3^> & u2 in <^p1,p2^> ) by A3; then <^p1,p3^> <> {} by ALTCAT_1:def_2; hence contradiction by A1; ::_thesis: verum end; end; begin theorem Th34: :: ALTCAT_4:34 for C being AltCatStr for D being SubCatStr of C st the carrier of C = the carrier of D & the Arrows of C = the Arrows of D holds D is full proof let C be AltCatStr ; ::_thesis: for D being SubCatStr of C st the carrier of C = the carrier of D & the Arrows of C = the Arrows of D holds D is full let D be SubCatStr of C; ::_thesis: ( the carrier of C = the carrier of D & the Arrows of C = the Arrows of D implies D is full ) assume that A1: the carrier of C = the carrier of D and A2: the Arrows of C = the Arrows of D ; ::_thesis: D is full dom the Arrows of C = [: the carrier of D, the carrier of D:] by A1, PARTFUN1:def_2; hence the Arrows of D = the Arrows of C || the carrier of D by A2, RELAT_1:68; :: according to ALTCAT_2:def_13 ::_thesis: verum end; theorem Th35: :: ALTCAT_4:35 for C being non empty with_units AltCatStr for D being SubCatStr of C st the carrier of C = the carrier of D & the Arrows of C = the Arrows of D holds D is id-inheriting proof let C be non empty with_units AltCatStr ; ::_thesis: for D being SubCatStr of C st the carrier of C = the carrier of D & the Arrows of C = the Arrows of D holds D is id-inheriting let D be SubCatStr of C; ::_thesis: ( the carrier of C = the carrier of D & the Arrows of C = the Arrows of D implies D is id-inheriting ) assume ( the carrier of C = the carrier of D & the Arrows of C = the Arrows of D ) ; ::_thesis: D is id-inheriting then reconsider D = D as non empty full SubCatStr of C by Th34; now__::_thesis:_for_o_being_object_of_D for_o9_being_object_of_C_st_o_=_o9_holds_ idm_o9_in_<^o,o^> let o be object of D; ::_thesis: for o9 being object of C st o = o9 holds idm o9 in <^o,o^> let o9 be object of C; ::_thesis: ( o = o9 implies idm o9 in <^o,o^> ) assume o = o9 ; ::_thesis: idm o9 in <^o,o^> then <^o9,o9^> = <^o,o^> by ALTCAT_2:28; hence idm o9 in <^o,o^> ; ::_thesis: verum end; hence D is id-inheriting by ALTCAT_2:def_14; ::_thesis: verum end; registration let C be category; cluster non empty transitive strict full id-inheriting for SubCatStr of C; existence ex b1 being subcategory of C st ( b1 is full & not b1 is empty & b1 is strict ) proof reconsider D = AltCatStr(# the carrier of C, the Arrows of C, the Comp of C #) as SubCatStr of C by ALTCAT_2:def_11; reconsider D = D as non empty full id-inheriting SubCatStr of C by Th34, Th35; take D ; ::_thesis: ( D is full & not D is empty & D is strict ) thus ( D is full & not D is empty & D is strict ) ; ::_thesis: verum end; end; theorem Th36: :: ALTCAT_4:36 for C being category for B being non empty subcategory of C for A being non empty subcategory of B holds A is non empty subcategory of C proof let C be category; ::_thesis: for B being non empty subcategory of C for A being non empty subcategory of B holds A is non empty subcategory of C let B be non empty subcategory of C; ::_thesis: for A being non empty subcategory of B holds A is non empty subcategory of C let A be non empty subcategory of B; ::_thesis: A is non empty subcategory of C reconsider D = A as non empty with_units SubCatStr of C by ALTCAT_2:21; now__::_thesis:_for_o_being_object_of_D for_o1_being_object_of_C_st_o_=_o1_holds_ idm_o1_in_<^o,o^> let o be object of D; ::_thesis: for o1 being object of C st o = o1 holds idm o1 in <^o,o^> let o1 be object of C; ::_thesis: ( o = o1 implies idm o1 in <^o,o^> ) assume A1: o = o1 ; ::_thesis: idm o1 in <^o,o^> ( o in the carrier of D & the carrier of D c= the carrier of B ) by ALTCAT_2:def_11; then reconsider oo = o as object of B ; idm o = idm oo by ALTCAT_2:34 .= idm o1 by A1, ALTCAT_2:34 ; hence idm o1 in <^o,o^> ; ::_thesis: verum end; hence A is non empty subcategory of C by ALTCAT_2:def_14; ::_thesis: verum end; theorem Th37: :: ALTCAT_4:37 for C being non empty transitive AltCatStr for D being non empty transitive SubCatStr of C for o1, o2 being object of C for p1, p2 being object of D for m being Morphism of o1,o2 for n being Morphism of p1,p2 st p1 = o1 & p2 = o2 & m = n & <^p1,p2^> <> {} holds ( ( m is mono implies n is mono ) & ( m is epi implies n is epi ) ) proof let C be non empty transitive AltCatStr ; ::_thesis: for D being non empty transitive SubCatStr of C for o1, o2 being object of C for p1, p2 being object of D for m being Morphism of o1,o2 for n being Morphism of p1,p2 st p1 = o1 & p2 = o2 & m = n & <^p1,p2^> <> {} holds ( ( m is mono implies n is mono ) & ( m is epi implies n is epi ) ) let D be non empty transitive SubCatStr of C; ::_thesis: for o1, o2 being object of C for p1, p2 being object of D for m being Morphism of o1,o2 for n being Morphism of p1,p2 st p1 = o1 & p2 = o2 & m = n & <^p1,p2^> <> {} holds ( ( m is mono implies n is mono ) & ( m is epi implies n is epi ) ) let o1, o2 be object of C; ::_thesis: for p1, p2 being object of D for m being Morphism of o1,o2 for n being Morphism of p1,p2 st p1 = o1 & p2 = o2 & m = n & <^p1,p2^> <> {} holds ( ( m is mono implies n is mono ) & ( m is epi implies n is epi ) ) let p1, p2 be object of D; ::_thesis: for m being Morphism of o1,o2 for n being Morphism of p1,p2 st p1 = o1 & p2 = o2 & m = n & <^p1,p2^> <> {} holds ( ( m is mono implies n is mono ) & ( m is epi implies n is epi ) ) let m be Morphism of o1,o2; ::_thesis: for n being Morphism of p1,p2 st p1 = o1 & p2 = o2 & m = n & <^p1,p2^> <> {} holds ( ( m is mono implies n is mono ) & ( m is epi implies n is epi ) ) let n be Morphism of p1,p2; ::_thesis: ( p1 = o1 & p2 = o2 & m = n & <^p1,p2^> <> {} implies ( ( m is mono implies n is mono ) & ( m is epi implies n is epi ) ) ) assume that A1: p1 = o1 and A2: p2 = o2 and A3: ( m = n & <^p1,p2^> <> {} ) ; ::_thesis: ( ( m is mono implies n is mono ) & ( m is epi implies n is epi ) ) thus ( m is mono implies n is mono ) ::_thesis: ( m is epi implies n is epi ) proof assume A4: m is mono ; ::_thesis: n is mono let p3 be object of D; :: according to ALTCAT_3:def_7 ::_thesis: ( <^p3,p1^> = {} or for b1, b2 being M2(<^p3,p1^>) holds ( not n * b1 = n * b2 or b1 = b2 ) ) assume A5: <^p3,p1^> <> {} ; ::_thesis: for b1, b2 being M2(<^p3,p1^>) holds ( not n * b1 = n * b2 or b1 = b2 ) reconsider o3 = p3 as object of C by ALTCAT_2:29; A6: <^o3,o1^> <> {} by A1, A5, ALTCAT_2:31, XBOOLE_1:3; let f, g be Morphism of p3,p1; ::_thesis: ( not n * f = n * g or f = g ) assume A7: n * f = n * g ; ::_thesis: f = g reconsider f1 = f, g1 = g as Morphism of o3,o1 by A1, A5, ALTCAT_2:33; m * f1 = n * f by A1, A2, A3, A5, ALTCAT_2:32 .= m * g1 by A1, A2, A3, A5, A7, ALTCAT_2:32 ; hence f = g by A4, A6, ALTCAT_3:def_7; ::_thesis: verum end; assume A8: m is epi ; ::_thesis: n is epi let p3 be object of D; :: according to ALTCAT_3:def_8 ::_thesis: ( <^p2,p3^> = {} or for b1, b2 being M2(<^p2,p3^>) holds ( not b1 * n = b2 * n or b1 = b2 ) ) assume A9: <^p2,p3^> <> {} ; ::_thesis: for b1, b2 being M2(<^p2,p3^>) holds ( not b1 * n = b2 * n or b1 = b2 ) reconsider o3 = p3 as object of C by ALTCAT_2:29; A10: <^o2,o3^> <> {} by A2, A9, ALTCAT_2:31, XBOOLE_1:3; let f, g be Morphism of p2,p3; ::_thesis: ( not f * n = g * n or f = g ) assume A11: f * n = g * n ; ::_thesis: f = g reconsider f1 = f, g1 = g as Morphism of o2,o3 by A2, A9, ALTCAT_2:33; f1 * m = f * n by A1, A2, A3, A9, ALTCAT_2:32 .= g1 * m by A1, A2, A3, A9, A11, ALTCAT_2:32 ; hence f = g by A8, A10, ALTCAT_3:def_8; ::_thesis: verum end; theorem Th38: :: ALTCAT_4:38 for C being category for D being non empty subcategory of C for o1, o2 being object of C for p1, p2 being object of D for m being Morphism of o1,o2 for m1 being Morphism of o2,o1 for n being Morphism of p1,p2 for n1 being Morphism of p2,p1 st p1 = o1 & p2 = o2 & m = n & m1 = n1 & <^p1,p2^> <> {} & <^p2,p1^> <> {} holds ( ( m is_left_inverse_of m1 implies n is_left_inverse_of n1 ) & ( n is_left_inverse_of n1 implies m is_left_inverse_of m1 ) & ( m is_right_inverse_of m1 implies n is_right_inverse_of n1 ) & ( n is_right_inverse_of n1 implies m is_right_inverse_of m1 ) ) proof let C be category; ::_thesis: for D being non empty subcategory of C for o1, o2 being object of C for p1, p2 being object of D for m being Morphism of o1,o2 for m1 being Morphism of o2,o1 for n being Morphism of p1,p2 for n1 being Morphism of p2,p1 st p1 = o1 & p2 = o2 & m = n & m1 = n1 & <^p1,p2^> <> {} & <^p2,p1^> <> {} holds ( ( m is_left_inverse_of m1 implies n is_left_inverse_of n1 ) & ( n is_left_inverse_of n1 implies m is_left_inverse_of m1 ) & ( m is_right_inverse_of m1 implies n is_right_inverse_of n1 ) & ( n is_right_inverse_of n1 implies m is_right_inverse_of m1 ) ) let D be non empty subcategory of C; ::_thesis: for o1, o2 being object of C for p1, p2 being object of D for m being Morphism of o1,o2 for m1 being Morphism of o2,o1 for n being Morphism of p1,p2 for n1 being Morphism of p2,p1 st p1 = o1 & p2 = o2 & m = n & m1 = n1 & <^p1,p2^> <> {} & <^p2,p1^> <> {} holds ( ( m is_left_inverse_of m1 implies n is_left_inverse_of n1 ) & ( n is_left_inverse_of n1 implies m is_left_inverse_of m1 ) & ( m is_right_inverse_of m1 implies n is_right_inverse_of n1 ) & ( n is_right_inverse_of n1 implies m is_right_inverse_of m1 ) ) let o1, o2 be object of C; ::_thesis: for p1, p2 being object of D for m being Morphism of o1,o2 for m1 being Morphism of o2,o1 for n being Morphism of p1,p2 for n1 being Morphism of p2,p1 st p1 = o1 & p2 = o2 & m = n & m1 = n1 & <^p1,p2^> <> {} & <^p2,p1^> <> {} holds ( ( m is_left_inverse_of m1 implies n is_left_inverse_of n1 ) & ( n is_left_inverse_of n1 implies m is_left_inverse_of m1 ) & ( m is_right_inverse_of m1 implies n is_right_inverse_of n1 ) & ( n is_right_inverse_of n1 implies m is_right_inverse_of m1 ) ) let p1, p2 be object of D; ::_thesis: for m being Morphism of o1,o2 for m1 being Morphism of o2,o1 for n being Morphism of p1,p2 for n1 being Morphism of p2,p1 st p1 = o1 & p2 = o2 & m = n & m1 = n1 & <^p1,p2^> <> {} & <^p2,p1^> <> {} holds ( ( m is_left_inverse_of m1 implies n is_left_inverse_of n1 ) & ( n is_left_inverse_of n1 implies m is_left_inverse_of m1 ) & ( m is_right_inverse_of m1 implies n is_right_inverse_of n1 ) & ( n is_right_inverse_of n1 implies m is_right_inverse_of m1 ) ) let m be Morphism of o1,o2; ::_thesis: for m1 being Morphism of o2,o1 for n being Morphism of p1,p2 for n1 being Morphism of p2,p1 st p1 = o1 & p2 = o2 & m = n & m1 = n1 & <^p1,p2^> <> {} & <^p2,p1^> <> {} holds ( ( m is_left_inverse_of m1 implies n is_left_inverse_of n1 ) & ( n is_left_inverse_of n1 implies m is_left_inverse_of m1 ) & ( m is_right_inverse_of m1 implies n is_right_inverse_of n1 ) & ( n is_right_inverse_of n1 implies m is_right_inverse_of m1 ) ) let m1 be Morphism of o2,o1; ::_thesis: for n being Morphism of p1,p2 for n1 being Morphism of p2,p1 st p1 = o1 & p2 = o2 & m = n & m1 = n1 & <^p1,p2^> <> {} & <^p2,p1^> <> {} holds ( ( m is_left_inverse_of m1 implies n is_left_inverse_of n1 ) & ( n is_left_inverse_of n1 implies m is_left_inverse_of m1 ) & ( m is_right_inverse_of m1 implies n is_right_inverse_of n1 ) & ( n is_right_inverse_of n1 implies m is_right_inverse_of m1 ) ) let n be Morphism of p1,p2; ::_thesis: for n1 being Morphism of p2,p1 st p1 = o1 & p2 = o2 & m = n & m1 = n1 & <^p1,p2^> <> {} & <^p2,p1^> <> {} holds ( ( m is_left_inverse_of m1 implies n is_left_inverse_of n1 ) & ( n is_left_inverse_of n1 implies m is_left_inverse_of m1 ) & ( m is_right_inverse_of m1 implies n is_right_inverse_of n1 ) & ( n is_right_inverse_of n1 implies m is_right_inverse_of m1 ) ) let n1 be Morphism of p2,p1; ::_thesis: ( p1 = o1 & p2 = o2 & m = n & m1 = n1 & <^p1,p2^> <> {} & <^p2,p1^> <> {} implies ( ( m is_left_inverse_of m1 implies n is_left_inverse_of n1 ) & ( n is_left_inverse_of n1 implies m is_left_inverse_of m1 ) & ( m is_right_inverse_of m1 implies n is_right_inverse_of n1 ) & ( n is_right_inverse_of n1 implies m is_right_inverse_of m1 ) ) ) assume that A1: p1 = o1 and A2: p2 = o2 and A3: ( m = n & m1 = n1 & <^p1,p2^> <> {} & <^p2,p1^> <> {} ) ; ::_thesis: ( ( m is_left_inverse_of m1 implies n is_left_inverse_of n1 ) & ( n is_left_inverse_of n1 implies m is_left_inverse_of m1 ) & ( m is_right_inverse_of m1 implies n is_right_inverse_of n1 ) & ( n is_right_inverse_of n1 implies m is_right_inverse_of m1 ) ) thus ( m is_left_inverse_of m1 iff n is_left_inverse_of n1 ) ::_thesis: ( m is_right_inverse_of m1 iff n is_right_inverse_of n1 ) proof thus ( m is_left_inverse_of m1 implies n is_left_inverse_of n1 ) ::_thesis: ( n is_left_inverse_of n1 implies m is_left_inverse_of m1 ) proof assume A4: m is_left_inverse_of m1 ; ::_thesis: n is_left_inverse_of n1 thus n * n1 = m * m1 by A1, A2, A3, ALTCAT_2:32 .= idm o2 by A4, ALTCAT_3:def_1 .= idm p2 by A2, ALTCAT_2:34 ; :: according to ALTCAT_3:def_1 ::_thesis: verum end; assume A5: n is_left_inverse_of n1 ; ::_thesis: m is_left_inverse_of m1 thus m * m1 = n * n1 by A1, A2, A3, ALTCAT_2:32 .= idm p2 by A5, ALTCAT_3:def_1 .= idm o2 by A2, ALTCAT_2:34 ; :: according to ALTCAT_3:def_1 ::_thesis: verum end; thus ( m is_right_inverse_of m1 implies n is_right_inverse_of n1 ) ::_thesis: ( n is_right_inverse_of n1 implies m is_right_inverse_of m1 ) proof assume A6: m is_right_inverse_of m1 ; ::_thesis: n is_right_inverse_of n1 thus n1 * n = m1 * m by A1, A2, A3, ALTCAT_2:32 .= idm o1 by A6, ALTCAT_3:def_1 .= idm p1 by A1, ALTCAT_2:34 ; :: according to ALTCAT_3:def_1 ::_thesis: verum end; assume A7: n is_right_inverse_of n1 ; ::_thesis: m is_right_inverse_of m1 thus m1 * m = n1 * n by A1, A2, A3, ALTCAT_2:32 .= idm p1 by A7, ALTCAT_3:def_1 .= idm o1 by A1, ALTCAT_2:34 ; :: according to ALTCAT_3:def_1 ::_thesis: verum end; theorem :: ALTCAT_4:39 for C being category for D being non empty full subcategory of C for o1, o2 being object of C for p1, p2 being object of D for m being Morphism of o1,o2 for n being Morphism of p1,p2 st p1 = o1 & p2 = o2 & m = n & <^p1,p2^> <> {} & <^p2,p1^> <> {} holds ( ( m is retraction implies n is retraction ) & ( m is coretraction implies n is coretraction ) & ( m is iso implies n is iso ) ) proof let C be category; ::_thesis: for D being non empty full subcategory of C for o1, o2 being object of C for p1, p2 being object of D for m being Morphism of o1,o2 for n being Morphism of p1,p2 st p1 = o1 & p2 = o2 & m = n & <^p1,p2^> <> {} & <^p2,p1^> <> {} holds ( ( m is retraction implies n is retraction ) & ( m is coretraction implies n is coretraction ) & ( m is iso implies n is iso ) ) let D be non empty full subcategory of C; ::_thesis: for o1, o2 being object of C for p1, p2 being object of D for m being Morphism of o1,o2 for n being Morphism of p1,p2 st p1 = o1 & p2 = o2 & m = n & <^p1,p2^> <> {} & <^p2,p1^> <> {} holds ( ( m is retraction implies n is retraction ) & ( m is coretraction implies n is coretraction ) & ( m is iso implies n is iso ) ) let o1, o2 be object of C; ::_thesis: for p1, p2 being object of D for m being Morphism of o1,o2 for n being Morphism of p1,p2 st p1 = o1 & p2 = o2 & m = n & <^p1,p2^> <> {} & <^p2,p1^> <> {} holds ( ( m is retraction implies n is retraction ) & ( m is coretraction implies n is coretraction ) & ( m is iso implies n is iso ) ) let p1, p2 be object of D; ::_thesis: for m being Morphism of o1,o2 for n being Morphism of p1,p2 st p1 = o1 & p2 = o2 & m = n & <^p1,p2^> <> {} & <^p2,p1^> <> {} holds ( ( m is retraction implies n is retraction ) & ( m is coretraction implies n is coretraction ) & ( m is iso implies n is iso ) ) let m be Morphism of o1,o2; ::_thesis: for n being Morphism of p1,p2 st p1 = o1 & p2 = o2 & m = n & <^p1,p2^> <> {} & <^p2,p1^> <> {} holds ( ( m is retraction implies n is retraction ) & ( m is coretraction implies n is coretraction ) & ( m is iso implies n is iso ) ) let n be Morphism of p1,p2; ::_thesis: ( p1 = o1 & p2 = o2 & m = n & <^p1,p2^> <> {} & <^p2,p1^> <> {} implies ( ( m is retraction implies n is retraction ) & ( m is coretraction implies n is coretraction ) & ( m is iso implies n is iso ) ) ) assume that A1: ( p1 = o1 & p2 = o2 ) and A2: m = n and A3: ( <^p1,p2^> <> {} & <^p2,p1^> <> {} ) ; ::_thesis: ( ( m is retraction implies n is retraction ) & ( m is coretraction implies n is coretraction ) & ( m is iso implies n is iso ) ) thus A4: ( m is retraction implies n is retraction ) ::_thesis: ( ( m is coretraction implies n is coretraction ) & ( m is iso implies n is iso ) ) proof assume m is retraction ; ::_thesis: n is retraction then consider B being Morphism of o2,o1 such that A5: B is_right_inverse_of m by ALTCAT_3:def_2; reconsider B1 = B as Morphism of p2,p1 by A1, ALTCAT_2:28; take B1 ; :: according to ALTCAT_3:def_2 ::_thesis: n is_left_inverse_of B1 thus n is_left_inverse_of B1 by A1, A2, A3, A5, Th38; ::_thesis: verum end; thus A6: ( m is coretraction implies n is coretraction ) ::_thesis: ( m is iso implies n is iso ) proof assume m is coretraction ; ::_thesis: n is coretraction then consider B being Morphism of o2,o1 such that A7: B is_left_inverse_of m by ALTCAT_3:def_3; reconsider B1 = B as Morphism of p2,p1 by A1, ALTCAT_2:28; take B1 ; :: according to ALTCAT_3:def_3 ::_thesis: B1 is_left_inverse_of n thus B1 is_left_inverse_of n by A1, A2, A3, A7, Th38; ::_thesis: verum end; assume m is iso ; ::_thesis: n is iso hence n is iso by A3, A4, A6, ALTCAT_3:5, ALTCAT_3:6; ::_thesis: verum end; theorem Th40: :: ALTCAT_4:40 for C being category for D being non empty subcategory of C for o1, o2 being object of C for p1, p2 being object of D for m being Morphism of o1,o2 for n being Morphism of p1,p2 st p1 = o1 & p2 = o2 & m = n & <^p1,p2^> <> {} & <^p2,p1^> <> {} holds ( ( n is retraction implies m is retraction ) & ( n is coretraction implies m is coretraction ) & ( n is iso implies m is iso ) ) proof let C be category; ::_thesis: for D being non empty subcategory of C for o1, o2 being object of C for p1, p2 being object of D for m being Morphism of o1,o2 for n being Morphism of p1,p2 st p1 = o1 & p2 = o2 & m = n & <^p1,p2^> <> {} & <^p2,p1^> <> {} holds ( ( n is retraction implies m is retraction ) & ( n is coretraction implies m is coretraction ) & ( n is iso implies m is iso ) ) let D be non empty subcategory of C; ::_thesis: for o1, o2 being object of C for p1, p2 being object of D for m being Morphism of o1,o2 for n being Morphism of p1,p2 st p1 = o1 & p2 = o2 & m = n & <^p1,p2^> <> {} & <^p2,p1^> <> {} holds ( ( n is retraction implies m is retraction ) & ( n is coretraction implies m is coretraction ) & ( n is iso implies m is iso ) ) let o1, o2 be object of C; ::_thesis: for p1, p2 being object of D for m being Morphism of o1,o2 for n being Morphism of p1,p2 st p1 = o1 & p2 = o2 & m = n & <^p1,p2^> <> {} & <^p2,p1^> <> {} holds ( ( n is retraction implies m is retraction ) & ( n is coretraction implies m is coretraction ) & ( n is iso implies m is iso ) ) let p1, p2 be object of D; ::_thesis: for m being Morphism of o1,o2 for n being Morphism of p1,p2 st p1 = o1 & p2 = o2 & m = n & <^p1,p2^> <> {} & <^p2,p1^> <> {} holds ( ( n is retraction implies m is retraction ) & ( n is coretraction implies m is coretraction ) & ( n is iso implies m is iso ) ) let m be Morphism of o1,o2; ::_thesis: for n being Morphism of p1,p2 st p1 = o1 & p2 = o2 & m = n & <^p1,p2^> <> {} & <^p2,p1^> <> {} holds ( ( n is retraction implies m is retraction ) & ( n is coretraction implies m is coretraction ) & ( n is iso implies m is iso ) ) let n be Morphism of p1,p2; ::_thesis: ( p1 = o1 & p2 = o2 & m = n & <^p1,p2^> <> {} & <^p2,p1^> <> {} implies ( ( n is retraction implies m is retraction ) & ( n is coretraction implies m is coretraction ) & ( n is iso implies m is iso ) ) ) assume that A1: ( p1 = o1 & p2 = o2 ) and A2: m = n and A3: <^p1,p2^> <> {} and A4: <^p2,p1^> <> {} ; ::_thesis: ( ( n is retraction implies m is retraction ) & ( n is coretraction implies m is coretraction ) & ( n is iso implies m is iso ) ) A5: ( <^o1,o2^> <> {} & <^o2,o1^> <> {} ) by A1, A3, A4, ALTCAT_2:31, XBOOLE_1:3; thus A6: ( n is retraction implies m is retraction ) ::_thesis: ( ( n is coretraction implies m is coretraction ) & ( n is iso implies m is iso ) ) proof assume n is retraction ; ::_thesis: m is retraction then consider B being Morphism of p2,p1 such that A7: B is_right_inverse_of n by ALTCAT_3:def_2; reconsider B1 = B as Morphism of o2,o1 by A1, A4, ALTCAT_2:33; take B1 ; :: according to ALTCAT_3:def_2 ::_thesis: m is_left_inverse_of B1 thus m is_left_inverse_of B1 by A1, A2, A3, A4, A7, Th38; ::_thesis: verum end; thus A8: ( n is coretraction implies m is coretraction ) ::_thesis: ( n is iso implies m is iso ) proof assume n is coretraction ; ::_thesis: m is coretraction then consider B being Morphism of p2,p1 such that A9: B is_left_inverse_of n by ALTCAT_3:def_3; reconsider B1 = B as Morphism of o2,o1 by A1, A4, ALTCAT_2:33; take B1 ; :: according to ALTCAT_3:def_3 ::_thesis: B1 is_left_inverse_of m thus B1 is_left_inverse_of m by A1, A2, A3, A4, A9, Th38; ::_thesis: verum end; assume n is iso ; ::_thesis: m is iso hence m is iso by A6, A8, A5, ALTCAT_3:5, ALTCAT_3:6; ::_thesis: verum end; definition let C be category; func AllMono C -> non empty transitive strict SubCatStr of C means :Def1: :: ALTCAT_4:def 1 ( the carrier of it = the carrier of C & the Arrows of it cc= the Arrows of C & ( for o1, o2 being object of C for m being Morphism of o1,o2 holds ( m in the Arrows of it . (o1,o2) iff ( <^o1,o2^> <> {} & m is mono ) ) ) ); existence ex b1 being non empty transitive strict SubCatStr of C st ( the carrier of b1 = the carrier of C & the Arrows of b1 cc= the Arrows of C & ( for o1, o2 being object of C for m being Morphism of o1,o2 holds ( m in the Arrows of b1 . (o1,o2) iff ( <^o1,o2^> <> {} & m is mono ) ) ) ) proof defpred S1[ set , set ] means for x being set holds ( x in $2 iff ex o1, o2 being object of C ex m being Morphism of o1,o2 st ( $1 = [o1,o2] & <^o1,o2^> <> {} & x = m & m is mono ) ); set I = the carrier of C; A1: for i being set st i in [: the carrier of C, the carrier of C:] holds ex X being set st S1[i,X] proof let i be set ; ::_thesis: ( i in [: the carrier of C, the carrier of C:] implies ex X being set st S1[i,X] ) assume i in [: the carrier of C, the carrier of C:] ; ::_thesis: ex X being set st S1[i,X] then consider o1, o2 being set such that A2: ( o1 in the carrier of C & o2 in the carrier of C ) and A3: i = [o1,o2] by ZFMISC_1:84; reconsider o1 = o1, o2 = o2 as object of C by A2; defpred S2[ set ] means ex m being Morphism of o1,o2 st ( <^o1,o2^> <> {} & m = $1 & m is mono ); consider X being set such that A4: for x being set holds ( x in X iff ( x in the Arrows of C . (o1,o2) & S2[x] ) ) from XBOOLE_0:sch_1(); take X ; ::_thesis: S1[i,X] let x be set ; ::_thesis: ( x in X iff ex o1, o2 being object of C ex m being Morphism of o1,o2 st ( i = [o1,o2] & <^o1,o2^> <> {} & x = m & m is mono ) ) thus ( x in X implies ex o1, o2 being object of C ex m being Morphism of o1,o2 st ( i = [o1,o2] & <^o1,o2^> <> {} & x = m & m is mono ) ) ::_thesis: ( ex o1, o2 being object of C ex m being Morphism of o1,o2 st ( i = [o1,o2] & <^o1,o2^> <> {} & x = m & m is mono ) implies x in X ) proof assume x in X ; ::_thesis: ex o1, o2 being object of C ex m being Morphism of o1,o2 st ( i = [o1,o2] & <^o1,o2^> <> {} & x = m & m is mono ) then consider m being Morphism of o1,o2 such that A5: ( <^o1,o2^> <> {} & m = x & m is mono ) by A4; take o1 ; ::_thesis: ex o2 being object of C ex m being Morphism of o1,o2 st ( i = [o1,o2] & <^o1,o2^> <> {} & x = m & m is mono ) take o2 ; ::_thesis: ex m being Morphism of o1,o2 st ( i = [o1,o2] & <^o1,o2^> <> {} & x = m & m is mono ) take m ; ::_thesis: ( i = [o1,o2] & <^o1,o2^> <> {} & x = m & m is mono ) thus ( i = [o1,o2] & <^o1,o2^> <> {} & x = m & m is mono ) by A3, A5; ::_thesis: verum end; given p1, p2 being object of C, m being Morphism of p1,p2 such that A6: i = [p1,p2] and A7: ( <^p1,p2^> <> {} & x = m & m is mono ) ; ::_thesis: x in X ( o1 = p1 & o2 = p2 ) by A3, A6, XTUPLE_0:1; hence x in X by A4, A7; ::_thesis: verum end; consider Ar being ManySortedSet of [: the carrier of C, the carrier of C:] such that A8: for i being set st i in [: the carrier of C, the carrier of C:] holds S1[i,Ar . i] from PBOOLE:sch_3(A1); defpred S2[ set , set ] means ex p1, p2, p3 being object of C st ( $1 = [p1,p2,p3] & $2 = ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] ); A9: for i being set st i in [: the carrier of C, the carrier of C, the carrier of C:] holds ex j being set st S2[i,j] proof let i be set ; ::_thesis: ( i in [: the carrier of C, the carrier of C, the carrier of C:] implies ex j being set st S2[i,j] ) assume i in [: the carrier of C, the carrier of C, the carrier of C:] ; ::_thesis: ex j being set st S2[i,j] then consider p1, p2, p3 being set such that A10: ( p1 in the carrier of C & p2 in the carrier of C & p3 in the carrier of C ) and A11: i = [p1,p2,p3] by MCART_1:68; reconsider p1 = p1, p2 = p2, p3 = p3 as object of C by A10; take ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] ; ::_thesis: S2[i,( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):]] take p1 ; ::_thesis: ex p2, p3 being object of C st ( i = [p1,p2,p3] & ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] = ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] ) take p2 ; ::_thesis: ex p3 being object of C st ( i = [p1,p2,p3] & ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] = ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] ) take p3 ; ::_thesis: ( i = [p1,p2,p3] & ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] = ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] ) thus i = [p1,p2,p3] by A11; ::_thesis: ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] = ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] thus ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] = ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] ; ::_thesis: verum end; consider Co being ManySortedSet of [: the carrier of C, the carrier of C, the carrier of C:] such that A12: for i being set st i in [: the carrier of C, the carrier of C, the carrier of C:] holds S2[i,Co . i] from PBOOLE:sch_3(A9); A13: Ar cc= the Arrows of C proof thus [: the carrier of C, the carrier of C:] c= [: the carrier of C, the carrier of C:] ; :: according to ALTCAT_2:def_2 ::_thesis: for b1 being set holds ( not b1 in [: the carrier of C, the carrier of C:] or Ar . b1 c= the Arrows of C . b1 ) let i be set ; ::_thesis: ( not i in [: the carrier of C, the carrier of C:] or Ar . i c= the Arrows of C . i ) assume A14: i in [: the carrier of C, the carrier of C:] ; ::_thesis: Ar . i c= the Arrows of C . i let q be set ; :: according to TARSKI:def_3 ::_thesis: ( not q in Ar . i or q in the Arrows of C . i ) assume q in Ar . i ; ::_thesis: q in the Arrows of C . i then ex p1, p2 being object of C ex m being Morphism of p1,p2 st ( i = [p1,p2] & <^p1,p2^> <> {} & q = m & m is mono ) by A8, A14; hence q in the Arrows of C . i ; ::_thesis: verum end; Co is ManySortedFunction of {|Ar,Ar|},{|Ar|} proof let i be set ; :: according to PBOOLE:def_15 ::_thesis: ( not i in [: the carrier of C, the carrier of C, the carrier of C:] or Co . i is M2( bool [:({|Ar,Ar|} . i),({|Ar|} . i):]) ) assume i in [: the carrier of C, the carrier of C, the carrier of C:] ; ::_thesis: Co . i is M2( bool [:({|Ar,Ar|} . i),({|Ar|} . i):]) then consider p1, p2, p3 being object of C such that A15: i = [p1,p2,p3] and A16: Co . i = ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] by A12; A17: [p1,p2] in [: the carrier of C, the carrier of C:] by ZFMISC_1:def_2; then A18: Ar . [p1,p2] c= the Arrows of C . (p1,p2) by A13, ALTCAT_2:def_2; A19: [p2,p3] in [: the carrier of C, the carrier of C:] by ZFMISC_1:def_2; then Ar . [p2,p3] c= the Arrows of C . (p2,p3) by A13, ALTCAT_2:def_2; then A20: [:(Ar . (p2,p3)),(Ar . (p1,p2)):] c= [:( the Arrows of C . (p2,p3)),( the Arrows of C . (p1,p2)):] by A18, ZFMISC_1:96; ( the Arrows of C . (p1,p3) = {} implies [:( the Arrows of C . (p2,p3)),( the Arrows of C . (p1,p2)):] = {} ) by Lm1; then reconsider f = Co . i as Function of [:(Ar . (p2,p3)),(Ar . (p1,p2)):],( the Arrows of C . (p1,p3)) by A16, A20, FUNCT_2:32; A21: Ar . [p1,p2] c= the Arrows of C . [p1,p2] by A13, A17, ALTCAT_2:def_2; A22: Ar . [p2,p3] c= the Arrows of C . [p2,p3] by A13, A19, ALTCAT_2:def_2; A23: ( the Arrows of C . (p1,p3) = {} implies [:(Ar . (p2,p3)),(Ar . (p1,p2)):] = {} ) proof assume A24: the Arrows of C . (p1,p3) = {} ; ::_thesis: [:(Ar . (p2,p3)),(Ar . (p1,p2)):] = {} assume [:(Ar . (p2,p3)),(Ar . (p1,p2)):] <> {} ; ::_thesis: contradiction then consider k being set such that A25: k in [:(Ar . (p2,p3)),(Ar . (p1,p2)):] by XBOOLE_0:def_1; consider u1, u2 being set such that A26: ( u1 in Ar . (p2,p3) & u2 in Ar . (p1,p2) ) and k = [u1,u2] by A25, ZFMISC_1:def_2; ( u1 in <^p2,p3^> & u2 in <^p1,p2^> ) by A22, A21, A26; then <^p1,p3^> <> {} by ALTCAT_1:def_2; hence contradiction by A24; ::_thesis: verum end; A27: {|Ar|} . (p1,p2,p3) = Ar . (p1,p3) by ALTCAT_1:def_3; A28: rng f c= {|Ar|} . i proof let q be set ; :: according to TARSKI:def_3 ::_thesis: ( not q in rng f or q in {|Ar|} . i ) assume q in rng f ; ::_thesis: q in {|Ar|} . i then consider x being set such that A29: x in dom f and A30: q = f . x by FUNCT_1:def_3; A31: dom f = [:(Ar . (p2,p3)),(Ar . (p1,p2)):] by A23, FUNCT_2:def_1; then consider m1, m2 being set such that A32: m1 in Ar . (p2,p3) and A33: m2 in Ar . (p1,p2) and A34: x = [m1,m2] by A29, ZFMISC_1:84; [p2,p3] in [: the carrier of C, the carrier of C:] by ZFMISC_1:def_2; then consider q2, q3 being object of C, qq being Morphism of q2,q3 such that A35: [p2,p3] = [q2,q3] and A36: <^q2,q3^> <> {} and A37: m1 = qq and A38: qq is mono by A8, A32; [p1,p2] in [: the carrier of C, the carrier of C:] by ZFMISC_1:def_2; then consider r1, r2 being object of C, rr being Morphism of r1,r2 such that A39: [p1,p2] = [r1,r2] and A40: <^r1,r2^> <> {} and A41: m2 = rr and A42: rr is mono by A8, A33; A43: ex o1, o3 being object of C ex m being Morphism of o1,o3 st ( [p1,p3] = [o1,o3] & <^o1,o3^> <> {} & q = m & m is mono ) proof A44: p2 = q2 by A35, XTUPLE_0:1; then reconsider mm = qq as Morphism of r2,q3 by A39, XTUPLE_0:1; take r1 ; ::_thesis: ex o3 being object of C ex m being Morphism of r1,o3 st ( [p1,p3] = [r1,o3] & <^r1,o3^> <> {} & q = m & m is mono ) take q3 ; ::_thesis: ex m being Morphism of r1,q3 st ( [p1,p3] = [r1,q3] & <^r1,q3^> <> {} & q = m & m is mono ) take mm * rr ; ::_thesis: ( [p1,p3] = [r1,q3] & <^r1,q3^> <> {} & q = mm * rr & mm * rr is mono ) A45: p1 = r1 by A39, XTUPLE_0:1; hence [p1,p3] = [r1,q3] by A35, XTUPLE_0:1; ::_thesis: ( <^r1,q3^> <> {} & q = mm * rr & mm * rr is mono ) A46: r2 = p2 by A39, XTUPLE_0:1; hence <^r1,q3^> <> {} by A36, A40, A44, ALTCAT_1:def_2; ::_thesis: ( q = mm * rr & mm * rr is mono ) A47: p3 = q3 by A35, XTUPLE_0:1; thus q = ( the Comp of C . (p1,p2,p3)) . (mm,rr) by A16, A29, A30, A31, A34, A37, A41, FUNCT_1:49 .= mm * rr by A35, A36, A40, A46, A45, A47, ALTCAT_1:def_8 ; ::_thesis: mm * rr is mono thus mm * rr is mono by A36, A38, A40, A42, A46, A44, ALTCAT_3:9; ::_thesis: verum end; [p1,p3] in [: the carrier of C, the carrier of C:] by ZFMISC_1:def_2; then q in Ar . [p1,p3] by A8, A43; hence q in {|Ar|} . i by A15, A27, MULTOP_1:def_1; ::_thesis: verum end; {|Ar,Ar|} . (p1,p2,p3) = [:(Ar . (p2,p3)),(Ar . (p1,p2)):] by ALTCAT_1:def_4; then [:(Ar . (p2,p3)),(Ar . (p1,p2)):] = {|Ar,Ar|} . i by A15, MULTOP_1:def_1; hence Co . i is M2( bool [:({|Ar,Ar|} . i),({|Ar|} . i):]) by A23, A28, FUNCT_2:6; ::_thesis: verum end; then reconsider Co = Co as BinComp of Ar ; set IT = AltCatStr(# the carrier of C,Ar,Co #); set J = the carrier of AltCatStr(# the carrier of C,Ar,Co #); AltCatStr(# the carrier of C,Ar,Co #) is SubCatStr of C proof thus the carrier of AltCatStr(# the carrier of C,Ar,Co #) c= the carrier of C ; :: according to ALTCAT_2:def_11 ::_thesis: ( the Arrows of AltCatStr(# the carrier of C,Ar,Co #) cc= the Arrows of C & the Comp of AltCatStr(# the carrier of C,Ar,Co #) cc= the Comp of C ) thus the Arrows of AltCatStr(# the carrier of C,Ar,Co #) cc= the Arrows of C by A13; ::_thesis: the Comp of AltCatStr(# the carrier of C,Ar,Co #) cc= the Comp of C thus [: the carrier of AltCatStr(# the carrier of C,Ar,Co #), the carrier of AltCatStr(# the carrier of C,Ar,Co #), the carrier of AltCatStr(# the carrier of C,Ar,Co #):] c= [: the carrier of C, the carrier of C, the carrier of C:] ; :: according to ALTCAT_2:def_2 ::_thesis: for b1 being set holds ( not b1 in [: the carrier of AltCatStr(# the carrier of C,Ar,Co #), the carrier of AltCatStr(# the carrier of C,Ar,Co #), the carrier of AltCatStr(# the carrier of C,Ar,Co #):] or the Comp of AltCatStr(# the carrier of C,Ar,Co #) . b1 c= the Comp of C . b1 ) let i be set ; ::_thesis: ( not i in [: the carrier of AltCatStr(# the carrier of C,Ar,Co #), the carrier of AltCatStr(# the carrier of C,Ar,Co #), the carrier of AltCatStr(# the carrier of C,Ar,Co #):] or the Comp of AltCatStr(# the carrier of C,Ar,Co #) . i c= the Comp of C . i ) assume i in [: the carrier of AltCatStr(# the carrier of C,Ar,Co #), the carrier of AltCatStr(# the carrier of C,Ar,Co #), the carrier of AltCatStr(# the carrier of C,Ar,Co #):] ; ::_thesis: the Comp of AltCatStr(# the carrier of C,Ar,Co #) . i c= the Comp of C . i then consider p1, p2, p3 being object of C such that A48: i = [p1,p2,p3] and A49: Co . i = ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] by A12; A50: ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] c= the Comp of C . (p1,p2,p3) by RELAT_1:59; let q be set ; :: according to TARSKI:def_3 ::_thesis: ( not q in the Comp of AltCatStr(# the carrier of C,Ar,Co #) . i or q in the Comp of C . i ) assume q in the Comp of AltCatStr(# the carrier of C,Ar,Co #) . i ; ::_thesis: q in the Comp of C . i then q in the Comp of C . (p1,p2,p3) by A49, A50; hence q in the Comp of C . i by A48, MULTOP_1:def_1; ::_thesis: verum end; then reconsider IT = AltCatStr(# the carrier of C,Ar,Co #) as non empty strict SubCatStr of C ; IT is transitive proof let p1, p2, p3 be object of IT; :: according to ALTCAT_1:def_2 ::_thesis: ( <^p1,p2^> = {} or <^p2,p3^> = {} or not <^p1,p3^> = {} ) assume that A51: <^p1,p2^> <> {} and A52: <^p2,p3^> <> {} ; ::_thesis: not <^p1,p3^> = {} consider m2 being set such that A53: m2 in <^p1,p2^> by A51, XBOOLE_0:def_1; consider m1 being set such that A54: m1 in <^p2,p3^> by A52, XBOOLE_0:def_1; [p2,p3] in [: the carrier of C, the carrier of C:] by ZFMISC_1:def_2; then consider q2, q3 being object of C, qq being Morphism of q2,q3 such that A55: [p2,p3] = [q2,q3] and A56: <^q2,q3^> <> {} and m1 = qq and A57: qq is mono by A8, A54; [p1,p2] in [: the carrier of C, the carrier of C:] by ZFMISC_1:def_2; then consider r1, r2 being object of C, rr being Morphism of r1,r2 such that A58: [p1,p2] = [r1,r2] and A59: <^r1,r2^> <> {} and m2 = rr and A60: rr is mono by A8, A53; A61: p2 = q2 by A55, XTUPLE_0:1; then reconsider mm = qq as Morphism of r2,q3 by A58, XTUPLE_0:1; A62: r2 = p2 by A58, XTUPLE_0:1; A63: ex o1, o3 being object of C ex m being Morphism of o1,o3 st ( [p1,p3] = [o1,o3] & <^o1,o3^> <> {} & mm * rr = m & m is mono ) proof take r1 ; ::_thesis: ex o3 being object of C ex m being Morphism of r1,o3 st ( [p1,p3] = [r1,o3] & <^r1,o3^> <> {} & mm * rr = m & m is mono ) take q3 ; ::_thesis: ex m being Morphism of r1,q3 st ( [p1,p3] = [r1,q3] & <^r1,q3^> <> {} & mm * rr = m & m is mono ) take mm * rr ; ::_thesis: ( [p1,p3] = [r1,q3] & <^r1,q3^> <> {} & mm * rr = mm * rr & mm * rr is mono ) p1 = r1 by A58, XTUPLE_0:1; hence [p1,p3] = [r1,q3] by A55, XTUPLE_0:1; ::_thesis: ( <^r1,q3^> <> {} & mm * rr = mm * rr & mm * rr is mono ) thus <^r1,q3^> <> {} by A56, A59, A62, A61, ALTCAT_1:def_2; ::_thesis: ( mm * rr = mm * rr & mm * rr is mono ) thus mm * rr = mm * rr ; ::_thesis: mm * rr is mono thus mm * rr is mono by A56, A57, A59, A60, A62, A61, ALTCAT_3:9; ::_thesis: verum end; [p1,p3] in [: the carrier of C, the carrier of C:] by ZFMISC_1:def_2; hence not <^p1,p3^> = {} by A8, A63; ::_thesis: verum end; then reconsider IT = IT as non empty transitive strict SubCatStr of C ; take IT ; ::_thesis: ( the carrier of IT = the carrier of C & the Arrows of IT cc= the Arrows of C & ( for o1, o2 being object of C for m being Morphism of o1,o2 holds ( m in the Arrows of IT . (o1,o2) iff ( <^o1,o2^> <> {} & m is mono ) ) ) ) thus the carrier of IT = the carrier of C ; ::_thesis: ( the Arrows of IT cc= the Arrows of C & ( for o1, o2 being object of C for m being Morphism of o1,o2 holds ( m in the Arrows of IT . (o1,o2) iff ( <^o1,o2^> <> {} & m is mono ) ) ) ) thus the Arrows of IT cc= the Arrows of C by A13; ::_thesis: for o1, o2 being object of C for m being Morphism of o1,o2 holds ( m in the Arrows of IT . (o1,o2) iff ( <^o1,o2^> <> {} & m is mono ) ) let o1, o2 be object of C; ::_thesis: for m being Morphism of o1,o2 holds ( m in the Arrows of IT . (o1,o2) iff ( <^o1,o2^> <> {} & m is mono ) ) let m be Morphism of o1,o2; ::_thesis: ( m in the Arrows of IT . (o1,o2) iff ( <^o1,o2^> <> {} & m is mono ) ) A64: [o1,o2] in [: the carrier of C, the carrier of C:] by ZFMISC_1:def_2; thus ( m in the Arrows of IT . (o1,o2) implies ( <^o1,o2^> <> {} & m is mono ) ) ::_thesis: ( <^o1,o2^> <> {} & m is mono implies m in the Arrows of IT . (o1,o2) ) proof assume m in the Arrows of IT . (o1,o2) ; ::_thesis: ( <^o1,o2^> <> {} & m is mono ) then consider p1, p2 being object of C, n being Morphism of p1,p2 such that A65: [o1,o2] = [p1,p2] and A66: ( <^p1,p2^> <> {} & m = n & n is mono ) by A8, A64; ( o1 = p1 & o2 = p2 ) by A65, XTUPLE_0:1; hence ( <^o1,o2^> <> {} & m is mono ) by A66; ::_thesis: verum end; assume ( <^o1,o2^> <> {} & m is mono ) ; ::_thesis: m in the Arrows of IT . (o1,o2) hence m in the Arrows of IT . (o1,o2) by A8, A64; ::_thesis: verum end; uniqueness for b1, b2 being non empty transitive strict SubCatStr of C st the carrier of b1 = the carrier of C & the Arrows of b1 cc= the Arrows of C & ( for o1, o2 being object of C for m being Morphism of o1,o2 holds ( m in the Arrows of b1 . (o1,o2) iff ( <^o1,o2^> <> {} & m is mono ) ) ) & the carrier of b2 = the carrier of C & the Arrows of b2 cc= the Arrows of C & ( for o1, o2 being object of C for m being Morphism of o1,o2 holds ( m in the Arrows of b2 . (o1,o2) iff ( <^o1,o2^> <> {} & m is mono ) ) ) holds b1 = b2 proof let S1, S2 be non empty transitive strict SubCatStr of C; ::_thesis: ( the carrier of S1 = the carrier of C & the Arrows of S1 cc= the Arrows of C & ( for o1, o2 being object of C for m being Morphism of o1,o2 holds ( m in the Arrows of S1 . (o1,o2) iff ( <^o1,o2^> <> {} & m is mono ) ) ) & the carrier of S2 = the carrier of C & the Arrows of S2 cc= the Arrows of C & ( for o1, o2 being object of C for m being Morphism of o1,o2 holds ( m in the Arrows of S2 . (o1,o2) iff ( <^o1,o2^> <> {} & m is mono ) ) ) implies S1 = S2 ) assume that A67: the carrier of S1 = the carrier of C and A68: the Arrows of S1 cc= the Arrows of C and A69: for o1, o2 being object of C for m being Morphism of o1,o2 holds ( m in the Arrows of S1 . (o1,o2) iff ( <^o1,o2^> <> {} & m is mono ) ) and A70: the carrier of S2 = the carrier of C and A71: the Arrows of S2 cc= the Arrows of C and A72: for o1, o2 being object of C for m being Morphism of o1,o2 holds ( m in the Arrows of S2 . (o1,o2) iff ( <^o1,o2^> <> {} & m is mono ) ) ; ::_thesis: S1 = S2 now__::_thesis:_for_i_being_set_st_i_in_[:_the_carrier_of_C,_the_carrier_of_C:]_holds_ the_Arrows_of_S1_._i_=_the_Arrows_of_S2_._i let i be set ; ::_thesis: ( i in [: the carrier of C, the carrier of C:] implies the Arrows of S1 . i = the Arrows of S2 . i ) assume A73: i in [: the carrier of C, the carrier of C:] ; ::_thesis: the Arrows of S1 . i = the Arrows of S2 . i then consider o1, o2 being set such that A74: ( o1 in the carrier of C & o2 in the carrier of C ) and A75: i = [o1,o2] by ZFMISC_1:84; reconsider o1 = o1, o2 = o2 as object of C by A74; thus the Arrows of S1 . i = the Arrows of S2 . i ::_thesis: verum proof thus the Arrows of S1 . i c= the Arrows of S2 . i :: according to XBOOLE_0:def_10 ::_thesis: the Arrows of S2 . i c= the Arrows of S1 . i proof let n be set ; :: according to TARSKI:def_3 ::_thesis: ( not n in the Arrows of S1 . i or n in the Arrows of S2 . i ) assume A76: n in the Arrows of S1 . i ; ::_thesis: n in the Arrows of S2 . i the Arrows of S1 . i c= the Arrows of C . i by A67, A68, A73, ALTCAT_2:def_2; then reconsider m = n as Morphism of o1,o2 by A75, A76; m in the Arrows of S1 . (o1,o2) by A75, A76; then ( <^o1,o2^> <> {} & m is mono ) by A69; then m in the Arrows of S2 . (o1,o2) by A72; hence n in the Arrows of S2 . i by A75; ::_thesis: verum end; let n be set ; :: according to TARSKI:def_3 ::_thesis: ( not n in the Arrows of S2 . i or n in the Arrows of S1 . i ) assume A77: n in the Arrows of S2 . i ; ::_thesis: n in the Arrows of S1 . i the Arrows of S2 . i c= the Arrows of C . i by A70, A71, A73, ALTCAT_2:def_2; then reconsider m = n as Morphism of o1,o2 by A75, A77; m in the Arrows of S2 . (o1,o2) by A75, A77; then ( <^o1,o2^> <> {} & m is mono ) by A72; then m in the Arrows of S1 . (o1,o2) by A69; hence n in the Arrows of S1 . i by A75; ::_thesis: verum end; end; hence S1 = S2 by A67, A70, ALTCAT_2:26, PBOOLE:3; ::_thesis: verum end; end; :: deftheorem Def1 defines AllMono ALTCAT_4:def_1_:_ for C being category for b2 being non empty transitive strict SubCatStr of C holds ( b2 = AllMono C iff ( the carrier of b2 = the carrier of C & the Arrows of b2 cc= the Arrows of C & ( for o1, o2 being object of C for m being Morphism of o1,o2 holds ( m in the Arrows of b2 . (o1,o2) iff ( <^o1,o2^> <> {} & m is mono ) ) ) ) ); registration let C be category; cluster AllMono C -> non empty transitive strict id-inheriting ; coherence AllMono C is id-inheriting proof for o being object of (AllMono C) for o9 being object of C st o = o9 holds idm o9 in <^o,o^> by Def1; hence AllMono C is id-inheriting by ALTCAT_2:def_14; ::_thesis: verum end; end; definition let C be category; func AllEpi C -> non empty transitive strict SubCatStr of C means :Def2: :: ALTCAT_4:def 2 ( the carrier of it = the carrier of C & the Arrows of it cc= the Arrows of C & ( for o1, o2 being object of C for m being Morphism of o1,o2 holds ( m in the Arrows of it . (o1,o2) iff ( <^o1,o2^> <> {} & m is epi ) ) ) ); existence ex b1 being non empty transitive strict SubCatStr of C st ( the carrier of b1 = the carrier of C & the Arrows of b1 cc= the Arrows of C & ( for o1, o2 being object of C for m being Morphism of o1,o2 holds ( m in the Arrows of b1 . (o1,o2) iff ( <^o1,o2^> <> {} & m is epi ) ) ) ) proof defpred S1[ set , set ] means for x being set holds ( x in $2 iff ex o1, o2 being object of C ex m being Morphism of o1,o2 st ( $1 = [o1,o2] & <^o1,o2^> <> {} & x = m & m is epi ) ); set I = the carrier of C; A1: for i being set st i in [: the carrier of C, the carrier of C:] holds ex X being set st S1[i,X] proof let i be set ; ::_thesis: ( i in [: the carrier of C, the carrier of C:] implies ex X being set st S1[i,X] ) assume i in [: the carrier of C, the carrier of C:] ; ::_thesis: ex X being set st S1[i,X] then consider o1, o2 being set such that A2: ( o1 in the carrier of C & o2 in the carrier of C ) and A3: i = [o1,o2] by ZFMISC_1:84; reconsider o1 = o1, o2 = o2 as object of C by A2; defpred S2[ set ] means ex m being Morphism of o1,o2 st ( <^o1,o2^> <> {} & m = $1 & m is epi ); consider X being set such that A4: for x being set holds ( x in X iff ( x in the Arrows of C . (o1,o2) & S2[x] ) ) from XBOOLE_0:sch_1(); take X ; ::_thesis: S1[i,X] let x be set ; ::_thesis: ( x in X iff ex o1, o2 being object of C ex m being Morphism of o1,o2 st ( i = [o1,o2] & <^o1,o2^> <> {} & x = m & m is epi ) ) thus ( x in X implies ex o1, o2 being object of C ex m being Morphism of o1,o2 st ( i = [o1,o2] & <^o1,o2^> <> {} & x = m & m is epi ) ) ::_thesis: ( ex o1, o2 being object of C ex m being Morphism of o1,o2 st ( i = [o1,o2] & <^o1,o2^> <> {} & x = m & m is epi ) implies x in X ) proof assume x in X ; ::_thesis: ex o1, o2 being object of C ex m being Morphism of o1,o2 st ( i = [o1,o2] & <^o1,o2^> <> {} & x = m & m is epi ) then consider m being Morphism of o1,o2 such that A5: ( <^o1,o2^> <> {} & m = x & m is epi ) by A4; take o1 ; ::_thesis: ex o2 being object of C ex m being Morphism of o1,o2 st ( i = [o1,o2] & <^o1,o2^> <> {} & x = m & m is epi ) take o2 ; ::_thesis: ex m being Morphism of o1,o2 st ( i = [o1,o2] & <^o1,o2^> <> {} & x = m & m is epi ) take m ; ::_thesis: ( i = [o1,o2] & <^o1,o2^> <> {} & x = m & m is epi ) thus ( i = [o1,o2] & <^o1,o2^> <> {} & x = m & m is epi ) by A3, A5; ::_thesis: verum end; given p1, p2 being object of C, m being Morphism of p1,p2 such that A6: i = [p1,p2] and A7: ( <^p1,p2^> <> {} & x = m & m is epi ) ; ::_thesis: x in X ( o1 = p1 & o2 = p2 ) by A3, A6, XTUPLE_0:1; hence x in X by A4, A7; ::_thesis: verum end; consider Ar being ManySortedSet of [: the carrier of C, the carrier of C:] such that A8: for i being set st i in [: the carrier of C, the carrier of C:] holds S1[i,Ar . i] from PBOOLE:sch_3(A1); defpred S2[ set , set ] means ex p1, p2, p3 being object of C st ( $1 = [p1,p2,p3] & $2 = ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] ); A9: for i being set st i in [: the carrier of C, the carrier of C, the carrier of C:] holds ex j being set st S2[i,j] proof let i be set ; ::_thesis: ( i in [: the carrier of C, the carrier of C, the carrier of C:] implies ex j being set st S2[i,j] ) assume i in [: the carrier of C, the carrier of C, the carrier of C:] ; ::_thesis: ex j being set st S2[i,j] then consider p1, p2, p3 being set such that A10: ( p1 in the carrier of C & p2 in the carrier of C & p3 in the carrier of C ) and A11: i = [p1,p2,p3] by MCART_1:68; reconsider p1 = p1, p2 = p2, p3 = p3 as object of C by A10; take ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] ; ::_thesis: S2[i,( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):]] take p1 ; ::_thesis: ex p2, p3 being object of C st ( i = [p1,p2,p3] & ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] = ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] ) take p2 ; ::_thesis: ex p3 being object of C st ( i = [p1,p2,p3] & ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] = ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] ) take p3 ; ::_thesis: ( i = [p1,p2,p3] & ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] = ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] ) thus i = [p1,p2,p3] by A11; ::_thesis: ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] = ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] thus ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] = ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] ; ::_thesis: verum end; consider Co being ManySortedSet of [: the carrier of C, the carrier of C, the carrier of C:] such that A12: for i being set st i in [: the carrier of C, the carrier of C, the carrier of C:] holds S2[i,Co . i] from PBOOLE:sch_3(A9); A13: Ar cc= the Arrows of C proof thus [: the carrier of C, the carrier of C:] c= [: the carrier of C, the carrier of C:] ; :: according to ALTCAT_2:def_2 ::_thesis: for b1 being set holds ( not b1 in [: the carrier of C, the carrier of C:] or Ar . b1 c= the Arrows of C . b1 ) let i be set ; ::_thesis: ( not i in [: the carrier of C, the carrier of C:] or Ar . i c= the Arrows of C . i ) assume A14: i in [: the carrier of C, the carrier of C:] ; ::_thesis: Ar . i c= the Arrows of C . i let q be set ; :: according to TARSKI:def_3 ::_thesis: ( not q in Ar . i or q in the Arrows of C . i ) assume q in Ar . i ; ::_thesis: q in the Arrows of C . i then ex p1, p2 being object of C ex m being Morphism of p1,p2 st ( i = [p1,p2] & <^p1,p2^> <> {} & q = m & m is epi ) by A8, A14; hence q in the Arrows of C . i ; ::_thesis: verum end; Co is ManySortedFunction of {|Ar,Ar|},{|Ar|} proof let i be set ; :: according to PBOOLE:def_15 ::_thesis: ( not i in [: the carrier of C, the carrier of C, the carrier of C:] or Co . i is M2( bool [:({|Ar,Ar|} . i),({|Ar|} . i):]) ) assume i in [: the carrier of C, the carrier of C, the carrier of C:] ; ::_thesis: Co . i is M2( bool [:({|Ar,Ar|} . i),({|Ar|} . i):]) then consider p1, p2, p3 being object of C such that A15: i = [p1,p2,p3] and A16: Co . i = ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] by A12; A17: [p1,p2] in [: the carrier of C, the carrier of C:] by ZFMISC_1:def_2; then A18: Ar . [p1,p2] c= the Arrows of C . (p1,p2) by A13, ALTCAT_2:def_2; A19: [p2,p3] in [: the carrier of C, the carrier of C:] by ZFMISC_1:def_2; then Ar . [p2,p3] c= the Arrows of C . (p2,p3) by A13, ALTCAT_2:def_2; then A20: [:(Ar . (p2,p3)),(Ar . (p1,p2)):] c= [:( the Arrows of C . (p2,p3)),( the Arrows of C . (p1,p2)):] by A18, ZFMISC_1:96; ( the Arrows of C . (p1,p3) = {} implies [:( the Arrows of C . (p2,p3)),( the Arrows of C . (p1,p2)):] = {} ) by Lm1; then reconsider f = Co . i as Function of [:(Ar . (p2,p3)),(Ar . (p1,p2)):],( the Arrows of C . (p1,p3)) by A16, A20, FUNCT_2:32; A21: Ar . [p1,p2] c= the Arrows of C . [p1,p2] by A13, A17, ALTCAT_2:def_2; A22: Ar . [p2,p3] c= the Arrows of C . [p2,p3] by A13, A19, ALTCAT_2:def_2; A23: ( the Arrows of C . (p1,p3) = {} implies [:(Ar . (p2,p3)),(Ar . (p1,p2)):] = {} ) proof assume A24: the Arrows of C . (p1,p3) = {} ; ::_thesis: [:(Ar . (p2,p3)),(Ar . (p1,p2)):] = {} assume [:(Ar . (p2,p3)),(Ar . (p1,p2)):] <> {} ; ::_thesis: contradiction then consider k being set such that A25: k in [:(Ar . (p2,p3)),(Ar . (p1,p2)):] by XBOOLE_0:def_1; consider u1, u2 being set such that A26: ( u1 in Ar . (p2,p3) & u2 in Ar . (p1,p2) ) and k = [u1,u2] by A25, ZFMISC_1:def_2; ( u1 in <^p2,p3^> & u2 in <^p1,p2^> ) by A22, A21, A26; then <^p1,p3^> <> {} by ALTCAT_1:def_2; hence contradiction by A24; ::_thesis: verum end; A27: {|Ar|} . (p1,p2,p3) = Ar . (p1,p3) by ALTCAT_1:def_3; A28: rng f c= {|Ar|} . i proof let q be set ; :: according to TARSKI:def_3 ::_thesis: ( not q in rng f or q in {|Ar|} . i ) assume q in rng f ; ::_thesis: q in {|Ar|} . i then consider x being set such that A29: x in dom f and A30: q = f . x by FUNCT_1:def_3; A31: dom f = [:(Ar . (p2,p3)),(Ar . (p1,p2)):] by A23, FUNCT_2:def_1; then consider m1, m2 being set such that A32: m1 in Ar . (p2,p3) and A33: m2 in Ar . (p1,p2) and A34: x = [m1,m2] by A29, ZFMISC_1:84; [p2,p3] in [: the carrier of C, the carrier of C:] by ZFMISC_1:def_2; then consider q2, q3 being object of C, qq being Morphism of q2,q3 such that A35: [p2,p3] = [q2,q3] and A36: <^q2,q3^> <> {} and A37: m1 = qq and A38: qq is epi by A8, A32; [p1,p2] in [: the carrier of C, the carrier of C:] by ZFMISC_1:def_2; then consider r1, r2 being object of C, rr being Morphism of r1,r2 such that A39: [p1,p2] = [r1,r2] and A40: <^r1,r2^> <> {} and A41: m2 = rr and A42: rr is epi by A8, A33; A43: ex o1, o3 being object of C ex m being Morphism of o1,o3 st ( [p1,p3] = [o1,o3] & <^o1,o3^> <> {} & q = m & m is epi ) proof A44: p2 = q2 by A35, XTUPLE_0:1; then reconsider mm = qq as Morphism of r2,q3 by A39, XTUPLE_0:1; take r1 ; ::_thesis: ex o3 being object of C ex m being Morphism of r1,o3 st ( [p1,p3] = [r1,o3] & <^r1,o3^> <> {} & q = m & m is epi ) take q3 ; ::_thesis: ex m being Morphism of r1,q3 st ( [p1,p3] = [r1,q3] & <^r1,q3^> <> {} & q = m & m is epi ) take mm * rr ; ::_thesis: ( [p1,p3] = [r1,q3] & <^r1,q3^> <> {} & q = mm * rr & mm * rr is epi ) A45: p1 = r1 by A39, XTUPLE_0:1; hence [p1,p3] = [r1,q3] by A35, XTUPLE_0:1; ::_thesis: ( <^r1,q3^> <> {} & q = mm * rr & mm * rr is epi ) A46: r2 = p2 by A39, XTUPLE_0:1; hence <^r1,q3^> <> {} by A36, A40, A44, ALTCAT_1:def_2; ::_thesis: ( q = mm * rr & mm * rr is epi ) A47: p3 = q3 by A35, XTUPLE_0:1; thus q = ( the Comp of C . (p1,p2,p3)) . (mm,rr) by A16, A29, A30, A31, A34, A37, A41, FUNCT_1:49 .= mm * rr by A35, A36, A40, A46, A45, A47, ALTCAT_1:def_8 ; ::_thesis: mm * rr is epi thus mm * rr is epi by A36, A38, A40, A42, A46, A44, ALTCAT_3:10; ::_thesis: verum end; [p1,p3] in [: the carrier of C, the carrier of C:] by ZFMISC_1:def_2; then q in Ar . [p1,p3] by A8, A43; hence q in {|Ar|} . i by A15, A27, MULTOP_1:def_1; ::_thesis: verum end; {|Ar,Ar|} . (p1,p2,p3) = [:(Ar . (p2,p3)),(Ar . (p1,p2)):] by ALTCAT_1:def_4; then [:(Ar . (p2,p3)),(Ar . (p1,p2)):] = {|Ar,Ar|} . i by A15, MULTOP_1:def_1; hence Co . i is M2( bool [:({|Ar,Ar|} . i),({|Ar|} . i):]) by A23, A28, FUNCT_2:6; ::_thesis: verum end; then reconsider Co = Co as BinComp of Ar ; set IT = AltCatStr(# the carrier of C,Ar,Co #); set J = the carrier of AltCatStr(# the carrier of C,Ar,Co #); AltCatStr(# the carrier of C,Ar,Co #) is SubCatStr of C proof thus the carrier of AltCatStr(# the carrier of C,Ar,Co #) c= the carrier of C ; :: according to ALTCAT_2:def_11 ::_thesis: ( the Arrows of AltCatStr(# the carrier of C,Ar,Co #) cc= the Arrows of C & the Comp of AltCatStr(# the carrier of C,Ar,Co #) cc= the Comp of C ) thus the Arrows of AltCatStr(# the carrier of C,Ar,Co #) cc= the Arrows of C by A13; ::_thesis: the Comp of AltCatStr(# the carrier of C,Ar,Co #) cc= the Comp of C thus [: the carrier of AltCatStr(# the carrier of C,Ar,Co #), the carrier of AltCatStr(# the carrier of C,Ar,Co #), the carrier of AltCatStr(# the carrier of C,Ar,Co #):] c= [: the carrier of C, the carrier of C, the carrier of C:] ; :: according to ALTCAT_2:def_2 ::_thesis: for b1 being set holds ( not b1 in [: the carrier of AltCatStr(# the carrier of C,Ar,Co #), the carrier of AltCatStr(# the carrier of C,Ar,Co #), the carrier of AltCatStr(# the carrier of C,Ar,Co #):] or the Comp of AltCatStr(# the carrier of C,Ar,Co #) . b1 c= the Comp of C . b1 ) let i be set ; ::_thesis: ( not i in [: the carrier of AltCatStr(# the carrier of C,Ar,Co #), the carrier of AltCatStr(# the carrier of C,Ar,Co #), the carrier of AltCatStr(# the carrier of C,Ar,Co #):] or the Comp of AltCatStr(# the carrier of C,Ar,Co #) . i c= the Comp of C . i ) assume i in [: the carrier of AltCatStr(# the carrier of C,Ar,Co #), the carrier of AltCatStr(# the carrier of C,Ar,Co #), the carrier of AltCatStr(# the carrier of C,Ar,Co #):] ; ::_thesis: the Comp of AltCatStr(# the carrier of C,Ar,Co #) . i c= the Comp of C . i then consider p1, p2, p3 being object of C such that A48: i = [p1,p2,p3] and A49: Co . i = ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] by A12; A50: ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] c= the Comp of C . (p1,p2,p3) by RELAT_1:59; let q be set ; :: according to TARSKI:def_3 ::_thesis: ( not q in the Comp of AltCatStr(# the carrier of C,Ar,Co #) . i or q in the Comp of C . i ) assume q in the Comp of AltCatStr(# the carrier of C,Ar,Co #) . i ; ::_thesis: q in the Comp of C . i then q in the Comp of C . (p1,p2,p3) by A49, A50; hence q in the Comp of C . i by A48, MULTOP_1:def_1; ::_thesis: verum end; then reconsider IT = AltCatStr(# the carrier of C,Ar,Co #) as non empty strict SubCatStr of C ; IT is transitive proof let p1, p2, p3 be object of IT; :: according to ALTCAT_1:def_2 ::_thesis: ( <^p1,p2^> = {} or <^p2,p3^> = {} or not <^p1,p3^> = {} ) assume that A51: <^p1,p2^> <> {} and A52: <^p2,p3^> <> {} ; ::_thesis: not <^p1,p3^> = {} consider m2 being set such that A53: m2 in <^p1,p2^> by A51, XBOOLE_0:def_1; consider m1 being set such that A54: m1 in <^p2,p3^> by A52, XBOOLE_0:def_1; [p2,p3] in [: the carrier of C, the carrier of C:] by ZFMISC_1:def_2; then consider q2, q3 being object of C, qq being Morphism of q2,q3 such that A55: [p2,p3] = [q2,q3] and A56: <^q2,q3^> <> {} and m1 = qq and A57: qq is epi by A8, A54; [p1,p2] in [: the carrier of C, the carrier of C:] by ZFMISC_1:def_2; then consider r1, r2 being object of C, rr being Morphism of r1,r2 such that A58: [p1,p2] = [r1,r2] and A59: <^r1,r2^> <> {} and m2 = rr and A60: rr is epi by A8, A53; A61: p2 = q2 by A55, XTUPLE_0:1; then reconsider mm = qq as Morphism of r2,q3 by A58, XTUPLE_0:1; A62: r2 = p2 by A58, XTUPLE_0:1; A63: ex o1, o3 being object of C ex m being Morphism of o1,o3 st ( [p1,p3] = [o1,o3] & <^o1,o3^> <> {} & mm * rr = m & m is epi ) proof take r1 ; ::_thesis: ex o3 being object of C ex m being Morphism of r1,o3 st ( [p1,p3] = [r1,o3] & <^r1,o3^> <> {} & mm * rr = m & m is epi ) take q3 ; ::_thesis: ex m being Morphism of r1,q3 st ( [p1,p3] = [r1,q3] & <^r1,q3^> <> {} & mm * rr = m & m is epi ) take mm * rr ; ::_thesis: ( [p1,p3] = [r1,q3] & <^r1,q3^> <> {} & mm * rr = mm * rr & mm * rr is epi ) p1 = r1 by A58, XTUPLE_0:1; hence [p1,p3] = [r1,q3] by A55, XTUPLE_0:1; ::_thesis: ( <^r1,q3^> <> {} & mm * rr = mm * rr & mm * rr is epi ) thus <^r1,q3^> <> {} by A56, A59, A62, A61, ALTCAT_1:def_2; ::_thesis: ( mm * rr = mm * rr & mm * rr is epi ) thus mm * rr = mm * rr ; ::_thesis: mm * rr is epi thus mm * rr is epi by A56, A57, A59, A60, A62, A61, ALTCAT_3:10; ::_thesis: verum end; [p1,p3] in [: the carrier of C, the carrier of C:] by ZFMISC_1:def_2; hence not <^p1,p3^> = {} by A8, A63; ::_thesis: verum end; then reconsider IT = IT as non empty transitive strict SubCatStr of C ; take IT ; ::_thesis: ( the carrier of IT = the carrier of C & the Arrows of IT cc= the Arrows of C & ( for o1, o2 being object of C for m being Morphism of o1,o2 holds ( m in the Arrows of IT . (o1,o2) iff ( <^o1,o2^> <> {} & m is epi ) ) ) ) thus the carrier of IT = the carrier of C ; ::_thesis: ( the Arrows of IT cc= the Arrows of C & ( for o1, o2 being object of C for m being Morphism of o1,o2 holds ( m in the Arrows of IT . (o1,o2) iff ( <^o1,o2^> <> {} & m is epi ) ) ) ) thus the Arrows of IT cc= the Arrows of C by A13; ::_thesis: for o1, o2 being object of C for m being Morphism of o1,o2 holds ( m in the Arrows of IT . (o1,o2) iff ( <^o1,o2^> <> {} & m is epi ) ) let o1, o2 be object of C; ::_thesis: for m being Morphism of o1,o2 holds ( m in the Arrows of IT . (o1,o2) iff ( <^o1,o2^> <> {} & m is epi ) ) let m be Morphism of o1,o2; ::_thesis: ( m in the Arrows of IT . (o1,o2) iff ( <^o1,o2^> <> {} & m is epi ) ) A64: [o1,o2] in [: the carrier of C, the carrier of C:] by ZFMISC_1:def_2; thus ( m in the Arrows of IT . (o1,o2) implies ( <^o1,o2^> <> {} & m is epi ) ) ::_thesis: ( <^o1,o2^> <> {} & m is epi implies m in the Arrows of IT . (o1,o2) ) proof assume m in the Arrows of IT . (o1,o2) ; ::_thesis: ( <^o1,o2^> <> {} & m is epi ) then consider p1, p2 being object of C, n being Morphism of p1,p2 such that A65: [o1,o2] = [p1,p2] and A66: ( <^p1,p2^> <> {} & m = n & n is epi ) by A8, A64; ( o1 = p1 & o2 = p2 ) by A65, XTUPLE_0:1; hence ( <^o1,o2^> <> {} & m is epi ) by A66; ::_thesis: verum end; assume ( <^o1,o2^> <> {} & m is epi ) ; ::_thesis: m in the Arrows of IT . (o1,o2) hence m in the Arrows of IT . (o1,o2) by A8, A64; ::_thesis: verum end; uniqueness for b1, b2 being non empty transitive strict SubCatStr of C st the carrier of b1 = the carrier of C & the Arrows of b1 cc= the Arrows of C & ( for o1, o2 being object of C for m being Morphism of o1,o2 holds ( m in the Arrows of b1 . (o1,o2) iff ( <^o1,o2^> <> {} & m is epi ) ) ) & the carrier of b2 = the carrier of C & the Arrows of b2 cc= the Arrows of C & ( for o1, o2 being object of C for m being Morphism of o1,o2 holds ( m in the Arrows of b2 . (o1,o2) iff ( <^o1,o2^> <> {} & m is epi ) ) ) holds b1 = b2 proof let S1, S2 be non empty transitive strict SubCatStr of C; ::_thesis: ( the carrier of S1 = the carrier of C & the Arrows of S1 cc= the Arrows of C & ( for o1, o2 being object of C for m being Morphism of o1,o2 holds ( m in the Arrows of S1 . (o1,o2) iff ( <^o1,o2^> <> {} & m is epi ) ) ) & the carrier of S2 = the carrier of C & the Arrows of S2 cc= the Arrows of C & ( for o1, o2 being object of C for m being Morphism of o1,o2 holds ( m in the Arrows of S2 . (o1,o2) iff ( <^o1,o2^> <> {} & m is epi ) ) ) implies S1 = S2 ) assume that A67: the carrier of S1 = the carrier of C and A68: the Arrows of S1 cc= the Arrows of C and A69: for o1, o2 being object of C for m being Morphism of o1,o2 holds ( m in the Arrows of S1 . (o1,o2) iff ( <^o1,o2^> <> {} & m is epi ) ) and A70: the carrier of S2 = the carrier of C and A71: the Arrows of S2 cc= the Arrows of C and A72: for o1, o2 being object of C for m being Morphism of o1,o2 holds ( m in the Arrows of S2 . (o1,o2) iff ( <^o1,o2^> <> {} & m is epi ) ) ; ::_thesis: S1 = S2 now__::_thesis:_for_i_being_set_st_i_in_[:_the_carrier_of_C,_the_carrier_of_C:]_holds_ the_Arrows_of_S1_._i_=_the_Arrows_of_S2_._i let i be set ; ::_thesis: ( i in [: the carrier of C, the carrier of C:] implies the Arrows of S1 . i = the Arrows of S2 . i ) assume A73: i in [: the carrier of C, the carrier of C:] ; ::_thesis: the Arrows of S1 . i = the Arrows of S2 . i then consider o1, o2 being set such that A74: ( o1 in the carrier of C & o2 in the carrier of C ) and A75: i = [o1,o2] by ZFMISC_1:84; reconsider o1 = o1, o2 = o2 as object of C by A74; thus the Arrows of S1 . i = the Arrows of S2 . i ::_thesis: verum proof thus the Arrows of S1 . i c= the Arrows of S2 . i :: according to XBOOLE_0:def_10 ::_thesis: the Arrows of S2 . i c= the Arrows of S1 . i proof let n be set ; :: according to TARSKI:def_3 ::_thesis: ( not n in the Arrows of S1 . i or n in the Arrows of S2 . i ) assume A76: n in the Arrows of S1 . i ; ::_thesis: n in the Arrows of S2 . i the Arrows of S1 . i c= the Arrows of C . i by A67, A68, A73, ALTCAT_2:def_2; then reconsider m = n as Morphism of o1,o2 by A75, A76; m in the Arrows of S1 . (o1,o2) by A75, A76; then ( <^o1,o2^> <> {} & m is epi ) by A69; then m in the Arrows of S2 . (o1,o2) by A72; hence n in the Arrows of S2 . i by A75; ::_thesis: verum end; let n be set ; :: according to TARSKI:def_3 ::_thesis: ( not n in the Arrows of S2 . i or n in the Arrows of S1 . i ) assume A77: n in the Arrows of S2 . i ; ::_thesis: n in the Arrows of S1 . i the Arrows of S2 . i c= the Arrows of C . i by A70, A71, A73, ALTCAT_2:def_2; then reconsider m = n as Morphism of o1,o2 by A75, A77; m in the Arrows of S2 . (o1,o2) by A75, A77; then ( <^o1,o2^> <> {} & m is epi ) by A72; then m in the Arrows of S1 . (o1,o2) by A69; hence n in the Arrows of S1 . i by A75; ::_thesis: verum end; end; hence S1 = S2 by A67, A70, ALTCAT_2:26, PBOOLE:3; ::_thesis: verum end; end; :: deftheorem Def2 defines AllEpi ALTCAT_4:def_2_:_ for C being category for b2 being non empty transitive strict SubCatStr of C holds ( b2 = AllEpi C iff ( the carrier of b2 = the carrier of C & the Arrows of b2 cc= the Arrows of C & ( for o1, o2 being object of C for m being Morphism of o1,o2 holds ( m in the Arrows of b2 . (o1,o2) iff ( <^o1,o2^> <> {} & m is epi ) ) ) ) ); registration let C be category; cluster AllEpi C -> non empty transitive strict id-inheriting ; coherence AllEpi C is id-inheriting proof for o being object of (AllEpi C) for o9 being object of C st o = o9 holds idm o9 in <^o,o^> by Def2; hence AllEpi C is id-inheriting by ALTCAT_2:def_14; ::_thesis: verum end; end; definition let C be category; func AllRetr C -> non empty transitive strict SubCatStr of C means :Def3: :: ALTCAT_4:def 3 ( the carrier of it = the carrier of C & the Arrows of it cc= the Arrows of C & ( for o1, o2 being object of C for m being Morphism of o1,o2 holds ( m in the Arrows of it . (o1,o2) iff ( <^o1,o2^> <> {} & <^o2,o1^> <> {} & m is retraction ) ) ) ); existence ex b1 being non empty transitive strict SubCatStr of C st ( the carrier of b1 = the carrier of C & the Arrows of b1 cc= the Arrows of C & ( for o1, o2 being object of C for m being Morphism of o1,o2 holds ( m in the Arrows of b1 . (o1,o2) iff ( <^o1,o2^> <> {} & <^o2,o1^> <> {} & m is retraction ) ) ) ) proof defpred S1[ set , set ] means for x being set holds ( x in $2 iff ex o1, o2 being object of C ex m being Morphism of o1,o2 st ( $1 = [o1,o2] & <^o1,o2^> <> {} & <^o2,o1^> <> {} & x = m & m is retraction ) ); set I = the carrier of C; A1: for i being set st i in [: the carrier of C, the carrier of C:] holds ex X being set st S1[i,X] proof let i be set ; ::_thesis: ( i in [: the carrier of C, the carrier of C:] implies ex X being set st S1[i,X] ) assume i in [: the carrier of C, the carrier of C:] ; ::_thesis: ex X being set st S1[i,X] then consider o1, o2 being set such that A2: ( o1 in the carrier of C & o2 in the carrier of C ) and A3: i = [o1,o2] by ZFMISC_1:84; reconsider o1 = o1, o2 = o2 as object of C by A2; defpred S2[ set ] means ex m being Morphism of o1,o2 st ( <^o1,o2^> <> {} & <^o2,o1^> <> {} & m = $1 & m is retraction ); consider X being set such that A4: for x being set holds ( x in X iff ( x in the Arrows of C . (o1,o2) & S2[x] ) ) from XBOOLE_0:sch_1(); take X ; ::_thesis: S1[i,X] let x be set ; ::_thesis: ( x in X iff ex o1, o2 being object of C ex m being Morphism of o1,o2 st ( i = [o1,o2] & <^o1,o2^> <> {} & <^o2,o1^> <> {} & x = m & m is retraction ) ) thus ( x in X implies ex o1, o2 being object of C ex m being Morphism of o1,o2 st ( i = [o1,o2] & <^o1,o2^> <> {} & <^o2,o1^> <> {} & x = m & m is retraction ) ) ::_thesis: ( ex o1, o2 being object of C ex m being Morphism of o1,o2 st ( i = [o1,o2] & <^o1,o2^> <> {} & <^o2,o1^> <> {} & x = m & m is retraction ) implies x in X ) proof assume x in X ; ::_thesis: ex o1, o2 being object of C ex m being Morphism of o1,o2 st ( i = [o1,o2] & <^o1,o2^> <> {} & <^o2,o1^> <> {} & x = m & m is retraction ) then consider m being Morphism of o1,o2 such that A5: ( <^o1,o2^> <> {} & <^o2,o1^> <> {} & m = x & m is retraction ) by A4; take o1 ; ::_thesis: ex o2 being object of C ex m being Morphism of o1,o2 st ( i = [o1,o2] & <^o1,o2^> <> {} & <^o2,o1^> <> {} & x = m & m is retraction ) take o2 ; ::_thesis: ex m being Morphism of o1,o2 st ( i = [o1,o2] & <^o1,o2^> <> {} & <^o2,o1^> <> {} & x = m & m is retraction ) take m ; ::_thesis: ( i = [o1,o2] & <^o1,o2^> <> {} & <^o2,o1^> <> {} & x = m & m is retraction ) thus ( i = [o1,o2] & <^o1,o2^> <> {} & <^o2,o1^> <> {} & x = m & m is retraction ) by A3, A5; ::_thesis: verum end; given p1, p2 being object of C, m being Morphism of p1,p2 such that A6: i = [p1,p2] and A7: ( <^p1,p2^> <> {} & <^p2,p1^> <> {} & x = m & m is retraction ) ; ::_thesis: x in X ( o1 = p1 & o2 = p2 ) by A3, A6, XTUPLE_0:1; hence x in X by A4, A7; ::_thesis: verum end; consider Ar being ManySortedSet of [: the carrier of C, the carrier of C:] such that A8: for i being set st i in [: the carrier of C, the carrier of C:] holds S1[i,Ar . i] from PBOOLE:sch_3(A1); defpred S2[ set , set ] means ex p1, p2, p3 being object of C st ( $1 = [p1,p2,p3] & $2 = ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] ); A9: for i being set st i in [: the carrier of C, the carrier of C, the carrier of C:] holds ex j being set st S2[i,j] proof let i be set ; ::_thesis: ( i in [: the carrier of C, the carrier of C, the carrier of C:] implies ex j being set st S2[i,j] ) assume i in [: the carrier of C, the carrier of C, the carrier of C:] ; ::_thesis: ex j being set st S2[i,j] then consider p1, p2, p3 being set such that A10: ( p1 in the carrier of C & p2 in the carrier of C & p3 in the carrier of C ) and A11: i = [p1,p2,p3] by MCART_1:68; reconsider p1 = p1, p2 = p2, p3 = p3 as object of C by A10; take ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] ; ::_thesis: S2[i,( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):]] take p1 ; ::_thesis: ex p2, p3 being object of C st ( i = [p1,p2,p3] & ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] = ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] ) take p2 ; ::_thesis: ex p3 being object of C st ( i = [p1,p2,p3] & ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] = ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] ) take p3 ; ::_thesis: ( i = [p1,p2,p3] & ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] = ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] ) thus i = [p1,p2,p3] by A11; ::_thesis: ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] = ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] thus ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] = ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] ; ::_thesis: verum end; consider Co being ManySortedSet of [: the carrier of C, the carrier of C, the carrier of C:] such that A12: for i being set st i in [: the carrier of C, the carrier of C, the carrier of C:] holds S2[i,Co . i] from PBOOLE:sch_3(A9); A13: Ar cc= the Arrows of C proof thus [: the carrier of C, the carrier of C:] c= [: the carrier of C, the carrier of C:] ; :: according to ALTCAT_2:def_2 ::_thesis: for b1 being set holds ( not b1 in [: the carrier of C, the carrier of C:] or Ar . b1 c= the Arrows of C . b1 ) let i be set ; ::_thesis: ( not i in [: the carrier of C, the carrier of C:] or Ar . i c= the Arrows of C . i ) assume A14: i in [: the carrier of C, the carrier of C:] ; ::_thesis: Ar . i c= the Arrows of C . i let q be set ; :: according to TARSKI:def_3 ::_thesis: ( not q in Ar . i or q in the Arrows of C . i ) assume q in Ar . i ; ::_thesis: q in the Arrows of C . i then ex p1, p2 being object of C ex m being Morphism of p1,p2 st ( i = [p1,p2] & <^p1,p2^> <> {} & <^p2,p1^> <> {} & q = m & m is retraction ) by A8, A14; hence q in the Arrows of C . i ; ::_thesis: verum end; Co is ManySortedFunction of {|Ar,Ar|},{|Ar|} proof let i be set ; :: according to PBOOLE:def_15 ::_thesis: ( not i in [: the carrier of C, the carrier of C, the carrier of C:] or Co . i is M2( bool [:({|Ar,Ar|} . i),({|Ar|} . i):]) ) assume i in [: the carrier of C, the carrier of C, the carrier of C:] ; ::_thesis: Co . i is M2( bool [:({|Ar,Ar|} . i),({|Ar|} . i):]) then consider p1, p2, p3 being object of C such that A15: i = [p1,p2,p3] and A16: Co . i = ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] by A12; A17: [p1,p2] in [: the carrier of C, the carrier of C:] by ZFMISC_1:def_2; then A18: Ar . [p1,p2] c= the Arrows of C . (p1,p2) by A13, ALTCAT_2:def_2; A19: [p2,p3] in [: the carrier of C, the carrier of C:] by ZFMISC_1:def_2; then Ar . [p2,p3] c= the Arrows of C . (p2,p3) by A13, ALTCAT_2:def_2; then A20: [:(Ar . (p2,p3)),(Ar . (p1,p2)):] c= [:( the Arrows of C . (p2,p3)),( the Arrows of C . (p1,p2)):] by A18, ZFMISC_1:96; ( the Arrows of C . (p1,p3) = {} implies [:( the Arrows of C . (p2,p3)),( the Arrows of C . (p1,p2)):] = {} ) by Lm1; then reconsider f = Co . i as Function of [:(Ar . (p2,p3)),(Ar . (p1,p2)):],( the Arrows of C . (p1,p3)) by A16, A20, FUNCT_2:32; A21: Ar . [p1,p2] c= the Arrows of C . [p1,p2] by A13, A17, ALTCAT_2:def_2; A22: Ar . [p2,p3] c= the Arrows of C . [p2,p3] by A13, A19, ALTCAT_2:def_2; A23: ( the Arrows of C . (p1,p3) = {} implies [:(Ar . (p2,p3)),(Ar . (p1,p2)):] = {} ) proof assume A24: the Arrows of C . (p1,p3) = {} ; ::_thesis: [:(Ar . (p2,p3)),(Ar . (p1,p2)):] = {} assume [:(Ar . (p2,p3)),(Ar . (p1,p2)):] <> {} ; ::_thesis: contradiction then consider k being set such that A25: k in [:(Ar . (p2,p3)),(Ar . (p1,p2)):] by XBOOLE_0:def_1; consider u1, u2 being set such that A26: ( u1 in Ar . (p2,p3) & u2 in Ar . (p1,p2) ) and k = [u1,u2] by A25, ZFMISC_1:def_2; ( u1 in <^p2,p3^> & u2 in <^p1,p2^> ) by A22, A21, A26; then <^p1,p3^> <> {} by ALTCAT_1:def_2; hence contradiction by A24; ::_thesis: verum end; A27: {|Ar|} . (p1,p2,p3) = Ar . (p1,p3) by ALTCAT_1:def_3; A28: rng f c= {|Ar|} . i proof let q be set ; :: according to TARSKI:def_3 ::_thesis: ( not q in rng f or q in {|Ar|} . i ) assume q in rng f ; ::_thesis: q in {|Ar|} . i then consider x being set such that A29: x in dom f and A30: q = f . x by FUNCT_1:def_3; A31: dom f = [:(Ar . (p2,p3)),(Ar . (p1,p2)):] by A23, FUNCT_2:def_1; then consider m1, m2 being set such that A32: m1 in Ar . (p2,p3) and A33: m2 in Ar . (p1,p2) and A34: x = [m1,m2] by A29, ZFMISC_1:84; [p2,p3] in [: the carrier of C, the carrier of C:] by ZFMISC_1:def_2; then consider q2, q3 being object of C, qq being Morphism of q2,q3 such that A35: [p2,p3] = [q2,q3] and A36: <^q2,q3^> <> {} and A37: <^q3,q2^> <> {} and A38: m1 = qq and A39: qq is retraction by A8, A32; [p1,p2] in [: the carrier of C, the carrier of C:] by ZFMISC_1:def_2; then consider r1, r2 being object of C, rr being Morphism of r1,r2 such that A40: [p1,p2] = [r1,r2] and A41: <^r1,r2^> <> {} and A42: <^r2,r1^> <> {} and A43: m2 = rr and A44: rr is retraction by A8, A33; A45: ex o1, o3 being object of C ex m being Morphism of o1,o3 st ( [p1,p3] = [o1,o3] & <^o1,o3^> <> {} & <^o3,o1^> <> {} & q = m & m is retraction ) proof A46: p2 = q2 by A35, XTUPLE_0:1; then reconsider mm = qq as Morphism of r2,q3 by A40, XTUPLE_0:1; take r1 ; ::_thesis: ex o3 being object of C ex m being Morphism of r1,o3 st ( [p1,p3] = [r1,o3] & <^r1,o3^> <> {} & <^o3,r1^> <> {} & q = m & m is retraction ) take q3 ; ::_thesis: ex m being Morphism of r1,q3 st ( [p1,p3] = [r1,q3] & <^r1,q3^> <> {} & <^q3,r1^> <> {} & q = m & m is retraction ) take mm * rr ; ::_thesis: ( [p1,p3] = [r1,q3] & <^r1,q3^> <> {} & <^q3,r1^> <> {} & q = mm * rr & mm * rr is retraction ) A47: p1 = r1 by A40, XTUPLE_0:1; hence [p1,p3] = [r1,q3] by A35, XTUPLE_0:1; ::_thesis: ( <^r1,q3^> <> {} & <^q3,r1^> <> {} & q = mm * rr & mm * rr is retraction ) A48: r2 = p2 by A40, XTUPLE_0:1; hence A49: ( <^r1,q3^> <> {} & <^q3,r1^> <> {} ) by A36, A37, A41, A42, A46, ALTCAT_1:def_2; ::_thesis: ( q = mm * rr & mm * rr is retraction ) A50: p3 = q3 by A35, XTUPLE_0:1; thus q = ( the Comp of C . (p1,p2,p3)) . (mm,rr) by A16, A29, A30, A31, A34, A38, A43, FUNCT_1:49 .= mm * rr by A35, A36, A41, A48, A47, A50, ALTCAT_1:def_8 ; ::_thesis: mm * rr is retraction thus mm * rr is retraction by A36, A39, A41, A44, A48, A46, A49, ALTCAT_3:18; ::_thesis: verum end; [p1,p3] in [: the carrier of C, the carrier of C:] by ZFMISC_1:def_2; then q in Ar . [p1,p3] by A8, A45; hence q in {|Ar|} . i by A15, A27, MULTOP_1:def_1; ::_thesis: verum end; {|Ar,Ar|} . (p1,p2,p3) = [:(Ar . (p2,p3)),(Ar . (p1,p2)):] by ALTCAT_1:def_4; then [:(Ar . (p2,p3)),(Ar . (p1,p2)):] = {|Ar,Ar|} . i by A15, MULTOP_1:def_1; hence Co . i is M2( bool [:({|Ar,Ar|} . i),({|Ar|} . i):]) by A23, A28, FUNCT_2:6; ::_thesis: verum end; then reconsider Co = Co as BinComp of Ar ; set IT = AltCatStr(# the carrier of C,Ar,Co #); set J = the carrier of AltCatStr(# the carrier of C,Ar,Co #); AltCatStr(# the carrier of C,Ar,Co #) is SubCatStr of C proof thus the carrier of AltCatStr(# the carrier of C,Ar,Co #) c= the carrier of C ; :: according to ALTCAT_2:def_11 ::_thesis: ( the Arrows of AltCatStr(# the carrier of C,Ar,Co #) cc= the Arrows of C & the Comp of AltCatStr(# the carrier of C,Ar,Co #) cc= the Comp of C ) thus the Arrows of AltCatStr(# the carrier of C,Ar,Co #) cc= the Arrows of C by A13; ::_thesis: the Comp of AltCatStr(# the carrier of C,Ar,Co #) cc= the Comp of C thus [: the carrier of AltCatStr(# the carrier of C,Ar,Co #), the carrier of AltCatStr(# the carrier of C,Ar,Co #), the carrier of AltCatStr(# the carrier of C,Ar,Co #):] c= [: the carrier of C, the carrier of C, the carrier of C:] ; :: according to ALTCAT_2:def_2 ::_thesis: for b1 being set holds ( not b1 in [: the carrier of AltCatStr(# the carrier of C,Ar,Co #), the carrier of AltCatStr(# the carrier of C,Ar,Co #), the carrier of AltCatStr(# the carrier of C,Ar,Co #):] or the Comp of AltCatStr(# the carrier of C,Ar,Co #) . b1 c= the Comp of C . b1 ) let i be set ; ::_thesis: ( not i in [: the carrier of AltCatStr(# the carrier of C,Ar,Co #), the carrier of AltCatStr(# the carrier of C,Ar,Co #), the carrier of AltCatStr(# the carrier of C,Ar,Co #):] or the Comp of AltCatStr(# the carrier of C,Ar,Co #) . i c= the Comp of C . i ) assume i in [: the carrier of AltCatStr(# the carrier of C,Ar,Co #), the carrier of AltCatStr(# the carrier of C,Ar,Co #), the carrier of AltCatStr(# the carrier of C,Ar,Co #):] ; ::_thesis: the Comp of AltCatStr(# the carrier of C,Ar,Co #) . i c= the Comp of C . i then consider p1, p2, p3 being object of C such that A51: i = [p1,p2,p3] and A52: Co . i = ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] by A12; A53: ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] c= the Comp of C . (p1,p2,p3) by RELAT_1:59; let q be set ; :: according to TARSKI:def_3 ::_thesis: ( not q in the Comp of AltCatStr(# the carrier of C,Ar,Co #) . i or q in the Comp of C . i ) assume q in the Comp of AltCatStr(# the carrier of C,Ar,Co #) . i ; ::_thesis: q in the Comp of C . i then q in the Comp of C . (p1,p2,p3) by A52, A53; hence q in the Comp of C . i by A51, MULTOP_1:def_1; ::_thesis: verum end; then reconsider IT = AltCatStr(# the carrier of C,Ar,Co #) as non empty strict SubCatStr of C ; IT is transitive proof let p1, p2, p3 be object of IT; :: according to ALTCAT_1:def_2 ::_thesis: ( <^p1,p2^> = {} or <^p2,p3^> = {} or not <^p1,p3^> = {} ) assume that A54: <^p1,p2^> <> {} and A55: <^p2,p3^> <> {} ; ::_thesis: not <^p1,p3^> = {} consider m2 being set such that A56: m2 in <^p1,p2^> by A54, XBOOLE_0:def_1; consider m1 being set such that A57: m1 in <^p2,p3^> by A55, XBOOLE_0:def_1; [p2,p3] in [: the carrier of C, the carrier of C:] by ZFMISC_1:def_2; then consider q2, q3 being object of C, qq being Morphism of q2,q3 such that A58: [p2,p3] = [q2,q3] and A59: <^q2,q3^> <> {} and A60: <^q3,q2^> <> {} and m1 = qq and A61: qq is retraction by A8, A57; [p1,p2] in [: the carrier of C, the carrier of C:] by ZFMISC_1:def_2; then consider r1, r2 being object of C, rr being Morphism of r1,r2 such that A62: [p1,p2] = [r1,r2] and A63: <^r1,r2^> <> {} and A64: <^r2,r1^> <> {} and m2 = rr and A65: rr is retraction by A8, A56; A66: p2 = q2 by A58, XTUPLE_0:1; then reconsider mm = qq as Morphism of r2,q3 by A62, XTUPLE_0:1; A67: r2 = p2 by A62, XTUPLE_0:1; A68: ex o1, o3 being object of C ex m being Morphism of o1,o3 st ( [p1,p3] = [o1,o3] & <^o1,o3^> <> {} & <^o3,o1^> <> {} & mm * rr = m & m is retraction ) proof take r1 ; ::_thesis: ex o3 being object of C ex m being Morphism of r1,o3 st ( [p1,p3] = [r1,o3] & <^r1,o3^> <> {} & <^o3,r1^> <> {} & mm * rr = m & m is retraction ) take q3 ; ::_thesis: ex m being Morphism of r1,q3 st ( [p1,p3] = [r1,q3] & <^r1,q3^> <> {} & <^q3,r1^> <> {} & mm * rr = m & m is retraction ) take mm * rr ; ::_thesis: ( [p1,p3] = [r1,q3] & <^r1,q3^> <> {} & <^q3,r1^> <> {} & mm * rr = mm * rr & mm * rr is retraction ) p1 = r1 by A62, XTUPLE_0:1; hence [p1,p3] = [r1,q3] by A58, XTUPLE_0:1; ::_thesis: ( <^r1,q3^> <> {} & <^q3,r1^> <> {} & mm * rr = mm * rr & mm * rr is retraction ) thus A69: ( <^r1,q3^> <> {} & <^q3,r1^> <> {} ) by A59, A60, A63, A64, A67, A66, ALTCAT_1:def_2; ::_thesis: ( mm * rr = mm * rr & mm * rr is retraction ) thus mm * rr = mm * rr ; ::_thesis: mm * rr is retraction thus mm * rr is retraction by A59, A61, A63, A65, A67, A66, A69, ALTCAT_3:18; ::_thesis: verum end; [p1,p3] in [: the carrier of C, the carrier of C:] by ZFMISC_1:def_2; hence not <^p1,p3^> = {} by A8, A68; ::_thesis: verum end; then reconsider IT = IT as non empty transitive strict SubCatStr of C ; take IT ; ::_thesis: ( the carrier of IT = the carrier of C & the Arrows of IT cc= the Arrows of C & ( for o1, o2 being object of C for m being Morphism of o1,o2 holds ( m in the Arrows of IT . (o1,o2) iff ( <^o1,o2^> <> {} & <^o2,o1^> <> {} & m is retraction ) ) ) ) thus the carrier of IT = the carrier of C ; ::_thesis: ( the Arrows of IT cc= the Arrows of C & ( for o1, o2 being object of C for m being Morphism of o1,o2 holds ( m in the Arrows of IT . (o1,o2) iff ( <^o1,o2^> <> {} & <^o2,o1^> <> {} & m is retraction ) ) ) ) thus the Arrows of IT cc= the Arrows of C by A13; ::_thesis: for o1, o2 being object of C for m being Morphism of o1,o2 holds ( m in the Arrows of IT . (o1,o2) iff ( <^o1,o2^> <> {} & <^o2,o1^> <> {} & m is retraction ) ) let o1, o2 be object of C; ::_thesis: for m being Morphism of o1,o2 holds ( m in the Arrows of IT . (o1,o2) iff ( <^o1,o2^> <> {} & <^o2,o1^> <> {} & m is retraction ) ) let m be Morphism of o1,o2; ::_thesis: ( m in the Arrows of IT . (o1,o2) iff ( <^o1,o2^> <> {} & <^o2,o1^> <> {} & m is retraction ) ) A70: [o1,o2] in [: the carrier of C, the carrier of C:] by ZFMISC_1:def_2; thus ( m in the Arrows of IT . (o1,o2) implies ( <^o1,o2^> <> {} & <^o2,o1^> <> {} & m is retraction ) ) ::_thesis: ( <^o1,o2^> <> {} & <^o2,o1^> <> {} & m is retraction implies m in the Arrows of IT . (o1,o2) ) proof assume m in the Arrows of IT . (o1,o2) ; ::_thesis: ( <^o1,o2^> <> {} & <^o2,o1^> <> {} & m is retraction ) then consider p1, p2 being object of C, n being Morphism of p1,p2 such that A71: [o1,o2] = [p1,p2] and A72: ( <^p1,p2^> <> {} & <^p2,p1^> <> {} & m = n & n is retraction ) by A8, A70; ( o1 = p1 & o2 = p2 ) by A71, XTUPLE_0:1; hence ( <^o1,o2^> <> {} & <^o2,o1^> <> {} & m is retraction ) by A72; ::_thesis: verum end; assume ( <^o1,o2^> <> {} & <^o2,o1^> <> {} & m is retraction ) ; ::_thesis: m in the Arrows of IT . (o1,o2) hence m in the Arrows of IT . (o1,o2) by A8, A70; ::_thesis: verum end; uniqueness for b1, b2 being non empty transitive strict SubCatStr of C st the carrier of b1 = the carrier of C & the Arrows of b1 cc= the Arrows of C & ( for o1, o2 being object of C for m being Morphism of o1,o2 holds ( m in the Arrows of b1 . (o1,o2) iff ( <^o1,o2^> <> {} & <^o2,o1^> <> {} & m is retraction ) ) ) & the carrier of b2 = the carrier of C & the Arrows of b2 cc= the Arrows of C & ( for o1, o2 being object of C for m being Morphism of o1,o2 holds ( m in the Arrows of b2 . (o1,o2) iff ( <^o1,o2^> <> {} & <^o2,o1^> <> {} & m is retraction ) ) ) holds b1 = b2 proof let S1, S2 be non empty transitive strict SubCatStr of C; ::_thesis: ( the carrier of S1 = the carrier of C & the Arrows of S1 cc= the Arrows of C & ( for o1, o2 being object of C for m being Morphism of o1,o2 holds ( m in the Arrows of S1 . (o1,o2) iff ( <^o1,o2^> <> {} & <^o2,o1^> <> {} & m is retraction ) ) ) & the carrier of S2 = the carrier of C & the Arrows of S2 cc= the Arrows of C & ( for o1, o2 being object of C for m being Morphism of o1,o2 holds ( m in the Arrows of S2 . (o1,o2) iff ( <^o1,o2^> <> {} & <^o2,o1^> <> {} & m is retraction ) ) ) implies S1 = S2 ) assume that A73: the carrier of S1 = the carrier of C and A74: the Arrows of S1 cc= the Arrows of C and A75: for o1, o2 being object of C for m being Morphism of o1,o2 holds ( m in the Arrows of S1 . (o1,o2) iff ( <^o1,o2^> <> {} & <^o2,o1^> <> {} & m is retraction ) ) and A76: the carrier of S2 = the carrier of C and A77: the Arrows of S2 cc= the Arrows of C and A78: for o1, o2 being object of C for m being Morphism of o1,o2 holds ( m in the Arrows of S2 . (o1,o2) iff ( <^o1,o2^> <> {} & <^o2,o1^> <> {} & m is retraction ) ) ; ::_thesis: S1 = S2 now__::_thesis:_for_i_being_set_st_i_in_[:_the_carrier_of_C,_the_carrier_of_C:]_holds_ the_Arrows_of_S1_._i_=_the_Arrows_of_S2_._i let i be set ; ::_thesis: ( i in [: the carrier of C, the carrier of C:] implies the Arrows of S1 . i = the Arrows of S2 . i ) assume A79: i in [: the carrier of C, the carrier of C:] ; ::_thesis: the Arrows of S1 . i = the Arrows of S2 . i then consider o1, o2 being set such that A80: ( o1 in the carrier of C & o2 in the carrier of C ) and A81: i = [o1,o2] by ZFMISC_1:84; reconsider o1 = o1, o2 = o2 as object of C by A80; thus the Arrows of S1 . i = the Arrows of S2 . i ::_thesis: verum proof thus the Arrows of S1 . i c= the Arrows of S2 . i :: according to XBOOLE_0:def_10 ::_thesis: the Arrows of S2 . i c= the Arrows of S1 . i proof let n be set ; :: according to TARSKI:def_3 ::_thesis: ( not n in the Arrows of S1 . i or n in the Arrows of S2 . i ) assume A82: n in the Arrows of S1 . i ; ::_thesis: n in the Arrows of S2 . i the Arrows of S1 . i c= the Arrows of C . i by A73, A74, A79, ALTCAT_2:def_2; then reconsider m = n as Morphism of o1,o2 by A81, A82; A83: m in the Arrows of S1 . (o1,o2) by A81, A82; then A84: m is retraction by A75; ( <^o1,o2^> <> {} & <^o2,o1^> <> {} ) by A75, A83; then m in the Arrows of S2 . (o1,o2) by A78, A84; hence n in the Arrows of S2 . i by A81; ::_thesis: verum end; let n be set ; :: according to TARSKI:def_3 ::_thesis: ( not n in the Arrows of S2 . i or n in the Arrows of S1 . i ) assume A85: n in the Arrows of S2 . i ; ::_thesis: n in the Arrows of S1 . i the Arrows of S2 . i c= the Arrows of C . i by A76, A77, A79, ALTCAT_2:def_2; then reconsider m = n as Morphism of o1,o2 by A81, A85; A86: m in the Arrows of S2 . (o1,o2) by A81, A85; then A87: m is retraction by A78; ( <^o1,o2^> <> {} & <^o2,o1^> <> {} ) by A78, A86; then m in the Arrows of S1 . (o1,o2) by A75, A87; hence n in the Arrows of S1 . i by A81; ::_thesis: verum end; end; hence S1 = S2 by A73, A76, ALTCAT_2:26, PBOOLE:3; ::_thesis: verum end; end; :: deftheorem Def3 defines AllRetr ALTCAT_4:def_3_:_ for C being category for b2 being non empty transitive strict SubCatStr of C holds ( b2 = AllRetr C iff ( the carrier of b2 = the carrier of C & the Arrows of b2 cc= the Arrows of C & ( for o1, o2 being object of C for m being Morphism of o1,o2 holds ( m in the Arrows of b2 . (o1,o2) iff ( <^o1,o2^> <> {} & <^o2,o1^> <> {} & m is retraction ) ) ) ) ); registration let C be category; cluster AllRetr C -> non empty transitive strict id-inheriting ; coherence AllRetr C is id-inheriting proof for o being object of (AllRetr C) for o9 being object of C st o = o9 holds idm o9 in <^o,o^> by Def3; hence AllRetr C is id-inheriting by ALTCAT_2:def_14; ::_thesis: verum end; end; definition let C be category; func AllCoretr C -> non empty transitive strict SubCatStr of C means :Def4: :: ALTCAT_4:def 4 ( the carrier of it = the carrier of C & the Arrows of it cc= the Arrows of C & ( for o1, o2 being object of C for m being Morphism of o1,o2 holds ( m in the Arrows of it . (o1,o2) iff ( <^o1,o2^> <> {} & <^o2,o1^> <> {} & m is coretraction ) ) ) ); existence ex b1 being non empty transitive strict SubCatStr of C st ( the carrier of b1 = the carrier of C & the Arrows of b1 cc= the Arrows of C & ( for o1, o2 being object of C for m being Morphism of o1,o2 holds ( m in the Arrows of b1 . (o1,o2) iff ( <^o1,o2^> <> {} & <^o2,o1^> <> {} & m is coretraction ) ) ) ) proof defpred S1[ set , set ] means for x being set holds ( x in $2 iff ex o1, o2 being object of C ex m being Morphism of o1,o2 st ( $1 = [o1,o2] & <^o1,o2^> <> {} & <^o2,o1^> <> {} & x = m & m is coretraction ) ); set I = the carrier of C; A1: for i being set st i in [: the carrier of C, the carrier of C:] holds ex X being set st S1[i,X] proof let i be set ; ::_thesis: ( i in [: the carrier of C, the carrier of C:] implies ex X being set st S1[i,X] ) assume i in [: the carrier of C, the carrier of C:] ; ::_thesis: ex X being set st S1[i,X] then consider o1, o2 being set such that A2: ( o1 in the carrier of C & o2 in the carrier of C ) and A3: i = [o1,o2] by ZFMISC_1:84; reconsider o1 = o1, o2 = o2 as object of C by A2; defpred S2[ set ] means ex m being Morphism of o1,o2 st ( <^o1,o2^> <> {} & <^o2,o1^> <> {} & m = $1 & m is coretraction ); consider X being set such that A4: for x being set holds ( x in X iff ( x in the Arrows of C . (o1,o2) & S2[x] ) ) from XBOOLE_0:sch_1(); take X ; ::_thesis: S1[i,X] let x be set ; ::_thesis: ( x in X iff ex o1, o2 being object of C ex m being Morphism of o1,o2 st ( i = [o1,o2] & <^o1,o2^> <> {} & <^o2,o1^> <> {} & x = m & m is coretraction ) ) thus ( x in X implies ex o1, o2 being object of C ex m being Morphism of o1,o2 st ( i = [o1,o2] & <^o1,o2^> <> {} & <^o2,o1^> <> {} & x = m & m is coretraction ) ) ::_thesis: ( ex o1, o2 being object of C ex m being Morphism of o1,o2 st ( i = [o1,o2] & <^o1,o2^> <> {} & <^o2,o1^> <> {} & x = m & m is coretraction ) implies x in X ) proof assume x in X ; ::_thesis: ex o1, o2 being object of C ex m being Morphism of o1,o2 st ( i = [o1,o2] & <^o1,o2^> <> {} & <^o2,o1^> <> {} & x = m & m is coretraction ) then consider m being Morphism of o1,o2 such that A5: ( <^o1,o2^> <> {} & <^o2,o1^> <> {} & m = x & m is coretraction ) by A4; take o1 ; ::_thesis: ex o2 being object of C ex m being Morphism of o1,o2 st ( i = [o1,o2] & <^o1,o2^> <> {} & <^o2,o1^> <> {} & x = m & m is coretraction ) take o2 ; ::_thesis: ex m being Morphism of o1,o2 st ( i = [o1,o2] & <^o1,o2^> <> {} & <^o2,o1^> <> {} & x = m & m is coretraction ) take m ; ::_thesis: ( i = [o1,o2] & <^o1,o2^> <> {} & <^o2,o1^> <> {} & x = m & m is coretraction ) thus ( i = [o1,o2] & <^o1,o2^> <> {} & <^o2,o1^> <> {} & x = m & m is coretraction ) by A3, A5; ::_thesis: verum end; given p1, p2 being object of C, m being Morphism of p1,p2 such that A6: i = [p1,p2] and A7: ( <^p1,p2^> <> {} & <^p2,p1^> <> {} & x = m & m is coretraction ) ; ::_thesis: x in X ( o1 = p1 & o2 = p2 ) by A3, A6, XTUPLE_0:1; hence x in X by A4, A7; ::_thesis: verum end; consider Ar being ManySortedSet of [: the carrier of C, the carrier of C:] such that A8: for i being set st i in [: the carrier of C, the carrier of C:] holds S1[i,Ar . i] from PBOOLE:sch_3(A1); defpred S2[ set , set ] means ex p1, p2, p3 being object of C st ( $1 = [p1,p2,p3] & $2 = ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] ); A9: for i being set st i in [: the carrier of C, the carrier of C, the carrier of C:] holds ex j being set st S2[i,j] proof let i be set ; ::_thesis: ( i in [: the carrier of C, the carrier of C, the carrier of C:] implies ex j being set st S2[i,j] ) assume i in [: the carrier of C, the carrier of C, the carrier of C:] ; ::_thesis: ex j being set st S2[i,j] then consider p1, p2, p3 being set such that A10: ( p1 in the carrier of C & p2 in the carrier of C & p3 in the carrier of C ) and A11: i = [p1,p2,p3] by MCART_1:68; reconsider p1 = p1, p2 = p2, p3 = p3 as object of C by A10; take ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] ; ::_thesis: S2[i,( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):]] take p1 ; ::_thesis: ex p2, p3 being object of C st ( i = [p1,p2,p3] & ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] = ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] ) take p2 ; ::_thesis: ex p3 being object of C st ( i = [p1,p2,p3] & ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] = ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] ) take p3 ; ::_thesis: ( i = [p1,p2,p3] & ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] = ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] ) thus i = [p1,p2,p3] by A11; ::_thesis: ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] = ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] thus ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] = ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] ; ::_thesis: verum end; consider Co being ManySortedSet of [: the carrier of C, the carrier of C, the carrier of C:] such that A12: for i being set st i in [: the carrier of C, the carrier of C, the carrier of C:] holds S2[i,Co . i] from PBOOLE:sch_3(A9); A13: Ar cc= the Arrows of C proof thus [: the carrier of C, the carrier of C:] c= [: the carrier of C, the carrier of C:] ; :: according to ALTCAT_2:def_2 ::_thesis: for b1 being set holds ( not b1 in [: the carrier of C, the carrier of C:] or Ar . b1 c= the Arrows of C . b1 ) let i be set ; ::_thesis: ( not i in [: the carrier of C, the carrier of C:] or Ar . i c= the Arrows of C . i ) assume A14: i in [: the carrier of C, the carrier of C:] ; ::_thesis: Ar . i c= the Arrows of C . i let q be set ; :: according to TARSKI:def_3 ::_thesis: ( not q in Ar . i or q in the Arrows of C . i ) assume q in Ar . i ; ::_thesis: q in the Arrows of C . i then ex p1, p2 being object of C ex m being Morphism of p1,p2 st ( i = [p1,p2] & <^p1,p2^> <> {} & <^p2,p1^> <> {} & q = m & m is coretraction ) by A8, A14; hence q in the Arrows of C . i ; ::_thesis: verum end; Co is ManySortedFunction of {|Ar,Ar|},{|Ar|} proof let i be set ; :: according to PBOOLE:def_15 ::_thesis: ( not i in [: the carrier of C, the carrier of C, the carrier of C:] or Co . i is M2( bool [:({|Ar,Ar|} . i),({|Ar|} . i):]) ) assume i in [: the carrier of C, the carrier of C, the carrier of C:] ; ::_thesis: Co . i is M2( bool [:({|Ar,Ar|} . i),({|Ar|} . i):]) then consider p1, p2, p3 being object of C such that A15: i = [p1,p2,p3] and A16: Co . i = ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] by A12; A17: [p1,p2] in [: the carrier of C, the carrier of C:] by ZFMISC_1:def_2; then A18: Ar . [p1,p2] c= the Arrows of C . (p1,p2) by A13, ALTCAT_2:def_2; A19: [p2,p3] in [: the carrier of C, the carrier of C:] by ZFMISC_1:def_2; then Ar . [p2,p3] c= the Arrows of C . (p2,p3) by A13, ALTCAT_2:def_2; then A20: [:(Ar . (p2,p3)),(Ar . (p1,p2)):] c= [:( the Arrows of C . (p2,p3)),( the Arrows of C . (p1,p2)):] by A18, ZFMISC_1:96; ( the Arrows of C . (p1,p3) = {} implies [:( the Arrows of C . (p2,p3)),( the Arrows of C . (p1,p2)):] = {} ) by Lm1; then reconsider f = Co . i as Function of [:(Ar . (p2,p3)),(Ar . (p1,p2)):],( the Arrows of C . (p1,p3)) by A16, A20, FUNCT_2:32; A21: Ar . [p1,p2] c= the Arrows of C . [p1,p2] by A13, A17, ALTCAT_2:def_2; A22: Ar . [p2,p3] c= the Arrows of C . [p2,p3] by A13, A19, ALTCAT_2:def_2; A23: ( the Arrows of C . (p1,p3) = {} implies [:(Ar . (p2,p3)),(Ar . (p1,p2)):] = {} ) proof assume A24: the Arrows of C . (p1,p3) = {} ; ::_thesis: [:(Ar . (p2,p3)),(Ar . (p1,p2)):] = {} assume [:(Ar . (p2,p3)),(Ar . (p1,p2)):] <> {} ; ::_thesis: contradiction then consider k being set such that A25: k in [:(Ar . (p2,p3)),(Ar . (p1,p2)):] by XBOOLE_0:def_1; consider u1, u2 being set such that A26: ( u1 in Ar . (p2,p3) & u2 in Ar . (p1,p2) ) and k = [u1,u2] by A25, ZFMISC_1:def_2; ( u1 in <^p2,p3^> & u2 in <^p1,p2^> ) by A22, A21, A26; then <^p1,p3^> <> {} by ALTCAT_1:def_2; hence contradiction by A24; ::_thesis: verum end; A27: {|Ar|} . (p1,p2,p3) = Ar . (p1,p3) by ALTCAT_1:def_3; A28: rng f c= {|Ar|} . i proof let q be set ; :: according to TARSKI:def_3 ::_thesis: ( not q in rng f or q in {|Ar|} . i ) assume q in rng f ; ::_thesis: q in {|Ar|} . i then consider x being set such that A29: x in dom f and A30: q = f . x by FUNCT_1:def_3; A31: dom f = [:(Ar . (p2,p3)),(Ar . (p1,p2)):] by A23, FUNCT_2:def_1; then consider m1, m2 being set such that A32: m1 in Ar . (p2,p3) and A33: m2 in Ar . (p1,p2) and A34: x = [m1,m2] by A29, ZFMISC_1:84; [p2,p3] in [: the carrier of C, the carrier of C:] by ZFMISC_1:def_2; then consider q2, q3 being object of C, qq being Morphism of q2,q3 such that A35: [p2,p3] = [q2,q3] and A36: <^q2,q3^> <> {} and A37: <^q3,q2^> <> {} and A38: m1 = qq and A39: qq is coretraction by A8, A32; [p1,p2] in [: the carrier of C, the carrier of C:] by ZFMISC_1:def_2; then consider r1, r2 being object of C, rr being Morphism of r1,r2 such that A40: [p1,p2] = [r1,r2] and A41: <^r1,r2^> <> {} and A42: <^r2,r1^> <> {} and A43: m2 = rr and A44: rr is coretraction by A8, A33; A45: ex o1, o3 being object of C ex m being Morphism of o1,o3 st ( [p1,p3] = [o1,o3] & <^o1,o3^> <> {} & <^o3,o1^> <> {} & q = m & m is coretraction ) proof A46: p2 = q2 by A35, XTUPLE_0:1; then reconsider mm = qq as Morphism of r2,q3 by A40, XTUPLE_0:1; take r1 ; ::_thesis: ex o3 being object of C ex m being Morphism of r1,o3 st ( [p1,p3] = [r1,o3] & <^r1,o3^> <> {} & <^o3,r1^> <> {} & q = m & m is coretraction ) take q3 ; ::_thesis: ex m being Morphism of r1,q3 st ( [p1,p3] = [r1,q3] & <^r1,q3^> <> {} & <^q3,r1^> <> {} & q = m & m is coretraction ) take mm * rr ; ::_thesis: ( [p1,p3] = [r1,q3] & <^r1,q3^> <> {} & <^q3,r1^> <> {} & q = mm * rr & mm * rr is coretraction ) A47: p1 = r1 by A40, XTUPLE_0:1; hence [p1,p3] = [r1,q3] by A35, XTUPLE_0:1; ::_thesis: ( <^r1,q3^> <> {} & <^q3,r1^> <> {} & q = mm * rr & mm * rr is coretraction ) A48: r2 = p2 by A40, XTUPLE_0:1; hence A49: ( <^r1,q3^> <> {} & <^q3,r1^> <> {} ) by A36, A37, A41, A42, A46, ALTCAT_1:def_2; ::_thesis: ( q = mm * rr & mm * rr is coretraction ) A50: p3 = q3 by A35, XTUPLE_0:1; thus q = ( the Comp of C . (p1,p2,p3)) . (mm,rr) by A16, A29, A30, A31, A34, A38, A43, FUNCT_1:49 .= mm * rr by A35, A36, A41, A48, A47, A50, ALTCAT_1:def_8 ; ::_thesis: mm * rr is coretraction thus mm * rr is coretraction by A36, A39, A41, A44, A48, A46, A49, ALTCAT_3:19; ::_thesis: verum end; [p1,p3] in [: the carrier of C, the carrier of C:] by ZFMISC_1:def_2; then q in Ar . [p1,p3] by A8, A45; hence q in {|Ar|} . i by A15, A27, MULTOP_1:def_1; ::_thesis: verum end; {|Ar,Ar|} . (p1,p2,p3) = [:(Ar . (p2,p3)),(Ar . (p1,p2)):] by ALTCAT_1:def_4; then [:(Ar . (p2,p3)),(Ar . (p1,p2)):] = {|Ar,Ar|} . i by A15, MULTOP_1:def_1; hence Co . i is M2( bool [:({|Ar,Ar|} . i),({|Ar|} . i):]) by A23, A28, FUNCT_2:6; ::_thesis: verum end; then reconsider Co = Co as BinComp of Ar ; set IT = AltCatStr(# the carrier of C,Ar,Co #); set J = the carrier of AltCatStr(# the carrier of C,Ar,Co #); AltCatStr(# the carrier of C,Ar,Co #) is SubCatStr of C proof thus the carrier of AltCatStr(# the carrier of C,Ar,Co #) c= the carrier of C ; :: according to ALTCAT_2:def_11 ::_thesis: ( the Arrows of AltCatStr(# the carrier of C,Ar,Co #) cc= the Arrows of C & the Comp of AltCatStr(# the carrier of C,Ar,Co #) cc= the Comp of C ) thus the Arrows of AltCatStr(# the carrier of C,Ar,Co #) cc= the Arrows of C by A13; ::_thesis: the Comp of AltCatStr(# the carrier of C,Ar,Co #) cc= the Comp of C thus [: the carrier of AltCatStr(# the carrier of C,Ar,Co #), the carrier of AltCatStr(# the carrier of C,Ar,Co #), the carrier of AltCatStr(# the carrier of C,Ar,Co #):] c= [: the carrier of C, the carrier of C, the carrier of C:] ; :: according to ALTCAT_2:def_2 ::_thesis: for b1 being set holds ( not b1 in [: the carrier of AltCatStr(# the carrier of C,Ar,Co #), the carrier of AltCatStr(# the carrier of C,Ar,Co #), the carrier of AltCatStr(# the carrier of C,Ar,Co #):] or the Comp of AltCatStr(# the carrier of C,Ar,Co #) . b1 c= the Comp of C . b1 ) let i be set ; ::_thesis: ( not i in [: the carrier of AltCatStr(# the carrier of C,Ar,Co #), the carrier of AltCatStr(# the carrier of C,Ar,Co #), the carrier of AltCatStr(# the carrier of C,Ar,Co #):] or the Comp of AltCatStr(# the carrier of C,Ar,Co #) . i c= the Comp of C . i ) assume i in [: the carrier of AltCatStr(# the carrier of C,Ar,Co #), the carrier of AltCatStr(# the carrier of C,Ar,Co #), the carrier of AltCatStr(# the carrier of C,Ar,Co #):] ; ::_thesis: the Comp of AltCatStr(# the carrier of C,Ar,Co #) . i c= the Comp of C . i then consider p1, p2, p3 being object of C such that A51: i = [p1,p2,p3] and A52: Co . i = ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] by A12; A53: ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] c= the Comp of C . (p1,p2,p3) by RELAT_1:59; let q be set ; :: according to TARSKI:def_3 ::_thesis: ( not q in the Comp of AltCatStr(# the carrier of C,Ar,Co #) . i or q in the Comp of C . i ) assume q in the Comp of AltCatStr(# the carrier of C,Ar,Co #) . i ; ::_thesis: q in the Comp of C . i then q in the Comp of C . (p1,p2,p3) by A52, A53; hence q in the Comp of C . i by A51, MULTOP_1:def_1; ::_thesis: verum end; then reconsider IT = AltCatStr(# the carrier of C,Ar,Co #) as non empty strict SubCatStr of C ; IT is transitive proof let p1, p2, p3 be object of IT; :: according to ALTCAT_1:def_2 ::_thesis: ( <^p1,p2^> = {} or <^p2,p3^> = {} or not <^p1,p3^> = {} ) assume that A54: <^p1,p2^> <> {} and A55: <^p2,p3^> <> {} ; ::_thesis: not <^p1,p3^> = {} consider m2 being set such that A56: m2 in <^p1,p2^> by A54, XBOOLE_0:def_1; consider m1 being set such that A57: m1 in <^p2,p3^> by A55, XBOOLE_0:def_1; [p2,p3] in [: the carrier of C, the carrier of C:] by ZFMISC_1:def_2; then consider q2, q3 being object of C, qq being Morphism of q2,q3 such that A58: [p2,p3] = [q2,q3] and A59: <^q2,q3^> <> {} and A60: <^q3,q2^> <> {} and m1 = qq and A61: qq is coretraction by A8, A57; [p1,p2] in [: the carrier of C, the carrier of C:] by ZFMISC_1:def_2; then consider r1, r2 being object of C, rr being Morphism of r1,r2 such that A62: [p1,p2] = [r1,r2] and A63: <^r1,r2^> <> {} and A64: <^r2,r1^> <> {} and m2 = rr and A65: rr is coretraction by A8, A56; A66: p2 = q2 by A58, XTUPLE_0:1; then reconsider mm = qq as Morphism of r2,q3 by A62, XTUPLE_0:1; A67: r2 = p2 by A62, XTUPLE_0:1; A68: ex o1, o3 being object of C ex m being Morphism of o1,o3 st ( [p1,p3] = [o1,o3] & <^o1,o3^> <> {} & <^o3,o1^> <> {} & mm * rr = m & m is coretraction ) proof take r1 ; ::_thesis: ex o3 being object of C ex m being Morphism of r1,o3 st ( [p1,p3] = [r1,o3] & <^r1,o3^> <> {} & <^o3,r1^> <> {} & mm * rr = m & m is coretraction ) take q3 ; ::_thesis: ex m being Morphism of r1,q3 st ( [p1,p3] = [r1,q3] & <^r1,q3^> <> {} & <^q3,r1^> <> {} & mm * rr = m & m is coretraction ) take mm * rr ; ::_thesis: ( [p1,p3] = [r1,q3] & <^r1,q3^> <> {} & <^q3,r1^> <> {} & mm * rr = mm * rr & mm * rr is coretraction ) p1 = r1 by A62, XTUPLE_0:1; hence [p1,p3] = [r1,q3] by A58, XTUPLE_0:1; ::_thesis: ( <^r1,q3^> <> {} & <^q3,r1^> <> {} & mm * rr = mm * rr & mm * rr is coretraction ) thus A69: ( <^r1,q3^> <> {} & <^q3,r1^> <> {} ) by A59, A60, A63, A64, A67, A66, ALTCAT_1:def_2; ::_thesis: ( mm * rr = mm * rr & mm * rr is coretraction ) thus mm * rr = mm * rr ; ::_thesis: mm * rr is coretraction thus mm * rr is coretraction by A59, A61, A63, A65, A67, A66, A69, ALTCAT_3:19; ::_thesis: verum end; [p1,p3] in [: the carrier of C, the carrier of C:] by ZFMISC_1:def_2; hence not <^p1,p3^> = {} by A8, A68; ::_thesis: verum end; then reconsider IT = IT as non empty transitive strict SubCatStr of C ; take IT ; ::_thesis: ( the carrier of IT = the carrier of C & the Arrows of IT cc= the Arrows of C & ( for o1, o2 being object of C for m being Morphism of o1,o2 holds ( m in the Arrows of IT . (o1,o2) iff ( <^o1,o2^> <> {} & <^o2,o1^> <> {} & m is coretraction ) ) ) ) thus the carrier of IT = the carrier of C ; ::_thesis: ( the Arrows of IT cc= the Arrows of C & ( for o1, o2 being object of C for m being Morphism of o1,o2 holds ( m in the Arrows of IT . (o1,o2) iff ( <^o1,o2^> <> {} & <^o2,o1^> <> {} & m is coretraction ) ) ) ) thus the Arrows of IT cc= the Arrows of C by A13; ::_thesis: for o1, o2 being object of C for m being Morphism of o1,o2 holds ( m in the Arrows of IT . (o1,o2) iff ( <^o1,o2^> <> {} & <^o2,o1^> <> {} & m is coretraction ) ) let o1, o2 be object of C; ::_thesis: for m being Morphism of o1,o2 holds ( m in the Arrows of IT . (o1,o2) iff ( <^o1,o2^> <> {} & <^o2,o1^> <> {} & m is coretraction ) ) let m be Morphism of o1,o2; ::_thesis: ( m in the Arrows of IT . (o1,o2) iff ( <^o1,o2^> <> {} & <^o2,o1^> <> {} & m is coretraction ) ) A70: [o1,o2] in [: the carrier of C, the carrier of C:] by ZFMISC_1:def_2; thus ( m in the Arrows of IT . (o1,o2) implies ( <^o1,o2^> <> {} & <^o2,o1^> <> {} & m is coretraction ) ) ::_thesis: ( <^o1,o2^> <> {} & <^o2,o1^> <> {} & m is coretraction implies m in the Arrows of IT . (o1,o2) ) proof assume m in the Arrows of IT . (o1,o2) ; ::_thesis: ( <^o1,o2^> <> {} & <^o2,o1^> <> {} & m is coretraction ) then consider p1, p2 being object of C, n being Morphism of p1,p2 such that A71: [o1,o2] = [p1,p2] and A72: ( <^p1,p2^> <> {} & <^p2,p1^> <> {} & m = n & n is coretraction ) by A8, A70; ( o1 = p1 & o2 = p2 ) by A71, XTUPLE_0:1; hence ( <^o1,o2^> <> {} & <^o2,o1^> <> {} & m is coretraction ) by A72; ::_thesis: verum end; assume ( <^o1,o2^> <> {} & <^o2,o1^> <> {} & m is coretraction ) ; ::_thesis: m in the Arrows of IT . (o1,o2) hence m in the Arrows of IT . (o1,o2) by A8, A70; ::_thesis: verum end; uniqueness for b1, b2 being non empty transitive strict SubCatStr of C st the carrier of b1 = the carrier of C & the Arrows of b1 cc= the Arrows of C & ( for o1, o2 being object of C for m being Morphism of o1,o2 holds ( m in the Arrows of b1 . (o1,o2) iff ( <^o1,o2^> <> {} & <^o2,o1^> <> {} & m is coretraction ) ) ) & the carrier of b2 = the carrier of C & the Arrows of b2 cc= the Arrows of C & ( for o1, o2 being object of C for m being Morphism of o1,o2 holds ( m in the Arrows of b2 . (o1,o2) iff ( <^o1,o2^> <> {} & <^o2,o1^> <> {} & m is coretraction ) ) ) holds b1 = b2 proof let S1, S2 be non empty transitive strict SubCatStr of C; ::_thesis: ( the carrier of S1 = the carrier of C & the Arrows of S1 cc= the Arrows of C & ( for o1, o2 being object of C for m being Morphism of o1,o2 holds ( m in the Arrows of S1 . (o1,o2) iff ( <^o1,o2^> <> {} & <^o2,o1^> <> {} & m is coretraction ) ) ) & the carrier of S2 = the carrier of C & the Arrows of S2 cc= the Arrows of C & ( for o1, o2 being object of C for m being Morphism of o1,o2 holds ( m in the Arrows of S2 . (o1,o2) iff ( <^o1,o2^> <> {} & <^o2,o1^> <> {} & m is coretraction ) ) ) implies S1 = S2 ) assume that A73: the carrier of S1 = the carrier of C and A74: the Arrows of S1 cc= the Arrows of C and A75: for o1, o2 being object of C for m being Morphism of o1,o2 holds ( m in the Arrows of S1 . (o1,o2) iff ( <^o1,o2^> <> {} & <^o2,o1^> <> {} & m is coretraction ) ) and A76: the carrier of S2 = the carrier of C and A77: the Arrows of S2 cc= the Arrows of C and A78: for o1, o2 being object of C for m being Morphism of o1,o2 holds ( m in the Arrows of S2 . (o1,o2) iff ( <^o1,o2^> <> {} & <^o2,o1^> <> {} & m is coretraction ) ) ; ::_thesis: S1 = S2 now__::_thesis:_for_i_being_set_st_i_in_[:_the_carrier_of_C,_the_carrier_of_C:]_holds_ the_Arrows_of_S1_._i_=_the_Arrows_of_S2_._i let i be set ; ::_thesis: ( i in [: the carrier of C, the carrier of C:] implies the Arrows of S1 . i = the Arrows of S2 . i ) assume A79: i in [: the carrier of C, the carrier of C:] ; ::_thesis: the Arrows of S1 . i = the Arrows of S2 . i then consider o1, o2 being set such that A80: ( o1 in the carrier of C & o2 in the carrier of C ) and A81: i = [o1,o2] by ZFMISC_1:84; reconsider o1 = o1, o2 = o2 as object of C by A80; thus the Arrows of S1 . i = the Arrows of S2 . i ::_thesis: verum proof thus the Arrows of S1 . i c= the Arrows of S2 . i :: according to XBOOLE_0:def_10 ::_thesis: the Arrows of S2 . i c= the Arrows of S1 . i proof let n be set ; :: according to TARSKI:def_3 ::_thesis: ( not n in the Arrows of S1 . i or n in the Arrows of S2 . i ) assume A82: n in the Arrows of S1 . i ; ::_thesis: n in the Arrows of S2 . i the Arrows of S1 . i c= the Arrows of C . i by A73, A74, A79, ALTCAT_2:def_2; then reconsider m = n as Morphism of o1,o2 by A81, A82; A83: m in the Arrows of S1 . (o1,o2) by A81, A82; then A84: m is coretraction by A75; ( <^o1,o2^> <> {} & <^o2,o1^> <> {} ) by A75, A83; then m in the Arrows of S2 . (o1,o2) by A78, A84; hence n in the Arrows of S2 . i by A81; ::_thesis: verum end; let n be set ; :: according to TARSKI:def_3 ::_thesis: ( not n in the Arrows of S2 . i or n in the Arrows of S1 . i ) assume A85: n in the Arrows of S2 . i ; ::_thesis: n in the Arrows of S1 . i the Arrows of S2 . i c= the Arrows of C . i by A76, A77, A79, ALTCAT_2:def_2; then reconsider m = n as Morphism of o1,o2 by A81, A85; A86: m in the Arrows of S2 . (o1,o2) by A81, A85; then A87: m is coretraction by A78; ( <^o1,o2^> <> {} & <^o2,o1^> <> {} ) by A78, A86; then m in the Arrows of S1 . (o1,o2) by A75, A87; hence n in the Arrows of S1 . i by A81; ::_thesis: verum end; end; hence S1 = S2 by A73, A76, ALTCAT_2:26, PBOOLE:3; ::_thesis: verum end; end; :: deftheorem Def4 defines AllCoretr ALTCAT_4:def_4_:_ for C being category for b2 being non empty transitive strict SubCatStr of C holds ( b2 = AllCoretr C iff ( the carrier of b2 = the carrier of C & the Arrows of b2 cc= the Arrows of C & ( for o1, o2 being object of C for m being Morphism of o1,o2 holds ( m in the Arrows of b2 . (o1,o2) iff ( <^o1,o2^> <> {} & <^o2,o1^> <> {} & m is coretraction ) ) ) ) ); registration let C be category; cluster AllCoretr C -> non empty transitive strict id-inheriting ; coherence AllCoretr C is id-inheriting proof for o being object of (AllCoretr C) for o9 being object of C st o = o9 holds idm o9 in <^o,o^> by Def4; hence AllCoretr C is id-inheriting by ALTCAT_2:def_14; ::_thesis: verum end; end; definition let C be category; func AllIso C -> non empty transitive strict SubCatStr of C means :Def5: :: ALTCAT_4:def 5 ( the carrier of it = the carrier of C & the Arrows of it cc= the Arrows of C & ( for o1, o2 being object of C for m being Morphism of o1,o2 holds ( m in the Arrows of it . (o1,o2) iff ( <^o1,o2^> <> {} & <^o2,o1^> <> {} & m is iso ) ) ) ); existence ex b1 being non empty transitive strict SubCatStr of C st ( the carrier of b1 = the carrier of C & the Arrows of b1 cc= the Arrows of C & ( for o1, o2 being object of C for m being Morphism of o1,o2 holds ( m in the Arrows of b1 . (o1,o2) iff ( <^o1,o2^> <> {} & <^o2,o1^> <> {} & m is iso ) ) ) ) proof defpred S1[ set , set ] means for x being set holds ( x in $2 iff ex o1, o2 being object of C ex m being Morphism of o1,o2 st ( $1 = [o1,o2] & <^o1,o2^> <> {} & <^o2,o1^> <> {} & x = m & m is iso ) ); set I = the carrier of C; A1: for i being set st i in [: the carrier of C, the carrier of C:] holds ex X being set st S1[i,X] proof let i be set ; ::_thesis: ( i in [: the carrier of C, the carrier of C:] implies ex X being set st S1[i,X] ) assume i in [: the carrier of C, the carrier of C:] ; ::_thesis: ex X being set st S1[i,X] then consider o1, o2 being set such that A2: ( o1 in the carrier of C & o2 in the carrier of C ) and A3: i = [o1,o2] by ZFMISC_1:84; reconsider o1 = o1, o2 = o2 as object of C by A2; defpred S2[ set ] means ex m being Morphism of o1,o2 st ( <^o1,o2^> <> {} & <^o2,o1^> <> {} & m = $1 & m is iso ); consider X being set such that A4: for x being set holds ( x in X iff ( x in the Arrows of C . (o1,o2) & S2[x] ) ) from XBOOLE_0:sch_1(); take X ; ::_thesis: S1[i,X] let x be set ; ::_thesis: ( x in X iff ex o1, o2 being object of C ex m being Morphism of o1,o2 st ( i = [o1,o2] & <^o1,o2^> <> {} & <^o2,o1^> <> {} & x = m & m is iso ) ) thus ( x in X implies ex o1, o2 being object of C ex m being Morphism of o1,o2 st ( i = [o1,o2] & <^o1,o2^> <> {} & <^o2,o1^> <> {} & x = m & m is iso ) ) ::_thesis: ( ex o1, o2 being object of C ex m being Morphism of o1,o2 st ( i = [o1,o2] & <^o1,o2^> <> {} & <^o2,o1^> <> {} & x = m & m is iso ) implies x in X ) proof assume x in X ; ::_thesis: ex o1, o2 being object of C ex m being Morphism of o1,o2 st ( i = [o1,o2] & <^o1,o2^> <> {} & <^o2,o1^> <> {} & x = m & m is iso ) then consider m being Morphism of o1,o2 such that A5: ( <^o1,o2^> <> {} & <^o2,o1^> <> {} & m = x & m is iso ) by A4; take o1 ; ::_thesis: ex o2 being object of C ex m being Morphism of o1,o2 st ( i = [o1,o2] & <^o1,o2^> <> {} & <^o2,o1^> <> {} & x = m & m is iso ) take o2 ; ::_thesis: ex m being Morphism of o1,o2 st ( i = [o1,o2] & <^o1,o2^> <> {} & <^o2,o1^> <> {} & x = m & m is iso ) take m ; ::_thesis: ( i = [o1,o2] & <^o1,o2^> <> {} & <^o2,o1^> <> {} & x = m & m is iso ) thus ( i = [o1,o2] & <^o1,o2^> <> {} & <^o2,o1^> <> {} & x = m & m is iso ) by A3, A5; ::_thesis: verum end; given p1, p2 being object of C, m being Morphism of p1,p2 such that A6: i = [p1,p2] and A7: ( <^p1,p2^> <> {} & <^p2,p1^> <> {} & x = m & m is iso ) ; ::_thesis: x in X ( o1 = p1 & o2 = p2 ) by A3, A6, XTUPLE_0:1; hence x in X by A4, A7; ::_thesis: verum end; consider Ar being ManySortedSet of [: the carrier of C, the carrier of C:] such that A8: for i being set st i in [: the carrier of C, the carrier of C:] holds S1[i,Ar . i] from PBOOLE:sch_3(A1); defpred S2[ set , set ] means ex p1, p2, p3 being object of C st ( $1 = [p1,p2,p3] & $2 = ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] ); A9: for i being set st i in [: the carrier of C, the carrier of C, the carrier of C:] holds ex j being set st S2[i,j] proof let i be set ; ::_thesis: ( i in [: the carrier of C, the carrier of C, the carrier of C:] implies ex j being set st S2[i,j] ) assume i in [: the carrier of C, the carrier of C, the carrier of C:] ; ::_thesis: ex j being set st S2[i,j] then consider p1, p2, p3 being set such that A10: ( p1 in the carrier of C & p2 in the carrier of C & p3 in the carrier of C ) and A11: i = [p1,p2,p3] by MCART_1:68; reconsider p1 = p1, p2 = p2, p3 = p3 as object of C by A10; take ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] ; ::_thesis: S2[i,( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):]] take p1 ; ::_thesis: ex p2, p3 being object of C st ( i = [p1,p2,p3] & ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] = ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] ) take p2 ; ::_thesis: ex p3 being object of C st ( i = [p1,p2,p3] & ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] = ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] ) take p3 ; ::_thesis: ( i = [p1,p2,p3] & ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] = ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] ) thus i = [p1,p2,p3] by A11; ::_thesis: ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] = ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] thus ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] = ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] ; ::_thesis: verum end; consider Co being ManySortedSet of [: the carrier of C, the carrier of C, the carrier of C:] such that A12: for i being set st i in [: the carrier of C, the carrier of C, the carrier of C:] holds S2[i,Co . i] from PBOOLE:sch_3(A9); A13: Ar cc= the Arrows of C proof thus [: the carrier of C, the carrier of C:] c= [: the carrier of C, the carrier of C:] ; :: according to ALTCAT_2:def_2 ::_thesis: for b1 being set holds ( not b1 in [: the carrier of C, the carrier of C:] or Ar . b1 c= the Arrows of C . b1 ) let i be set ; ::_thesis: ( not i in [: the carrier of C, the carrier of C:] or Ar . i c= the Arrows of C . i ) assume A14: i in [: the carrier of C, the carrier of C:] ; ::_thesis: Ar . i c= the Arrows of C . i let q be set ; :: according to TARSKI:def_3 ::_thesis: ( not q in Ar . i or q in the Arrows of C . i ) assume q in Ar . i ; ::_thesis: q in the Arrows of C . i then ex p1, p2 being object of C ex m being Morphism of p1,p2 st ( i = [p1,p2] & <^p1,p2^> <> {} & <^p2,p1^> <> {} & q = m & m is iso ) by A8, A14; hence q in the Arrows of C . i ; ::_thesis: verum end; Co is ManySortedFunction of {|Ar,Ar|},{|Ar|} proof let i be set ; :: according to PBOOLE:def_15 ::_thesis: ( not i in [: the carrier of C, the carrier of C, the carrier of C:] or Co . i is M2( bool [:({|Ar,Ar|} . i),({|Ar|} . i):]) ) assume i in [: the carrier of C, the carrier of C, the carrier of C:] ; ::_thesis: Co . i is M2( bool [:({|Ar,Ar|} . i),({|Ar|} . i):]) then consider p1, p2, p3 being object of C such that A15: i = [p1,p2,p3] and A16: Co . i = ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] by A12; A17: [p1,p2] in [: the carrier of C, the carrier of C:] by ZFMISC_1:def_2; then A18: Ar . [p1,p2] c= the Arrows of C . (p1,p2) by A13, ALTCAT_2:def_2; A19: [p2,p3] in [: the carrier of C, the carrier of C:] by ZFMISC_1:def_2; then Ar . [p2,p3] c= the Arrows of C . (p2,p3) by A13, ALTCAT_2:def_2; then A20: [:(Ar . (p2,p3)),(Ar . (p1,p2)):] c= [:( the Arrows of C . (p2,p3)),( the Arrows of C . (p1,p2)):] by A18, ZFMISC_1:96; ( the Arrows of C . (p1,p3) = {} implies [:( the Arrows of C . (p2,p3)),( the Arrows of C . (p1,p2)):] = {} ) by Lm1; then reconsider f = Co . i as Function of [:(Ar . (p2,p3)),(Ar . (p1,p2)):],( the Arrows of C . (p1,p3)) by A16, A20, FUNCT_2:32; A21: Ar . [p1,p2] c= the Arrows of C . [p1,p2] by A13, A17, ALTCAT_2:def_2; A22: Ar . [p2,p3] c= the Arrows of C . [p2,p3] by A13, A19, ALTCAT_2:def_2; A23: ( the Arrows of C . (p1,p3) = {} implies [:(Ar . (p2,p3)),(Ar . (p1,p2)):] = {} ) proof assume A24: the Arrows of C . (p1,p3) = {} ; ::_thesis: [:(Ar . (p2,p3)),(Ar . (p1,p2)):] = {} assume [:(Ar . (p2,p3)),(Ar . (p1,p2)):] <> {} ; ::_thesis: contradiction then consider k being set such that A25: k in [:(Ar . (p2,p3)),(Ar . (p1,p2)):] by XBOOLE_0:def_1; consider u1, u2 being set such that A26: ( u1 in Ar . (p2,p3) & u2 in Ar . (p1,p2) ) and k = [u1,u2] by A25, ZFMISC_1:def_2; ( u1 in <^p2,p3^> & u2 in <^p1,p2^> ) by A22, A21, A26; then <^p1,p3^> <> {} by ALTCAT_1:def_2; hence contradiction by A24; ::_thesis: verum end; A27: {|Ar|} . (p1,p2,p3) = Ar . (p1,p3) by ALTCAT_1:def_3; A28: rng f c= {|Ar|} . i proof let q be set ; :: according to TARSKI:def_3 ::_thesis: ( not q in rng f or q in {|Ar|} . i ) assume q in rng f ; ::_thesis: q in {|Ar|} . i then consider x being set such that A29: x in dom f and A30: q = f . x by FUNCT_1:def_3; A31: dom f = [:(Ar . (p2,p3)),(Ar . (p1,p2)):] by A23, FUNCT_2:def_1; then consider m1, m2 being set such that A32: m1 in Ar . (p2,p3) and A33: m2 in Ar . (p1,p2) and A34: x = [m1,m2] by A29, ZFMISC_1:84; [p2,p3] in [: the carrier of C, the carrier of C:] by ZFMISC_1:def_2; then consider q2, q3 being object of C, qq being Morphism of q2,q3 such that A35: [p2,p3] = [q2,q3] and A36: <^q2,q3^> <> {} and A37: <^q3,q2^> <> {} and A38: m1 = qq and A39: qq is iso by A8, A32; [p1,p2] in [: the carrier of C, the carrier of C:] by ZFMISC_1:def_2; then consider r1, r2 being object of C, rr being Morphism of r1,r2 such that A40: [p1,p2] = [r1,r2] and A41: <^r1,r2^> <> {} and A42: <^r2,r1^> <> {} and A43: m2 = rr and A44: rr is iso by A8, A33; A45: ex o1, o3 being object of C ex m being Morphism of o1,o3 st ( [p1,p3] = [o1,o3] & <^o1,o3^> <> {} & <^o3,o1^> <> {} & q = m & m is iso ) proof A46: p2 = q2 by A35, XTUPLE_0:1; then reconsider mm = qq as Morphism of r2,q3 by A40, XTUPLE_0:1; take r1 ; ::_thesis: ex o3 being object of C ex m being Morphism of r1,o3 st ( [p1,p3] = [r1,o3] & <^r1,o3^> <> {} & <^o3,r1^> <> {} & q = m & m is iso ) take q3 ; ::_thesis: ex m being Morphism of r1,q3 st ( [p1,p3] = [r1,q3] & <^r1,q3^> <> {} & <^q3,r1^> <> {} & q = m & m is iso ) take mm * rr ; ::_thesis: ( [p1,p3] = [r1,q3] & <^r1,q3^> <> {} & <^q3,r1^> <> {} & q = mm * rr & mm * rr is iso ) A47: p1 = r1 by A40, XTUPLE_0:1; hence [p1,p3] = [r1,q3] by A35, XTUPLE_0:1; ::_thesis: ( <^r1,q3^> <> {} & <^q3,r1^> <> {} & q = mm * rr & mm * rr is iso ) A48: r2 = p2 by A40, XTUPLE_0:1; hence A49: ( <^r1,q3^> <> {} & <^q3,r1^> <> {} ) by A36, A37, A41, A42, A46, ALTCAT_1:def_2; ::_thesis: ( q = mm * rr & mm * rr is iso ) A50: p3 = q3 by A35, XTUPLE_0:1; thus q = ( the Comp of C . (p1,p2,p3)) . (mm,rr) by A16, A29, A30, A31, A34, A38, A43, FUNCT_1:49 .= mm * rr by A35, A36, A41, A48, A47, A50, ALTCAT_1:def_8 ; ::_thesis: mm * rr is iso thus mm * rr is iso by A36, A39, A41, A44, A48, A46, A49, ALTCAT_3:7; ::_thesis: verum end; [p1,p3] in [: the carrier of C, the carrier of C:] by ZFMISC_1:def_2; then q in Ar . [p1,p3] by A8, A45; hence q in {|Ar|} . i by A15, A27, MULTOP_1:def_1; ::_thesis: verum end; {|Ar,Ar|} . (p1,p2,p3) = [:(Ar . (p2,p3)),(Ar . (p1,p2)):] by ALTCAT_1:def_4; then [:(Ar . (p2,p3)),(Ar . (p1,p2)):] = {|Ar,Ar|} . i by A15, MULTOP_1:def_1; hence Co . i is M2( bool [:({|Ar,Ar|} . i),({|Ar|} . i):]) by A23, A28, FUNCT_2:6; ::_thesis: verum end; then reconsider Co = Co as BinComp of Ar ; set IT = AltCatStr(# the carrier of C,Ar,Co #); set J = the carrier of AltCatStr(# the carrier of C,Ar,Co #); AltCatStr(# the carrier of C,Ar,Co #) is SubCatStr of C proof thus the carrier of AltCatStr(# the carrier of C,Ar,Co #) c= the carrier of C ; :: according to ALTCAT_2:def_11 ::_thesis: ( the Arrows of AltCatStr(# the carrier of C,Ar,Co #) cc= the Arrows of C & the Comp of AltCatStr(# the carrier of C,Ar,Co #) cc= the Comp of C ) thus the Arrows of AltCatStr(# the carrier of C,Ar,Co #) cc= the Arrows of C by A13; ::_thesis: the Comp of AltCatStr(# the carrier of C,Ar,Co #) cc= the Comp of C thus [: the carrier of AltCatStr(# the carrier of C,Ar,Co #), the carrier of AltCatStr(# the carrier of C,Ar,Co #), the carrier of AltCatStr(# the carrier of C,Ar,Co #):] c= [: the carrier of C, the carrier of C, the carrier of C:] ; :: according to ALTCAT_2:def_2 ::_thesis: for b1 being set holds ( not b1 in [: the carrier of AltCatStr(# the carrier of C,Ar,Co #), the carrier of AltCatStr(# the carrier of C,Ar,Co #), the carrier of AltCatStr(# the carrier of C,Ar,Co #):] or the Comp of AltCatStr(# the carrier of C,Ar,Co #) . b1 c= the Comp of C . b1 ) let i be set ; ::_thesis: ( not i in [: the carrier of AltCatStr(# the carrier of C,Ar,Co #), the carrier of AltCatStr(# the carrier of C,Ar,Co #), the carrier of AltCatStr(# the carrier of C,Ar,Co #):] or the Comp of AltCatStr(# the carrier of C,Ar,Co #) . i c= the Comp of C . i ) assume i in [: the carrier of AltCatStr(# the carrier of C,Ar,Co #), the carrier of AltCatStr(# the carrier of C,Ar,Co #), the carrier of AltCatStr(# the carrier of C,Ar,Co #):] ; ::_thesis: the Comp of AltCatStr(# the carrier of C,Ar,Co #) . i c= the Comp of C . i then consider p1, p2, p3 being object of C such that A51: i = [p1,p2,p3] and A52: Co . i = ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] by A12; A53: ( the Comp of C . (p1,p2,p3)) | [:(Ar . (p2,p3)),(Ar . (p1,p2)):] c= the Comp of C . (p1,p2,p3) by RELAT_1:59; let q be set ; :: according to TARSKI:def_3 ::_thesis: ( not q in the Comp of AltCatStr(# the carrier of C,Ar,Co #) . i or q in the Comp of C . i ) assume q in the Comp of AltCatStr(# the carrier of C,Ar,Co #) . i ; ::_thesis: q in the Comp of C . i then q in the Comp of C . (p1,p2,p3) by A52, A53; hence q in the Comp of C . i by A51, MULTOP_1:def_1; ::_thesis: verum end; then reconsider IT = AltCatStr(# the carrier of C,Ar,Co #) as non empty strict SubCatStr of C ; IT is transitive proof let p1, p2, p3 be object of IT; :: according to ALTCAT_1:def_2 ::_thesis: ( <^p1,p2^> = {} or <^p2,p3^> = {} or not <^p1,p3^> = {} ) assume that A54: <^p1,p2^> <> {} and A55: <^p2,p3^> <> {} ; ::_thesis: not <^p1,p3^> = {} consider m2 being set such that A56: m2 in <^p1,p2^> by A54, XBOOLE_0:def_1; consider m1 being set such that A57: m1 in <^p2,p3^> by A55, XBOOLE_0:def_1; [p2,p3] in [: the carrier of C, the carrier of C:] by ZFMISC_1:def_2; then consider q2, q3 being object of C, qq being Morphism of q2,q3 such that A58: [p2,p3] = [q2,q3] and A59: <^q2,q3^> <> {} and A60: <^q3,q2^> <> {} and m1 = qq and A61: qq is iso by A8, A57; [p1,p2] in [: the carrier of C, the carrier of C:] by ZFMISC_1:def_2; then consider r1, r2 being object of C, rr being Morphism of r1,r2 such that A62: [p1,p2] = [r1,r2] and A63: <^r1,r2^> <> {} and A64: <^r2,r1^> <> {} and m2 = rr and A65: rr is iso by A8, A56; A66: p2 = q2 by A58, XTUPLE_0:1; then reconsider mm = qq as Morphism of r2,q3 by A62, XTUPLE_0:1; A67: r2 = p2 by A62, XTUPLE_0:1; A68: ex o1, o3 being object of C ex m being Morphism of o1,o3 st ( [p1,p3] = [o1,o3] & <^o1,o3^> <> {} & <^o3,o1^> <> {} & mm * rr = m & m is iso ) proof take r1 ; ::_thesis: ex o3 being object of C ex m being Morphism of r1,o3 st ( [p1,p3] = [r1,o3] & <^r1,o3^> <> {} & <^o3,r1^> <> {} & mm * rr = m & m is iso ) take q3 ; ::_thesis: ex m being Morphism of r1,q3 st ( [p1,p3] = [r1,q3] & <^r1,q3^> <> {} & <^q3,r1^> <> {} & mm * rr = m & m is iso ) take mm * rr ; ::_thesis: ( [p1,p3] = [r1,q3] & <^r1,q3^> <> {} & <^q3,r1^> <> {} & mm * rr = mm * rr & mm * rr is iso ) p1 = r1 by A62, XTUPLE_0:1; hence [p1,p3] = [r1,q3] by A58, XTUPLE_0:1; ::_thesis: ( <^r1,q3^> <> {} & <^q3,r1^> <> {} & mm * rr = mm * rr & mm * rr is iso ) thus A69: ( <^r1,q3^> <> {} & <^q3,r1^> <> {} ) by A59, A60, A63, A64, A67, A66, ALTCAT_1:def_2; ::_thesis: ( mm * rr = mm * rr & mm * rr is iso ) thus mm * rr = mm * rr ; ::_thesis: mm * rr is iso thus mm * rr is iso by A59, A61, A63, A65, A67, A66, A69, ALTCAT_3:7; ::_thesis: verum end; [p1,p3] in [: the carrier of C, the carrier of C:] by ZFMISC_1:def_2; hence not <^p1,p3^> = {} by A8, A68; ::_thesis: verum end; then reconsider IT = IT as non empty transitive strict SubCatStr of C ; take IT ; ::_thesis: ( the carrier of IT = the carrier of C & the Arrows of IT cc= the Arrows of C & ( for o1, o2 being object of C for m being Morphism of o1,o2 holds ( m in the Arrows of IT . (o1,o2) iff ( <^o1,o2^> <> {} & <^o2,o1^> <> {} & m is iso ) ) ) ) thus the carrier of IT = the carrier of C ; ::_thesis: ( the Arrows of IT cc= the Arrows of C & ( for o1, o2 being object of C for m being Morphism of o1,o2 holds ( m in the Arrows of IT . (o1,o2) iff ( <^o1,o2^> <> {} & <^o2,o1^> <> {} & m is iso ) ) ) ) thus the Arrows of IT cc= the Arrows of C by A13; ::_thesis: for o1, o2 being object of C for m being Morphism of o1,o2 holds ( m in the Arrows of IT . (o1,o2) iff ( <^o1,o2^> <> {} & <^o2,o1^> <> {} & m is iso ) ) let o1, o2 be object of C; ::_thesis: for m being Morphism of o1,o2 holds ( m in the Arrows of IT . (o1,o2) iff ( <^o1,o2^> <> {} & <^o2,o1^> <> {} & m is iso ) ) let m be Morphism of o1,o2; ::_thesis: ( m in the Arrows of IT . (o1,o2) iff ( <^o1,o2^> <> {} & <^o2,o1^> <> {} & m is iso ) ) A70: [o1,o2] in [: the carrier of C, the carrier of C:] by ZFMISC_1:def_2; thus ( m in the Arrows of IT . (o1,o2) implies ( <^o1,o2^> <> {} & <^o2,o1^> <> {} & m is iso ) ) ::_thesis: ( <^o1,o2^> <> {} & <^o2,o1^> <> {} & m is iso implies m in the Arrows of IT . (o1,o2) ) proof assume m in the Arrows of IT . (o1,o2) ; ::_thesis: ( <^o1,o2^> <> {} & <^o2,o1^> <> {} & m is iso ) then consider p1, p2 being object of C, n being Morphism of p1,p2 such that A71: [o1,o2] = [p1,p2] and A72: ( <^p1,p2^> <> {} & <^p2,p1^> <> {} & m = n & n is iso ) by A8, A70; ( o1 = p1 & o2 = p2 ) by A71, XTUPLE_0:1; hence ( <^o1,o2^> <> {} & <^o2,o1^> <> {} & m is iso ) by A72; ::_thesis: verum end; assume ( <^o1,o2^> <> {} & <^o2,o1^> <> {} & m is iso ) ; ::_thesis: m in the Arrows of IT . (o1,o2) hence m in the Arrows of IT . (o1,o2) by A8, A70; ::_thesis: verum end; uniqueness for b1, b2 being non empty transitive strict SubCatStr of C st the carrier of b1 = the carrier of C & the Arrows of b1 cc= the Arrows of C & ( for o1, o2 being object of C for m being Morphism of o1,o2 holds ( m in the Arrows of b1 . (o1,o2) iff ( <^o1,o2^> <> {} & <^o2,o1^> <> {} & m is iso ) ) ) & the carrier of b2 = the carrier of C & the Arrows of b2 cc= the Arrows of C & ( for o1, o2 being object of C for m being Morphism of o1,o2 holds ( m in the Arrows of b2 . (o1,o2) iff ( <^o1,o2^> <> {} & <^o2,o1^> <> {} & m is iso ) ) ) holds b1 = b2 proof let S1, S2 be non empty transitive strict SubCatStr of C; ::_thesis: ( the carrier of S1 = the carrier of C & the Arrows of S1 cc= the Arrows of C & ( for o1, o2 being object of C for m being Morphism of o1,o2 holds ( m in the Arrows of S1 . (o1,o2) iff ( <^o1,o2^> <> {} & <^o2,o1^> <> {} & m is iso ) ) ) & the carrier of S2 = the carrier of C & the Arrows of S2 cc= the Arrows of C & ( for o1, o2 being object of C for m being Morphism of o1,o2 holds ( m in the Arrows of S2 . (o1,o2) iff ( <^o1,o2^> <> {} & <^o2,o1^> <> {} & m is iso ) ) ) implies S1 = S2 ) assume that A73: the carrier of S1 = the carrier of C and A74: the Arrows of S1 cc= the Arrows of C and A75: for o1, o2 being object of C for m being Morphism of o1,o2 holds ( m in the Arrows of S1 . (o1,o2) iff ( <^o1,o2^> <> {} & <^o2,o1^> <> {} & m is iso ) ) and A76: the carrier of S2 = the carrier of C and A77: the Arrows of S2 cc= the Arrows of C and A78: for o1, o2 being object of C for m being Morphism of o1,o2 holds ( m in the Arrows of S2 . (o1,o2) iff ( <^o1,o2^> <> {} & <^o2,o1^> <> {} & m is iso ) ) ; ::_thesis: S1 = S2 now__::_thesis:_for_i_being_set_st_i_in_[:_the_carrier_of_C,_the_carrier_of_C:]_holds_ the_Arrows_of_S1_._i_=_the_Arrows_of_S2_._i let i be set ; ::_thesis: ( i in [: the carrier of C, the carrier of C:] implies the Arrows of S1 . i = the Arrows of S2 . i ) assume A79: i in [: the carrier of C, the carrier of C:] ; ::_thesis: the Arrows of S1 . i = the Arrows of S2 . i then consider o1, o2 being set such that A80: ( o1 in the carrier of C & o2 in the carrier of C ) and A81: i = [o1,o2] by ZFMISC_1:84; reconsider o1 = o1, o2 = o2 as object of C by A80; thus the Arrows of S1 . i = the Arrows of S2 . i ::_thesis: verum proof thus the Arrows of S1 . i c= the Arrows of S2 . i :: according to XBOOLE_0:def_10 ::_thesis: the Arrows of S2 . i c= the Arrows of S1 . i proof let n be set ; :: according to TARSKI:def_3 ::_thesis: ( not n in the Arrows of S1 . i or n in the Arrows of S2 . i ) assume A82: n in the Arrows of S1 . i ; ::_thesis: n in the Arrows of S2 . i the Arrows of S1 . i c= the Arrows of C . i by A73, A74, A79, ALTCAT_2:def_2; then reconsider m = n as Morphism of o1,o2 by A81, A82; A83: m in the Arrows of S1 . (o1,o2) by A81, A82; then A84: m is iso by A75; ( <^o1,o2^> <> {} & <^o2,o1^> <> {} ) by A75, A83; then m in the Arrows of S2 . (o1,o2) by A78, A84; hence n in the Arrows of S2 . i by A81; ::_thesis: verum end; let n be set ; :: according to TARSKI:def_3 ::_thesis: ( not n in the Arrows of S2 . i or n in the Arrows of S1 . i ) assume A85: n in the Arrows of S2 . i ; ::_thesis: n in the Arrows of S1 . i the Arrows of S2 . i c= the Arrows of C . i by A76, A77, A79, ALTCAT_2:def_2; then reconsider m = n as Morphism of o1,o2 by A81, A85; A86: m in the Arrows of S2 . (o1,o2) by A81, A85; then A87: m is iso by A78; ( <^o1,o2^> <> {} & <^o2,o1^> <> {} ) by A78, A86; then m in the Arrows of S1 . (o1,o2) by A75, A87; hence n in the Arrows of S1 . i by A81; ::_thesis: verum end; end; hence S1 = S2 by A73, A76, ALTCAT_2:26, PBOOLE:3; ::_thesis: verum end; end; :: deftheorem Def5 defines AllIso ALTCAT_4:def_5_:_ for C being category for b2 being non empty transitive strict SubCatStr of C holds ( b2 = AllIso C iff ( the carrier of b2 = the carrier of C & the Arrows of b2 cc= the Arrows of C & ( for o1, o2 being object of C for m being Morphism of o1,o2 holds ( m in the Arrows of b2 . (o1,o2) iff ( <^o1,o2^> <> {} & <^o2,o1^> <> {} & m is iso ) ) ) ) ); registration let C be category; cluster AllIso C -> non empty transitive strict id-inheriting ; coherence AllIso C is id-inheriting proof for o being object of (AllIso C) for o9 being object of C st o = o9 holds idm o9 in <^o,o^> by Def5; hence AllIso C is id-inheriting by ALTCAT_2:def_14; ::_thesis: verum end; end; theorem Th41: :: ALTCAT_4:41 for C being category holds AllIso C is non empty subcategory of AllRetr C proof let C be category; ::_thesis: AllIso C is non empty subcategory of AllRetr C the carrier of (AllIso C) = the carrier of C by Def5; then A1: the carrier of (AllIso C) c= the carrier of (AllRetr C) by Def3; the Arrows of (AllIso C) cc= the Arrows of (AllRetr C) proof thus [: the carrier of (AllIso C), the carrier of (AllIso C):] c= [: the carrier of (AllRetr C), the carrier of (AllRetr C):] by A1, ZFMISC_1:96; :: according to ALTCAT_2:def_2 ::_thesis: for b1 being set holds ( not b1 in [: the carrier of (AllIso C), the carrier of (AllIso C):] or the Arrows of (AllIso C) . b1 c= the Arrows of (AllRetr C) . b1 ) let i be set ; ::_thesis: ( not i in [: the carrier of (AllIso C), the carrier of (AllIso C):] or the Arrows of (AllIso C) . i c= the Arrows of (AllRetr C) . i ) assume A2: i in [: the carrier of (AllIso C), the carrier of (AllIso C):] ; ::_thesis: the Arrows of (AllIso C) . i c= the Arrows of (AllRetr C) . i then consider o1, o2 being set such that A3: ( o1 in the carrier of (AllIso C) & o2 in the carrier of (AllIso C) ) and A4: i = [o1,o2] by ZFMISC_1:84; reconsider o1 = o1, o2 = o2 as object of C by A3, Def5; let m be set ; :: according to TARSKI:def_3 ::_thesis: ( not m in the Arrows of (AllIso C) . i or m in the Arrows of (AllRetr C) . i ) assume A5: m in the Arrows of (AllIso C) . i ; ::_thesis: m in the Arrows of (AllRetr C) . i the Arrows of (AllIso C) cc= the Arrows of C by Def5; then the Arrows of (AllIso C) . [o1,o2] c= the Arrows of C . (o1,o2) by A2, A4, ALTCAT_2:def_2; then reconsider m1 = m as Morphism of o1,o2 by A4, A5; m in the Arrows of (AllIso C) . (o1,o2) by A4, A5; then m1 is iso by Def5; then A6: m1 is retraction by ALTCAT_3:5; m1 in the Arrows of (AllIso C) . (o1,o2) by A4, A5; then ( <^o1,o2^> <> {} & <^o2,o1^> <> {} ) by Def5; then m in the Arrows of (AllRetr C) . (o1,o2) by A6, Def3; hence m in the Arrows of (AllRetr C) . i by A4; ::_thesis: verum end; then reconsider A = AllIso C as non empty with_units SubCatStr of AllRetr C by A1, ALTCAT_2:24; now__::_thesis:_for_o_being_object_of_A for_o1_being_object_of_(AllRetr_C)_st_o_=_o1_holds_ idm_o1_in_<^o,o^> let o be object of A; ::_thesis: for o1 being object of (AllRetr C) st o = o1 holds idm o1 in <^o,o^> let o1 be object of (AllRetr C); ::_thesis: ( o = o1 implies idm o1 in <^o,o^> ) assume A7: o = o1 ; ::_thesis: idm o1 in <^o,o^> reconsider oo = o as object of C by Def5; idm o = idm oo by ALTCAT_2:34 .= idm o1 by A7, ALTCAT_2:34 ; hence idm o1 in <^o,o^> ; ::_thesis: verum end; hence AllIso C is non empty subcategory of AllRetr C by ALTCAT_2:def_14; ::_thesis: verum end; theorem Th42: :: ALTCAT_4:42 for C being category holds AllIso C is non empty subcategory of AllCoretr C proof let C be category; ::_thesis: AllIso C is non empty subcategory of AllCoretr C the carrier of (AllIso C) = the carrier of C by Def5; then A1: the carrier of (AllIso C) c= the carrier of (AllCoretr C) by Def4; the Arrows of (AllIso C) cc= the Arrows of (AllCoretr C) proof thus [: the carrier of (AllIso C), the carrier of (AllIso C):] c= [: the carrier of (AllCoretr C), the carrier of (AllCoretr C):] by A1, ZFMISC_1:96; :: according to ALTCAT_2:def_2 ::_thesis: for b1 being set holds ( not b1 in [: the carrier of (AllIso C), the carrier of (AllIso C):] or the Arrows of (AllIso C) . b1 c= the Arrows of (AllCoretr C) . b1 ) let i be set ; ::_thesis: ( not i in [: the carrier of (AllIso C), the carrier of (AllIso C):] or the Arrows of (AllIso C) . i c= the Arrows of (AllCoretr C) . i ) assume A2: i in [: the carrier of (AllIso C), the carrier of (AllIso C):] ; ::_thesis: the Arrows of (AllIso C) . i c= the Arrows of (AllCoretr C) . i then consider o1, o2 being set such that A3: ( o1 in the carrier of (AllIso C) & o2 in the carrier of (AllIso C) ) and A4: i = [o1,o2] by ZFMISC_1:84; reconsider o1 = o1, o2 = o2 as object of C by A3, Def5; let m be set ; :: according to TARSKI:def_3 ::_thesis: ( not m in the Arrows of (AllIso C) . i or m in the Arrows of (AllCoretr C) . i ) assume A5: m in the Arrows of (AllIso C) . i ; ::_thesis: m in the Arrows of (AllCoretr C) . i the Arrows of (AllIso C) cc= the Arrows of C by Def5; then the Arrows of (AllIso C) . [o1,o2] c= the Arrows of C . (o1,o2) by A2, A4, ALTCAT_2:def_2; then reconsider m1 = m as Morphism of o1,o2 by A4, A5; m in the Arrows of (AllIso C) . (o1,o2) by A4, A5; then m1 is iso by Def5; then A6: m1 is coretraction by ALTCAT_3:5; m1 in the Arrows of (AllIso C) . (o1,o2) by A4, A5; then ( <^o1,o2^> <> {} & <^o2,o1^> <> {} ) by Def5; then m in the Arrows of (AllCoretr C) . (o1,o2) by A6, Def4; hence m in the Arrows of (AllCoretr C) . i by A4; ::_thesis: verum end; then reconsider A = AllIso C as non empty with_units SubCatStr of AllCoretr C by A1, ALTCAT_2:24; now__::_thesis:_for_o_being_object_of_A for_o1_being_object_of_(AllCoretr_C)_st_o_=_o1_holds_ idm_o1_in_<^o,o^> let o be object of A; ::_thesis: for o1 being object of (AllCoretr C) st o = o1 holds idm o1 in <^o,o^> let o1 be object of (AllCoretr C); ::_thesis: ( o = o1 implies idm o1 in <^o,o^> ) assume A7: o = o1 ; ::_thesis: idm o1 in <^o,o^> reconsider oo = o as object of C by Def5; idm o = idm oo by ALTCAT_2:34 .= idm o1 by A7, ALTCAT_2:34 ; hence idm o1 in <^o,o^> ; ::_thesis: verum end; hence AllIso C is non empty subcategory of AllCoretr C by ALTCAT_2:def_14; ::_thesis: verum end; theorem Th43: :: ALTCAT_4:43 for C being category holds AllCoretr C is non empty subcategory of AllMono C proof let C be category; ::_thesis: AllCoretr C is non empty subcategory of AllMono C the carrier of (AllCoretr C) = the carrier of C by Def4; then A1: the carrier of (AllCoretr C) c= the carrier of (AllMono C) by Def1; the Arrows of (AllCoretr C) cc= the Arrows of (AllMono C) proof thus [: the carrier of (AllCoretr C), the carrier of (AllCoretr C):] c= [: the carrier of (AllMono C), the carrier of (AllMono C):] by A1, ZFMISC_1:96; :: according to ALTCAT_2:def_2 ::_thesis: for b1 being set holds ( not b1 in [: the carrier of (AllCoretr C), the carrier of (AllCoretr C):] or the Arrows of (AllCoretr C) . b1 c= the Arrows of (AllMono C) . b1 ) let i be set ; ::_thesis: ( not i in [: the carrier of (AllCoretr C), the carrier of (AllCoretr C):] or the Arrows of (AllCoretr C) . i c= the Arrows of (AllMono C) . i ) assume A2: i in [: the carrier of (AllCoretr C), the carrier of (AllCoretr C):] ; ::_thesis: the Arrows of (AllCoretr C) . i c= the Arrows of (AllMono C) . i then consider o1, o2 being set such that A3: ( o1 in the carrier of (AllCoretr C) & o2 in the carrier of (AllCoretr C) ) and A4: i = [o1,o2] by ZFMISC_1:84; reconsider o1 = o1, o2 = o2 as object of C by A3, Def4; let m be set ; :: according to TARSKI:def_3 ::_thesis: ( not m in the Arrows of (AllCoretr C) . i or m in the Arrows of (AllMono C) . i ) assume A5: m in the Arrows of (AllCoretr C) . i ; ::_thesis: m in the Arrows of (AllMono C) . i the Arrows of (AllCoretr C) cc= the Arrows of C by Def4; then the Arrows of (AllCoretr C) . [o1,o2] c= the Arrows of C . (o1,o2) by A2, A4, ALTCAT_2:def_2; then reconsider m1 = m as Morphism of o1,o2 by A4, A5; m in the Arrows of (AllCoretr C) . (o1,o2) by A4, A5; then A6: m1 is coretraction by Def4; A7: m1 in the Arrows of (AllCoretr C) . (o1,o2) by A4, A5; then A8: <^o1,o2^> <> {} by Def4; <^o2,o1^> <> {} by A7, Def4; then m1 is mono by A8, A6, ALTCAT_3:16; then m in the Arrows of (AllMono C) . (o1,o2) by A8, Def1; hence m in the Arrows of (AllMono C) . i by A4; ::_thesis: verum end; then reconsider A = AllCoretr C as non empty with_units SubCatStr of AllMono C by A1, ALTCAT_2:24; now__::_thesis:_for_o_being_object_of_A for_o1_being_object_of_(AllMono_C)_st_o_=_o1_holds_ idm_o1_in_<^o,o^> let o be object of A; ::_thesis: for o1 being object of (AllMono C) st o = o1 holds idm o1 in <^o,o^> let o1 be object of (AllMono C); ::_thesis: ( o = o1 implies idm o1 in <^o,o^> ) assume A9: o = o1 ; ::_thesis: idm o1 in <^o,o^> reconsider oo = o as object of C by Def4; idm o = idm oo by ALTCAT_2:34 .= idm o1 by A9, ALTCAT_2:34 ; hence idm o1 in <^o,o^> ; ::_thesis: verum end; hence AllCoretr C is non empty subcategory of AllMono C by ALTCAT_2:def_14; ::_thesis: verum end; theorem Th44: :: ALTCAT_4:44 for C being category holds AllRetr C is non empty subcategory of AllEpi C proof let C be category; ::_thesis: AllRetr C is non empty subcategory of AllEpi C the carrier of (AllRetr C) = the carrier of C by Def3; then A1: the carrier of (AllRetr C) c= the carrier of (AllEpi C) by Def2; the Arrows of (AllRetr C) cc= the Arrows of (AllEpi C) proof thus [: the carrier of (AllRetr C), the carrier of (AllRetr C):] c= [: the carrier of (AllEpi C), the carrier of (AllEpi C):] by A1, ZFMISC_1:96; :: according to ALTCAT_2:def_2 ::_thesis: for b1 being set holds ( not b1 in [: the carrier of (AllRetr C), the carrier of (AllRetr C):] or the Arrows of (AllRetr C) . b1 c= the Arrows of (AllEpi C) . b1 ) let i be set ; ::_thesis: ( not i in [: the carrier of (AllRetr C), the carrier of (AllRetr C):] or the Arrows of (AllRetr C) . i c= the Arrows of (AllEpi C) . i ) assume A2: i in [: the carrier of (AllRetr C), the carrier of (AllRetr C):] ; ::_thesis: the Arrows of (AllRetr C) . i c= the Arrows of (AllEpi C) . i then consider o1, o2 being set such that A3: ( o1 in the carrier of (AllRetr C) & o2 in the carrier of (AllRetr C) ) and A4: i = [o1,o2] by ZFMISC_1:84; reconsider o1 = o1, o2 = o2 as object of C by A3, Def3; let m be set ; :: according to TARSKI:def_3 ::_thesis: ( not m in the Arrows of (AllRetr C) . i or m in the Arrows of (AllEpi C) . i ) assume A5: m in the Arrows of (AllRetr C) . i ; ::_thesis: m in the Arrows of (AllEpi C) . i the Arrows of (AllRetr C) cc= the Arrows of C by Def3; then the Arrows of (AllRetr C) . [o1,o2] c= the Arrows of C . (o1,o2) by A2, A4, ALTCAT_2:def_2; then reconsider m1 = m as Morphism of o1,o2 by A4, A5; m in the Arrows of (AllRetr C) . (o1,o2) by A4, A5; then A6: m1 is retraction by Def3; A7: m1 in the Arrows of (AllRetr C) . (o1,o2) by A4, A5; then A8: <^o1,o2^> <> {} by Def3; <^o2,o1^> <> {} by A7, Def3; then m1 is epi by A8, A6, ALTCAT_3:15; then m in the Arrows of (AllEpi C) . (o1,o2) by A8, Def2; hence m in the Arrows of (AllEpi C) . i by A4; ::_thesis: verum end; then reconsider A = AllRetr C as non empty with_units SubCatStr of AllEpi C by A1, ALTCAT_2:24; now__::_thesis:_for_o_being_object_of_A for_o1_being_object_of_(AllEpi_C)_st_o_=_o1_holds_ idm_o1_in_<^o,o^> let o be object of A; ::_thesis: for o1 being object of (AllEpi C) st o = o1 holds idm o1 in <^o,o^> let o1 be object of (AllEpi C); ::_thesis: ( o = o1 implies idm o1 in <^o,o^> ) assume A9: o = o1 ; ::_thesis: idm o1 in <^o,o^> reconsider oo = o as object of C by Def3; idm o = idm oo by ALTCAT_2:34 .= idm o1 by A9, ALTCAT_2:34 ; hence idm o1 in <^o,o^> ; ::_thesis: verum end; hence AllRetr C is non empty subcategory of AllEpi C by ALTCAT_2:def_14; ::_thesis: verum end; theorem :: ALTCAT_4:45 for C being category st ( for o1, o2 being object of C for m being Morphism of o1,o2 holds m is mono ) holds AltCatStr(# the carrier of C, the Arrows of C, the Comp of C #) = AllMono C proof let C be category; ::_thesis: ( ( for o1, o2 being object of C for m being Morphism of o1,o2 holds m is mono ) implies AltCatStr(# the carrier of C, the Arrows of C, the Comp of C #) = AllMono C ) assume A1: for o1, o2 being object of C for m being Morphism of o1,o2 holds m is mono ; ::_thesis: AltCatStr(# the carrier of C, the Arrows of C, the Comp of C #) = AllMono C A2: the carrier of (AllMono C) = the carrier of AltCatStr(# the carrier of C, the Arrows of C, the Comp of C #) by Def1; A3: the Arrows of (AllMono C) cc= the Arrows of C by Def1; now__::_thesis:_for_i_being_set_st_i_in_[:_the_carrier_of_C,_the_carrier_of_C:]_holds_ the_Arrows_of_(AllMono_C)_._i_=_the_Arrows_of_C_._i let i be set ; ::_thesis: ( i in [: the carrier of C, the carrier of C:] implies the Arrows of (AllMono C) . i = the Arrows of C . i ) assume A4: i in [: the carrier of C, the carrier of C:] ; ::_thesis: the Arrows of (AllMono C) . i = the Arrows of C . i then consider o1, o2 being set such that A5: ( o1 in the carrier of C & o2 in the carrier of C ) and A6: i = [o1,o2] by ZFMISC_1:84; reconsider o1 = o1, o2 = o2 as object of C by A5; thus the Arrows of (AllMono C) . i = the Arrows of C . i ::_thesis: verum proof thus the Arrows of (AllMono C) . i c= the Arrows of C . i by A2, A3, A4, ALTCAT_2:def_2; :: according to XBOOLE_0:def_10 ::_thesis: the Arrows of C . i c= the Arrows of (AllMono C) . i let n be set ; :: according to TARSKI:def_3 ::_thesis: ( not n in the Arrows of C . i or n in the Arrows of (AllMono C) . i ) assume A7: n in the Arrows of C . i ; ::_thesis: n in the Arrows of (AllMono C) . i then reconsider n1 = n as Morphism of o1,o2 by A6; n1 is mono by A1; then n in the Arrows of (AllMono C) . (o1,o2) by A6, A7, Def1; hence n in the Arrows of (AllMono C) . i by A6; ::_thesis: verum end; end; hence AltCatStr(# the carrier of C, the Arrows of C, the Comp of C #) = AllMono C by A2, ALTCAT_2:25, PBOOLE:3; ::_thesis: verum end; theorem :: ALTCAT_4:46 for C being category st ( for o1, o2 being object of C for m being Morphism of o1,o2 holds m is epi ) holds AltCatStr(# the carrier of C, the Arrows of C, the Comp of C #) = AllEpi C proof let C be category; ::_thesis: ( ( for o1, o2 being object of C for m being Morphism of o1,o2 holds m is epi ) implies AltCatStr(# the carrier of C, the Arrows of C, the Comp of C #) = AllEpi C ) assume A1: for o1, o2 being object of C for m being Morphism of o1,o2 holds m is epi ; ::_thesis: AltCatStr(# the carrier of C, the Arrows of C, the Comp of C #) = AllEpi C A2: the carrier of (AllEpi C) = the carrier of AltCatStr(# the carrier of C, the Arrows of C, the Comp of C #) by Def2; A3: the Arrows of (AllEpi C) cc= the Arrows of C by Def2; now__::_thesis:_for_i_being_set_st_i_in_[:_the_carrier_of_C,_the_carrier_of_C:]_holds_ the_Arrows_of_(AllEpi_C)_._i_=_the_Arrows_of_C_._i let i be set ; ::_thesis: ( i in [: the carrier of C, the carrier of C:] implies the Arrows of (AllEpi C) . i = the Arrows of C . i ) assume A4: i in [: the carrier of C, the carrier of C:] ; ::_thesis: the Arrows of (AllEpi C) . i = the Arrows of C . i then consider o1, o2 being set such that A5: ( o1 in the carrier of C & o2 in the carrier of C ) and A6: i = [o1,o2] by ZFMISC_1:84; reconsider o1 = o1, o2 = o2 as object of C by A5; thus the Arrows of (AllEpi C) . i = the Arrows of C . i ::_thesis: verum proof thus the Arrows of (AllEpi C) . i c= the Arrows of C . i by A2, A3, A4, ALTCAT_2:def_2; :: according to XBOOLE_0:def_10 ::_thesis: the Arrows of C . i c= the Arrows of (AllEpi C) . i let n be set ; :: according to TARSKI:def_3 ::_thesis: ( not n in the Arrows of C . i or n in the Arrows of (AllEpi C) . i ) assume A7: n in the Arrows of C . i ; ::_thesis: n in the Arrows of (AllEpi C) . i then reconsider n1 = n as Morphism of o1,o2 by A6; n1 is epi by A1; then n in the Arrows of (AllEpi C) . (o1,o2) by A6, A7, Def2; hence n in the Arrows of (AllEpi C) . i by A6; ::_thesis: verum end; end; hence AltCatStr(# the carrier of C, the Arrows of C, the Comp of C #) = AllEpi C by A2, ALTCAT_2:25, PBOOLE:3; ::_thesis: verum end; theorem :: ALTCAT_4:47 for C being category st ( for o1, o2 being object of C for m being Morphism of o1,o2 holds ( m is retraction & <^o2,o1^> <> {} ) ) holds AltCatStr(# the carrier of C, the Arrows of C, the Comp of C #) = AllRetr C proof let C be category; ::_thesis: ( ( for o1, o2 being object of C for m being Morphism of o1,o2 holds ( m is retraction & <^o2,o1^> <> {} ) ) implies AltCatStr(# the carrier of C, the Arrows of C, the Comp of C #) = AllRetr C ) assume A1: for o1, o2 being object of C for m being Morphism of o1,o2 holds ( m is retraction & <^o2,o1^> <> {} ) ; ::_thesis: AltCatStr(# the carrier of C, the Arrows of C, the Comp of C #) = AllRetr C A2: the carrier of (AllRetr C) = the carrier of AltCatStr(# the carrier of C, the Arrows of C, the Comp of C #) by Def3; A3: the Arrows of (AllRetr C) cc= the Arrows of C by Def3; now__::_thesis:_for_i_being_set_st_i_in_[:_the_carrier_of_C,_the_carrier_of_C:]_holds_ the_Arrows_of_(AllRetr_C)_._i_=_the_Arrows_of_C_._i let i be set ; ::_thesis: ( i in [: the carrier of C, the carrier of C:] implies the Arrows of (AllRetr C) . i = the Arrows of C . i ) assume A4: i in [: the carrier of C, the carrier of C:] ; ::_thesis: the Arrows of (AllRetr C) . i = the Arrows of C . i then consider o1, o2 being set such that A5: ( o1 in the carrier of C & o2 in the carrier of C ) and A6: i = [o1,o2] by ZFMISC_1:84; reconsider o1 = o1, o2 = o2 as object of C by A5; thus the Arrows of (AllRetr C) . i = the Arrows of C . i ::_thesis: verum proof thus the Arrows of (AllRetr C) . i c= the Arrows of C . i by A2, A3, A4, ALTCAT_2:def_2; :: according to XBOOLE_0:def_10 ::_thesis: the Arrows of C . i c= the Arrows of (AllRetr C) . i let n be set ; :: according to TARSKI:def_3 ::_thesis: ( not n in the Arrows of C . i or n in the Arrows of (AllRetr C) . i ) assume A7: n in the Arrows of C . i ; ::_thesis: n in the Arrows of (AllRetr C) . i then reconsider n1 = n as Morphism of o1,o2 by A6; ( <^o2,o1^> <> {} & n1 is retraction ) by A1; then n in the Arrows of (AllRetr C) . (o1,o2) by A6, A7, Def3; hence n in the Arrows of (AllRetr C) . i by A6; ::_thesis: verum end; end; hence AltCatStr(# the carrier of C, the Arrows of C, the Comp of C #) = AllRetr C by A2, ALTCAT_2:25, PBOOLE:3; ::_thesis: verum end; theorem :: ALTCAT_4:48 for C being category st ( for o1, o2 being object of C for m being Morphism of o1,o2 holds ( m is coretraction & <^o2,o1^> <> {} ) ) holds AltCatStr(# the carrier of C, the Arrows of C, the Comp of C #) = AllCoretr C proof let C be category; ::_thesis: ( ( for o1, o2 being object of C for m being Morphism of o1,o2 holds ( m is coretraction & <^o2,o1^> <> {} ) ) implies AltCatStr(# the carrier of C, the Arrows of C, the Comp of C #) = AllCoretr C ) assume A1: for o1, o2 being object of C for m being Morphism of o1,o2 holds ( m is coretraction & <^o2,o1^> <> {} ) ; ::_thesis: AltCatStr(# the carrier of C, the Arrows of C, the Comp of C #) = AllCoretr C A2: the carrier of (AllCoretr C) = the carrier of AltCatStr(# the carrier of C, the Arrows of C, the Comp of C #) by Def4; A3: the Arrows of (AllCoretr C) cc= the Arrows of C by Def4; now__::_thesis:_for_i_being_set_st_i_in_[:_the_carrier_of_C,_the_carrier_of_C:]_holds_ the_Arrows_of_(AllCoretr_C)_._i_=_the_Arrows_of_C_._i let i be set ; ::_thesis: ( i in [: the carrier of C, the carrier of C:] implies the Arrows of (AllCoretr C) . i = the Arrows of C . i ) assume A4: i in [: the carrier of C, the carrier of C:] ; ::_thesis: the Arrows of (AllCoretr C) . i = the Arrows of C . i then consider o1, o2 being set such that A5: ( o1 in the carrier of C & o2 in the carrier of C ) and A6: i = [o1,o2] by ZFMISC_1:84; reconsider o1 = o1, o2 = o2 as object of C by A5; thus the Arrows of (AllCoretr C) . i = the Arrows of C . i ::_thesis: verum proof thus the Arrows of (AllCoretr C) . i c= the Arrows of C . i by A2, A3, A4, ALTCAT_2:def_2; :: according to XBOOLE_0:def_10 ::_thesis: the Arrows of C . i c= the Arrows of (AllCoretr C) . i let n be set ; :: according to TARSKI:def_3 ::_thesis: ( not n in the Arrows of C . i or n in the Arrows of (AllCoretr C) . i ) assume A7: n in the Arrows of C . i ; ::_thesis: n in the Arrows of (AllCoretr C) . i then reconsider n1 = n as Morphism of o1,o2 by A6; ( <^o2,o1^> <> {} & n1 is coretraction ) by A1; then n in the Arrows of (AllCoretr C) . (o1,o2) by A6, A7, Def4; hence n in the Arrows of (AllCoretr C) . i by A6; ::_thesis: verum end; end; hence AltCatStr(# the carrier of C, the Arrows of C, the Comp of C #) = AllCoretr C by A2, ALTCAT_2:25, PBOOLE:3; ::_thesis: verum end; theorem :: ALTCAT_4:49 for C being category st ( for o1, o2 being object of C for m being Morphism of o1,o2 holds ( m is iso & <^o2,o1^> <> {} ) ) holds AltCatStr(# the carrier of C, the Arrows of C, the Comp of C #) = AllIso C proof let C be category; ::_thesis: ( ( for o1, o2 being object of C for m being Morphism of o1,o2 holds ( m is iso & <^o2,o1^> <> {} ) ) implies AltCatStr(# the carrier of C, the Arrows of C, the Comp of C #) = AllIso C ) assume A1: for o1, o2 being object of C for m being Morphism of o1,o2 holds ( m is iso & <^o2,o1^> <> {} ) ; ::_thesis: AltCatStr(# the carrier of C, the Arrows of C, the Comp of C #) = AllIso C A2: the carrier of (AllIso C) = the carrier of AltCatStr(# the carrier of C, the Arrows of C, the Comp of C #) by Def5; A3: the Arrows of (AllIso C) cc= the Arrows of C by Def5; now__::_thesis:_for_i_being_set_st_i_in_[:_the_carrier_of_C,_the_carrier_of_C:]_holds_ the_Arrows_of_(AllIso_C)_._i_=_the_Arrows_of_C_._i let i be set ; ::_thesis: ( i in [: the carrier of C, the carrier of C:] implies the Arrows of (AllIso C) . i = the Arrows of C . i ) assume A4: i in [: the carrier of C, the carrier of C:] ; ::_thesis: the Arrows of (AllIso C) . i = the Arrows of C . i then consider o1, o2 being set such that A5: ( o1 in the carrier of C & o2 in the carrier of C ) and A6: i = [o1,o2] by ZFMISC_1:84; reconsider o1 = o1, o2 = o2 as object of C by A5; thus the Arrows of (AllIso C) . i = the Arrows of C . i ::_thesis: verum proof thus the Arrows of (AllIso C) . i c= the Arrows of C . i by A2, A3, A4, ALTCAT_2:def_2; :: according to XBOOLE_0:def_10 ::_thesis: the Arrows of C . i c= the Arrows of (AllIso C) . i let n be set ; :: according to TARSKI:def_3 ::_thesis: ( not n in the Arrows of C . i or n in the Arrows of (AllIso C) . i ) assume A7: n in the Arrows of C . i ; ::_thesis: n in the Arrows of (AllIso C) . i then reconsider n1 = n as Morphism of o1,o2 by A6; ( <^o2,o1^> <> {} & n1 is iso ) by A1; then n in the Arrows of (AllIso C) . (o1,o2) by A6, A7, Def5; hence n in the Arrows of (AllIso C) . i by A6; ::_thesis: verum end; end; hence AltCatStr(# the carrier of C, the Arrows of C, the Comp of C #) = AllIso C by A2, ALTCAT_2:25, PBOOLE:3; ::_thesis: verum end; theorem Th50: :: ALTCAT_4:50 for C being category for o1, o2 being object of (AllMono C) for m being Morphism of o1,o2 st <^o1,o2^> <> {} holds m is mono proof let C be category; ::_thesis: for o1, o2 being object of (AllMono C) for m being Morphism of o1,o2 st <^o1,o2^> <> {} holds m is mono let o1, o2 be object of (AllMono C); ::_thesis: for m being Morphism of o1,o2 st <^o1,o2^> <> {} holds m is mono let m be Morphism of o1,o2; ::_thesis: ( <^o1,o2^> <> {} implies m is mono ) assume A1: <^o1,o2^> <> {} ; ::_thesis: m is mono reconsider p1 = o1, p2 = o2 as object of C by Def1; reconsider p = m as Morphism of p1,p2 by A1, ALTCAT_2:33; p is mono by A1, Def1; hence m is mono by A1, Th37; ::_thesis: verum end; theorem Th51: :: ALTCAT_4:51 for C being category for o1, o2 being object of (AllEpi C) for m being Morphism of o1,o2 st <^o1,o2^> <> {} holds m is epi proof let C be category; ::_thesis: for o1, o2 being object of (AllEpi C) for m being Morphism of o1,o2 st <^o1,o2^> <> {} holds m is epi let o1, o2 be object of (AllEpi C); ::_thesis: for m being Morphism of o1,o2 st <^o1,o2^> <> {} holds m is epi let m be Morphism of o1,o2; ::_thesis: ( <^o1,o2^> <> {} implies m is epi ) assume A1: <^o1,o2^> <> {} ; ::_thesis: m is epi reconsider p1 = o1, p2 = o2 as object of C by Def2; reconsider p = m as Morphism of p1,p2 by A1, ALTCAT_2:33; p is epi by A1, Def2; hence m is epi by A1, Th37; ::_thesis: verum end; theorem Th52: :: ALTCAT_4:52 for C being category for o1, o2 being object of (AllIso C) for m being Morphism of o1,o2 st <^o1,o2^> <> {} holds ( m is iso & m " in <^o2,o1^> ) proof let C be category; ::_thesis: for o1, o2 being object of (AllIso C) for m being Morphism of o1,o2 st <^o1,o2^> <> {} holds ( m is iso & m " in <^o2,o1^> ) let o1, o2 be object of (AllIso C); ::_thesis: for m being Morphism of o1,o2 st <^o1,o2^> <> {} holds ( m is iso & m " in <^o2,o1^> ) let m be Morphism of o1,o2; ::_thesis: ( <^o1,o2^> <> {} implies ( m is iso & m " in <^o2,o1^> ) ) assume A1: <^o1,o2^> <> {} ; ::_thesis: ( m is iso & m " in <^o2,o1^> ) reconsider p1 = o1, p2 = o2 as object of C by Def5; reconsider p = m as Morphism of p1,p2 by A1, ALTCAT_2:33; p in the Arrows of (AllIso C) . (o1,o2) by A1; then A2: ( <^p1,p2^> <> {} & <^p2,p1^> <> {} ) by Def5; A3: p is iso by A1, Def5; then A4: p " is iso by A2, Th3; then A5: p " in the Arrows of (AllIso C) . (p2,p1) by A2, Def5; reconsider m1 = p " as Morphism of o2,o1 by A2, A4, Def5; A6: m is retraction proof take m1 ; :: according to ALTCAT_3:def_2 ::_thesis: m is_left_inverse_of m1 thus m * m1 = p * (p ") by A1, A5, ALTCAT_2:32 .= idm p2 by A3, ALTCAT_3:def_5 .= idm o2 by ALTCAT_2:34 ; :: according to ALTCAT_3:def_1 ::_thesis: verum end; A7: m is coretraction proof take m1 ; :: according to ALTCAT_3:def_3 ::_thesis: m1 is_left_inverse_of m thus m1 * m = (p ") * p by A1, A5, ALTCAT_2:32 .= idm p1 by A3, ALTCAT_3:def_5 .= idm o1 by ALTCAT_2:34 ; :: according to ALTCAT_3:def_1 ::_thesis: verum end; p " in <^o2,o1^> by A2, A4, Def5; hence m is iso by A1, A6, A7, ALTCAT_3:6; ::_thesis: m " in <^o2,o1^> thus m " in <^o2,o1^> by A5; ::_thesis: verum end; theorem :: ALTCAT_4:53 for C being category holds AllMono (AllMono C) = AllMono C proof let C be category; ::_thesis: AllMono (AllMono C) = AllMono C A1: ( the carrier of (AllMono (AllMono C)) = the carrier of (AllMono C) & the carrier of (AllMono C) = the carrier of C ) by Def1; A2: the Arrows of (AllMono (AllMono C)) cc= the Arrows of (AllMono C) by Def1; now__::_thesis:_for_i_being_set_st_i_in_[:_the_carrier_of_C,_the_carrier_of_C:]_holds_ the_Arrows_of_(AllMono_(AllMono_C))_._i_=_the_Arrows_of_(AllMono_C)_._i let i be set ; ::_thesis: ( i in [: the carrier of C, the carrier of C:] implies the Arrows of (AllMono (AllMono C)) . i = the Arrows of (AllMono C) . i ) assume A3: i in [: the carrier of C, the carrier of C:] ; ::_thesis: the Arrows of (AllMono (AllMono C)) . i = the Arrows of (AllMono C) . i then consider o1, o2 being set such that A4: ( o1 in the carrier of C & o2 in the carrier of C ) and A5: i = [o1,o2] by ZFMISC_1:84; reconsider o1 = o1, o2 = o2 as object of (AllMono C) by A4, Def1; thus the Arrows of (AllMono (AllMono C)) . i = the Arrows of (AllMono C) . i ::_thesis: verum proof thus the Arrows of (AllMono (AllMono C)) . i c= the Arrows of (AllMono C) . i by A1, A2, A3, ALTCAT_2:def_2; :: according to XBOOLE_0:def_10 ::_thesis: the Arrows of (AllMono C) . i c= the Arrows of (AllMono (AllMono C)) . i let n be set ; :: according to TARSKI:def_3 ::_thesis: ( not n in the Arrows of (AllMono C) . i or n in the Arrows of (AllMono (AllMono C)) . i ) assume A6: n in the Arrows of (AllMono C) . i ; ::_thesis: n in the Arrows of (AllMono (AllMono C)) . i then reconsider n1 = n as Morphism of o1,o2 by A5; n1 is mono by A5, A6, Th50; then n in the Arrows of (AllMono (AllMono C)) . (o1,o2) by A5, A6, Def1; hence n in the Arrows of (AllMono (AllMono C)) . i by A5; ::_thesis: verum end; end; hence AllMono (AllMono C) = AllMono C by A1, ALTCAT_2:25, PBOOLE:3; ::_thesis: verum end; theorem :: ALTCAT_4:54 for C being category holds AllEpi (AllEpi C) = AllEpi C proof let C be category; ::_thesis: AllEpi (AllEpi C) = AllEpi C A1: ( the carrier of (AllEpi (AllEpi C)) = the carrier of (AllEpi C) & the carrier of (AllEpi C) = the carrier of C ) by Def2; A2: the Arrows of (AllEpi (AllEpi C)) cc= the Arrows of (AllEpi C) by Def2; now__::_thesis:_for_i_being_set_st_i_in_[:_the_carrier_of_C,_the_carrier_of_C:]_holds_ the_Arrows_of_(AllEpi_(AllEpi_C))_._i_=_the_Arrows_of_(AllEpi_C)_._i let i be set ; ::_thesis: ( i in [: the carrier of C, the carrier of C:] implies the Arrows of (AllEpi (AllEpi C)) . i = the Arrows of (AllEpi C) . i ) assume A3: i in [: the carrier of C, the carrier of C:] ; ::_thesis: the Arrows of (AllEpi (AllEpi C)) . i = the Arrows of (AllEpi C) . i then consider o1, o2 being set such that A4: ( o1 in the carrier of C & o2 in the carrier of C ) and A5: i = [o1,o2] by ZFMISC_1:84; reconsider o1 = o1, o2 = o2 as object of (AllEpi C) by A4, Def2; thus the Arrows of (AllEpi (AllEpi C)) . i = the Arrows of (AllEpi C) . i ::_thesis: verum proof thus the Arrows of (AllEpi (AllEpi C)) . i c= the Arrows of (AllEpi C) . i by A1, A2, A3, ALTCAT_2:def_2; :: according to XBOOLE_0:def_10 ::_thesis: the Arrows of (AllEpi C) . i c= the Arrows of (AllEpi (AllEpi C)) . i let n be set ; :: according to TARSKI:def_3 ::_thesis: ( not n in the Arrows of (AllEpi C) . i or n in the Arrows of (AllEpi (AllEpi C)) . i ) assume A6: n in the Arrows of (AllEpi C) . i ; ::_thesis: n in the Arrows of (AllEpi (AllEpi C)) . i then reconsider n1 = n as Morphism of o1,o2 by A5; n1 is epi by A5, A6, Th51; then n in the Arrows of (AllEpi (AllEpi C)) . (o1,o2) by A5, A6, Def2; hence n in the Arrows of (AllEpi (AllEpi C)) . i by A5; ::_thesis: verum end; end; hence AllEpi (AllEpi C) = AllEpi C by A1, ALTCAT_2:25, PBOOLE:3; ::_thesis: verum end; theorem :: ALTCAT_4:55 for C being category holds AllIso (AllIso C) = AllIso C proof let C be category; ::_thesis: AllIso (AllIso C) = AllIso C A1: ( the carrier of (AllIso (AllIso C)) = the carrier of (AllIso C) & the carrier of (AllIso C) = the carrier of C ) by Def5; A2: the Arrows of (AllIso (AllIso C)) cc= the Arrows of (AllIso C) by Def5; now__::_thesis:_for_i_being_set_st_i_in_[:_the_carrier_of_C,_the_carrier_of_C:]_holds_ the_Arrows_of_(AllIso_(AllIso_C))_._i_=_the_Arrows_of_(AllIso_C)_._i let i be set ; ::_thesis: ( i in [: the carrier of C, the carrier of C:] implies the Arrows of (AllIso (AllIso C)) . i = the Arrows of (AllIso C) . i ) assume A3: i in [: the carrier of C, the carrier of C:] ; ::_thesis: the Arrows of (AllIso (AllIso C)) . i = the Arrows of (AllIso C) . i then consider o1, o2 being set such that A4: ( o1 in the carrier of C & o2 in the carrier of C ) and A5: i = [o1,o2] by ZFMISC_1:84; reconsider o1 = o1, o2 = o2 as object of (AllIso C) by A4, Def5; thus the Arrows of (AllIso (AllIso C)) . i = the Arrows of (AllIso C) . i ::_thesis: verum proof thus the Arrows of (AllIso (AllIso C)) . i c= the Arrows of (AllIso C) . i by A1, A2, A3, ALTCAT_2:def_2; :: according to XBOOLE_0:def_10 ::_thesis: the Arrows of (AllIso C) . i c= the Arrows of (AllIso (AllIso C)) . i let n be set ; :: according to TARSKI:def_3 ::_thesis: ( not n in the Arrows of (AllIso C) . i or n in the Arrows of (AllIso (AllIso C)) . i ) assume A6: n in the Arrows of (AllIso C) . i ; ::_thesis: n in the Arrows of (AllIso (AllIso C)) . i then reconsider n1 = n as Morphism of o1,o2 by A5; ( n1 " in <^o2,o1^> & n1 is iso ) by A5, A6, Th52; then n in the Arrows of (AllIso (AllIso C)) . (o1,o2) by A5, A6, Def5; hence n in the Arrows of (AllIso (AllIso C)) . i by A5; ::_thesis: verum end; end; hence AllIso (AllIso C) = AllIso C by A1, ALTCAT_2:25, PBOOLE:3; ::_thesis: verum end; theorem :: ALTCAT_4:56 for C being category holds AllIso (AllMono C) = AllIso C proof let C be category; ::_thesis: AllIso (AllMono C) = AllIso C A1: AllIso (AllMono C) is non empty transitive SubCatStr of C by ALTCAT_2:21; A2: the carrier of (AllIso (AllMono C)) = the carrier of (AllMono C) by Def5; A3: the carrier of (AllIso C) = the carrier of C by Def5; A4: the carrier of (AllMono C) = the carrier of C by Def1; ( AllIso C is non empty subcategory of AllCoretr C & AllCoretr C is non empty subcategory of AllMono C ) by Th42, Th43; then A5: AllIso C is non empty subcategory of AllMono C by Th36; A6: now__::_thesis:_for_i_being_set_st_i_in_[:_the_carrier_of_C,_the_carrier_of_C:]_holds_ the_Arrows_of_(AllIso_(AllMono_C))_._i_=_the_Arrows_of_(AllIso_C)_._i let i be set ; ::_thesis: ( i in [: the carrier of C, the carrier of C:] implies the Arrows of (AllIso (AllMono C)) . i = the Arrows of (AllIso C) . i ) assume A7: i in [: the carrier of C, the carrier of C:] ; ::_thesis: the Arrows of (AllIso (AllMono C)) . i = the Arrows of (AllIso C) . i then consider o1, o2 being set such that A8: ( o1 in the carrier of C & o2 in the carrier of C ) and A9: i = [o1,o2] by ZFMISC_1:84; reconsider o1 = o1, o2 = o2 as object of (AllMono C) by A8, Def1; thus the Arrows of (AllIso (AllMono C)) . i = the Arrows of (AllIso C) . i ::_thesis: verum proof thus the Arrows of (AllIso (AllMono C)) . i c= the Arrows of (AllIso C) . i :: according to XBOOLE_0:def_10 ::_thesis: the Arrows of (AllIso C) . i c= the Arrows of (AllIso (AllMono C)) . i proof reconsider r1 = o1, r2 = o2 as object of C by Def1; reconsider q1 = o1, q2 = o2 as object of (AllIso (AllMono C)) by Def5; A10: <^q2,q1^> c= <^o2,o1^> by ALTCAT_2:31; let n be set ; :: according to TARSKI:def_3 ::_thesis: ( not n in the Arrows of (AllIso (AllMono C)) . i or n in the Arrows of (AllIso C) . i ) assume A11: n in the Arrows of (AllIso (AllMono C)) . i ; ::_thesis: n in the Arrows of (AllIso C) . i n in <^q1,q2^> by A9, A11; then A12: <^o2,o1^> <> {} by A10, Th52; then A13: <^r2,r1^> <> {} by ALTCAT_2:31, XBOOLE_1:3; A14: <^q1,q2^> c= <^o1,o2^> by ALTCAT_2:31; then reconsider n2 = n as Morphism of o1,o2 by A9, A11; A15: <^r1,r2^> <> {} by A9, A11, A14, ALTCAT_2:31, XBOOLE_1:3; <^o1,o2^> c= <^r1,r2^> by ALTCAT_2:31; then <^q1,q2^> c= <^r1,r2^> by A14, XBOOLE_1:1; then reconsider n1 = n as Morphism of r1,r2 by A9, A11; n in the Arrows of (AllIso (AllMono C)) . (q1,q2) by A9, A11; then n2 is iso by Def5; then n1 is iso by A9, A11, A14, A12, Th40; then n in the Arrows of (AllIso C) . (r1,r2) by A15, A13, Def5; hence n in the Arrows of (AllIso C) . i by A9; ::_thesis: verum end; reconsider p1 = o1, p2 = o2 as object of (AllIso C) by A4, Def5; A16: <^p2,p1^> c= <^o2,o1^> by A5, ALTCAT_2:31; let n be set ; :: according to TARSKI:def_3 ::_thesis: ( not n in the Arrows of (AllIso C) . i or n in the Arrows of (AllIso (AllMono C)) . i ) assume A17: n in the Arrows of (AllIso C) . i ; ::_thesis: n in the Arrows of (AllIso (AllMono C)) . i reconsider n2 = n as Morphism of p1,p2 by A9, A17; the Arrows of (AllIso C) cc= the Arrows of (AllMono C) by A5, ALTCAT_2:def_11; then A18: the Arrows of (AllIso C) . i c= the Arrows of (AllMono C) . i by A3, A7, ALTCAT_2:def_2; then reconsider n1 = n as Morphism of o1,o2 by A9, A17; A19: n2 " in <^p2,p1^> by A9, A17, Th52; n2 is iso by A9, A17, Th52; then n1 is iso by A5, A9, A17, A19, Th40; then n in the Arrows of (AllIso (AllMono C)) . (o1,o2) by A9, A17, A18, A19, A16, Def5; hence n in the Arrows of (AllIso (AllMono C)) . i by A9; ::_thesis: verum end; end; then the Arrows of (AllIso (AllMono C)) = the Arrows of (AllIso C) by A2, A3, A4, PBOOLE:3; then AllIso (AllMono C) is SubCatStr of AllIso C by A2, A3, A4, A1, ALTCAT_2:24; hence AllIso (AllMono C) = AllIso C by A2, A3, A4, A6, ALTCAT_2:25, PBOOLE:3; ::_thesis: verum end; theorem :: ALTCAT_4:57 for C being category holds AllIso (AllEpi C) = AllIso C proof let C be category; ::_thesis: AllIso (AllEpi C) = AllIso C A1: AllIso (AllEpi C) is non empty transitive SubCatStr of C by ALTCAT_2:21; A2: the carrier of (AllIso (AllEpi C)) = the carrier of (AllEpi C) by Def5; A3: the carrier of (AllIso C) = the carrier of C by Def5; A4: the carrier of (AllEpi C) = the carrier of C by Def2; ( AllIso C is non empty subcategory of AllRetr C & AllRetr C is non empty subcategory of AllEpi C ) by Th41, Th44; then A5: AllIso C is non empty subcategory of AllEpi C by Th36; A6: now__::_thesis:_for_i_being_set_st_i_in_[:_the_carrier_of_C,_the_carrier_of_C:]_holds_ the_Arrows_of_(AllIso_(AllEpi_C))_._i_=_the_Arrows_of_(AllIso_C)_._i let i be set ; ::_thesis: ( i in [: the carrier of C, the carrier of C:] implies the Arrows of (AllIso (AllEpi C)) . i = the Arrows of (AllIso C) . i ) assume A7: i in [: the carrier of C, the carrier of C:] ; ::_thesis: the Arrows of (AllIso (AllEpi C)) . i = the Arrows of (AllIso C) . i then consider o1, o2 being set such that A8: ( o1 in the carrier of C & o2 in the carrier of C ) and A9: i = [o1,o2] by ZFMISC_1:84; reconsider o1 = o1, o2 = o2 as object of (AllEpi C) by A8, Def2; thus the Arrows of (AllIso (AllEpi C)) . i = the Arrows of (AllIso C) . i ::_thesis: verum proof thus the Arrows of (AllIso (AllEpi C)) . i c= the Arrows of (AllIso C) . i :: according to XBOOLE_0:def_10 ::_thesis: the Arrows of (AllIso C) . i c= the Arrows of (AllIso (AllEpi C)) . i proof reconsider r1 = o1, r2 = o2 as object of C by Def2; reconsider q1 = o1, q2 = o2 as object of (AllIso (AllEpi C)) by Def5; A10: <^q2,q1^> c= <^o2,o1^> by ALTCAT_2:31; let n be set ; :: according to TARSKI:def_3 ::_thesis: ( not n in the Arrows of (AllIso (AllEpi C)) . i or n in the Arrows of (AllIso C) . i ) assume A11: n in the Arrows of (AllIso (AllEpi C)) . i ; ::_thesis: n in the Arrows of (AllIso C) . i n in <^q1,q2^> by A9, A11; then A12: <^o2,o1^> <> {} by A10, Th52; then A13: <^r2,r1^> <> {} by ALTCAT_2:31, XBOOLE_1:3; A14: <^q1,q2^> c= <^o1,o2^> by ALTCAT_2:31; then reconsider n2 = n as Morphism of o1,o2 by A9, A11; A15: <^r1,r2^> <> {} by A9, A11, A14, ALTCAT_2:31, XBOOLE_1:3; <^o1,o2^> c= <^r1,r2^> by ALTCAT_2:31; then <^q1,q2^> c= <^r1,r2^> by A14, XBOOLE_1:1; then reconsider n1 = n as Morphism of r1,r2 by A9, A11; n in the Arrows of (AllIso (AllEpi C)) . (q1,q2) by A9, A11; then n2 is iso by Def5; then n1 is iso by A9, A11, A14, A12, Th40; then n in the Arrows of (AllIso C) . (r1,r2) by A15, A13, Def5; hence n in the Arrows of (AllIso C) . i by A9; ::_thesis: verum end; reconsider p1 = o1, p2 = o2 as object of (AllIso C) by A4, Def5; A16: <^p2,p1^> c= <^o2,o1^> by A5, ALTCAT_2:31; let n be set ; :: according to TARSKI:def_3 ::_thesis: ( not n in the Arrows of (AllIso C) . i or n in the Arrows of (AllIso (AllEpi C)) . i ) assume A17: n in the Arrows of (AllIso C) . i ; ::_thesis: n in the Arrows of (AllIso (AllEpi C)) . i reconsider n2 = n as Morphism of p1,p2 by A9, A17; the Arrows of (AllIso C) cc= the Arrows of (AllEpi C) by A5, ALTCAT_2:def_11; then A18: the Arrows of (AllIso C) . i c= the Arrows of (AllEpi C) . i by A3, A7, ALTCAT_2:def_2; then reconsider n1 = n as Morphism of o1,o2 by A9, A17; A19: n2 " in <^p2,p1^> by A9, A17, Th52; n2 is iso by A9, A17, Th52; then n1 is iso by A5, A9, A17, A19, Th40; then n in the Arrows of (AllIso (AllEpi C)) . (o1,o2) by A9, A17, A18, A19, A16, Def5; hence n in the Arrows of (AllIso (AllEpi C)) . i by A9; ::_thesis: verum end; end; then the Arrows of (AllIso (AllEpi C)) = the Arrows of (AllIso C) by A2, A3, A4, PBOOLE:3; then AllIso (AllEpi C) is SubCatStr of AllIso C by A2, A3, A4, A1, ALTCAT_2:24; hence AllIso (AllEpi C) = AllIso C by A2, A3, A4, A6, ALTCAT_2:25, PBOOLE:3; ::_thesis: verum end; theorem :: ALTCAT_4:58 for C being category holds AllIso (AllRetr C) = AllIso C proof let C be category; ::_thesis: AllIso (AllRetr C) = AllIso C A1: AllIso (AllRetr C) is non empty transitive SubCatStr of C by ALTCAT_2:21; A2: the carrier of (AllIso (AllRetr C)) = the carrier of (AllRetr C) by Def5; A3: the carrier of (AllIso C) = the carrier of C by Def5; A4: the carrier of (AllRetr C) = the carrier of C by Def3; A5: AllIso C is non empty subcategory of AllRetr C by Th41; A6: now__::_thesis:_for_i_being_set_st_i_in_[:_the_carrier_of_C,_the_carrier_of_C:]_holds_ the_Arrows_of_(AllIso_(AllRetr_C))_._i_=_the_Arrows_of_(AllIso_C)_._i let i be set ; ::_thesis: ( i in [: the carrier of C, the carrier of C:] implies the Arrows of (AllIso (AllRetr C)) . i = the Arrows of (AllIso C) . i ) assume A7: i in [: the carrier of C, the carrier of C:] ; ::_thesis: the Arrows of (AllIso (AllRetr C)) . i = the Arrows of (AllIso C) . i then consider o1, o2 being set such that A8: ( o1 in the carrier of C & o2 in the carrier of C ) and A9: i = [o1,o2] by ZFMISC_1:84; reconsider o1 = o1, o2 = o2 as object of (AllRetr C) by A8, Def3; thus the Arrows of (AllIso (AllRetr C)) . i = the Arrows of (AllIso C) . i ::_thesis: verum proof thus the Arrows of (AllIso (AllRetr C)) . i c= the Arrows of (AllIso C) . i :: according to XBOOLE_0:def_10 ::_thesis: the Arrows of (AllIso C) . i c= the Arrows of (AllIso (AllRetr C)) . i proof reconsider r1 = o1, r2 = o2 as object of C by Def3; reconsider q1 = o1, q2 = o2 as object of (AllIso (AllRetr C)) by Def5; A10: <^q2,q1^> c= <^o2,o1^> by ALTCAT_2:31; let n be set ; :: according to TARSKI:def_3 ::_thesis: ( not n in the Arrows of (AllIso (AllRetr C)) . i or n in the Arrows of (AllIso C) . i ) assume A11: n in the Arrows of (AllIso (AllRetr C)) . i ; ::_thesis: n in the Arrows of (AllIso C) . i n in <^q1,q2^> by A9, A11; then A12: <^o2,o1^> <> {} by A10, Th52; then A13: <^r2,r1^> <> {} by ALTCAT_2:31, XBOOLE_1:3; A14: <^q1,q2^> c= <^o1,o2^> by ALTCAT_2:31; then reconsider n2 = n as Morphism of o1,o2 by A9, A11; A15: <^r1,r2^> <> {} by A9, A11, A14, ALTCAT_2:31, XBOOLE_1:3; <^o1,o2^> c= <^r1,r2^> by ALTCAT_2:31; then <^q1,q2^> c= <^r1,r2^> by A14, XBOOLE_1:1; then reconsider n1 = n as Morphism of r1,r2 by A9, A11; n in the Arrows of (AllIso (AllRetr C)) . (q1,q2) by A9, A11; then n2 is iso by Def5; then n1 is iso by A9, A11, A14, A12, Th40; then n in the Arrows of (AllIso C) . (r1,r2) by A15, A13, Def5; hence n in the Arrows of (AllIso C) . i by A9; ::_thesis: verum end; reconsider p1 = o1, p2 = o2 as object of (AllIso C) by A4, Def5; A16: <^p2,p1^> c= <^o2,o1^> by A5, ALTCAT_2:31; let n be set ; :: according to TARSKI:def_3 ::_thesis: ( not n in the Arrows of (AllIso C) . i or n in the Arrows of (AllIso (AllRetr C)) . i ) assume A17: n in the Arrows of (AllIso C) . i ; ::_thesis: n in the Arrows of (AllIso (AllRetr C)) . i reconsider n2 = n as Morphism of p1,p2 by A9, A17; the Arrows of (AllIso C) cc= the Arrows of (AllRetr C) by A5, ALTCAT_2:def_11; then A18: the Arrows of (AllIso C) . i c= the Arrows of (AllRetr C) . i by A3, A7, ALTCAT_2:def_2; then reconsider n1 = n as Morphism of o1,o2 by A9, A17; A19: n2 " in <^p2,p1^> by A9, A17, Th52; n2 is iso by A9, A17, Th52; then n1 is iso by A5, A9, A17, A19, Th40; then n in the Arrows of (AllIso (AllRetr C)) . (o1,o2) by A9, A17, A18, A19, A16, Def5; hence n in the Arrows of (AllIso (AllRetr C)) . i by A9; ::_thesis: verum end; end; then the Arrows of (AllIso (AllRetr C)) = the Arrows of (AllIso C) by A2, A3, A4, PBOOLE:3; then AllIso (AllRetr C) is SubCatStr of AllIso C by A2, A3, A4, A1, ALTCAT_2:24; hence AllIso (AllRetr C) = AllIso C by A2, A3, A4, A6, ALTCAT_2:25, PBOOLE:3; ::_thesis: verum end; theorem :: ALTCAT_4:59 for C being category holds AllIso (AllCoretr C) = AllIso C proof let C be category; ::_thesis: AllIso (AllCoretr C) = AllIso C A1: AllIso (AllCoretr C) is non empty transitive SubCatStr of C by ALTCAT_2:21; A2: the carrier of (AllIso (AllCoretr C)) = the carrier of (AllCoretr C) by Def5; A3: the carrier of (AllIso C) = the carrier of C by Def5; A4: the carrier of (AllCoretr C) = the carrier of C by Def4; A5: AllIso C is non empty subcategory of AllCoretr C by Th42; A6: now__::_thesis:_for_i_being_set_st_i_in_[:_the_carrier_of_C,_the_carrier_of_C:]_holds_ the_Arrows_of_(AllIso_(AllCoretr_C))_._i_=_the_Arrows_of_(AllIso_C)_._i let i be set ; ::_thesis: ( i in [: the carrier of C, the carrier of C:] implies the Arrows of (AllIso (AllCoretr C)) . i = the Arrows of (AllIso C) . i ) assume A7: i in [: the carrier of C, the carrier of C:] ; ::_thesis: the Arrows of (AllIso (AllCoretr C)) . i = the Arrows of (AllIso C) . i then consider o1, o2 being set such that A8: ( o1 in the carrier of C & o2 in the carrier of C ) and A9: i = [o1,o2] by ZFMISC_1:84; reconsider o1 = o1, o2 = o2 as object of (AllCoretr C) by A8, Def4; thus the Arrows of (AllIso (AllCoretr C)) . i = the Arrows of (AllIso C) . i ::_thesis: verum proof thus the Arrows of (AllIso (AllCoretr C)) . i c= the Arrows of (AllIso C) . i :: according to XBOOLE_0:def_10 ::_thesis: the Arrows of (AllIso C) . i c= the Arrows of (AllIso (AllCoretr C)) . i proof reconsider r1 = o1, r2 = o2 as object of C by Def4; reconsider q1 = o1, q2 = o2 as object of (AllIso (AllCoretr C)) by Def5; A10: <^q2,q1^> c= <^o2,o1^> by ALTCAT_2:31; let n be set ; :: according to TARSKI:def_3 ::_thesis: ( not n in the Arrows of (AllIso (AllCoretr C)) . i or n in the Arrows of (AllIso C) . i ) assume A11: n in the Arrows of (AllIso (AllCoretr C)) . i ; ::_thesis: n in the Arrows of (AllIso C) . i n in <^q1,q2^> by A9, A11; then A12: <^o2,o1^> <> {} by A10, Th52; then A13: <^r2,r1^> <> {} by ALTCAT_2:31, XBOOLE_1:3; A14: <^q1,q2^> c= <^o1,o2^> by ALTCAT_2:31; then reconsider n2 = n as Morphism of o1,o2 by A9, A11; A15: <^r1,r2^> <> {} by A9, A11, A14, ALTCAT_2:31, XBOOLE_1:3; <^o1,o2^> c= <^r1,r2^> by ALTCAT_2:31; then <^q1,q2^> c= <^r1,r2^> by A14, XBOOLE_1:1; then reconsider n1 = n as Morphism of r1,r2 by A9, A11; n in the Arrows of (AllIso (AllCoretr C)) . (q1,q2) by A9, A11; then n2 is iso by Def5; then n1 is iso by A9, A11, A14, A12, Th40; then n in the Arrows of (AllIso C) . (r1,r2) by A15, A13, Def5; hence n in the Arrows of (AllIso C) . i by A9; ::_thesis: verum end; reconsider p1 = o1, p2 = o2 as object of (AllIso C) by A4, Def5; A16: <^p2,p1^> c= <^o2,o1^> by A5, ALTCAT_2:31; let n be set ; :: according to TARSKI:def_3 ::_thesis: ( not n in the Arrows of (AllIso C) . i or n in the Arrows of (AllIso (AllCoretr C)) . i ) assume A17: n in the Arrows of (AllIso C) . i ; ::_thesis: n in the Arrows of (AllIso (AllCoretr C)) . i reconsider n2 = n as Morphism of p1,p2 by A9, A17; the Arrows of (AllIso C) cc= the Arrows of (AllCoretr C) by A5, ALTCAT_2:def_11; then A18: the Arrows of (AllIso C) . i c= the Arrows of (AllCoretr C) . i by A3, A7, ALTCAT_2:def_2; then reconsider n1 = n as Morphism of o1,o2 by A9, A17; A19: n2 " in <^p2,p1^> by A9, A17, Th52; n2 is iso by A9, A17, Th52; then n1 is iso by A5, A9, A17, A19, Th40; then n in the Arrows of (AllIso (AllCoretr C)) . (o1,o2) by A9, A17, A18, A19, A16, Def5; hence n in the Arrows of (AllIso (AllCoretr C)) . i by A9; ::_thesis: verum end; end; then the Arrows of (AllIso (AllCoretr C)) = the Arrows of (AllIso C) by A2, A3, A4, PBOOLE:3; then AllIso (AllCoretr C) is SubCatStr of AllIso C by A2, A3, A4, A1, ALTCAT_2:24; hence AllIso (AllCoretr C) = AllIso C by A2, A3, A4, A6, ALTCAT_2:25, PBOOLE:3; ::_thesis: verum end;