scheme
AltCatStrLambda{
F1()
-> non
empty set ,
F2(
object ,
object )
-> set ,
F3(
object ,
object ,
object ,
object ,
object )
-> object } :
ex
C being non
empty transitive strict AltCatStr st
( the
carrier of
C = F1() & ( for
a,
b being
Object of
C holds
<^a,b^> = F2(
a,
b) ) & ( for
a,
b,
c being
Object of
C st
<^a,b^> <> {} &
<^b,c^> <> {} holds
for
f being
Morphism of
a,
b for
g being
Morphism of
b,
c holds
g * f = F3(
a,
b,
c,
f,
g) ) )
provided
A1:
for
a,
b,
c being
Element of
F1()
for
f,
g being
set st
f in F2(
a,
b) &
g in F2(
b,
c) holds
F3(
a,
b,
c,
f,
g)
in F2(
a,
c)
scheme
CatAssocSch{
F1()
-> non
empty transitive AltCatStr ,
F2(
object ,
object ,
object ,
object ,
object )
-> object } :
provided
A1:
for
a,
b,
c being
Object of
F1() st
<^a,b^> <> {} &
<^b,c^> <> {} holds
for
f being
Morphism of
a,
b for
g being
Morphism of
b,
c holds
g * f = F2(
a,
b,
c,
f,
g)
and A2:
for
a,
b,
c,
d being
Object of
F1()
for
f,
g,
h being
set st
f in <^a,b^> &
g in <^b,c^> &
h in <^c,d^> holds
F2(
a,
c,
d,
F2(
a,
b,
c,
f,
g),
h)
= F2(
a,
b,
d,
f,
F2(
b,
c,
d,
g,
h))
scheme
CatUnitsSch{
F1()
-> non
empty transitive AltCatStr ,
F2(
object ,
object ,
object ,
object ,
object )
-> object } :
provided
A1:
for
a,
b,
c being
Object of
F1() st
<^a,b^> <> {} &
<^b,c^> <> {} holds
for
f being
Morphism of
a,
b for
g being
Morphism of
b,
c holds
g * f = F2(
a,
b,
c,
f,
g)
and A2:
for
a being
Object of
F1() ex
f being
set st
(
f in <^a,a^> & ( for
b being
Object of
F1()
for
g being
set st
g in <^a,b^> holds
F2(
a,
a,
b,
f,
g)
= g ) )
and A3:
for
a being
Object of
F1() ex
f being
set st
(
f in <^a,a^> & ( for
b being
Object of
F1()
for
g being
set st
g in <^b,a^> holds
F2(
b,
a,
a,
g,
f)
= g ) )
scheme
CategoryLambda{
F1()
-> non
empty set ,
F2(
object ,
object )
-> set ,
F3(
object ,
object ,
object ,
object ,
object )
-> object } :
ex
C being
strict category st
( the
carrier of
C = F1() & ( for
a,
b being
Object of
C holds
<^a,b^> = F2(
a,
b) ) & ( for
a,
b,
c being
Object of
C st
<^a,b^> <> {} &
<^b,c^> <> {} holds
for
f being
Morphism of
a,
b for
g being
Morphism of
b,
c holds
g * f = F3(
a,
b,
c,
f,
g) ) )
provided
A1:
for
a,
b,
c being
Element of
F1()
for
f,
g being
set st
f in F2(
a,
b) &
g in F2(
b,
c) holds
F3(
a,
b,
c,
f,
g)
in F2(
a,
c)
and A2:
for
a,
b,
c,
d being
Element of
F1()
for
f,
g,
h being
set st
f in F2(
a,
b) &
g in F2(
b,
c) &
h in F2(
c,
d) holds
F3(
a,
c,
d,
F3(
a,
b,
c,
f,
g),
h)
= F3(
a,
b,
d,
f,
F3(
b,
c,
d,
g,
h))
and A3:
for
a being
Element of
F1() ex
f being
set st
(
f in F2(
a,
a) & ( for
b being
Element of
F1()
for
g being
set st
g in F2(
a,
b) holds
F3(
a,
a,
b,
f,
g)
= g ) )
and A4:
for
a being
Element of
F1() ex
f being
set st
(
f in F2(
a,
a) & ( for
b being
Element of
F1()
for
g being
set st
g in F2(
b,
a) holds
F3(
b,
a,
a,
g,
f)
= g ) )
scheme
CategoryLambdaUniq{
F1()
-> non
empty set ,
F2(
object ,
object )
-> object ,
F3(
object ,
object ,
object ,
object ,
object )
-> object } :
for
C1,
C2 being non
empty transitive AltCatStr st the
carrier of
C1 = F1() & ( for
a,
b being
Object of
C1 holds
<^a,b^> = F2(
a,
b) ) & ( for
a,
b,
c being
Object of
C1 st
<^a,b^> <> {} &
<^b,c^> <> {} holds
for
f being
Morphism of
a,
b for
g being
Morphism of
b,
c holds
g * f = F3(
a,
b,
c,
f,
g) ) & the
carrier of
C2 = F1() & ( for
a,
b being
Object of
C2 holds
<^a,b^> = F2(
a,
b) ) & ( for
a,
b,
c being
Object of
C2 st
<^a,b^> <> {} &
<^b,c^> <> {} holds
for
f being
Morphism of
a,
b for
g being
Morphism of
b,
c holds
g * f = F3(
a,
b,
c,
f,
g) ) holds
AltCatStr(# the
carrier of
C1, the
Arrows of
C1, the
Comp of
C1 #)
= AltCatStr(# the
carrier of
C2, the
Arrows of
C2, the
Comp of
C2 #)
scheme
CategoryQuasiLambda{
F1()
-> non
empty set ,
P1[
object ,
object ,
object ],
F2(
object ,
object )
-> set ,
F3(
object ,
object ,
object ,
object ,
object )
-> object } :
ex
C being
strict category st
( the
carrier of
C = F1() & ( for
a,
b being
Object of
C for
f being
set holds
(
f in <^a,b^> iff (
f in F2(
a,
b) &
P1[
a,
b,
f] ) ) ) & ( for
a,
b,
c being
Object of
C st
<^a,b^> <> {} &
<^b,c^> <> {} holds
for
f being
Morphism of
a,
b for
g being
Morphism of
b,
c holds
g * f = F3(
a,
b,
c,
f,
g) ) )
provided
A1:
for
a,
b,
c being
Element of
F1()
for
f,
g being
set st
f in F2(
a,
b) &
P1[
a,
b,
f] &
g in F2(
b,
c) &
P1[
b,
c,
g] holds
(
F3(
a,
b,
c,
f,
g)
in F2(
a,
c) &
P1[
a,
c,
F3(
a,
b,
c,
f,
g)] )
and A2:
for
a,
b,
c,
d being
Element of
F1()
for
f,
g,
h being
set st
f in F2(
a,
b) &
P1[
a,
b,
f] &
g in F2(
b,
c) &
P1[
b,
c,
g] &
h in F2(
c,
d) &
P1[
c,
d,
h] holds
F3(
a,
c,
d,
F3(
a,
b,
c,
f,
g),
h)
= F3(
a,
b,
d,
f,
F3(
b,
c,
d,
g,
h))
and A3:
for
a being
Element of
F1() ex
f being
set st
(
f in F2(
a,
a) &
P1[
a,
a,
f] & ( for
b being
Element of
F1()
for
g being
set st
g in F2(
a,
b) &
P1[
a,
b,
g] holds
F3(
a,
a,
b,
f,
g)
= g ) )
and A4:
for
a being
Element of
F1() ex
f being
set st
(
f in F2(
a,
a) &
P1[
a,
a,
f] & ( for
b being
Element of
F1()
for
g being
set st
g in F2(
b,
a) &
P1[
b,
a,
g] holds
F3(
b,
a,
a,
g,
f)
= g ) )
scheme
SubcategoryEx{
F1()
-> category,
P1[
object ],
P2[
object ,
object ,
object ] } :
provided
A1:
ex
a being
Object of
F1() st
P1[
a]
and 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
P2[
a,
b,
f] &
P2[
b,
c,
g] holds
P2[
a,
c,
g * f]
and A3:
for
a being
Object of
F1() st
P1[
a] holds
P2[
a,
a,
idm a]
scheme
CovariantFunctorLambda{
F1()
-> category,
F2()
-> category,
F3(
object )
-> object ,
F4(
object ,
object ,
object )
-> object } :
provided
A1:
for
a being
Object of
F1() holds
F3(
a) is
Object of
F2()
and A2:
for
a,
b being
Object of
F1() st
<^a,b^> <> {} holds
for
f being
Morphism of
a,
b holds
F4(
a,
b,
f)
in the
Arrows of
F2()
. (
F3(
a),
F3(
b))
and A3:
for
a,
b,
c being
Object of
F1() 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
F2() st
a9 = F3(
a) &
b9 = F3(
b) &
c9 = F3(
c) holds
for
f9 being
Morphism of
a9,
b9 for
g9 being
Morphism of
b9,
c9 st
f9 = F4(
a,
b,
f) &
g9 = F4(
b,
c,
g) holds
F4(
a,
c,
(g * f))
= g9 * f9
and A4:
for
a being
Object of
F1()
for
a9 being
Object of
F2() st
a9 = F3(
a) holds
F4(
a,
a,
(idm a))
= idm a9
scheme
ContravariantFunctorLambda{
F1()
-> category,
F2()
-> category,
F3(
object )
-> object ,
F4(
object ,
object ,
object )
-> object } :
provided
A1:
for
a being
Object of
F1() holds
F3(
a) is
Object of
F2()
and A2:
for
a,
b being
Object of
F1() st
<^a,b^> <> {} holds
for
f being
Morphism of
a,
b holds
F4(
a,
b,
f)
in the
Arrows of
F2()
. (
F3(
b),
F3(
a))
and A3:
for
a,
b,
c being
Object of
F1() 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
F2() st
a9 = F3(
a) &
b9 = F3(
b) &
c9 = F3(
c) holds
for
f9 being
Morphism of
b9,
a9 for
g9 being
Morphism of
c9,
b9 st
f9 = F4(
a,
b,
f) &
g9 = F4(
b,
c,
g) holds
F4(
a,
c,
(g * f))
= f9 * g9
and A4:
for
a being
Object of
F1()
for
a9 being
Object of
F2() st
a9 = F3(
a) holds
F4(
a,
a,
(idm a))
= idm a9
scheme
CoBijectiveSch{
F1()
-> category,
F2()
-> category,
F3()
-> covariant Functor of
F1(),
F2(),
F4(
object )
-> object ,
F5(
object ,
object ,
object )
-> object } :
provided
A1:
for
a being
Object of
F1() holds
F3()
. a = F4(
a)
and A2:
for
a,
b being
Object of
F1() st
<^a,b^> <> {} holds
for
f being
Morphism of
a,
b holds
F3()
. f = F5(
a,
b,
f)
and A3:
for
a,
b being
Object of
F1() st
F4(
a)
= F4(
b) holds
a = b
and A4:
for
a,
b being
Object of
F1() st
<^a,b^> <> {} holds
for
f,
g being
Morphism of
a,
b st
F5(
a,
b,
f)
= F5(
a,
b,
g) holds
f = g
and A5:
for
a,
b being
Object of
F2() st
<^a,b^> <> {} holds
for
f being
Morphism of
a,
b ex
c,
d being
Object of
F1() ex
g being
Morphism of
c,
d st
(
a = F4(
c) &
b = F4(
d) &
<^c,d^> <> {} &
f = F5(
c,
d,
g) )
scheme
CatIsomorphism{
F1()
-> category,
F2()
-> category,
F3(
object )
-> object ,
F4(
object ,
object ,
object )
-> object } :
provided
A1:
ex
F being
covariant Functor of
F1(),
F2() st
( ( for
a being
Object of
F1() holds
F . a = F3(
a) ) & ( for
a,
b being
Object of
F1() st
<^a,b^> <> {} holds
for
f being
Morphism of
a,
b holds
F . f = F4(
a,
b,
f) ) )
and A2:
for
a,
b being
Object of
F1() st
F3(
a)
= F3(
b) holds
a = b
and A3:
for
a,
b being
Object of
F1() st
<^a,b^> <> {} holds
for
f,
g being
Morphism of
a,
b st
F4(
a,
b,
f)
= F4(
a,
b,
g) holds
f = g
and A4:
for
a,
b being
Object of
F2() st
<^a,b^> <> {} holds
for
f being
Morphism of
a,
b ex
c,
d being
Object of
F1() ex
g being
Morphism of
c,
d st
(
a = F3(
c) &
b = F3(
d) &
<^c,d^> <> {} &
f = F4(
c,
d,
g) )
scheme
ContraBijectiveSch{
F1()
-> category,
F2()
-> category,
F3()
-> contravariant Functor of
F1(),
F2(),
F4(
object )
-> object ,
F5(
object ,
object ,
object )
-> object } :
provided
A1:
for
a being
Object of
F1() holds
F3()
. a = F4(
a)
and A2:
for
a,
b being
Object of
F1() st
<^a,b^> <> {} holds
for
f being
Morphism of
a,
b holds
F3()
. f = F5(
a,
b,
f)
and A3:
for
a,
b being
Object of
F1() st
F4(
a)
= F4(
b) holds
a = b
and A4:
for
a,
b being
Object of
F1() st
<^a,b^> <> {} holds
for
f,
g being
Morphism of
a,
b st
F5(
a,
b,
f)
= F5(
a,
b,
g) holds
f = g
and A5:
for
a,
b being
Object of
F2() st
<^a,b^> <> {} holds
for
f being
Morphism of
a,
b ex
c,
d being
Object of
F1() ex
g being
Morphism of
c,
d st
(
b = F4(
c) &
a = F4(
d) &
<^c,d^> <> {} &
f = F5(
c,
d,
g) )
scheme
CatAntiIsomorphism{
F1()
-> category,
F2()
-> category,
F3(
object )
-> object ,
F4(
object ,
object ,
object )
-> object } :
provided
A1:
ex
F being
contravariant Functor of
F1(),
F2() st
( ( for
a being
Object of
F1() holds
F . a = F3(
a) ) & ( for
a,
b being
Object of
F1() st
<^a,b^> <> {} holds
for
f being
Morphism of
a,
b holds
F . f = F4(
a,
b,
f) ) )
and A2:
for
a,
b being
Object of
F1() st
F3(
a)
= F3(
b) holds
a = b
and A3:
for
a,
b being
Object of
F1() st
<^a,b^> <> {} holds
for
f,
g being
Morphism of
a,
b st
F4(
a,
b,
f)
= F4(
a,
b,
g) holds
f = g
and A4:
for
a,
b being
Object of
F2() st
<^a,b^> <> {} holds
for
f being
Morphism of
a,
b ex
c,
d being
Object of
F1() ex
g being
Morphism of
c,
d st
(
b = F3(
c) &
a = F3(
d) &
<^c,d^> <> {} &
f = F4(
c,
d,
g) )
definition
let A,
B be
category;
reflexivity
for A being category ex F, G being covariant Functor of A,A st
( G * F, id A are_naturally_equivalent & F * G, id A are_naturally_equivalent )
symmetry
for A, B being category st ex F being covariant Functor of A,B ex G being covariant Functor of B,A st
( G * F, id A are_naturally_equivalent & F * G, id B are_naturally_equivalent ) holds
ex F being covariant Functor of B,A ex G being covariant Functor of A,B st
( G * F, id B are_naturally_equivalent & F * G, id A are_naturally_equivalent )
;
end;
theorem Th3:
for
A,
B,
C being non
empty reflexive AltGraph for
F1,
F2 being
feasible FunctorStr over
A,
B for
G1,
G2 being
FunctorStr over
B,
C st
FunctorStr(# the
ObjectMap of
F1, the
MorphMap of
F1 #)
= FunctorStr(# the
ObjectMap of
F2, the
MorphMap of
F2 #) &
FunctorStr(# the
ObjectMap of
G1, the
MorphMap of
G1 #)
= FunctorStr(# the
ObjectMap of
G2, the
MorphMap of
G2 #) holds
G1 * F1 = G2 * F2
scheme
NatTransLambda{
F1()
-> category,
F2()
-> category,
F3()
-> covariant Functor of
F1(),
F2(),
F4()
-> covariant Functor of
F1(),
F2(),
F5(
object )
-> object } :
provided
A1:
for
a being
Object of
F1() holds
F5(
a)
in <^(F3() . a),(F4() . a)^>
and A2:
for
a,
b being
Object of
F1() st
<^a,b^> <> {} holds
for
f being
Morphism of
a,
b for
g1 being
Morphism of
(F3() . a),
(F4() . a) st
g1 = F5(
a) holds
for
g2 being
Morphism of
(F3() . b),
(F4() . b) st
g2 = F5(
b) holds
g2 * (F3() . f) = (F4() . f) * g1
scheme
NatEquivalenceLambda{
F1()
-> category,
F2()
-> category,
F3()
-> covariant Functor of
F1(),
F2(),
F4()
-> covariant Functor of
F1(),
F2(),
F5(
object )
-> object } :
provided
A1:
for
a being
Object of
F1() holds
(
F5(
a)
in <^(F3() . a),(F4() . a)^> &
<^(F4() . a),(F3() . a)^> <> {} & ( for
f being
Morphism of
(F3() . a),
(F4() . a) st
f = F5(
a) holds
f is
iso ) )
and A2:
for
a,
b being
Object of
F1() st
<^a,b^> <> {} holds
for
f being
Morphism of
a,
b for
g1 being
Morphism of
(F3() . a),
(F4() . a) st
g1 = F5(
a) holds
for
g2 being
Morphism of
(F3() . b),
(F4() . b) st
g2 = F5(
b) holds
g2 * (F3() . f) = (F4() . f) * g1
definition
let C1,
C2 be non
empty AltCatStr ;
symmetry
for C1, C2 being non empty AltCatStr st the carrier of C2 = the carrier of C1 & the Arrows of C2 = ~ the Arrows of C1 & ( for a, b, c being Object of C1
for a9, b9, c9 being Object of C2 st a9 = a & b9 = b & c9 = c holds
the Comp of C2 . (a9,b9,c9) = ~ ( the Comp of C1 . (c,b,a)) ) holds
( the carrier of C1 = the carrier of C2 & the Arrows of C1 = ~ the Arrows of C2 & ( for a, b, c being Object of C2
for a9, b9, c9 being Object of C1 st a9 = a & b9 = b & c9 = c holds
the Comp of C1 . (a9,b9,c9) = ~ ( the Comp of C2 . (c,b,a)) ) )
end;
::
deftheorem defines
are_opposite YELLOW18:def 3 :
for C1, C2 being non empty AltCatStr holds
( C1,C2 are_opposite iff ( the carrier of C2 = the carrier of C1 & the Arrows of C2 = ~ the Arrows of C1 & ( for a, b, c being Object of C1
for a9, b9, c9 being Object of C2 st a9 = a & b9 = b & c9 = c holds
the Comp of C2 . (a9,b9,c9) = ~ ( the Comp of C1 . (c,b,a)) ) ) );
theorem Th9:
for
C1,
C2 being non
empty transitive AltCatStr holds
(
C1,
C2 are_opposite iff ( the
carrier of
C2 = the
carrier of
C1 & ( for
a,
b,
c being
Object of
C1 for
a9,
b9,
c9 being
Object of
C2 st
a9 = a &
b9 = b &
c9 = c holds
(
<^a,b^> = <^b9,a9^> & (
<^a,b^> <> {} &
<^b,c^> <> {} implies for
f being
Morphism of
a,
b for
g being
Morphism of
b,
c for
f9 being
Morphism of
b9,
a9 for
g9 being
Morphism of
c9,
b9 st
f9 = f &
g9 = g holds
f9 * g9 = g * f ) ) ) ) )
definition
let A,
B be
category;
assume A1:
A,
B are_opposite
;
deffunc H1(
set )
-> set = $1;
deffunc H2(
set ,
set ,
set )
-> set = $3;
A2:
for
a being
Object of
A holds
H1(
a) is
Object of
B
by A1;
A3:
now for a, b being Object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds H2(a,b,f) in the Arrows of B . (H1(b),H1(a))
let a,
b be
Object of
A;
( <^a,b^> <> {} implies for f being Morphism of a,b holds H2(a,b,f) in the Arrows of B . (H1(b),H1(a)) )assume A4:
<^a,b^> <> {}
;
for f being Morphism of a,b holds H2(a,b,f) in the Arrows of B . (H1(b),H1(a))let f be
Morphism of
a,
b;
H2(a,b,f) in the Arrows of B . (H1(b),H1(a))reconsider a9 =
a,
b9 =
b as
Object of
B by A2;
<^a,b^> =
<^b9,a9^>
by A1, Th9
.=
the
Arrows of
B . (
b,
a)
;
hence
H2(
a,
b,
f)
in the
Arrows of
B . (
H1(
b),
H1(
a))
by A4;
verum
end;
A5:
for
a,
b,
c being
Object of
A 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
B st
a9 = H1(
a) &
b9 = H1(
b) &
c9 = H1(
c) holds
for
f9 being
Morphism of
b9,
a9 for
g9 being
Morphism of
c9,
b9 st
f9 = H2(
a,
b,
f) &
g9 = H2(
b,
c,
g) holds
H2(
a,
c,
g * f)
= f9 * g9
by A1, Th9;
A6:
for
a being
Object of
A for
a9 being
Object of
B st
a9 = H1(
a) holds
H2(
a,
a,
idm a)
= idm a9
by A1, Th10;
existence
ex b1 being strict contravariant Functor of A,B st
( ( for a being Object of A holds b1 . a = a ) & ( for a, b being Object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds b1 . f = f ) )
uniqueness
for b1, b2 being strict contravariant Functor of A,B st ( for a being Object of A holds b1 . a = a ) & ( for a, b being Object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds b1 . f = f ) & ( for a being Object of A holds b2 . a = a ) & ( for a, b being Object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds b2 . f = f ) holds
b1 = b2
end;
Lm1:
now for A, B being category st A,B are_opposite holds
for a, b being Object of A st <^a,b^> <> {} & <^b,a^> <> {} holds
for a9, b9 being Object of B st a9 = a & b9 = b holds
for f being Morphism of a,b
for f9 being Morphism of b9,a9 st f9 = f holds
( ( f is retraction implies f9 is coretraction ) & ( f is coretraction implies f9 is retraction ) )
let A,
B be
category;
( A,B are_opposite implies for a, b being Object of A st <^a,b^> <> {} & <^b,a^> <> {} holds
for a9, b9 being Object of B st a9 = a & b9 = b holds
for f being Morphism of a,b
for f9 being Morphism of b9,a9 st f9 = f holds
( ( f is retraction implies f9 is coretraction ) & ( f is coretraction implies f9 is retraction ) ) )assume A1:
A,
B are_opposite
;
for a, b being Object of A st <^a,b^> <> {} & <^b,a^> <> {} holds
for a9, b9 being Object of B st a9 = a & b9 = b holds
for f being Morphism of a,b
for f9 being Morphism of b9,a9 st f9 = f holds
( ( f is retraction implies f9 is coretraction ) & ( f is coretraction implies f9 is retraction ) )let a,
b be
Object of
A;
( <^a,b^> <> {} & <^b,a^> <> {} implies for a9, b9 being Object of B st a9 = a & b9 = b holds
for f being Morphism of a,b
for f9 being Morphism of b9,a9 st f9 = f holds
( ( f is retraction implies f9 is coretraction ) & ( f is coretraction implies f9 is retraction ) ) )assume that A2:
<^a,b^> <> {}
and A3:
<^b,a^> <> {}
;
for a9, b9 being Object of B st a9 = a & b9 = b holds
for f being Morphism of a,b
for f9 being Morphism of b9,a9 st f9 = f holds
( ( f is retraction implies f9 is coretraction ) & ( f is coretraction implies f9 is retraction ) )let a9,
b9 be
Object of
B;
( a9 = a & b9 = b implies for f being Morphism of a,b
for f9 being Morphism of b9,a9 st f9 = f holds
( ( f is retraction implies f9 is coretraction ) & ( f is coretraction implies f9 is retraction ) ) )assume that A4:
a9 = a
and A5:
b9 = b
;
for f being Morphism of a,b
for f9 being Morphism of b9,a9 st f9 = f holds
( ( f is retraction implies f9 is coretraction ) & ( f is coretraction implies f9 is retraction ) )let f be
Morphism of
a,
b;
for f9 being Morphism of b9,a9 st f9 = f holds
( ( f is retraction implies f9 is coretraction ) & ( f is coretraction implies f9 is retraction ) )let f9 be
Morphism of
b9,
a9;
( f9 = f implies ( ( f is retraction implies f9 is coretraction ) & ( f is coretraction implies f9 is retraction ) ) )assume A6:
f9 = f
;
( ( f is retraction implies f9 is coretraction ) & ( f is coretraction implies f9 is retraction ) )thus
(
f is
retraction implies
f9 is
coretraction )
( f is coretraction implies f9 is retraction )
proof
given g being
Morphism of
b,
a such that A7:
g is_right_inverse_of f
;
ALTCAT_3:def 2 f9 is coretraction
reconsider g9 =
g as
Morphism of
a9,
b9 by A1, A4, A5, Th7;
take
g9
;
ALTCAT_3:def 3 g9 is_left_inverse_of f9
f * g =
idm b
by A7
.=
idm b9
by A1, A5, Th10
;
hence
g9 * f9 = idm b9
by A1, A2, A3, A4, A5, A6, Th9;
ALTCAT_3:def 1 verum
end;
thus
(
f is
coretraction implies
f9 is
retraction )
verum
proof
given g being
Morphism of
b,
a such that A8:
g is_left_inverse_of f
;
ALTCAT_3:def 3 f9 is retraction
reconsider g9 =
g as
Morphism of
a9,
b9 by A1, A4, A5, Th7;
take
g9
;
ALTCAT_3:def 2 f9 is_left_inverse_of g9
g * f =
idm a
by A8
.=
idm a9
by A1, A4, Th10
;
hence
f9 * g9 = idm a9
by A1, A2, A3, A4, A5, A6, Th9;
ALTCAT_3:def 1 verum
end;
end;
theorem Th24:
for
A,
B,
C,
D being
category st
A,
B are_opposite &
C,
D are_opposite holds
for
F,
G being
covariant Functor of
B,
C st
F,
G are_naturally_equivalent holds
((dualizing-func (C,D)) * G) * (dualizing-func (A,B)),
((dualizing-func (C,D)) * F) * (dualizing-func (A,B)) are_naturally_equivalent
scheme
ConcreteCategoryLambda{
F1()
-> non
empty set ,
F2(
object ,
object )
-> set ,
F3(
object )
-> set } :
provided
A1:
for
a,
b,
c being
Element of
F1()
for
f,
g being
Function st
f in F2(
a,
b) &
g in F2(
b,
c) holds
g * f in F2(
a,
c)
and A2:
for
a,
b being
Element of
F1() holds
F2(
a,
b)
c= Funcs (
F3(
a),
F3(
b))
and A3:
for
a being
Element of
F1() holds
id F3(
a)
in F2(
a,
a)
scheme
ConcreteCategoryQuasiLambda{
F1()
-> non
empty set ,
P1[
object ,
object ,
object ],
F2(
object )
-> set } :
provided
A1:
for
a,
b,
c being
Element of
F1()
for
f,
g being
Function st
P1[
a,
b,
f] &
P1[
b,
c,
g] holds
P1[
a,
c,
g * f]
and A2:
for
a being
Element of
F1() holds
P1[
a,
a,
id F2(
a)]
scheme
ConcreteCategoryEx{
F1()
-> non
empty set ,
F2(
object )
-> set ,
P1[
object ,
object ],
P2[
object ,
object ,
object ] } :
provided
A1:
for
a,
b,
c being
Element of
F1()
for
f,
g being
Function st
P2[
a,
b,
f] &
P2[
b,
c,
g] holds
P2[
a,
c,
g * f]
and A2:
for
a being
Element of
F1()
for
X being
set st ( for
x being
set holds
(
x in X iff (
x in F2(
a) &
P1[
a,
x] ) ) ) holds
P2[
a,
a,
id X]
scheme
ConcreteCategoryUniq1{
F1()
-> non
empty set ,
F2(
object ,
object )
-> object } :
for
C1,
C2 being
semi-functional para-functional category st the
carrier of
C1 = F1() & ( for
a,
b being
Object of
C1 holds
<^a,b^> = F2(
a,
b) ) & the
carrier of
C2 = F1() & ( for
a,
b being
Object of
C2 holds
<^a,b^> = F2(
a,
b) ) holds
AltCatStr(# the
carrier of
C1, the
Arrows of
C1, the
Comp of
C1 #)
= AltCatStr(# the
carrier of
C2, the
Arrows of
C2, the
Comp of
C2 #)
scheme
ConcreteCategoryUniq2{
F1()
-> non
empty set ,
P1[
object ,
object ,
object ],
F2(
object )
-> set } :
for
C1,
C2 being
semi-functional para-functional category st the
carrier of
C1 = F1() & ( for
a,
b being
Element of
F1()
for
f being
Function holds
(
f in the
Arrows of
C1 . (
a,
b) iff (
f in Funcs (
F2(
a),
F2(
b)) &
P1[
a,
b,
f] ) ) ) & the
carrier of
C2 = F1() & ( for
a,
b being
Element of
F1()
for
f being
Function holds
(
f in the
Arrows of
C2 . (
a,
b) iff (
f in Funcs (
F2(
a),
F2(
b)) &
P1[
a,
b,
f] ) ) ) holds
AltCatStr(# the
carrier of
C1, the
Arrows of
C1, the
Comp of
C1 #)
= AltCatStr(# the
carrier of
C2, the
Arrows of
C2, the
Comp of
C2 #)
scheme
ConcreteCategoryUniq3{
F1()
-> non
empty set ,
F2(
object )
-> set ,
P1[
object ,
object ],
P2[
object ,
object ,
object ] } :
for
C1,
C2 being
semi-functional para-functional category st the
carrier of
C1 = F1() & ( for
a being
Object of
C1 for
x being
set holds
(
x in the_carrier_of a iff (
x in F2(
a) &
P1[
a,
x] ) ) ) & ( for
a,
b being
Element of
F1()
for
f being
Function holds
(
f in the
Arrows of
C1 . (
a,
b) iff (
f in Funcs (
(C1 -carrier_of a),
(C1 -carrier_of b)) &
P2[
a,
b,
f] ) ) ) & the
carrier of
C2 = F1() & ( for
a being
Object of
C2 for
x being
set holds
(
x in the_carrier_of a iff (
x in F2(
a) &
P1[
a,
x] ) ) ) & ( for
a,
b being
Element of
F1()
for
f being
Function holds
(
f in the
Arrows of
C2 . (
a,
b) iff (
f in Funcs (
(C2 -carrier_of a),
(C2 -carrier_of b)) &
P2[
a,
b,
f] ) ) ) holds
AltCatStr(# the
carrier of
C1, the
Arrows of
C1, the
Comp of
C1 #)
= AltCatStr(# the
carrier of
C2, the
Arrows of
C2, the
Comp of
C2 #)
scheme
ConcreteCatEquivalence{
F1()
-> semi-functional para-functional category,
F2()
-> semi-functional para-functional category,
F3(
object )
-> object ,
F4(
object )
-> object ,
F5(
object ,
object ,
object )
-> Function,
F6(
object ,
object ,
object )
-> Function,
F7(
object )
-> Function,
F8(
object )
-> Function } :
provided
A1:
ex
F being
covariant Functor of
F1(),
F2() st
( ( for
a being
Object of
F1() holds
F . a = F3(
a) ) & ( for
a,
b being
Object of
F1() st
<^a,b^> <> {} holds
for
f being
Morphism of
a,
b holds
F . f = F5(
a,
b,
f) ) )
and A2:
ex
G being
covariant Functor of
F2(),
F1() st
( ( for
a being
Object of
F2() holds
G . a = F4(
a) ) & ( for
a,
b being
Object of
F2() st
<^a,b^> <> {} holds
for
f being
Morphism of
a,
b holds
G . f = F6(
a,
b,
f) ) )
and A3:
for
a,
b being
Object of
F1() st
a = F4(
F3(
b)) holds
(
F7(
b)
in <^a,b^> &
F7(
b)
" in <^b,a^> &
F7(
b) is
one-to-one )
and A4:
for
a,
b being
Object of
F2() st
b = F3(
F4(
a)) holds
(
F8(
a)
in <^a,b^> &
F8(
a)
" in <^b,a^> &
F8(
a) is
one-to-one )
and A5:
for
a,
b being
Object of
F1() st
<^a,b^> <> {} holds
for
f being
Morphism of
a,
b holds
F7(
b)
* F6(
F3(
a),
F3(
b),
F5(
a,
b,
f))
= f * F7(
a)
and A6:
for
a,
b being
Object of
F2() st
<^a,b^> <> {} holds
for
f being
Morphism of
a,
b holds
F5(
F4(
a),
F4(
b),
F6(
a,
b,
f))
* F8(
a)
= F8(
b)
* f
definition
let C be
category;
defpred S1[
set ,
set ]
means $1
= $2
`22 ;
defpred S2[
set ,
set ,
Function]
means ex
fa,
fb being
Object of
C ex
g being
Morphism of
fa,
fb st
(
fa = $1 &
fb = $2 &
<^fa,fb^> <> {} & ( for
o being
Object of
C st
<^o,fa^> <> {} holds
for
h being
Morphism of
o,
fa holds $3
. [h,[o,fa]] = [(g * h),[o,fb]] ) );
deffunc H1(
set )
-> set =
Union (disjoin the Arrows of C);
A1:
for
a,
b,
c being
Element of
C for
f,
g being
Function st
S2[
a,
b,
f] &
S2[
b,
c,
g] holds
S2[
a,
c,
g * f]
A13:
for
a being
Element of
C for
X being
set st ( for
x being
set holds
(
x in X iff (
x in H1(
a) &
S1[
a,
x] ) ) ) holds
S2[
a,
a,
id X]
func Concretized C -> strict concrete category means :
Def12:
( the
carrier of
it = the
carrier of
C & ( for
a being
Object of
it for
x being
set holds
(
x in the_carrier_of a iff (
x in Union (disjoin the Arrows of C) &
a = x `22 ) ) ) & ( for
a,
b being
Element of
C for
f being
Function holds
(
f in the
Arrows of
it . (
a,
b) iff (
f in Funcs (
(it -carrier_of a),
(it -carrier_of b)) & ex
fa,
fb being
Object of
C ex
g being
Morphism of
fa,
fb st
(
fa = a &
fb = b &
<^fa,fb^> <> {} & ( for
o being
Object of
C st
<^o,fa^> <> {} holds
for
h being
Morphism of
o,
fa holds
f . [h,[o,fa]] = [(g * h),[o,fb]] ) ) ) ) ) );
uniqueness
for b1, b2 being strict concrete category st the carrier of b1 = the carrier of C & ( for a being Object of b1
for x being set holds
( x in the_carrier_of a iff ( x in Union (disjoin the Arrows of C) & a = x `22 ) ) ) & ( for a, b being Element of C
for f being Function holds
( f in the Arrows of b1 . (a,b) iff ( f in Funcs ((b1 -carrier_of a),(b1 -carrier_of b)) & ex fa, fb being Object of C ex g being Morphism of fa,fb st
( fa = a & fb = b & <^fa,fb^> <> {} & ( for o being Object of C st <^o,fa^> <> {} holds
for h being Morphism of o,fa holds f . [h,[o,fa]] = [(g * h),[o,fb]] ) ) ) ) ) & the carrier of b2 = the carrier of C & ( for a being Object of b2
for x being set holds
( x in the_carrier_of a iff ( x in Union (disjoin the Arrows of C) & a = x `22 ) ) ) & ( for a, b being Element of C
for f being Function holds
( f in the Arrows of b2 . (a,b) iff ( f in Funcs ((b2 -carrier_of a),(b2 -carrier_of b)) & ex fa, fb being Object of C ex g being Morphism of fa,fb st
( fa = a & fb = b & <^fa,fb^> <> {} & ( for o being Object of C st <^o,fa^> <> {} holds
for h being Morphism of o,fa holds f . [h,[o,fa]] = [(g * h),[o,fb]] ) ) ) ) ) holds
b1 = b2
existence
ex b1 being strict concrete category st
( the carrier of b1 = the carrier of C & ( for a being Object of b1
for x being set holds
( x in the_carrier_of a iff ( x in Union (disjoin the Arrows of C) & a = x `22 ) ) ) & ( for a, b being Element of C
for f being Function holds
( f in the Arrows of b1 . (a,b) iff ( f in Funcs ((b1 -carrier_of a),(b1 -carrier_of b)) & ex fa, fb being Object of C ex g being Morphism of fa,fb st
( fa = a & fb = b & <^fa,fb^> <> {} & ( for o being Object of C st <^o,fa^> <> {} holds
for h being Morphism of o,fa holds f . [h,[o,fa]] = [(g * h),[o,fb]] ) ) ) ) ) )
end;
::
deftheorem Def12 defines
Concretized YELLOW18:def 12 :
for C being category
for b2 being strict concrete category holds
( b2 = Concretized C iff ( the carrier of b2 = the carrier of C & ( for a being Object of b2
for x being set holds
( x in the_carrier_of a iff ( x in Union (disjoin the Arrows of C) & a = x `22 ) ) ) & ( for a, b being Element of C
for f being Function holds
( f in the Arrows of b2 . (a,b) iff ( f in Funcs ((b2 -carrier_of a),(b2 -carrier_of b)) & ex fa, fb being Object of C ex g being Morphism of fa,fb st
( fa = a & fb = b & <^fa,fb^> <> {} & ( for o being Object of C st <^o,fa^> <> {} holds
for h being Morphism of o,fa holds f . [h,[o,fa]] = [(g * h),[o,fb]] ) ) ) ) ) ) );
theorem Th44:
for
A being
category for
a,
b being
Object of
A st
<^a,b^> <> {} holds
for
f being
Morphism of
a,
b ex
F being
Function of
((Concretized A) -carrier_of a),
((Concretized A) -carrier_of b) st
(
F in the
Arrows of
(Concretized A) . (
a,
b) & ( for
c being
Object of
A for
g being
Morphism of
c,
a st
<^c,a^> <> {} holds
F . [g,[c,a]] = [(f * g),[c,b]] ) )
definition
let A be
category;
set B =
Concretized A;
uniqueness
for b1, b2 being strict covariant Functor of A, Concretized A st ( for a being Object of A holds b1 . a = a ) & ( for a, b being Object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds (b1 . f) . [(idm a),[a,a]] = [f,[a,b]] ) & ( for a being Object of A holds b2 . a = a ) & ( for a, b being Object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds (b2 . f) . [(idm a),[a,a]] = [f,[a,b]] ) holds
b1 = b2
existence
ex b1 being strict covariant Functor of A, Concretized A st
( ( for a being Object of A holds b1 . a = a ) & ( for a, b being Object of A st <^a,b^> <> {} holds
for f being Morphism of a,b holds (b1 . f) . [(idm a),[a,a]] = [f,[a,b]] ) )
end;