:: FUNCTOR0 semantic presentation
scheme :: FUNCTOR0:sch 1
s1{
F1()
-> non
empty set ,
F2()
-> Function,
F3()
-> Element of
F1(),
F4()
-> Element of
F1(),
F5(
set ,
set )
-> set ,
P1[
set ,
set ] } :
F2()
. F3(),
F4()
= F5(
F3(),
F4())
provided
E1:
F2()
= { [[b1,b2],F5(b1,b2)] where B is Element of F1(), B is Element of F1() : P1[b1,b2] }
and E2:
P1[
F3(),
F4()]
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 c1 be
set ;
let c2 be non
empty set ;
let c3 be
Function of
c1,
c2;
let c4 be
ManySortedSet of
[:c1,c1:];
let c5 be
ManySortedSet of
[:c2,c2:];
let c6 be
MSUnTrans of
[:c3,c3:],
c4,
c5;
redefine func ~ as
~ c6 -> MSUnTrans of
[:a3,a3:],
~ a4,
~ a5;
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 c1,
c2 be non
empty AltGraph ;
let c3 be
Covariant FunctorStr of
c1,
c2;
let c4,
c5 be
object of
c1;
redefine func Morph-Map as
Morph-Map c3,
c4,
c5 -> 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 c1,
c2 be non
empty AltGraph ;
let c3 be
Covariant FunctorStr of
c1,
c2;
let c4,
c5 be
object of
c1;
assume E32:
(
<^c4,c5^> <> {} &
<^(c3 . c4),(c3 . c5)^> <> {} )
;
let c6 be
Morphism of
c4,
c5;
func c3 . c6 -> Morphism of
(a3 . a4),
(a3 . a5) equals :
Def16:
:: FUNCTOR0:def 16
(Morph-Map a3,a4,a5) . a6;
coherence
(Morph-Map c3,c4,c5) . c6 is Morphism of (c3 . c4),(c3 . c5)
end;
:: deftheorem Def16 defines . FUNCTOR0:def 16 :
definition
let c1,
c2 be non
empty AltGraph ;
let c3 be
Contravariant FunctorStr of
c1,
c2;
let c4,
c5 be
object of
c1;
redefine func Morph-Map as
Morph-Map c3,
c4,
c5 -> 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 c1,
c2 be non
empty AltGraph ;
let c3 be
Contravariant FunctorStr of
c1,
c2;
let c4,
c5 be
object of
c1;
assume E33:
(
<^c4,c5^> <> {} &
<^(c3 . c5),(c3 . c4)^> <> {} )
;
let c6 be
Morphism of
c4,
c5;
func c3 . c6 -> Morphism of
(a3 . a5),
(a3 . a4) equals :
Def17:
:: FUNCTOR0:def 17
(Morph-Map a3,a4,a5) . a6;
coherence
(Morph-Map c3,c4,c5) . c6 is Morphism of (c3 . c5),(c3 . c4)
end;
:: deftheorem Def17 defines . FUNCTOR0:def 17 :
definition
let c1,
c2 be non
empty AltGraph ;
let c3 be
object of
c2;
assume E34:
<^c3,c3^> <> {}
;
let c4 be
Morphism of
c3,
c3;
func c1 --> c4 -> strict FunctorStr of
a1,
a2 means :
Def18:
:: FUNCTOR0:def 18
( the
ObjectMap of
a5 = [:the carrier of a1,the carrier of a1:] --> [a3,a3] & the
MorphMap of
a5 = { [[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 st 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 } holds
b1 = b2
;
end;
:: deftheorem Def18 defines --> FUNCTOR0:def 18 :
for
b1,
b2 being non
empty AltGraph for
b3 being
object of
b2 st
<^b3,b3^> <> {} holds
for
b4 being
Morphism of
b3,
b3 for
b5 being
strict FunctorStr of
b1,
b2 holds
(
b5 = b1 --> b4 iff ( the
ObjectMap of
b5 = [:the carrier of b1,the carrier of b1:] --> [b3,b3] & the
MorphMap of
b5 = { [[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 c1,
c2 be non
empty AltCatStr ;
let c3 be
FunctorStr of
c1,
c2;
attr a3 is
comp-preserving means :
Def22:
:: FUNCTOR0:def 22
for
b1,
b2,
b3 being
object of
a1 st
<^b1,b2^> <> {} &
<^b2,b3^> <> {} holds
for
b4 being
Morphism of
b1,
b2 for
b5 being
Morphism of
b2,
b3 ex
b6 being
Morphism of
(a3 . b1),
(a3 . b2)ex
b7 being
Morphism of
(a3 . b2),
(a3 . b3) st
(
b6 = (Morph-Map a3,b1,b2) . b4 &
b7 = (Morph-Map a3,b2,b3) . b5 &
(Morph-Map a3,b1,b3) . (b5 * b4) = b7 * b6 );
end;
:: deftheorem Def22 defines comp-preserving FUNCTOR0:def 22 :
for
b1,
b2 being non
empty AltCatStr for
b3 being
FunctorStr of
b1,
b2 holds
(
b3 is
comp-preserving iff for
b4,
b5,
b6 being
object of
b1 st
<^b4,b5^> <> {} &
<^b5,b6^> <> {} holds
for
b7 being
Morphism of
b4,
b5 for
b8 being
Morphism of
b5,
b6 ex
b9 being
Morphism of
(b3 . b4),
(b3 . b5)ex
b10 being
Morphism of
(b3 . b5),
(b3 . b6) st
(
b9 = (Morph-Map b3,b4,b5) . b7 &
b10 = (Morph-Map b3,b5,b6) . b8 &
(Morph-Map b3,b4,b6) . (b8 * b7) = b10 * b9 ) );
definition
let c1,
c2 be non
empty AltCatStr ;
let c3 be
FunctorStr of
c1,
c2;
attr a3 is
comp-reversing means :
Def23:
:: FUNCTOR0:def 23
for
b1,
b2,
b3 being
object of
a1 st
<^b1,b2^> <> {} &
<^b2,b3^> <> {} holds
for
b4 being
Morphism of
b1,
b2 for
b5 being
Morphism of
b2,
b3 ex
b6 being
Morphism of
(a3 . b2),
(a3 . b1)ex
b7 being
Morphism of
(a3 . b3),
(a3 . b2) st
(
b6 = (Morph-Map a3,b1,b2) . b4 &
b7 = (Morph-Map a3,b2,b3) . b5 &
(Morph-Map a3,b1,b3) . (b5 * b4) = b6 * b7 );
end;
:: deftheorem Def23 defines comp-reversing FUNCTOR0:def 23 :
for
b1,
b2 being non
empty AltCatStr for
b3 being
FunctorStr of
b1,
b2 holds
(
b3 is
comp-reversing iff for
b4,
b5,
b6 being
object of
b1 st
<^b4,b5^> <> {} &
<^b5,b6^> <> {} holds
for
b7 being
Morphism of
b4,
b5 for
b8 being
Morphism of
b5,
b6 ex
b9 being
Morphism of
(b3 . b5),
(b3 . b4)ex
b10 being
Morphism of
(b3 . b6),
(b3 . b5) st
(
b9 = (Morph-Map b3,b4,b5) . b7 &
b10 = (Morph-Map b3,b5,b6) . b8 &
(Morph-Map b3,b4,b6) . (b8 * b7) = b9 * b10 ) );
definition
let c1 be non
empty transitive AltCatStr ;
let c2 be non
empty reflexive AltCatStr ;
let c3 be
feasible Covariant FunctorStr of
c1,
c2;
redefine attr a3 is
comp-preserving means :: FUNCTOR0:def 24
for
b1,
b2,
b3 being
object of
a1 st
<^b1,b2^> <> {} &
<^b2,b3^> <> {} holds
for
b4 being
Morphism of
b1,
b2 for
b5 being
Morphism of
b2,
b3 holds
a3 . (b5 * b4) = (a3 . b5) * (a3 . b4);
compatibility
( c3 is comp-preserving iff 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 holds c3 . (b5 * b4) = (c3 . b5) * (c3 . b4) )
end;
:: deftheorem Def24 defines comp-preserving FUNCTOR0:def 24 :
definition
let c1 be non
empty transitive AltCatStr ;
let c2 be non
empty reflexive AltCatStr ;
let c3 be
feasible Contravariant FunctorStr of
c1,
c2;
redefine attr a3 is
comp-reversing means :: FUNCTOR0:def 25
for
b1,
b2,
b3 being
object of
a1 st
<^b1,b2^> <> {} &
<^b2,b3^> <> {} holds
for
b4 being
Morphism of
b1,
b2 for
b5 being
Morphism of
b2,
b3 holds
a3 . (b5 * b4) = (a3 . b4) * (a3 . b5);
compatibility
( c3 is comp-reversing iff 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 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 c1,
c2 be non
empty AltGraph ;
let c3 be
FunctorStr of
c1,
c2;
assume E65:
c3 is
bijective
;
func c3 " -> strict FunctorStr of
a2,
a1 means :
Def39:
:: FUNCTOR0:def 39
( the
ObjectMap of
a4 = the
ObjectMap of
a3 " & ex
b1 being
ManySortedFunction of the
Arrows of
a1,the
Arrows of
a2 * the
ObjectMap of
a3 st
(
b1 = the
MorphMap of
a3 & the
MorphMap of
a4 = (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 st 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 " ) ) holds
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 c1,
c2 be non
empty transitive with_units AltCatStr ;
pred c1,
c2 are_isomorphic means :: FUNCTOR0:def 40
ex
b1 being
Functor of
a1,
a2 st
(
b1 is
bijective &
b1 is
covariant );
reflexivity
for b1 being non empty transitive with_units AltCatStr 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 st ex b3 being Functor of b1,b2 st
( b3 is bijective & b3 is covariant ) holds
ex b3 being Functor of b2,b1 st
( b3 is bijective & b3 is covariant )
pred c1,
c2 are_anti-isomorphic means :: FUNCTOR0:def 41
ex
b1 being
Functor of
a1,
a2 st
(
b1 is
bijective &
b1 is
contravariant );
symmetry
for b1, b2 being non empty transitive with_units AltCatStr st ex b3 being Functor of b1,b2 st
( b3 is bijective & b3 is contravariant ) holds
ex b3 being Functor of b2,b1 st
( b3 is bijective & b3 is contravariant )
end;
:: deftheorem Def40 defines are_isomorphic FUNCTOR0:def 40 :
:: deftheorem Def41 defines are_anti-isomorphic FUNCTOR0:def 41 :