-
Notifications
You must be signed in to change notification settings - Fork 0
/
Construcciones2.agda
123 lines (83 loc) · 3.5 KB
/
Construcciones2.agda
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
open import Categories
module Construcciones2 where
open import Library hiding (_×_ ; swap; _+_)
open import Categories.Products
open import Categories.Terminal
open import Categories.Iso
open import Categories.Initial
open import Categories.Coproducts
open import Construcciones
--------------------------------------------------
module SetsStructure {l : Level} where
open import Categories.Sets
{- Probar que la categoría Sets tiene objeto inicial y coproductos -}
ZeroSet : Initial Sets ⊥
ZeroSet = {!!}
SetsHasCoproducts : ∀{l} → Coproducts (Sets {l})
SetsHasCoproducts = {!!}
--------------------------------------------------
module InitialIso {a}{b}(C : Cat {a}{b}) where
open Cat C
open Initial
{- el morfismo universal del objeto inicial a sí mismo es la identidad -}
init-iden : (I : Obj){init : Initial C I}
→ i init {I} ≅ iden {I}
init-iden I = {!!}
--------------------------------------------------
{- Probar que un objeto terminal es inicial en la categoría dual y viceversa -}
TerminalInitialDuality : {X : Obj} → Terminal C X → Initial (C Op) X
TerminalInitialDuality = {!!}
InitialTerminalDuality : {X : Obj} → Initial C X → Terminal (C Op) X
InitialTerminalDuality = {!!}
--------------------------------------------------
open TerminalIso
{- Probar que dos objetos iniciales son necesariamente isomorfos *usando dualidad* -}
InitialIso : (I I' : Obj)
→ (p : Initial C I)
→ (q : Initial C I')
→ Iso C (i p {I'})
InitialIso I I' p q = {!!}
--------------------------------------------------------
-- Probar que los coproductos son productos en la categoría dual
ProductCoproductDuality : ∀{a}{b}{C : Cat {a}{b}}
→ Products C
→ Coproducts (C Op)
ProductCoproductDuality = {!!}
CoproductProductDuality : ∀{a}{b}{C : Cat {a}{b}}
→ Coproducts C
→ Products (C Op)
CoproductProductDuality = {!!}
--------------------------------------------------
module CoproductIso {a}{b}(C : Cat {a}{b}) where
open Coproducts
open Cat C
open ProductIso (C Op) renaming (ProductIso to piso)
{- Probar que los coproductos son únicos hasta un isomorfismo *usando dualidad* -}
CoproductIso : ∀{A B}(X Y : Coproducts C) → Iso C ([_,_] X {A} {B} (inl Y) (inr Y))
CoproductIso X Y = {!!}
--------------------------------------------------
module CoproductMorphisms {a}{b}{C : Cat {a}{b}}{cp : Coproducts C} where
open Cat C
open Coproducts cp
{- Definir el siguiente morfismo -}
plus : ∀{A B C D}(f : Hom A B)(g : Hom C D) → Hom (A + C) (B + D)
plus f g = {!!}
{- Probar las siguentes propiedades -}
idplus : ∀{A B} → plus (iden {A}) (iden {B}) ≅ iden {A + B}
idplus = {!!}
idcomp : ∀{A B C D E F}
→ (f : Hom B C)(g : Hom A B)
→ (h : Hom E F)(i : Hom D E)
→ plus (f ∙ g) (h ∙ i) ≅ plus f h ∙ plus g i
idcomp f g h i = {!!}
{- Probar que _+_ junto con plus definen unFunctor C ×C C → C -}
module Intercambio {a}{b}{C : Cat {a}{b}}{cp : Coproducts C}{p : Products C} where
open Cat C
open Coproducts cp
open Products p renaming (law1 to lawp1 ; law2 to lawp2 ; law3 to lawp3)
{- intercambio entre poducto y coproducto -}
intercambio : ∀{A B C D}
→ (f : Hom A C)(g : Hom B C)
→ (h : Hom A D)(k : Hom B D)
→ ⟨ [ f , g ] , [ h , k ] ⟩ ≅ [ ⟨ f , h ⟩ , ⟨ g , k ⟩ ]
intercambio f g h i = {!!}