:: FUNCTOR0 semantic presentation
scheme :: FUNCTOR0:sch 1
s1{ F
1()
-> non
empty set , F
2()
-> Function, F
3()
-> Element of F
1(), F
4()
-> Element of F
1(), F
5(
set ,
set )
-> set , P
1[
set ,
set ] } :
F
2()
. F
3(),F
4()
= F
5(F
3(),F
4())
provided
E1:
F
2()
= { [[b1,b2],F5(b1,b2)] where B is Element of F1(), B is Element of F1() : P1[b1,b2] }
and
E2:
P
1[F
3(),F
4()]
theorem Th1: :: FUNCTOR0:1
theorem Th2: :: FUNCTOR0:2
canceled;
theorem Th3: :: FUNCTOR0:3
theorem Th4: :: FUNCTOR0:4
theorem Th5: :: FUNCTOR0:5
theorem Th6: :: FUNCTOR0:6
theorem Th7: :: FUNCTOR0:7
theorem Th8: :: FUNCTOR0:8
theorem Th9: :: FUNCTOR0:9
theorem Th10: :: FUNCTOR0:10
theorem Th11: :: FUNCTOR0:11
theorem Th12: :: FUNCTOR0:12
theorem Th13: :: FUNCTOR0:13
theorem Th14: :: FUNCTOR0:14
theorem Th15: :: FUNCTOR0:15
:: deftheorem Def1 FUNCTOR0:def 1 :
canceled;
:: deftheorem Def2 defines Covariant FUNCTOR0:def 2 :
:: deftheorem Def3 defines Contravariant FUNCTOR0:def 3 :
theorem Th16: :: FUNCTOR0:16
theorem Th17: :: FUNCTOR0:17
:: deftheorem Def4 defines MSUnTrans FUNCTOR0:def 4 :
:: deftheorem Def5 defines MSUnTrans FUNCTOR0:def 5 :
theorem Th18: :: FUNCTOR0:18
definition
let c
1 be
set ;
let c
2 be non
empty set ;
let c
3 be
Function of c
1,c
2;
let c
4 be
ManySortedSet of
[:c1,c1:];
let c
5 be
ManySortedSet of
[:c2,c2:];
let c
6 be
MSUnTrans of
[:c3,c3:],c
4,c
5;
redefine func ~ as
~ c
6 -> MSUnTrans of
[:a3,a3:],
~ a
4,
~ a
5;
coherence
~ c6 is MSUnTrans of [:c3,c3:], ~ c4, ~ c5
end;
theorem Th19: :: FUNCTOR0:19
theorem Th20: :: FUNCTOR0:20
:: deftheorem Def6 defines . FUNCTOR0:def 6 :
:: deftheorem Def7 defines one-to-one FUNCTOR0:def 7 :
:: deftheorem Def8 defines onto FUNCTOR0:def 8 :
:: deftheorem Def9 defines reflexive FUNCTOR0:def 9 :
:: deftheorem Def10 defines coreflexive FUNCTOR0:def 10 :
:: deftheorem Def11 defines reflexive FUNCTOR0:def 11 :
theorem Th21: :: FUNCTOR0:21
:: deftheorem Def12 defines feasible FUNCTOR0:def 12 :
:: deftheorem Def13 defines Covariant FUNCTOR0:def 13 :
:: deftheorem Def14 defines Contravariant FUNCTOR0:def 14 :
:: deftheorem Def15 defines Morph-Map FUNCTOR0:def 15 :
definition
let c
1, c
2 be non
empty AltGraph ;
let c
3 be
Covariant FunctorStr of c
1,c
2;
let c
4, c
5 be
object of c
1;
redefine func Morph-Map as
Morph-Map c
3,c
4,c
5 -> Function of
<^a4,a5^>,
<^(a3 . a4),(a3 . a5)^>;
coherence
Morph-Map c3,c4,c5 is Function of <^c4,c5^>,<^(c3 . c4),(c3 . c5)^>
end;
definition
let c
1, c
2 be non
empty AltGraph ;
let c
3 be
Covariant FunctorStr of c
1,c
2;
let c
4, c
5 be
object of c
1;
assume E32:
(
<^c4,c5^> <> {} &
<^(c3 . c4),(c3 . c5)^> <> {} )
;
let c
6 be
Morphism of c
4,c
5;
func c
3 . c
6 -> Morphism of
(a3 . a4),
(a3 . a5) equals :
Def16:
:: FUNCTOR0:def 16
(Morph-Map a3,a4,a5) . a
6;
coherence
(Morph-Map c3,c4,c5) . c6 is Morphism of (c3 . c4),(c3 . c5)
end;
:: deftheorem Def16 defines . FUNCTOR0:def 16 :
definition
let c
1, c
2 be non
empty AltGraph ;
let c
3 be
Contravariant FunctorStr of c
1,c
2;
let c
4, c
5 be
object of c
1;
redefine func Morph-Map as
Morph-Map c
3,c
4,c
5 -> Function of
<^a4,a5^>,
<^(a3 . a5),(a3 . a4)^>;
coherence
Morph-Map c3,c4,c5 is Function of <^c4,c5^>,<^(c3 . c5),(c3 . c4)^>
end;
definition
let c
1, c
2 be non
empty AltGraph ;
let c
3 be
Contravariant FunctorStr of c
1,c
2;
let c
4, c
5 be
object of c
1;
assume E33:
(
<^c4,c5^> <> {} &
<^(c3 . c5),(c3 . c4)^> <> {} )
;
let c
6 be
Morphism of c
4,c
5;
func c
3 . c
6 -> Morphism of
(a3 . a5),
(a3 . a4) equals :
Def17:
:: FUNCTOR0:def 17
(Morph-Map a3,a4,a5) . a
6;
coherence
(Morph-Map c3,c4,c5) . c6 is Morphism of (c3 . c5),(c3 . c4)
end;
:: deftheorem Def17 defines . FUNCTOR0:def 17 :
definition
let c
1, c
2 be non
empty AltGraph ;
let c
3 be
object of c
2;
assume E34:
<^c3,c3^> <> {}
;
let c
4 be
Morphism of c
3,c
3;
func c
1 --> c
4 -> strict FunctorStr of a
1,a
2 means :
Def18:
:: FUNCTOR0:def 18
( the
ObjectMap of a
5 = [:the carrier of a1,the carrier of a1:] --> [a3,a3] & the
MorphMap of a
5 = { [[b1,b2],(<^b1,b2^> --> a4)] where B is object of a1, B is object of a1 : verum } );
existence
ex b1 being strict FunctorStr of c1,c2 st
( the ObjectMap of b1 = [:the carrier of c1,the carrier of c1:] --> [c3,c3] & the MorphMap of b1 = { [[b2,b3],(<^b2,b3^> --> c4)] where B is object of c1, B is object of c1 : verum } )
uniqueness
for b1, b2 being strict FunctorStr of c1,c2 holds
( the ObjectMap of b1 = [:the carrier of c1,the carrier of c1:] --> [c3,c3] & the MorphMap of b1 = { [[b3,b4],(<^b3,b4^> --> c4)] where B is object of c1, B is object of c1 : verum } & the ObjectMap of b2 = [:the carrier of c1,the carrier of c1:] --> [c3,c3] & the MorphMap of b2 = { [[b3,b4],(<^b3,b4^> --> c4)] where B is object of c1, B is object of c1 : verum } implies b1 = b2 )
;
end;
:: deftheorem Def18 defines --> FUNCTOR0:def 18 :
for b
1, b
2 being non
empty AltGraph for b
3 being
object of b
2 holds
(
<^b3,b3^> <> {} implies for b
4 being
Morphism of b
3,b
3for b
5 being
strict FunctorStr of b
1,b
2 holds
( b
5 = b
1 --> b
4 iff ( the
ObjectMap of b
5 = [:the carrier of b1,the carrier of b1:] --> [b3,b3] & the
MorphMap of b
5 = { [[b6,b7],(<^b6,b7^> --> b4)] where B is object of b1, B is object of b1 : verum } ) ) );
theorem Th22: :: FUNCTOR0:22
theorem Th23: :: FUNCTOR0:23
:: deftheorem Def19 defines feasible FUNCTOR0:def 19 :
theorem Th24: :: FUNCTOR0:24
:: deftheorem Def20 defines feasible FUNCTOR0:def 20 :
:: deftheorem Def21 defines id-preserving FUNCTOR0:def 21 :
theorem Th25: :: FUNCTOR0:25
definition
let c
1, c
2 be non
empty AltCatStr ;
let c
3 be
FunctorStr of c
1,c
2;
attr a
3 is
comp-preserving means :
Def22:
:: FUNCTOR0:def 22
for b
1, b
2, b
3 being
object of a
1 holds
(
<^b1,b2^> <> {} &
<^b2,b3^> <> {} implies for b
4 being
Morphism of b
1,b
2for b
5 being
Morphism of b
2,b
3 holds
ex b
6 being
Morphism of
(a3 . b1),
(a3 . b2)ex b
7 being
Morphism of
(a3 . b2),
(a3 . b3) st
( b
6 = (Morph-Map a3,b1,b2) . b
4 & b
7 = (Morph-Map a3,b2,b3) . b
5 &
(Morph-Map a3,b1,b3) . (b5 * b4) = b
7 * b
6 ) );
end;
:: deftheorem Def22 defines comp-preserving FUNCTOR0:def 22 :
for b
1, b
2 being non
empty AltCatStr for b
3 being
FunctorStr of b
1,b
2 holds
( b
3 is
comp-preserving iff for b
4, b
5, b
6 being
object of b
1 holds
(
<^b4,b5^> <> {} &
<^b5,b6^> <> {} implies for b
7 being
Morphism of b
4,b
5for b
8 being
Morphism of b
5,b
6 holds
ex b
9 being
Morphism of
(b3 . b4),
(b3 . b5)ex b
10 being
Morphism of
(b3 . b5),
(b3 . b6) st
( b
9 = (Morph-Map b3,b4,b5) . b
7 & b
10 = (Morph-Map b3,b5,b6) . b
8 &
(Morph-Map b3,b4,b6) . (b8 * b7) = b
10 * b
9 ) ) );
definition
let c
1, c
2 be non
empty AltCatStr ;
let c
3 be
FunctorStr of c
1,c
2;
attr a
3 is
comp-reversing means :
Def23:
:: FUNCTOR0:def 23
for b
1, b
2, b
3 being
object of a
1 holds
(
<^b1,b2^> <> {} &
<^b2,b3^> <> {} implies for b
4 being
Morphism of b
1,b
2for b
5 being
Morphism of b
2,b
3 holds
ex b
6 being
Morphism of
(a3 . b2),
(a3 . b1)ex b
7 being
Morphism of
(a3 . b3),
(a3 . b2) st
( b
6 = (Morph-Map a3,b1,b2) . b
4 & b
7 = (Morph-Map a3,b2,b3) . b
5 &
(Morph-Map a3,b1,b3) . (b5 * b4) = b
6 * b
7 ) );
end;
:: deftheorem Def23 defines comp-reversing FUNCTOR0:def 23 :
for b
1, b
2 being non
empty AltCatStr for b
3 being
FunctorStr of b
1,b
2 holds
( b
3 is
comp-reversing iff for b
4, b
5, b
6 being
object of b
1 holds
(
<^b4,b5^> <> {} &
<^b5,b6^> <> {} implies for b
7 being
Morphism of b
4,b
5for b
8 being
Morphism of b
5,b
6 holds
ex b
9 being
Morphism of
(b3 . b5),
(b3 . b4)ex b
10 being
Morphism of
(b3 . b6),
(b3 . b5) st
( b
9 = (Morph-Map b3,b4,b5) . b
7 & b
10 = (Morph-Map b3,b5,b6) . b
8 &
(Morph-Map b3,b4,b6) . (b8 * b7) = b
9 * b
10 ) ) );
definition
let c
1 be non
empty transitive AltCatStr ;
let c
2 be non
empty reflexive AltCatStr ;
let c
3 be
feasible Covariant FunctorStr of c
1,c
2;
redefine attr a
3 is
comp-preserving means :: FUNCTOR0:def 24
for b
1, b
2, b
3 being
object of a
1 holds
(
<^b1,b2^> <> {} &
<^b2,b3^> <> {} implies for b
4 being
Morphism of b
1,b
2for b
5 being
Morphism of b
2,b
3 holds a
3 . (b5 * b4) = (a3 . b5) * (a3 . b4) );
compatibility
( c3 is comp-preserving iff for b1, b2, b3 being object of c1 holds
( <^b1,b2^> <> {} & <^b2,b3^> <> {} implies for b4 being Morphism of b1,b2
for b5 being Morphism of b2,b3 holds c3 . (b5 * b4) = (c3 . b5) * (c3 . b4) ) )
end;
:: deftheorem Def24 defines comp-preserving FUNCTOR0:def 24 :
definition
let c
1 be non
empty transitive AltCatStr ;
let c
2 be non
empty reflexive AltCatStr ;
let c
3 be
feasible Contravariant FunctorStr of c
1,c
2;
redefine attr a
3 is
comp-reversing means :: FUNCTOR0:def 25
for b
1, b
2, b
3 being
object of a
1 holds
(
<^b1,b2^> <> {} &
<^b2,b3^> <> {} implies for b
4 being
Morphism of b
1,b
2for b
5 being
Morphism of b
2,b
3 holds a
3 . (b5 * b4) = (a3 . b4) * (a3 . b5) );
compatibility
( c3 is comp-reversing iff for b1, b2, b3 being object of c1 holds
( <^b1,b2^> <> {} & <^b2,b3^> <> {} implies for b4 being Morphism of b1,b2
for b5 being Morphism of b2,b3 holds c3 . (b5 * b4) = (c3 . b4) * (c3 . b5) ) )
end;
:: deftheorem Def25 defines comp-reversing FUNCTOR0:def 25 :
theorem Th26: :: FUNCTOR0:26
theorem Th27: :: FUNCTOR0:27
:: deftheorem Def26 defines Functor FUNCTOR0:def 26 :
:: deftheorem Def27 defines covariant FUNCTOR0:def 27 :
:: deftheorem Def28 defines contravariant FUNCTOR0:def 28 :
:: deftheorem Def29 defines incl FUNCTOR0:def 29 :
:: deftheorem Def30 defines id FUNCTOR0:def 30 :
theorem Th28: :: FUNCTOR0:28
theorem Th29: :: FUNCTOR0:29
:: deftheorem Def31 defines faithful FUNCTOR0:def 31 :
:: deftheorem Def32 defines full FUNCTOR0:def 32 :
:: deftheorem Def33 defines full FUNCTOR0:def 33 :
:: deftheorem Def34 defines injective FUNCTOR0:def 34 :
:: deftheorem Def35 defines surjective FUNCTOR0:def 35 :
:: deftheorem Def36 defines bijective FUNCTOR0:def 36 :
theorem Th30: :: FUNCTOR0:30
theorem Th31: :: FUNCTOR0:31
theorem Th32: :: FUNCTOR0:32
:: deftheorem Def37 defines * FUNCTOR0:def 37 :
theorem Th33: :: FUNCTOR0:33
theorem Th34: :: FUNCTOR0:34
theorem Th35: :: FUNCTOR0:35
:: deftheorem Def38 defines | FUNCTOR0:def 38 :
definition
let c
1, c
2 be non
empty AltGraph ;
let c
3 be
FunctorStr of c
1,c
2;
assume E65:
c
3 is
bijective
;
func c
3 " -> strict FunctorStr of a
2,a
1 means :
Def39:
:: FUNCTOR0:def 39
( the
ObjectMap of a
4 = the
ObjectMap of a
3 " & ex b
1 being
ManySortedFunction of the
Arrows of a
1,the
Arrows of a
2 * the
ObjectMap of a
3 st
( b
1 = the
MorphMap of a
3 & the
MorphMap of a
4 = (b1 "" ) * (the ObjectMap of a3 " ) ) );
existence
ex b1 being strict FunctorStr of c2,c1 st
( the ObjectMap of b1 = the ObjectMap of c3 " & ex b2 being ManySortedFunction of the Arrows of c1,the Arrows of c2 * the ObjectMap of c3 st
( b2 = the MorphMap of c3 & the MorphMap of b1 = (b2 "" ) * (the ObjectMap of c3 " ) ) )
uniqueness
for b1, b2 being strict FunctorStr of c2,c1 holds
( the ObjectMap of b1 = the ObjectMap of c3 " & ex b3 being ManySortedFunction of the Arrows of c1,the Arrows of c2 * the ObjectMap of c3 st
( b3 = the MorphMap of c3 & the MorphMap of b1 = (b3 "" ) * (the ObjectMap of c3 " ) ) & the ObjectMap of b2 = the ObjectMap of c3 " & ex b3 being ManySortedFunction of the Arrows of c1,the Arrows of c2 * the ObjectMap of c3 st
( b3 = the MorphMap of c3 & the MorphMap of b2 = (b3 "" ) * (the ObjectMap of c3 " ) ) implies b1 = b2 )
;
end;
:: deftheorem Def39 defines " FUNCTOR0:def 39 :
theorem Th36: :: FUNCTOR0:36
theorem Th37: :: FUNCTOR0:37
theorem Th38: :: FUNCTOR0:38
theorem Th39: :: FUNCTOR0:39
theorem Th40: :: FUNCTOR0:40
theorem Th41: :: FUNCTOR0:41
theorem Th42: :: FUNCTOR0:42
theorem Th43: :: FUNCTOR0:43
theorem Th44: :: FUNCTOR0:44
theorem Th45: :: FUNCTOR0:45
theorem Th46: :: FUNCTOR0:46
theorem Th47: :: FUNCTOR0:47
theorem Th48: :: FUNCTOR0:48
theorem Th49: :: FUNCTOR0:49
theorem Th50: :: FUNCTOR0:50
definition
let c
1, c
2 be non
empty transitive with_units AltCatStr ;
pred c
1,c
2 are_isomorphic means :: FUNCTOR0:def 40
ex b
1 being
Functor of a
1,a
2 st
( b
1 is
bijective & b
1 is
covariant );
reflexivity
for b1 being non empty transitive with_units AltCatStr holds
ex b2 being Functor of b1,b1 st
( b2 is bijective & b2 is covariant )
symmetry
for b1, b2 being non empty transitive with_units AltCatStr holds
not ( ex b3 being Functor of b1,b2 st
( b3 is bijective & b3 is covariant ) & ( for b3 being Functor of b2,b1 holds
not ( b3 is bijective & b3 is covariant ) ) )
pred c
1,c
2 are_anti-isomorphic means :: FUNCTOR0:def 41
ex b
1 being
Functor of a
1,a
2 st
( b
1 is
bijective & b
1 is
contravariant );
symmetry
for b1, b2 being non empty transitive with_units AltCatStr holds
not ( ex b3 being Functor of b1,b2 st
( b3 is bijective & b3 is contravariant ) & ( for b3 being Functor of b2,b1 holds
not ( b3 is bijective & b3 is contravariant ) ) )
end;
:: deftheorem Def40 defines are_isomorphic FUNCTOR0:def 40 :
:: deftheorem Def41 defines are_anti-isomorphic FUNCTOR0:def 41 :