:: YELLOW18 semantic presentation
scheme :: YELLOW18:sch 1
s1{
F1()
-> non
empty set ,
F2(
set ,
set )
-> set ,
F3(
set ,
set ,
set ,
set ,
set )
-> set } :
ex
b1 being non
empty transitive strict AltCatStr st
( the
carrier of
b1 = F1() & ( for
b2,
b3 being
object of
b1 holds
<^b2,b3^> = F2(
b2,
b3) ) & ( for
b2,
b3,
b4 being
object of
b1 st
<^b2,b3^> <> {} &
<^b3,b4^> <> {} holds
for
b5 being
Morphism of
b2,
b3 for
b6 being
Morphism of
b3,
b4 holds
b6 * b5 = F3(
b2,
b3,
b4,
b5,
b6) ) )
provided
E1:
for
b1,
b2,
b3 being
Element of
F1()
for
b4,
b5 being
set st
b4 in F2(
b1,
b2) &
b5 in F2(
b2,
b3) holds
F3(
b1,
b2,
b3,
b4,
b5)
in F2(
b1,
b3)
scheme :: YELLOW18:sch 2
s2{
F1()
-> non
empty transitive AltCatStr ,
F2(
set ,
set ,
set ,
set ,
set )
-> set } :
provided
E1:
for
b1,
b2,
b3 being
object of
F1() st
<^b1,b2^> <> {} &
<^b2,b3^> <> {} holds
for
b4 being
Morphism of
b1,
b2 for
b5 being
Morphism of
b2,
b3 holds
b5 * b4 = F2(
b1,
b2,
b3,
b4,
b5)
and E2:
for
b1,
b2,
b3,
b4 being
object of
F1()
for
b5,
b6,
b7 being
set st
b5 in <^b1,b2^> &
b6 in <^b2,b3^> &
b7 in <^b3,b4^> holds
F2(
b1,
b3,
b4,
F2(
b1,
b2,
b3,
b5,
b6),
b7)
= F2(
b1,
b2,
b4,
b5,
F2(
b2,
b3,
b4,
b6,
b7))
scheme :: YELLOW18:sch 3
s3{
F1()
-> non
empty transitive AltCatStr ,
F2(
set ,
set ,
set ,
set ,
set )
-> set } :
provided
E1:
for
b1,
b2,
b3 being
object of
F1() st
<^b1,b2^> <> {} &
<^b2,b3^> <> {} holds
for
b4 being
Morphism of
b1,
b2 for
b5 being
Morphism of
b2,
b3 holds
b5 * b4 = F2(
b1,
b2,
b3,
b4,
b5)
and E2:
for
b1 being
object of
F1() ex
b2 being
set st
(
b2 in <^b1,b1^> & ( for
b3 being
object of
F1()
for
b4 being
set st
b4 in <^b1,b3^> holds
F2(
b1,
b1,
b3,
b2,
b4)
= b4 ) )
and E3:
for
b1 being
object of
F1() ex
b2 being
set st
(
b2 in <^b1,b1^> & ( for
b3 being
object of
F1()
for
b4 being
set st
b4 in <^b3,b1^> holds
F2(
b3,
b1,
b1,
b4,
b2)
= b4 ) )
scheme :: YELLOW18:sch 4
s4{
F1()
-> non
empty set ,
F2(
set ,
set )
-> set ,
F3(
set ,
set ,
set ,
set ,
set )
-> set } :
ex
b1 being
strict category st
( the
carrier of
b1 = F1() & ( for
b2,
b3 being
object of
b1 holds
<^b2,b3^> = F2(
b2,
b3) ) & ( for
b2,
b3,
b4 being
object of
b1 st
<^b2,b3^> <> {} &
<^b3,b4^> <> {} holds
for
b5 being
Morphism of
b2,
b3 for
b6 being
Morphism of
b3,
b4 holds
b6 * b5 = F3(
b2,
b3,
b4,
b5,
b6) ) )
provided
E1:
for
b1,
b2,
b3 being
Element of
F1()
for
b4,
b5 being
set st
b4 in F2(
b1,
b2) &
b5 in F2(
b2,
b3) holds
F3(
b1,
b2,
b3,
b4,
b5)
in F2(
b1,
b3)
and E2:
for
b1,
b2,
b3,
b4 being
Element of
F1()
for
b5,
b6,
b7 being
set st
b5 in F2(
b1,
b2) &
b6 in F2(
b2,
b3) &
b7 in F2(
b3,
b4) holds
F3(
b1,
b3,
b4,
F3(
b1,
b2,
b3,
b5,
b6),
b7)
= F3(
b1,
b2,
b4,
b5,
F3(
b2,
b3,
b4,
b6,
b7))
and E3:
for
b1 being
Element of
F1() ex
b2 being
set st
(
b2 in F2(
b1,
b1) & ( for
b3 being
Element of
F1()
for
b4 being
set st
b4 in F2(
b1,
b3) holds
F3(
b1,
b1,
b3,
b2,
b4)
= b4 ) )
and E4:
for
b1 being
Element of
F1() ex
b2 being
set st
(
b2 in F2(
b1,
b1) & ( for
b3 being
Element of
F1()
for
b4 being
set st
b4 in F2(
b3,
b1) holds
F3(
b3,
b1,
b1,
b4,
b2)
= b4 ) )
scheme :: YELLOW18:sch 5
s5{
F1()
-> non
empty set ,
F2(
set ,
set )
-> set ,
F3(
set ,
set ,
set ,
set ,
set )
-> set } :
for
b1,
b2 being non
empty transitive AltCatStr st the
carrier of
b1 = F1() & ( for
b3,
b4 being
object of
b1 holds
<^b3,b4^> = F2(
b3,
b4) ) & ( for
b3,
b4,
b5 being
object of
b1 st
<^b3,b4^> <> {} &
<^b4,b5^> <> {} holds
for
b6 being
Morphism of
b3,
b4 for
b7 being
Morphism of
b4,
b5 holds
b7 * b6 = F3(
b3,
b4,
b5,
b6,
b7) ) & the
carrier of
b2 = F1() & ( for
b3,
b4 being
object of
b2 holds
<^b3,b4^> = F2(
b3,
b4) ) & ( for
b3,
b4,
b5 being
object of
b2 st
<^b3,b4^> <> {} &
<^b4,b5^> <> {} holds
for
b6 being
Morphism of
b3,
b4 for
b7 being
Morphism of
b4,
b5 holds
b7 * b6 = F3(
b3,
b4,
b5,
b6,
b7) ) holds
AltCatStr(# the
carrier of
b1,the
Arrows of
b1,the
Comp of
b1 #)
= AltCatStr(# the
carrier of
b2,the
Arrows of
b2,the
Comp of
b2 #)
scheme :: YELLOW18:sch 6
s6{
F1()
-> non
empty set ,
P1[
set ,
set ,
set ],
F2(
set ,
set )
-> set ,
F3(
set ,
set ,
set ,
set ,
set )
-> set } :
ex
b1 being
strict category st
( the
carrier of
b1 = F1() & ( for
b2,
b3 being
object of
b1 for
b4 being
set holds
(
b4 in <^b2,b3^> iff (
b4 in F2(
b2,
b3) &
P1[
b2,
b3,
b4] ) ) ) & ( for
b2,
b3,
b4 being
object of
b1 st
<^b2,b3^> <> {} &
<^b3,b4^> <> {} holds
for
b5 being
Morphism of
b2,
b3 for
b6 being
Morphism of
b3,
b4 holds
b6 * b5 = F3(
b2,
b3,
b4,
b5,
b6) ) )
provided
E1:
for
b1,
b2,
b3 being
Element of
F1()
for
b4,
b5 being
set st
b4 in F2(
b1,
b2) &
P1[
b1,
b2,
b4] &
b5 in F2(
b2,
b3) &
P1[
b2,
b3,
b5] holds
(
F3(
b1,
b2,
b3,
b4,
b5)
in F2(
b1,
b3) &
P1[
b1,
b3,
F3(
b1,
b2,
b3,
b4,
b5)] )
and E2:
for
b1,
b2,
b3,
b4 being
Element of
F1()
for
b5,
b6,
b7 being
set st
b5 in F2(
b1,
b2) &
P1[
b1,
b2,
b5] &
b6 in F2(
b2,
b3) &
P1[
b2,
b3,
b6] &
b7 in F2(
b3,
b4) &
P1[
b3,
b4,
b7] holds
F3(
b1,
b3,
b4,
F3(
b1,
b2,
b3,
b5,
b6),
b7)
= F3(
b1,
b2,
b4,
b5,
F3(
b2,
b3,
b4,
b6,
b7))
and E3:
for
b1 being
Element of
F1() ex
b2 being
set st
(
b2 in F2(
b1,
b1) &
P1[
b1,
b1,
b2] & ( for
b3 being
Element of
F1()
for
b4 being
set st
b4 in F2(
b1,
b3) &
P1[
b1,
b3,
b4] holds
F3(
b1,
b1,
b3,
b2,
b4)
= b4 ) )
and E4:
for
b1 being
Element of
F1() ex
b2 being
set st
(
b2 in F2(
b1,
b1) &
P1[
b1,
b1,
b2] & ( for
b3 being
Element of
F1()
for
b4 being
set st
b4 in F2(
b3,
b1) &
P1[
b3,
b1,
b4] holds
F3(
b3,
b1,
b1,
b4,
b2)
= b4 ) )
scheme :: YELLOW18:sch 7
s7{
F1()
-> category,
P1[
set ],
P2[
set ,
set ,
set ] } :
provided
E1:
ex
b1 being
object of
F1() st
P1[
b1]
and E2:
for
b1,
b2,
b3 being
object of
F1() st
P1[
b1] &
P1[
b2] &
P1[
b3] &
<^b1,b2^> <> {} &
<^b2,b3^> <> {} holds
for
b4 being
Morphism of
b1,
b2 for
b5 being
Morphism of
b2,
b3 st
P2[
b1,
b2,
b4] &
P2[
b2,
b3,
b5] holds
P2[
b1,
b3,
b5 * b4]
and E3:
for
b1 being
object of
F1() st
P1[
b1] holds
P2[
b1,
b1,
idm b1]
scheme :: YELLOW18:sch 8
s8{
F1()
-> category,
F2()
-> category,
F3(
set )
-> set ,
F4(
set ,
set ,
set )
-> set } :
provided
E1:
for
b1 being
object of
F1() holds
F3(
b1) is
object of
F2()
and E2:
for
b1,
b2 being
object of
F1() st
<^b1,b2^> <> {} holds
for
b3 being
Morphism of
b1,
b2 holds
F4(
b1,
b2,
b3)
in the
Arrows of
F2()
. F3(
b1),
F3(
b2)
and E3:
for
b1,
b2,
b3 being
object of
F1() st
<^b1,b2^> <> {} &
<^b2,b3^> <> {} holds
for
b4 being
Morphism of
b1,
b2 for
b5 being
Morphism of
b2,
b3 for
b6,
b7,
b8 being
object of
F2() st
b6 = F3(
b1) &
b7 = F3(
b2) &
b8 = F3(
b3) holds
for
b9 being
Morphism of
b6,
b7 for
b10 being
Morphism of
b7,
b8 st
b9 = F4(
b1,
b2,
b4) &
b10 = F4(
b2,
b3,
b5) holds
F4(
b1,
b3,
(b5 * b4))
= b10 * b9
and E4:
for
b1 being
object of
F1()
for
b2 being
object of
F2() st
b2 = F3(
b1) holds
F4(
b1,
b1,
(idm b1))
= idm b2
theorem Th1: :: YELLOW18:1
scheme :: YELLOW18:sch 9
s9{
F1()
-> category,
F2()
-> category,
F3(
set )
-> set ,
F4(
set ,
set ,
set )
-> set } :
provided
E2:
for
b1 being
object of
F1() holds
F3(
b1) is
object of
F2()
and E3:
for
b1,
b2 being
object of
F1() st
<^b1,b2^> <> {} holds
for
b3 being
Morphism of
b1,
b2 holds
F4(
b1,
b2,
b3)
in the
Arrows of
F2()
. F3(
b2),
F3(
b1)
and E4:
for
b1,
b2,
b3 being
object of
F1() st
<^b1,b2^> <> {} &
<^b2,b3^> <> {} holds
for
b4 being
Morphism of
b1,
b2 for
b5 being
Morphism of
b2,
b3 for
b6,
b7,
b8 being
object of
F2() st
b6 = F3(
b1) &
b7 = F3(
b2) &
b8 = F3(
b3) holds
for
b9 being
Morphism of
b7,
b6 for
b10 being
Morphism of
b8,
b7 st
b9 = F4(
b1,
b2,
b4) &
b10 = F4(
b2,
b3,
b5) holds
F4(
b1,
b3,
(b5 * b4))
= b9 * b10
and E5:
for
b1 being
object of
F1()
for
b2 being
object of
F2() st
b2 = F3(
b1) holds
F4(
b1,
b1,
(idm b1))
= idm b2
theorem Th2: :: YELLOW18:2
definition
let c1,
c2,
c3 be non
empty set ;
let c4 be
Function of
[:c1,c2:],
c3;
redefine attr one-to-one as
a4 is
one-to-one means :: YELLOW18:def 1
for
b1,
b2 being
Element of
a1 for
b3,
b4 being
Element of
a2 st
a4 . b1,
b3 = a4 . b2,
b4 holds
(
b1 = b2 &
b3 = b4 );
compatibility
( c4 is one-to-one iff for b1, b2 being Element of c1
for b3, b4 being Element of c2 st c4 . b1,b3 = c4 . b2,b4 holds
( b1 = b2 & b3 = b4 ) )
end;
:: deftheorem Def1 defines one-to-one YELLOW18:def 1 :
scheme :: YELLOW18:sch 10
s10{
F1()
-> category,
F2()
-> category,
F3()
-> covariant Functor of
F1(),
F2(),
F4(
set )
-> set ,
F5(
set ,
set ,
set )
-> set } :
provided
E3:
for
b1 being
object of
F1() holds
F3()
. b1 = F4(
b1)
and E4:
for
b1,
b2 being
object of
F1() st
<^b1,b2^> <> {} holds
for
b3 being
Morphism of
b1,
b2 holds
F3()
. b3 = F5(
b1,
b2,
b3)
and E5:
for
b1,
b2 being
object of
F1() st
F4(
b1)
= F4(
b2) holds
b1 = b2
and E6:
for
b1,
b2 being
object of
F1() st
<^b1,b2^> <> {} holds
for
b3,
b4 being
Morphism of
b1,
b2 st
F5(
b1,
b2,
b3)
= F5(
b1,
b2,
b4) holds
b3 = b4
and E7:
for
b1,
b2 being
object of
F2() st
<^b1,b2^> <> {} holds
for
b3 being
Morphism of
b1,
b2 ex
b4,
b5 being
object of
F1()ex
b6 being
Morphism of
b4,
b5 st
(
b1 = F4(
b4) &
b2 = F4(
b5) &
<^b4,b5^> <> {} &
b3 = F5(
b4,
b5,
b6) )
scheme :: YELLOW18:sch 11
s11{
F1()
-> category,
F2()
-> category,
F3(
set )
-> set ,
F4(
set ,
set ,
set )
-> set } :
provided
E3:
ex
b1 being
covariant Functor of
F1(),
F2() st
( ( for
b2 being
object of
F1() holds
b1 . b2 = F3(
b2) ) & ( for
b2,
b3 being
object of
F1() st
<^b2,b3^> <> {} holds
for
b4 being
Morphism of
b2,
b3 holds
b1 . b4 = F4(
b2,
b3,
b4) ) )
and E4:
for
b1,
b2 being
object of
F1() st
F3(
b1)
= F3(
b2) holds
b1 = b2
and E5:
for
b1,
b2 being
object of
F1() st
<^b1,b2^> <> {} holds
for
b3,
b4 being
Morphism of
b1,
b2 st
F4(
b1,
b2,
b3)
= F4(
b1,
b2,
b4) holds
b3 = b4
and E6:
for
b1,
b2 being
object of
F2() st
<^b1,b2^> <> {} holds
for
b3 being
Morphism of
b1,
b2 ex
b4,
b5 being
object of
F1()ex
b6 being
Morphism of
b4,
b5 st
(
b1 = F3(
b4) &
b2 = F3(
b5) &
<^b4,b5^> <> {} &
b3 = F4(
b4,
b5,
b6) )
scheme :: YELLOW18:sch 12
s12{
F1()
-> category,
F2()
-> category,
F3()
-> contravariant Functor of
F1(),
F2(),
F4(
set )
-> set ,
F5(
set ,
set ,
set )
-> set } :
provided
E3:
for
b1 being
object of
F1() holds
F3()
. b1 = F4(
b1)
and E4:
for
b1,
b2 being
object of
F1() st
<^b1,b2^> <> {} holds
for
b3 being
Morphism of
b1,
b2 holds
F3()
. b3 = F5(
b1,
b2,
b3)
and E5:
for
b1,
b2 being
object of
F1() st
F4(
b1)
= F4(
b2) holds
b1 = b2
and E6:
for
b1,
b2 being
object of
F1() st
<^b1,b2^> <> {} holds
for
b3,
b4 being
Morphism of
b1,
b2 st
F5(
b1,
b2,
b3)
= F5(
b1,
b2,
b4) holds
b3 = b4
and E7:
for
b1,
b2 being
object of
F2() st
<^b1,b2^> <> {} holds
for
b3 being
Morphism of
b1,
b2 ex
b4,
b5 being
object of
F1()ex
b6 being
Morphism of
b4,
b5 st
(
b2 = F4(
b4) &
b1 = F4(
b5) &
<^b4,b5^> <> {} &
b3 = F5(
b4,
b5,
b6) )
scheme :: YELLOW18:sch 13
s13{
F1()
-> category,
F2()
-> category,
F3(
set )
-> set ,
F4(
set ,
set ,
set )
-> set } :
provided
E3:
ex
b1 being
contravariant Functor of
F1(),
F2() st
( ( for
b2 being
object of
F1() holds
b1 . b2 = F3(
b2) ) & ( for
b2,
b3 being
object of
F1() st
<^b2,b3^> <> {} holds
for
b4 being
Morphism of
b2,
b3 holds
b1 . b4 = F4(
b2,
b3,
b4) ) )
and E4:
for
b1,
b2 being
object of
F1() st
F3(
b1)
= F3(
b2) holds
b1 = b2
and E5:
for
b1,
b2 being
object of
F1() st
<^b1,b2^> <> {} holds
for
b3,
b4 being
Morphism of
b1,
b2 st
F4(
b1,
b2,
b3)
= F4(
b1,
b2,
b4) holds
b3 = b4
and E6:
for
b1,
b2 being
object of
F2() st
<^b1,b2^> <> {} holds
for
b3 being
Morphism of
b1,
b2 ex
b4,
b5 being
object of
F1()ex
b6 being
Morphism of
b4,
b5 st
(
b2 = F3(
b4) &
b1 = F3(
b5) &
<^b4,b5^> <> {} &
b3 = F4(
b4,
b5,
b6) )
definition
let c1,
c2 be
category;
pred c1,
c2 are_equivalent means :: YELLOW18:def 2
ex
b1 being
covariant Functor of
a1,
a2ex
b2 being
covariant Functor of
a2,
a1 st
(
b2 * b1,
id a1 are_naturally_equivalent &
b1 * b2,
id a2 are_naturally_equivalent );
reflexivity
for b1 being category ex b2, b3 being covariant Functor of b1,b1 st
( b3 * b2, id b1 are_naturally_equivalent & b2 * b3, id b1 are_naturally_equivalent )
symmetry
for b1, b2 being category st ex b3 being covariant Functor of b1,b2ex b4 being covariant Functor of b2,b1 st
( b4 * b3, id b1 are_naturally_equivalent & b3 * b4, id b2 are_naturally_equivalent ) holds
ex b3 being covariant Functor of b2,b1ex b4 being covariant Functor of b1,b2 st
( b4 * b3, id b2 are_naturally_equivalent & b3 * b4, id b1 are_naturally_equivalent )
;
end;
:: deftheorem Def2 defines are_equivalent YELLOW18:def 2 :
theorem Th3: :: YELLOW18:3
for
b1,
b2,
b3 being non
empty reflexive AltGraph for
b4,
b5 being
feasible FunctorStr of
b1,
b2 for
b6,
b7 being
FunctorStr of
b2,
b3 st
FunctorStr(# the
ObjectMap of
b4,the
MorphMap of
b4 #)
= FunctorStr(# the
ObjectMap of
b5,the
MorphMap of
b5 #) &
FunctorStr(# the
ObjectMap of
b6,the
MorphMap of
b6 #)
= FunctorStr(# the
ObjectMap of
b7,the
MorphMap of
b7 #) holds
b6 * b4 = b7 * b5
theorem Th4: :: YELLOW18:4
theorem Th5: :: YELLOW18:5
scheme :: YELLOW18:sch 14
s14{
F1()
-> category,
F2()
-> category,
F3()
-> covariant Functor of
F1(),
F2(),
F4()
-> covariant Functor of
F1(),
F2(),
F5(
set )
-> set } :
provided
E6:
for
b1 being
object of
F1() holds
F5(
b1)
in <^(F3() . b1),(F4() . b1)^>
and E7:
for
b1,
b2 being
object of
F1() st
<^b1,b2^> <> {} holds
for
b3 being
Morphism of
b1,
b2 for
b4 being
Morphism of
(F3() . b1),
(F4() . b1) st
b4 = F5(
b1) holds
for
b5 being
Morphism of
(F3() . b2),
(F4() . b2) st
b5 = F5(
b2) holds
b5 * (F3() . b3) = (F4() . b3) * b4
scheme :: YELLOW18:sch 15
s15{
F1()
-> category,
F2()
-> category,
F3()
-> covariant Functor of
F1(),
F2(),
F4()
-> covariant Functor of
F1(),
F2(),
F5(
set )
-> set } :
provided
E6:
for
b1 being
object of
F1() holds
(
F5(
b1)
in <^(F3() . b1),(F4() . b1)^> &
<^(F4() . b1),(F3() . b1)^> <> {} & ( for
b2 being
Morphism of
(F3() . b1),
(F4() . b1) st
b2 = F5(
b1) holds
b2 is
iso ) )
and E7:
for
b1,
b2 being
object of
F1() st
<^b1,b2^> <> {} holds
for
b3 being
Morphism of
b1,
b2 for
b4 being
Morphism of
(F3() . b1),
(F4() . b1) st
b4 = F5(
b1) holds
for
b5 being
Morphism of
(F3() . b2),
(F4() . b2) st
b5 = F5(
b2) holds
b5 * (F3() . b3) = (F4() . b3) * b4
definition
let c1,
c2 be non
empty AltCatStr ;
pred c1,
c2 are_opposite means :
Def3:
:: YELLOW18:def 3
( the
carrier of
a2 = the
carrier of
a1 & the
Arrows of
a2 = ~ the
Arrows of
a1 & ( for
b1,
b2,
b3 being
object of
a1 for
b4,
b5,
b6 being
object of
a2 st
b4 = b1 &
b5 = b2 &
b6 = b3 holds
the
Comp of
a2 . b4,
b5,
b6 = ~ (the Comp of a1 . b3,b2,b1) ) );
symmetry
for b1, b2 being non empty AltCatStr st the carrier of b2 = the carrier of b1 & the Arrows of b2 = ~ the Arrows of b1 & ( for b3, b4, b5 being object of b1
for b6, b7, b8 being object of b2 st b6 = b3 & b7 = b4 & b8 = b5 holds
the Comp of b2 . b6,b7,b8 = ~ (the Comp of b1 . b5,b4,b3) ) holds
( the carrier of b1 = the carrier of b2 & the Arrows of b1 = ~ the Arrows of b2 & ( for b3, b4, b5 being object of b2
for b6, b7, b8 being object of b1 st b6 = b3 & b7 = b4 & b8 = b5 holds
the Comp of b1 . b6,b7,b8 = ~ (the Comp of b2 . b5,b4,b3) ) )
end;
:: deftheorem Def3 defines are_opposite YELLOW18:def 3 :
for
b1,
b2 being non
empty AltCatStr holds
(
b1,
b2 are_opposite iff ( the
carrier of
b2 = the
carrier of
b1 & the
Arrows of
b2 = ~ the
Arrows of
b1 & ( for
b3,
b4,
b5 being
object of
b1 for
b6,
b7,
b8 being
object of
b2 st
b6 = b3 &
b7 = b4 &
b8 = b5 holds
the
Comp of
b2 . b6,
b7,
b8 = ~ (the Comp of b1 . b5,b4,b3) ) ) );
theorem Th6: :: YELLOW18:6
theorem Th7: :: YELLOW18:7
theorem Th8: :: YELLOW18:8
theorem Th9: :: YELLOW18:9
for
b1,
b2 being non
empty transitive AltCatStr holds
(
b1,
b2 are_opposite iff ( the
carrier of
b2 = the
carrier of
b1 & ( for
b3,
b4,
b5 being
object of
b1 for
b6,
b7,
b8 being
object of
b2 st
b6 = b3 &
b7 = b4 &
b8 = b5 holds
(
<^b3,b4^> = <^b7,b6^> & (
<^b3,b4^> <> {} &
<^b4,b5^> <> {} implies for
b9 being
Morphism of
b3,
b4 for
b10 being
Morphism of
b4,
b5 for
b11 being
Morphism of
b7,
b6 for
b12 being
Morphism of
b8,
b7 st
b11 = b9 &
b12 = b10 holds
b11 * b12 = b10 * b9 ) ) ) ) )
theorem Th10: :: YELLOW18:10
theorem Th11: :: YELLOW18:11
theorem Th12: :: YELLOW18:12
theorem Th13: :: YELLOW18:13
theorem Th14: :: YELLOW18:14
:: deftheorem Def4 defines opp YELLOW18:def 4 :
definition
let c1,
c2 be
category;
assume E16:
c1,
c2 are_opposite
;
deffunc H1(
set )
-> set =
a1;
deffunc H2(
set ,
set ,
set )
-> set =
a3;
E17:
for
b1 being
object of
c1 holds
H1(
b1) is
object of
c2
by E16, Def3;
E18:
now
let c3,
c4 be
object of
c1;
assume E19:
<^c3,c4^> <> {}
;
let c5 be
Morphism of
c3,
c4;
reconsider c6 =
c3,
c7 =
c4 as
object of
c2 by E16, Def3;
<^c3,c4^> =
<^c7,c6^>
by E16, Th9
.=
the
Arrows of
c2 . c4,
c3
;
hence
H2(
c3,
c4,
c5)
in the
Arrows of
c2 . H1(
c4),
H1(
c3)
by E19;
end;
E19:
for
b1,
b2,
b3 being
object of
c1 st
<^b1,b2^> <> {} &
<^b2,b3^> <> {} holds
for
b4 being
Morphism of
b1,
b2 for
b5 being
Morphism of
b2,
b3 for
b6,
b7,
b8 being
object of
c2 st
b6 = H1(
b1) &
b7 = H1(
b2) &
b8 = H1(
b3) holds
for
b9 being
Morphism of
b7,
b6 for
b10 being
Morphism of
b8,
b7 st
b9 = H2(
b1,
b2,
b4) &
b10 = H2(
b2,
b3,
b5) holds
H2(
b1,
b3,
b5 * b4)
= b9 * b10
by E16, Th9;
E20:
for
b1 being
object of
c1 for
b2 being
object of
c2 st
b2 = H1(
b1) holds
H2(
b1,
b1,
idm b1)
= idm b2
by E16, Th10;
func dualizing-func c1,
c2 -> strict contravariant Functor of
a1,
a2 means :
Def5:
:: YELLOW18:def 5
( ( for
b1 being
object of
a1 holds
a3 . b1 = b1 ) & ( for
b1,
b2 being
object of
a1 st
<^b1,b2^> <> {} holds
for
b3 being
Morphism of
b1,
b2 holds
a3 . b3 = b3 ) );
existence
ex b1 being strict contravariant Functor of c1,c2 st
( ( for b2 being object of c1 holds b1 . b2 = b2 ) & ( for b2, b3 being object of c1 st <^b2,b3^> <> {} holds
for b4 being Morphism of b2,b3 holds b1 . b4 = b4 ) )
uniqueness
for b1, b2 being strict contravariant Functor of c1,c2 st ( for b3 being object of c1 holds b1 . b3 = b3 ) & ( for b3, b4 being object of c1 st <^b3,b4^> <> {} holds
for b5 being Morphism of b3,b4 holds b1 . b5 = b5 ) & ( for b3 being object of c1 holds b2 . b3 = b3 ) & ( for b3, b4 being object of c1 st <^b3,b4^> <> {} holds
for b5 being Morphism of b3,b4 holds b2 . b5 = b5 ) holds
b1 = b2
end;
:: deftheorem Def5 defines dualizing-func YELLOW18:def 5 :
theorem Th15: :: YELLOW18:15
theorem Th16: :: YELLOW18:16
theorem Th17: :: YELLOW18:17
theorem Th18: :: YELLOW18:18
theorem Th19: :: YELLOW18:19
theorem Th20: :: YELLOW18:20
E20:
now
let c1,
c2 be
category;
assume E21:
c1,
c2 are_opposite
;
let c3,
c4 be
object of
c1;
assume E22:
(
<^c3,c4^> <> {} &
<^c4,c3^> <> {} )
;
let c5,
c6 be
object of
c2;
assume E23:
(
c5 = c3 &
c6 = c4 )
;
let c7 be
Morphism of
c3,
c4;
let c8 be
Morphism of
c6,
c5;
assume E24:
c8 = c7
;
thus
(
c7 is
retraction implies
c8 is
coretraction )
proof
given c9 being
Morphism of
c4,
c3 such that E25:
c9 is_right_inverse_of c7
;
:: according to ALTCAT_3:def 2
reconsider c10 =
c9 as
Morphism of
c5,
c6 by E21, E23, Th7;
take
c10
;
:: according to ALTCAT_3:def 3
c7 * c9 =
idm c4
by E25, ALTCAT_3:def 1
.=
idm c6
by E21, E23, Th10
;
hence
c10 * c8 = idm c6
by E21, E22, E23, E24, Th9;
:: according to ALTCAT_3:def 1
end;
thus
(
c7 is
coretraction implies
c8 is
retraction )
proof
given c9 being
Morphism of
c4,
c3 such that E25:
c9 is_left_inverse_of c7
;
:: according to ALTCAT_3:def 3
reconsider c10 =
c9 as
Morphism of
c5,
c6 by E21, E23, Th7;
take
c10
;
:: according to ALTCAT_3:def 2
c9 * c7 =
idm c3
by E25, ALTCAT_3:def 1
.=
idm c5
by E21, E23, Th10
;
hence
c8 * c10 = idm c5
by E21, E22, E23, E24, Th9;
:: according to ALTCAT_3:def 1
end;
end;
theorem Th21: :: YELLOW18:21
theorem Th22: :: YELLOW18:22
theorem Th23: :: YELLOW18:23
theorem Th24: :: YELLOW18:24
theorem Th25: :: YELLOW18:25
for
b1,
b2,
b3,
b4 being
category st
b1,
b2 are_opposite &
b3,
b4 are_opposite holds
for
b5,
b6 being
covariant Functor of
b2,
b3 st
b5,
b6 are_naturally_equivalent holds
((dualizing-func b3,b4) * b6) * (dualizing-func b1,b2),
((dualizing-func b3,b4) * b5) * (dualizing-func b1,b2) are_naturally_equivalent
theorem Th26: :: YELLOW18:26
:: deftheorem Def6 defines are_dual YELLOW18:def 6 :
theorem Th27: :: YELLOW18:27
theorem Th28: :: YELLOW18:28
theorem Th29: :: YELLOW18:29
theorem Th30: :: YELLOW18:30
theorem Th31: :: YELLOW18:31
:: deftheorem Def7 defines para-functional YELLOW18:def 7 :
:: deftheorem Def8 defines -carrier_of YELLOW18:def 8 :
:: deftheorem Def9 defines -carrier_of YELLOW18:def 9 :
theorem Th32: :: YELLOW18:32
theorem Th33: :: YELLOW18:33
:: deftheorem Def10 defines set-id-inheriting YELLOW18:def 10 :
:: deftheorem Def11 defines concrete YELLOW18:def 11 :
theorem Th34: :: YELLOW18:34
theorem Th35: :: YELLOW18:35
theorem Th36: :: YELLOW18:36
theorem Th37: :: YELLOW18:37
theorem Th38: :: YELLOW18:38
theorem Th39: :: YELLOW18:39
scheme :: YELLOW18:sch 16
s16{
F1()
-> non
empty set ,
F2(
set ,
set )
-> set ,
F3(
set )
-> set } :
provided
E37:
for
b1,
b2,
b3 being
Element of
F1()
for
b4,
b5 being
Function st
b4 in F2(
b1,
b2) &
b5 in F2(
b2,
b3) holds
b5 * b4 in F2(
b1,
b3)
and E38:
for
b1,
b2 being
Element of
F1() holds
F2(
b1,
b2)
c= Funcs F3(
b1),
F3(
b2)
and E39:
for
b1 being
Element of
F1() holds
id F3(
b1)
in F2(
b1,
b1)
scheme :: YELLOW18:sch 17
s17{
F1()
-> non
empty set ,
P1[
set ,
set ,
set ],
F2(
set )
-> set } :
provided
E37:
for
b1,
b2,
b3 being
Element of
F1()
for
b4,
b5 being
Function st
P1[
b1,
b2,
b4] &
P1[
b2,
b3,
b5] holds
P1[
b1,
b3,
b5 * b4]
and E38:
for
b1 being
Element of
F1() holds
P1[
b1,
b1,
id F2(
b1)]
scheme :: YELLOW18:sch 18
s18{
F1()
-> non
empty set ,
F2(
set )
-> set ,
P1[
set ,
set ],
P2[
set ,
set ,
set ] } :
provided
E37:
for
b1,
b2,
b3 being
Element of
F1()
for
b4,
b5 being
Function st
P2[
b1,
b2,
b4] &
P2[
b2,
b3,
b5] holds
P2[
b1,
b3,
b5 * b4]
and E38:
for
b1 being
Element of
F1()
for
b2 being
set st ( for
b3 being
set holds
(
b3 in b2 iff (
b3 in F2(
b1) &
P1[
b1,
b3] ) ) ) holds
P2[
b1,
b1,
id b2]
scheme :: YELLOW18:sch 19
s19{
F1()
-> non
empty set ,
F2(
set ,
set )
-> set } :
for
b1,
b2 being
semi-functional para-functional category st the
carrier of
b1 = F1() & ( for
b3,
b4 being
object of
b1 holds
<^b3,b4^> = F2(
b3,
b4) ) & the
carrier of
b2 = F1() & ( for
b3,
b4 being
object of
b2 holds
<^b3,b4^> = F2(
b3,
b4) ) holds
AltCatStr(# the
carrier of
b1,the
Arrows of
b1,the
Comp of
b1 #)
= AltCatStr(# the
carrier of
b2,the
Arrows of
b2,the
Comp of
b2 #)
scheme :: YELLOW18:sch 20
s20{
F1()
-> non
empty set ,
P1[
set ,
set ,
set ],
F2(
set )
-> set } :
for
b1,
b2 being
semi-functional para-functional category st the
carrier of
b1 = F1() & ( for
b3,
b4 being
Element of
F1()
for
b5 being
Function holds
(
b5 in the
Arrows of
b1 . b3,
b4 iff (
b5 in Funcs F2(
b3),
F2(
b4) &
P1[
b3,
b4,
b5] ) ) ) & the
carrier of
b2 = F1() & ( for
b3,
b4 being
Element of
F1()
for
b5 being
Function holds
(
b5 in the
Arrows of
b2 . b3,
b4 iff (
b5 in Funcs F2(
b3),
F2(
b4) &
P1[
b3,
b4,
b5] ) ) ) holds
AltCatStr(# the
carrier of
b1,the
Arrows of
b1,the
Comp of
b1 #)
= AltCatStr(# the
carrier of
b2,the
Arrows of
b2,the
Comp of
b2 #)
scheme :: YELLOW18:sch 21
s21{
F1()
-> non
empty set ,
F2(
set )
-> set ,
P1[
set ,
set ],
P2[
set ,
set ,
set ] } :
for
b1,
b2 being
semi-functional para-functional category st the
carrier of
b1 = F1() & ( for
b3 being
object of
b1 for
b4 being
set holds
(
b4 in the_carrier_of b3 iff (
b4 in F2(
b3) &
P1[
b3,
b4] ) ) ) & ( for
b3,
b4 being
Element of
F1()
for
b5 being
Function holds
(
b5 in the
Arrows of
b1 . b3,
b4 iff (
b5 in Funcs (b1 -carrier_of b3),
(b1 -carrier_of b4) &
P2[
b3,
b4,
b5] ) ) ) & the
carrier of
b2 = F1() & ( for
b3 being
object of
b2 for
b4 being
set holds
(
b4 in the_carrier_of b3 iff (
b4 in F2(
b3) &
P1[
b3,
b4] ) ) ) & ( for
b3,
b4 being
Element of
F1()
for
b5 being
Function holds
(
b5 in the
Arrows of
b2 . b3,
b4 iff (
b5 in Funcs (b2 -carrier_of b3),
(b2 -carrier_of b4) &
P2[
b3,
b4,
b5] ) ) ) holds
AltCatStr(# the
carrier of
b1,the
Arrows of
b1,the
Comp of
b1 #)
= AltCatStr(# the
carrier of
b2,the
Arrows of
b2,the
Comp of
b2 #)
theorem Th40: :: YELLOW18:40
theorem Th41: :: YELLOW18:41
theorem Th42: :: YELLOW18:42
theorem Th43: :: YELLOW18:43
theorem Th44: :: YELLOW18:44
scheme :: YELLOW18:sch 22
s22{
F1()
-> semi-functional para-functional category,
F2()
-> semi-functional para-functional category,
F3(
set )
-> set ,
F4(
set )
-> set ,
F5(
set ,
set ,
set )
-> Function,
F6(
set ,
set ,
set )
-> Function,
F7(
set )
-> Function,
F8(
set )
-> Function } :
provided
E41:
ex
b1 being
covariant Functor of
F1(),
F2() st
( ( for
b2 being
object of
F1() holds
b1 . b2 = F3(
b2) ) & ( for
b2,
b3 being
object of
F1() st
<^b2,b3^> <> {} holds
for
b4 being
Morphism of
b2,
b3 holds
b1 . b4 = F5(
b2,
b3,
b4) ) )
and E42:
ex
b1 being
covariant Functor of
F2(),
F1() st
( ( for
b2 being
object of
F2() holds
b1 . b2 = F4(
b2) ) & ( for
b2,
b3 being
object of
F2() st
<^b2,b3^> <> {} holds
for
b4 being
Morphism of
b2,
b3 holds
b1 . b4 = F6(
b2,
b3,
b4) ) )
and E43:
for
b1,
b2 being
object of
F1() st
b1 = F4(
F3(
b2)) holds
(
F7(
b2)
in <^b1,b2^> &
F7(
b2)
" in <^b2,b1^> &
F7(
b2) is
one-to-one )
and E44:
for
b1,
b2 being
object of
F2() st
b2 = F3(
F4(
b1)) holds
(
F8(
b1)
in <^b1,b2^> &
F8(
b1)
" in <^b2,b1^> &
F8(
b1) is
one-to-one )
and E45:
for
b1,
b2 being
object of
F1() st
<^b1,b2^> <> {} holds
for
b3 being
Morphism of
b1,
b2 holds
F7(
b2)
* F6(
F3(
b1),
F3(
b2),
F5(
b1,
b2,
b3))
= b3 * F7(
b1)
and E46:
for
b1,
b2 being
object of
F2() st
<^b1,b2^> <> {} holds
for
b3 being
Morphism of
b1,
b2 holds
F5(
F4(
b1),
F4(
b2),
F6(
b1,
b2,
b3))
* F8(
b1)
= F8(
b2)
* b3
definition
let c1 be
category;
defpred S1[
set ,
set ]
means a1 = a2 `22 ;
defpred S2[
set ,
set ,
Function]
means ex
b1,
b2 being
object of
c1ex
b3 being
Morphism of
b1,
b2 st
(
b1 = a1 &
b2 = a2 &
<^b1,b2^> <> {} & ( for
b4 being
object of
c1 st
<^b4,b1^> <> {} holds
for
b5 being
Morphism of
b4,
b1 holds
a3 . [b5,[b4,b1]] = [(b3 * b5),[b4,b2]] ) );
deffunc H1(
set )
-> set =
Union (disjoin the Arrows of c1);
E41:
for
b1,
b2,
b3 being
Element of
c1 for
b4,
b5 being
Function st
S2[
b1,
b2,
b4] &
S2[
b2,
b3,
b5] holds
S2[
b1,
b3,
b5 * b4]
E42:
for
b1 being
Element of
c1 for
b2 being
set st ( for
b3 being
set holds
(
b3 in b2 iff (
b3 in H1(
b1) &
S1[
b1,
b3] ) ) ) holds
S2[
b1,
b1,
id b2]
func Concretized c1 -> strict concrete category means :
Def12:
:: YELLOW18:def 12
( the
carrier of
a2 = the
carrier of
a1 & ( for
b1 being
object of
a2 for
b2 being
set holds
(
b2 in the_carrier_of b1 iff (
b2 in Union (disjoin the Arrows of a1) &
b1 = b2 `22 ) ) ) & ( for
b1,
b2 being
Element of
a1 for
b3 being
Function holds
(
b3 in the
Arrows of
a2 . b1,
b2 iff (
b3 in Funcs (a2 -carrier_of b1),
(a2 -carrier_of b2) & ex
b4,
b5 being
object of
a1ex
b6 being
Morphism of
b4,
b5 st
(
b4 = b1 &
b5 = b2 &
<^b4,b5^> <> {} & ( for
b7 being
object of
a1 st
<^b7,b4^> <> {} holds
for
b8 being
Morphism of
b7,
b4 holds
b3 . [b8,[b7,b4]] = [(b6 * b8),[b7,b5]] ) ) ) ) ) );
uniqueness
for b1, b2 being strict concrete category st the carrier of b1 = the carrier of c1 & ( for b3 being object of b1
for b4 being set holds
( b4 in the_carrier_of b3 iff ( b4 in Union (disjoin the Arrows of c1) & b3 = b4 `22 ) ) ) & ( for b3, b4 being Element of c1
for b5 being Function holds
( b5 in the Arrows of b1 . b3,b4 iff ( b5 in Funcs (b1 -carrier_of b3),(b1 -carrier_of b4) & ex b6, b7 being object of c1ex b8 being Morphism of b6,b7 st
( b6 = b3 & b7 = b4 & <^b6,b7^> <> {} & ( for b9 being object of c1 st <^b9,b6^> <> {} holds
for b10 being Morphism of b9,b6 holds b5 . [b10,[b9,b6]] = [(b8 * b10),[b9,b7]] ) ) ) ) ) & the carrier of b2 = the carrier of c1 & ( for b3 being object of b2
for b4 being set holds
( b4 in the_carrier_of b3 iff ( b4 in Union (disjoin the Arrows of c1) & b3 = b4 `22 ) ) ) & ( for b3, b4 being Element of c1
for b5 being Function holds
( b5 in the Arrows of b2 . b3,b4 iff ( b5 in Funcs (b2 -carrier_of b3),(b2 -carrier_of b4) & ex b6, b7 being object of c1ex b8 being Morphism of b6,b7 st
( b6 = b3 & b7 = b4 & <^b6,b7^> <> {} & ( for b9 being object of c1 st <^b9,b6^> <> {} holds
for b10 being Morphism of b9,b6 holds b5 . [b10,[b9,b6]] = [(b8 * b10),[b9,b7]] ) ) ) ) ) holds
b1 = b2
existence
ex b1 being strict concrete category st
( the carrier of b1 = the carrier of c1 & ( for b2 being object of b1
for b3 being set holds
( b3 in the_carrier_of b2 iff ( b3 in Union (disjoin the Arrows of c1) & b2 = b3 `22 ) ) ) & ( for b2, b3 being Element of c1
for b4 being Function holds
( b4 in the Arrows of b1 . b2,b3 iff ( b4 in Funcs (b1 -carrier_of b2),(b1 -carrier_of b3) & ex b5, b6 being object of c1ex b7 being Morphism of b5,b6 st
( b5 = b2 & b6 = b3 & <^b5,b6^> <> {} & ( for b8 being object of c1 st <^b8,b5^> <> {} holds
for b9 being Morphism of b8,b5 holds b4 . [b9,[b8,b5]] = [(b7 * b9),[b8,b6]] ) ) ) ) ) )
end;
:: deftheorem Def12 defines Concretized YELLOW18:def 12 :
for
b1 being
category for
b2 being
strict concrete category holds
(
b2 = Concretized b1 iff ( the
carrier of
b2 = the
carrier of
b1 & ( for
b3 being
object of
b2 for
b4 being
set holds
(
b4 in the_carrier_of b3 iff (
b4 in Union (disjoin the Arrows of b1) &
b3 = b4 `22 ) ) ) & ( for
b3,
b4 being
Element of
b1 for
b5 being
Function holds
(
b5 in the
Arrows of
b2 . b3,
b4 iff (
b5 in Funcs (b2 -carrier_of b3),
(b2 -carrier_of b4) & ex
b6,
b7 being
object of
b1ex
b8 being
Morphism of
b6,
b7 st
(
b6 = b3 &
b7 = b4 &
<^b6,b7^> <> {} & ( for
b9 being
object of
b1 st
<^b9,b6^> <> {} holds
for
b10 being
Morphism of
b9,
b6 holds
b5 . [b10,[b9,b6]] = [(b8 * b10),[b9,b7]] ) ) ) ) ) ) );
theorem Th45: :: YELLOW18:45
theorem Th46: :: YELLOW18:46
for
b1 being
category for
b2,
b3 being
object of
b1 st
<^b2,b3^> <> {} holds
for
b4 being
Morphism of
b2,
b3 ex
b5 being
Function of
(Concretized b1) -carrier_of b2,
(Concretized b1) -carrier_of b3 st
(
b5 in the
Arrows of
(Concretized b1) . b2,
b3 & ( for
b6 being
object of
b1 for
b7 being
Morphism of
b6,
b2 st
<^b6,b2^> <> {} holds
b5 . [b7,[b6,b2]] = [(b4 * b7),[b6,b3]] ) )
theorem Th47: :: YELLOW18:47
definition
let c1 be
category;
set c2 =
Concretized c1;
func Concretization c1 -> strict covariant Functor of
a1,
Concretized a1 means :
Def13:
:: YELLOW18:def 13
( ( for
b1 being
object of
a1 holds
a2 . b1 = b1 ) & ( for
b1,
b2 being
object of
a1 st
<^b1,b2^> <> {} holds
for
b3 being
Morphism of
b1,
b2 holds
(a2 . b3) . [(idm b1),[b1,b1]] = [b3,[b1,b2]] ) );
uniqueness
for b1, b2 being strict covariant Functor of c1, Concretized c1 st ( for b3 being object of c1 holds b1 . b3 = b3 ) & ( for b3, b4 being object of c1 st <^b3,b4^> <> {} holds
for b5 being Morphism of b3,b4 holds (b1 . b5) . [(idm b3),[b3,b3]] = [b5,[b3,b4]] ) & ( for b3 being object of c1 holds b2 . b3 = b3 ) & ( for b3, b4 being object of c1 st <^b3,b4^> <> {} holds
for b5 being Morphism of b3,b4 holds (b2 . b5) . [(idm b3),[b3,b3]] = [b5,[b3,b4]] ) holds
b1 = b2
existence
ex b1 being strict covariant Functor of c1, Concretized c1 st
( ( for b2 being object of c1 holds b1 . b2 = b2 ) & ( for b2, b3 being object of c1 st <^b2,b3^> <> {} holds
for b4 being Morphism of b2,b3 holds (b1 . b4) . [(idm b2),[b2,b2]] = [b4,[b2,b3]] ) )
end;
:: deftheorem Def13 defines Concretization YELLOW18:def 13 :
theorem Th48: :: YELLOW18:48