:: YELLOW20 semantic presentation begin theorem Th1: :: YELLOW20:1 for A, B being non empty transitive with_units AltCatStr for F being reflexive feasible FunctorStr over A,B st F is coreflexive & F is bijective holds for a being object of A for b being object of B holds ( F . a = b iff (F ") . b = a ) proof let A, B be non empty transitive with_units AltCatStr ; ::_thesis: for F being reflexive feasible FunctorStr over A,B st F is coreflexive & F is bijective holds for a being object of A for b being object of B holds ( F . a = b iff (F ") . b = a ) let F be reflexive feasible FunctorStr over A,B; ::_thesis: ( F is coreflexive & F is bijective implies for a being object of A for b being object of B holds ( F . a = b iff (F ") . b = a ) ) assume A1: ( F is coreflexive & F is bijective ) ; ::_thesis: for a being object of A for b being object of B holds ( F . a = b iff (F ") . b = a ) reconsider G = F " as reflexive feasible FunctorStr over B,A by A1, FUNCTOR0:35, FUNCTOR0:36; let a be object of A; ::_thesis: for b being object of B holds ( F . a = b iff (F ") . b = a ) let b be object of B; ::_thesis: ( F . a = b iff (F ") . b = a ) (F ") * F = id A by A1, FUNCTOR1:19; then a = ((F ") * F) . a by FUNCTOR0:29; hence ( F . a = b implies (F ") . b = a ) by FUNCTOR0:33; ::_thesis: ( (F ") . b = a implies F . a = b ) F * G = id B by A1, FUNCTOR1:18; then b = (F * G) . b by FUNCTOR0:29; hence ( (F ") . b = a implies F . a = b ) by FUNCTOR0:33; ::_thesis: verum end; theorem Th2: :: YELLOW20:2 for A, B being non empty transitive with_units AltCatStr for F being feasible Covariant FunctorStr over A,B for G being feasible Covariant FunctorStr over B,A st F is bijective & G = F " holds for a1, a2 being object of A st <^a1,a2^> <> {} holds for f being Morphism of a1,a2 for g being Morphism of (F . a1),(F . a2) holds ( F . f = g iff G . g = f ) proof let A, B be non empty transitive with_units AltCatStr ; ::_thesis: for F being feasible Covariant FunctorStr over A,B for G being feasible Covariant FunctorStr over B,A st F is bijective & G = F " holds for a1, a2 being object of A st <^a1,a2^> <> {} holds for f being Morphism of a1,a2 for g being Morphism of (F . a1),(F . a2) holds ( F . f = g iff G . g = f ) let F be feasible Covariant FunctorStr over A,B; ::_thesis: for G being feasible Covariant FunctorStr over B,A st F is bijective & G = F " holds for a1, a2 being object of A st <^a1,a2^> <> {} holds for f being Morphism of a1,a2 for g being Morphism of (F . a1),(F . a2) holds ( F . f = g iff G . g = f ) let G be feasible Covariant FunctorStr over B,A; ::_thesis: ( F is bijective & G = F " implies for a1, a2 being object of A st <^a1,a2^> <> {} holds for f being Morphism of a1,a2 for g being Morphism of (F . a1),(F . a2) holds ( F . f = g iff G . g = f ) ) assume that A1: F is bijective and A2: G = F " ; ::_thesis: for a1, a2 being object of A st <^a1,a2^> <> {} holds for f being Morphism of a1,a2 for g being Morphism of (F . a1),(F . a2) holds ( F . f = g iff G . g = f ) let a1, a2 be object of A; ::_thesis: ( <^a1,a2^> <> {} implies for f being Morphism of a1,a2 for g being Morphism of (F . a1),(F . a2) holds ( F . f = g iff G . g = f ) ) assume A3: <^a1,a2^> <> {} ; ::_thesis: for f being Morphism of a1,a2 for g being Morphism of (F . a1),(F . a2) holds ( F . f = g iff G . g = f ) A4: <^(F . a1),(F . a2)^> <> {} by A3, FUNCTOR0:def_18; F is surjective by A1, FUNCTOR0:def_35; then F is onto by FUNCTOR0:def_34; then ( F is reflexive & F is coreflexive ) by FUNCTOR0:44; then A5: ( G . (F . a1) = a1 & G . (F . a2) = a2 ) by A1, A2, Th1; let f be Morphism of a1,a2; ::_thesis: for g being Morphism of (F . a1),(F . a2) holds ( F . f = g iff G . g = f ) let g be Morphism of (F . a1),(F . a2); ::_thesis: ( F . f = g iff G . g = f ) (F ") * F = id A by A1, FUNCTOR1:19; then f = (G * F) . f by A2, A3, FUNCTOR0:31; hence ( F . f = g implies G . g = f ) by A3, FUNCTOR3:6; ::_thesis: ( G . g = f implies F . f = g ) F * G = id B by A1, A2, FUNCTOR1:18; then g = (F * G) . g by A4, FUNCTOR0:31; hence ( G . g = f implies F . f = g ) by A4, A5, FUNCTOR3:6; ::_thesis: verum end; theorem Th3: :: YELLOW20:3 for A, B being non empty transitive with_units AltCatStr for F being feasible Contravariant FunctorStr over A,B for G being feasible Contravariant FunctorStr over B,A st F is bijective & G = F " holds for a1, a2 being object of A st <^a1,a2^> <> {} holds for f being Morphism of a1,a2 for g being Morphism of (F . a2),(F . a1) holds ( F . f = g iff G . g = f ) proof let A, B be non empty transitive with_units AltCatStr ; ::_thesis: for F being feasible Contravariant FunctorStr over A,B for G being feasible Contravariant FunctorStr over B,A st F is bijective & G = F " holds for a1, a2 being object of A st <^a1,a2^> <> {} holds for f being Morphism of a1,a2 for g being Morphism of (F . a2),(F . a1) holds ( F . f = g iff G . g = f ) let F be feasible Contravariant FunctorStr over A,B; ::_thesis: for G being feasible Contravariant FunctorStr over B,A st F is bijective & G = F " holds for a1, a2 being object of A st <^a1,a2^> <> {} holds for f being Morphism of a1,a2 for g being Morphism of (F . a2),(F . a1) holds ( F . f = g iff G . g = f ) let G be feasible Contravariant FunctorStr over B,A; ::_thesis: ( F is bijective & G = F " implies for a1, a2 being object of A st <^a1,a2^> <> {} holds for f being Morphism of a1,a2 for g being Morphism of (F . a2),(F . a1) holds ( F . f = g iff G . g = f ) ) assume that A1: F is bijective and A2: G = F " ; ::_thesis: for a1, a2 being object of A st <^a1,a2^> <> {} holds for f being Morphism of a1,a2 for g being Morphism of (F . a2),(F . a1) holds ( F . f = g iff G . g = f ) let a1, a2 be object of A; ::_thesis: ( <^a1,a2^> <> {} implies for f being Morphism of a1,a2 for g being Morphism of (F . a2),(F . a1) holds ( F . f = g iff G . g = f ) ) assume A3: <^a1,a2^> <> {} ; ::_thesis: for f being Morphism of a1,a2 for g being Morphism of (F . a2),(F . a1) holds ( F . f = g iff G . g = f ) A4: <^(F . a2),(F . a1)^> <> {} by A3, FUNCTOR0:def_19; F is surjective by A1, FUNCTOR0:def_35; then F is onto by FUNCTOR0:def_34; then ( F is reflexive & F is coreflexive ) by FUNCTOR0:45; then A5: ( G . (F . a1) = a1 & G . (F . a2) = a2 ) by A1, A2, Th1; let f be Morphism of a1,a2; ::_thesis: for g being Morphism of (F . a2),(F . a1) holds ( F . f = g iff G . g = f ) let g be Morphism of (F . a2),(F . a1); ::_thesis: ( F . f = g iff G . g = f ) (F ") * F = id A by A1, FUNCTOR1:19; then f = (G * F) . f by A2, A3, FUNCTOR0:31; hence ( F . f = g implies G . g = f ) by A3, FUNCTOR3:7; ::_thesis: ( G . g = f implies F . f = g ) F * G = id B by A1, A2, FUNCTOR1:18; then g = (F * G) . g by A4, FUNCTOR0:31; hence ( G . g = f implies F . f = g ) by A4, A5, FUNCTOR3:7; ::_thesis: verum end; theorem Th4: :: YELLOW20:4 for A, B being category for F being Functor of A,B st F is bijective holds for G being Functor of B,A st F * G = id B holds FunctorStr(# the ObjectMap of G, the MorphMap of G #) = F " proof let A, B be category; ::_thesis: for F being Functor of A,B st F is bijective holds for G being Functor of B,A st F * G = id B holds FunctorStr(# the ObjectMap of G, the MorphMap of G #) = F " let F be Functor of A,B; ::_thesis: ( F is bijective implies for G being Functor of B,A st F * G = id B holds FunctorStr(# the ObjectMap of G, the MorphMap of G #) = F " ) assume A1: F is bijective ; ::_thesis: for G being Functor of B,A st F * G = id B holds FunctorStr(# the ObjectMap of G, the MorphMap of G #) = F " then reconsider FF = F " as feasible FunctorStr over B,A by FUNCTOR0:35; A2: (F ") * F = id A by A1, FUNCTOR1:19; let G be Functor of B,A; ::_thesis: ( F * G = id B implies FunctorStr(# the ObjectMap of G, the MorphMap of G #) = F " ) assume F * G = id B ; ::_thesis: FunctorStr(# the ObjectMap of G, the MorphMap of G #) = F " then (id A) * G = FF * (id B) by A2, FUNCTOR0:32 .= F " by FUNCTOR3:5 ; hence FunctorStr(# the ObjectMap of G, the MorphMap of G #) = F " by FUNCTOR3:4; ::_thesis: verum end; theorem Th5: :: YELLOW20:5 for A, B being category for F being Functor of A,B st F is bijective holds for G being Functor of B,A st G * F = id A holds FunctorStr(# the ObjectMap of G, the MorphMap of G #) = F " proof let A, B be category; ::_thesis: for F being Functor of A,B st F is bijective holds for G being Functor of B,A st G * F = id A holds FunctorStr(# the ObjectMap of G, the MorphMap of G #) = F " let F be Functor of A,B; ::_thesis: ( F is bijective implies for G being Functor of B,A st G * F = id A holds FunctorStr(# the ObjectMap of G, the MorphMap of G #) = F " ) assume A1: F is bijective ; ::_thesis: for G being Functor of B,A st G * F = id A holds FunctorStr(# the ObjectMap of G, the MorphMap of G #) = F " then reconsider FF = F " as feasible FunctorStr over B,A by FUNCTOR0:35; A2: F * FF = id B by A1, FUNCTOR1:18; let G be Functor of B,A; ::_thesis: ( G * F = id A implies FunctorStr(# the ObjectMap of G, the MorphMap of G #) = F " ) assume G * F = id A ; ::_thesis: FunctorStr(# the ObjectMap of G, the MorphMap of G #) = F " then (id A) * FF = G * (id B) by A2, FUNCTOR0:32 .= FunctorStr(# the ObjectMap of G, the MorphMap of G #) by FUNCTOR3:5 ; hence FunctorStr(# the ObjectMap of G, the MorphMap of G #) = F " by FUNCTOR3:4; ::_thesis: verum end; theorem :: YELLOW20:6 for A, B being category for F being covariant Functor of A,B st F is bijective holds for G being covariant Functor of B,A st ( for b being object of B holds F . (G . b) = b ) & ( for a, b being object of B st <^a,b^> <> {} holds for f being Morphism of a,b holds F . (G . f) = f ) holds FunctorStr(# the ObjectMap of G, the MorphMap of G #) = F " proof let A, B be category; ::_thesis: for F being covariant Functor of A,B st F is bijective holds for G being covariant Functor of B,A st ( for b being object of B holds F . (G . b) = b ) & ( for a, b being object of B st <^a,b^> <> {} holds for f being Morphism of a,b holds F . (G . f) = f ) holds FunctorStr(# the ObjectMap of G, the MorphMap of G #) = F " let F be covariant Functor of A,B; ::_thesis: ( F is bijective implies for G being covariant Functor of B,A st ( for b being object of B holds F . (G . b) = b ) & ( for a, b being object of B st <^a,b^> <> {} holds for f being Morphism of a,b holds F . (G . f) = f ) holds FunctorStr(# the ObjectMap of G, the MorphMap of G #) = F " ) assume A1: F is bijective ; ::_thesis: for G being covariant Functor of B,A st ( for b being object of B holds F . (G . b) = b ) & ( for a, b being object of B st <^a,b^> <> {} holds for f being Morphism of a,b holds F . (G . f) = f ) holds FunctorStr(# the ObjectMap of G, the MorphMap of G #) = F " let G be covariant Functor of B,A; ::_thesis: ( ( for b being object of B holds F . (G . b) = b ) & ( for a, b being object of B st <^a,b^> <> {} holds for f being Morphism of a,b holds F . (G . f) = f ) implies FunctorStr(# the ObjectMap of G, the MorphMap of G #) = F " ) assume that A2: for b being object of B holds F . (G . b) = b and A3: for a, b being object of B st <^a,b^> <> {} holds for f being Morphism of a,b holds F . (G . f) = f ; ::_thesis: FunctorStr(# the ObjectMap of G, the MorphMap of G #) = F " A4: now__::_thesis:_for_a,_b_being_object_of_B_st_<^a,b^>_<>_{}_holds_ for_f_being_Morphism_of_a,b_holds_(F_*_G)_._f_=_(id_B)_._f let a, b be object of B; ::_thesis: ( <^a,b^> <> {} implies for f being Morphism of a,b holds (F * G) . f = (id B) . f ) assume A5: <^a,b^> <> {} ; ::_thesis: for f being Morphism of a,b holds (F * G) . f = (id B) . f let f be Morphism of a,b; ::_thesis: (F * G) . f = (id B) . f thus (F * G) . f = F . (G . f) by A5, FUNCTOR3:6 .= f by A3, A5 .= (id B) . f by A5, FUNCTOR0:31 ; ::_thesis: verum end; now__::_thesis:_for_b_being_object_of_B_holds_(F_*_G)_._b_=_(id_B)_._b let b be object of B; ::_thesis: (F * G) . b = (id B) . b thus (F * G) . b = F . (G . b) by FUNCTOR0:33 .= b by A2 .= (id B) . b by FUNCTOR0:29 ; ::_thesis: verum end; hence FunctorStr(# the ObjectMap of G, the MorphMap of G #) = F " by A1, A4, Th4, YELLOW18:1; ::_thesis: verum end; theorem :: YELLOW20:7 for A, B being category for F being contravariant Functor of A,B st F is bijective holds for G being contravariant Functor of B,A st ( for b being object of B holds F . (G . b) = b ) & ( for a, b being object of B st <^a,b^> <> {} holds for f being Morphism of a,b holds F . (G . f) = f ) holds FunctorStr(# the ObjectMap of G, the MorphMap of G #) = F " proof let A, B be category; ::_thesis: for F being contravariant Functor of A,B st F is bijective holds for G being contravariant Functor of B,A st ( for b being object of B holds F . (G . b) = b ) & ( for a, b being object of B st <^a,b^> <> {} holds for f being Morphism of a,b holds F . (G . f) = f ) holds FunctorStr(# the ObjectMap of G, the MorphMap of G #) = F " let F be contravariant Functor of A,B; ::_thesis: ( F is bijective implies for G being contravariant Functor of B,A st ( for b being object of B holds F . (G . b) = b ) & ( for a, b being object of B st <^a,b^> <> {} holds for f being Morphism of a,b holds F . (G . f) = f ) holds FunctorStr(# the ObjectMap of G, the MorphMap of G #) = F " ) assume A1: F is bijective ; ::_thesis: for G being contravariant Functor of B,A st ( for b being object of B holds F . (G . b) = b ) & ( for a, b being object of B st <^a,b^> <> {} holds for f being Morphism of a,b holds F . (G . f) = f ) holds FunctorStr(# the ObjectMap of G, the MorphMap of G #) = F " let G be contravariant Functor of B,A; ::_thesis: ( ( for b being object of B holds F . (G . b) = b ) & ( for a, b being object of B st <^a,b^> <> {} holds for f being Morphism of a,b holds F . (G . f) = f ) implies FunctorStr(# the ObjectMap of G, the MorphMap of G #) = F " ) assume that A2: for b being object of B holds F . (G . b) = b and A3: for a, b being object of B st <^a,b^> <> {} holds for f being Morphism of a,b holds F . (G . f) = f ; ::_thesis: FunctorStr(# the ObjectMap of G, the MorphMap of G #) = F " A4: now__::_thesis:_for_a,_b_being_object_of_B_st_<^a,b^>_<>_{}_holds_ for_f_being_Morphism_of_a,b_holds_(F_*_G)_._f_=_(id_B)_._f let a, b be object of B; ::_thesis: ( <^a,b^> <> {} implies for f being Morphism of a,b holds (F * G) . f = (id B) . f ) assume A5: <^a,b^> <> {} ; ::_thesis: for f being Morphism of a,b holds (F * G) . f = (id B) . f let f be Morphism of a,b; ::_thesis: (F * G) . f = (id B) . f thus (F * G) . f = F . (G . f) by A5, FUNCTOR3:7 .= f by A3, A5 .= (id B) . f by A5, FUNCTOR0:31 ; ::_thesis: verum end; now__::_thesis:_for_b_being_object_of_B_holds_(F_*_G)_._b_=_(id_B)_._b let b be object of B; ::_thesis: (F * G) . b = (id B) . b thus (F * G) . b = F . (G . b) by FUNCTOR0:33 .= b by A2 .= (id B) . b by FUNCTOR0:29 ; ::_thesis: verum end; hence FunctorStr(# the ObjectMap of G, the MorphMap of G #) = F " by A1, A4, Th4, YELLOW18:1; ::_thesis: verum end; theorem :: YELLOW20:8 for A, B being category for F being covariant Functor of A,B st F is bijective holds for G being covariant Functor of B,A st ( for a being object of A holds G . (F . a) = a ) & ( for a, b being object of A st <^a,b^> <> {} holds for f being Morphism of a,b holds G . (F . f) = f ) holds FunctorStr(# the ObjectMap of G, the MorphMap of G #) = F " proof let A, B be category; ::_thesis: for F being covariant Functor of A,B st F is bijective holds for G being covariant Functor of B,A st ( for a being object of A holds G . (F . a) = a ) & ( for a, b being object of A st <^a,b^> <> {} holds for f being Morphism of a,b holds G . (F . f) = f ) holds FunctorStr(# the ObjectMap of G, the MorphMap of G #) = F " let F be covariant Functor of A,B; ::_thesis: ( F is bijective implies for G being covariant Functor of B,A st ( for a being object of A holds G . (F . a) = a ) & ( for a, b being object of A st <^a,b^> <> {} holds for f being Morphism of a,b holds G . (F . f) = f ) holds FunctorStr(# the ObjectMap of G, the MorphMap of G #) = F " ) assume A1: F is bijective ; ::_thesis: for G being covariant Functor of B,A st ( for a being object of A holds G . (F . a) = a ) & ( for a, b being object of A st <^a,b^> <> {} holds for f being Morphism of a,b holds G . (F . f) = f ) holds FunctorStr(# the ObjectMap of G, the MorphMap of G #) = F " let G be covariant Functor of B,A; ::_thesis: ( ( for a being object of A holds G . (F . a) = a ) & ( for a, b being object of A st <^a,b^> <> {} holds for f being Morphism of a,b holds G . (F . f) = f ) implies FunctorStr(# the ObjectMap of G, the MorphMap of G #) = F " ) assume that A2: for b being object of A holds G . (F . b) = b and A3: for a, b being object of A st <^a,b^> <> {} holds for f being Morphism of a,b holds G . (F . f) = f ; ::_thesis: FunctorStr(# the ObjectMap of G, the MorphMap of G #) = F " A4: now__::_thesis:_for_a,_b_being_object_of_A_st_<^a,b^>_<>_{}_holds_ for_f_being_Morphism_of_a,b_holds_(G_*_F)_._f_=_(id_A)_._f let a, b be object of A; ::_thesis: ( <^a,b^> <> {} implies for f being Morphism of a,b holds (G * F) . f = (id A) . f ) assume A5: <^a,b^> <> {} ; ::_thesis: for f being Morphism of a,b holds (G * F) . f = (id A) . f let f be Morphism of a,b; ::_thesis: (G * F) . f = (id A) . f thus (G * F) . f = G . (F . f) by A5, FUNCTOR3:6 .= f by A3, A5 .= (id A) . f by A5, FUNCTOR0:31 ; ::_thesis: verum end; now__::_thesis:_for_b_being_object_of_A_holds_(G_*_F)_._b_=_(id_A)_._b let b be object of A; ::_thesis: (G * F) . b = (id A) . b thus (G * F) . b = G . (F . b) by FUNCTOR0:33 .= b by A2 .= (id A) . b by FUNCTOR0:29 ; ::_thesis: verum end; hence FunctorStr(# the ObjectMap of G, the MorphMap of G #) = F " by A1, A4, Th5, YELLOW18:1; ::_thesis: verum end; theorem :: YELLOW20:9 for A, B being category for F being contravariant Functor of A,B st F is bijective holds for G being contravariant Functor of B,A st ( for a being object of A holds G . (F . a) = a ) & ( for a, b being object of A st <^a,b^> <> {} holds for f being Morphism of a,b holds G . (F . f) = f ) holds FunctorStr(# the ObjectMap of G, the MorphMap of G #) = F " proof let A, B be category; ::_thesis: for F being contravariant Functor of A,B st F is bijective holds for G being contravariant Functor of B,A st ( for a being object of A holds G . (F . a) = a ) & ( for a, b being object of A st <^a,b^> <> {} holds for f being Morphism of a,b holds G . (F . f) = f ) holds FunctorStr(# the ObjectMap of G, the MorphMap of G #) = F " let F be contravariant Functor of A,B; ::_thesis: ( F is bijective implies for G being contravariant Functor of B,A st ( for a being object of A holds G . (F . a) = a ) & ( for a, b being object of A st <^a,b^> <> {} holds for f being Morphism of a,b holds G . (F . f) = f ) holds FunctorStr(# the ObjectMap of G, the MorphMap of G #) = F " ) assume A1: F is bijective ; ::_thesis: for G being contravariant Functor of B,A st ( for a being object of A holds G . (F . a) = a ) & ( for a, b being object of A st <^a,b^> <> {} holds for f being Morphism of a,b holds G . (F . f) = f ) holds FunctorStr(# the ObjectMap of G, the MorphMap of G #) = F " let G be contravariant Functor of B,A; ::_thesis: ( ( for a being object of A holds G . (F . a) = a ) & ( for a, b being object of A st <^a,b^> <> {} holds for f being Morphism of a,b holds G . (F . f) = f ) implies FunctorStr(# the ObjectMap of G, the MorphMap of G #) = F " ) assume that A2: for b being object of A holds G . (F . b) = b and A3: for a, b being object of A st <^a,b^> <> {} holds for f being Morphism of a,b holds G . (F . f) = f ; ::_thesis: FunctorStr(# the ObjectMap of G, the MorphMap of G #) = F " A4: now__::_thesis:_for_a,_b_being_object_of_A_st_<^a,b^>_<>_{}_holds_ for_f_being_Morphism_of_a,b_holds_(G_*_F)_._f_=_(id_A)_._f let a, b be object of A; ::_thesis: ( <^a,b^> <> {} implies for f being Morphism of a,b holds (G * F) . f = (id A) . f ) assume A5: <^a,b^> <> {} ; ::_thesis: for f being Morphism of a,b holds (G * F) . f = (id A) . f let f be Morphism of a,b; ::_thesis: (G * F) . f = (id A) . f thus (G * F) . f = G . (F . f) by A5, FUNCTOR3:7 .= f by A3, A5 .= (id A) . f by A5, FUNCTOR0:31 ; ::_thesis: verum end; now__::_thesis:_for_b_being_object_of_A_holds_(G_*_F)_._b_=_(id_A)_._b let b be object of A; ::_thesis: (G * F) . b = (id A) . b thus (G * F) . b = G . (F . b) by FUNCTOR0:33 .= b by A2 .= (id A) . b by FUNCTOR0:29 ; ::_thesis: verum end; hence FunctorStr(# the ObjectMap of G, the MorphMap of G #) = F " by A1, A4, Th5, YELLOW18:1; ::_thesis: verum end; begin definition let A, B be AltCatStr ; predA,B have_the_same_composition means :Def1: :: YELLOW20:def 1 for a1, a2, a3 being set holds the Comp of A . [a1,a2,a3] tolerates the Comp of B . [a1,a2,a3]; symmetry for A, B being AltCatStr st ( for a1, a2, a3 being set holds the Comp of A . [a1,a2,a3] tolerates the Comp of B . [a1,a2,a3] ) holds for a1, a2, a3 being set holds the Comp of B . [a1,a2,a3] tolerates the Comp of A . [a1,a2,a3] ; end; :: deftheorem Def1 defines have_the_same_composition YELLOW20:def_1_:_ for A, B being AltCatStr holds ( A,B have_the_same_composition iff for a1, a2, a3 being set holds the Comp of A . [a1,a2,a3] tolerates the Comp of B . [a1,a2,a3] ); theorem Th10: :: YELLOW20:10 for A, B being AltCatStr holds ( A,B have_the_same_composition iff for a1, a2, a3, x being set st x in dom ( the Comp of A . [a1,a2,a3]) & x in dom ( the Comp of B . [a1,a2,a3]) holds ( the Comp of A . [a1,a2,a3]) . x = ( the Comp of B . [a1,a2,a3]) . x ) proof let A, B be AltCatStr ; ::_thesis: ( A,B have_the_same_composition iff for a1, a2, a3, x being set st x in dom ( the Comp of A . [a1,a2,a3]) & x in dom ( the Comp of B . [a1,a2,a3]) holds ( the Comp of A . [a1,a2,a3]) . x = ( the Comp of B . [a1,a2,a3]) . x ) hereby ::_thesis: ( ( for a1, a2, a3, x being set st x in dom ( the Comp of A . [a1,a2,a3]) & x in dom ( the Comp of B . [a1,a2,a3]) holds ( the Comp of A . [a1,a2,a3]) . x = ( the Comp of B . [a1,a2,a3]) . x ) implies A,B have_the_same_composition ) assume A1: A,B have_the_same_composition ; ::_thesis: for a1, a2, a3, x being set st x in dom ( the Comp of A . [a1,a2,a3]) & x in dom ( the Comp of B . [a1,a2,a3]) holds ( the Comp of A . [a1,a2,a3]) . x = ( the Comp of B . [a1,a2,a3]) . x let a1, a2, a3, x be set ; ::_thesis: ( x in dom ( the Comp of A . [a1,a2,a3]) & x in dom ( the Comp of B . [a1,a2,a3]) implies ( the Comp of A . [a1,a2,a3]) . x = ( the Comp of B . [a1,a2,a3]) . x ) assume ( x in dom ( the Comp of A . [a1,a2,a3]) & x in dom ( the Comp of B . [a1,a2,a3]) ) ; ::_thesis: ( the Comp of A . [a1,a2,a3]) . x = ( the Comp of B . [a1,a2,a3]) . x then A2: x in (dom ( the Comp of A . [a1,a2,a3])) /\ (dom ( the Comp of B . [a1,a2,a3])) by XBOOLE_0:def_4; the Comp of A . [a1,a2,a3] tolerates the Comp of B . [a1,a2,a3] by A1, Def1; hence ( the Comp of A . [a1,a2,a3]) . x = ( the Comp of B . [a1,a2,a3]) . x by A2, PARTFUN1:def_4; ::_thesis: verum end; assume A3: for a1, a2, a3, x being set st x in dom ( the Comp of A . [a1,a2,a3]) & x in dom ( the Comp of B . [a1,a2,a3]) holds ( the Comp of A . [a1,a2,a3]) . x = ( the Comp of B . [a1,a2,a3]) . x ; ::_thesis: A,B have_the_same_composition let a1, a2, a3, x be set ; :: according to PARTFUN1:def_4,YELLOW20:def_1 ::_thesis: ( not x in (proj1 ( the Comp of A . [a1,a2,a3])) /\ (proj1 ( the Comp of B . [a1,a2,a3])) or ( the Comp of A . [a1,a2,a3]) . x = ( the Comp of B . [a1,a2,a3]) . x ) assume x in (dom ( the Comp of A . [a1,a2,a3])) /\ (dom ( the Comp of B . [a1,a2,a3])) ; ::_thesis: ( the Comp of A . [a1,a2,a3]) . x = ( the Comp of B . [a1,a2,a3]) . x then ( x in dom ( the Comp of A . [a1,a2,a3]) & x in dom ( the Comp of B . [a1,a2,a3]) ) by XBOOLE_0:def_4; hence ( the Comp of A . [a1,a2,a3]) . x = ( the Comp of B . [a1,a2,a3]) . x by A3; ::_thesis: verum end; theorem Th11: :: YELLOW20:11 for A, B being non empty transitive AltCatStr holds ( A,B have_the_same_composition iff for a1, a2, a3 being object of A st <^a1,a2^> <> {} & <^a2,a3^> <> {} holds for b1, b2, b3 being object of B st <^b1,b2^> <> {} & <^b2,b3^> <> {} & b1 = a1 & b2 = a2 & b3 = a3 holds for f1 being Morphism of a1,a2 for g1 being Morphism of b1,b2 st g1 = f1 holds for f2 being Morphism of a2,a3 for g2 being Morphism of b2,b3 st g2 = f2 holds f2 * f1 = g2 * g1 ) proof let A, B be non empty transitive AltCatStr ; ::_thesis: ( A,B have_the_same_composition iff for a1, a2, a3 being object of A st <^a1,a2^> <> {} & <^a2,a3^> <> {} holds for b1, b2, b3 being object of B st <^b1,b2^> <> {} & <^b2,b3^> <> {} & b1 = a1 & b2 = a2 & b3 = a3 holds for f1 being Morphism of a1,a2 for g1 being Morphism of b1,b2 st g1 = f1 holds for f2 being Morphism of a2,a3 for g2 being Morphism of b2,b3 st g2 = f2 holds f2 * f1 = g2 * g1 ) hereby ::_thesis: ( ( for a1, a2, a3 being object of A st <^a1,a2^> <> {} & <^a2,a3^> <> {} holds for b1, b2, b3 being object of B st <^b1,b2^> <> {} & <^b2,b3^> <> {} & b1 = a1 & b2 = a2 & b3 = a3 holds for f1 being Morphism of a1,a2 for g1 being Morphism of b1,b2 st g1 = f1 holds for f2 being Morphism of a2,a3 for g2 being Morphism of b2,b3 st g2 = f2 holds f2 * f1 = g2 * g1 ) implies A,B have_the_same_composition ) assume A1: A,B have_the_same_composition ; ::_thesis: for a1, a2, a3 being object of A st <^a1,a2^> <> {} & <^a2,a3^> <> {} holds for b1, b2, b3 being object of B st <^b1,b2^> <> {} & <^b2,b3^> <> {} & b1 = a1 & b2 = a2 & b3 = a3 holds for f1 being Morphism of a1,a2 for g1 being Morphism of b1,b2 st g1 = f1 holds for f2 being Morphism of a2,a3 for g2 being Morphism of b2,b3 st g2 = f2 holds f2 * f1 = g2 * g1 let a1, a2, a3 be object of A; ::_thesis: ( <^a1,a2^> <> {} & <^a2,a3^> <> {} implies for b1, b2, b3 being object of B st <^b1,b2^> <> {} & <^b2,b3^> <> {} & b1 = a1 & b2 = a2 & b3 = a3 holds for f1 being Morphism of a1,a2 for g1 being Morphism of b1,b2 st g1 = f1 holds for f2 being Morphism of a2,a3 for g2 being Morphism of b2,b3 st g2 = f2 holds f2 * f1 = g2 * g1 ) assume A2: ( <^a1,a2^> <> {} & <^a2,a3^> <> {} ) ; ::_thesis: for b1, b2, b3 being object of B st <^b1,b2^> <> {} & <^b2,b3^> <> {} & b1 = a1 & b2 = a2 & b3 = a3 holds for f1 being Morphism of a1,a2 for g1 being Morphism of b1,b2 st g1 = f1 holds for f2 being Morphism of a2,a3 for g2 being Morphism of b2,b3 st g2 = f2 holds f2 * f1 = g2 * g1 let b1, b2, b3 be object of B; ::_thesis: ( <^b1,b2^> <> {} & <^b2,b3^> <> {} & b1 = a1 & b2 = a2 & b3 = a3 implies for f1 being Morphism of a1,a2 for g1 being Morphism of b1,b2 st g1 = f1 holds for f2 being Morphism of a2,a3 for g2 being Morphism of b2,b3 st g2 = f2 holds f2 * f1 = g2 * g1 ) assume that A3: ( <^b1,b2^> <> {} & <^b2,b3^> <> {} ) and A4: ( b1 = a1 & b2 = a2 & b3 = a3 ) ; ::_thesis: for f1 being Morphism of a1,a2 for g1 being Morphism of b1,b2 st g1 = f1 holds for f2 being Morphism of a2,a3 for g2 being Morphism of b2,b3 st g2 = f2 holds f2 * f1 = g2 * g1 let f1 be Morphism of a1,a2; ::_thesis: for g1 being Morphism of b1,b2 st g1 = f1 holds for f2 being Morphism of a2,a3 for g2 being Morphism of b2,b3 st g2 = f2 holds f2 * f1 = g2 * g1 let g1 be Morphism of b1,b2; ::_thesis: ( g1 = f1 implies for f2 being Morphism of a2,a3 for g2 being Morphism of b2,b3 st g2 = f2 holds f2 * f1 = g2 * g1 ) assume A5: g1 = f1 ; ::_thesis: for f2 being Morphism of a2,a3 for g2 being Morphism of b2,b3 st g2 = f2 holds f2 * f1 = g2 * g1 let f2 be Morphism of a2,a3; ::_thesis: for g2 being Morphism of b2,b3 st g2 = f2 holds f2 * f1 = g2 * g1 let g2 be Morphism of b2,b3; ::_thesis: ( g2 = f2 implies f2 * f1 = g2 * g1 ) assume A6: g2 = f2 ; ::_thesis: f2 * f1 = g2 * g1 <^b1,b3^> <> {} by A3, ALTCAT_1:def_2; then dom ( the Comp of B . (b1,b2,b3)) = [:<^b2,b3^>,<^b1,b2^>:] by FUNCT_2:def_1; then A7: [g2,g1] in dom ( the Comp of B . (b1,b2,b3)) by A3, ZFMISC_1:def_2; <^a1,a3^> <> {} by A2, ALTCAT_1:def_2; then dom ( the Comp of A . (a1,a2,a3)) = [:<^a2,a3^>,<^a1,a2^>:] by FUNCT_2:def_1; then A8: [f2,f1] in dom ( the Comp of A . (a1,a2,a3)) by A2, ZFMISC_1:def_2; A9: ( the Comp of A . (a1,a2,a3) = the Comp of A . [a1,a2,a3] & the Comp of B . (b1,b2,b3) = the Comp of B . [b1,b2,b3] ) by MULTOP_1:def_1; thus f2 * f1 = ( the Comp of A . (a1,a2,a3)) . (f2,f1) by A2, ALTCAT_1:def_8 .= ( the Comp of B . (b1,b2,b3)) . (g2,g1) by A1, A4, A5, A6, A9, A8, A7, Th10 .= g2 * g1 by A3, ALTCAT_1:def_8 ; ::_thesis: verum end; assume A10: for a1, a2, a3 being object of A st <^a1,a2^> <> {} & <^a2,a3^> <> {} holds for b1, b2, b3 being object of B st <^b1,b2^> <> {} & <^b2,b3^> <> {} & b1 = a1 & b2 = a2 & b3 = a3 holds for f1 being Morphism of a1,a2 for g1 being Morphism of b1,b2 st g1 = f1 holds for f2 being Morphism of a2,a3 for g2 being Morphism of b2,b3 st g2 = f2 holds f2 * f1 = g2 * g1 ; ::_thesis: A,B have_the_same_composition let a1, a2, a3, x be set ; :: according to PARTFUN1:def_4,YELLOW20:def_1 ::_thesis: ( not x in (proj1 ( the Comp of A . [a1,a2,a3])) /\ (proj1 ( the Comp of B . [a1,a2,a3])) or ( the Comp of A . [a1,a2,a3]) . x = ( the Comp of B . [a1,a2,a3]) . x ) assume A11: x in (dom ( the Comp of A . [a1,a2,a3])) /\ (dom ( the Comp of B . [a1,a2,a3])) ; ::_thesis: ( the Comp of A . [a1,a2,a3]) . x = ( the Comp of B . [a1,a2,a3]) . x then A12: x in dom ( the Comp of A . [a1,a2,a3]) by XBOOLE_0:def_4; then [a1,a2,a3] in dom the Comp of A by FUNCT_1:def_2, RELAT_1:38; then A13: [a1,a2,a3] in [: the carrier of A, the carrier of A, the carrier of A:] ; A14: x in dom ( the Comp of B . [a1,a2,a3]) by A11, XBOOLE_0:def_4; then [a1,a2,a3] in dom the Comp of B by FUNCT_1:def_2, RELAT_1:38; then A15: [a1,a2,a3] in [: the carrier of B, the carrier of B, the carrier of B:] ; reconsider a1 = a1, a2 = a2, a3 = a3 as object of A by A13, MCART_1:69; reconsider b1 = a1, b2 = a2, b3 = a3 as object of B by A15, MCART_1:69; A16: the Comp of A . (a1,a2,a3) = the Comp of A . [a1,a2,a3] by MULTOP_1:def_1; then ( [:<^a2,a3^>,<^a1,a2^>:] <> {} implies <^a1,a3^> <> {} ) by A11, XBOOLE_0:def_4; then dom ( the Comp of A . (a1,a2,a3)) = [:<^a2,a3^>,<^a1,a2^>:] by FUNCT_2:def_1; then consider f2, f1 being set such that A17: f2 in <^a2,a3^> and A18: f1 in <^a1,a2^> and A19: x = [f2,f1] by A12, A16, ZFMISC_1:def_2; reconsider f1 = f1 as Morphism of a1,a2 by A18; reconsider f2 = f2 as Morphism of a2,a3 by A17; A20: the Comp of B . (b1,b2,b3) = the Comp of B . [b1,b2,b3] by MULTOP_1:def_1; then ( [:<^b2,b3^>,<^b1,b2^>:] <> {} implies <^b1,b3^> <> {} ) by A11, XBOOLE_0:def_4; then A21: dom ( the Comp of B . (b1,b2,b3)) = [:<^b2,b3^>,<^b1,b2^>:] by FUNCT_2:def_1; then A22: ( f1 in <^b1,b2^> & f2 in <^b2,b3^> ) by A14, A20, A19, ZFMISC_1:87; reconsider g2 = f2 as Morphism of b2,b3 by A14, A20, A21, A19, ZFMISC_1:87; reconsider g1 = f1 as Morphism of b1,b2 by A14, A20, A21, A19, ZFMISC_1:87; ( the Comp of A . [a1,a2,a3]) . x = ( the Comp of A . (a1,a2,a3)) . (f2,f1) by A19, MULTOP_1:def_1 .= f2 * f1 by A17, A18, ALTCAT_1:def_8 .= g2 * g1 by A10, A17, A18, A22 .= ( the Comp of B . (b1,b2,b3)) . (g2,g1) by A22, ALTCAT_1:def_8 ; hence ( the Comp of A . [a1,a2,a3]) . x = ( the Comp of B . [a1,a2,a3]) . x by A19, MULTOP_1:def_1; ::_thesis: verum end; theorem :: YELLOW20:12 for A, B being semi-functional para-functional category holds A,B have_the_same_composition proof let A, B be semi-functional para-functional category; ::_thesis: A,B have_the_same_composition now__::_thesis:_for_a1,_a2,_a3_being_object_of_A_st_<^a1,a2^>_<>_{}_&_<^a2,a3^>_<>_{}_holds_ for_b1,_b2,_b3_being_object_of_B_st_<^b1,b2^>_<>_{}_&_<^b2,b3^>_<>_{}_&_b1_=_a1_&_b2_=_a2_&_b3_=_a3_holds_ for_f1_being_Morphism_of_a1,a2 for_g1_being_Morphism_of_b1,b2_st_g1_=_f1_holds_ for_f2_being_Morphism_of_a2,a3 for_g2_being_Morphism_of_b2,b3_st_g2_=_f2_holds_ f2_*_f1_=_g2_*_g1 let a1, a2, a3 be object of A; ::_thesis: ( <^a1,a2^> <> {} & <^a2,a3^> <> {} implies for b1, b2, b3 being object of B st <^b1,b2^> <> {} & <^b2,b3^> <> {} & b1 = a1 & b2 = a2 & b3 = a3 holds for f1 being Morphism of a1,a2 for g1 being Morphism of b1,b2 st g1 = f1 holds for f2 being Morphism of a2,a3 for g2 being Morphism of b2,b3 st g2 = f2 holds f2 * f1 = g2 * g1 ) assume that A1: <^a1,a2^> <> {} and A2: <^a2,a3^> <> {} ; ::_thesis: for b1, b2, b3 being object of B st <^b1,b2^> <> {} & <^b2,b3^> <> {} & b1 = a1 & b2 = a2 & b3 = a3 holds for f1 being Morphism of a1,a2 for g1 being Morphism of b1,b2 st g1 = f1 holds for f2 being Morphism of a2,a3 for g2 being Morphism of b2,b3 st g2 = f2 holds f2 * f1 = g2 * g1 let b1, b2, b3 be object of B; ::_thesis: ( <^b1,b2^> <> {} & <^b2,b3^> <> {} & b1 = a1 & b2 = a2 & b3 = a3 implies for f1 being Morphism of a1,a2 for g1 being Morphism of b1,b2 st g1 = f1 holds for f2 being Morphism of a2,a3 for g2 being Morphism of b2,b3 st g2 = f2 holds f2 * f1 = g2 * g1 ) assume that A3: ( <^b1,b2^> <> {} & <^b2,b3^> <> {} ) and b1 = a1 and b2 = a2 and b3 = a3 ; ::_thesis: for f1 being Morphism of a1,a2 for g1 being Morphism of b1,b2 st g1 = f1 holds for f2 being Morphism of a2,a3 for g2 being Morphism of b2,b3 st g2 = f2 holds f2 * f1 = g2 * g1 let f1 be Morphism of a1,a2; ::_thesis: for g1 being Morphism of b1,b2 st g1 = f1 holds for f2 being Morphism of a2,a3 for g2 being Morphism of b2,b3 st g2 = f2 holds f2 * f1 = g2 * g1 let g1 be Morphism of b1,b2; ::_thesis: ( g1 = f1 implies for f2 being Morphism of a2,a3 for g2 being Morphism of b2,b3 st g2 = f2 holds f2 * f1 = g2 * g1 ) assume A4: g1 = f1 ; ::_thesis: for f2 being Morphism of a2,a3 for g2 being Morphism of b2,b3 st g2 = f2 holds f2 * f1 = g2 * g1 reconsider f = f1 as Function of (the_carrier_of a1),(the_carrier_of a2) by A1, YELLOW18:34; let f2 be Morphism of a2,a3; ::_thesis: for g2 being Morphism of b2,b3 st g2 = f2 holds f2 * f1 = g2 * g1 let g2 be Morphism of b2,b3; ::_thesis: ( g2 = f2 implies f2 * f1 = g2 * g1 ) assume A5: g2 = f2 ; ::_thesis: f2 * f1 = g2 * g1 A6: <^b1,b3^> <> {} by A3, ALTCAT_1:def_2; reconsider g = f2 as Function of (the_carrier_of a2),(the_carrier_of a3) by A2, YELLOW18:34; <^a1,a3^> <> {} by A1, A2, ALTCAT_1:def_2; hence f2 * f1 = g * f by A1, A2, ALTCAT_1:def_12 .= g2 * g1 by A3, A4, A5, A6, ALTCAT_1:def_12 ; ::_thesis: verum end; hence A,B have_the_same_composition by Th11; ::_thesis: verum end; definition let f, g be Function; func Intersect (f,g) -> Function means :Def2: :: YELLOW20:def 2 ( dom it = (dom f) /\ (dom g) & ( for x being set st x in (dom f) /\ (dom g) holds it . x = (f . x) /\ (g . x) ) ); existence ex b1 being Function st ( dom b1 = (dom f) /\ (dom g) & ( for x being set st x in (dom f) /\ (dom g) holds b1 . x = (f . x) /\ (g . x) ) ) proof deffunc H1( set ) -> set = (f . $1) /\ (g . $1); thus ex h being Function st ( dom h = (dom f) /\ (dom g) & ( for x being set st x in (dom f) /\ (dom g) holds h . x = H1(x) ) ) from FUNCT_1:sch_3(); ::_thesis: verum end; uniqueness for b1, b2 being Function st dom b1 = (dom f) /\ (dom g) & ( for x being set st x in (dom f) /\ (dom g) holds b1 . x = (f . x) /\ (g . x) ) & dom b2 = (dom f) /\ (dom g) & ( for x being set st x in (dom f) /\ (dom g) holds b2 . x = (f . x) /\ (g . x) ) holds b1 = b2 proof let f1, f2 be Function; ::_thesis: ( dom f1 = (dom f) /\ (dom g) & ( for x being set st x in (dom f) /\ (dom g) holds f1 . x = (f . x) /\ (g . x) ) & dom f2 = (dom f) /\ (dom g) & ( for x being set st x in (dom f) /\ (dom g) holds f2 . x = (f . x) /\ (g . x) ) implies f1 = f2 ) assume that A1: dom f1 = (dom f) /\ (dom g) and A2: for x being set st x in (dom f) /\ (dom g) holds f1 . x = (f . x) /\ (g . x) and A3: dom f2 = (dom f) /\ (dom g) and A4: for x being set st x in (dom f) /\ (dom g) holds f2 . x = (f . x) /\ (g . x) ; ::_thesis: f1 = f2 now__::_thesis:_for_x_being_set_st_x_in_(dom_f)_/\_(dom_g)_holds_ f1_._x_=_f2_._x let x be set ; ::_thesis: ( x in (dom f) /\ (dom g) implies f1 . x = f2 . x ) assume A5: x in (dom f) /\ (dom g) ; ::_thesis: f1 . x = f2 . x then f1 . x = (f . x) /\ (g . x) by A2; hence f1 . x = f2 . x by A4, A5; ::_thesis: verum end; hence f1 = f2 by A1, A3, FUNCT_1:2; ::_thesis: verum end; commutativity for b1, f, g being Function st dom b1 = (dom f) /\ (dom g) & ( for x being set st x in (dom f) /\ (dom g) holds b1 . x = (f . x) /\ (g . x) ) holds ( dom b1 = (dom g) /\ (dom f) & ( for x being set st x in (dom g) /\ (dom f) holds b1 . x = (g . x) /\ (f . x) ) ) ; end; :: deftheorem Def2 defines Intersect YELLOW20:def_2_:_ for f, g, b3 being Function holds ( b3 = Intersect (f,g) iff ( dom b3 = (dom f) /\ (dom g) & ( for x being set st x in (dom f) /\ (dom g) holds b3 . x = (f . x) /\ (g . x) ) ) ); theorem :: YELLOW20:13 for I being set for A, B being ManySortedSet of I holds Intersect (A,B) = A /\ B proof let I be set ; ::_thesis: for A, B being ManySortedSet of I holds Intersect (A,B) = A /\ B let A, B be ManySortedSet of I; ::_thesis: Intersect (A,B) = A /\ B A1: ( dom A = I & dom B = I ) by PARTFUN1:def_2; then dom (Intersect (A,B)) = I /\ I by Def2; then reconsider AB = Intersect (A,B) as ManySortedSet of I by PARTFUN1:def_2, RELAT_1:def_18; I /\ I = I ; then for i being set st i in I holds AB . i = (A . i) /\ (B . i) by A1, Def2; hence Intersect (A,B) = A /\ B by PBOOLE:def_5; ::_thesis: verum end; theorem Th14: :: YELLOW20:14 for I, J being set for A being ManySortedSet of I for B being ManySortedSet of J holds Intersect (A,B) is ManySortedSet of I /\ J proof let I, J be set ; ::_thesis: for A being ManySortedSet of I for B being ManySortedSet of J holds Intersect (A,B) is ManySortedSet of I /\ J let A be ManySortedSet of I; ::_thesis: for B being ManySortedSet of J holds Intersect (A,B) is ManySortedSet of I /\ J let B be ManySortedSet of J; ::_thesis: Intersect (A,B) is ManySortedSet of I /\ J ( dom A = I & dom B = J ) by PARTFUN1:def_2; then dom (Intersect (A,B)) = I /\ J by Def2; hence Intersect (A,B) is ManySortedSet of I /\ J by PARTFUN1:def_2, RELAT_1:def_18; ::_thesis: verum end; theorem Th15: :: YELLOW20:15 for I, J being set for A being ManySortedSet of I for B being Function for C being ManySortedSet of J st C = Intersect (A,B) holds C cc= A proof let I, J be set ; ::_thesis: for A being ManySortedSet of I for B being Function for C being ManySortedSet of J st C = Intersect (A,B) holds C cc= A let A be ManySortedSet of I; ::_thesis: for B being Function for C being ManySortedSet of J st C = Intersect (A,B) holds C cc= A let B be Function; ::_thesis: for C being ManySortedSet of J st C = Intersect (A,B) holds C cc= A let C be ManySortedSet of J; ::_thesis: ( C = Intersect (A,B) implies C cc= A ) assume A1: C = Intersect (A,B) ; ::_thesis: C cc= A A2: dom A = I by PARTFUN1:def_2; dom C = J by PARTFUN1:def_2; then A3: J = I /\ (dom B) by A1, A2, Def2; hence J c= I by XBOOLE_1:17; :: according to ALTCAT_2:def_2 ::_thesis: for b1 being set holds ( not b1 in J or C . b1 c= A . b1 ) let i be set ; ::_thesis: ( not i in J or C . i c= A . i ) assume i in J ; ::_thesis: C . i c= A . i then C . i = (A . i) /\ (B . i) by A1, A2, A3, Def2; hence C . i c= A . i by XBOOLE_1:17; ::_thesis: verum end; theorem Th16: :: YELLOW20:16 for I1, I2 being set for A1, B1 being ManySortedSet of I1 for A2, B2 being ManySortedSet of I2 for A, B being ManySortedSet of I1 /\ I2 st A = Intersect (A1,A2) & B = Intersect (B1,B2) holds for F being ManySortedFunction of A1,B1 for G being ManySortedFunction of A2,B2 st ( for x being set st x in dom F & x in dom G holds F . x tolerates G . x ) holds Intersect (F,G) is ManySortedFunction of A,B proof let I1, I2 be set ; ::_thesis: for A1, B1 being ManySortedSet of I1 for A2, B2 being ManySortedSet of I2 for A, B being ManySortedSet of I1 /\ I2 st A = Intersect (A1,A2) & B = Intersect (B1,B2) holds for F being ManySortedFunction of A1,B1 for G being ManySortedFunction of A2,B2 st ( for x being set st x in dom F & x in dom G holds F . x tolerates G . x ) holds Intersect (F,G) is ManySortedFunction of A,B let A1, B1 be ManySortedSet of I1; ::_thesis: for A2, B2 being ManySortedSet of I2 for A, B being ManySortedSet of I1 /\ I2 st A = Intersect (A1,A2) & B = Intersect (B1,B2) holds for F being ManySortedFunction of A1,B1 for G being ManySortedFunction of A2,B2 st ( for x being set st x in dom F & x in dom G holds F . x tolerates G . x ) holds Intersect (F,G) is ManySortedFunction of A,B let A2, B2 be ManySortedSet of I2; ::_thesis: for A, B being ManySortedSet of I1 /\ I2 st A = Intersect (A1,A2) & B = Intersect (B1,B2) holds for F being ManySortedFunction of A1,B1 for G being ManySortedFunction of A2,B2 st ( for x being set st x in dom F & x in dom G holds F . x tolerates G . x ) holds Intersect (F,G) is ManySortedFunction of A,B let A, B be ManySortedSet of I1 /\ I2; ::_thesis: ( A = Intersect (A1,A2) & B = Intersect (B1,B2) implies for F being ManySortedFunction of A1,B1 for G being ManySortedFunction of A2,B2 st ( for x being set st x in dom F & x in dom G holds F . x tolerates G . x ) holds Intersect (F,G) is ManySortedFunction of A,B ) assume A1: ( A = Intersect (A1,A2) & B = Intersect (B1,B2) ) ; ::_thesis: for F being ManySortedFunction of A1,B1 for G being ManySortedFunction of A2,B2 st ( for x being set st x in dom F & x in dom G holds F . x tolerates G . x ) holds Intersect (F,G) is ManySortedFunction of A,B let F be ManySortedFunction of A1,B1; ::_thesis: for G being ManySortedFunction of A2,B2 st ( for x being set st x in dom F & x in dom G holds F . x tolerates G . x ) holds Intersect (F,G) is ManySortedFunction of A,B let G be ManySortedFunction of A2,B2; ::_thesis: ( ( for x being set st x in dom F & x in dom G holds F . x tolerates G . x ) implies Intersect (F,G) is ManySortedFunction of A,B ) assume A2: for x being set st x in dom F & x in dom G holds F . x tolerates G . x ; ::_thesis: Intersect (F,G) is ManySortedFunction of A,B A3: ( dom B1 = I1 & dom B2 = I2 ) by PARTFUN1:def_2; reconsider H = Intersect (F,G) as ManySortedSet of I1 /\ I2 by Th14; A4: ( dom F = I1 & dom G = I2 ) by PARTFUN1:def_2; A5: ( dom A1 = I1 & dom A2 = I2 ) by PARTFUN1:def_2; H is ManySortedFunction of A,B proof let i be set ; :: according to PBOOLE:def_15 ::_thesis: ( not i in I1 /\ I2 or H . i is M2( bool [:(A . i),(B . i):]) ) assume A6: i in I1 /\ I2 ; ::_thesis: H . i is M2( bool [:(A . i),(B . i):]) then A7: H . i = (F . i) /\ (G . i) by A4, Def2; A8: i in I2 by A6, XBOOLE_0:def_4; then A9: G . i is Function of (A2 . i),(B2 . i) by PBOOLE:def_15; A10: ( A . i = (A1 . i) /\ (A2 . i) & B . i = (B1 . i) /\ (B2 . i) ) by A1, A5, A3, A6, Def2; A11: i in I1 by A6, XBOOLE_0:def_4; then F . i is Function of (A1 . i),(B1 . i) by PBOOLE:def_15; hence H . i is M2( bool [:(A . i),(B . i):]) by A2, A4, A11, A8, A10, A7, A9, FUNCT_2:120; ::_thesis: verum end; hence Intersect (F,G) is ManySortedFunction of A,B ; ::_thesis: verum end; theorem Th17: :: YELLOW20:17 for I, J being set for F being ManySortedSet of [:I,I:] for G being ManySortedSet of [:J,J:] ex H being ManySortedSet of [:(I /\ J),(I /\ J):] st ( H = Intersect (F,G) & Intersect ({|F|},{|G|}) = {|H|} ) proof let I, J be set ; ::_thesis: for F being ManySortedSet of [:I,I:] for G being ManySortedSet of [:J,J:] ex H being ManySortedSet of [:(I /\ J),(I /\ J):] st ( H = Intersect (F,G) & Intersect ({|F|},{|G|}) = {|H|} ) let F be ManySortedSet of [:I,I:]; ::_thesis: for G being ManySortedSet of [:J,J:] ex H being ManySortedSet of [:(I /\ J),(I /\ J):] st ( H = Intersect (F,G) & Intersect ({|F|},{|G|}) = {|H|} ) let G be ManySortedSet of [:J,J:]; ::_thesis: ex H being ManySortedSet of [:(I /\ J),(I /\ J):] st ( H = Intersect (F,G) & Intersect ({|F|},{|G|}) = {|H|} ) A1: [:(I /\ J),(I /\ J):] = [:I,I:] /\ [:J,J:] by ZFMISC_1:100; then reconsider H = Intersect (F,G) as ManySortedSet of [:(I /\ J),(I /\ J):] by Th14; ( [:I,I,I:] = [:[:I,I:],I:] & [:J,J,J:] = [:[:J,J:],J:] ) by ZFMISC_1:def_3; then A2: [:I,I,I:] /\ [:J,J,J:] = [:[:(I /\ J),(I /\ J):],(I /\ J):] by A1, ZFMISC_1:100 .= [:(I /\ J),(I /\ J),(I /\ J):] by ZFMISC_1:def_3 ; A3: ( dom F = [:I,I:] & dom G = [:J,J:] ) by PARTFUN1:def_2; A4: now__::_thesis:_for_x_being_set_st_x_in_[:I,I,I:]_/\_[:J,J,J:]_holds_ {|H|}_._x_=_({|F|}_._x)_/\_({|G|}_._x) let x be set ; ::_thesis: ( x in [:I,I,I:] /\ [:J,J,J:] implies {|H|} . x = ({|F|} . x) /\ ({|G|} . x) ) assume A5: x in [:I,I,I:] /\ [:J,J,J:] ; ::_thesis: {|H|} . x = ({|F|} . x) /\ ({|G|} . x) then A6: x in [:J,J,J:] by XBOOLE_0:def_4; x in [:I,I,I:] by A5, XBOOLE_0:def_4; then consider a, b, c being set such that A7: a in I and A8: b in I and A9: c in I and A10: x = [a,b,c] by MCART_1:68; A11: c in J by A6, A10, MCART_1:69; then A12: c in I /\ J by A9, XBOOLE_0:def_4; A13: a in J by A6, A10, MCART_1:69; then A14: a in I /\ J by A7, XBOOLE_0:def_4; then A15: [a,c] in [:(I /\ J),(I /\ J):] by A12, ZFMISC_1:87; A16: b in J by A6, A10, MCART_1:69; then A17: {|G|} . (a,b,c) = G . (a,c) by A13, A11, ALTCAT_1:def_3; A18: {|F|} . (a,b,c) = F . (a,c) by A7, A8, A9, ALTCAT_1:def_3; b in I /\ J by A8, A16, XBOOLE_0:def_4; then {|H|} . (a,b,c) = H . (a,c) by A14, A12, ALTCAT_1:def_3; hence {|H|} . x = H . [a,c] by A10, MULTOP_1:def_1 .= (F . (a,c)) /\ (G . [a,c]) by A1, A3, A15, Def2 .= ({|F|} . x) /\ (G . (a,c)) by A10, A18, MULTOP_1:def_1 .= ({|F|} . x) /\ ({|G|} . x) by A10, A17, MULTOP_1:def_1 ; ::_thesis: verum end; take H ; ::_thesis: ( H = Intersect (F,G) & Intersect ({|F|},{|G|}) = {|H|} ) thus H = Intersect (F,G) ; ::_thesis: Intersect ({|F|},{|G|}) = {|H|} A19: dom {|H|} = [:(I /\ J),(I /\ J),(I /\ J):] by PARTFUN1:def_2; ( dom {|F|} = [:I,I,I:] & dom {|G|} = [:J,J,J:] ) by PARTFUN1:def_2; hence Intersect ({|F|},{|G|}) = {|H|} by A19, A2, A4, Def2; ::_thesis: verum end; theorem Th18: :: YELLOW20:18 for I, J being set for F1, F2 being ManySortedSet of [:I,I:] for G1, G2 being ManySortedSet of [:J,J:] ex H1, H2 being ManySortedSet of [:(I /\ J),(I /\ J):] st ( H1 = Intersect (F1,G1) & H2 = Intersect (F2,G2) & Intersect ({|F1,F2|},{|G1,G2|}) = {|H1,H2|} ) proof let I, J be set ; ::_thesis: for F1, F2 being ManySortedSet of [:I,I:] for G1, G2 being ManySortedSet of [:J,J:] ex H1, H2 being ManySortedSet of [:(I /\ J),(I /\ J):] st ( H1 = Intersect (F1,G1) & H2 = Intersect (F2,G2) & Intersect ({|F1,F2|},{|G1,G2|}) = {|H1,H2|} ) let F1, F2 be ManySortedSet of [:I,I:]; ::_thesis: for G1, G2 being ManySortedSet of [:J,J:] ex H1, H2 being ManySortedSet of [:(I /\ J),(I /\ J):] st ( H1 = Intersect (F1,G1) & H2 = Intersect (F2,G2) & Intersect ({|F1,F2|},{|G1,G2|}) = {|H1,H2|} ) let G1, G2 be ManySortedSet of [:J,J:]; ::_thesis: ex H1, H2 being ManySortedSet of [:(I /\ J),(I /\ J):] st ( H1 = Intersect (F1,G1) & H2 = Intersect (F2,G2) & Intersect ({|F1,F2|},{|G1,G2|}) = {|H1,H2|} ) A1: ( dom F2 = [:I,I:] & dom G2 = [:J,J:] ) by PARTFUN1:def_2; A2: [:(I /\ J),(I /\ J):] = [:I,I:] /\ [:J,J:] by ZFMISC_1:100; then reconsider H1 = Intersect (F1,G1), H2 = Intersect (F2,G2) as ManySortedSet of [:(I /\ J),(I /\ J):] by Th14; ( [:I,I,I:] = [:[:I,I:],I:] & [:J,J,J:] = [:[:J,J:],J:] ) by ZFMISC_1:def_3; then A3: [:I,I,I:] /\ [:J,J,J:] = [:[:(I /\ J),(I /\ J):],(I /\ J):] by A2, ZFMISC_1:100 .= [:(I /\ J),(I /\ J),(I /\ J):] by ZFMISC_1:def_3 ; A4: ( dom F1 = [:I,I:] & dom G1 = [:J,J:] ) by PARTFUN1:def_2; A5: now__::_thesis:_for_x_being_set_st_x_in_[:I,I,I:]_/\_[:J,J,J:]_holds_ {|H1,H2|}_._x_=_({|F1,F2|}_._x)_/\_({|G1,G2|}_._x) let x be set ; ::_thesis: ( x in [:I,I,I:] /\ [:J,J,J:] implies {|H1,H2|} . x = ({|F1,F2|} . x) /\ ({|G1,G2|} . x) ) assume A6: x in [:I,I,I:] /\ [:J,J,J:] ; ::_thesis: {|H1,H2|} . x = ({|F1,F2|} . x) /\ ({|G1,G2|} . x) then A7: x in [:J,J,J:] by XBOOLE_0:def_4; x in [:I,I,I:] by A6, XBOOLE_0:def_4; then consider a, b, c being set such that A8: a in I and A9: b in I and A10: c in I and A11: x = [a,b,c] by MCART_1:68; A12: b in J by A7, A11, MCART_1:69; then A13: b in I /\ J by A9, XBOOLE_0:def_4; A14: c in J by A7, A11, MCART_1:69; then A15: c in I /\ J by A10, XBOOLE_0:def_4; then A16: [b,c] in [:(I /\ J),(I /\ J):] by A13, ZFMISC_1:87; A17: a in J by A7, A11, MCART_1:69; then A18: a in I /\ J by A8, XBOOLE_0:def_4; then A19: [a,b] in [:(I /\ J),(I /\ J):] by A13, ZFMISC_1:87; A20: {|F1,F2|} . (a,b,c) = [:(F2 . (b,c)),(F1 . (a,b)):] by A8, A9, A10, ALTCAT_1:def_4; A21: {|G1,G2|} . (a,b,c) = [:(G2 . (b,c)),(G1 . (a,b)):] by A17, A12, A14, ALTCAT_1:def_4; {|H1,H2|} . (a,b,c) = [:(H2 . (b,c)),(H1 . (a,b)):] by A18, A13, A15, ALTCAT_1:def_4; hence {|H1,H2|} . x = [:(H2 . (b,c)),(H1 . (a,b)):] by A11, MULTOP_1:def_1 .= [:((F2 . [b,c]) /\ (G2 . [b,c])),(H1 . (a,b)):] by A2, A1, A16, Def2 .= [:((F2 . [b,c]) /\ (G2 . [b,c])),((F1 . [a,b]) /\ (G1 . [a,b])):] by A2, A4, A19, Def2 .= [:(F2 . [b,c]),(F1 . [a,b]):] /\ [:(G2 . [b,c]),(G1 . [a,b]):] by ZFMISC_1:100 .= ({|F1,F2|} . x) /\ [:(G2 . [b,c]),(G1 . [a,b]):] by A11, A20, MULTOP_1:def_1 .= ({|F1,F2|} . x) /\ ({|G1,G2|} . x) by A11, A21, MULTOP_1:def_1 ; ::_thesis: verum end; take H1 ; ::_thesis: ex H2 being ManySortedSet of [:(I /\ J),(I /\ J):] st ( H1 = Intersect (F1,G1) & H2 = Intersect (F2,G2) & Intersect ({|F1,F2|},{|G1,G2|}) = {|H1,H2|} ) take H2 ; ::_thesis: ( H1 = Intersect (F1,G1) & H2 = Intersect (F2,G2) & Intersect ({|F1,F2|},{|G1,G2|}) = {|H1,H2|} ) thus ( H1 = Intersect (F1,G1) & H2 = Intersect (F2,G2) ) ; ::_thesis: Intersect ({|F1,F2|},{|G1,G2|}) = {|H1,H2|} A22: dom {|H1,H2|} = [:(I /\ J),(I /\ J),(I /\ J):] by PARTFUN1:def_2; ( dom {|F1,F2|} = [:I,I,I:] & dom {|G1,G2|} = [:J,J,J:] ) by PARTFUN1:def_2; hence Intersect ({|F1,F2|},{|G1,G2|}) = {|H1,H2|} by A22, A3, A5, Def2; ::_thesis: verum end; definition let A, B be AltCatStr ; assume B1: A,B have_the_same_composition ; func Intersect (A,B) -> strict AltCatStr means :Def3: :: YELLOW20:def 3 ( the carrier of it = the carrier of A /\ the carrier of B & the Arrows of it = Intersect ( the Arrows of A, the Arrows of B) & the Comp of it = Intersect ( the Comp of A, the Comp of B) ); existence ex b1 being strict AltCatStr st ( the carrier of b1 = the carrier of A /\ the carrier of B & the Arrows of b1 = Intersect ( the Arrows of A, the Arrows of B) & the Comp of b1 = Intersect ( the Comp of A, the Comp of B) ) proof A1: now__::_thesis:_for_x_being_set_st_x_in_dom_the_Comp_of_A_&_x_in_dom_the_Comp_of_B_holds_ the_Comp_of_A_._x_tolerates_the_Comp_of_B_._x let x be set ; ::_thesis: ( x in dom the Comp of A & x in dom the Comp of B implies the Comp of A . x tolerates the Comp of B . x ) assume A2: x in dom the Comp of A ; ::_thesis: ( x in dom the Comp of B implies the Comp of A . x tolerates the Comp of B . x ) assume x in dom the Comp of B ; ::_thesis: the Comp of A . x tolerates the Comp of B . x ex a1, a2, a3 being set st ( a1 in the carrier of A & a2 in the carrier of A & a3 in the carrier of A & x = [a1,a2,a3] ) by A2, MCART_1:68; hence the Comp of A . x tolerates the Comp of B . x by B1, Def1; ::_thesis: verum end; set Cr = the carrier of A /\ the carrier of B; A3: [: the carrier of B, the carrier of B, the carrier of B:] = [:[: the carrier of B, the carrier of B:], the carrier of B:] by ZFMISC_1:def_3; ( [:( the carrier of A /\ the carrier of B),( the carrier of A /\ the carrier of B):] = [: the carrier of A, the carrier of A:] /\ [: the carrier of B, the carrier of B:] & [: the carrier of A, the carrier of A, the carrier of A:] = [:[: the carrier of A, the carrier of A:], the carrier of A:] ) by ZFMISC_1:100, ZFMISC_1:def_3; then A4: [: the carrier of A, the carrier of A, the carrier of A:] /\ [: the carrier of B, the carrier of B, the carrier of B:] = [:[:( the carrier of A /\ the carrier of B),( the carrier of A /\ the carrier of B):],( the carrier of A /\ the carrier of B):] by A3, ZFMISC_1:100 .= [:( the carrier of A /\ the carrier of B),( the carrier of A /\ the carrier of B),( the carrier of A /\ the carrier of B):] by ZFMISC_1:def_3 ; consider Ar being ManySortedSet of [:( the carrier of A /\ the carrier of B),( the carrier of A /\ the carrier of B):] such that A5: Ar = Intersect ( the Arrows of A, the Arrows of B) and A6: Intersect ({| the Arrows of A|},{| the Arrows of B|}) = {|Ar|} by Th17; ex Ar1, Ar2 being ManySortedSet of [:( the carrier of A /\ the carrier of B),( the carrier of A /\ the carrier of B):] st ( Ar1 = Intersect ( the Arrows of A, the Arrows of B) & Ar2 = Intersect ( the Arrows of A, the Arrows of B) & Intersect ({| the Arrows of A, the Arrows of A|},{| the Arrows of B, the Arrows of B|}) = {|Ar1,Ar2|} ) by Th18; then reconsider Cm = Intersect ( the Comp of A, the Comp of B) as ManySortedFunction of {|Ar,Ar|},{|Ar|} by A5, A6, A4, A1, Th16; take AltCatStr(# ( the carrier of A /\ the carrier of B),Ar,Cm #) ; ::_thesis: ( the carrier of AltCatStr(# ( the carrier of A /\ the carrier of B),Ar,Cm #) = the carrier of A /\ the carrier of B & the Arrows of AltCatStr(# ( the carrier of A /\ the carrier of B),Ar,Cm #) = Intersect ( the Arrows of A, the Arrows of B) & the Comp of AltCatStr(# ( the carrier of A /\ the carrier of B),Ar,Cm #) = Intersect ( the Comp of A, the Comp of B) ) thus ( the carrier of AltCatStr(# ( the carrier of A /\ the carrier of B),Ar,Cm #) = the carrier of A /\ the carrier of B & the Arrows of AltCatStr(# ( the carrier of A /\ the carrier of B),Ar,Cm #) = Intersect ( the Arrows of A, the Arrows of B) & the Comp of AltCatStr(# ( the carrier of A /\ the carrier of B),Ar,Cm #) = Intersect ( the Comp of A, the Comp of B) ) by A5; ::_thesis: verum end; uniqueness for b1, b2 being strict AltCatStr st the carrier of b1 = the carrier of A /\ the carrier of B & the Arrows of b1 = Intersect ( the Arrows of A, the Arrows of B) & the Comp of b1 = Intersect ( the Comp of A, the Comp of B) & the carrier of b2 = the carrier of A /\ the carrier of B & the Arrows of b2 = Intersect ( the Arrows of A, the Arrows of B) & the Comp of b2 = Intersect ( the Comp of A, the Comp of B) holds b1 = b2 ; end; :: deftheorem Def3 defines Intersect YELLOW20:def_3_:_ for A, B being AltCatStr st A,B have_the_same_composition holds for b3 being strict AltCatStr holds ( b3 = Intersect (A,B) iff ( the carrier of b3 = the carrier of A /\ the carrier of B & the Arrows of b3 = Intersect ( the Arrows of A, the Arrows of B) & the Comp of b3 = Intersect ( the Comp of A, the Comp of B) ) ); theorem :: YELLOW20:19 for A, B being AltCatStr st A,B have_the_same_composition holds Intersect (A,B) = Intersect (B,A) proof let A, B be AltCatStr ; ::_thesis: ( A,B have_the_same_composition implies Intersect (A,B) = Intersect (B,A) ) set AB = Intersect (A,B); assume A1: A,B have_the_same_composition ; ::_thesis: Intersect (A,B) = Intersect (B,A) then A2: the Comp of (Intersect (A,B)) = Intersect ( the Comp of A, the Comp of B) by Def3; ( the carrier of (Intersect (A,B)) = the carrier of A /\ the carrier of B & the Arrows of (Intersect (A,B)) = Intersect ( the Arrows of A, the Arrows of B) ) by A1, Def3; hence Intersect (A,B) = Intersect (B,A) by A1, A2, Def3; ::_thesis: verum end; theorem Th20: :: YELLOW20:20 for A, B being AltCatStr st A,B have_the_same_composition holds Intersect (A,B) is SubCatStr of A proof let A, B be AltCatStr ; ::_thesis: ( A,B have_the_same_composition implies Intersect (A,B) is SubCatStr of A ) set AB = Intersect (A,B); assume A1: A,B have_the_same_composition ; ::_thesis: Intersect (A,B) is SubCatStr of A then A2: the Comp of (Intersect (A,B)) = Intersect ( the Comp of A, the Comp of B) by Def3; ( the carrier of (Intersect (A,B)) = the carrier of A /\ the carrier of B & the Arrows of (Intersect (A,B)) = Intersect ( the Arrows of A, the Arrows of B) ) by A1, Def3; hence ( the carrier of (Intersect (A,B)) c= the carrier of A & the Arrows of (Intersect (A,B)) cc= the Arrows of A & the Comp of (Intersect (A,B)) cc= the Comp of A ) by A2, Th15, XBOOLE_1:17; :: according to ALTCAT_2:def_11 ::_thesis: verum end; theorem Th21: :: YELLOW20:21 for A, B being AltCatStr st A,B have_the_same_composition holds for a1, a2 being object of A for b1, b2 being object of B for o1, o2 being object of (Intersect (A,B)) st o1 = a1 & o1 = b1 & o2 = a2 & o2 = b2 holds <^o1,o2^> = <^a1,a2^> /\ <^b1,b2^> proof let A, B be AltCatStr ; ::_thesis: ( A,B have_the_same_composition implies for a1, a2 being object of A for b1, b2 being object of B for o1, o2 being object of (Intersect (A,B)) st o1 = a1 & o1 = b1 & o2 = a2 & o2 = b2 holds <^o1,o2^> = <^a1,a2^> /\ <^b1,b2^> ) assume A1: A,B have_the_same_composition ; ::_thesis: for a1, a2 being object of A for b1, b2 being object of B for o1, o2 being object of (Intersect (A,B)) st o1 = a1 & o1 = b1 & o2 = a2 & o2 = b2 holds <^o1,o2^> = <^a1,a2^> /\ <^b1,b2^> the carrier of (Intersect (A,B)) = the carrier of A /\ the carrier of B by A1, Def3; then A2: [: the carrier of (Intersect (A,B)), the carrier of (Intersect (A,B)):] = [: the carrier of A, the carrier of A:] /\ [: the carrier of B, the carrier of B:] by ZFMISC_1:100; let a1, a2 be object of A; ::_thesis: for b1, b2 being object of B for o1, o2 being object of (Intersect (A,B)) st o1 = a1 & o1 = b1 & o2 = a2 & o2 = b2 holds <^o1,o2^> = <^a1,a2^> /\ <^b1,b2^> let b1, b2 be object of B; ::_thesis: for o1, o2 being object of (Intersect (A,B)) st o1 = a1 & o1 = b1 & o2 = a2 & o2 = b2 holds <^o1,o2^> = <^a1,a2^> /\ <^b1,b2^> let o1, o2 be object of (Intersect (A,B)); ::_thesis: ( o1 = a1 & o1 = b1 & o2 = a2 & o2 = b2 implies <^o1,o2^> = <^a1,a2^> /\ <^b1,b2^> ) assume A3: ( o1 = a1 & o1 = b1 & o2 = a2 & o2 = b2 ) ; ::_thesis: <^o1,o2^> = <^a1,a2^> /\ <^b1,b2^> A4: now__::_thesis:_(_the_carrier_of_A_<>_{}_&_the_carrier_of_B_<>_{}_implies_[o1,o2]_in_[:_the_carrier_of_(Intersect_(A,B)),_the_carrier_of_(Intersect_(A,B)):]_) assume ( the carrier of A <> {} & the carrier of B <> {} ) ; ::_thesis: [o1,o2] in [: the carrier of (Intersect (A,B)), the carrier of (Intersect (A,B)):] then ( [a1,a2] in [: the carrier of A, the carrier of A:] & [b1,b2] in [: the carrier of B, the carrier of B:] ) by ZFMISC_1:def_2; hence [o1,o2] in [: the carrier of (Intersect (A,B)), the carrier of (Intersect (A,B)):] by A3, A2, XBOOLE_0:def_4; ::_thesis: verum end; A5: ( dom the Arrows of A = [: the carrier of A, the carrier of A:] & dom the Arrows of B = [: the carrier of B, the carrier of B:] ) by PARTFUN1:def_2; A6: now__::_thesis:_(_(_the_carrier_of_A_=_{}_or_the_carrier_of_B_=_{}_)_implies_(_(_the_Arrows_of_A_._[a1,a2])_/\_(_the_Arrows_of_B_._[b1,b2])_=_{}_&_the_Arrows_of_(Intersect_(A,B))_._[o1,o2]_=_{}_)_) assume ( the carrier of A = {} or the carrier of B = {} ) ; ::_thesis: ( ( the Arrows of A . [a1,a2]) /\ ( the Arrows of B . [b1,b2]) = {} & the Arrows of (Intersect (A,B)) . [o1,o2] = {} ) then A7: ( [: the carrier of A, the carrier of A:] = {} or [: the carrier of B, the carrier of B:] = {} ) by ZFMISC_1:90; then ( the Arrows of A . [a1,a2] = {} or the Arrows of B . [b1,b2] = {} ) ; hence ( ( the Arrows of A . [a1,a2]) /\ ( the Arrows of B . [b1,b2]) = {} & the Arrows of (Intersect (A,B)) . [o1,o2] = {} ) by A2, A7; ::_thesis: verum end; the Arrows of (Intersect (A,B)) = Intersect ( the Arrows of A, the Arrows of B) by A1, Def3; hence <^o1,o2^> = <^a1,a2^> /\ <^b1,b2^> by A3, A2, A5, A4, A6, Def2; ::_thesis: verum end; theorem Th22: :: YELLOW20:22 for A, B being transitive AltCatStr st A,B have_the_same_composition holds Intersect (A,B) is transitive proof let A, B be transitive AltCatStr ; ::_thesis: ( A,B have_the_same_composition implies Intersect (A,B) is transitive ) set AB = Intersect (A,B); assume A1: A,B have_the_same_composition ; ::_thesis: Intersect (A,B) is transitive then A2: the carrier of (Intersect (A,B)) = the carrier of A /\ the carrier of B by Def3; let o1, o2, o3 be object of (Intersect (A,B)); :: according to ALTCAT_1:def_2 ::_thesis: ( <^o1,o2^> = {} or <^o2,o3^> = {} or not <^o1,o3^> = {} ) assume that A3: <^o1,o2^> <> {} and A4: <^o2,o3^> <> {} ; ::_thesis: not <^o1,o3^> = {} ( dom the Arrows of (Intersect (A,B)) = [: the carrier of (Intersect (A,B)), the carrier of (Intersect (A,B)):] & [o1,o2] in dom the Arrows of (Intersect (A,B)) ) by A3, FUNCT_1:def_2, PARTFUN1:def_2; then A5: o1 in the carrier of (Intersect (A,B)) by ZFMISC_1:87; then reconsider A = A, B = B as non empty transitive AltCatStr by A2, XBOOLE_0:def_4; reconsider b1 = o1, b2 = o2, b3 = o3 as object of B by A2, A5, XBOOLE_0:def_4; reconsider a1 = o1, a2 = o2, a3 = o3 as object of A by A2, A5, XBOOLE_0:def_4; set f = the Morphism of o1,o2; set g = the Morphism of o2,o3; A6: <^o2,o3^> = <^a2,a3^> /\ <^b2,b3^> by A1, Th21; then A7: ( the Morphism of o2,o3 in <^a2,a3^> & the Morphism of o2,o3 in <^b2,b3^> ) by A4, XBOOLE_0:def_4; A8: <^o1,o2^> = <^a1,a2^> /\ <^b1,b2^> by A1, Th21; then reconsider f1 = the Morphism of o1,o2 as Morphism of a1,a2 by A3, XBOOLE_0:def_4; reconsider g2 = the Morphism of o2,o3 as Morphism of b2,b3 by A4, A6, XBOOLE_0:def_4; reconsider g1 = the Morphism of o2,o3 as Morphism of a2,a3 by A4, A6, XBOOLE_0:def_4; reconsider f2 = the Morphism of o1,o2 as Morphism of b1,b2 by A3, A8, XBOOLE_0:def_4; ( the Morphism of o1,o2 in <^a1,a2^> & the Morphism of o1,o2 in <^b1,b2^> ) by A3, A8, XBOOLE_0:def_4; then A9: g1 * f1 = g2 * f2 by A1, A7, Th11; A10: <^b2,b3^> <> {} by A4, A6; A11: <^a2,a3^> <> {} by A4, A6; <^b1,b2^> <> {} by A3, A8; then A12: <^b1,b3^> <> {} by A10, ALTCAT_1:def_2; <^a1,a2^> <> {} by A3, A8; then A13: <^a1,a3^> <> {} by A11, ALTCAT_1:def_2; <^o1,o3^> = <^a1,a3^> /\ <^b1,b3^> by A1, Th21; hence not <^o1,o3^> = {} by A13, A12, A9, XBOOLE_0:def_4; ::_thesis: verum end; theorem Th23: :: YELLOW20:23 for A, B being AltCatStr st A,B have_the_same_composition holds for a1, a2 being object of A for b1, b2 being object of B for o1, o2 being object of (Intersect (A,B)) st o1 = a1 & o1 = b1 & o2 = a2 & o2 = b2 & <^a1,a2^> <> {} & <^b1,b2^> <> {} holds for f being Morphism of a1,a2 for g being Morphism of b1,b2 st f = g holds f in <^o1,o2^> proof let A, B be AltCatStr ; ::_thesis: ( A,B have_the_same_composition implies for a1, a2 being object of A for b1, b2 being object of B for o1, o2 being object of (Intersect (A,B)) st o1 = a1 & o1 = b1 & o2 = a2 & o2 = b2 & <^a1,a2^> <> {} & <^b1,b2^> <> {} holds for f being Morphism of a1,a2 for g being Morphism of b1,b2 st f = g holds f in <^o1,o2^> ) assume A1: A,B have_the_same_composition ; ::_thesis: for a1, a2 being object of A for b1, b2 being object of B for o1, o2 being object of (Intersect (A,B)) st o1 = a1 & o1 = b1 & o2 = a2 & o2 = b2 & <^a1,a2^> <> {} & <^b1,b2^> <> {} holds for f being Morphism of a1,a2 for g being Morphism of b1,b2 st f = g holds f in <^o1,o2^> let a1, a2 be object of A; ::_thesis: for b1, b2 being object of B for o1, o2 being object of (Intersect (A,B)) st o1 = a1 & o1 = b1 & o2 = a2 & o2 = b2 & <^a1,a2^> <> {} & <^b1,b2^> <> {} holds for f being Morphism of a1,a2 for g being Morphism of b1,b2 st f = g holds f in <^o1,o2^> let b1, b2 be object of B; ::_thesis: for o1, o2 being object of (Intersect (A,B)) st o1 = a1 & o1 = b1 & o2 = a2 & o2 = b2 & <^a1,a2^> <> {} & <^b1,b2^> <> {} holds for f being Morphism of a1,a2 for g being Morphism of b1,b2 st f = g holds f in <^o1,o2^> let o1, o2 be object of (Intersect (A,B)); ::_thesis: ( o1 = a1 & o1 = b1 & o2 = a2 & o2 = b2 & <^a1,a2^> <> {} & <^b1,b2^> <> {} implies for f being Morphism of a1,a2 for g being Morphism of b1,b2 st f = g holds f in <^o1,o2^> ) assume ( o1 = a1 & o1 = b1 & o2 = a2 & o2 = b2 ) ; ::_thesis: ( not <^a1,a2^> <> {} or not <^b1,b2^> <> {} or for f being Morphism of a1,a2 for g being Morphism of b1,b2 st f = g holds f in <^o1,o2^> ) then <^o1,o2^> = <^a1,a2^> /\ <^b1,b2^> by A1, Th21; hence ( not <^a1,a2^> <> {} or not <^b1,b2^> <> {} or for f being Morphism of a1,a2 for g being Morphism of b1,b2 st f = g holds f in <^o1,o2^> ) by XBOOLE_0:def_4; ::_thesis: verum end; theorem :: YELLOW20:24 for A, B being non empty with_units AltCatStr st A,B have_the_same_composition holds for a being object of A for b being object of B for o being object of (Intersect (A,B)) st o = a & o = b & idm a = idm b holds idm a in <^o,o^> by Th23; theorem :: YELLOW20:25 for A, B being category st A,B have_the_same_composition & not Intersect (A,B) is empty & ( for a being object of A for b being object of B st a = b holds idm a = idm b ) holds Intersect (A,B) is subcategory of A proof let A, B be category; ::_thesis: ( A,B have_the_same_composition & not Intersect (A,B) is empty & ( for a being object of A for b being object of B st a = b holds idm a = idm b ) implies Intersect (A,B) is subcategory of A ) assume that A1: A,B have_the_same_composition and A2: not Intersect (A,B) is empty and A3: for a being object of A for b being object of B st a = b holds idm a = idm b ; ::_thesis: Intersect (A,B) is subcategory of A reconsider AB = Intersect (A,B) as non empty transitive SubCatStr of A by A1, A2, Th20, Th22; A4: the carrier of AB = the carrier of A /\ the carrier of B by A1, Def3; now__::_thesis:_for_o_being_object_of_AB for_a_being_object_of_A_st_o_=_a_holds_ idm_a_in_<^o,o^> let o be object of AB; ::_thesis: for a being object of A st o = a holds idm a in <^o,o^> let a be object of A; ::_thesis: ( o = a implies idm a in <^o,o^> ) reconsider b = o as object of B by A4, XBOOLE_0:def_4; assume A5: o = a ; ::_thesis: idm a in <^o,o^> then idm a = idm b by A3; hence idm a in <^o,o^> by A1, A5, Th23; ::_thesis: verum end; hence Intersect (A,B) is subcategory of A by ALTCAT_2:def_14; ::_thesis: verum end; begin scheme :: YELLOW20:sch 1 SubcategoryUniq{ F1() -> category, F2() -> non empty subcategory of F1(), F3() -> non empty subcategory of F1(), P1[ set ], P2[ set , set , set ] } : AltCatStr(# the carrier of F2(), the Arrows of F2(), the Comp of F2() #) = AltCatStr(# the carrier of F3(), the Arrows of F3(), the Comp of F3() #) provided A1: for a being object of F1() holds ( a is object of F2() iff P1[a] ) and A2: for a, b being object of F1() for a9, b9 being object of F2() st a9 = a & b9 = b & <^a,b^> <> {} holds for f being Morphism of a,b holds ( f in <^a9,b9^> iff P2[a,b,f] ) and A3: for a being object of F1() holds ( a is object of F3() iff P1[a] ) and A4: for a, b being object of F1() for a9, b9 being object of F3() st a9 = a & b9 = b & <^a,b^> <> {} holds for f being Morphism of a,b holds ( f in <^a9,b9^> iff P2[a,b,f] ) proof A5: the carrier of F2() c= the carrier of F1() by ALTCAT_2:def_11; A6: the carrier of F3() c= the carrier of F1() by ALTCAT_2:def_11; A7: the carrier of F2() = the carrier of F3() proof hereby :: according to TARSKI:def_3,XBOOLE_0:def_10 ::_thesis: the carrier of F3() c= the carrier of F2() let x be set ; ::_thesis: ( x in the carrier of F2() implies x in the carrier of F3() ) assume A8: x in the carrier of F2() ; ::_thesis: x in the carrier of F3() then reconsider a = x as object of F2() ; reconsider a = a as object of F1() by A5, A8; P1[a] by A1; then a is object of F3() by A3; hence x in the carrier of F3() ; ::_thesis: verum end; let x be set ; :: according to TARSKI:def_3 ::_thesis: ( not x in the carrier of F3() or x in the carrier of F2() ) assume A9: x in the carrier of F3() ; ::_thesis: x in the carrier of F2() then reconsider a = x as object of F3() ; reconsider a = a as object of F1() by A6, A9; P1[a] by A3; then a is object of F2() by A1; hence x in the carrier of F2() ; ::_thesis: verum end; now__::_thesis:_for_a,_b_being_Element_of_F2()_holds_the_Arrows_of_F2()_._(a,b)_=_the_Arrows_of_F3()_._(a,b) let a, b be Element of F2(); ::_thesis: the Arrows of F2() . (a,b) = the Arrows of F3() . (a,b) reconsider x1 = a, y1 = b as object of F2() ; reconsider x2 = x1, y2 = y1 as object of F3() by A7; ( x1 in the carrier of F2() & y1 in the carrier of F2() ) ; then reconsider a9 = a, b9 = b as object of F1() by A5; A10: <^x2,y2^> c= <^a9,b9^> by ALTCAT_2:31; A11: <^x2,y2^> c= <^x1,y1^> proof let f be set ; :: according to TARSKI:def_3 ::_thesis: ( not f in <^x2,y2^> or f in <^x1,y1^> ) assume A12: f in <^x2,y2^> ; ::_thesis: f in <^x1,y1^> then reconsider f = f as Morphism of a9,b9 by A10; P2[a9,b9,f] by A4, A10, A12; hence f in <^x1,y1^> by A2, A10, A12; ::_thesis: verum end; A13: <^x1,y1^> c= <^a9,b9^> by ALTCAT_2:31; <^x1,y1^> c= <^x2,y2^> proof let f be set ; :: according to TARSKI:def_3 ::_thesis: ( not f in <^x1,y1^> or f in <^x2,y2^> ) assume A14: f in <^x1,y1^> ; ::_thesis: f in <^x2,y2^> then reconsider f = f as Morphism of a9,b9 by A13; P2[a9,b9,f] by A2, A13, A14; hence f in <^x2,y2^> by A4, A13, A14; ::_thesis: verum end; hence the Arrows of F2() . (a,b) = the Arrows of F3() . (a,b) by A11, XBOOLE_0:def_10; ::_thesis: verum end; hence AltCatStr(# the carrier of F2(), the Arrows of F2(), the Comp of F2() #) = AltCatStr(# the carrier of F3(), the Arrows of F3(), the Comp of F3() #) by A7, ALTCAT_1:7, ALTCAT_2:26; ::_thesis: verum end; theorem Th26: :: YELLOW20:26 for A being non empty AltCatStr for B being non empty SubCatStr of A holds ( B is full iff for a1, a2 being object of A for b1, b2 being object of B st b1 = a1 & b2 = a2 holds <^b1,b2^> = <^a1,a2^> ) proof let A be non empty AltCatStr ; ::_thesis: for B being non empty SubCatStr of A holds ( B is full iff for a1, a2 being object of A for b1, b2 being object of B st b1 = a1 & b2 = a2 holds <^b1,b2^> = <^a1,a2^> ) let B be non empty SubCatStr of A; ::_thesis: ( B is full iff for a1, a2 being object of A for b1, b2 being object of B st b1 = a1 & b2 = a2 holds <^b1,b2^> = <^a1,a2^> ) thus ( B is full implies for a1, a2 being object of A for b1, b2 being object of B st b1 = a1 & b2 = a2 holds <^b1,b2^> = <^a1,a2^> ) by ALTCAT_2:28; ::_thesis: ( ( for a1, a2 being object of A for b1, b2 being object of B st b1 = a1 & b2 = a2 holds <^b1,b2^> = <^a1,a2^> ) implies B is full ) A1: the carrier of B c= the carrier of A by ALTCAT_2:def_11; A2: dom the Arrows of B = [: the carrier of B, the carrier of B:] by PARTFUN1:def_2; assume A3: for a1, a2 being object of A for b1, b2 being object of B st b1 = a1 & b2 = a2 holds <^b1,b2^> = <^a1,a2^> ; ::_thesis: B is full A4: now__::_thesis:_for_x_being_set_st_x_in_dom_the_Arrows_of_B_holds_ the_Arrows_of_B_._x_=_the_Arrows_of_A_._x let x be set ; ::_thesis: ( x in dom the Arrows of B implies the Arrows of B . x = the Arrows of A . x ) assume x in dom the Arrows of B ; ::_thesis: the Arrows of B . x = the Arrows of A . x then consider b1, b2 being set such that A5: ( b1 in the carrier of B & b2 in the carrier of B ) and A6: x = [b1,b2] by ZFMISC_1:def_2; reconsider b1 = b1, b2 = b2 as object of B by A5; reconsider a1 = b1, a2 = b2 as object of A by A1, A5; thus the Arrows of B . x = <^b1,b2^> by A6 .= <^a1,a2^> by A3 .= the Arrows of A . x by A6 ; ::_thesis: verum end; A7: dom the Arrows of A = [: the carrier of A, the carrier of A:] by PARTFUN1:def_2; [: the carrier of A, the carrier of A:] /\ [: the carrier of B, the carrier of B:] = [: the carrier of B, the carrier of B:] by A1, XBOOLE_1:28, ZFMISC_1:96; hence the Arrows of B = the Arrows of A || the carrier of B by A7, A2, A4, FUNCT_1:46; :: according to ALTCAT_2:def_13 ::_thesis: verum end; scheme :: YELLOW20:sch 2 FullSubcategoryEx{ F1() -> category, P1[ set ] } : ex B being non empty strict full subcategory of F1() st for a being object of F1() holds ( a is object of B iff P1[a] ) provided A1: ex a being object of F1() st P1[a] proof defpred S1[ set , set , set ] means verum; A2: for a, b, c being object of F1() st P1[a] & P1[b] & P1[c] & <^a,b^> <> {} & <^b,c^> <> {} holds for f being Morphism of a,b for g being Morphism of b,c st S1[a,b,f] & S1[b,c,g] holds S1[a,c,g * f] ; A3: for a being object of F1() st P1[a] holds S1[a,a, idm a] ; A4: ex a being object of F1() st P1[a] by A1; consider B being non empty strict subcategory of F1() such that A5: for a being object of F1() holds ( a is object of B iff P1[a] ) and A6: for a, b being object of F1() for a9, b9 being object of B st a9 = a & b9 = b & <^a,b^> <> {} holds for f being Morphism of a,b holds ( f in <^a9,b9^> iff S1[a,b,f] ) from YELLOW18:sch_7(A4, A2, A3); now__::_thesis:_for_a1,_a2_being_object_of_F1() for_b1,_b2_being_object_of_B_st_b1_=_a1_&_b2_=_a2_holds_ <^b1,b2^>_=_<^a1,a2^> let a1, a2 be object of F1(); ::_thesis: for b1, b2 being object of B st b1 = a1 & b2 = a2 holds <^b1,b2^> = <^a1,a2^> let b1, b2 be object of B; ::_thesis: ( b1 = a1 & b2 = a2 implies <^b1,b2^> = <^a1,a2^> ) assume A7: ( b1 = a1 & b2 = a2 ) ; ::_thesis: <^b1,b2^> = <^a1,a2^> A8: <^a1,a2^> c= <^b1,b2^> proof let f be set ; :: according to TARSKI:def_3 ::_thesis: ( not f in <^a1,a2^> or f in <^b1,b2^> ) assume f in <^a1,a2^> ; ::_thesis: f in <^b1,b2^> hence f in <^b1,b2^> by A6, A7; ::_thesis: verum end; <^b1,b2^> c= <^a1,a2^> by A7, ALTCAT_2:31; hence <^b1,b2^> = <^a1,a2^> by A8, XBOOLE_0:def_10; ::_thesis: verum end; then B is full by Th26; hence ex B being non empty strict full subcategory of F1() st for a being object of F1() holds ( a is object of B iff P1[a] ) by A5; ::_thesis: verum end; scheme :: YELLOW20:sch 3 FullSubcategoryUniq{ F1() -> category, F2() -> non empty full subcategory of F1(), F3() -> non empty full subcategory of F1(), P1[ set ] } : AltCatStr(# the carrier of F2(), the Arrows of F2(), the Comp of F2() #) = AltCatStr(# the carrier of F3(), the Arrows of F3(), the Comp of F3() #) provided A1: for a being object of F1() holds ( a is object of F2() iff P1[a] ) and A2: for a being object of F1() holds ( a is object of F3() iff P1[a] ) proof A3: for a being object of F1() holds ( a is object of F3() iff P1[a] ) by A2; defpred S1[ set , set , set ] means verum; A4: now__::_thesis:_for_a,_b_being_object_of_F1() for_a9,_b9_being_object_of_F2()_st_a9_=_a_&_b9_=_b_&_<^a,b^>_<>_{}_holds_ for_f_being_Morphism_of_a,b_holds_ (_f_in_<^a9,b9^>_iff_S1[a,b,f]_) let a, b be object of F1(); ::_thesis: for a9, b9 being object of F2() st a9 = a & b9 = b & <^a,b^> <> {} holds for f being Morphism of a,b holds ( f in <^a9,b9^> iff S1[a,b,f] ) let a9, b9 be object of F2(); ::_thesis: ( a9 = a & b9 = b & <^a,b^> <> {} implies for f being Morphism of a,b holds ( f in <^a9,b9^> iff S1[a,b,f] ) ) assume ( a9 = a & b9 = b ) ; ::_thesis: ( <^a,b^> <> {} implies for f being Morphism of a,b holds ( f in <^a9,b9^> iff S1[a,b,f] ) ) then <^a9,b9^> = <^a,b^> by Th26; hence ( <^a,b^> <> {} implies for f being Morphism of a,b holds ( f in <^a9,b9^> iff S1[a,b,f] ) ) ; ::_thesis: verum end; A5: now__::_thesis:_for_a,_b_being_object_of_F1() for_a9,_b9_being_object_of_F3()_st_a9_=_a_&_b9_=_b_&_<^a,b^>_<>_{}_holds_ for_f_being_Morphism_of_a,b_holds_ (_f_in_<^a9,b9^>_iff_S1[a,b,f]_) let a, b be object of F1(); ::_thesis: for a9, b9 being object of F3() st a9 = a & b9 = b & <^a,b^> <> {} holds for f being Morphism of a,b holds ( f in <^a9,b9^> iff S1[a,b,f] ) let a9, b9 be object of F3(); ::_thesis: ( a9 = a & b9 = b & <^a,b^> <> {} implies for f being Morphism of a,b holds ( f in <^a9,b9^> iff S1[a,b,f] ) ) assume ( a9 = a & b9 = b ) ; ::_thesis: ( <^a,b^> <> {} implies for f being Morphism of a,b holds ( f in <^a9,b9^> iff S1[a,b,f] ) ) then <^a9,b9^> = <^a,b^> by Th26; hence ( <^a,b^> <> {} implies for f being Morphism of a,b holds ( f in <^a9,b9^> iff S1[a,b,f] ) ) ; ::_thesis: verum end; A6: for a being object of F1() holds ( a is object of F2() iff P1[a] ) by A1; thus AltCatStr(# the carrier of F2(), the Arrows of F2(), the Comp of F2() #) = AltCatStr(# the carrier of F3(), the Arrows of F3(), the Comp of F3() #) from YELLOW20:sch_1(A6, A4, A3, A5); ::_thesis: verum end; begin registration let f be Function-yielding Function; let x, y be set ; clusterf . (x,y) -> Relation-like Function-like ; coherence ( f . (x,y) is Relation-like & f . (x,y) is Function-like ) ; end; theorem Th27: :: YELLOW20:27 for A being category for C being non empty subcategory of A for a, b being object of C st <^a,b^> <> {} holds for f being Morphism of a,b holds (incl C) . f = f proof let A be category; ::_thesis: for C being non empty subcategory of A for a, b being object of C st <^a,b^> <> {} holds for f being Morphism of a,b holds (incl C) . f = f let C be non empty subcategory of A; ::_thesis: for a, b being object of C st <^a,b^> <> {} holds for f being Morphism of a,b holds (incl C) . f = f let a, b be object of C; ::_thesis: ( <^a,b^> <> {} implies for f being Morphism of a,b holds (incl C) . f = f ) assume A1: <^a,b^> <> {} ; ::_thesis: for f being Morphism of a,b holds (incl C) . f = f let f be Morphism of a,b; ::_thesis: (incl C) . f = f A2: ( the MorphMap of (incl C) = id the Arrows of C & [a,b] in [: the carrier of C, the carrier of C:] ) by FUNCTOR0:def_28, ZFMISC_1:def_2; <^((incl C) . a),((incl C) . b)^> <> {} by A1, FUNCTOR0:28, XBOOLE_1:3; hence (incl C) . f = (Morph-Map ((incl C),a,b)) . f by A1, FUNCTOR0:def_15 .= (id ( the Arrows of C . (a,b))) . f by A2, MSUALG_3:def_1 .= f by A1, FUNCT_1:18 ; ::_thesis: verum end; registration let A be category; let C be non empty subcategory of A; cluster incl C -> id-preserving comp-preserving ; coherence ( incl C is id-preserving & incl C is comp-preserving ) proof thus incl C is id-preserving ::_thesis: incl C is comp-preserving proof let a be object of C; :: according to FUNCTOR0:def_20 ::_thesis: (Morph-Map ((incl C),a,a)) . (idm a) = idm ((incl C) . a) A1: (incl C) . a = a by FUNCTOR0:27; thus (Morph-Map ((incl C),a,a)) . (idm a) = (incl C) . (idm a) by FUNCTOR0:def_15 .= idm a by Th27 .= idm ((incl C) . a) by A1, ALTCAT_2:34 ; ::_thesis: verum end; let o1, o2, o3 be object of C; :: according to FUNCTOR0:def_23 ::_thesis: ( <^o1,o2^> = {} or <^o2,o3^> = {} or for b1 being M2(<^o1,o2^>) for b2 being M2(<^o2,o3^>) holds (incl C) . (b2 * b1) = ((incl C) . b2) * ((incl C) . b1) ) assume A2: ( <^o1,o2^> <> {} & <^o2,o3^> <> {} ) ; ::_thesis: for b1 being M2(<^o1,o2^>) for b2 being M2(<^o2,o3^>) holds (incl C) . (b2 * b1) = ((incl C) . b2) * ((incl C) . b1) let f be Morphism of o1,o2; ::_thesis: for b1 being M2(<^o2,o3^>) holds (incl C) . (b1 * f) = ((incl C) . b1) * ((incl C) . f) let g be Morphism of o2,o3; ::_thesis: (incl C) . (g * f) = ((incl C) . g) * ((incl C) . f) <^o1,o3^> <> {} by A2, ALTCAT_1:def_2; then A3: ( (incl C) . o3 = o3 & (incl C) . (g * f) = g * f ) by Th27, FUNCTOR0:27; A4: ( (incl C) . o1 = o1 & (incl C) . o2 = o2 ) by FUNCTOR0:27; ( (incl C) . g = g & (incl C) . f = f ) by A2, Th27; hence (incl C) . (g * f) = ((incl C) . g) * ((incl C) . f) by A2, A4, A3, ALTCAT_2:32; ::_thesis: verum end; end; registration let A be category; let C be non empty subcategory of A; cluster incl C -> Covariant ; coherence incl C is Covariant ; end; definition let A be category; let C be non empty subcategory of A; :: original: incl redefine func incl C -> strict covariant Functor of C,A; coherence incl C is strict covariant Functor of C,A by FUNCTOR0:def_25; end; definition let A, B be category; let C be non empty subcategory of A; let F be covariant Functor of A,B; :: original: | redefine funcF | C -> strict covariant Functor of C,B; coherence F | C is strict covariant Functor of C,B proof F | C = F * (incl C) ; hence F | C is strict covariant Functor of C,B ; ::_thesis: verum end; end; definition let A, B be category; let C be non empty subcategory of A; let F be contravariant Functor of A,B; :: original: | redefine funcF | C -> strict contravariant Functor of C,B; coherence F | C is strict contravariant Functor of C,B proof F | C = F * (incl C) ; hence F | C is strict contravariant Functor of C,B ; ::_thesis: verum end; end; theorem Th28: :: YELLOW20:28 for A, B being category for C being non empty subcategory of A for F being FunctorStr over A,B for a being object of A for c being object of C st c = a holds (F | C) . c = F . a proof let A, B be category; ::_thesis: for C being non empty subcategory of A for F being FunctorStr over A,B for a being object of A for c being object of C st c = a holds (F | C) . c = F . a let C be non empty subcategory of A; ::_thesis: for F being FunctorStr over A,B for a being object of A for c being object of C st c = a holds (F | C) . c = F . a let F be FunctorStr over A,B; ::_thesis: for a being object of A for c being object of C st c = a holds (F | C) . c = F . a let b be object of A; ::_thesis: for c being object of C st c = b holds (F | C) . c = F . b let a be object of C; ::_thesis: ( a = b implies (F | C) . a = F . b ) assume a = b ; ::_thesis: (F | C) . a = F . b then (incl C) . a = b by FUNCTOR0:27; hence (F | C) . a = F . b by FUNCTOR0:33; ::_thesis: verum end; theorem Th29: :: YELLOW20:29 for A, B being category for C being non empty subcategory of A for F being covariant Functor of A,B for a, b being object of A for c, d being object of C st c = a & d = b & <^c,d^> <> {} holds for f being Morphism of a,b for g being Morphism of c,d st g = f holds (F | C) . g = F . f proof let A, B be category; ::_thesis: for C being non empty subcategory of A for F being covariant Functor of A,B for a, b being object of A for c, d being object of C st c = a & d = b & <^c,d^> <> {} holds for f being Morphism of a,b for g being Morphism of c,d st g = f holds (F | C) . g = F . f let C be non empty subcategory of A; ::_thesis: for F being covariant Functor of A,B for a, b being object of A for c, d being object of C st c = a & d = b & <^c,d^> <> {} holds for f being Morphism of a,b for g being Morphism of c,d st g = f holds (F | C) . g = F . f let F be covariant Functor of A,B; ::_thesis: for a, b being object of A for c, d being object of C st c = a & d = b & <^c,d^> <> {} holds for f being Morphism of a,b for g being Morphism of c,d st g = f holds (F | C) . g = F . f let a, b be object of A; ::_thesis: for c, d being object of C st c = a & d = b & <^c,d^> <> {} holds for f being Morphism of a,b for g being Morphism of c,d st g = f holds (F | C) . g = F . f let c, d be object of C; ::_thesis: ( c = a & d = b & <^c,d^> <> {} implies for f being Morphism of a,b for g being Morphism of c,d st g = f holds (F | C) . g = F . f ) assume that A1: ( c = a & d = b ) and A2: <^c,d^> <> {} ; ::_thesis: for f being Morphism of a,b for g being Morphism of c,d st g = f holds (F | C) . g = F . f let f be Morphism of a,b; ::_thesis: for g being Morphism of c,d st g = f holds (F | C) . g = F . f let g be Morphism of c,d; ::_thesis: ( g = f implies (F | C) . g = F . f ) assume g = f ; ::_thesis: (F | C) . g = F . f then A3: (incl C) . g = f by A2, Th27; ( (incl C) . c = a & (incl C) . d = b ) by A1, FUNCTOR0:27; hence (F | C) . g = F . f by A2, A3, FUNCTOR3:6; ::_thesis: verum end; theorem Th30: :: YELLOW20:30 for A, B being category for C being non empty subcategory of A for F being contravariant Functor of A,B for a, b being object of A for c, d being object of C st c = a & d = b & <^c,d^> <> {} holds for f being Morphism of a,b for g being Morphism of c,d st g = f holds (F | C) . g = F . f proof let A, B be category; ::_thesis: for C being non empty subcategory of A for F being contravariant Functor of A,B for a, b being object of A for c, d being object of C st c = a & d = b & <^c,d^> <> {} holds for f being Morphism of a,b for g being Morphism of c,d st g = f holds (F | C) . g = F . f let C be non empty subcategory of A; ::_thesis: for F being contravariant Functor of A,B for a, b being object of A for c, d being object of C st c = a & d = b & <^c,d^> <> {} holds for f being Morphism of a,b for g being Morphism of c,d st g = f holds (F | C) . g = F . f let F be contravariant Functor of A,B; ::_thesis: for a, b being object of A for c, d being object of C st c = a & d = b & <^c,d^> <> {} holds for f being Morphism of a,b for g being Morphism of c,d st g = f holds (F | C) . g = F . f let a, b be object of A; ::_thesis: for c, d being object of C st c = a & d = b & <^c,d^> <> {} holds for f being Morphism of a,b for g being Morphism of c,d st g = f holds (F | C) . g = F . f let c, d be object of C; ::_thesis: ( c = a & d = b & <^c,d^> <> {} implies for f being Morphism of a,b for g being Morphism of c,d st g = f holds (F | C) . g = F . f ) assume that A1: ( c = a & d = b ) and A2: <^c,d^> <> {} ; ::_thesis: for f being Morphism of a,b for g being Morphism of c,d st g = f holds (F | C) . g = F . f let f be Morphism of a,b; ::_thesis: for g being Morphism of c,d st g = f holds (F | C) . g = F . f let g be Morphism of c,d; ::_thesis: ( g = f implies (F | C) . g = F . f ) assume g = f ; ::_thesis: (F | C) . g = F . f then A3: (incl C) . g = f by A2, Th27; ( (incl C) . c = a & (incl C) . d = b ) by A1, FUNCTOR0:27; hence (F | C) . g = F . f by A2, A3, FUNCTOR3:8; ::_thesis: verum end; theorem Th31: :: YELLOW20:31 for A, B being non empty AltGraph for F being BimapStr over A,B st F is Covariant & F is one-to-one holds for a, b being object of A st F . a = F . b holds a = b proof let A, B be non empty AltGraph ; ::_thesis: for F being BimapStr over A,B st F is Covariant & F is one-to-one holds for a, b being object of A st F . a = F . b holds a = b let F be BimapStr over A,B; ::_thesis: ( F is Covariant & F is one-to-one implies for a, b being object of A st F . a = F . b holds a = b ) given f being Function of the carrier of A, the carrier of B such that A1: the ObjectMap of F = [:f,f:] ; :: according to FUNCTOR0:def_1,FUNCTOR0:def_12 ::_thesis: ( not F is one-to-one or for a, b being object of A st F . a = F . b holds a = b ) assume the ObjectMap of F is V7() ; :: according to FUNCTOR0:def_6 ::_thesis: for a, b being object of A st F . a = F . b holds a = b then A2: f is one-to-one by A1, FUNCTOR0:7; let a, b be object of A; ::_thesis: ( F . a = F . b implies a = b ) assume A3: F . a = F . b ; ::_thesis: a = b A4: ( [(f . a),(f . a)] `1 = f . a & [(f . b),(f . b)] `1 = f . b ) ; ( the ObjectMap of F . (a,a) = [(f . a),(f . a)] & the ObjectMap of F . (b,b) = [(f . b),(f . b)] ) by A1, FUNCT_3:75; hence a = b by A2, A3, A4, FUNCT_2:19; ::_thesis: verum end; theorem Th32: :: YELLOW20:32 for A, B being non empty reflexive AltGraph for F being feasible Covariant FunctorStr over A,B st F is faithful holds for a, b being object of A st <^a,b^> <> {} holds for f, g being Morphism of a,b st F . f = F . g holds f = g proof let A, B be non empty reflexive AltGraph ; ::_thesis: for F being feasible Covariant FunctorStr over A,B st F is faithful holds for a, b being object of A st <^a,b^> <> {} holds for f, g being Morphism of a,b st F . f = F . g holds f = g let F be feasible Covariant FunctorStr over A,B; ::_thesis: ( F is faithful implies for a, b being object of A st <^a,b^> <> {} holds for f, g being Morphism of a,b st F . f = F . g holds f = g ) assume A1: for i being set for f being Function st i in dom the MorphMap of F & the MorphMap of F . i = f holds f is one-to-one ; :: according to MSUALG_3:def_2,FUNCTOR0:def_30 ::_thesis: for a, b being object of A st <^a,b^> <> {} holds for f, g being Morphism of a,b st F . f = F . g holds f = g let a, b be object of A; ::_thesis: ( <^a,b^> <> {} implies for f, g being Morphism of a,b st F . f = F . g holds f = g ) assume A2: <^a,b^> <> {} ; ::_thesis: for f, g being Morphism of a,b st F . f = F . g holds f = g let f, g be Morphism of a,b; ::_thesis: ( F . f = F . g implies f = g ) ( dom the MorphMap of F = [: the carrier of A, the carrier of A:] & [a,b] in [: the carrier of A, the carrier of A:] ) by PARTFUN1:def_2, ZFMISC_1:def_2; then A3: Morph-Map (F,a,b) is one-to-one by A1; A4: <^(F . a),(F . b)^> <> {} by A2, FUNCTOR0:def_18; then ( F . f = (Morph-Map (F,a,b)) . f & F . g = (Morph-Map (F,a,b)) . g ) by A2, FUNCTOR0:def_15; hence ( F . f = F . g implies f = g ) by A2, A4, A3, FUNCT_2:19; ::_thesis: verum end; theorem Th33: :: YELLOW20:33 for A, B being non empty AltGraph for F being Covariant FunctorStr over A,B st F is surjective holds for a, b being object of B st <^a,b^> <> {} holds for f being Morphism of a,b ex c, d being object of A ex g being Morphism of c,d st ( a = F . c & b = F . d & <^c,d^> <> {} & f = F . g ) proof let A, B be non empty AltGraph ; ::_thesis: for F being Covariant FunctorStr over A,B st F is surjective holds for a, b being object of B st <^a,b^> <> {} holds for f being Morphism of a,b ex c, d being object of A ex g being Morphism of c,d st ( a = F . c & b = F . d & <^c,d^> <> {} & f = F . g ) let F be Covariant FunctorStr over A,B; ::_thesis: ( F is surjective implies for a, b being object of B st <^a,b^> <> {} holds for f being Morphism of a,b ex c, d being object of A ex g being Morphism of c,d st ( a = F . c & b = F . d & <^c,d^> <> {} & f = F . g ) ) given f being ManySortedFunction of the Arrows of A, the Arrows of B * the ObjectMap of F such that A1: ( f = the MorphMap of F & f is "onto" ) ; :: according to FUNCTOR0:def_32,FUNCTOR0:def_34 ::_thesis: ( not F is onto or for a, b being object of B st <^a,b^> <> {} holds for f being Morphism of a,b ex c, d being object of A ex g being Morphism of c,d st ( a = F . c & b = F . d & <^c,d^> <> {} & f = F . g ) ) assume A2: rng the ObjectMap of F = [: the carrier of B, the carrier of B:] ; :: according to FUNCTOR0:def_7,FUNCT_2:def_3 ::_thesis: for a, b being object of B st <^a,b^> <> {} holds for f being Morphism of a,b ex c, d being object of A ex g being Morphism of c,d st ( a = F . c & b = F . d & <^c,d^> <> {} & f = F . g ) let a, b be object of B; ::_thesis: ( <^a,b^> <> {} implies for f being Morphism of a,b ex c, d being object of A ex g being Morphism of c,d st ( a = F . c & b = F . d & <^c,d^> <> {} & f = F . g ) ) assume A3: <^a,b^> <> {} ; ::_thesis: for f being Morphism of a,b ex c, d being object of A ex g being Morphism of c,d st ( a = F . c & b = F . d & <^c,d^> <> {} & f = F . g ) the ObjectMap of F is Covariant by FUNCTOR0:def_12; then consider g being Function of the carrier of A, the carrier of B such that A4: the ObjectMap of F = [:g,g:] by FUNCTOR0:def_1; let f be Morphism of a,b; ::_thesis: ex c, d being object of A ex g being Morphism of c,d st ( a = F . c & b = F . d & <^c,d^> <> {} & f = F . g ) ( dom the ObjectMap of F = [: the carrier of A, the carrier of A:] & [a,b] in rng the ObjectMap of F ) by A2, FUNCT_2:def_1, ZFMISC_1:def_2; then consider x being set such that A5: x in [: the carrier of A, the carrier of A:] and A6: [a,b] = the ObjectMap of F . x by FUNCT_1:def_3; consider c, d being set such that A7: ( c in the carrier of A & d in the carrier of A ) and A8: [c,d] = x by A5, ZFMISC_1:def_2; reconsider c = c, d = d as object of A by A7; the ObjectMap of F . (d,d) = [(g . d),(g . d)] by A4, FUNCT_3:75; then A9: F . d = g . d by MCART_1:7; the ObjectMap of F . (c,c) = [(g . c),(g . c)] by A4, FUNCT_3:75; then F . c = g . c by MCART_1:7; then A10: the ObjectMap of F . (c,d) = [(F . c),(F . d)] by A4, A9, FUNCT_3:75; rng (Morph-Map (F,c,d)) = ( the Arrows of B * the ObjectMap of F) . [c,d] by A1, A5, A8, MSUALG_3:def_3 .= <^a,b^> by A5, A6, A8, FUNCT_2:15 ; then consider g being set such that A11: g in dom (Morph-Map (F,c,d)) and A12: f = (Morph-Map (F,c,d)) . g by A3, FUNCT_1:def_3; take c ; ::_thesis: ex d being object of A ex g being Morphism of c,d st ( a = F . c & b = F . d & <^c,d^> <> {} & f = F . g ) take d ; ::_thesis: ex g being Morphism of c,d st ( a = F . c & b = F . d & <^c,d^> <> {} & f = F . g ) reconsider g = g as Morphism of c,d by A11; take g ; ::_thesis: ( a = F . c & b = F . d & <^c,d^> <> {} & f = F . g ) thus ( a = F . c & b = F . d & <^c,d^> <> {} ) by A6, A8, A10, A11, XTUPLE_0:1; ::_thesis: f = F . g thus f = F . g by A3, A6, A8, A10, A11, A12, FUNCTOR0:def_15; ::_thesis: verum end; theorem Th34: :: YELLOW20:34 for A, B being non empty AltGraph for F being BimapStr over A,B st F is Contravariant & F is one-to-one holds for a, b being object of A st F . a = F . b holds a = b proof let A, B be non empty AltGraph ; ::_thesis: for F being BimapStr over A,B st F is Contravariant & F is one-to-one holds for a, b being object of A st F . a = F . b holds a = b let F be BimapStr over A,B; ::_thesis: ( F is Contravariant & F is one-to-one implies for a, b being object of A st F . a = F . b holds a = b ) given f being Function of the carrier of A, the carrier of B such that A1: the ObjectMap of F = ~ [:f,f:] ; :: according to FUNCTOR0:def_2,FUNCTOR0:def_13 ::_thesis: ( not F is one-to-one or for a, b being object of A st F . a = F . b holds a = b ) assume the ObjectMap of F is V7() ; :: according to FUNCTOR0:def_6 ::_thesis: for a, b being object of A st F . a = F . b holds a = b then [:f,f:] is V7() by A1, FUNCTOR0:9; then A2: f is one-to-one by FUNCTOR0:7; let a, b be object of A; ::_thesis: ( F . a = F . b implies a = b ) assume A3: F . a = F . b ; ::_thesis: a = b A4: dom the ObjectMap of F = [: the carrier of A, the carrier of A:] by FUNCT_2:def_1; [b,b] in [: the carrier of A, the carrier of A:] by ZFMISC_1:def_2; then the ObjectMap of F . (b,b) = [:f,f:] . (b,b) by A1, A4, FUNCT_4:43; then A5: the ObjectMap of F . (b,b) = [(f . b),(f . b)] by FUNCT_3:75; [a,a] in [: the carrier of A, the carrier of A:] by ZFMISC_1:def_2; then the ObjectMap of F . (a,a) = [:f,f:] . (a,a) by A1, A4, FUNCT_4:43; then A6: the ObjectMap of F . (a,a) = [(f . a),(f . a)] by FUNCT_3:75; ( [(f . a),(f . a)] `1 = f . a & [(f . b),(f . b)] `1 = f . b ) ; hence a = b by A2, A3, A6, A5, FUNCT_2:19; ::_thesis: verum end; theorem Th35: :: YELLOW20:35 for A, B being non empty reflexive AltGraph for F being feasible Contravariant FunctorStr over A,B st F is faithful holds for a, b being object of A st <^a,b^> <> {} holds for f, g being Morphism of a,b st F . f = F . g holds f = g proof let A, B be non empty reflexive AltGraph ; ::_thesis: for F being feasible Contravariant FunctorStr over A,B st F is faithful holds for a, b being object of A st <^a,b^> <> {} holds for f, g being Morphism of a,b st F . f = F . g holds f = g let F be feasible Contravariant FunctorStr over A,B; ::_thesis: ( F is faithful implies for a, b being object of A st <^a,b^> <> {} holds for f, g being Morphism of a,b st F . f = F . g holds f = g ) assume A1: for i being set for f being Function st i in dom the MorphMap of F & the MorphMap of F . i = f holds f is one-to-one ; :: according to MSUALG_3:def_2,FUNCTOR0:def_30 ::_thesis: for a, b being object of A st <^a,b^> <> {} holds for f, g being Morphism of a,b st F . f = F . g holds f = g let a, b be object of A; ::_thesis: ( <^a,b^> <> {} implies for f, g being Morphism of a,b st F . f = F . g holds f = g ) assume A2: <^a,b^> <> {} ; ::_thesis: for f, g being Morphism of a,b st F . f = F . g holds f = g let f, g be Morphism of a,b; ::_thesis: ( F . f = F . g implies f = g ) ( dom the MorphMap of F = [: the carrier of A, the carrier of A:] & [a,b] in [: the carrier of A, the carrier of A:] ) by PARTFUN1:def_2, ZFMISC_1:def_2; then A3: Morph-Map (F,a,b) is one-to-one by A1; A4: <^(F . b),(F . a)^> <> {} by A2, FUNCTOR0:def_19; then ( F . f = (Morph-Map (F,a,b)) . f & F . g = (Morph-Map (F,a,b)) . g ) by A2, FUNCTOR0:def_16; hence ( F . f = F . g implies f = g ) by A2, A4, A3, FUNCT_2:19; ::_thesis: verum end; theorem Th36: :: YELLOW20:36 for A, B being non empty AltGraph for F being Contravariant FunctorStr over A,B st F is surjective holds for a, b being object of B st <^a,b^> <> {} holds for f being Morphism of a,b ex c, d being object of A ex g being Morphism of c,d st ( b = F . c & a = F . d & <^c,d^> <> {} & f = F . g ) proof let A, B be non empty AltGraph ; ::_thesis: for F being Contravariant FunctorStr over A,B st F is surjective holds for a, b being object of B st <^a,b^> <> {} holds for f being Morphism of a,b ex c, d being object of A ex g being Morphism of c,d st ( b = F . c & a = F . d & <^c,d^> <> {} & f = F . g ) let F be Contravariant FunctorStr over A,B; ::_thesis: ( F is surjective implies for a, b being object of B st <^a,b^> <> {} holds for f being Morphism of a,b ex c, d being object of A ex g being Morphism of c,d st ( b = F . c & a = F . d & <^c,d^> <> {} & f = F . g ) ) given f being ManySortedFunction of the Arrows of A, the Arrows of B * the ObjectMap of F such that A1: ( f = the MorphMap of F & f is "onto" ) ; :: according to FUNCTOR0:def_32,FUNCTOR0:def_34 ::_thesis: ( not F is onto or for a, b being object of B st <^a,b^> <> {} holds for f being Morphism of a,b ex c, d being object of A ex g being Morphism of c,d st ( b = F . c & a = F . d & <^c,d^> <> {} & f = F . g ) ) assume A2: rng the ObjectMap of F = [: the carrier of B, the carrier of B:] ; :: according to FUNCTOR0:def_7,FUNCT_2:def_3 ::_thesis: for a, b being object of B st <^a,b^> <> {} holds for f being Morphism of a,b ex c, d being object of A ex g being Morphism of c,d st ( b = F . c & a = F . d & <^c,d^> <> {} & f = F . g ) let a, b be object of B; ::_thesis: ( <^a,b^> <> {} implies for f being Morphism of a,b ex c, d being object of A ex g being Morphism of c,d st ( b = F . c & a = F . d & <^c,d^> <> {} & f = F . g ) ) assume A3: <^a,b^> <> {} ; ::_thesis: for f being Morphism of a,b ex c, d being object of A ex g being Morphism of c,d st ( b = F . c & a = F . d & <^c,d^> <> {} & f = F . g ) let f be Morphism of a,b; ::_thesis: ex c, d being object of A ex g being Morphism of c,d st ( b = F . c & a = F . d & <^c,d^> <> {} & f = F . g ) ( dom the ObjectMap of F = [: the carrier of A, the carrier of A:] & [a,b] in rng the ObjectMap of F ) by A2, FUNCT_2:def_1, ZFMISC_1:def_2; then consider x being set such that A4: x in [: the carrier of A, the carrier of A:] and A5: [a,b] = the ObjectMap of F . x by FUNCT_1:def_3; A6: dom the ObjectMap of F = [: the carrier of A, the carrier of A:] by FUNCT_2:def_1; the ObjectMap of F is Contravariant by FUNCTOR0:def_13; then consider g being Function of the carrier of A, the carrier of B such that A7: the ObjectMap of F = ~ [:g,g:] by FUNCTOR0:def_2; consider d, c being set such that A8: ( d in the carrier of A & c in the carrier of A ) and A9: [d,c] = x by A4, ZFMISC_1:def_2; reconsider c = c, d = d as object of A by A8; [c,c] in [: the carrier of A, the carrier of A:] by ZFMISC_1:def_2; then the ObjectMap of F . (c,c) = [:g,g:] . (c,c) by A7, A6, FUNCT_4:43; then the ObjectMap of F . (c,c) = [(g . c),(g . c)] by FUNCT_3:75; then A10: F . c = g . c by MCART_1:7; [d,d] in [: the carrier of A, the carrier of A:] by ZFMISC_1:def_2; then the ObjectMap of F . (d,d) = [:g,g:] . (d,d) by A7, A6, FUNCT_4:43; then the ObjectMap of F . (d,d) = [(g . d),(g . d)] by FUNCT_3:75; then A11: F . d = g . d by MCART_1:7; [d,c] in [: the carrier of A, the carrier of A:] by ZFMISC_1:def_2; then A12: the ObjectMap of F . (d,c) = [:g,g:] . (c,d) by A7, A6, FUNCT_4:43 .= [(F . c),(F . d)] by A10, A11, FUNCT_3:75 ; rng (Morph-Map (F,d,c)) = ( the Arrows of B * the ObjectMap of F) . [d,c] by A1, A4, A9, MSUALG_3:def_3 .= <^a,b^> by A4, A5, A9, FUNCT_2:15 ; then consider g being set such that A13: g in dom (Morph-Map (F,d,c)) and A14: f = (Morph-Map (F,d,c)) . g by A3, FUNCT_1:def_3; take d ; ::_thesis: ex d being object of A ex g being Morphism of d,d st ( b = F . d & a = F . d & <^d,d^> <> {} & f = F . g ) take c ; ::_thesis: ex g being Morphism of d,c st ( b = F . d & a = F . c & <^d,c^> <> {} & f = F . g ) reconsider g = g as Morphism of d,c by A13; take g ; ::_thesis: ( b = F . d & a = F . c & <^d,c^> <> {} & f = F . g ) thus ( b = F . d & a = F . c & <^d,c^> <> {} ) by A5, A9, A12, A13, XTUPLE_0:1; ::_thesis: f = F . g thus f = F . g by A3, A5, A9, A12, A13, A14, FUNCTOR0:def_16; ::_thesis: verum end; begin definition let A, B be category; let F be FunctorStr over A,B; let A9, B9 be category; predA9,B9 are_isomorphic_under F means :: YELLOW20:def 4 ( A9 is subcategory of A & B9 is subcategory of B & ex G being covariant Functor of A9,B9 st ( G is bijective & ( for a9 being object of A9 for a being object of A st a9 = a holds G . a9 = F . a ) & ( for b9, c9 being object of A9 for b, c being object of A st <^b9,c9^> <> {} & b9 = b & c9 = c holds for f9 being Morphism of b9,c9 for f being Morphism of b,c st f9 = f holds G . f9 = (Morph-Map (F,b,c)) . f ) ) ); predA9,B9 are_anti-isomorphic_under F means :: YELLOW20:def 5 ( A9 is subcategory of A & B9 is subcategory of B & ex G being contravariant Functor of A9,B9 st ( G is bijective & ( for a9 being object of A9 for a being object of A st a9 = a holds G . a9 = F . a ) & ( for b9, c9 being object of A9 for b, c being object of A st <^b9,c9^> <> {} & b9 = b & c9 = c holds for f9 being Morphism of b9,c9 for f being Morphism of b,c st f9 = f holds G . f9 = (Morph-Map (F,b,c)) . f ) ) ); end; :: deftheorem defines are_isomorphic_under YELLOW20:def_4_:_ for A, B being category for F being FunctorStr over A,B for A9, B9 being category holds ( A9,B9 are_isomorphic_under F iff ( A9 is subcategory of A & B9 is subcategory of B & ex G being covariant Functor of A9,B9 st ( G is bijective & ( for a9 being object of A9 for a being object of A st a9 = a holds G . a9 = F . a ) & ( for b9, c9 being object of A9 for b, c being object of A st <^b9,c9^> <> {} & b9 = b & c9 = c holds for f9 being Morphism of b9,c9 for f being Morphism of b,c st f9 = f holds G . f9 = (Morph-Map (F,b,c)) . f ) ) ) ); :: deftheorem defines are_anti-isomorphic_under YELLOW20:def_5_:_ for A, B being category for F being FunctorStr over A,B for A9, B9 being category holds ( A9,B9 are_anti-isomorphic_under F iff ( A9 is subcategory of A & B9 is subcategory of B & ex G being contravariant Functor of A9,B9 st ( G is bijective & ( for a9 being object of A9 for a being object of A st a9 = a holds G . a9 = F . a ) & ( for b9, c9 being object of A9 for b, c being object of A st <^b9,c9^> <> {} & b9 = b & c9 = c holds for f9 being Morphism of b9,c9 for f being Morphism of b,c st f9 = f holds G . f9 = (Morph-Map (F,b,c)) . f ) ) ) ); theorem :: YELLOW20:37 for A, B, A1, B1 being category for F being FunctorStr over A,B st A1,B1 are_isomorphic_under F holds A1,B1 are_isomorphic proof let A, B, A9, B9 be category; ::_thesis: for F being FunctorStr over A,B st A9,B9 are_isomorphic_under F holds A9,B9 are_isomorphic let F be FunctorStr over A,B; ::_thesis: ( A9,B9 are_isomorphic_under F implies A9,B9 are_isomorphic ) assume that A9 is subcategory of A and B9 is subcategory of B ; :: according to YELLOW20:def_4 ::_thesis: ( for G being covariant Functor of A9,B9 holds ( not G is bijective or ex a9 being object of A9 ex a being object of A st ( a9 = a & not G . a9 = F . a ) or ex b9, c9 being object of A9 ex b, c being object of A st ( <^b9,c9^> <> {} & b9 = b & c9 = c & ex f9 being Morphism of b9,c9 ex f being Morphism of b,c st ( f9 = f & not G . f9 = (Morph-Map (F,b,c)) . f ) ) ) or A9,B9 are_isomorphic ) given G being covariant Functor of A9,B9 such that A1: G is bijective and for a9 being object of A9 for a being object of A st a9 = a holds G . a9 = F . a and for b9, c9 being object of A9 for b, c being object of A st <^b9,c9^> <> {} & b9 = b & c9 = c holds for f9 being Morphism of b9,c9 for f being Morphism of b,c st f9 = f holds G . f9 = (Morph-Map (F,b,c)) . f ; ::_thesis: A9,B9 are_isomorphic take G ; :: according to FUNCTOR0:def_39 ::_thesis: ( G is bijective & G is covariant ) thus ( G is bijective & G is covariant ) by A1; ::_thesis: verum end; theorem :: YELLOW20:38 for A, B, A1, B1 being category for F being FunctorStr over A,B st A1,B1 are_anti-isomorphic_under F holds A1,B1 are_anti-isomorphic proof let A, B, A9, B9 be category; ::_thesis: for F being FunctorStr over A,B st A9,B9 are_anti-isomorphic_under F holds A9,B9 are_anti-isomorphic let F be FunctorStr over A,B; ::_thesis: ( A9,B9 are_anti-isomorphic_under F implies A9,B9 are_anti-isomorphic ) assume that A9 is subcategory of A and B9 is subcategory of B ; :: according to YELLOW20:def_5 ::_thesis: ( for G being contravariant Functor of A9,B9 holds ( not G is bijective or ex a9 being object of A9 ex a being object of A st ( a9 = a & not G . a9 = F . a ) or ex b9, c9 being object of A9 ex b, c being object of A st ( <^b9,c9^> <> {} & b9 = b & c9 = c & ex f9 being Morphism of b9,c9 ex f being Morphism of b,c st ( f9 = f & not G . f9 = (Morph-Map (F,b,c)) . f ) ) ) or A9,B9 are_anti-isomorphic ) given G being contravariant Functor of A9,B9 such that A1: G is bijective and for a9 being object of A9 for a being object of A st a9 = a holds G . a9 = F . a and for b9, c9 being object of A9 for b, c being object of A st <^b9,c9^> <> {} & b9 = b & c9 = c holds for f9 being Morphism of b9,c9 for f being Morphism of b,c st f9 = f holds G . f9 = (Morph-Map (F,b,c)) . f ; ::_thesis: A9,B9 are_anti-isomorphic take G ; :: according to FUNCTOR0:def_40 ::_thesis: ( G is bijective & G is contravariant ) thus ( G is bijective & G is contravariant ) by A1; ::_thesis: verum end; theorem :: YELLOW20:39 for A, B being category for F being covariant Functor of A,B st A,B are_isomorphic_under F holds F is bijective proof let A, B be category; ::_thesis: for F being covariant Functor of A,B st A,B are_isomorphic_under F holds F is bijective let F be covariant Functor of A,B; ::_thesis: ( A,B are_isomorphic_under F implies F is bijective ) assume that A is subcategory of A and B is subcategory of B ; :: according to YELLOW20:def_4 ::_thesis: ( for G being covariant Functor of A,B holds ( not G is bijective or ex a9, a being object of A st ( a9 = a & not G . a9 = F . a ) or ex b9, c9, b, c being object of A st ( <^b9,c9^> <> {} & b9 = b & c9 = c & ex f9 being Morphism of b9,c9 ex f being Morphism of b,c st ( f9 = f & not G . f9 = (Morph-Map (F,b,c)) . f ) ) ) or F is bijective ) given G being covariant Functor of A,B such that A1: G is bijective and A2: for a9, a being object of A st a9 = a holds G . a9 = F . a and A3: for b9, c9, b, c being object of A st <^b9,c9^> <> {} & b9 = b & c9 = c holds for f9 being Morphism of b9,c9 for f being Morphism of b,c st f9 = f holds G . f9 = (Morph-Map (F,b,c)) . f ; ::_thesis: F is bijective ( G is injective & G is surjective ) by A1, FUNCTOR0:def_35; then A4: ( G is one-to-one & G is faithful & G is full & G is onto ) by FUNCTOR0:def_33, FUNCTOR0:def_34; A5: now__::_thesis:_for_a,_b_being_object_of_A_st_<^a,b^>_<>_{}_holds_ for_f_being_Morphism_of_a,b_holds_F_._f_=_G_._f let a, b be object of A; ::_thesis: ( <^a,b^> <> {} implies for f being Morphism of a,b holds F . f = G . f ) assume A6: <^a,b^> <> {} ; ::_thesis: for f being Morphism of a,b holds F . f = G . f let f be Morphism of a,b; ::_thesis: F . f = G . f <^(F . a),(F . b)^> <> {} by A6, FUNCTOR0:def_18; hence F . f = (Morph-Map (F,a,b)) . f by A6, FUNCTOR0:def_15 .= G . f by A3, A6 ; ::_thesis: verum end; for a being object of A holds F . a = G . a by A2; then FunctorStr(# the ObjectMap of F, the MorphMap of F #) = FunctorStr(# the ObjectMap of G, the MorphMap of G #) by A5, YELLOW18:1; hence ( the ObjectMap of F is V7() & the MorphMap of F is "1-1" & ex f being ManySortedFunction of the Arrows of A, the Arrows of B * the ObjectMap of F st ( f = the MorphMap of F & f is "onto" ) & the ObjectMap of F is onto ) by A4, FUNCTOR0:def_6, FUNCTOR0:def_7, FUNCTOR0:def_30, FUNCTOR0:def_32; :: according to FUNCTOR0:def_6,FUNCTOR0:def_7,FUNCTOR0:def_30,FUNCTOR0:def_32,FUNCTOR0:def_33,FUNCTOR0:def_34,FUNCTOR0:def_35 ::_thesis: verum end; theorem :: YELLOW20:40 for A, B being category for F being contravariant Functor of A,B st A,B are_anti-isomorphic_under F holds F is bijective proof let A, B be category; ::_thesis: for F being contravariant Functor of A,B st A,B are_anti-isomorphic_under F holds F is bijective let F be contravariant Functor of A,B; ::_thesis: ( A,B are_anti-isomorphic_under F implies F is bijective ) assume that A is subcategory of A and B is subcategory of B ; :: according to YELLOW20:def_5 ::_thesis: ( for G being contravariant Functor of A,B holds ( not G is bijective or ex a9, a being object of A st ( a9 = a & not G . a9 = F . a ) or ex b9, c9, b, c being object of A st ( <^b9,c9^> <> {} & b9 = b & c9 = c & ex f9 being Morphism of b9,c9 ex f being Morphism of b,c st ( f9 = f & not G . f9 = (Morph-Map (F,b,c)) . f ) ) ) or F is bijective ) given G being contravariant Functor of A,B such that A1: G is bijective and A2: for a9, a being object of A st a9 = a holds G . a9 = F . a and A3: for b9, c9, b, c being object of A st <^b9,c9^> <> {} & b9 = b & c9 = c holds for f9 being Morphism of b9,c9 for f being Morphism of b,c st f9 = f holds G . f9 = (Morph-Map (F,b,c)) . f ; ::_thesis: F is bijective ( G is injective & G is surjective ) by A1, FUNCTOR0:def_35; then A4: ( G is one-to-one & G is faithful & G is full & G is onto ) by FUNCTOR0:def_33, FUNCTOR0:def_34; A5: now__::_thesis:_for_a,_b_being_object_of_A_st_<^a,b^>_<>_{}_holds_ for_f_being_Morphism_of_a,b_holds_F_._f_=_G_._f let a, b be object of A; ::_thesis: ( <^a,b^> <> {} implies for f being Morphism of a,b holds F . f = G . f ) assume A6: <^a,b^> <> {} ; ::_thesis: for f being Morphism of a,b holds F . f = G . f let f be Morphism of a,b; ::_thesis: F . f = G . f <^(F . b),(F . a)^> <> {} by A6, FUNCTOR0:def_19; hence F . f = (Morph-Map (F,a,b)) . f by A6, FUNCTOR0:def_16 .= G . f by A3, A6 ; ::_thesis: verum end; for a being object of A holds F . a = G . a by A2; then FunctorStr(# the ObjectMap of F, the MorphMap of F #) = FunctorStr(# the ObjectMap of G, the MorphMap of G #) by A5, YELLOW18:2; hence ( the ObjectMap of F is V7() & the MorphMap of F is "1-1" & ex f being ManySortedFunction of the Arrows of A, the Arrows of B * the ObjectMap of F st ( f = the MorphMap of F & f is "onto" ) & the ObjectMap of F is onto ) by A4, FUNCTOR0:def_6, FUNCTOR0:def_7, FUNCTOR0:def_30, FUNCTOR0:def_32; :: according to FUNCTOR0:def_6,FUNCTOR0:def_7,FUNCTOR0:def_30,FUNCTOR0:def_32,FUNCTOR0:def_33,FUNCTOR0:def_34,FUNCTOR0:def_35 ::_thesis: verum end; theorem :: YELLOW20:41 for A, B being category for F being covariant Functor of A,B st F is bijective holds A,B are_isomorphic_under F proof let A, B be category; ::_thesis: for F being covariant Functor of A,B st F is bijective holds A,B are_isomorphic_under F let F be covariant Functor of A,B; ::_thesis: ( F is bijective implies A,B are_isomorphic_under F ) assume A1: F is bijective ; ::_thesis: A,B are_isomorphic_under F ( the Arrows of A = the Arrows of A & the Arrows of B = the Arrows of B ) ; hence ( A is subcategory of A & B is subcategory of B ) by ALTCAT_2:20, ALTCAT_4:35; :: according to YELLOW20:def_4 ::_thesis: ex G being covariant Functor of A,B st ( G is bijective & ( for a9, a being object of A st a9 = a holds G . a9 = F . a ) & ( for b9, c9, b, c being object of A st <^b9,c9^> <> {} & b9 = b & c9 = c holds for f9 being Morphism of b9,c9 for f being Morphism of b,c st f9 = f holds G . f9 = (Morph-Map (F,b,c)) . f ) ) take F ; ::_thesis: ( F is bijective & ( for a9, a being object of A st a9 = a holds F . a9 = F . a ) & ( for b9, c9, b, c being object of A st <^b9,c9^> <> {} & b9 = b & c9 = c holds for f9 being Morphism of b9,c9 for f being Morphism of b,c st f9 = f holds F . f9 = (Morph-Map (F,b,c)) . f ) ) thus ( F is bijective & ( for a9, a being object of A st a9 = a holds F . a9 = F . a ) ) by A1; ::_thesis: for b9, c9, b, c being object of A st <^b9,c9^> <> {} & b9 = b & c9 = c holds for f9 being Morphism of b9,c9 for f being Morphism of b,c st f9 = f holds F . f9 = (Morph-Map (F,b,c)) . f let b9, c9 be object of A; ::_thesis: for b, c being object of A st <^b9,c9^> <> {} & b9 = b & c9 = c holds for f9 being Morphism of b9,c9 for f being Morphism of b,c st f9 = f holds F . f9 = (Morph-Map (F,b,c)) . f let b, c be object of A; ::_thesis: ( <^b9,c9^> <> {} & b9 = b & c9 = c implies for f9 being Morphism of b9,c9 for f being Morphism of b,c st f9 = f holds F . f9 = (Morph-Map (F,b,c)) . f ) assume A2: ( <^b9,c9^> <> {} & b9 = b & c9 = c ) ; ::_thesis: for f9 being Morphism of b9,c9 for f being Morphism of b,c st f9 = f holds F . f9 = (Morph-Map (F,b,c)) . f then <^(F . b),(F . c)^> <> {} by FUNCTOR0:def_18; hence for f9 being Morphism of b9,c9 for f being Morphism of b,c st f9 = f holds F . f9 = (Morph-Map (F,b,c)) . f by A2, FUNCTOR0:def_15; ::_thesis: verum end; theorem :: YELLOW20:42 for A, B being category for F being contravariant Functor of A,B st F is bijective holds A,B are_anti-isomorphic_under F proof let A, B be category; ::_thesis: for F being contravariant Functor of A,B st F is bijective holds A,B are_anti-isomorphic_under F let F be contravariant Functor of A,B; ::_thesis: ( F is bijective implies A,B are_anti-isomorphic_under F ) assume A1: F is bijective ; ::_thesis: A,B are_anti-isomorphic_under F ( the Arrows of A = the Arrows of A & the Arrows of B = the Arrows of B ) ; hence ( A is subcategory of A & B is subcategory of B ) by ALTCAT_2:20, ALTCAT_4:35; :: according to YELLOW20:def_5 ::_thesis: ex G being contravariant Functor of A,B st ( G is bijective & ( for a9, a being object of A st a9 = a holds G . a9 = F . a ) & ( for b9, c9, b, c being object of A st <^b9,c9^> <> {} & b9 = b & c9 = c holds for f9 being Morphism of b9,c9 for f being Morphism of b,c st f9 = f holds G . f9 = (Morph-Map (F,b,c)) . f ) ) take F ; ::_thesis: ( F is bijective & ( for a9, a being object of A st a9 = a holds F . a9 = F . a ) & ( for b9, c9, b, c being object of A st <^b9,c9^> <> {} & b9 = b & c9 = c holds for f9 being Morphism of b9,c9 for f being Morphism of b,c st f9 = f holds F . f9 = (Morph-Map (F,b,c)) . f ) ) thus ( F is bijective & ( for a9, a being object of A st a9 = a holds F . a9 = F . a ) ) by A1; ::_thesis: for b9, c9, b, c being object of A st <^b9,c9^> <> {} & b9 = b & c9 = c holds for f9 being Morphism of b9,c9 for f being Morphism of b,c st f9 = f holds F . f9 = (Morph-Map (F,b,c)) . f let b9, c9 be object of A; ::_thesis: for b, c being object of A st <^b9,c9^> <> {} & b9 = b & c9 = c holds for f9 being Morphism of b9,c9 for f being Morphism of b,c st f9 = f holds F . f9 = (Morph-Map (F,b,c)) . f let b, c be object of A; ::_thesis: ( <^b9,c9^> <> {} & b9 = b & c9 = c implies for f9 being Morphism of b9,c9 for f being Morphism of b,c st f9 = f holds F . f9 = (Morph-Map (F,b,c)) . f ) assume A2: ( <^b9,c9^> <> {} & b9 = b & c9 = c ) ; ::_thesis: for f9 being Morphism of b9,c9 for f being Morphism of b,c st f9 = f holds F . f9 = (Morph-Map (F,b,c)) . f then <^(F . c),(F . b)^> <> {} by FUNCTOR0:def_19; hence for f9 being Morphism of b9,c9 for f being Morphism of b,c st f9 = f holds F . f9 = (Morph-Map (F,b,c)) . f by A2, FUNCTOR0:def_16; ::_thesis: verum end; theorem :: YELLOW20:43 for A being category for B being non empty subcategory of A holds B,B are_isomorphic_under id A proof let A be category; ::_thesis: for B being non empty subcategory of A holds B,B are_isomorphic_under id A let B be non empty subcategory of A; ::_thesis: B,B are_isomorphic_under id A set F = id A; thus ( B is subcategory of A & B is subcategory of A ) ; :: according to YELLOW20:def_4 ::_thesis: ex G being covariant Functor of B,B st ( G is bijective & ( for a9 being object of B for a being object of A st a9 = a holds G . a9 = (id A) . a ) & ( for b9, c9 being object of B for b, c being object of A st <^b9,c9^> <> {} & b9 = b & c9 = c holds for f9 being Morphism of b9,c9 for f being Morphism of b,c st f9 = f holds G . f9 = (Morph-Map ((id A),b,c)) . f ) ) take G = id B; ::_thesis: ( G is bijective & ( for a9 being object of B for a being object of A st a9 = a holds G . a9 = (id A) . a ) & ( for b9, c9 being object of B for b, c being object of A st <^b9,c9^> <> {} & b9 = b & c9 = c holds for f9 being Morphism of b9,c9 for f being Morphism of b,c st f9 = f holds G . f9 = (Morph-Map ((id A),b,c)) . f ) ) thus G is bijective ; ::_thesis: ( ( for a9 being object of B for a being object of A st a9 = a holds G . a9 = (id A) . a ) & ( for b9, c9 being object of B for b, c being object of A st <^b9,c9^> <> {} & b9 = b & c9 = c holds for f9 being Morphism of b9,c9 for f being Morphism of b,c st f9 = f holds G . f9 = (Morph-Map ((id A),b,c)) . f ) ) hereby ::_thesis: for b9, c9 being object of B for b, c being object of A st <^b9,c9^> <> {} & b9 = b & c9 = c holds for f9 being Morphism of b9,c9 for f being Morphism of b,c st f9 = f holds G . f9 = (Morph-Map ((id A),b,c)) . f let a be object of B; ::_thesis: for a1 being object of A st a = a1 holds G . a = (id A) . a1 let a1 be object of A; ::_thesis: ( a = a1 implies G . a = (id A) . a1 ) assume a = a1 ; ::_thesis: G . a = (id A) . a1 hence G . a = a1 by FUNCTOR0:29 .= (id A) . a1 by FUNCTOR0:29 ; ::_thesis: verum end; let b, c be object of B; ::_thesis: for b, c being object of A st <^b,c^> <> {} & b = b & c = c holds for f9 being Morphism of b,c for f being Morphism of b,c st f9 = f holds G . f9 = (Morph-Map ((id A),b,c)) . f let b1, c1 be object of A; ::_thesis: ( <^b,c^> <> {} & b = b1 & c = c1 implies for f9 being Morphism of b,c for f being Morphism of b1,c1 st f9 = f holds G . f9 = (Morph-Map ((id A),b1,c1)) . f ) assume that A1: <^b,c^> <> {} and A2: ( b = b1 & c = c1 ) ; ::_thesis: for f9 being Morphism of b,c for f being Morphism of b1,c1 st f9 = f holds G . f9 = (Morph-Map ((id A),b1,c1)) . f let f be Morphism of b,c; ::_thesis: for f being Morphism of b1,c1 st f = f holds G . f = (Morph-Map ((id A),b1,c1)) . f let f1 be Morphism of b1,c1; ::_thesis: ( f = f1 implies G . f = (Morph-Map ((id A),b1,c1)) . f1 ) assume A3: f = f1 ; ::_thesis: G . f = (Morph-Map ((id A),b1,c1)) . f1 A4: ( <^b,c^> c= <^b1,c1^> & f in <^b,c^> ) by A1, A2, ALTCAT_2:31; A5: ( (id A) . b1 = b1 & (id A) . c1 = c1 ) by FUNCTOR0:29; thus G . f = f by A1, FUNCTOR0:31 .= (id A) . f1 by A3, A4, FUNCTOR0:31 .= (Morph-Map ((id A),b1,c1)) . f1 by A4, A5, FUNCTOR0:def_15 ; ::_thesis: verum end; theorem Th44: :: YELLOW20:44 for f, g being Function st f c= g holds ~ f c= ~ g proof let f, g be Function; ::_thesis: ( f c= g implies ~ f c= ~ g ) assume A1: f c= g ; ::_thesis: ~ f c= ~ g let x be set ; :: according to RELAT_1:def_3 ::_thesis: for b1 being set holds ( not [x,b1] in ~ f or [x,b1] in ~ g ) let y be set ; ::_thesis: ( not [x,y] in ~ f or [x,y] in ~ g ) assume A2: [x,y] in ~ f ; ::_thesis: [x,y] in ~ g then x in dom (~ f) by XTUPLE_0:def_12; then consider z2, z1 being set such that A3: x = [z1,z2] and A4: [z2,z1] in dom f by FUNCT_4:def_2; y = (~ f) . (z1,z2) by A2, A3, FUNCT_1:1 .= f . (z2,z1) by A4, FUNCT_4:def_2 ; then A5: [[z2,z1],y] in f by A4, FUNCT_1:1; then A6: [z2,z1] in dom g by A1, FUNCT_1:1; y = g . (z2,z1) by A1, A5, FUNCT_1:1; then A7: y = (~ g) . (z1,z2) by A6, FUNCT_4:def_2; x in dom (~ g) by A3, A6, FUNCT_4:def_2; hence [x,y] in ~ g by A3, A7, FUNCT_1:1; ::_thesis: verum end; theorem :: YELLOW20:45 for f, g being Function st dom f is Relation & ~ f c= ~ g holds f c= g proof let f, g be Function; ::_thesis: ( dom f is Relation & ~ f c= ~ g implies f c= g ) assume dom f is Relation ; ::_thesis: ( not ~ f c= ~ g or f c= g ) then reconsider R = dom f as Relation ; R c= [:(dom R),(rng R):] by RELAT_1:7; then A1: ~ (~ f) = f by FUNCT_4:52; assume ~ f c= ~ g ; ::_thesis: f c= g then ( ~ (~ g) c= g & f c= ~ (~ g) ) by A1, Th44, FUNCT_4:51; hence f c= g by XBOOLE_1:1; ::_thesis: verum end; theorem Th46: :: YELLOW20:46 for I, J being set for A being ManySortedSet of [:I,I:] for B being ManySortedSet of [:J,J:] st A cc= B holds ~ A cc= ~ B proof let I, J be set ; ::_thesis: for A being ManySortedSet of [:I,I:] for B being ManySortedSet of [:J,J:] st A cc= B holds ~ A cc= ~ B let A be ManySortedSet of [:I,I:]; ::_thesis: for B being ManySortedSet of [:J,J:] st A cc= B holds ~ A cc= ~ B let B be ManySortedSet of [:J,J:]; ::_thesis: ( A cc= B implies ~ A cc= ~ B ) assume that A1: [:I,I:] c= [:J,J:] and A2: for x being set st x in [:I,I:] holds A . x c= B . x ; :: according to ALTCAT_2:def_2 ::_thesis: ~ A cc= ~ B thus [:I,I:] c= [:J,J:] by A1; :: according to ALTCAT_2:def_2 ::_thesis: for b1 being set holds ( not b1 in [:I,I:] or (~ A) . b1 c= (~ B) . b1 ) let x be set ; ::_thesis: ( not x in [:I,I:] or (~ A) . x c= (~ B) . x ) assume x in [:I,I:] ; ::_thesis: (~ A) . x c= (~ B) . x then consider x1, x2 being set such that A3: ( x1 in I & x2 in I ) and A4: x = [x1,x2] by ZFMISC_1:def_2; A5: [x2,x1] in [:I,I:] by A3, ZFMISC_1:def_2; dom A = [:I,I:] by PARTFUN1:def_2; then A6: (~ A) . (x1,x2) = A . (x2,x1) by A5, FUNCT_4:def_2; dom B = [:J,J:] by PARTFUN1:def_2; then (~ B) . (x1,x2) = B . (x2,x1) by A1, A5, FUNCT_4:def_2; hence (~ A) . x c= (~ B) . x by A2, A4, A5, A6; ::_thesis: verum end; theorem Th47: :: YELLOW20:47 for A being non empty transitive AltCatStr for B being non empty transitive SubCatStr of A holds B opp is SubCatStr of A opp proof let A be non empty transitive AltCatStr ; ::_thesis: for B being non empty transitive SubCatStr of A holds B opp is SubCatStr of A opp let B be non empty transitive SubCatStr of A; ::_thesis: B opp is SubCatStr of A opp A1: B,B opp are_opposite by YELLOW18:def_4; then A2: the carrier of (B opp) = the carrier of B by YELLOW18:def_3; A3: the Arrows of (B opp) = ~ the Arrows of B by A1, YELLOW18:def_3; A4: A,A opp are_opposite by YELLOW18:def_4; then A5: the carrier of (A opp) = the carrier of A by YELLOW18:def_3; hence the carrier of (B opp) c= the carrier of (A opp) by A2, ALTCAT_2:def_11; :: according to ALTCAT_2:def_11 ::_thesis: ( the Arrows of (B opp) cc= the Arrows of (A opp) & the Comp of (B opp) cc= the Comp of (A opp) ) ( the Arrows of B cc= the Arrows of A & the Arrows of (A opp) = ~ the Arrows of A ) by A4, ALTCAT_2:def_11, YELLOW18:def_3; hence the Arrows of (B opp) cc= the Arrows of (A opp) by A3, Th46; ::_thesis: the Comp of (B opp) cc= the Comp of (A opp) A6: the carrier of B c= the carrier of A by ALTCAT_2:def_11; hence [: the carrier of (B opp), the carrier of (B opp), the carrier of (B opp):] c= [: the carrier of (A opp), the carrier of (A opp), the carrier of (A opp):] by A5, A2, MCART_1:73; :: according to ALTCAT_2:def_2 ::_thesis: for b1 being set holds ( not b1 in [: the carrier of (B opp), the carrier of (B opp), the carrier of (B opp):] or the Comp of (B opp) . b1 c= the Comp of (A opp) . b1 ) let x be set ; ::_thesis: ( not x in [: the carrier of (B opp), the carrier of (B opp), the carrier of (B opp):] or the Comp of (B opp) . x c= the Comp of (A opp) . x ) assume x in [: the carrier of (B opp), the carrier of (B opp), the carrier of (B opp):] ; ::_thesis: the Comp of (B opp) . x c= the Comp of (A opp) . x then consider x1, x2, x3 being set such that A7: ( x1 in the carrier of B & x2 in the carrier of B & x3 in the carrier of B ) and A8: x = [x1,x2,x3] by A2, MCART_1:68; reconsider a = x1, b = x2, c = x3 as object of B by A7; reconsider a1 = a, b1 = b, c1 = c as object of A by A6, A7; reconsider a19 = a1, b19 = b1, c19 = c1 as object of (A opp) by A4, YELLOW18:def_3; A9: ( the Comp of B cc= the Comp of A & the Comp of B . (c,b,a) = the Comp of B . [c,b,a] ) by ALTCAT_2:def_11, MULTOP_1:def_1; A10: the Comp of A . (c1,b1,a1) = the Comp of A . [c1,b1,a1] by MULTOP_1:def_1; [x3,x2,x1] in [: the carrier of B, the carrier of B, the carrier of B:] by A7, MCART_1:69; then A11: the Comp of B . (c,b,a) c= the Comp of A . (c1,b1,a1) by A9, A10, ALTCAT_2:def_2; reconsider a9 = a, b9 = b, c9 = c as object of (B opp) by A1, YELLOW18:def_3; A12: ( the Comp of (B opp) . (a9,b9,c9) = the Comp of (B opp) . x & the Comp of (A opp) . (a19,b19,c19) = the Comp of (A opp) . x ) by A8, MULTOP_1:def_1; A13: the Comp of (A opp) . (a19,b19,c19) = ~ ( the Comp of A . (c1,b1,a1)) by A4, YELLOW18:def_3; the Comp of (B opp) . (a9,b9,c9) = ~ ( the Comp of B . (c,b,a)) by A1, YELLOW18:def_3; hence the Comp of (B opp) . x c= the Comp of (A opp) . x by A13, A12, A11, Th44; ::_thesis: verum end; theorem Th48: :: YELLOW20:48 for A being category for B being non empty subcategory of A holds B opp is subcategory of A opp proof let A be category; ::_thesis: for B being non empty subcategory of A holds B opp is subcategory of A opp let B be non empty subcategory of A; ::_thesis: B opp is subcategory of A opp reconsider BB = B opp as non empty transitive SubCatStr of A opp by Th47; A1: A opp ,A are_opposite by YELLOW18:def_4; A2: BB,B are_opposite by YELLOW18:def_4; BB is id-inheriting proof percases ( not BB is empty or BB is empty ) ; :: according to ALTCAT_2:def_14 case not BB is empty ; ::_thesis: for b1 being M2( the carrier of BB) for b2 being M2( the carrier of (A opp)) holds ( not b1 = b2 or idm b2 in <^b1,b1^> ) let o be object of BB; ::_thesis: for b1 being M2( the carrier of (A opp)) holds ( not o = b1 or idm b1 in <^o,o^> ) let o9 be object of (A opp); ::_thesis: ( not o = o9 or idm o9 in <^o,o^> ) reconsider a9 = o9 as object of A by A1, YELLOW18:def_3; reconsider a = o as object of B by A2, YELLOW18:def_3; assume o = o9 ; ::_thesis: idm o9 in <^o,o^> then idm a9 in <^a,a^> by ALTCAT_2:def_14; then idm o9 in <^a,a^> by A1, YELLOW18:10; hence idm o9 in <^o,o^> by A2, YELLOW18:7; ::_thesis: verum end; case BB is empty ; ::_thesis: verum end; end; end; hence B opp is subcategory of A opp ; ::_thesis: verum end; theorem :: YELLOW20:49 for A being category for B being non empty subcategory of A holds B,B opp are_anti-isomorphic_under dualizing-func (A,(A opp)) proof let A be category; ::_thesis: for B being non empty subcategory of A holds B,B opp are_anti-isomorphic_under dualizing-func (A,(A opp)) let B be non empty subcategory of A; ::_thesis: B,B opp are_anti-isomorphic_under dualizing-func (A,(A opp)) set F = dualizing-func (A,(A opp)); A1: B,B opp are_opposite by YELLOW18:def_4; thus ( B is subcategory of A & B opp is subcategory of A opp ) by Th48; :: according to YELLOW20:def_5 ::_thesis: ex G being contravariant Functor of B,B opp st ( G is bijective & ( for a9 being object of B for a being object of A st a9 = a holds G . a9 = (dualizing-func (A,(A opp))) . a ) & ( for b9, c9 being object of B for b, c being object of A st <^b9,c9^> <> {} & b9 = b & c9 = c holds for f9 being Morphism of b9,c9 for f being Morphism of b,c st f9 = f holds G . f9 = (Morph-Map ((dualizing-func (A,(A opp))),b,c)) . f ) ) take G = dualizing-func (B,(B opp)); ::_thesis: ( G is bijective & ( for a9 being object of B for a being object of A st a9 = a holds G . a9 = (dualizing-func (A,(A opp))) . a ) & ( for b9, c9 being object of B for b, c being object of A st <^b9,c9^> <> {} & b9 = b & c9 = c holds for f9 being Morphism of b9,c9 for f being Morphism of b,c st f9 = f holds G . f9 = (Morph-Map ((dualizing-func (A,(A opp))),b,c)) . f ) ) thus G is bijective ; ::_thesis: ( ( for a9 being object of B for a being object of A st a9 = a holds G . a9 = (dualizing-func (A,(A opp))) . a ) & ( for b9, c9 being object of B for b, c being object of A st <^b9,c9^> <> {} & b9 = b & c9 = c holds for f9 being Morphism of b9,c9 for f being Morphism of b,c st f9 = f holds G . f9 = (Morph-Map ((dualizing-func (A,(A opp))),b,c)) . f ) ) A2: A,A opp are_opposite by YELLOW18:def_4; hereby ::_thesis: for b9, c9 being object of B for b, c being object of A st <^b9,c9^> <> {} & b9 = b & c9 = c holds for f9 being Morphism of b9,c9 for f being Morphism of b,c st f9 = f holds G . f9 = (Morph-Map ((dualizing-func (A,(A opp))),b,c)) . f let a be object of B; ::_thesis: for a1 being object of A st a = a1 holds G . a = (dualizing-func (A,(A opp))) . a1 let a1 be object of A; ::_thesis: ( a = a1 implies G . a = (dualizing-func (A,(A opp))) . a1 ) assume a = a1 ; ::_thesis: G . a = (dualizing-func (A,(A opp))) . a1 hence G . a = a1 by A1, YELLOW18:def_5 .= (dualizing-func (A,(A opp))) . a1 by A2, YELLOW18:def_5 ; ::_thesis: verum end; let b, c be object of B; ::_thesis: for b, c being object of A st <^b,c^> <> {} & b = b & c = c holds for f9 being Morphism of b,c for f being Morphism of b,c st f9 = f holds G . f9 = (Morph-Map ((dualizing-func (A,(A opp))),b,c)) . f let b1, c1 be object of A; ::_thesis: ( <^b,c^> <> {} & b = b1 & c = c1 implies for f9 being Morphism of b,c for f being Morphism of b1,c1 st f9 = f holds G . f9 = (Morph-Map ((dualizing-func (A,(A opp))),b1,c1)) . f ) assume that A3: <^b,c^> <> {} and A4: ( b = b1 & c = c1 ) ; ::_thesis: for f9 being Morphism of b,c for f being Morphism of b1,c1 st f9 = f holds G . f9 = (Morph-Map ((dualizing-func (A,(A opp))),b1,c1)) . f let f be Morphism of b,c; ::_thesis: for f being Morphism of b1,c1 st f = f holds G . f = (Morph-Map ((dualizing-func (A,(A opp))),b1,c1)) . f let f1 be Morphism of b1,c1; ::_thesis: ( f = f1 implies G . f = (Morph-Map ((dualizing-func (A,(A opp))),b1,c1)) . f1 ) assume A5: f = f1 ; ::_thesis: G . f = (Morph-Map ((dualizing-func (A,(A opp))),b1,c1)) . f1 A6: ( <^b,c^> c= <^b1,c1^> & f in <^b,c^> ) by A3, A4, ALTCAT_2:31; then A7: <^((dualizing-func (A,(A opp))) . c1),((dualizing-func (A,(A opp))) . b1)^> <> {} by FUNCTOR0:def_19; thus G . f = f by A1, A3, YELLOW18:def_5 .= (dualizing-func (A,(A opp))) . f1 by A2, A5, A6, YELLOW18:def_5 .= (Morph-Map ((dualizing-func (A,(A opp))),b1,c1)) . f1 by A6, A7, FUNCTOR0:def_16 ; ::_thesis: verum end; theorem :: YELLOW20:50 for A1, A2 being category for F being covariant Functor of A1,A2 st F is bijective holds for B1 being non empty subcategory of A1 for B2 being non empty subcategory of A2 st B1,B2 are_isomorphic_under F holds B2,B1 are_isomorphic_under F " proof let A1, A2 be category; ::_thesis: for F being covariant Functor of A1,A2 st F is bijective holds for B1 being non empty subcategory of A1 for B2 being non empty subcategory of A2 st B1,B2 are_isomorphic_under F holds B2,B1 are_isomorphic_under F " let F be covariant Functor of A1,A2; ::_thesis: ( F is bijective implies for B1 being non empty subcategory of A1 for B2 being non empty subcategory of A2 st B1,B2 are_isomorphic_under F holds B2,B1 are_isomorphic_under F " ) assume A1: F is bijective ; ::_thesis: for B1 being non empty subcategory of A1 for B2 being non empty subcategory of A2 st B1,B2 are_isomorphic_under F holds B2,B1 are_isomorphic_under F " F is surjective by A1, FUNCTOR0:def_35; then F is onto by FUNCTOR0:def_34; then A2: F is coreflexive by FUNCTOR0:46; ex H being Functor of A2,A1 st ( H = F " & H is bijective & H is covariant ) by A1, FUNCTOR0:48; then reconsider F9 = F " as covariant Functor of A2,A1 ; let B1 be non empty subcategory of A1; ::_thesis: for B2 being non empty subcategory of A2 st B1,B2 are_isomorphic_under F holds B2,B1 are_isomorphic_under F " let B2 be non empty subcategory of A2; ::_thesis: ( B1,B2 are_isomorphic_under F implies B2,B1 are_isomorphic_under F " ) assume that B1 is subcategory of A1 and B2 is subcategory of A2 ; :: according to YELLOW20:def_4 ::_thesis: ( for G being covariant Functor of B1,B2 holds ( not G is bijective or ex a9 being object of B1 ex a being object of A1 st ( a9 = a & not G . a9 = F . a ) or ex b9, c9 being object of B1 ex b, c being object of A1 st ( <^b9,c9^> <> {} & b9 = b & c9 = c & ex f9 being Morphism of b9,c9 ex f being Morphism of b,c st ( f9 = f & not G . f9 = (Morph-Map (F,b,c)) . f ) ) ) or B2,B1 are_isomorphic_under F " ) given G being covariant Functor of B1,B2 such that A3: G is bijective and A4: for a being object of B1 for a1 being object of A1 st a = a1 holds G . a = F . a1 and A5: for b, c being object of B1 for b1, c1 being object of A1 st <^b,c^> <> {} & b = b1 & c = c1 holds for f being Morphism of b,c for f1 being Morphism of b1,c1 st f = f1 holds G . f = (Morph-Map (F,b1,c1)) . f1 ; ::_thesis: B2,B1 are_isomorphic_under F " G is surjective by A3, FUNCTOR0:def_35; then G is onto by FUNCTOR0:def_34; then A6: G is coreflexive by FUNCTOR0:46; thus ( B2 is subcategory of A2 & B1 is subcategory of A1 ) ; :: according to YELLOW20:def_4 ::_thesis: ex G being covariant Functor of B2,B1 st ( G is bijective & ( for a9 being object of B2 for a being object of A2 st a9 = a holds G . a9 = (F ") . a ) & ( for b9, c9 being object of B2 for b, c being object of A2 st <^b9,c9^> <> {} & b9 = b & c9 = c holds for f9 being Morphism of b9,c9 for f being Morphism of b,c st f9 = f holds G . f9 = (Morph-Map ((F "),b,c)) . f ) ) consider H being Functor of B2,B1 such that A7: H = G " and A8: ( H is bijective & H is covariant ) by A3, FUNCTOR0:48; reconsider H = H as covariant Functor of B2,B1 by A8; take H ; ::_thesis: ( H is bijective & ( for a9 being object of B2 for a being object of A2 st a9 = a holds H . a9 = (F ") . a ) & ( for b9, c9 being object of B2 for b, c being object of A2 st <^b9,c9^> <> {} & b9 = b & c9 = c holds for f9 being Morphism of b9,c9 for f being Morphism of b,c st f9 = f holds H . f9 = (Morph-Map ((F "),b,c)) . f ) ) thus H is bijective by A8; ::_thesis: ( ( for a9 being object of B2 for a being object of A2 st a9 = a holds H . a9 = (F ") . a ) & ( for b9, c9 being object of B2 for b, c being object of A2 st <^b9,c9^> <> {} & b9 = b & c9 = c holds for f9 being Morphism of b9,c9 for f being Morphism of b,c st f9 = f holds H . f9 = (Morph-Map ((F "),b,c)) . f ) ) A9: the carrier of B1 c= the carrier of A1 by ALTCAT_2:def_11; hereby ::_thesis: for b9, c9 being object of B2 for b, c being object of A2 st <^b9,c9^> <> {} & b9 = b & c9 = c holds for f9 being Morphism of b9,c9 for f being Morphism of b,c st f9 = f holds H . f9 = (Morph-Map ((F "),b,c)) . f let a be object of B2; ::_thesis: for a1 being object of A2 st a = a1 holds H . a = (F ") . a1 let a1 be object of A2; ::_thesis: ( a = a1 implies H . a = (F ") . a1 ) H . a in the carrier of B1 ; then reconsider Ha = H . a as object of A1 by A9; G . (H . a) = F . Ha by A4; then A11: F . Ha = a by A3, A7, A6, Th1; assume a = a1 ; ::_thesis: H . a = (F ") . a1 hence H . a = (F ") . a1 by A1, A2, A11, Th1; ::_thesis: verum end; let b, c be object of B2; ::_thesis: for b, c being object of A2 st <^b,c^> <> {} & b = b & c = c holds for f9 being Morphism of b,c for f being Morphism of b,c st f9 = f holds H . f9 = (Morph-Map ((F "),b,c)) . f let b1, c1 be object of A2; ::_thesis: ( <^b,c^> <> {} & b = b1 & c = c1 implies for f9 being Morphism of b,c for f being Morphism of b1,c1 st f9 = f holds H . f9 = (Morph-Map ((F "),b1,c1)) . f ) assume that A12: <^b,c^> <> {} and A13: ( b = b1 & c = c1 ) ; ::_thesis: for f9 being Morphism of b,c for f being Morphism of b1,c1 st f9 = f holds H . f9 = (Morph-Map ((F "),b1,c1)) . f let f be Morphism of b,c; ::_thesis: for f being Morphism of b1,c1 st f = f holds H . f = (Morph-Map ((F "),b1,c1)) . f let f1 be Morphism of b1,c1; ::_thesis: ( f = f1 implies H . f = (Morph-Map ((F "),b1,c1)) . f1 ) assume A14: f = f1 ; ::_thesis: H . f = (Morph-Map ((F "),b1,c1)) . f1 A15: ( <^b,c^> c= <^b1,c1^> & f in <^b,c^> ) by A12, A13, ALTCAT_2:31; A16: ( G . (H . b) = b & G . (H . c) = c ) by A3, A7, A6, Th1; A17: <^(H . b),(H . c)^> <> {} by A12, FUNCTOR0:def_18; then A18: H . f in <^(H . b),(H . c)^> ; A19: ( F . ((F ") . b1) = b1 & F . ((F ") . c1) = c1 ) by A1, A2, Th1; A20: ( H . b = (F ") . b1 & H . c = (F ") . c1 ) by A10, A13; then A21: <^(H . b),(H . c)^> c= <^((F ") . b1),((F ") . c1)^> by ALTCAT_2:31; then reconsider Hf = H . f as Morphism of ((F ") . b1),((F ") . c1) by A18; G . (H . f) = (Morph-Map (F,((F ") . b1),((F ") . c1))) . Hf by A5, A20, A17 .= F . Hf by A21, A18, A15, A19, FUNCTOR0:def_15 ; then F . Hf = f by A3, A7, A17, A16, Th2; hence H . f = F9 . f1 by A1, A14, A21, A18, A19, Th2 .= (Morph-Map ((F "),b1,c1)) . f1 by A21, A18, A15, FUNCTOR0:def_15 ; ::_thesis: verum end; theorem :: YELLOW20:51 for A1, A2 being category for F being contravariant Functor of A1,A2 st F is bijective holds for B1 being non empty subcategory of A1 for B2 being non empty subcategory of A2 st B1,B2 are_anti-isomorphic_under F holds B2,B1 are_anti-isomorphic_under F " proof let A1, A2 be category; ::_thesis: for F being contravariant Functor of A1,A2 st F is bijective holds for B1 being non empty subcategory of A1 for B2 being non empty subcategory of A2 st B1,B2 are_anti-isomorphic_under F holds B2,B1 are_anti-isomorphic_under F " let F be contravariant Functor of A1,A2; ::_thesis: ( F is bijective implies for B1 being non empty subcategory of A1 for B2 being non empty subcategory of A2 st B1,B2 are_anti-isomorphic_under F holds B2,B1 are_anti-isomorphic_under F " ) assume A1: F is bijective ; ::_thesis: for B1 being non empty subcategory of A1 for B2 being non empty subcategory of A2 st B1,B2 are_anti-isomorphic_under F holds B2,B1 are_anti-isomorphic_under F " F is surjective by A1, FUNCTOR0:def_35; then F is onto by FUNCTOR0:def_34; then A2: F is coreflexive by FUNCTOR0:47; ex H being Functor of A2,A1 st ( H = F " & H is bijective & H is contravariant ) by A1, FUNCTOR0:49; then reconsider F9 = F " as contravariant Functor of A2,A1 ; let B1 be non empty subcategory of A1; ::_thesis: for B2 being non empty subcategory of A2 st B1,B2 are_anti-isomorphic_under F holds B2,B1 are_anti-isomorphic_under F " let B2 be non empty subcategory of A2; ::_thesis: ( B1,B2 are_anti-isomorphic_under F implies B2,B1 are_anti-isomorphic_under F " ) assume that B1 is subcategory of A1 and B2 is subcategory of A2 ; :: according to YELLOW20:def_5 ::_thesis: ( for G being contravariant Functor of B1,B2 holds ( not G is bijective or ex a9 being object of B1 ex a being object of A1 st ( a9 = a & not G . a9 = F . a ) or ex b9, c9 being object of B1 ex b, c being object of A1 st ( <^b9,c9^> <> {} & b9 = b & c9 = c & ex f9 being Morphism of b9,c9 ex f being Morphism of b,c st ( f9 = f & not G . f9 = (Morph-Map (F,b,c)) . f ) ) ) or B2,B1 are_anti-isomorphic_under F " ) given G being contravariant Functor of B1,B2 such that A3: G is bijective and A4: for a being object of B1 for a1 being object of A1 st a = a1 holds G . a = F . a1 and A5: for b, c being object of B1 for b1, c1 being object of A1 st <^b,c^> <> {} & b = b1 & c = c1 holds for f being Morphism of b,c for f1 being Morphism of b1,c1 st f = f1 holds G . f = (Morph-Map (F,b1,c1)) . f1 ; ::_thesis: B2,B1 are_anti-isomorphic_under F " G is surjective by A3, FUNCTOR0:def_35; then G is onto by FUNCTOR0:def_34; then A6: G is coreflexive by FUNCTOR0:47; thus ( B2 is subcategory of A2 & B1 is subcategory of A1 ) ; :: according to YELLOW20:def_5 ::_thesis: ex G being contravariant Functor of B2,B1 st ( G is bijective & ( for a9 being object of B2 for a being object of A2 st a9 = a holds G . a9 = (F ") . a ) & ( for b9, c9 being object of B2 for b, c being object of A2 st <^b9,c9^> <> {} & b9 = b & c9 = c holds for f9 being Morphism of b9,c9 for f being Morphism of b,c st f9 = f holds G . f9 = (Morph-Map ((F "),b,c)) . f ) ) consider H being Functor of B2,B1 such that A7: H = G " and A8: ( H is bijective & H is contravariant ) by A3, FUNCTOR0:49; reconsider H = H as contravariant Functor of B2,B1 by A8; take H ; ::_thesis: ( H is bijective & ( for a9 being object of B2 for a being object of A2 st a9 = a holds H . a9 = (F ") . a ) & ( for b9, c9 being object of B2 for b, c being object of A2 st <^b9,c9^> <> {} & b9 = b & c9 = c holds for f9 being Morphism of b9,c9 for f being Morphism of b,c st f9 = f holds H . f9 = (Morph-Map ((F "),b,c)) . f ) ) thus H is bijective by A8; ::_thesis: ( ( for a9 being object of B2 for a being object of A2 st a9 = a holds H . a9 = (F ") . a ) & ( for b9, c9 being object of B2 for b, c being object of A2 st <^b9,c9^> <> {} & b9 = b & c9 = c holds for f9 being Morphism of b9,c9 for f being Morphism of b,c st f9 = f holds H . f9 = (Morph-Map ((F "),b,c)) . f ) ) A9: the carrier of B1 c= the carrier of A1 by ALTCAT_2:def_11; hereby ::_thesis: for b9, c9 being object of B2 for b, c being object of A2 st <^b9,c9^> <> {} & b9 = b & c9 = c holds for f9 being Morphism of b9,c9 for f being Morphism of b,c st f9 = f holds H . f9 = (Morph-Map ((F "),b,c)) . f let a be object of B2; ::_thesis: for a1 being object of A2 st a = a1 holds H . a = (F ") . a1 let a1 be object of A2; ::_thesis: ( a = a1 implies H . a = (F ") . a1 ) H . a in the carrier of B1 ; then reconsider Ha = H . a as object of A1 by A9; G . (H . a) = F . Ha by A4; then A11: F . Ha = a by A3, A7, A6, Th1; assume a = a1 ; ::_thesis: H . a = (F ") . a1 hence H . a = (F ") . a1 by A1, A2, A11, Th1; ::_thesis: verum end; let b, c be object of B2; ::_thesis: for b, c being object of A2 st <^b,c^> <> {} & b = b & c = c holds for f9 being Morphism of b,c for f being Morphism of b,c st f9 = f holds H . f9 = (Morph-Map ((F "),b,c)) . f let b1, c1 be object of A2; ::_thesis: ( <^b,c^> <> {} & b = b1 & c = c1 implies for f9 being Morphism of b,c for f being Morphism of b1,c1 st f9 = f holds H . f9 = (Morph-Map ((F "),b1,c1)) . f ) assume that A12: <^b,c^> <> {} and A13: ( b = b1 & c = c1 ) ; ::_thesis: for f9 being Morphism of b,c for f being Morphism of b1,c1 st f9 = f holds H . f9 = (Morph-Map ((F "),b1,c1)) . f let f be Morphism of b,c; ::_thesis: for f being Morphism of b1,c1 st f = f holds H . f = (Morph-Map ((F "),b1,c1)) . f let f1 be Morphism of b1,c1; ::_thesis: ( f = f1 implies H . f = (Morph-Map ((F "),b1,c1)) . f1 ) assume A14: f = f1 ; ::_thesis: H . f = (Morph-Map ((F "),b1,c1)) . f1 A15: ( <^b,c^> c= <^b1,c1^> & f in <^b,c^> ) by A12, A13, ALTCAT_2:31; A16: ( G . (H . b) = b & G . (H . c) = c ) by A3, A7, A6, Th1; A17: <^(H . c),(H . b)^> <> {} by A12, FUNCTOR0:def_19; then A18: H . f in <^(H . c),(H . b)^> ; A19: ( F . ((F ") . b1) = b1 & F . ((F ") . c1) = c1 ) by A1, A2, Th1; A20: ( H . b = (F ") . b1 & H . c = (F ") . c1 ) by A10, A13; then A21: <^(H . c),(H . b)^> c= <^((F ") . c1),((F ") . b1)^> by ALTCAT_2:31; then reconsider Hf = H . f as Morphism of ((F ") . c1),((F ") . b1) by A18; G . (H . f) = (Morph-Map (F,((F ") . c1),((F ") . b1))) . Hf by A5, A20, A17 .= F . Hf by A21, A18, A15, A19, FUNCTOR0:def_16 ; then F . Hf = f by A3, A7, A17, A16, Th3; hence H . f = F9 . f1 by A1, A14, A21, A18, A19, Th3 .= (Morph-Map ((F "),b1,c1)) . f1 by A21, A18, A15, FUNCTOR0:def_16 ; ::_thesis: verum end; theorem :: YELLOW20:52 for A1, A2, A3 being category for F being covariant Functor of A1,A2 for G being covariant Functor of A2,A3 for B1 being non empty subcategory of A1 for B2 being non empty subcategory of A2 for B3 being non empty subcategory of A3 st B1,B2 are_isomorphic_under F & B2,B3 are_isomorphic_under G holds B1,B3 are_isomorphic_under G * F proof let A1, A2, A3 be category; ::_thesis: for F being covariant Functor of A1,A2 for G being covariant Functor of A2,A3 for B1 being non empty subcategory of A1 for B2 being non empty subcategory of A2 for B3 being non empty subcategory of A3 st B1,B2 are_isomorphic_under F & B2,B3 are_isomorphic_under G holds B1,B3 are_isomorphic_under G * F let F be covariant Functor of A1,A2; ::_thesis: for G being covariant Functor of A2,A3 for B1 being non empty subcategory of A1 for B2 being non empty subcategory of A2 for B3 being non empty subcategory of A3 st B1,B2 are_isomorphic_under F & B2,B3 are_isomorphic_under G holds B1,B3 are_isomorphic_under G * F let G be covariant Functor of A2,A3; ::_thesis: for B1 being non empty subcategory of A1 for B2 being non empty subcategory of A2 for B3 being non empty subcategory of A3 st B1,B2 are_isomorphic_under F & B2,B3 are_isomorphic_under G holds B1,B3 are_isomorphic_under G * F let B1 be non empty subcategory of A1; ::_thesis: for B2 being non empty subcategory of A2 for B3 being non empty subcategory of A3 st B1,B2 are_isomorphic_under F & B2,B3 are_isomorphic_under G holds B1,B3 are_isomorphic_under G * F let B2 be non empty subcategory of A2; ::_thesis: for B3 being non empty subcategory of A3 st B1,B2 are_isomorphic_under F & B2,B3 are_isomorphic_under G holds B1,B3 are_isomorphic_under G * F let B3 be non empty subcategory of A3; ::_thesis: ( B1,B2 are_isomorphic_under F & B2,B3 are_isomorphic_under G implies B1,B3 are_isomorphic_under G * F ) assume that B1 is subcategory of A1 and B2 is subcategory of A2 ; :: according to YELLOW20:def_4 ::_thesis: ( for G being covariant Functor of B1,B2 holds ( not G is bijective or ex a9 being object of B1 ex a being object of A1 st ( a9 = a & not G . a9 = F . a ) or ex b9, c9 being object of B1 ex b, c being object of A1 st ( <^b9,c9^> <> {} & b9 = b & c9 = c & ex f9 being Morphism of b9,c9 ex f being Morphism of b,c st ( f9 = f & not G . f9 = (Morph-Map (F,b,c)) . f ) ) ) or not B2,B3 are_isomorphic_under G or B1,B3 are_isomorphic_under G * F ) given F1 being covariant Functor of B1,B2 such that A1: F1 is bijective and A2: for a being object of B1 for a1 being object of A1 st a = a1 holds F1 . a = F . a1 and A3: for b, c being object of B1 for b1, c1 being object of A1 st <^b,c^> <> {} & b = b1 & c = c1 holds for f being Morphism of b,c for f1 being Morphism of b1,c1 st f = f1 holds F1 . f = (Morph-Map (F,b1,c1)) . f1 ; ::_thesis: ( not B2,B3 are_isomorphic_under G or B1,B3 are_isomorphic_under G * F ) assume that B2 is subcategory of A2 and B3 is subcategory of A3 ; :: according to YELLOW20:def_4 ::_thesis: ( for G being covariant Functor of B2,B3 holds ( not G is bijective or ex a9 being object of B2 ex a being object of A2 st ( a9 = a & not G . a9 = G . a ) or ex b9, c9 being object of B2 ex b, c being object of A2 st ( <^b9,c9^> <> {} & b9 = b & c9 = c & ex f9 being Morphism of b9,c9 ex f being Morphism of b,c st ( f9 = f & not G . f9 = (Morph-Map (G,b,c)) . f ) ) ) or B1,B3 are_isomorphic_under G * F ) given G1 being covariant Functor of B2,B3 such that A4: G1 is bijective and A5: for a being object of B2 for a1 being object of A2 st a = a1 holds G1 . a = G . a1 and A6: for b, c being object of B2 for b1, c1 being object of A2 st <^b,c^> <> {} & b = b1 & c = c1 holds for f being Morphism of b,c for f1 being Morphism of b1,c1 st f = f1 holds G1 . f = (Morph-Map (G,b1,c1)) . f1 ; ::_thesis: B1,B3 are_isomorphic_under G * F thus ( B1 is subcategory of A1 & B3 is subcategory of A3 ) ; :: according to YELLOW20:def_4 ::_thesis: ex G being covariant Functor of B1,B3 st ( G is bijective & ( for a9 being object of B1 for a being object of A1 st a9 = a holds G . a9 = (G * F) . a ) & ( for b9, c9 being object of B1 for b, c being object of A1 st <^b9,c9^> <> {} & b9 = b & c9 = c holds for f9 being Morphism of b9,c9 for f being Morphism of b,c st f9 = f holds G . f9 = (Morph-Map ((G * F),b,c)) . f ) ) take G1 * F1 ; ::_thesis: ( G1 * F1 is bijective & ( for a9 being object of B1 for a being object of A1 st a9 = a holds (G1 * F1) . a9 = (G * F) . a ) & ( for b9, c9 being object of B1 for b, c being object of A1 st <^b9,c9^> <> {} & b9 = b & c9 = c holds for f9 being Morphism of b9,c9 for f being Morphism of b,c st f9 = f holds (G1 * F1) . f9 = (Morph-Map ((G * F),b,c)) . f ) ) thus G1 * F1 is bijective by A1, A4, FUNCTOR1:12; ::_thesis: ( ( for a9 being object of B1 for a being object of A1 st a9 = a holds (G1 * F1) . a9 = (G * F) . a ) & ( for b9, c9 being object of B1 for b, c being object of A1 st <^b9,c9^> <> {} & b9 = b & c9 = c holds for f9 being Morphism of b9,c9 for f being Morphism of b,c st f9 = f holds (G1 * F1) . f9 = (Morph-Map ((G * F),b,c)) . f ) ) hereby ::_thesis: for b9, c9 being object of B1 for b, c being object of A1 st <^b9,c9^> <> {} & b9 = b & c9 = c holds for f9 being Morphism of b9,c9 for f being Morphism of b,c st f9 = f holds (G1 * F1) . f9 = (Morph-Map ((G * F),b,c)) . f let a be object of B1; ::_thesis: for b being object of A1 st a = b holds (G1 * F1) . a = (G * F) . b let b be object of A1; ::_thesis: ( a = b implies (G1 * F1) . a = (G * F) . b ) assume a = b ; ::_thesis: (G1 * F1) . a = (G * F) . b then G1 . (F1 . a) = G . (F . b) by A2, A5; hence (G1 * F1) . a = G . (F . b) by FUNCTOR0:33 .= (G * F) . b by FUNCTOR0:33 ; ::_thesis: verum end; let b, c be object of B1; ::_thesis: for b, c being object of A1 st <^b,c^> <> {} & b = b & c = c holds for f9 being Morphism of b,c for f being Morphism of b,c st f9 = f holds (G1 * F1) . f9 = (Morph-Map ((G * F),b,c)) . f let b1, c1 be object of A1; ::_thesis: ( <^b,c^> <> {} & b = b1 & c = c1 implies for f9 being Morphism of b,c for f being Morphism of b1,c1 st f9 = f holds (G1 * F1) . f9 = (Morph-Map ((G * F),b1,c1)) . f ) assume that A7: <^b,c^> <> {} and A8: ( b = b1 & c = c1 ) ; ::_thesis: for f9 being Morphism of b,c for f being Morphism of b1,c1 st f9 = f holds (G1 * F1) . f9 = (Morph-Map ((G * F),b1,c1)) . f A9: ( (G * F) . b1 = G . (F . b1) & (G * F) . c1 = G . (F . c1) ) by FUNCTOR0:33; let f be Morphism of b,c; ::_thesis: for f being Morphism of b1,c1 st f = f holds (G1 * F1) . f = (Morph-Map ((G * F),b1,c1)) . f let f1 be Morphism of b1,c1; ::_thesis: ( f = f1 implies (G1 * F1) . f = (Morph-Map ((G * F),b1,c1)) . f1 ) A10: ( f in <^b,c^> & <^b,c^> c= <^b1,c1^> ) by A7, A8, ALTCAT_2:31; then A11: <^((G * F) . b1),((G * F) . c1)^> <> {} by FUNCTOR0:def_18; A12: <^(F1 . b),(F1 . c)^> <> {} by A7, FUNCTOR0:def_18; then A13: F1 . f in <^(F1 . b),(F1 . c)^> ; A14: ( F1 . b = F . b1 & F1 . c = F . c1 ) by A2, A8; then A15: <^(F1 . b),(F1 . c)^> c= <^(F . b1),(F . c1)^> by ALTCAT_2:31; assume f = f1 ; ::_thesis: (G1 * F1) . f = (Morph-Map ((G * F),b1,c1)) . f1 then F1 . f = (Morph-Map (F,b1,c1)) . f1 by A3, A7, A8 .= F . f1 by A10, A13, A15, FUNCTOR0:def_15 ; then G1 . (F1 . f) = (Morph-Map (G,(F . b1),(F . c1))) . (F . f1) by A6, A12, A14; hence (G1 * F1) . f = (Morph-Map (G,(F . b1),(F . c1))) . (F . f1) by A7, FUNCTOR3:6 .= G . (F . f1) by A13, A15, A11, A9, FUNCTOR0:def_15 .= (G * F) . f1 by A10, FUNCTOR3:6 .= (Morph-Map ((G * F),b1,c1)) . f1 by A10, A11, FUNCTOR0:def_15 ; ::_thesis: verum end; theorem :: YELLOW20:53 for A1, A2, A3 being category for F being contravariant Functor of A1,A2 for G being covariant Functor of A2,A3 for B1 being non empty subcategory of A1 for B2 being non empty subcategory of A2 for B3 being non empty subcategory of A3 st B1,B2 are_anti-isomorphic_under F & B2,B3 are_isomorphic_under G holds B1,B3 are_anti-isomorphic_under G * F proof let A1, A2, A3 be category; ::_thesis: for F being contravariant Functor of A1,A2 for G being covariant Functor of A2,A3 for B1 being non empty subcategory of A1 for B2 being non empty subcategory of A2 for B3 being non empty subcategory of A3 st B1,B2 are_anti-isomorphic_under F & B2,B3 are_isomorphic_under G holds B1,B3 are_anti-isomorphic_under G * F let F be contravariant Functor of A1,A2; ::_thesis: for G being covariant Functor of A2,A3 for B1 being non empty subcategory of A1 for B2 being non empty subcategory of A2 for B3 being non empty subcategory of A3 st B1,B2 are_anti-isomorphic_under F & B2,B3 are_isomorphic_under G holds B1,B3 are_anti-isomorphic_under G * F let G be covariant Functor of A2,A3; ::_thesis: for B1 being non empty subcategory of A1 for B2 being non empty subcategory of A2 for B3 being non empty subcategory of A3 st B1,B2 are_anti-isomorphic_under F & B2,B3 are_isomorphic_under G holds B1,B3 are_anti-isomorphic_under G * F let B1 be non empty subcategory of A1; ::_thesis: for B2 being non empty subcategory of A2 for B3 being non empty subcategory of A3 st B1,B2 are_anti-isomorphic_under F & B2,B3 are_isomorphic_under G holds B1,B3 are_anti-isomorphic_under G * F let B2 be non empty subcategory of A2; ::_thesis: for B3 being non empty subcategory of A3 st B1,B2 are_anti-isomorphic_under F & B2,B3 are_isomorphic_under G holds B1,B3 are_anti-isomorphic_under G * F let B3 be non empty subcategory of A3; ::_thesis: ( B1,B2 are_anti-isomorphic_under F & B2,B3 are_isomorphic_under G implies B1,B3 are_anti-isomorphic_under G * F ) assume that B1 is subcategory of A1 and B2 is subcategory of A2 ; :: according to YELLOW20:def_5 ::_thesis: ( for G being contravariant Functor of B1,B2 holds ( not G is bijective or ex a9 being object of B1 ex a being object of A1 st ( a9 = a & not G . a9 = F . a ) or ex b9, c9 being object of B1 ex b, c being object of A1 st ( <^b9,c9^> <> {} & b9 = b & c9 = c & ex f9 being Morphism of b9,c9 ex f being Morphism of b,c st ( f9 = f & not G . f9 = (Morph-Map (F,b,c)) . f ) ) ) or not B2,B3 are_isomorphic_under G or B1,B3 are_anti-isomorphic_under G * F ) given F1 being contravariant Functor of B1,B2 such that A1: F1 is bijective and A2: for a being object of B1 for a1 being object of A1 st a = a1 holds F1 . a = F . a1 and A3: for b, c being object of B1 for b1, c1 being object of A1 st <^b,c^> <> {} & b = b1 & c = c1 holds for f being Morphism of b,c for f1 being Morphism of b1,c1 st f = f1 holds F1 . f = (Morph-Map (F,b1,c1)) . f1 ; ::_thesis: ( not B2,B3 are_isomorphic_under G or B1,B3 are_anti-isomorphic_under G * F ) assume that B2 is subcategory of A2 and B3 is subcategory of A3 ; :: according to YELLOW20:def_4 ::_thesis: ( for G being covariant Functor of B2,B3 holds ( not G is bijective or ex a9 being object of B2 ex a being object of A2 st ( a9 = a & not G . a9 = G . a ) or ex b9, c9 being object of B2 ex b, c being object of A2 st ( <^b9,c9^> <> {} & b9 = b & c9 = c & ex f9 being Morphism of b9,c9 ex f being Morphism of b,c st ( f9 = f & not G . f9 = (Morph-Map (G,b,c)) . f ) ) ) or B1,B3 are_anti-isomorphic_under G * F ) given G1 being covariant Functor of B2,B3 such that A4: G1 is bijective and A5: for a being object of B2 for a1 being object of A2 st a = a1 holds G1 . a = G . a1 and A6: for b, c being object of B2 for b1, c1 being object of A2 st <^b,c^> <> {} & b = b1 & c = c1 holds for f being Morphism of b,c for f1 being Morphism of b1,c1 st f = f1 holds G1 . f = (Morph-Map (G,b1,c1)) . f1 ; ::_thesis: B1,B3 are_anti-isomorphic_under G * F thus ( B1 is subcategory of A1 & B3 is subcategory of A3 ) ; :: according to YELLOW20:def_5 ::_thesis: ex G being contravariant Functor of B1,B3 st ( G is bijective & ( for a9 being object of B1 for a being object of A1 st a9 = a holds G . a9 = (G * F) . a ) & ( for b9, c9 being object of B1 for b, c being object of A1 st <^b9,c9^> <> {} & b9 = b & c9 = c holds for f9 being Morphism of b9,c9 for f being Morphism of b,c st f9 = f holds G . f9 = (Morph-Map ((G * F),b,c)) . f ) ) take G1 * F1 ; ::_thesis: ( G1 * F1 is bijective & ( for a9 being object of B1 for a being object of A1 st a9 = a holds (G1 * F1) . a9 = (G * F) . a ) & ( for b9, c9 being object of B1 for b, c being object of A1 st <^b9,c9^> <> {} & b9 = b & c9 = c holds for f9 being Morphism of b9,c9 for f being Morphism of b,c st f9 = f holds (G1 * F1) . f9 = (Morph-Map ((G * F),b,c)) . f ) ) thus G1 * F1 is bijective by A1, A4, FUNCTOR1:12; ::_thesis: ( ( for a9 being object of B1 for a being object of A1 st a9 = a holds (G1 * F1) . a9 = (G * F) . a ) & ( for b9, c9 being object of B1 for b, c being object of A1 st <^b9,c9^> <> {} & b9 = b & c9 = c holds for f9 being Morphism of b9,c9 for f being Morphism of b,c st f9 = f holds (G1 * F1) . f9 = (Morph-Map ((G * F),b,c)) . f ) ) hereby ::_thesis: for b9, c9 being object of B1 for b, c being object of A1 st <^b9,c9^> <> {} & b9 = b & c9 = c holds for f9 being Morphism of b9,c9 for f being Morphism of b,c st f9 = f holds (G1 * F1) . f9 = (Morph-Map ((G * F),b,c)) . f let a be object of B1; ::_thesis: for b being object of A1 st a = b holds (G1 * F1) . a = (G * F) . b let b be object of A1; ::_thesis: ( a = b implies (G1 * F1) . a = (G * F) . b ) assume a = b ; ::_thesis: (G1 * F1) . a = (G * F) . b then G1 . (F1 . a) = G . (F . b) by A2, A5; hence (G1 * F1) . a = G . (F . b) by FUNCTOR0:33 .= (G * F) . b by FUNCTOR0:33 ; ::_thesis: verum end; let b, c be object of B1; ::_thesis: for b, c being object of A1 st <^b,c^> <> {} & b = b & c = c holds for f9 being Morphism of b,c for f being Morphism of b,c st f9 = f holds (G1 * F1) . f9 = (Morph-Map ((G * F),b,c)) . f let b1, c1 be object of A1; ::_thesis: ( <^b,c^> <> {} & b = b1 & c = c1 implies for f9 being Morphism of b,c for f being Morphism of b1,c1 st f9 = f holds (G1 * F1) . f9 = (Morph-Map ((G * F),b1,c1)) . f ) assume that A7: <^b,c^> <> {} and A8: ( b = b1 & c = c1 ) ; ::_thesis: for f9 being Morphism of b,c for f being Morphism of b1,c1 st f9 = f holds (G1 * F1) . f9 = (Morph-Map ((G * F),b1,c1)) . f A9: ( (G * F) . b1 = G . (F . b1) & (G * F) . c1 = G . (F . c1) ) by FUNCTOR0:33; let f be Morphism of b,c; ::_thesis: for f being Morphism of b1,c1 st f = f holds (G1 * F1) . f = (Morph-Map ((G * F),b1,c1)) . f let f1 be Morphism of b1,c1; ::_thesis: ( f = f1 implies (G1 * F1) . f = (Morph-Map ((G * F),b1,c1)) . f1 ) A10: ( f in <^b,c^> & <^b,c^> c= <^b1,c1^> ) by A7, A8, ALTCAT_2:31; then A11: <^((G * F) . c1),((G * F) . b1)^> <> {} by FUNCTOR0:def_19; A12: <^(F1 . c),(F1 . b)^> <> {} by A7, FUNCTOR0:def_19; then A13: F1 . f in <^(F1 . c),(F1 . b)^> ; A14: ( F1 . b = F . b1 & F1 . c = F . c1 ) by A2, A8; then A15: <^(F1 . c),(F1 . b)^> c= <^(F . c1),(F . b1)^> by ALTCAT_2:31; assume f = f1 ; ::_thesis: (G1 * F1) . f = (Morph-Map ((G * F),b1,c1)) . f1 then F1 . f = (Morph-Map (F,b1,c1)) . f1 by A3, A7, A8 .= F . f1 by A10, A13, A15, FUNCTOR0:def_16 ; then G1 . (F1 . f) = (Morph-Map (G,(F . c1),(F . b1))) . (F . f1) by A6, A12, A14; hence (G1 * F1) . f = (Morph-Map (G,(F . c1),(F . b1))) . (F . f1) by A7, FUNCTOR3:9 .= G . (F . f1) by A13, A15, A11, A9, FUNCTOR0:def_15 .= (G * F) . f1 by A10, FUNCTOR3:9 .= (Morph-Map ((G * F),b1,c1)) . f1 by A10, A11, FUNCTOR0:def_16 ; ::_thesis: verum end; theorem :: YELLOW20:54 for A1, A2, A3 being category for F being covariant Functor of A1,A2 for G being contravariant Functor of A2,A3 for B1 being non empty subcategory of A1 for B2 being non empty subcategory of A2 for B3 being non empty subcategory of A3 st B1,B2 are_isomorphic_under F & B2,B3 are_anti-isomorphic_under G holds B1,B3 are_anti-isomorphic_under G * F proof let A1, A2, A3 be category; ::_thesis: for F being covariant Functor of A1,A2 for G being contravariant Functor of A2,A3 for B1 being non empty subcategory of A1 for B2 being non empty subcategory of A2 for B3 being non empty subcategory of A3 st B1,B2 are_isomorphic_under F & B2,B3 are_anti-isomorphic_under G holds B1,B3 are_anti-isomorphic_under G * F let F be covariant Functor of A1,A2; ::_thesis: for G being contravariant Functor of A2,A3 for B1 being non empty subcategory of A1 for B2 being non empty subcategory of A2 for B3 being non empty subcategory of A3 st B1,B2 are_isomorphic_under F & B2,B3 are_anti-isomorphic_under G holds B1,B3 are_anti-isomorphic_under G * F let G be contravariant Functor of A2,A3; ::_thesis: for B1 being non empty subcategory of A1 for B2 being non empty subcategory of A2 for B3 being non empty subcategory of A3 st B1,B2 are_isomorphic_under F & B2,B3 are_anti-isomorphic_under G holds B1,B3 are_anti-isomorphic_under G * F let B1 be non empty subcategory of A1; ::_thesis: for B2 being non empty subcategory of A2 for B3 being non empty subcategory of A3 st B1,B2 are_isomorphic_under F & B2,B3 are_anti-isomorphic_under G holds B1,B3 are_anti-isomorphic_under G * F let B2 be non empty subcategory of A2; ::_thesis: for B3 being non empty subcategory of A3 st B1,B2 are_isomorphic_under F & B2,B3 are_anti-isomorphic_under G holds B1,B3 are_anti-isomorphic_under G * F let B3 be non empty subcategory of A3; ::_thesis: ( B1,B2 are_isomorphic_under F & B2,B3 are_anti-isomorphic_under G implies B1,B3 are_anti-isomorphic_under G * F ) assume that B1 is subcategory of A1 and B2 is subcategory of A2 ; :: according to YELLOW20:def_4 ::_thesis: ( for G being covariant Functor of B1,B2 holds ( not G is bijective or ex a9 being object of B1 ex a being object of A1 st ( a9 = a & not G . a9 = F . a ) or ex b9, c9 being object of B1 ex b, c being object of A1 st ( <^b9,c9^> <> {} & b9 = b & c9 = c & ex f9 being Morphism of b9,c9 ex f being Morphism of b,c st ( f9 = f & not G . f9 = (Morph-Map (F,b,c)) . f ) ) ) or not B2,B3 are_anti-isomorphic_under G or B1,B3 are_anti-isomorphic_under G * F ) given F1 being covariant Functor of B1,B2 such that A1: F1 is bijective and A2: for a being object of B1 for a1 being object of A1 st a = a1 holds F1 . a = F . a1 and A3: for b, c being object of B1 for b1, c1 being object of A1 st <^b,c^> <> {} & b = b1 & c = c1 holds for f being Morphism of b,c for f1 being Morphism of b1,c1 st f = f1 holds F1 . f = (Morph-Map (F,b1,c1)) . f1 ; ::_thesis: ( not B2,B3 are_anti-isomorphic_under G or B1,B3 are_anti-isomorphic_under G * F ) assume that B2 is subcategory of A2 and B3 is subcategory of A3 ; :: according to YELLOW20:def_5 ::_thesis: ( for G being contravariant Functor of B2,B3 holds ( not G is bijective or ex a9 being object of B2 ex a being object of A2 st ( a9 = a & not G . a9 = G . a ) or ex b9, c9 being object of B2 ex b, c being object of A2 st ( <^b9,c9^> <> {} & b9 = b & c9 = c & ex f9 being Morphism of b9,c9 ex f being Morphism of b,c st ( f9 = f & not G . f9 = (Morph-Map (G,b,c)) . f ) ) ) or B1,B3 are_anti-isomorphic_under G * F ) given G1 being contravariant Functor of B2,B3 such that A4: G1 is bijective and A5: for a being object of B2 for a1 being object of A2 st a = a1 holds G1 . a = G . a1 and A6: for b, c being object of B2 for b1, c1 being object of A2 st <^b,c^> <> {} & b = b1 & c = c1 holds for f being Morphism of b,c for f1 being Morphism of b1,c1 st f = f1 holds G1 . f = (Morph-Map (G,b1,c1)) . f1 ; ::_thesis: B1,B3 are_anti-isomorphic_under G * F thus ( B1 is subcategory of A1 & B3 is subcategory of A3 ) ; :: according to YELLOW20:def_5 ::_thesis: ex G being contravariant Functor of B1,B3 st ( G is bijective & ( for a9 being object of B1 for a being object of A1 st a9 = a holds G . a9 = (G * F) . a ) & ( for b9, c9 being object of B1 for b, c being object of A1 st <^b9,c9^> <> {} & b9 = b & c9 = c holds for f9 being Morphism of b9,c9 for f being Morphism of b,c st f9 = f holds G . f9 = (Morph-Map ((G * F),b,c)) . f ) ) take G1 * F1 ; ::_thesis: ( G1 * F1 is bijective & ( for a9 being object of B1 for a being object of A1 st a9 = a holds (G1 * F1) . a9 = (G * F) . a ) & ( for b9, c9 being object of B1 for b, c being object of A1 st <^b9,c9^> <> {} & b9 = b & c9 = c holds for f9 being Morphism of b9,c9 for f being Morphism of b,c st f9 = f holds (G1 * F1) . f9 = (Morph-Map ((G * F),b,c)) . f ) ) thus G1 * F1 is bijective by A1, A4, FUNCTOR1:12; ::_thesis: ( ( for a9 being object of B1 for a being object of A1 st a9 = a holds (G1 * F1) . a9 = (G * F) . a ) & ( for b9, c9 being object of B1 for b, c being object of A1 st <^b9,c9^> <> {} & b9 = b & c9 = c holds for f9 being Morphism of b9,c9 for f being Morphism of b,c st f9 = f holds (G1 * F1) . f9 = (Morph-Map ((G * F),b,c)) . f ) ) hereby ::_thesis: for b9, c9 being object of B1 for b, c being object of A1 st <^b9,c9^> <> {} & b9 = b & c9 = c holds for f9 being Morphism of b9,c9 for f being Morphism of b,c st f9 = f holds (G1 * F1) . f9 = (Morph-Map ((G * F),b,c)) . f let a be object of B1; ::_thesis: for b being object of A1 st a = b holds (G1 * F1) . a = (G * F) . b let b be object of A1; ::_thesis: ( a = b implies (G1 * F1) . a = (G * F) . b ) assume a = b ; ::_thesis: (G1 * F1) . a = (G * F) . b then G1 . (F1 . a) = G . (F . b) by A2, A5; hence (G1 * F1) . a = G . (F . b) by FUNCTOR0:33 .= (G * F) . b by FUNCTOR0:33 ; ::_thesis: verum end; let b, c be object of B1; ::_thesis: for b, c being object of A1 st <^b,c^> <> {} & b = b & c = c holds for f9 being Morphism of b,c for f being Morphism of b,c st f9 = f holds (G1 * F1) . f9 = (Morph-Map ((G * F),b,c)) . f let b1, c1 be object of A1; ::_thesis: ( <^b,c^> <> {} & b = b1 & c = c1 implies for f9 being Morphism of b,c for f being Morphism of b1,c1 st f9 = f holds (G1 * F1) . f9 = (Morph-Map ((G * F),b1,c1)) . f ) assume that A7: <^b,c^> <> {} and A8: ( b = b1 & c = c1 ) ; ::_thesis: for f9 being Morphism of b,c for f being Morphism of b1,c1 st f9 = f holds (G1 * F1) . f9 = (Morph-Map ((G * F),b1,c1)) . f A9: ( (G * F) . b1 = G . (F . b1) & (G * F) . c1 = G . (F . c1) ) by FUNCTOR0:33; let f be Morphism of b,c; ::_thesis: for f being Morphism of b1,c1 st f = f holds (G1 * F1) . f = (Morph-Map ((G * F),b1,c1)) . f let f1 be Morphism of b1,c1; ::_thesis: ( f = f1 implies (G1 * F1) . f = (Morph-Map ((G * F),b1,c1)) . f1 ) A10: ( f in <^b,c^> & <^b,c^> c= <^b1,c1^> ) by A7, A8, ALTCAT_2:31; then A11: <^((G * F) . c1),((G * F) . b1)^> <> {} by FUNCTOR0:def_19; A12: <^(F1 . b),(F1 . c)^> <> {} by A7, FUNCTOR0:def_18; then A13: F1 . f in <^(F1 . b),(F1 . c)^> ; A14: ( F1 . b = F . b1 & F1 . c = F . c1 ) by A2, A8; then A15: <^(F1 . b),(F1 . c)^> c= <^(F . b1),(F . c1)^> by ALTCAT_2:31; assume f = f1 ; ::_thesis: (G1 * F1) . f = (Morph-Map ((G * F),b1,c1)) . f1 then F1 . f = (Morph-Map (F,b1,c1)) . f1 by A3, A7, A8 .= F . f1 by A10, A13, A15, FUNCTOR0:def_15 ; then G1 . (F1 . f) = (Morph-Map (G,(F . b1),(F . c1))) . (F . f1) by A6, A12, A14; hence (G1 * F1) . f = (Morph-Map (G,(F . b1),(F . c1))) . (F . f1) by A7, FUNCTOR3:8 .= G . (F . f1) by A13, A15, A11, A9, FUNCTOR0:def_16 .= (G * F) . f1 by A10, FUNCTOR3:8 .= (Morph-Map ((G * F),b1,c1)) . f1 by A10, A11, FUNCTOR0:def_16 ; ::_thesis: verum end; theorem :: YELLOW20:55 for A1, A2, A3 being category for F being contravariant Functor of A1,A2 for G being contravariant Functor of A2,A3 for B1 being non empty subcategory of A1 for B2 being non empty subcategory of A2 for B3 being non empty subcategory of A3 st B1,B2 are_anti-isomorphic_under F & B2,B3 are_anti-isomorphic_under G holds B1,B3 are_isomorphic_under G * F proof let A1, A2, A3 be category; ::_thesis: for F being contravariant Functor of A1,A2 for G being contravariant Functor of A2,A3 for B1 being non empty subcategory of A1 for B2 being non empty subcategory of A2 for B3 being non empty subcategory of A3 st B1,B2 are_anti-isomorphic_under F & B2,B3 are_anti-isomorphic_under G holds B1,B3 are_isomorphic_under G * F let F be contravariant Functor of A1,A2; ::_thesis: for G being contravariant Functor of A2,A3 for B1 being non empty subcategory of A1 for B2 being non empty subcategory of A2 for B3 being non empty subcategory of A3 st B1,B2 are_anti-isomorphic_under F & B2,B3 are_anti-isomorphic_under G holds B1,B3 are_isomorphic_under G * F let G be contravariant Functor of A2,A3; ::_thesis: for B1 being non empty subcategory of A1 for B2 being non empty subcategory of A2 for B3 being non empty subcategory of A3 st B1,B2 are_anti-isomorphic_under F & B2,B3 are_anti-isomorphic_under G holds B1,B3 are_isomorphic_under G * F let B1 be non empty subcategory of A1; ::_thesis: for B2 being non empty subcategory of A2 for B3 being non empty subcategory of A3 st B1,B2 are_anti-isomorphic_under F & B2,B3 are_anti-isomorphic_under G holds B1,B3 are_isomorphic_under G * F let B2 be non empty subcategory of A2; ::_thesis: for B3 being non empty subcategory of A3 st B1,B2 are_anti-isomorphic_under F & B2,B3 are_anti-isomorphic_under G holds B1,B3 are_isomorphic_under G * F let B3 be non empty subcategory of A3; ::_thesis: ( B1,B2 are_anti-isomorphic_under F & B2,B3 are_anti-isomorphic_under G implies B1,B3 are_isomorphic_under G * F ) assume that B1 is subcategory of A1 and B2 is subcategory of A2 ; :: according to YELLOW20:def_5 ::_thesis: ( for G being contravariant Functor of B1,B2 holds ( not G is bijective or ex a9 being object of B1 ex a being object of A1 st ( a9 = a & not G . a9 = F . a ) or ex b9, c9 being object of B1 ex b, c being object of A1 st ( <^b9,c9^> <> {} & b9 = b & c9 = c & ex f9 being Morphism of b9,c9 ex f being Morphism of b,c st ( f9 = f & not G . f9 = (Morph-Map (F,b,c)) . f ) ) ) or not B2,B3 are_anti-isomorphic_under G or B1,B3 are_isomorphic_under G * F ) given F1 being contravariant Functor of B1,B2 such that A1: F1 is bijective and A2: for a being object of B1 for a1 being object of A1 st a = a1 holds F1 . a = F . a1 and A3: for b, c being object of B1 for b1, c1 being object of A1 st <^b,c^> <> {} & b = b1 & c = c1 holds for f being Morphism of b,c for f1 being Morphism of b1,c1 st f = f1 holds F1 . f = (Morph-Map (F,b1,c1)) . f1 ; ::_thesis: ( not B2,B3 are_anti-isomorphic_under G or B1,B3 are_isomorphic_under G * F ) assume that B2 is subcategory of A2 and B3 is subcategory of A3 ; :: according to YELLOW20:def_5 ::_thesis: ( for G being contravariant Functor of B2,B3 holds ( not G is bijective or ex a9 being object of B2 ex a being object of A2 st ( a9 = a & not G . a9 = G . a ) or ex b9, c9 being object of B2 ex b, c being object of A2 st ( <^b9,c9^> <> {} & b9 = b & c9 = c & ex f9 being Morphism of b9,c9 ex f being Morphism of b,c st ( f9 = f & not G . f9 = (Morph-Map (G,b,c)) . f ) ) ) or B1,B3 are_isomorphic_under G * F ) given G1 being contravariant Functor of B2,B3 such that A4: G1 is bijective and A5: for a being object of B2 for a1 being object of A2 st a = a1 holds G1 . a = G . a1 and A6: for b, c being object of B2 for b1, c1 being object of A2 st <^b,c^> <> {} & b = b1 & c = c1 holds for f being Morphism of b,c for f1 being Morphism of b1,c1 st f = f1 holds G1 . f = (Morph-Map (G,b1,c1)) . f1 ; ::_thesis: B1,B3 are_isomorphic_under G * F thus ( B1 is subcategory of A1 & B3 is subcategory of A3 ) ; :: according to YELLOW20:def_4 ::_thesis: ex G being covariant Functor of B1,B3 st ( G is bijective & ( for a9 being object of B1 for a being object of A1 st a9 = a holds G . a9 = (G * F) . a ) & ( for b9, c9 being object of B1 for b, c being object of A1 st <^b9,c9^> <> {} & b9 = b & c9 = c holds for f9 being Morphism of b9,c9 for f being Morphism of b,c st f9 = f holds G . f9 = (Morph-Map ((G * F),b,c)) . f ) ) take G1 * F1 ; ::_thesis: ( G1 * F1 is bijective & ( for a9 being object of B1 for a being object of A1 st a9 = a holds (G1 * F1) . a9 = (G * F) . a ) & ( for b9, c9 being object of B1 for b, c being object of A1 st <^b9,c9^> <> {} & b9 = b & c9 = c holds for f9 being Morphism of b9,c9 for f being Morphism of b,c st f9 = f holds (G1 * F1) . f9 = (Morph-Map ((G * F),b,c)) . f ) ) thus G1 * F1 is bijective by A1, A4, FUNCTOR1:12; ::_thesis: ( ( for a9 being object of B1 for a being object of A1 st a9 = a holds (G1 * F1) . a9 = (G * F) . a ) & ( for b9, c9 being object of B1 for b, c being object of A1 st <^b9,c9^> <> {} & b9 = b & c9 = c holds for f9 being Morphism of b9,c9 for f being Morphism of b,c st f9 = f holds (G1 * F1) . f9 = (Morph-Map ((G * F),b,c)) . f ) ) hereby ::_thesis: for b9, c9 being object of B1 for b, c being object of A1 st <^b9,c9^> <> {} & b9 = b & c9 = c holds for f9 being Morphism of b9,c9 for f being Morphism of b,c st f9 = f holds (G1 * F1) . f9 = (Morph-Map ((G * F),b,c)) . f let a be object of B1; ::_thesis: for b being object of A1 st a = b holds (G1 * F1) . a = (G * F) . b let b be object of A1; ::_thesis: ( a = b implies (G1 * F1) . a = (G * F) . b ) assume a = b ; ::_thesis: (G1 * F1) . a = (G * F) . b then G1 . (F1 . a) = G . (F . b) by A2, A5; hence (G1 * F1) . a = G . (F . b) by FUNCTOR0:33 .= (G * F) . b by FUNCTOR0:33 ; ::_thesis: verum end; let b, c be object of B1; ::_thesis: for b, c being object of A1 st <^b,c^> <> {} & b = b & c = c holds for f9 being Morphism of b,c for f being Morphism of b,c st f9 = f holds (G1 * F1) . f9 = (Morph-Map ((G * F),b,c)) . f let b1, c1 be object of A1; ::_thesis: ( <^b,c^> <> {} & b = b1 & c = c1 implies for f9 being Morphism of b,c for f being Morphism of b1,c1 st f9 = f holds (G1 * F1) . f9 = (Morph-Map ((G * F),b1,c1)) . f ) assume that A7: <^b,c^> <> {} and A8: ( b = b1 & c = c1 ) ; ::_thesis: for f9 being Morphism of b,c for f being Morphism of b1,c1 st f9 = f holds (G1 * F1) . f9 = (Morph-Map ((G * F),b1,c1)) . f A9: ( (G * F) . b1 = G . (F . b1) & (G * F) . c1 = G . (F . c1) ) by FUNCTOR0:33; let f be Morphism of b,c; ::_thesis: for f being Morphism of b1,c1 st f = f holds (G1 * F1) . f = (Morph-Map ((G * F),b1,c1)) . f let f1 be Morphism of b1,c1; ::_thesis: ( f = f1 implies (G1 * F1) . f = (Morph-Map ((G * F),b1,c1)) . f1 ) A10: ( f in <^b,c^> & <^b,c^> c= <^b1,c1^> ) by A7, A8, ALTCAT_2:31; then A11: <^((G * F) . b1),((G * F) . c1)^> <> {} by FUNCTOR0:def_18; A12: <^(F1 . c),(F1 . b)^> <> {} by A7, FUNCTOR0:def_19; then A13: F1 . f in <^(F1 . c),(F1 . b)^> ; A14: ( F1 . b = F . b1 & F1 . c = F . c1 ) by A2, A8; then A15: <^(F1 . c),(F1 . b)^> c= <^(F . c1),(F . b1)^> by ALTCAT_2:31; assume f = f1 ; ::_thesis: (G1 * F1) . f = (Morph-Map ((G * F),b1,c1)) . f1 then F1 . f = (Morph-Map (F,b1,c1)) . f1 by A3, A7, A8 .= F . f1 by A10, A13, A15, FUNCTOR0:def_16 ; then G1 . (F1 . f) = (Morph-Map (G,(F . c1),(F . b1))) . (F . f1) by A6, A12, A14; hence (G1 * F1) . f = (Morph-Map (G,(F . c1),(F . b1))) . (F . f1) by A7, FUNCTOR3:7 .= G . (F . f1) by A13, A15, A11, A9, FUNCTOR0:def_16 .= (G * F) . f1 by A10, FUNCTOR3:7 .= (Morph-Map ((G * F),b1,c1)) . f1 by A10, A11, FUNCTOR0:def_15 ; ::_thesis: verum end; theorem :: YELLOW20:56 for A1, A2 being category for F being covariant Functor of A1,A2 for B1 being non empty subcategory of A1 for B2 being non empty subcategory of A2 st F is bijective & ( for a being object of A1 holds ( a is object of B1 iff F . a is object of B2 ) ) & ( for a, b being object of A1 st <^a,b^> <> {} holds for a1, b1 being object of B1 st a1 = a & b1 = b holds for a2, b2 being object of B2 st a2 = F . a & b2 = F . b holds for f being Morphism of a,b holds ( f in <^a1,b1^> iff F . f in <^a2,b2^> ) ) holds B1,B2 are_isomorphic_under F proof let A1, A2 be category; ::_thesis: for F being covariant Functor of A1,A2 for B1 being non empty subcategory of A1 for B2 being non empty subcategory of A2 st F is bijective & ( for a being object of A1 holds ( a is object of B1 iff F . a is object of B2 ) ) & ( for a, b being object of A1 st <^a,b^> <> {} holds for a1, b1 being object of B1 st a1 = a & b1 = b holds for a2, b2 being object of B2 st a2 = F . a & b2 = F . b holds for f being Morphism of a,b holds ( f in <^a1,b1^> iff F . f in <^a2,b2^> ) ) holds B1,B2 are_isomorphic_under F let F be covariant Functor of A1,A2; ::_thesis: for B1 being non empty subcategory of A1 for B2 being non empty subcategory of A2 st F is bijective & ( for a being object of A1 holds ( a is object of B1 iff F . a is object of B2 ) ) & ( for a, b being object of A1 st <^a,b^> <> {} holds for a1, b1 being object of B1 st a1 = a & b1 = b holds for a2, b2 being object of B2 st a2 = F . a & b2 = F . b holds for f being Morphism of a,b holds ( f in <^a1,b1^> iff F . f in <^a2,b2^> ) ) holds B1,B2 are_isomorphic_under F let B1 be non empty subcategory of A1; ::_thesis: for B2 being non empty subcategory of A2 st F is bijective & ( for a being object of A1 holds ( a is object of B1 iff F . a is object of B2 ) ) & ( for a, b being object of A1 st <^a,b^> <> {} holds for a1, b1 being object of B1 st a1 = a & b1 = b holds for a2, b2 being object of B2 st a2 = F . a & b2 = F . b holds for f being Morphism of a,b holds ( f in <^a1,b1^> iff F . f in <^a2,b2^> ) ) holds B1,B2 are_isomorphic_under F let B2 be non empty subcategory of A2; ::_thesis: ( F is bijective & ( for a being object of A1 holds ( a is object of B1 iff F . a is object of B2 ) ) & ( for a, b being object of A1 st <^a,b^> <> {} holds for a1, b1 being object of B1 st a1 = a & b1 = b holds for a2, b2 being object of B2 st a2 = F . a & b2 = F . b holds for f being Morphism of a,b holds ( f in <^a1,b1^> iff F . f in <^a2,b2^> ) ) implies B1,B2 are_isomorphic_under F ) assume that A1: F is bijective and A2: for a being object of A1 holds ( a is object of B1 iff F . a is object of B2 ) and A3: for a, b being object of A1 st <^a,b^> <> {} holds for a1, b1 being object of B1 st a1 = a & b1 = b holds for a2, b2 being object of B2 st a2 = F . a & b2 = F . b holds for f being Morphism of a,b holds ( f in <^a1,b1^> iff F . f in <^a2,b2^> ) ; ::_thesis: B1,B2 are_isomorphic_under F thus B1,B2 are_isomorphic_under F ::_thesis: verum proof deffunc H1( object of B1, object of B1, Morphism of $1,$2) -> M2(<^((F | B1) . $1),((F | B1) . $2)^>) = (F | B1) . $3; deffunc H2( object of B1) -> M2( the carrier of A2) = (F | B1) . $1; A4: ( F is injective & F is surjective ) by A1, FUNCTOR0:def_35; A5: for a, b being object of B2 st <^a,b^> <> {} holds for f being Morphism of a,b ex c, d being object of B1 ex g being Morphism of c,d st ( a = H2(c) & b = H2(d) & <^c,d^> <> {} & f = H1(c,d,g) ) proof A6: the carrier of B2 c= the carrier of A2 by ALTCAT_2:def_11; let a, b be object of B2; ::_thesis: ( <^a,b^> <> {} implies for f being Morphism of a,b ex c, d being object of B1 ex g being Morphism of c,d st ( a = H2(c) & b = H2(d) & <^c,d^> <> {} & f = H1(c,d,g) ) ) assume A7: <^a,b^> <> {} ; ::_thesis: for f being Morphism of a,b ex c, d being object of B1 ex g being Morphism of c,d st ( a = H2(c) & b = H2(d) & <^c,d^> <> {} & f = H1(c,d,g) ) ( a in the carrier of B2 & b in the carrier of B2 ) ; then reconsider a1 = a, b1 = b as object of A2 by A6; let f be Morphism of a,b; ::_thesis: ex c, d being object of B1 ex g being Morphism of c,d st ( a = H2(c) & b = H2(d) & <^c,d^> <> {} & f = H1(c,d,g) ) A8: ( <^a,b^> c= <^a1,b1^> & f in <^a,b^> ) by A7, ALTCAT_2:31; then reconsider f1 = f as Morphism of a1,b1 ; consider c1, d1 being object of A1, g1 being Morphism of c1,d1 such that A9: ( a1 = F . c1 & b1 = F . d1 ) and A10: <^c1,d1^> <> {} and A11: f1 = F . g1 by A4, A8, Th33; reconsider c = c1, d = d1 as object of B1 by A2, A9; reconsider g = g1 as Morphism of c,d by A3, A7, A9, A10, A11; take c ; ::_thesis: ex d being object of B1 ex g being Morphism of c,d st ( a = H2(c) & b = H2(d) & <^c,d^> <> {} & f = H1(c,d,g) ) take d ; ::_thesis: ex g being Morphism of c,d st ( a = H2(c) & b = H2(d) & <^c,d^> <> {} & f = H1(c,d,g) ) take g ; ::_thesis: ( a = H2(c) & b = H2(d) & <^c,d^> <> {} & f = H1(c,d,g) ) g1 in <^c,d^> by A3, A7, A9, A10, A11; hence ( a = H2(c) & b = H2(d) & <^c,d^> <> {} & f = H1(c,d,g) ) by A9, A11, Th28, Th29; ::_thesis: verum end; A12: the carrier of B1 c= the carrier of A1 by ALTCAT_2:def_11; A13: now__::_thesis:_for_a_being_object_of_B1_holds_H2(a)_is_object_of_B2 let a be object of B1; ::_thesis: H2(a) is object of B2 a in the carrier of B1 ; then reconsider b = a as object of A1 by A12; (F | B1) . a = F . b by Th28; hence H2(a) is object of B2 by A2; ::_thesis: verum end; A14: now__::_thesis:_for_a,_b_being_object_of_B1_st_<^a,b^>_<>_{}_holds_ for_f_being_Morphism_of_a,b_holds_H1(a,b,f)_in_the_Arrows_of_B2_._(H2(a),H2(b)) let a, b be object of B1; ::_thesis: ( <^a,b^> <> {} implies for f being Morphism of a,b holds H1(a,b,f) in the Arrows of B2 . (H2(a),H2(b)) ) assume A15: <^a,b^> <> {} ; ::_thesis: for f being Morphism of a,b holds H1(a,b,f) in the Arrows of B2 . (H2(a),H2(b)) let f be Morphism of a,b; ::_thesis: H1(a,b,f) in the Arrows of B2 . (H2(a),H2(b)) ( a in the carrier of B1 & b in the carrier of B1 ) ; then reconsider c = a, d = b as object of A1 by A12; A16: ( <^a,b^> c= <^c,d^> & f in <^a,b^> ) by A15, ALTCAT_2:31; then reconsider g = f as Morphism of c,d ; reconsider a9 = (F | B1) . a, b9 = (F | B1) . b as object of B2 by A13; A17: ( (F | B1) . a = F . c & (F | B1) . b = F . d ) by Th28; (F | B1) . f = F . g by A15, Th29; then (F | B1) . f in <^a9,b9^> by A3, A16, A17; hence H1(a,b,f) in the Arrows of B2 . (H2(a),H2(b)) ; ::_thesis: verum end; thus ( B1 is subcategory of A1 & B2 is subcategory of A2 ) ; :: according to YELLOW20:def_4 ::_thesis: ex G being covariant Functor of B1,B2 st ( G is bijective & ( for a9 being object of B1 for a being object of A1 st a9 = a holds G . a9 = F . a ) & ( for b9, c9 being object of B1 for b, c being object of A1 st <^b9,c9^> <> {} & b9 = b & c9 = c holds for f9 being Morphism of b9,c9 for f being Morphism of b,c st f9 = f holds G . f9 = (Morph-Map (F,b,c)) . f ) ) A18: ( F is one-to-one & F is faithful & F is surjective ) by A4, FUNCTOR0:def_33; A19: now__::_thesis:_for_a,_b_being_object_of_B1_st_<^a,b^>_<>_{}_holds_ for_f,_g_being_Morphism_of_a,b_st_H1(a,b,f)_=_H1(a,b,g)_holds_ f_=_g let a, b be object of B1; ::_thesis: ( <^a,b^> <> {} implies for f, g being Morphism of a,b st H1(a,b,f) = H1(a,b,g) holds f = g ) assume A20: <^a,b^> <> {} ; ::_thesis: for f, g being Morphism of a,b st H1(a,b,f) = H1(a,b,g) holds f = g ( a in the carrier of B1 & b in the carrier of B1 ) ; then reconsider a1 = a, b1 = b as object of A1 by A12; let f, g be Morphism of a,b; ::_thesis: ( H1(a,b,f) = H1(a,b,g) implies f = g ) A21: ( <^a,b^> c= <^a1,b1^> & f in <^a,b^> ) by A20, ALTCAT_2:31; g in <^a,b^> by A20; then reconsider f1 = f, g1 = g as Morphism of a1,b1 by A21; assume H1(a,b,f) = H1(a,b,g) ; ::_thesis: f = g then F . f1 = (F | B1) . g by A20, Th29 .= F . g1 by A20, Th29 ; hence f = g by A18, A21, Th32; ::_thesis: verum end; A22: now__::_thesis:_for_a,_b,_c_being_object_of_B1_st_<^a,b^>_<>_{}_&_<^b,c^>_<>_{}_holds_ for_f_being_Morphism_of_a,b for_g_being_Morphism_of_b,c for_a9,_b9,_c9_being_object_of_B2_st_a9_=_H2(a)_&_b9_=_H2(b)_&_c9_=_H2(c)_holds_ for_f9_being_Morphism_of_a9,b9 for_g9_being_Morphism_of_b9,c9_st_f9_=_H1(a,b,f)_&_g9_=_H1(b,c,g)_holds_ H1(a,c,g_*_f)_=_g9_*_f9 let a, b, c be object of B1; ::_thesis: ( <^a,b^> <> {} & <^b,c^> <> {} implies for f being Morphism of a,b for g being Morphism of b,c for a9, b9, c9 being object of B2 st a9 = H2(a) & b9 = H2(b) & c9 = H2(c) holds for f9 being Morphism of a9,b9 for g9 being Morphism of b9,c9 st f9 = H1(a,b,f) & g9 = H1(b,c,g) holds H1(a,c,g * f) = g9 * f9 ) assume that A23: <^a,b^> <> {} and A24: <^b,c^> <> {} ; ::_thesis: for f being Morphism of a,b for g being Morphism of b,c for a9, b9, c9 being object of B2 st a9 = H2(a) & b9 = H2(b) & c9 = H2(c) holds for f9 being Morphism of a9,b9 for g9 being Morphism of b9,c9 st f9 = H1(a,b,f) & g9 = H1(b,c,g) holds H1(a,c,g * f) = g9 * f9 let f be Morphism of a,b; ::_thesis: for g being Morphism of b,c for a9, b9, c9 being object of B2 st a9 = H2(a) & b9 = H2(b) & c9 = H2(c) holds for f9 being Morphism of a9,b9 for g9 being Morphism of b9,c9 st f9 = H1(a,b,f) & g9 = H1(b,c,g) holds H1(a,c,g * f) = g9 * f9 let g be Morphism of b,c; ::_thesis: for a9, b9, c9 being object of B2 st a9 = H2(a) & b9 = H2(b) & c9 = H2(c) holds for f9 being Morphism of a9,b9 for g9 being Morphism of b9,c9 st f9 = H1(a,b,f) & g9 = H1(b,c,g) holds H1(a,c,g * f) = g9 * f9 A25: c in the carrier of B1 ; ( a in the carrier of B1 & b in the carrier of B1 ) ; then reconsider a1 = a, b1 = b, c1 = c as object of A1 by A12, A25; let a9, b9, c9 be object of B2; ::_thesis: ( a9 = H2(a) & b9 = H2(b) & c9 = H2(c) implies for f9 being Morphism of a9,b9 for g9 being Morphism of b9,c9 st f9 = H1(a,b,f) & g9 = H1(b,c,g) holds H1(a,c,g * f) = g9 * f9 ) assume that A26: a9 = H2(a) and A27: b9 = H2(b) and A28: c9 = H2(c) ; ::_thesis: for f9 being Morphism of a9,b9 for g9 being Morphism of b9,c9 st f9 = H1(a,b,f) & g9 = H1(b,c,g) holds H1(a,c,g * f) = g9 * f9 let f9 be Morphism of a9,b9; ::_thesis: for g9 being Morphism of b9,c9 st f9 = H1(a,b,f) & g9 = H1(b,c,g) holds H1(a,c,g * f) = g9 * f9 let g9 be Morphism of b9,c9; ::_thesis: ( f9 = H1(a,b,f) & g9 = H1(b,c,g) implies H1(a,c,g * f) = g9 * f9 ) assume that A29: f9 = H1(a,b,f) and A30: g9 = H1(b,c,g) ; ::_thesis: H1(a,c,g * f) = g9 * f9 A31: b9 = F . b1 by A27, Th28; A32: ( <^b,c^> c= <^b1,c1^> & g in <^b,c^> ) by A24, ALTCAT_2:31; then reconsider g1 = g as Morphism of b1,c1 ; A33: c9 = F . c1 by A28, Th28; A34: ( <^a,b^> c= <^a1,b1^> & f in <^a,b^> ) by A23, ALTCAT_2:31; then reconsider f1 = f as Morphism of a1,b1 ; A35: a9 = F . a1 by A26, Th28; A36: g9 = F . g1 by A24, A30, Th29; then A37: g9 in <^b9,c9^> by A3, A32, A31, A33; A38: f9 = F . f1 by A23, A29, Th29; then A39: f9 in <^a9,b9^> by A3, A34, A35, A31; ( <^a,c^> <> {} & g * f = g1 * f1 ) by A23, A24, ALTCAT_1:def_2, ALTCAT_2:32; then (F | B1) . (g * f) = F . (g1 * f1) by Th29; hence H1(a,c,g * f) = (F . g1) * (F . f1) by A34, A32, FUNCTOR0:def_23 .= g9 * f9 by A35, A31, A33, A38, A36, A39, A37, ALTCAT_2:32 ; ::_thesis: verum end; A40: now__::_thesis:_for_a_being_object_of_B1 for_a9_being_object_of_B2_st_a9_=_H2(a)_holds_ H1(a,a,_idm_a)_=_idm_a9 let a be object of B1; ::_thesis: for a9 being object of B2 st a9 = H2(a) holds H1(a,a, idm a) = idm a9 let a9 be object of B2; ::_thesis: ( a9 = H2(a) implies H1(a,a, idm a) = idm a9 ) assume A41: a9 = H2(a) ; ::_thesis: H1(a,a, idm a) = idm a9 a in the carrier of B1 ; then reconsider a1 = a as object of A1 by A12; thus H1(a,a, idm a) = F . (idm a1) by Th29, ALTCAT_2:34 .= idm (F . a1) by FUNCTOR2:1 .= idm a9 by A41, Th28, ALTCAT_2:34 ; ::_thesis: verum end; consider G being strict covariant Functor of B1,B2 such that A42: for a being object of B1 holds G . a = H2(a) and A43: for a, b being object of B1 st <^a,b^> <> {} holds for f being Morphism of a,b holds G . f = H1(a,b,f) from YELLOW18:sch_8(A13, A14, A22, A40); take G ; ::_thesis: ( G is bijective & ( for a9 being object of B1 for a being object of A1 st a9 = a holds G . a9 = F . a ) & ( for b9, c9 being object of B1 for b, c being object of A1 st <^b9,c9^> <> {} & b9 = b & c9 = c holds for f9 being Morphism of b9,c9 for f being Morphism of b,c st f9 = f holds G . f9 = (Morph-Map (F,b,c)) . f ) ) A44: now__::_thesis:_for_a,_b_being_object_of_B1_st_H2(a)_=_H2(b)_holds_ a_=_b let a, b be object of B1; ::_thesis: ( H2(a) = H2(b) implies a = b ) ( a in the carrier of B1 & b in the carrier of B1 ) ; then reconsider a1 = a, b1 = b as object of A1 by A12; assume H2(a) = H2(b) ; ::_thesis: a = b then F . a1 = (F | B1) . b by Th28 .= F . b1 by Th28 ; hence a = b by A18, Th31; ::_thesis: verum end; thus G is bijective from YELLOW18:sch_10(A42, A43, A44, A19, A5); ::_thesis: ( ( for a9 being object of B1 for a being object of A1 st a9 = a holds G . a9 = F . a ) & ( for b9, c9 being object of B1 for b, c being object of A1 st <^b9,c9^> <> {} & b9 = b & c9 = c holds for f9 being Morphism of b9,c9 for f being Morphism of b,c st f9 = f holds G . f9 = (Morph-Map (F,b,c)) . f ) ) hereby ::_thesis: for b9, c9 being object of B1 for b, c being object of A1 st <^b9,c9^> <> {} & b9 = b & c9 = c holds for f9 being Morphism of b9,c9 for f being Morphism of b,c st f9 = f holds G . f9 = (Morph-Map (F,b,c)) . f let a be object of B1; ::_thesis: for a1 being object of A1 st a = a1 holds G . a = F . a1 let a1 be object of A1; ::_thesis: ( a = a1 implies G . a = F . a1 ) assume A45: a = a1 ; ::_thesis: G . a = F . a1 thus G . a = (F | B1) . a by A42 .= F . a1 by A45, Th28 ; ::_thesis: verum end; let b, c be object of B1; ::_thesis: for b, c being object of A1 st <^b,c^> <> {} & b = b & c = c holds for f9 being Morphism of b,c for f being Morphism of b,c st f9 = f holds G . f9 = (Morph-Map (F,b,c)) . f let b1, c1 be object of A1; ::_thesis: ( <^b,c^> <> {} & b = b1 & c = c1 implies for f9 being Morphism of b,c for f being Morphism of b1,c1 st f9 = f holds G . f9 = (Morph-Map (F,b1,c1)) . f ) assume that A46: <^b,c^> <> {} and A47: ( b1 = b & c1 = c ) ; ::_thesis: for f9 being Morphism of b,c for f being Morphism of b1,c1 st f9 = f holds G . f9 = (Morph-Map (F,b1,c1)) . f let f be Morphism of b,c; ::_thesis: for f being Morphism of b1,c1 st f = f holds G . f = (Morph-Map (F,b1,c1)) . f let f1 be Morphism of b1,c1; ::_thesis: ( f = f1 implies G . f = (Morph-Map (F,b1,c1)) . f1 ) assume A48: f = f1 ; ::_thesis: G . f = (Morph-Map (F,b1,c1)) . f1 A49: ( <^b,c^> c= <^b1,c1^> & f in <^b,c^> ) by A46, A47, ALTCAT_2:31; then A50: <^(F . b1),(F . c1)^> <> {} by FUNCTOR0:def_18; thus G . f = (F | B1) . f by A43, A46 .= F . f1 by A46, A47, A48, Th29 .= (Morph-Map (F,b1,c1)) . f1 by A49, A50, FUNCTOR0:def_15 ; ::_thesis: verum end; end; theorem :: YELLOW20:57 for A1, A2 being category for F being contravariant Functor of A1,A2 for B1 being non empty subcategory of A1 for B2 being non empty subcategory of A2 st F is bijective & ( for a being object of A1 holds ( a is object of B1 iff F . a is object of B2 ) ) & ( for a, b being object of A1 st <^a,b^> <> {} holds for a1, b1 being object of B1 st a1 = a & b1 = b holds for a2, b2 being object of B2 st a2 = F . a & b2 = F . b holds for f being Morphism of a,b holds ( f in <^a1,b1^> iff F . f in <^b2,a2^> ) ) holds B1,B2 are_anti-isomorphic_under F proof let A1, A2 be category; ::_thesis: for F being contravariant Functor of A1,A2 for B1 being non empty subcategory of A1 for B2 being non empty subcategory of A2 st F is bijective & ( for a being object of A1 holds ( a is object of B1 iff F . a is object of B2 ) ) & ( for a, b being object of A1 st <^a,b^> <> {} holds for a1, b1 being object of B1 st a1 = a & b1 = b holds for a2, b2 being object of B2 st a2 = F . a & b2 = F . b holds for f being Morphism of a,b holds ( f in <^a1,b1^> iff F . f in <^b2,a2^> ) ) holds B1,B2 are_anti-isomorphic_under F let F be contravariant Functor of A1,A2; ::_thesis: for B1 being non empty subcategory of A1 for B2 being non empty subcategory of A2 st F is bijective & ( for a being object of A1 holds ( a is object of B1 iff F . a is object of B2 ) ) & ( for a, b being object of A1 st <^a,b^> <> {} holds for a1, b1 being object of B1 st a1 = a & b1 = b holds for a2, b2 being object of B2 st a2 = F . a & b2 = F . b holds for f being Morphism of a,b holds ( f in <^a1,b1^> iff F . f in <^b2,a2^> ) ) holds B1,B2 are_anti-isomorphic_under F let B1 be non empty subcategory of A1; ::_thesis: for B2 being non empty subcategory of A2 st F is bijective & ( for a being object of A1 holds ( a is object of B1 iff F . a is object of B2 ) ) & ( for a, b being object of A1 st <^a,b^> <> {} holds for a1, b1 being object of B1 st a1 = a & b1 = b holds for a2, b2 being object of B2 st a2 = F . a & b2 = F . b holds for f being Morphism of a,b holds ( f in <^a1,b1^> iff F . f in <^b2,a2^> ) ) holds B1,B2 are_anti-isomorphic_under F let B2 be non empty subcategory of A2; ::_thesis: ( F is bijective & ( for a being object of A1 holds ( a is object of B1 iff F . a is object of B2 ) ) & ( for a, b being object of A1 st <^a,b^> <> {} holds for a1, b1 being object of B1 st a1 = a & b1 = b holds for a2, b2 being object of B2 st a2 = F . a & b2 = F . b holds for f being Morphism of a,b holds ( f in <^a1,b1^> iff F . f in <^b2,a2^> ) ) implies B1,B2 are_anti-isomorphic_under F ) assume that A1: F is bijective and A2: for a being object of A1 holds ( a is object of B1 iff F . a is object of B2 ) and A3: for a, b being object of A1 st <^a,b^> <> {} holds for a1, b1 being object of B1 st a1 = a & b1 = b holds for a2, b2 being object of B2 st a2 = F . a & b2 = F . b holds for f being Morphism of a,b holds ( f in <^a1,b1^> iff F . f in <^b2,a2^> ) ; ::_thesis: B1,B2 are_anti-isomorphic_under F thus B1,B2 are_anti-isomorphic_under F ::_thesis: verum proof deffunc H1( object of B1, object of B1, Morphism of $1,$2) -> M2(<^((F | B1) . $2),((F | B1) . $1)^>) = (F | B1) . $3; deffunc H2( object of B1) -> M2( the carrier of A2) = (F | B1) . $1; A4: ( F is injective & F is surjective ) by A1, FUNCTOR0:def_35; A5: for a, b being object of B2 st <^a,b^> <> {} holds for f being Morphism of a,b ex c, d being object of B1 ex g being Morphism of c,d st ( b = H2(c) & a = H2(d) & <^c,d^> <> {} & f = H1(c,d,g) ) proof A6: the carrier of B2 c= the carrier of A2 by ALTCAT_2:def_11; let a, b be object of B2; ::_thesis: ( <^a,b^> <> {} implies for f being Morphism of a,b ex c, d being object of B1 ex g being Morphism of c,d st ( b = H2(c) & a = H2(d) & <^c,d^> <> {} & f = H1(c,d,g) ) ) assume A7: <^a,b^> <> {} ; ::_thesis: for f being Morphism of a,b ex c, d being object of B1 ex g being Morphism of c,d st ( b = H2(c) & a = H2(d) & <^c,d^> <> {} & f = H1(c,d,g) ) ( a in the carrier of B2 & b in the carrier of B2 ) ; then reconsider a1 = a, b1 = b as object of A2 by A6; let f be Morphism of a,b; ::_thesis: ex c, d being object of B1 ex g being Morphism of c,d st ( b = H2(c) & a = H2(d) & <^c,d^> <> {} & f = H1(c,d,g) ) A8: ( <^a,b^> c= <^a1,b1^> & f in <^a,b^> ) by A7, ALTCAT_2:31; then reconsider f1 = f as Morphism of a1,b1 ; consider c1, d1 being object of A1, g1 being Morphism of c1,d1 such that A9: ( b1 = F . c1 & a1 = F . d1 ) and A10: <^c1,d1^> <> {} and A11: f1 = F . g1 by A4, A8, Th36; reconsider c = c1, d = d1 as object of B1 by A2, A9; reconsider g = g1 as Morphism of c,d by A3, A7, A9, A10, A11; take c ; ::_thesis: ex d being object of B1 ex g being Morphism of c,d st ( b = H2(c) & a = H2(d) & <^c,d^> <> {} & f = H1(c,d,g) ) take d ; ::_thesis: ex g being Morphism of c,d st ( b = H2(c) & a = H2(d) & <^c,d^> <> {} & f = H1(c,d,g) ) take g ; ::_thesis: ( b = H2(c) & a = H2(d) & <^c,d^> <> {} & f = H1(c,d,g) ) g1 in <^c,d^> by A3, A7, A9, A10, A11; hence ( b = H2(c) & a = H2(d) & <^c,d^> <> {} & f = H1(c,d,g) ) by A9, A11, Th28, Th30; ::_thesis: verum end; A12: the carrier of B1 c= the carrier of A1 by ALTCAT_2:def_11; A13: now__::_thesis:_for_a_being_object_of_B1_holds_H2(a)_is_object_of_B2 let a be object of B1; ::_thesis: H2(a) is object of B2 a in the carrier of B1 ; then reconsider b = a as object of A1 by A12; (F | B1) . a = F . b by Th28; hence H2(a) is object of B2 by A2; ::_thesis: verum end; A14: now__::_thesis:_for_a,_b_being_object_of_B1_st_<^a,b^>_<>_{}_holds_ for_f_being_Morphism_of_a,b_holds_H1(a,b,f)_in_the_Arrows_of_B2_._(H2(b),H2(a)) let a, b be object of B1; ::_thesis: ( <^a,b^> <> {} implies for f being Morphism of a,b holds H1(a,b,f) in the Arrows of B2 . (H2(b),H2(a)) ) assume A15: <^a,b^> <> {} ; ::_thesis: for f being Morphism of a,b holds H1(a,b,f) in the Arrows of B2 . (H2(b),H2(a)) let f be Morphism of a,b; ::_thesis: H1(a,b,f) in the Arrows of B2 . (H2(b),H2(a)) ( a in the carrier of B1 & b in the carrier of B1 ) ; then reconsider c = a, d = b as object of A1 by A12; A16: ( <^a,b^> c= <^c,d^> & f in <^a,b^> ) by A15, ALTCAT_2:31; then reconsider g = f as Morphism of c,d ; reconsider a9 = (F | B1) . a, b9 = (F | B1) . b as object of B2 by A13; A17: ( (F | B1) . a = F . c & (F | B1) . b = F . d ) by Th28; (F | B1) . f = F . g by A15, Th30; then (F | B1) . f in <^b9,a9^> by A3, A16, A17; hence H1(a,b,f) in the Arrows of B2 . (H2(b),H2(a)) ; ::_thesis: verum end; thus ( B1 is subcategory of A1 & B2 is subcategory of A2 ) ; :: according to YELLOW20:def_5 ::_thesis: ex G being contravariant Functor of B1,B2 st ( G is bijective & ( for a9 being object of B1 for a being object of A1 st a9 = a holds G . a9 = F . a ) & ( for b9, c9 being object of B1 for b, c being object of A1 st <^b9,c9^> <> {} & b9 = b & c9 = c holds for f9 being Morphism of b9,c9 for f being Morphism of b,c st f9 = f holds G . f9 = (Morph-Map (F,b,c)) . f ) ) A18: ( F is one-to-one & F is faithful & F is surjective ) by A4, FUNCTOR0:def_33; A19: now__::_thesis:_for_a,_b_being_object_of_B1_st_<^a,b^>_<>_{}_holds_ for_f,_g_being_Morphism_of_a,b_st_H1(a,b,f)_=_H1(a,b,g)_holds_ f_=_g let a, b be object of B1; ::_thesis: ( <^a,b^> <> {} implies for f, g being Morphism of a,b st H1(a,b,f) = H1(a,b,g) holds f = g ) assume A20: <^a,b^> <> {} ; ::_thesis: for f, g being Morphism of a,b st H1(a,b,f) = H1(a,b,g) holds f = g ( a in the carrier of B1 & b in the carrier of B1 ) ; then reconsider a1 = a, b1 = b as object of A1 by A12; let f, g be Morphism of a,b; ::_thesis: ( H1(a,b,f) = H1(a,b,g) implies f = g ) A21: ( <^a,b^> c= <^a1,b1^> & f in <^a,b^> ) by A20, ALTCAT_2:31; g in <^a,b^> by A20; then reconsider f1 = f, g1 = g as Morphism of a1,b1 by A21; assume H1(a,b,f) = H1(a,b,g) ; ::_thesis: f = g then F . f1 = (F | B1) . g by A20, Th30 .= F . g1 by A20, Th30 ; hence f = g by A18, A21, Th35; ::_thesis: verum end; A22: now__::_thesis:_for_a,_b,_c_being_object_of_B1_st_<^a,b^>_<>_{}_&_<^b,c^>_<>_{}_holds_ for_f_being_Morphism_of_a,b for_g_being_Morphism_of_b,c for_a9,_b9,_c9_being_object_of_B2_st_a9_=_H2(a)_&_b9_=_H2(b)_&_c9_=_H2(c)_holds_ for_f9_being_Morphism_of_b9,a9 for_g9_being_Morphism_of_c9,b9_st_f9_=_H1(a,b,f)_&_g9_=_H1(b,c,g)_holds_ H1(a,c,g_*_f)_=_f9_*_g9 let a, b, c be object of B1; ::_thesis: ( <^a,b^> <> {} & <^b,c^> <> {} implies for f being Morphism of a,b for g being Morphism of b,c for a9, b9, c9 being object of B2 st a9 = H2(a) & b9 = H2(b) & c9 = H2(c) holds for f9 being Morphism of b9,a9 for g9 being Morphism of c9,b9 st f9 = H1(a,b,f) & g9 = H1(b,c,g) holds H1(a,c,g * f) = f9 * g9 ) assume that A23: <^a,b^> <> {} and A24: <^b,c^> <> {} ; ::_thesis: for f being Morphism of a,b for g being Morphism of b,c for a9, b9, c9 being object of B2 st a9 = H2(a) & b9 = H2(b) & c9 = H2(c) holds for f9 being Morphism of b9,a9 for g9 being Morphism of c9,b9 st f9 = H1(a,b,f) & g9 = H1(b,c,g) holds H1(a,c,g * f) = f9 * g9 let f be Morphism of a,b; ::_thesis: for g being Morphism of b,c for a9, b9, c9 being object of B2 st a9 = H2(a) & b9 = H2(b) & c9 = H2(c) holds for f9 being Morphism of b9,a9 for g9 being Morphism of c9,b9 st f9 = H1(a,b,f) & g9 = H1(b,c,g) holds H1(a,c,g * f) = f9 * g9 let g be Morphism of b,c; ::_thesis: for a9, b9, c9 being object of B2 st a9 = H2(a) & b9 = H2(b) & c9 = H2(c) holds for f9 being Morphism of b9,a9 for g9 being Morphism of c9,b9 st f9 = H1(a,b,f) & g9 = H1(b,c,g) holds H1(a,c,g * f) = f9 * g9 A25: c in the carrier of B1 ; ( a in the carrier of B1 & b in the carrier of B1 ) ; then reconsider a1 = a, b1 = b, c1 = c as object of A1 by A12, A25; let a9, b9, c9 be object of B2; ::_thesis: ( a9 = H2(a) & b9 = H2(b) & c9 = H2(c) implies for f9 being Morphism of b9,a9 for g9 being Morphism of c9,b9 st f9 = H1(a,b,f) & g9 = H1(b,c,g) holds H1(a,c,g * f) = f9 * g9 ) assume that A26: a9 = H2(a) and A27: b9 = H2(b) and A28: c9 = H2(c) ; ::_thesis: for f9 being Morphism of b9,a9 for g9 being Morphism of c9,b9 st f9 = H1(a,b,f) & g9 = H1(b,c,g) holds H1(a,c,g * f) = f9 * g9 let f9 be Morphism of b9,a9; ::_thesis: for g9 being Morphism of c9,b9 st f9 = H1(a,b,f) & g9 = H1(b,c,g) holds H1(a,c,g * f) = f9 * g9 let g9 be Morphism of c9,b9; ::_thesis: ( f9 = H1(a,b,f) & g9 = H1(b,c,g) implies H1(a,c,g * f) = f9 * g9 ) assume that A29: f9 = H1(a,b,f) and A30: g9 = H1(b,c,g) ; ::_thesis: H1(a,c,g * f) = f9 * g9 A31: b9 = F . b1 by A27, Th28; A32: ( <^b,c^> c= <^b1,c1^> & g in <^b,c^> ) by A24, ALTCAT_2:31; then reconsider g1 = g as Morphism of b1,c1 ; A33: c9 = F . c1 by A28, Th28; A34: ( <^a,b^> c= <^a1,b1^> & f in <^a,b^> ) by A23, ALTCAT_2:31; then reconsider f1 = f as Morphism of a1,b1 ; A35: a9 = F . a1 by A26, Th28; A36: g9 = F . g1 by A24, A30, Th30; then A37: g9 in <^c9,b9^> by A3, A32, A31, A33; A38: f9 = F . f1 by A23, A29, Th30; then A39: f9 in <^b9,a9^> by A3, A34, A35, A31; ( <^a,c^> <> {} & g * f = g1 * f1 ) by A23, A24, ALTCAT_1:def_2, ALTCAT_2:32; then (F | B1) . (g * f) = F . (g1 * f1) by Th30; hence H1(a,c,g * f) = (F . f1) * (F . g1) by A34, A32, FUNCTOR0:def_24 .= f9 * g9 by A35, A31, A33, A38, A36, A39, A37, ALTCAT_2:32 ; ::_thesis: verum end; A40: now__::_thesis:_for_a_being_object_of_B1 for_a9_being_object_of_B2_st_a9_=_H2(a)_holds_ H1(a,a,_idm_a)_=_idm_a9 let a be object of B1; ::_thesis: for a9 being object of B2 st a9 = H2(a) holds H1(a,a, idm a) = idm a9 let a9 be object of B2; ::_thesis: ( a9 = H2(a) implies H1(a,a, idm a) = idm a9 ) assume A41: a9 = H2(a) ; ::_thesis: H1(a,a, idm a) = idm a9 a in the carrier of B1 ; then reconsider a1 = a as object of A1 by A12; thus H1(a,a, idm a) = F . (idm a1) by Th30, ALTCAT_2:34 .= idm (F . a1) by ALTCAT_4:13 .= idm a9 by A41, Th28, ALTCAT_2:34 ; ::_thesis: verum end; consider G being strict contravariant Functor of B1,B2 such that A42: for a being object of B1 holds G . a = H2(a) and A43: for a, b being object of B1 st <^a,b^> <> {} holds for f being Morphism of a,b holds G . f = H1(a,b,f) from YELLOW18:sch_9(A13, A14, A22, A40); take G ; ::_thesis: ( G is bijective & ( for a9 being object of B1 for a being object of A1 st a9 = a holds G . a9 = F . a ) & ( for b9, c9 being object of B1 for b, c being object of A1 st <^b9,c9^> <> {} & b9 = b & c9 = c holds for f9 being Morphism of b9,c9 for f being Morphism of b,c st f9 = f holds G . f9 = (Morph-Map (F,b,c)) . f ) ) A44: now__::_thesis:_for_a,_b_being_object_of_B1_st_H2(a)_=_H2(b)_holds_ a_=_b let a, b be object of B1; ::_thesis: ( H2(a) = H2(b) implies a = b ) ( a in the carrier of B1 & b in the carrier of B1 ) ; then reconsider a1 = a, b1 = b as object of A1 by A12; assume H2(a) = H2(b) ; ::_thesis: a = b then F . a1 = (F | B1) . b by Th28 .= F . b1 by Th28 ; hence a = b by A18, Th34; ::_thesis: verum end; thus G is bijective from YELLOW18:sch_12(A42, A43, A44, A19, A5); ::_thesis: ( ( for a9 being object of B1 for a being object of A1 st a9 = a holds G . a9 = F . a ) & ( for b9, c9 being object of B1 for b, c being object of A1 st <^b9,c9^> <> {} & b9 = b & c9 = c holds for f9 being Morphism of b9,c9 for f being Morphism of b,c st f9 = f holds G . f9 = (Morph-Map (F,b,c)) . f ) ) hereby ::_thesis: for b9, c9 being object of B1 for b, c being object of A1 st <^b9,c9^> <> {} & b9 = b & c9 = c holds for f9 being Morphism of b9,c9 for f being Morphism of b,c st f9 = f holds G . f9 = (Morph-Map (F,b,c)) . f let a be object of B1; ::_thesis: for a1 being object of A1 st a = a1 holds G . a = F . a1 let a1 be object of A1; ::_thesis: ( a = a1 implies G . a = F . a1 ) assume A45: a = a1 ; ::_thesis: G . a = F . a1 thus G . a = (F | B1) . a by A42 .= F . a1 by A45, Th28 ; ::_thesis: verum end; let b, c be object of B1; ::_thesis: for b, c being object of A1 st <^b,c^> <> {} & b = b & c = c holds for f9 being Morphism of b,c for f being Morphism of b,c st f9 = f holds G . f9 = (Morph-Map (F,b,c)) . f let b1, c1 be object of A1; ::_thesis: ( <^b,c^> <> {} & b = b1 & c = c1 implies for f9 being Morphism of b,c for f being Morphism of b1,c1 st f9 = f holds G . f9 = (Morph-Map (F,b1,c1)) . f ) assume that A46: <^b,c^> <> {} and A47: ( b = b1 & c = c1 ) ; ::_thesis: for f9 being Morphism of b,c for f being Morphism of b1,c1 st f9 = f holds G . f9 = (Morph-Map (F,b1,c1)) . f let f be Morphism of b,c; ::_thesis: for f being Morphism of b1,c1 st f = f holds G . f = (Morph-Map (F,b1,c1)) . f let f1 be Morphism of b1,c1; ::_thesis: ( f = f1 implies G . f = (Morph-Map (F,b1,c1)) . f1 ) assume A48: f = f1 ; ::_thesis: G . f = (Morph-Map (F,b1,c1)) . f1 A49: ( <^b,c^> c= <^b1,c1^> & f in <^b,c^> ) by A46, A47, ALTCAT_2:31; then A50: <^(F . c1),(F . b1)^> <> {} by FUNCTOR0:def_19; thus G . f = (F | B1) . f by A43, A46 .= F . f1 by A46, A47, A48, Th30 .= (Morph-Map (F,b1,c1)) . f1 by A49, A50, FUNCTOR0:def_16 ; ::_thesis: verum end; end;