Mercurial > hg > Members > kono > Proof > category
annotate universal-mapping.agda @ 177:63f6157a6a19
comment
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Sun, 25 Aug 2013 11:10:35 +0900 |
parents | ae1a4f7e5203 |
children | d6a6dd305da2 |
rev | line source |
---|---|
31 | 1 module universal-mapping where |
2 | |
56 | 3 -- Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
4 | |
31 | 5 open import Category -- https://github.com/konn/category-agda |
6 open import Level | |
56 | 7 open import HomReasoning |
159 | 8 open import cat-utility |
9 open import Category.Cat | |
31 | 10 |
11 open Functor | |
32 | 12 open NTrans |
13 | |
43 | 14 -- |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
15 -- Adjunction yields solution of universal mapping |
43 | 16 -- |
17 -- | |
18 | |
34 | 19 open Adjunction |
20 open UniversalMapping | |
35 | 21 |
56 | 22 Adj2UM : {c₁ c₂ ℓ c₁' c₂' ℓ' : Level} (A : Category c₁ c₂ ℓ) (B : Category c₁' c₂' ℓ') |
54 | 23 { U : Functor B A } |
24 { F : Functor A B } | |
25 { η : NTrans A A identityFunctor ( U ○ F ) } | |
56 | 26 { ε : NTrans B B ( F ○ U ) identityFunctor } → |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
27 Adjunction A B U F η ε → UniversalMapping A B U (FObj F) (TMap η) |
56 | 28 Adj2UM A B {U} {F} {η} {ε} adj = record { |
43 | 29 _* = solution ; |
36 | 30 isUniversalMapping = record { |
43 | 31 universalMapping = universalMapping; |
172 | 32 uniquness = uniqueness |
36 | 33 } |
34 } where | |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
35 solution : { a : Obj A} { b : Obj B} → ( f : Hom A a (FObj U b) ) → Hom B (FObj F a ) b |
43 | 36 solution {_} {b} f = B [ TMap ε b o FMap F f ] |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
37 universalMapping : {a' : Obj A} { b' : Obj B } → { f : Hom A a' (FObj U b') } → |
43 | 38 A [ A [ FMap U ( solution f) o TMap η a' ] ≈ f ] |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
39 universalMapping {a} {b} {f} = |
38 | 40 let open ≈-Reasoning (A) in |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
41 begin |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
42 FMap U ( solution f) o TMap η a |
39 | 43 ≈⟨⟩ |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
44 FMap U ( B [ TMap ε b o FMap F f ] ) o TMap η a |
66 | 45 ≈⟨ car (distr U ) ⟩ |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
46 ( (FMap U (TMap ε b)) o (FMap U ( FMap F f )) ) o TMap η a |
40
c34b1cfe9fdc
Adjunction to Universal Mapping end
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
39
diff
changeset
|
47 ≈⟨ sym assoc ⟩ |
c34b1cfe9fdc
Adjunction to Universal Mapping end
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
39
diff
changeset
|
48 (FMap U (TMap ε b)) o ((FMap U ( FMap F f )) o TMap η a ) |
66 | 49 ≈⟨ cdr (nat η) ⟩ |
40
c34b1cfe9fdc
Adjunction to Universal Mapping end
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
39
diff
changeset
|
50 (FMap U (TMap ε b)) o ((TMap η (FObj U b )) o f ) |
c34b1cfe9fdc
Adjunction to Universal Mapping end
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
39
diff
changeset
|
51 ≈⟨ assoc ⟩ |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
52 ((FMap U (TMap ε b)) o (TMap η (FObj U b))) o f |
40
c34b1cfe9fdc
Adjunction to Universal Mapping end
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
39
diff
changeset
|
53 ≈⟨ car ( IsAdjunction.adjoint1 ( isAdjunction adj)) ⟩ |
c34b1cfe9fdc
Adjunction to Universal Mapping end
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
39
diff
changeset
|
54 id (FObj U b) o f |
c34b1cfe9fdc
Adjunction to Universal Mapping end
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
39
diff
changeset
|
55 ≈⟨ idL ⟩ |
38 | 56 f |
57 ∎ | |
56 | 58 lemma1 : (a : Obj A) ( b : Obj B ) ( f : Hom A a (FObj U b) ) → ( g : Hom B (FObj F a) b) → |
59 A [ A [ FMap U g o TMap η a ] ≈ f ] → | |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
60 B [ (FMap F (A [ FMap U g o TMap η a ] )) ≈ FMap F f ] |
44 | 61 lemma1 a b f g k = IsFunctor.≈-cong (isFunctor F) k |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
62 uniqueness : {a' : Obj A} { b' : Obj B } → { f : Hom A a' (FObj U b') } → { g : Hom B (FObj F a') b'} → |
56 | 63 A [ A [ FMap U g o TMap η a' ] ≈ f ] → B [ solution f ≈ g ] |
172 | 64 uniqueness {a} {b} {f} {g} k = let open ≈-Reasoning (B) in |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
65 begin |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
66 solution f |
44 | 67 ≈⟨⟩ |
68 TMap ε b o FMap F f | |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
69 ≈⟨ cdr (sym ( lemma1 a b f g k )) ⟩ |
44 | 70 TMap ε b o FMap F ( A [ FMap U g o TMap η a ] ) |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
71 ≈⟨ cdr (distr F ) ⟩ |
45
659b8a21caf7
uniq-univeralMapping from Adjunction
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
44
diff
changeset
|
72 TMap ε b o ( FMap F ( FMap U g) o FMap F ( TMap η a ) ) |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
73 ≈⟨ assoc ⟩ |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
74 ( TMap ε b o FMap F ( FMap U g) ) o FMap F ( TMap η a ) |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
75 ≈⟨ sym ( car ( nat ε )) ⟩ |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
76 ( g o TMap ε ( FObj F a) ) o FMap F ( TMap η a ) |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
77 ≈⟨ sym assoc ⟩ |
45
659b8a21caf7
uniq-univeralMapping from Adjunction
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
44
diff
changeset
|
78 g o ( TMap ε ( FObj F a) o FMap F ( TMap η a ) ) |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
79 ≈⟨ cdr ( IsAdjunction.adjoint2 ( isAdjunction adj )) ⟩ |
45
659b8a21caf7
uniq-univeralMapping from Adjunction
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
44
diff
changeset
|
80 g o id (FObj F a) |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
81 ≈⟨ idR ⟩ |
44 | 82 g |
83 ∎ | |
84 | |
43 | 85 -- |
86 -- | |
87 -- Universal mapping yields Adjunction | |
88 -- | |
89 -- | |
90 | |
91 | |
92 -- | |
93 -- F is an functor | |
94 -- | |
95 | |
54 | 96 FunctorF : {c₁ c₂ ℓ c₁' c₂' ℓ' : Level} (A : Category c₁ c₂ ℓ) (B : Category c₁' c₂' ℓ') |
97 { U : Functor B A } | |
56 | 98 { F : Obj A → Obj B } |
99 { η : (a : Obj A) → Hom A a ( FObj U (F a) ) } → | |
100 UniversalMapping A B U F η → Functor A B | |
54 | 101 FunctorF A B {U} {F} {η} um = record { |
41 | 102 FObj = F; |
42 | 103 FMap = myFMap ; |
104 isFunctor = myIsFunctor | |
41 | 105 } where |
56 | 106 myFMap : {a b : Obj A} → Hom A a b → Hom B (F a) (F b) |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
107 myFMap f = (_* um) (A [ η (Category.cod A f ) o f ]) |
56 | 108 lemma-id1 : {a : Obj A} → A [ A [ FMap U (id1 B (F a)) o η a ] ≈ (A [ (η a) o (id1 A a) ]) ] |
46 | 109 lemma-id1 {a} = let open ≈-Reasoning (A) in |
42 | 110 begin |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
111 FMap U (id1 B (F a)) o η a |
42 | 112 ≈⟨ ( car ( IsFunctor.identity ( isFunctor U ))) ⟩ |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
113 id (FObj U ( F a )) o η a |
42 | 114 ≈⟨ idL ⟩ |
115 η a | |
116 ≈⟨ sym idR ⟩ | |
46 | 117 η a o id a |
42 | 118 ∎ |
46 | 119 lemma-id : {a : Obj A} → B [ ( (_* um) (A [ (η a) o (id1 A a)] )) ≈ (id1 B (F a)) ] |
52 | 120 lemma-id {a} = ( IsUniversalMapping.uniquness ( isUniversalMapping um ) ) lemma-id1 |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
121 lemma-cong2 : (a b : Obj A) (f g : Hom A a b) → A [ f ≈ g ] → |
46 | 122 A [ A [ FMap U ((_* um) (A [ η b o g ]) ) o η a ] ≈ A [ η b o f ] ] |
123 lemma-cong2 a b f g eq = let open ≈-Reasoning (A) in | |
124 begin | |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
125 ( FMap U ((_* um) (A [ η b o g ]) )) o η a |
51 | 126 ≈⟨ ( IsUniversalMapping.universalMapping ( isUniversalMapping um )) ⟩ |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
127 η b o g |
46 | 128 ≈⟨ ( IsCategory.o-resp-≈ ( Category.isCategory A ) (sym eq) (refl-hom) ) ⟩ |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
129 η b o f |
46 | 130 ∎ |
131 lemma-cong1 : (a b : Obj A) (f g : Hom A a b) → A [ f ≈ g ] → B [ (_* um) (A [ η b o f ] ) ≈ (_* um) (A [ η b o g ]) ] | |
52 | 132 lemma-cong1 a b f g eq = ( IsUniversalMapping.uniquness ( isUniversalMapping um ) ) ( lemma-cong2 a b f g eq ) |
46 | 133 lemma-cong : {a b : Obj A} {f g : Hom A a b} → A [ f ≈ g ] → B [ myFMap f ≈ myFMap g ] |
134 lemma-cong {a} {b} {f} {g} eq = lemma-cong1 a b f g eq | |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
135 lemma-distr2 : (a b c : Obj A) (f : Hom A a b) (g : Hom A b c) → |
47 | 136 A [ A [ FMap U (B [(_* um) (A [ η c o g ]) o (_* um)( A [ η b o f ]) ]) o η a ] ≈ (A [ η c o A [ g o f ] ]) ] |
137 lemma-distr2 a b c f g = let open ≈-Reasoning (A) in | |
138 begin | |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
139 ( FMap U (B [(_* um) (A [ η c o g ]) o (_* um)( A [ η b o f ]) ] ) ) o η a |
66 | 140 ≈⟨ car (distr U ) ⟩ |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
141 (( FMap U ((_* um) (A [ η c o g ])) o ( FMap U ((_* um)( A [ η b o f ])))) ) o η a |
47 | 142 ≈⟨ sym assoc ⟩ |
143 ( FMap U ((_* um) (A [ η c o g ])) o (( FMap U ((_* um)( A [ η b o f ])))) o η a ) | |
51 | 144 ≈⟨ cdr ( IsUniversalMapping.universalMapping ( isUniversalMapping um )) ⟩ |
47 | 145 ( FMap U ((_* um) (A [ η c o g ])) o ( η b o f) ) |
146 ≈⟨ assoc ⟩ | |
147 ( FMap U ((_* um) (A [ η c o g ])) o η b) o f | |
51 | 148 ≈⟨ car ( IsUniversalMapping.universalMapping ( isUniversalMapping um )) ⟩ |
47 | 149 ( η c o g ) o f |
150 ≈⟨ sym assoc ⟩ | |
151 η c o ( g o f ) | |
152 ∎ | |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
153 lemma-distr1 : (a b c : Obj A) (f : Hom A a b) (g : Hom A b c) → |
47 | 154 B [ (_* um) (A [ η c o A [ g o f ] ]) ≈ (B [(_* um) (A [ η c o g ]) o (_* um)( A [ η b o f ]) ] )] |
52 | 155 lemma-distr1 a b c f g = ( IsUniversalMapping.uniquness ( isUniversalMapping um )) (lemma-distr2 a b c f g ) |
47 | 156 lemma-distr : {a b c : Obj A} {f : Hom A a b} {g : Hom A b c} → B [ myFMap (A [ g o f ]) ≈ (B [ myFMap g o myFMap f ] )] |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
157 lemma-distr {a} {b} {c} {f} {g} = lemma-distr1 a b c f g |
42 | 158 myIsFunctor : IsFunctor A B F myFMap |
159 myIsFunctor = | |
46 | 160 record { ≈-cong = lemma-cong |
42 | 161 ; identity = lemma-id |
47 | 162 ; distr = lemma-distr |
42 | 163 } |
41 | 164 |
48 | 165 -- |
166 -- naturality of η | |
167 -- | |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
168 nat-η : {c₁ c₂ ℓ c₁' c₂' ℓ' : Level} (A : Category c₁ c₂ ℓ) (B : Category c₁' c₂' ℓ') |
54 | 169 { U : Functor B A } |
56 | 170 { F : Obj A → Obj B } |
171 { η : (a : Obj A) → Hom A a ( FObj U (F a) ) } → | |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
172 (um : UniversalMapping A B U F η ) → |
54 | 173 NTrans A A identityFunctor ( U ○ FunctorF A B um ) |
174 nat-η A B {U} {F} {η} um = record { | |
48 | 175 TMap = η ; isNTrans = myIsNTrans |
176 } where | |
177 F' : Functor A B | |
54 | 178 F' = FunctorF A B um |
130 | 179 commute : {a b : Obj A} {f : Hom A a b} |
48 | 180 → A [ A [ (FMap U (FMap F' f)) o ( η a ) ] ≈ A [ (η b ) o f ] ] |
130 | 181 commute {a} {b} {f} = let open ≈-Reasoning (A) in |
49 | 182 begin |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
183 (FMap U (FMap F' f)) o ( η a ) |
49 | 184 ≈⟨⟩ |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
185 (FMap U ((_* um) (A [ η b o f ]))) o ( η a ) |
51 | 186 ≈⟨ (IsUniversalMapping.universalMapping ( isUniversalMapping um )) ⟩ |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
187 (η b ) o f |
49 | 188 ∎ |
48 | 189 myIsNTrans : IsNTrans A A identityFunctor ( U ○ F' ) η |
130 | 190 myIsNTrans = record { commute = commute } |
49 | 191 |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
192 nat-ε : {c₁ c₂ ℓ c₁' c₂' ℓ' : Level} (A : Category c₁ c₂ ℓ) (B : Category c₁' c₂' ℓ') |
54 | 193 { U : Functor B A } |
56 | 194 { F : Obj A → Obj B } |
195 { η : (a : Obj A) → Hom A a ( FObj U (F a) ) } → | |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
196 (um : UniversalMapping A B U F η ) → |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
197 NTrans B B ( FunctorF A B um ○ U) identityFunctor |
54 | 198 nat-ε A B {U} {F} {η} um = record { |
49 | 199 TMap = ε ; isNTrans = myIsNTrans |
200 } where | |
201 F' : Functor A B | |
54 | 202 F' = FunctorF A B um |
56 | 203 ε : ( b : Obj B ) → Hom B ( FObj F' ( FObj U b) ) b |
49 | 204 ε b = (_* um) ( id1 A (FObj U b)) |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
205 lemma-nat1 : (a b : Obj B) (f : Hom B a b ) → |
51 | 206 A [ A [ FMap U ( B [ (um *) (id1 A (FObj U b)) o ((um *) (A [ η (FObj U b) o FMap U f ])) ] ) o η (FObj U a) ] |
207 ≈ A [ FMap U f o id1 A (FObj U a) ] ] | |
208 lemma-nat1 a b f = let open ≈-Reasoning (A) in | |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
209 begin |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
210 FMap U ( B [ (um *) (id1 A (FObj U b)) o ((um *) ( η (FObj U b) o FMap U f )) ] ) o η (FObj U a) |
66 | 211 ≈⟨ car ( distr U ) ⟩ |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
212 ( FMap U ((um *) (id1 A (FObj U b))) o FMap U ((um *) ( η (FObj U b) o FMap U f )) ) o η (FObj U a) |
51 | 213 ≈⟨ sym assoc ⟩ |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
214 FMap U ((um *) (id1 A (FObj U b))) o ( FMap U ((um *) ( η (FObj U b) o FMap U f ))) o η (FObj U a) |
51 | 215 ≈⟨ cdr ((IsUniversalMapping.universalMapping ( isUniversalMapping um )) ) ⟩ |
216 FMap U ((um *) (id1 A (FObj U b))) o ( η (FObj U b) o FMap U f ) | |
217 ≈⟨ assoc ⟩ | |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
218 (FMap U ((um *) (id1 A (FObj U b))) o η (FObj U b)) o FMap U f |
51 | 219 ≈⟨ car ((IsUniversalMapping.universalMapping ( isUniversalMapping um )) ) ⟩ |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
220 id1 A (FObj U b) o FMap U f |
51 | 221 ≈⟨ idL ⟩ |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
222 FMap U f |
51 | 223 ≈⟨ sym idR ⟩ |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
224 FMap U f o id (FObj U a) |
51 | 225 ∎ |
56 | 226 lemma-nat2 : (a b : Obj B) (f : Hom B a b ) → A [ A [ FMap U ( B [ f o ((um *) (id1 A (FObj U a ))) ] ) o η (FObj U a) ] |
52 | 227 ≈ A [ FMap U f o id1 A (FObj U a) ] ] |
228 lemma-nat2 a b f = let open ≈-Reasoning (A) in | |
229 begin | |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
230 FMap U ( B [ f o ((um *) (id1 A (FObj U a ))) ]) o η (FObj U a) |
66 | 231 ≈⟨ car ( distr U ) ⟩ |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
232 (FMap U f o FMap U ((um *) (id1 A (FObj U a )))) o η (FObj U a) |
52 | 233 ≈⟨ sym assoc ⟩ |
234 FMap U f o ( FMap U ((um *) (id1 A (FObj U a ))) o η (FObj U a) ) | |
235 ≈⟨ cdr ( IsUniversalMapping.universalMapping ( isUniversalMapping um)) ⟩ | |
236 FMap U f o id (FObj U a ) | |
237 ∎ | |
130 | 238 commute : {a b : Obj B} {f : Hom B a b } |
49 | 239 → B [ B [ f o (ε a) ] ≈ B [(ε b) o (FMap F' (FMap U f)) ] ] |
130 | 240 commute {a} {b} {f} = let open ≈-Reasoning (B) in |
49 | 241 sym ( begin |
242 ε b o (FMap F' (FMap U f)) | |
243 ≈⟨⟩ | |
50 | 244 ε b o ((_* um) (A [ η (FObj U b) o (FMap U f) ])) |
245 ≈⟨⟩ | |
246 ((_* um) ( id1 A (FObj U b))) o ((_* um) (A [ η (FObj U b) o (FMap U f) ])) | |
52 | 247 ≈⟨ sym ( ( IsUniversalMapping.uniquness ( isUniversalMapping um ) (lemma-nat1 a b f))) ⟩ |
51 | 248 (_* um) ( A [ FMap U f o id1 A (FObj U a) ] ) |
52 | 249 ≈⟨ (IsUniversalMapping.uniquness ( isUniversalMapping um ) (lemma-nat2 a b f)) ⟩ |
50 | 250 f o ((_* um) ( id1 A (FObj U a))) |
251 ≈⟨⟩ | |
49 | 252 f o (ε a) |
253 ∎ ) | |
254 myIsNTrans : IsNTrans B B ( F' ○ U ) identityFunctor ε | |
130 | 255 myIsNTrans = record { commute = commute } |
53 | 256 |
257 ------ | |
258 -- | |
259 -- Adjunction Construction from Universal Mapping | |
260 -- | |
261 ----- | |
262 | |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
263 UMAdjunction : {c₁ c₂ ℓ c₁' c₂' ℓ' : Level} (A : Category c₁ c₂ ℓ) (B : Category c₁' c₂' ℓ') |
53 | 264 ( U : Functor B A ) |
56 | 265 ( F' : Obj A → Obj B ) |
266 ( η' : (a : Obj A) → Hom A a ( FObj U (F' a) ) ) → | |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
267 (um : UniversalMapping A B U F' η' ) → |
54 | 268 Adjunction A B U (FunctorF A B um) (nat-η A B um) (nat-ε A B um) |
53 | 269 UMAdjunction A B U F' η' um = record { |
270 isAdjunction = record { | |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
271 adjoint1 = adjoint1 ; |
53 | 272 adjoint2 = adjoint2 |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
273 } |
53 | 274 } where |
275 F : Functor A B | |
54 | 276 F = FunctorF A B um |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
277 η : NTrans A A identityFunctor ( U ○ F ) |
54 | 278 η = nat-η A B um |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
279 ε : NTrans B B ( F ○ U ) identityFunctor |
54 | 280 ε = nat-ε A B um |
56 | 281 adjoint1 : { b : Obj B } → |
53 | 282 A [ A [ ( FMap U ( TMap ε b )) o ( TMap η ( FObj U b )) ] ≈ id1 A (FObj U b) ] |
55
1716403c92c2
Adjoint proved. All done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
54
diff
changeset
|
283 adjoint1 {b} = let open ≈-Reasoning (A) in |
1716403c92c2
Adjoint proved. All done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
54
diff
changeset
|
284 begin |
1716403c92c2
Adjoint proved. All done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
54
diff
changeset
|
285 FMap U ( TMap ε b ) o TMap η ( FObj U b ) |
1716403c92c2
Adjoint proved. All done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
54
diff
changeset
|
286 ≈⟨⟩ |
1716403c92c2
Adjoint proved. All done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
54
diff
changeset
|
287 FMap U ((_* um) ( id1 A (FObj U b))) o η' ( FObj U b ) |
1716403c92c2
Adjoint proved. All done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
54
diff
changeset
|
288 ≈⟨ IsUniversalMapping.universalMapping ( isUniversalMapping um ) ⟩ |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
289 id (FObj U b) |
55
1716403c92c2
Adjoint proved. All done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
54
diff
changeset
|
290 ∎ |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
291 lemma-adj1 : (a : Obj A) → |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
292 A [ A [ FMap U ((B [((_* um) ( id1 A (FObj U ( FObj F a )))) o (_* um) (A [ η' (FObj U ( FObj F a )) o ( η' a ) ]) ])) o η' a ] |
55
1716403c92c2
Adjoint proved. All done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
54
diff
changeset
|
293 ≈ (η' a) ] |
1716403c92c2
Adjoint proved. All done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
54
diff
changeset
|
294 lemma-adj1 a = let open ≈-Reasoning (A) in |
1716403c92c2
Adjoint proved. All done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
54
diff
changeset
|
295 begin |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
296 FMap U ((B [((_* um) ( id1 A (FObj U ( FObj F a )))) o (_* um) (A [ η' (FObj U ( FObj F a )) o ( η' a ) ]) ])) o η' a |
66 | 297 ≈⟨ car (distr U) ⟩ |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
298 (FMap U ((_* um) ( id1 A (FObj U ( FObj F a)))) o FMap U ((_* um) (A [ η' (FObj U ( FObj F a )) o ( η' a ) ]))) o η' a |
55
1716403c92c2
Adjoint proved. All done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
54
diff
changeset
|
299 ≈⟨ sym assoc ⟩ |
1716403c92c2
Adjoint proved. All done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
54
diff
changeset
|
300 FMap U ((_* um) ( id1 A (FObj U ( FObj F a)))) o ( FMap U ((_* um) (A [ η' (FObj U ( FObj F a )) o ( η' a ) ])) o η' a ) |
1716403c92c2
Adjoint proved. All done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
54
diff
changeset
|
301 ≈⟨ cdr (IsUniversalMapping.universalMapping ( isUniversalMapping um)) ⟩ |
1716403c92c2
Adjoint proved. All done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
54
diff
changeset
|
302 FMap U ((_* um) ( id1 A (FObj U ( FObj F a)))) o ( η' (FObj U ( FObj F a )) o ( η' a ) ) |
1716403c92c2
Adjoint proved. All done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
54
diff
changeset
|
303 ≈⟨ assoc ⟩ |
1716403c92c2
Adjoint proved. All done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
54
diff
changeset
|
304 (FMap U ((_* um) ( id1 A (FObj U ( FObj F a)))) o ( η' (FObj U ( FObj F a )))) o ( η' a ) |
1716403c92c2
Adjoint proved. All done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
54
diff
changeset
|
305 ≈⟨ car (IsUniversalMapping.universalMapping ( isUniversalMapping um)) ⟩ |
1716403c92c2
Adjoint proved. All done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
54
diff
changeset
|
306 id (FObj U ( FObj F a)) o ( η' a ) |
1716403c92c2
Adjoint proved. All done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
54
diff
changeset
|
307 ≈⟨ idL ⟩ |
1716403c92c2
Adjoint proved. All done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
54
diff
changeset
|
308 η' a |
1716403c92c2
Adjoint proved. All done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
54
diff
changeset
|
309 ∎ |
56 | 310 lemma-adj2 : (a : Obj A) → A [ A [ FMap U (id1 B (FObj F a)) o η' a ] ≈ η' a ] |
55
1716403c92c2
Adjoint proved. All done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
54
diff
changeset
|
311 lemma-adj2 a = let open ≈-Reasoning (A) in |
1716403c92c2
Adjoint proved. All done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
54
diff
changeset
|
312 begin |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
313 FMap U (id1 B (FObj F a)) o η' a |
55
1716403c92c2
Adjoint proved. All done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
54
diff
changeset
|
314 ≈⟨ car ( IsFunctor.identity ( isFunctor U)) ⟩ |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
315 id (FObj U (FObj F a)) o η' a |
55
1716403c92c2
Adjoint proved. All done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
54
diff
changeset
|
316 ≈⟨ idL ⟩ |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
317 η' a |
55
1716403c92c2
Adjoint proved. All done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
54
diff
changeset
|
318 ∎ |
56 | 319 adjoint2 : {a : Obj A} → |
53 | 320 B [ B [ ( TMap ε ( FObj F a )) o ( FMap F ( TMap η a )) ] ≈ id1 B (FObj F a) ] |
55
1716403c92c2
Adjoint proved. All done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
54
diff
changeset
|
321 adjoint2 {a} = let open ≈-Reasoning (B) in |
1716403c92c2
Adjoint proved. All done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
54
diff
changeset
|
322 begin |
1716403c92c2
Adjoint proved. All done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
54
diff
changeset
|
323 TMap ε ( FObj F a ) o FMap F ( TMap η a ) |
1716403c92c2
Adjoint proved. All done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
54
diff
changeset
|
324 ≈⟨⟩ |
1716403c92c2
Adjoint proved. All done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
54
diff
changeset
|
325 ((_* um) ( id1 A (FObj U ( FObj F a )))) o (_* um) (A [ η' (FObj U ( FObj F a )) o ( η' a ) ]) |
1716403c92c2
Adjoint proved. All done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
54
diff
changeset
|
326 ≈⟨ sym ( ( IsUniversalMapping.uniquness ( isUniversalMapping um ) (lemma-adj1 a))) ⟩ |
1716403c92c2
Adjoint proved. All done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
54
diff
changeset
|
327 (_* um)( η' a ) |
1716403c92c2
Adjoint proved. All done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
54
diff
changeset
|
328 ≈⟨ IsUniversalMapping.uniquness ( isUniversalMapping um ) (lemma-adj2 a) ⟩ |
1716403c92c2
Adjoint proved. All done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
54
diff
changeset
|
329 id1 B (FObj F a) |
1716403c92c2
Adjoint proved. All done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
54
diff
changeset
|
330 ∎ |
1716403c92c2
Adjoint proved. All done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
54
diff
changeset
|
331 |
1716403c92c2
Adjoint proved. All done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
54
diff
changeset
|
332 |
171 | 333 ------ |
334 -- | |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
335 -- Hom Set Adjunction |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
336 -- |
171 | 337 -- Hom(F(-),-) = Hom(-,U(-)) |
338 -- Unity of opposite | |
339 ----- | |
340 | |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
341 -- Assuming |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
342 -- naturality of left (Φ) |
177 | 343 -- k = Hom A b b' ; f' = k o f h Hom A a' a ; f' = f o h |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
344 -- left left |
177 | 345 -- f : Hom A F(a) b --------> f* : Hom B a U(b) f' : Hom A F(a')b -------> f'* : Hom B a' U(b) |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
346 -- | | | | |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
347 -- |k* |U(k*) |F(h*) |h* |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
348 -- v v v v |
177 | 349 -- f': Hom A F(a) b'-------> f'* : Hom B a U(b') f: Hom A F(a) b ---------> f* : Hom B a U(b) |
350 -- left left | |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
351 |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
352 record UnityOfOppsite {c₁ c₂ ℓ c₁' c₂' ℓ' : Level} (A : Category c₁ c₂ ℓ) (B : Category c₁' c₂' ℓ') |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
353 ( U : Functor B A ) |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
354 ( F : Functor A B ) |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
355 : Set (suc (c₁ ⊔ c₂ ⊔ ℓ ⊔ c₁' ⊔ c₂' ⊔ ℓ' )) where |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
356 field |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
357 right : {a : Obj A} { b : Obj B } → Hom A a ( FObj U b ) → Hom B (FObj F a) b |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
358 left : {a : Obj A} { b : Obj B } → Hom B (FObj F a) b → Hom A a ( FObj U b ) |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
359 right-injective : {a : Obj A} { b : Obj B } → {f : Hom A a (FObj U b) } → A [ left ( right f ) ≈ f ] |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
360 left-injective : {a : Obj A} { b : Obj B } → {f : Hom B (FObj F a) b } → B [ right ( left f ) ≈ f ] |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
361 --- naturality of Φ |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
362 left-commute1 : {a : Obj A} {b b' : Obj B } -> |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
363 { f : Hom B (FObj F a) b } -> { k : Hom B b b' } -> |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
364 A [ left ( B [ k o f ] ) ≈ A [ FMap U k o left f ] ] |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
365 left-commute2 : {a a' : Obj A} {b : Obj B } -> |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
366 { f : Hom B (FObj F a) b } -> { h : Hom A a' a } -> |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
367 A [ left ( B [ f o FMap F h ] ) ≈ A [ left f o h ] ] |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
368 r-cong : {a : Obj A} { b : Obj B } → { f g : Hom A a ( FObj U b ) } → A [ f ≈ g ] → B [ right f ≈ right g ] |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
369 l-cong : {a : Obj A} { b : Obj B } → { f g : Hom B (FObj F a) b } → B [ f ≈ g ] → A [ left f ≈ left g ] |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
370 -- naturality of right (Φ-1) |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
371 right-commute1 : {a : Obj A} {b b' : Obj B } -> |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
372 { g : Hom A a (FObj U b)} -> { k : Hom B b b' } -> |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
373 B [ B [ k o right g ] ≈ right ( A [ FMap U k o g ] ) ] |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
374 right-commute1 {a} {b} {b'} {g} {k} = let open ≈-Reasoning (B) in |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
375 begin |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
376 k o right g |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
377 ≈⟨ sym left-injective ⟩ |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
378 right ( left ( k o right g ) ) |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
379 ≈⟨ r-cong left-commute1 ⟩ |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
380 right ( A [ FMap U k o left ( right g ) ] ) |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
381 ≈⟨ r-cong (lemma-1 g k) ⟩ |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
382 right ( A [ FMap U k o g ] ) |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
383 ∎ where |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
384 lemma-1 : {a : Obj A} {b b' : Obj B } -> |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
385 ( g : Hom A a (FObj U b)) -> ( k : Hom B b b' ) -> |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
386 A [ A [ FMap U k o left ( right g ) ] ≈ A [ FMap U k o g ] ] |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
387 lemma-1 g k = let open ≈-Reasoning (A) in |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
388 begin |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
389 FMap U k o left ( right g ) |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
390 ≈⟨ cdr ( right-injective) ⟩ |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
391 FMap U k o g |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
392 ∎ |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
393 right-commute2 : {a a' : Obj A} {b : Obj B } -> |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
394 { g : Hom A a (FObj U b) } -> { h : Hom A a' a } -> |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
395 B [ B [ right g o FMap F h ] ≈ right ( A [ g o h ] ) ] |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
396 right-commute2 {a} {a'} {b} {g} {h} = let open ≈-Reasoning (B) in |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
397 begin |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
398 right g o FMap F h |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
399 ≈⟨ sym left-injective ⟩ |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
400 right ( left ( right g o FMap F h )) |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
401 ≈⟨ r-cong left-commute2 ⟩ |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
402 right ( A [ left ( right g ) o h ] ) |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
403 ≈⟨ r-cong ( lemma-2 g h ) ⟩ |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
404 right ( A [ g o h ] ) |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
405 ∎ where |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
406 lemma-2 : {a a' : Obj A} {b : Obj B } -> |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
407 ( g : Hom A a (FObj U b)) -> ( h : Hom A a' a ) -> |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
408 A [ A [ left ( right g ) o h ] ≈ A [ g o h ] ] |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
409 lemma-2 g h = let open ≈-Reasoning (A) in car ( right-injective ) |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
410 |
171 | 411 Adj2UO : {c₁ c₂ ℓ c₁' c₂' ℓ' : Level} (A : Category c₁ c₂ ℓ) (B : Category c₁' c₂' ℓ') |
412 { U : Functor B A } | |
413 { F : Functor A B } | |
414 { η : NTrans A A identityFunctor ( U ○ F ) } | |
415 { ε : NTrans B B ( F ○ U ) identityFunctor } → | |
416 ( adj : Adjunction A B U F η ε ) → UnityOfOppsite A B U F | |
417 Adj2UO A B {U} {F} {η} {ε} adj = record { | |
418 right = right ; | |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
419 left = left ; |
171 | 420 right-injective = right-injective ; |
175
795be747d7a9
hom-set to universal mapping done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
174
diff
changeset
|
421 left-injective = left-injective ; |
795be747d7a9
hom-set to universal mapping done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
174
diff
changeset
|
422 left-commute1 = left-commute1 ; |
795be747d7a9
hom-set to universal mapping done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
174
diff
changeset
|
423 left-commute2 = left-commute2 ; |
795be747d7a9
hom-set to universal mapping done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
174
diff
changeset
|
424 r-cong = r-cong ; |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
425 l-cong = l-cong |
171 | 426 } where |
427 right : {a : Obj A} { b : Obj B } → Hom A a ( FObj U b ) → Hom B (FObj F a) b | |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
428 right {a} {b} f = B [ TMap ε b o FMap F f ] |
171 | 429 left : {a : Obj A} { b : Obj B } → Hom B (FObj F a) b → Hom A a ( FObj U b ) |
430 left {a} {b} f = A [ FMap U f o (TMap η a) ] | |
431 right-injective : {a : Obj A} { b : Obj B } → {f : Hom A a (FObj U b) } → A [ left ( right f ) ≈ f ] | |
432 right-injective {a} {b} {f} = let open ≈-Reasoning (A) in | |
433 begin | |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
434 FMap U (B [ TMap ε b o FMap F f ]) o (TMap η a) |
171 | 435 ≈⟨ car ( distr U ) ⟩ |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
436 ( FMap U (TMap ε b) o FMap U (FMap F f )) o (TMap η a) |
171 | 437 ≈↑⟨ assoc ⟩ |
438 FMap U (TMap ε b) o ( FMap U (FMap F f ) o (TMap η a) ) | |
439 ≈⟨ cdr ( nat η) ⟩ | |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
440 FMap U (TMap ε b) o ((TMap η (FObj U b)) o f ) |
171 | 441 ≈⟨ assoc ⟩ |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
442 (FMap U (TMap ε b) o (TMap η (FObj U b))) o f |
171 | 443 ≈⟨ car ( IsAdjunction.adjoint1 ( isAdjunction adj )) ⟩ |
444 id1 A (FObj U b) o f | |
445 ≈⟨ idL ⟩ | |
446 f | |
447 ∎ | |
448 left-injective : {a : Obj A} { b : Obj B } → {f : Hom B (FObj F a) b } → B [ right ( left f ) ≈ f ] | |
449 left-injective {a} {b} {f} = let open ≈-Reasoning (B) in | |
450 begin | |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
451 TMap ε b o FMap F ( A [ FMap U f o (TMap η a) ]) |
171 | 452 ≈⟨ cdr ( distr F ) ⟩ |
453 TMap ε b o ( FMap F (FMap U f) o FMap F (TMap η a)) | |
454 ≈⟨ assoc ⟩ | |
455 ( TMap ε b o FMap F (FMap U f)) o FMap F (TMap η a) | |
456 ≈↑⟨ car (nat ε) ⟩ | |
457 ( f o TMap ε ( FObj F a )) o ( FMap F ( TMap η a )) | |
458 ≈↑⟨ assoc ⟩ | |
459 f o ( TMap ε ( FObj F a ) o ( FMap F ( TMap η a ))) | |
460 ≈⟨ cdr ( IsAdjunction.adjoint2 ( isAdjunction adj )) ⟩ | |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
461 f o id1 B (FObj F a) |
171 | 462 ≈⟨ idR ⟩ |
463 f | |
464 ∎ | |
175
795be747d7a9
hom-set to universal mapping done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
174
diff
changeset
|
465 left-commute1 : {a : Obj A} {b b' : Obj B } -> |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
466 { f : Hom B (FObj F a) b } -> { k : Hom B b b' } -> |
175
795be747d7a9
hom-set to universal mapping done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
174
diff
changeset
|
467 A [ left ( B [ k o f ] ) ≈ A [ FMap U k o left f ] ] |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
468 left-commute1 {a} {b} {b'} {f} {k} = let open ≈-Reasoning (A) in |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
469 begin |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
470 left ( B [ k o f ] ) |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
471 ≈⟨⟩ |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
472 FMap U ( B [ k o f ] ) o (TMap η a) |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
473 ≈⟨ car (distr U) ⟩ |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
474 ( FMap U k o FMap U f ) o (TMap η a) |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
475 ≈↑⟨ assoc ⟩ |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
476 FMap U k o ( FMap U f o (TMap η a) ) |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
477 ≈⟨⟩ |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
478 FMap U k o left f |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
479 ∎ |
175
795be747d7a9
hom-set to universal mapping done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
174
diff
changeset
|
480 left-commute2 : {a a' : Obj A} {b : Obj B } -> |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
481 { f : Hom B (FObj F a) b } -> { h : Hom A a' a} -> |
175
795be747d7a9
hom-set to universal mapping done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
174
diff
changeset
|
482 A [ left ( B [ f o FMap F h ] ) ≈ A [ left f o h ] ] |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
483 left-commute2 {a'} {a} {b} {f} {h} = let open ≈-Reasoning (A) in |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
484 begin |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
485 left ( B [ f o FMap F h ] ) |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
486 ≈⟨⟩ |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
487 FMap U ( B [ f o FMap F h ] ) o TMap η a |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
488 ≈⟨ car (distr U ) ⟩ |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
489 (FMap U f o FMap U (FMap F h )) o TMap η a |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
490 ≈↑⟨ assoc ⟩ |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
491 FMap U f o ( FMap U (FMap F h ) o TMap η a ) |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
492 ≈⟨ cdr ( nat η) ⟩ |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
493 FMap U f o (TMap η a' o h ) |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
494 ≈⟨ assoc ⟩ |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
495 ( FMap U f o TMap η a') o h |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
496 ≈⟨⟩ |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
497 left f o h |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
498 ∎ |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
499 |
175
795be747d7a9
hom-set to universal mapping done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
174
diff
changeset
|
500 r-cong : {a : Obj A} { b : Obj B } → { f g : Hom A a ( FObj U b ) } → A [ f ≈ g ] → B [ right f ≈ right g ] |
795be747d7a9
hom-set to universal mapping done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
174
diff
changeset
|
501 r-cong eq = let open ≈-Reasoning (B) in ( cdr ( fcong F eq ) ) |
795be747d7a9
hom-set to universal mapping done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
174
diff
changeset
|
502 l-cong : {a : Obj A} { b : Obj B } → { f g : Hom B (FObj F a) b } → B [ f ≈ g ] → A [ left f ≈ left g ] |
795be747d7a9
hom-set to universal mapping done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
174
diff
changeset
|
503 l-cong eq = let open ≈-Reasoning (A) in ( car ( fcong U eq ) ) |
795be747d7a9
hom-set to universal mapping done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
174
diff
changeset
|
504 |
171 | 505 |
506 open UnityOfOppsite | |
507 | |
173 | 508 -- f : a -----------> U(b) |
174
1c4788483d46
add more axiom on unity of oppsite
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
173
diff
changeset
|
509 -- 1_F(a) :F(a) ---------> F(a) |
1c4788483d46
add more axiom on unity of oppsite
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
173
diff
changeset
|
510 -- ε(b) = right uo (1_F(a)) :UF(b)---------> a |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
511 -- η(a) = left uo (1_U(a)) : a -----------> FU(a) |
172 | 512 |
513 | |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
514 uo-η-map : {c₁ c₂ ℓ c₁' c₂' ℓ' : Level} (A : Category c₁ c₂ ℓ) (B : Category c₁' c₂' ℓ') |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
515 ( U : Functor B A ) |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
516 ( F : Functor A B ) → |
174
1c4788483d46
add more axiom on unity of oppsite
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
173
diff
changeset
|
517 ( uo : UnityOfOppsite A B U F) → (a : Obj A ) → Hom A a (FObj U ( FObj F a )) |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
518 uo-η-map A B U F uo a = left uo ( id1 B (FObj F a) ) |
174
1c4788483d46
add more axiom on unity of oppsite
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
173
diff
changeset
|
519 |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
520 uo-ε-map : {c₁ c₂ ℓ c₁' c₂' ℓ' : Level} (A : Category c₁ c₂ ℓ) (B : Category c₁' c₂' ℓ') |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
521 ( U : Functor B A ) |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
522 ( F : Functor A B ) → |
174
1c4788483d46
add more axiom on unity of oppsite
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
173
diff
changeset
|
523 ( uo : UnityOfOppsite A B U F) → (b : Obj B ) → Hom B (FObj F ( FObj U ( b ) )) b |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
524 uo-ε-map A B U F uo b = right uo ( id1 A (FObj U b) ) |
172 | 525 |
526 uo-solution : {c₁ c₂ ℓ c₁' c₂' ℓ' : Level} (A : Category c₁ c₂ ℓ) (B : Category c₁' c₂' ℓ') | |
527 ( U : Functor B A ) | |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
528 ( F : Functor A B ) → |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
529 ( uo : UnityOfOppsite A B U F) → {a : Obj A} {b : Obj B } -> |
172 | 530 ( f : Hom A a (FObj U b )) -> Hom B (FObj F a) b |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
531 uo-solution A B U F uo {a} {b} f = -- B [ right uo (id1 A (FObj U b)) o FMap F f ] |
174
1c4788483d46
add more axiom on unity of oppsite
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
173
diff
changeset
|
532 right uo f |
172 | 533 |
173 | 534 -- F(ε(b)) o η(F(b)) |
535 -- F( right uo (id1 A (FObj U b)) ) o left uo (id1 B (FObj F a)) ] == 1 | |
172 | 536 |
537 UO2UM : {c₁ c₂ ℓ c₁' c₂' ℓ' : Level} (A : Category c₁ c₂ ℓ) (B : Category c₁' c₂' ℓ') | |
538 ( U : Functor B A ) | |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
539 ( F : Functor A B ) → |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
540 ( uo : UnityOfOppsite A B U F) → UniversalMapping A B U (FObj F) ( uo-η-map A B U F uo ) |
172 | 541 UO2UM A B U F uo = record { |
542 _* = uo-solution A B U F uo ; | |
543 isUniversalMapping = record { | |
544 universalMapping = universalMapping; | |
545 uniquness = uniqueness | |
546 } | |
547 } where | |
548 universalMapping : {a' : Obj A} { b' : Obj B } → { f : Hom A a' (FObj U b') } → | |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
549 A [ A [ FMap U ( uo-solution A B U F uo f) o ( uo-η-map A B U F uo ) a' ] ≈ f ] |
172 | 550 universalMapping {a} {b} {f} = let open ≈-Reasoning (A) in |
171 | 551 begin |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
552 FMap U ( uo-solution A B U F uo f) o ( uo-η-map A B U F uo ) a |
174
1c4788483d46
add more axiom on unity of oppsite
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
173
diff
changeset
|
553 ≈⟨⟩ |
1c4788483d46
add more axiom on unity of oppsite
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
173
diff
changeset
|
554 FMap U ( right uo f) o left uo ( id1 B (FObj F a) ) |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
555 ≈↑⟨ left-commute1 uo ⟩ |
175
795be747d7a9
hom-set to universal mapping done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
174
diff
changeset
|
556 left uo ( B [ right uo f o id1 B (FObj F a) ] ) |
795be747d7a9
hom-set to universal mapping done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
174
diff
changeset
|
557 ≈⟨ l-cong uo lemma-1 ⟩ |
795be747d7a9
hom-set to universal mapping done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
174
diff
changeset
|
558 left uo ( right uo f ) |
795be747d7a9
hom-set to universal mapping done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
174
diff
changeset
|
559 ≈⟨ right-injective uo ⟩ |
172 | 560 f |
175
795be747d7a9
hom-set to universal mapping done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
174
diff
changeset
|
561 ∎ where |
795be747d7a9
hom-set to universal mapping done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
174
diff
changeset
|
562 lemma-1 : B [ B [ right uo f o id1 B (FObj F a) ] ≈ right uo f ] |
795be747d7a9
hom-set to universal mapping done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
174
diff
changeset
|
563 lemma-1 = let open ≈-Reasoning (B) in idR |
172 | 564 uniqueness : {a' : Obj A} { b' : Obj B } → { f : Hom A a' (FObj U b') } → { g : Hom B (FObj F a') b'} → |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
565 A [ A [ FMap U g o ( uo-η-map A B U F uo ) a' ] ≈ f ] → B [ uo-solution A B U F uo f ≈ g ] |
172 | 566 uniqueness {a} {b} {f} {g} eq = let open ≈-Reasoning (B) in |
567 begin | |
568 uo-solution A B U F uo f | |
175
795be747d7a9
hom-set to universal mapping done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
174
diff
changeset
|
569 ≈⟨⟩ |
795be747d7a9
hom-set to universal mapping done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
174
diff
changeset
|
570 right uo f |
795be747d7a9
hom-set to universal mapping done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
174
diff
changeset
|
571 ≈↑⟨ r-cong uo eq ⟩ |
795be747d7a9
hom-set to universal mapping done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
174
diff
changeset
|
572 right uo ( A [ FMap U g o left uo ( id1 B (FObj F a) ) ] ) |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
573 ≈↑⟨ r-cong uo ( left-commute1 uo ) ⟩ |
175
795be747d7a9
hom-set to universal mapping done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
174
diff
changeset
|
574 right uo ( left uo ( g o ( id1 B (FObj F a) ) ) ) |
795be747d7a9
hom-set to universal mapping done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
174
diff
changeset
|
575 ≈⟨ left-injective uo ⟩ |
795be747d7a9
hom-set to universal mapping done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
174
diff
changeset
|
576 g o ( id1 B (FObj F a) ) |
795be747d7a9
hom-set to universal mapping done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
174
diff
changeset
|
577 ≈⟨ idR ⟩ |
172 | 578 g |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
579 ∎ |
171 | 580 |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
581 uo-η : {c₁ c₂ ℓ c₁' c₂' ℓ' : Level} (A : Category c₁ c₂ ℓ) (B : Category c₁' c₂' ℓ') |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
582 ( U : Functor B A ) |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
583 ( F : Functor A B ) → |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
584 ( uo : UnityOfOppsite A B U F) → NTrans A A identityFunctor ( U ○ F ) |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
585 uo-η A B U F uo = record { |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
586 TMap = uo-η-map A B U F uo ; isNTrans = myIsNTrans |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
587 } where |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
588 η = uo-η-map A B U F uo |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
589 commute : {a b : Obj A} {f : Hom A a b} |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
590 → A [ A [ (FMap U (FMap F f)) o ( η a ) ] ≈ A [ (η b ) o f ] ] |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
591 commute {a} {b} {f} = let open ≈-Reasoning (A) in |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
592 begin |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
593 (FMap U (FMap F f)) o (left uo ( id1 B (FObj F a) ) ) |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
594 ≈↑⟨ left-commute1 uo ⟩ |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
595 left uo ( B [ (FMap F f) o ( id1 B (FObj F a) ) ] ) |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
596 ≈⟨ l-cong uo (IsCategory.identityR (Category.isCategory B)) ⟩ |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
597 left uo ( FMap F f ) |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
598 ≈↑⟨ l-cong uo (IsCategory.identityL (Category.isCategory B)) ⟩ |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
599 left uo ( B [ ( id1 B (FObj F b )) o FMap F f ] ) |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
600 ≈⟨ left-commute2 uo ⟩ |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
601 (left uo ( id1 B (FObj F b) ) ) o f |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
602 ≈⟨⟩ |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
603 (η b ) o f |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
604 ∎ where |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
605 lemma-1 : B [ B [ (FMap F f) o ( id1 B (FObj F a) ) ] ≈ FMap F f ] |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
606 lemma-1 = IsCategory.identityR (Category.isCategory B) |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
607 myIsNTrans : IsNTrans A A identityFunctor ( U ○ F ) η |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
608 myIsNTrans = record { commute = commute } |
171 | 609 |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
610 uo-ε : {c₁ c₂ ℓ c₁' c₂' ℓ' : Level} (A : Category c₁ c₂ ℓ) (B : Category c₁' c₂' ℓ') |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
611 ( U : Functor B A ) |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
612 ( F : Functor A B )→ |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
613 ( uo : UnityOfOppsite A B U F) → NTrans B B ( F ○ U ) identityFunctor |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
614 uo-ε A B U F uo = record { |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
615 TMap = ε ; isNTrans = myIsNTrans |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
616 } where |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
617 ε = uo-ε-map A B U F uo |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
618 commute : {a b : Obj B} {f : Hom B a b } |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
619 → B [ B [ f o (ε a) ] ≈ B [(ε b) o (FMap F (FMap U f)) ] ] |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
620 commute {a} {b} {f} = let open ≈-Reasoning (B) in |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
621 sym ( begin |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
622 ε b o (FMap F (FMap U f)) |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
623 ≈⟨⟩ |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
624 right uo ( id1 A (FObj U b) ) o (FMap F (FMap U f)) |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
625 ≈⟨ right-commute2 uo ⟩ |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
626 right uo ( A [ id1 A (FObj U b) o FMap U f ] ) |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
627 ≈⟨ r-cong uo (IsCategory.identityL (Category.isCategory A)) ⟩ |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
628 right uo ( FMap U f ) |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
629 ≈↑⟨ r-cong uo (IsCategory.identityR (Category.isCategory A)) ⟩ |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
630 right uo ( A [ FMap U f o id1 A (FObj U a) ] ) |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
631 ≈↑⟨ right-commute1 uo ⟩ |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
632 f o right uo ( id1 A (FObj U a) ) |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
633 ≈⟨⟩ |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
634 f o (ε a) |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
635 ∎ ) |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
636 myIsNTrans : IsNTrans B B ( F ○ U ) identityFunctor ε |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
637 myIsNTrans = record { commute = commute } |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
638 |
172 | 639 |
171 | 640 UO2Adj : {c₁ c₂ ℓ c₁' c₂' ℓ' : Level} (A : Category c₁ c₂ ℓ) (B : Category c₁' c₂' ℓ') |
641 { U : Functor B A } | |
642 { F : Functor A B } | |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
643 ( uo : UnityOfOppsite A B U F) |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
644 → Adjunction A B U F ( uo-η A B U F uo ) (uo-ε A B U F uo ) |
171 | 645 UO2Adj A B {U} {F} uo = record { |
646 isAdjunction = record { | |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
647 adjoint1 = adjoint1 ; |
171 | 648 adjoint2 = adjoint2 |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
649 } |
171 | 650 } where |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
651 um = UO2UM A B U F uo |
171 | 652 adjoint1 : { b : Obj B } → |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
653 A [ A [ ( FMap U ( TMap (uo-ε A B U F uo) b )) o ( TMap (uo-η A B U F uo) ( FObj U b )) ] ≈ id1 A (FObj U b) ] |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
654 adjoint1 {b} = let open ≈-Reasoning (A) in |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
655 begin |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
656 ( FMap U ( TMap (uo-ε A B U F uo) b )) o ( TMap (uo-η A B U F uo) ( FObj U b )) |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
657 ≈⟨⟩ |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
658 FMap U (right uo (id1 A (FObj U b))) o (left uo (id1 B (FObj F (FObj U b)))) |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
659 ≈↑⟨ left-commute1 uo ⟩ |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
660 left uo ( B [ right uo (id1 A (FObj U b)) o id1 B (FObj F (FObj U b)) ] ) |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
661 ≈⟨ l-cong uo ((IsCategory.identityR (Category.isCategory B))) ⟩ |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
662 left uo ( right uo (id1 A (FObj U b)) ) |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
663 ≈⟨ right-injective uo ⟩ |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
664 id1 A (FObj U b) |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
665 ∎ |
171 | 666 adjoint2 : {a : Obj A} → |
176
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
667 B [ B [ ( TMap (uo-ε A B U F uo) ( FObj F a )) o ( FMap F ( TMap (uo-η A B U F uo) a )) ] ≈ id1 B (FObj F a) ] |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
668 adjoint2 {a} = let open ≈-Reasoning (B) in |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
669 begin |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
670 ( TMap (uo-ε A B U F uo) ( FObj F a )) o ( FMap F ( TMap (uo-η A B U F uo) a )) |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
671 ≈⟨⟩ |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
672 right uo (Category.Category.Id A) o FMap F (left uo (id1 B (FObj F a))) |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
673 ≈⟨ right-commute2 uo ⟩ |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
674 right uo ( A [ (Category.Category.Id A) o (left uo (id1 B (FObj F a))) ] ) |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
675 ≈⟨ r-cong uo ((IsCategory.identityL (Category.isCategory A))) ⟩ |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
676 right uo ( left uo (id1 B (FObj F a))) |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
677 ≈⟨ left-injective uo ⟩ |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
678 id1 B (FObj F a) |
ae1a4f7e5203
hom set adjunction done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
175
diff
changeset
|
679 ∎ |
171 | 680 |
681 | |
55
1716403c92c2
Adjoint proved. All done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
54
diff
changeset
|
682 -- done! |
1716403c92c2
Adjoint proved. All done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
54
diff
changeset
|
683 |