annotate pullback.agda @ 790:1e7319868d77

Sets is CCC
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Fri, 19 Apr 2019 23:42:19 +0900
parents 6b4bd02efd80
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
260
a87d3ea9efe4 pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 -- Pullback from product and equalizer
a87d3ea9efe4 pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 --
a87d3ea9efe4 pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 --
a87d3ea9efe4 pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 -- Shinji KONO <kono@ie.u-ryukyu.ac.jp>
a87d3ea9efe4 pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
5 ----
a87d3ea9efe4 pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
6
a87d3ea9efe4 pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 open import Category -- https://github.com/konn/category-agda
a87d3ea9efe4 pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 open import Level
266
9e9f1e27e89f iso on limit
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 265
diff changeset
9 module pullback { c₁ c₂ ℓ : Level} ( A : Category c₁ c₂ ℓ ) { c₁' c₂' ℓ' : Level} ( I : Category c₁' c₂' ℓ') ( Γ : Functor I A ) where
260
a87d3ea9efe4 pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
10
a87d3ea9efe4 pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 open import HomReasoning
a87d3ea9efe4 pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 open import cat-utility
a87d3ea9efe4 pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
13
282
c831abfa9bf4 limit on going...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 281
diff changeset
14 --
264
78ce12f8e6b6 pullback done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 263
diff changeset
15 -- Pullback from equalizer and product
260
a87d3ea9efe4 pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 -- f
300
d6a6dd305da2 arrow and lambda fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 299
diff changeset
17 -- a ------→ c
682
50a01df1169a clean up of pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 681
diff changeset
18 -- ^ ^
50a01df1169a clean up of pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 681
diff changeset
19 -- π1 | |g
50a01df1169a clean up of pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 681
diff changeset
20 -- | |
50a01df1169a clean up of pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 681
diff changeset
21 -- axb -----→ b
260
a87d3ea9efe4 pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 -- ^ π2
a87d3ea9efe4 pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 -- |
282
c831abfa9bf4 limit on going...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 281
diff changeset
24 -- | e = equalizer (f π1) (g π1)
264
78ce12f8e6b6 pullback done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 263
diff changeset
25 -- |
78ce12f8e6b6 pullback done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 263
diff changeset
26 -- d <------------------ d'
78ce12f8e6b6 pullback done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 263
diff changeset
27 -- k (π1' × π2' )
260
a87d3ea9efe4 pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
28
261
a2477147dfec pull back continue
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 260
diff changeset
29 open Equalizer
443
f526f4b68565 fix IsEqualizer
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 440
diff changeset
30 open IsEqualizer
672
749df4959d19 fix completeness
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 508
diff changeset
31 open IsProduct
261
a2477147dfec pull back continue
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 260
diff changeset
32
681
bd8f7346f252 fix Product and pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 680
diff changeset
33 pullback-from : {a b c : Obj A}
260
a87d3ea9efe4 pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 ( f : Hom A a c ) ( g : Hom A b c )
681
bd8f7346f252 fix Product and pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 680
diff changeset
35 ( eqa : {a b : Obj A} → (f g : Hom A a b) → Equalizer A f g )
bd8f7346f252 fix Product and pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 680
diff changeset
36 ( prod : ( a b : Obj A ) → Product A a b ) → Pullback A f g
bd8f7346f252 fix Product and pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 680
diff changeset
37 pullback-from {a} {b} {c} f g eqa prod0 = record {
682
50a01df1169a clean up of pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 681
diff changeset
38 ab = d ;
681
bd8f7346f252 fix Product and pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 680
diff changeset
39 π1 = A [ π1 o e ] ;
bd8f7346f252 fix Product and pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 680
diff changeset
40 π2 = A [ π2 o e ] ;
bd8f7346f252 fix Product and pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 680
diff changeset
41 isPullback = record {
260
a87d3ea9efe4 pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
42 commute = commute1 ;
681
bd8f7346f252 fix Product and pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 680
diff changeset
43 pullback = p1 ;
282
c831abfa9bf4 limit on going...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 281
diff changeset
44 π1p=π1 = λ {d} {π1'} {π2'} {eq} → π1p=π11 {d} {π1'} {π2'} {eq} ;
c831abfa9bf4 limit on going...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 281
diff changeset
45 π2p=π2 = λ {d} {π1'} {π2'} {eq} → π2p=π21 {d} {π1'} {π2'} {eq} ;
260
a87d3ea9efe4 pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
46 uniqueness = uniqueness1
681
bd8f7346f252 fix Product and pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 680
diff changeset
47 }
282
c831abfa9bf4 limit on going...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 281
diff changeset
48 } where
686
14ad6ec8a662 fix comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 685
diff changeset
49 axb : Obj A
14ad6ec8a662 fix comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 685
diff changeset
50 axb = Product.product (prod0 a b)
14ad6ec8a662 fix comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 685
diff changeset
51 π1 : Hom A axb a
681
bd8f7346f252 fix Product and pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 680
diff changeset
52 π1 = Product.π1 (prod0 a b )
686
14ad6ec8a662 fix comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 685
diff changeset
53 π2 : Hom A axb b
681
bd8f7346f252 fix Product and pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 680
diff changeset
54 π2 = Product.π2 (prod0 a b )
682
50a01df1169a clean up of pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 681
diff changeset
55 d : Obj A
50a01df1169a clean up of pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 681
diff changeset
56 d = equalizer-c (eqa (A [ f o π1 ]) (A [ g o π2 ]))
686
14ad6ec8a662 fix comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 685
diff changeset
57 e : Hom A d axb
681
bd8f7346f252 fix Product and pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 680
diff changeset
58 e = equalizer (eqa (A [ f o π1 ]) (A [ g o π2 ]))
bd8f7346f252 fix Product and pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 680
diff changeset
59 prod = Product.isProduct (prod0 a b)
682
50a01df1169a clean up of pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 681
diff changeset
60 commute1 : A [ A [ f o A [ π1 o e ] ]
50a01df1169a clean up of pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 681
diff changeset
61 ≈ A [ g o A [ π2 o e ] ] ]
262
e1b08c5e4d2e uniqueness remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 261
diff changeset
62 commute1 = let open ≈-Reasoning (A) in
e1b08c5e4d2e uniqueness remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 261
diff changeset
63 begin
682
50a01df1169a clean up of pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 681
diff changeset
64 f o ( π1 o e )
262
e1b08c5e4d2e uniqueness remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 261
diff changeset
65 ≈⟨ assoc ⟩
682
50a01df1169a clean up of pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 681
diff changeset
66 ( f o π1 ) o e
681
bd8f7346f252 fix Product and pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 680
diff changeset
67 ≈⟨ fe=ge (isEqualizer (eqa (A [ f o π1 ]) (A [ g o π2 ]))) ⟩
682
50a01df1169a clean up of pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 681
diff changeset
68 ( g o π2 ) o e
262
e1b08c5e4d2e uniqueness remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 261
diff changeset
69 ≈↑⟨ assoc ⟩
682
50a01df1169a clean up of pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 681
diff changeset
70 g o ( π2 o e )
262
e1b08c5e4d2e uniqueness remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 261
diff changeset
71
282
c831abfa9bf4 limit on going...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 281
diff changeset
72 lemma1 : {d' : Obj A} {π1' : Hom A d' a} {π2' : Hom A d' b} → A [ A [ f o π1' ] ≈ A [ g o π2' ] ] →
262
e1b08c5e4d2e uniqueness remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 261
diff changeset
73 A [ A [ A [ f o π1 ] o (prod × π1') π2' ] ≈ A [ A [ g o π2 ] o (prod × π1') π2' ] ]
282
c831abfa9bf4 limit on going...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 281
diff changeset
74 lemma1 {d'} { π1' } { π2' } eq = let open ≈-Reasoning (A) in
262
e1b08c5e4d2e uniqueness remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 261
diff changeset
75 begin
e1b08c5e4d2e uniqueness remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 261
diff changeset
76 ( f o π1 ) o (prod × π1') π2'
e1b08c5e4d2e uniqueness remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 261
diff changeset
77 ≈↑⟨ assoc ⟩
e1b08c5e4d2e uniqueness remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 261
diff changeset
78 f o ( π1 o (prod × π1') π2' )
e1b08c5e4d2e uniqueness remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 261
diff changeset
79 ≈⟨ cdr (π1fxg=f prod) ⟩
e1b08c5e4d2e uniqueness remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 261
diff changeset
80 f o π1'
e1b08c5e4d2e uniqueness remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 261
diff changeset
81 ≈⟨ eq ⟩
e1b08c5e4d2e uniqueness remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 261
diff changeset
82 g o π2'
e1b08c5e4d2e uniqueness remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 261
diff changeset
83 ≈↑⟨ cdr (π2fxg=g prod) ⟩
e1b08c5e4d2e uniqueness remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 261
diff changeset
84 g o ( π2 o (prod × π1') π2' )
e1b08c5e4d2e uniqueness remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 261
diff changeset
85 ≈⟨ assoc ⟩
e1b08c5e4d2e uniqueness remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 261
diff changeset
86 ( g o π2 ) o (prod × π1') π2'
e1b08c5e4d2e uniqueness remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 261
diff changeset
87
682
50a01df1169a clean up of pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 681
diff changeset
88 p1 : {d' : Obj A} {π1' : Hom A d' a} {π2' : Hom A d' b} → A [ A [ f o π1' ] ≈ A [ g o π2' ] ] → Hom A d' d
282
c831abfa9bf4 limit on going...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 281
diff changeset
89 p1 {d'} { π1' } { π2' } eq =
681
bd8f7346f252 fix Product and pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 680
diff changeset
90 let open ≈-Reasoning (A) in k (isEqualizer (eqa ( A [ f o π1 ] ) ( A [ g o π2 ] ))) (_×_ prod π1' π2' ) ( lemma1 eq )
282
c831abfa9bf4 limit on going...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 281
diff changeset
91 π1p=π11 : {d₁ : Obj A} {π1' : Hom A d₁ a} {π2' : Hom A d₁ b} {eq : A [ A [ f o π1' ] ≈ A [ g o π2' ] ]} →
681
bd8f7346f252 fix Product and pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 680
diff changeset
92 A [ A [ A [ π1 o equalizer (eqa (A [ f o π1 ]) (A [ g o π2 ]) ) ] o p1 eq ] ≈ π1' ]
262
e1b08c5e4d2e uniqueness remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 261
diff changeset
93 π1p=π11 {d'} {π1'} {π2'} {eq} = let open ≈-Reasoning (A) in
e1b08c5e4d2e uniqueness remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 261
diff changeset
94 begin
681
bd8f7346f252 fix Product and pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 680
diff changeset
95 ( π1 o equalizer (eqa (A [ f o π1 ]) (A [ g o π2 ]) ) ) o p1 eq
262
e1b08c5e4d2e uniqueness remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 261
diff changeset
96 ≈⟨⟩
681
bd8f7346f252 fix Product and pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 680
diff changeset
97 ( π1 o e) o k (isEqualizer ( eqa ( A [ f o π1 ] ) ( A [ g o π2 ] ) )) (_×_ prod π1' π2' ) (lemma1 eq)
262
e1b08c5e4d2e uniqueness remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 261
diff changeset
98 ≈↑⟨ assoc ⟩
681
bd8f7346f252 fix Product and pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 680
diff changeset
99 π1 o ( e o k (isEqualizer ( eqa ( A [ f o π1 ] ) ( A [ g o π2 ] ) )) (_×_ prod π1' π2' ) (lemma1 eq) )
bd8f7346f252 fix Product and pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 680
diff changeset
100 ≈⟨ cdr ( ek=h (isEqualizer ( eqa ( A [ f o π1 ] ) ( A [ g o π2 ] ) ))) ⟩
282
c831abfa9bf4 limit on going...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 281
diff changeset
101 π1 o (_×_ prod π1' π2' )
262
e1b08c5e4d2e uniqueness remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 261
diff changeset
102 ≈⟨ π1fxg=f prod ⟩
e1b08c5e4d2e uniqueness remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 261
diff changeset
103 π1'
e1b08c5e4d2e uniqueness remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 261
diff changeset
104
282
c831abfa9bf4 limit on going...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 281
diff changeset
105 π2p=π21 : {d₁ : Obj A} {π1' : Hom A d₁ a} {π2' : Hom A d₁ b} {eq : A [ A [ f o π1' ] ≈ A [ g o π2' ] ]} →
681
bd8f7346f252 fix Product and pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 680
diff changeset
106 A [ A [ A [ π2 o equalizer (eqa (A [ f o π1 ]) (A [ g o π2 ]) ) ] o p1 eq ] ≈ π2' ]
262
e1b08c5e4d2e uniqueness remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 261
diff changeset
107 π2p=π21 {d'} {π1'} {π2'} {eq} = let open ≈-Reasoning (A) in
e1b08c5e4d2e uniqueness remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 261
diff changeset
108 begin
681
bd8f7346f252 fix Product and pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 680
diff changeset
109 ( π2 o equalizer (eqa (A [ f o π1 ]) (A [ g o π2 ]) ) ) o p1 eq
262
e1b08c5e4d2e uniqueness remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 261
diff changeset
110 ≈⟨⟩
681
bd8f7346f252 fix Product and pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 680
diff changeset
111 ( π2 o e) o k (isEqualizer ( eqa ( A [ f o π1 ] ) ( A [ g o π2 ] ) )) (_×_ prod π1' π2' ) (lemma1 eq)
262
e1b08c5e4d2e uniqueness remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 261
diff changeset
112 ≈↑⟨ assoc ⟩
681
bd8f7346f252 fix Product and pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 680
diff changeset
113 π2 o ( e o k (isEqualizer ( eqa ( A [ f o π1 ] ) ( A [ g o π2 ] ) )) (_×_ prod π1' π2' ) (lemma1 eq) )
bd8f7346f252 fix Product and pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 680
diff changeset
114 ≈⟨ cdr ( ek=h (isEqualizer ( eqa ( A [ f o π1 ] ) ( A [ g o π2 ] ) ))) ⟩
282
c831abfa9bf4 limit on going...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 281
diff changeset
115 π2 o (_×_ prod π1' π2' )
262
e1b08c5e4d2e uniqueness remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 261
diff changeset
116 ≈⟨ π2fxg=g prod ⟩
e1b08c5e4d2e uniqueness remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 261
diff changeset
117 π2'
e1b08c5e4d2e uniqueness remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 261
diff changeset
118
682
50a01df1169a clean up of pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 681
diff changeset
119 uniqueness1 : {d₁ : Obj A} (p' : Hom A d₁ d) {π1' : Hom A d₁ a} {π2' : Hom A d₁ b}
302
c5b2656dbec6 looped.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 300
diff changeset
120 {eq : A [ A [ f o π1' ] ≈ A [ g o π2' ] ]} →
681
bd8f7346f252 fix Product and pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 680
diff changeset
121 {eq1 : A [ A [ A [ π1 o equalizer (eqa (A [ f o π1 ]) (A [ g o π2 ])) ] o p' ] ≈ π1' ]} →
bd8f7346f252 fix Product and pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 680
diff changeset
122 {eq2 : A [ A [ A [ π2 o equalizer (eqa (A [ f o π1 ]) (A [ g o π2 ])) ] o p' ] ≈ π2' ]} →
261
a2477147dfec pull back continue
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 260
diff changeset
123 A [ p1 eq ≈ p' ]
264
78ce12f8e6b6 pullback done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 263
diff changeset
124 uniqueness1 {d'} p' {π1'} {π2'} {eq} {eq1} {eq2} = let open ≈-Reasoning (A) in
263
c1b3193097ce on going ..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 262
diff changeset
125 begin
c1b3193097ce on going ..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 262
diff changeset
126 p1 eq
c1b3193097ce on going ..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 262
diff changeset
127 ≈⟨⟩
681
bd8f7346f252 fix Product and pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 680
diff changeset
128 k (isEqualizer ( eqa ( A [ f o π1 ] ) ( A [ g o π2 ] ) )) (_×_ prod π1' π2' ) (lemma1 eq)
bd8f7346f252 fix Product and pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 680
diff changeset
129 ≈⟨ IsEqualizer.uniqueness (isEqualizer (eqa ( A [ f o π1 ] ) ( A [ g o π2 ] ) )) ( begin
264
78ce12f8e6b6 pullback done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 263
diff changeset
130 e o p'
78ce12f8e6b6 pullback done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 263
diff changeset
131 ≈⟨⟩
681
bd8f7346f252 fix Product and pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 680
diff changeset
132 equalizer (eqa (A [ f o π1 ]) (A [ g o π2 ])) o p'
672
749df4959d19 fix completeness
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 508
diff changeset
133 ≈↑⟨ IsProduct.uniqueness prod ⟩
681
bd8f7346f252 fix Product and pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 680
diff changeset
134 (prod × ( π1 o equalizer (eqa (A [ f o π1 ]) (A [ g o π2 ])) o p') ) ( π2 o (equalizer (eqa (A [ f o π1 ]) (A [ g o π2 ])) o p'))
264
78ce12f8e6b6 pullback done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 263
diff changeset
135 ≈⟨ ×-cong prod (assoc) (assoc) ⟩
681
bd8f7346f252 fix Product and pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 680
diff changeset
136 (prod × (A [ A [ π1 o equalizer (eqa (A [ f o π1 ]) (A [ g o π2 ])) ] o p' ]))
bd8f7346f252 fix Product and pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 680
diff changeset
137 (A [ A [ π2 o equalizer (eqa (A [ f o π1 ]) (A [ g o π2 ])) ] o p' ])
264
78ce12f8e6b6 pullback done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 263
diff changeset
138 ≈⟨ ×-cong prod eq1 eq2 ⟩
78ce12f8e6b6 pullback done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 263
diff changeset
139 ((prod × π1') π2')
78ce12f8e6b6 pullback done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 263
diff changeset
140 ∎ ) ⟩
263
c1b3193097ce on going ..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 262
diff changeset
141 p'
c1b3193097ce on going ..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 262
diff changeset
142
c1b3193097ce on going ..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 262
diff changeset
143
266
9e9f1e27e89f iso on limit
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 265
diff changeset
144 --------------------------------
9e9f1e27e89f iso on limit
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 265
diff changeset
145 --
9e9f1e27e89f iso on limit
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 265
diff changeset
146 -- If we have two limits on c and c', there are isomorphic pair h, h'
9e9f1e27e89f iso on limit
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 265
diff changeset
147
9e9f1e27e89f iso on limit
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 265
diff changeset
148 open Limit
487
c257347a27f3 found limit in freyd
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 484
diff changeset
149 open IsLimit
312
702adc45704f is this right direction?
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 303
diff changeset
150 open NTrans
266
9e9f1e27e89f iso on limit
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 265
diff changeset
151
9e9f1e27e89f iso on limit
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 265
diff changeset
152 iso-l : { c₁' c₂' ℓ' : Level} ( I : Category c₁' c₂' ℓ' ) ( Γ : Functor I A )
691
917e51be9bbf change argument of Limit and K
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 690
diff changeset
153 ( lim : Limit I A Γ ) → ( lim' : Limit I A Γ )
484
fcae3025d900 fix Limit pu a0 and t0 in record definition
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 475
diff changeset
154 → Hom A (a0 lim )(a0 lim')
487
c257347a27f3 found limit in freyd
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 484
diff changeset
155 iso-l I Γ lim lim' = limit (isLimit lim') (a0 lim) ( t0 lim)
266
9e9f1e27e89f iso on limit
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 265
diff changeset
156
9e9f1e27e89f iso on limit
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 265
diff changeset
157 iso-r : { c₁' c₂' ℓ' : Level} ( I : Category c₁' c₂' ℓ' ) ( Γ : Functor I A )
691
917e51be9bbf change argument of Limit and K
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 690
diff changeset
158 ( lim : Limit I A Γ ) → ( lim' : Limit I A Γ )
484
fcae3025d900 fix Limit pu a0 and t0 in record definition
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 475
diff changeset
159 → Hom A (a0 lim') (a0 lim)
487
c257347a27f3 found limit in freyd
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 484
diff changeset
160 iso-r I Γ lim lim' = limit (isLimit lim) (a0 lim') (t0 lim')
266
9e9f1e27e89f iso on limit
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 265
diff changeset
161
9e9f1e27e89f iso on limit
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 265
diff changeset
162
9e9f1e27e89f iso on limit
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 265
diff changeset
163 iso-lr : { c₁' c₂' ℓ' : Level} ( I : Category c₁' c₂' ℓ' ) ( Γ : Functor I A )
691
917e51be9bbf change argument of Limit and K
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 690
diff changeset
164 ( lim : Limit I A Γ ) → ( lim' : Limit I A Γ ) →
484
fcae3025d900 fix Limit pu a0 and t0 in record definition
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 475
diff changeset
165 ∀{ i : Obj I } → A [ A [ iso-l I Γ lim lim' o iso-r I Γ lim lim' ] ≈ id1 A (a0 lim') ]
fcae3025d900 fix Limit pu a0 and t0 in record definition
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 475
diff changeset
166 iso-lr I Γ lim lim' {i} = let open ≈-Reasoning (A) in begin
fcae3025d900 fix Limit pu a0 and t0 in record definition
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 475
diff changeset
167 iso-l I Γ lim lim' o iso-r I Γ lim lim'
fcae3025d900 fix Limit pu a0 and t0 in record definition
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 475
diff changeset
168 ≈⟨⟩
487
c257347a27f3 found limit in freyd
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 484
diff changeset
169 limit (isLimit lim') (a0 lim) ( t0 lim) o limit (isLimit lim) (a0 lim') (t0 lim')
495
633df882db86 fryed1 done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 487
diff changeset
170 ≈↑⟨ limit-uniqueness (isLimit lim') ( λ {i} → ( begin
487
c257347a27f3 found limit in freyd
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 484
diff changeset
171 TMap (t0 lim') i o ( limit (isLimit lim') (a0 lim) (t0 lim) o limit (isLimit lim) (a0 lim') (t0 lim') )
266
9e9f1e27e89f iso on limit
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 265
diff changeset
172 ≈⟨ assoc ⟩
487
c257347a27f3 found limit in freyd
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 484
diff changeset
173 ( TMap (t0 lim') i o limit (isLimit lim') (a0 lim) (t0 lim) ) o limit (isLimit lim) (a0 lim') (t0 lim')
c257347a27f3 found limit in freyd
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 484
diff changeset
174 ≈⟨ car ( t0f=t (isLimit lim') ) ⟩
c257347a27f3 found limit in freyd
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 484
diff changeset
175 TMap (t0 lim) i o limit (isLimit lim) (a0 lim') (t0 lim')
c257347a27f3 found limit in freyd
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 484
diff changeset
176 ≈⟨ t0f=t (isLimit lim) ⟩
484
fcae3025d900 fix Limit pu a0 and t0 in record definition
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 475
diff changeset
177 TMap (t0 lim') i
271
28278175d696 limit2adjoint done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 270
diff changeset
178 ∎) ) ⟩
487
c257347a27f3 found limit in freyd
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 484
diff changeset
179 limit (isLimit lim') (a0 lim') (t0 lim')
495
633df882db86 fryed1 done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 487
diff changeset
180 ≈⟨ limit-uniqueness (isLimit lim') idR ⟩
484
fcae3025d900 fix Limit pu a0 and t0 in record definition
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 475
diff changeset
181 id (a0 lim' )
266
9e9f1e27e89f iso on limit
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 265
diff changeset
182
9e9f1e27e89f iso on limit
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 265
diff changeset
183
9e9f1e27e89f iso on limit
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 265
diff changeset
184
484
fcae3025d900 fix Limit pu a0 and t0 in record definition
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 475
diff changeset
185
282
c831abfa9bf4 limit on going...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 281
diff changeset
186 open import CatExponetial
267
b1b728559d89 Constancy Functor
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 266
diff changeset
187
b1b728559d89 Constancy Functor
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 266
diff changeset
188 open Functor
b1b728559d89 Constancy Functor
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 266
diff changeset
189
b1b728559d89 Constancy Functor
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 266
diff changeset
190 --------------------------------
b1b728559d89 Constancy Functor
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 266
diff changeset
191 --
363
cf9ee72f9b0e two cat
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 312
diff changeset
192 -- Constancy Functor
266
9e9f1e27e89f iso on limit
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 265
diff changeset
193
268
2ff44ee3cb32 co universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 267
diff changeset
194 KI : { c₁' c₂' ℓ' : Level} ( I : Category c₁' c₂' ℓ' ) → Functor A ( A ^ I )
2ff44ee3cb32 co universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 267
diff changeset
195 KI { c₁'} {c₂'} {ℓ'} I = record {
691
917e51be9bbf change argument of Limit and K
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 690
diff changeset
196 FObj = λ a → K I A a ;
917e51be9bbf change argument of Limit and K
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 690
diff changeset
197 FMap = λ f → record { -- NTrans I A (K I A a) (K I A b)
267
b1b728559d89 Constancy Functor
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 266
diff changeset
198 TMap = λ a → f ;
282
c831abfa9bf4 limit on going...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 281
diff changeset
199 isNTrans = record {
267
b1b728559d89 Constancy Functor
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 266
diff changeset
200 commute = λ {a b f₁} → commute1 {a} {b} {f₁} f
b1b728559d89 Constancy Functor
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 266
diff changeset
201 }
282
c831abfa9bf4 limit on going...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 281
diff changeset
202 } ;
266
9e9f1e27e89f iso on limit
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 265
diff changeset
203 isFunctor = let open ≈-Reasoning (A) in record {
267
b1b728559d89 Constancy Functor
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 266
diff changeset
204 ≈-cong = λ f=g {x} → f=g
266
9e9f1e27e89f iso on limit
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 265
diff changeset
205 ; identity = refl-hom
267
b1b728559d89 Constancy Functor
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 266
diff changeset
206 ; distr = refl-hom
266
9e9f1e27e89f iso on limit
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 265
diff changeset
207 }
267
b1b728559d89 Constancy Functor
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 266
diff changeset
208 } where
b1b728559d89 Constancy Functor
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 266
diff changeset
209 commute1 : {a b : Obj I} {f₁ : Hom I a b} → {a' b' : Obj A} → (f : Hom A a' b' ) →
691
917e51be9bbf change argument of Limit and K
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 690
diff changeset
210 A [ A [ FMap (K I A b') f₁ o f ] ≈ A [ f o FMap (K I A a') f₁ ] ]
282
c831abfa9bf4 limit on going...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 281
diff changeset
211 commute1 {a} {b} {f₁} {a'} {b'} f = let open ≈-Reasoning (A) in begin
691
917e51be9bbf change argument of Limit and K
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 690
diff changeset
212 FMap (K I A b') f₁ o f
267
b1b728559d89 Constancy Functor
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 266
diff changeset
213 ≈⟨ idL ⟩
b1b728559d89 Constancy Functor
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 266
diff changeset
214 f
b1b728559d89 Constancy Functor
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 266
diff changeset
215 ≈↑⟨ idR ⟩
691
917e51be9bbf change argument of Limit and K
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 690
diff changeset
216 f o FMap (K I A a') f₁
267
b1b728559d89 Constancy Functor
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 266
diff changeset
217
b1b728559d89 Constancy Functor
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 266
diff changeset
218
b1b728559d89 Constancy Functor
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 266
diff changeset
219
272
5f2b8a5cc115 adjunction to limit
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 271
diff changeset
220 ---------
5f2b8a5cc115 adjunction to limit
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 271
diff changeset
221 --
298
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 297
diff changeset
222 -- Limit Constancy Functor F : A → A^I has right adjoint
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 297
diff changeset
223 --
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 297
diff changeset
224 -- we are going to prove universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 297
diff changeset
225
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 297
diff changeset
226 ---------
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 297
diff changeset
227 --
272
5f2b8a5cc115 adjunction to limit
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 271
diff changeset
228 -- limit gives co universal mapping ( i.e. adjunction )
5f2b8a5cc115 adjunction to limit
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 271
diff changeset
229 --
5f2b8a5cc115 adjunction to limit
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 271
diff changeset
230 -- F = KI I : Functor A (A ^ I)
282
c831abfa9bf4 limit on going...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 281
diff changeset
231 -- U = λ b → A0 (lim b {a0 b} {t0 b}
c831abfa9bf4 limit on going...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 281
diff changeset
232 -- ε = λ b → T0 ( lim b {a0 b} {t0 b} )
475
4c0a955b651d add license
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 468
diff changeset
233 --
4c0a955b651d add license
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 468
diff changeset
234 -- a0 : Obj A and t0 : NTrans K Γ come from the limit
272
5f2b8a5cc115 adjunction to limit
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 271
diff changeset
235
282
c831abfa9bf4 limit on going...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 281
diff changeset
236 limit2couniv :
691
917e51be9bbf change argument of Limit and K
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 690
diff changeset
237 ( lim : ( Γ : Functor I A ) → Limit I A Γ )
690
3d41a8edbf63 fix universal mapping done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 689
diff changeset
238 → coUniversalMapping A ( A ^ I ) (KI I)
688
a5f2ca67e7c5 fix monad/adjunction definition
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 686
diff changeset
239 limit2couniv lim = record {
690
3d41a8edbf63 fix universal mapping done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 689
diff changeset
240 U = λ b → a0 ( lim b) ;
3d41a8edbf63 fix universal mapping done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 689
diff changeset
241 ε = λ b → t0 (lim b) ;
688
a5f2ca67e7c5 fix monad/adjunction definition
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 686
diff changeset
242 _*' = λ {b} {a} k → limit (isLimit (lim b )) a k ;
693
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 692
diff changeset
243 iscoUniversalMapping = record { couniversalMapping = λ{ b a f} → couniversalMapping1 {b} {a} {f} ;
271
28278175d696 limit2adjoint done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 270
diff changeset
244 couniquness = couniquness2
270
8ba03259a177 one yellow remain on ∀{x} → B [ TMap f x ≈ TMap g x ]
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 269
diff changeset
245 }
8ba03259a177 one yellow remain on ∀{x} → B [ TMap f x ≈ TMap g x ]
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 269
diff changeset
246 } where
8ba03259a177 one yellow remain on ∀{x} → B [ TMap f x ≈ TMap g x ]
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 269
diff changeset
247 couniversalMapping1 : {b : Obj (A ^ I)} {a : Obj A} {f : Hom (A ^ I) (FObj (KI I) a) b} →
487
c257347a27f3 found limit in freyd
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 484
diff changeset
248 A ^ I [ A ^ I [ t0 (lim b) o FMap (KI I) (limit (isLimit (lim b)) a f) ] ≈ f ]
270
8ba03259a177 one yellow remain on ∀{x} → B [ TMap f x ≈ TMap g x ]
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 269
diff changeset
249 couniversalMapping1 {b} {a} {f} {i} = let open ≈-Reasoning (A) in begin
487
c257347a27f3 found limit in freyd
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 484
diff changeset
250 TMap (t0 (lim b )) i o TMap ( FMap (KI I) (limit (isLimit (lim b )) a f) ) i
270
8ba03259a177 one yellow remain on ∀{x} → B [ TMap f x ≈ TMap g x ]
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 269
diff changeset
251 ≈⟨⟩
487
c257347a27f3 found limit in freyd
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 484
diff changeset
252 TMap (t0 (lim b)) i o (limit (isLimit (lim b)) a f)
c257347a27f3 found limit in freyd
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 484
diff changeset
253 ≈⟨ t0f=t (isLimit (lim b)) ⟩
270
8ba03259a177 one yellow remain on ∀{x} → B [ TMap f x ≈ TMap g x ]
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 269
diff changeset
254 TMap f i -- i comes from ∀{i} → B [ TMap f i ≈ TMap g i ]
8ba03259a177 one yellow remain on ∀{x} → B [ TMap f x ≈ TMap g x ]
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 269
diff changeset
255
484
fcae3025d900 fix Limit pu a0 and t0 in record definition
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 475
diff changeset
256 couniquness2 : {b : Obj (A ^ I)} {a : Obj A} {f : Hom (A ^ I) (FObj (KI I) a) b} {g : Hom A a (a0 (lim b ))} →
fcae3025d900 fix Limit pu a0 and t0 in record definition
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 475
diff changeset
257 ( ∀ { i : Obj I } → A [ A [ TMap (t0 (lim b )) i o TMap ( FMap (KI I) g) i ] ≈ TMap f i ] )
487
c257347a27f3 found limit in freyd
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 484
diff changeset
258 → A [ limit (isLimit (lim b )) a f ≈ g ]
271
28278175d696 limit2adjoint done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 270
diff changeset
259 couniquness2 {b} {a} {f} {g} lim-g=f = let open ≈-Reasoning (A) in begin
487
c257347a27f3 found limit in freyd
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 484
diff changeset
260 limit (isLimit (lim b )) a f
495
633df882db86 fryed1 done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 487
diff changeset
261 ≈⟨ limit-uniqueness (isLimit ( lim b )) lim-g=f ⟩
270
8ba03259a177 one yellow remain on ∀{x} → B [ TMap f x ≈ TMap g x ]
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 269
diff changeset
262 g
8ba03259a177 one yellow remain on ∀{x} → B [ TMap f x ≈ TMap g x ]
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 269
diff changeset
263
268
2ff44ee3cb32 co universal mapping
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 267
diff changeset
264
282
c831abfa9bf4 limit on going...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 281
diff changeset
265 univ2limit :
690
3d41a8edbf63 fix universal mapping done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 689
diff changeset
266 ( univ : coUniversalMapping A (A ^ I) (KI I) ) →
691
917e51be9bbf change argument of Limit and K
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 690
diff changeset
267 ( Γ : Functor I A ) → Limit I A Γ
690
3d41a8edbf63 fix universal mapping done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 689
diff changeset
268 univ2limit univ Γ = record {
3d41a8edbf63 fix universal mapping done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 689
diff changeset
269 a0 = (coUniversalMapping.U univ ) Γ ;
3d41a8edbf63 fix universal mapping done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 689
diff changeset
270 t0 = (coUniversalMapping.ε univ ) Γ ;
487
c257347a27f3 found limit in freyd
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 484
diff changeset
271 isLimit = record {
c257347a27f3 found limit in freyd
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 484
diff changeset
272 limit = λ a t → limit1 a t ;
c257347a27f3 found limit in freyd
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 484
diff changeset
273 t0f=t = λ {a t i } → t0f=t1 {a} {t} {i} ;
495
633df882db86 fryed1 done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 487
diff changeset
274 limit-uniqueness = λ {a} {t} {f} t=f → limit-uniqueness1 {a} {t} {f} t=f
487
c257347a27f3 found limit in freyd
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 484
diff changeset
275 }
272
5f2b8a5cc115 adjunction to limit
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 271
diff changeset
276 } where
690
3d41a8edbf63 fix universal mapping done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 689
diff changeset
277 U : Obj (A ^ I) → Obj A
3d41a8edbf63 fix universal mapping done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 689
diff changeset
278 U b = coUniversalMapping.U univ b
3d41a8edbf63 fix universal mapping done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 689
diff changeset
279 ε : ( b : Obj (A ^ I ) ) → NTrans I A (FObj (KI I) (U b)) b
3d41a8edbf63 fix universal mapping done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 689
diff changeset
280 ε b = coUniversalMapping.ε univ b
689
fb9fc9652c04 fix again
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 688
diff changeset
281 limit1 : (a : Obj A) → NTrans I A (FObj (KI I) a) Γ → Hom A a (U Γ)
fb9fc9652c04 fix again
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 688
diff changeset
282 limit1 a t = coUniversalMapping._*' univ {_} {a} t
691
917e51be9bbf change argument of Limit and K
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 690
diff changeset
283 t0f=t1 : {a : Obj A} {t : NTrans I A (K I A a) Γ} {i : Obj I} →
689
fb9fc9652c04 fix again
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 688
diff changeset
284 A [ A [ TMap (ε Γ) i o limit1 a t ] ≈ TMap t i ]
274
1b651faa2391 adjoint2limit problems are written
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 273
diff changeset
285 t0f=t1 {a} {t} {i} = let open ≈-Reasoning (A) in begin
689
fb9fc9652c04 fix again
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 688
diff changeset
286 TMap (ε Γ) i o limit1 a t
274
1b651faa2391 adjoint2limit problems are written
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 273
diff changeset
287 ≈⟨⟩
689
fb9fc9652c04 fix again
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 688
diff changeset
288 TMap (ε Γ) i o coUniversalMapping._*' univ t
fb9fc9652c04 fix again
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 688
diff changeset
289 ≈⟨ coIsUniversalMapping.couniversalMapping ( coUniversalMapping.iscoUniversalMapping univ) {Γ} {a} {t} ⟩
274
1b651faa2391 adjoint2limit problems are written
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 273
diff changeset
290 TMap t i
1b651faa2391 adjoint2limit problems are written
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 273
diff changeset
291
691
917e51be9bbf change argument of Limit and K
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 690
diff changeset
292 limit-uniqueness1 : { a : Obj A } → { t : NTrans I A ( K I A a ) Γ } → { f : Hom A a (U Γ)}
689
fb9fc9652c04 fix again
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 688
diff changeset
293 → ( ∀ { i : Obj I } → A [ A [ TMap (ε Γ) i o f ] ≈ TMap t i ] ) → A [ limit1 a t ≈ f ]
274
1b651faa2391 adjoint2limit problems are written
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 273
diff changeset
294 limit-uniqueness1 {a} {t} {f} εf=t = let open ≈-Reasoning (A) in begin
689
fb9fc9652c04 fix again
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 688
diff changeset
295 coUniversalMapping._*' univ t
fb9fc9652c04 fix again
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 688
diff changeset
296 ≈⟨ ( coIsUniversalMapping.couniquness ( coUniversalMapping.iscoUniversalMapping univ) ) εf=t ⟩
274
1b651faa2391 adjoint2limit problems are written
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 273
diff changeset
297 f
1b651faa2391 adjoint2limit problems are written
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 273
diff changeset
298
1b651faa2391 adjoint2limit problems are written
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 273
diff changeset
299
303
7f40d6a51c72 Limit form equalizer and product done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 302
diff changeset
300
688
a5f2ca67e7c5 fix monad/adjunction definition
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 686
diff changeset
301
686
14ad6ec8a662 fix comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 685
diff changeset
302 -- another form of uniqueness of a product
672
749df4959d19 fix completeness
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 508
diff changeset
303 lemma-p0 : (a b ab : Obj A) ( π1 : Hom A ab a ) ( π2 : Hom A ab b ) ( prod : IsProduct A a b ab π1 π2 ) →
303
7f40d6a51c72 Limit form equalizer and product done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 302
diff changeset
304 A [ _×_ prod π1 π2 ≈ id1 A ab ]
7f40d6a51c72 Limit form equalizer and product done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 302
diff changeset
305 lemma-p0 a b ab π1 π2 prod = let open ≈-Reasoning (A) in begin
7f40d6a51c72 Limit form equalizer and product done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 302
diff changeset
306 _×_ prod π1 π2
7f40d6a51c72 Limit form equalizer and product done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 302
diff changeset
307 ≈↑⟨ ×-cong prod idR idR ⟩
7f40d6a51c72 Limit form equalizer and product done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 302
diff changeset
308 _×_ prod (A [ π1 o id1 A ab ]) (A [ π2 o id1 A ab ])
672
749df4959d19 fix completeness
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 508
diff changeset
309 ≈⟨ IsProduct.uniqueness prod ⟩
303
7f40d6a51c72 Limit form equalizer and product done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 302
diff changeset
310 id1 A ab
7f40d6a51c72 Limit form equalizer and product done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 302
diff changeset
311
7f40d6a51c72 Limit form equalizer and product done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 302
diff changeset
312
7f40d6a51c72 Limit form equalizer and product done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 302
diff changeset
313
282
c831abfa9bf4 limit on going...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 281
diff changeset
314 open IProduct
508
3ce21b2a671a IProduct is written in Sets
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 495
diff changeset
315 open IsIProduct
283
5492a0681f55 on going ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 282
diff changeset
316 open Equalizer
281
dbd2044add2a limit from product and equalizer continue...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 280
diff changeset
317
282
c831abfa9bf4 limit on going...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 281
diff changeset
318 --
c831abfa9bf4 limit on going...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 281
diff changeset
319 -- limit from equalizer and product
c831abfa9bf4 limit on going...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 281
diff changeset
320 --
685
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 684
diff changeset
321 -- Γu
692
3ca3b5a4ab45 fix comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 691
diff changeset
322 -- → Γj → Γk ←
779
6b4bd02efd80 CCC start
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 693
diff changeset
323 -- / ↑ ↑ \
6b4bd02efd80 CCC start
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 693
diff changeset
324 -- proj j / | | \ proj k
6b4bd02efd80 CCC start
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 693
diff changeset
325 -- / μu| |μu \ Equalizer have to be independent from j and k
692
3ca3b5a4ab45 fix comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 691
diff changeset
326 -- | | | | so we need products of Obj I and Hom I
686
14ad6ec8a662 fix comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 685
diff changeset
327 -- |product of Hom I |
14ad6ec8a662 fix comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 685
diff changeset
328 -- | ↑ ↑ | K u = id lim
779
6b4bd02efd80 CCC start
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 693
diff changeset
329 -- | } | |
6b4bd02efd80 CCC start
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 693
diff changeset
330 -- | f(id)| |g(Γ) | lim = K j -----------→ K k = lim
686
14ad6ec8a662 fix comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 685
diff changeset
331 -- | | | | | u |
779
6b4bd02efd80 CCC start
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 693
diff changeset
332 -- \ | | / proj j o e = ε j | | ε k = proj k o e
686
14ad6ec8a662 fix comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 685
diff changeset
333 -- product of Obj I μ u o g o e | | μ u o f o e
14ad6ec8a662 fix comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 685
diff changeset
334 -- ↑ | |
678
867ea41b331c extensionality remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 677
diff changeset
335 -- | e = equalizer f g | |
682
50a01df1169a clean up of pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 681
diff changeset
336 -- | ↓ ↓
686
14ad6ec8a662 fix comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 685
diff changeset
337 -- lim ←---------------- d' Γ j ----------→ Γ k
682
50a01df1169a clean up of pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 681
diff changeset
338 -- k ( product pi ) Γ u
50a01df1169a clean up of pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 681
diff changeset
339 -- Γ u o ε j = ε k
283
5492a0681f55 on going ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 282
diff changeset
340 --
291
c8e26650ddf9 limit preserving ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 290
diff changeset
341
678
867ea41b331c extensionality remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 677
diff changeset
342 -- homprod should be written by IProduct
686
14ad6ec8a662 fix comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 685
diff changeset
343 -- If I is locally small, this is iso to a set
678
867ea41b331c extensionality remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 677
diff changeset
344 record homprod {c : Level } : Set (suc c₁' ⊔ suc c₂' ) where
867ea41b331c extensionality remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 677
diff changeset
345 field
867ea41b331c extensionality remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 677
diff changeset
346 hom-j : Obj I
867ea41b331c extensionality remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 677
diff changeset
347 hom-k : Obj I
867ea41b331c extensionality remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 677
diff changeset
348 hom : Hom I hom-j hom-k
867ea41b331c extensionality remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 677
diff changeset
349 open homprod
867ea41b331c extensionality remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 677
diff changeset
350
680
5d894993477f fh=gh done. limit from product and equalizer done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 679
diff changeset
351 Homprod : {j k : Obj I} (u : Hom I j k) → homprod {c₁}
5d894993477f fh=gh done. limit from product and equalizer done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 679
diff changeset
352 Homprod {j} {k} u = record {hom-j = j ; hom-k = k ; hom = u}
5d894993477f fh=gh done. limit from product and equalizer done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 679
diff changeset
353
282
c831abfa9bf4 limit on going...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 281
diff changeset
354 limit-from :
691
917e51be9bbf change argument of Limit and K
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 690
diff changeset
355 ( prod : {c : Level} { I : Set c } → ( ai : I → Obj A ) → IProduct I A ai )
673
0007f9a25e9c fix limit from product and equalizer (not yet finished )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 672
diff changeset
356 ( eqa : {a b : Obj A} → (f g : Hom A a b) → Equalizer A f g )
691
917e51be9bbf change argument of Limit and K
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 690
diff changeset
357 → Limit I A Γ
673
0007f9a25e9c fix limit from product and equalizer (not yet finished )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 672
diff changeset
358 limit-from prod eqa = record {
682
50a01df1169a clean up of pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 681
diff changeset
359 a0 = d ;
685
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 684
diff changeset
360 t0 = cone-ε ;
487
c257347a27f3 found limit in freyd
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 484
diff changeset
361 isLimit = record {
685
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 684
diff changeset
362 limit = λ a t → cone1 a t ;
673
0007f9a25e9c fix limit from product and equalizer (not yet finished )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 672
diff changeset
363 t0f=t = λ {a t i } → t0f=t1 {a} {t} {i} ;
495
633df882db86 fryed1 done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 487
diff changeset
364 limit-uniqueness = λ {a} {t} {f} t=f → limit-uniqueness1 {a} {t} {f} t=f
487
c257347a27f3 found limit in freyd
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 484
diff changeset
365 }
282
c831abfa9bf4 limit on going...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 281
diff changeset
366 } where
680
5d894993477f fh=gh done. limit from product and equalizer done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 679
diff changeset
367 p0 : Obj A
673
0007f9a25e9c fix limit from product and equalizer (not yet finished )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 672
diff changeset
368 p0 = iprod (prod (FObj Γ))
682
50a01df1169a clean up of pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 681
diff changeset
369 Fcod : homprod {c₁} → Obj A
50a01df1169a clean up of pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 681
diff changeset
370 Fcod = λ u → FObj Γ ( hom-k u )
679
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 678
diff changeset
371 f : Hom A p0 (iprod (prod Fcod))
680
5d894993477f fh=gh done. limit from product and equalizer done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 679
diff changeset
372 f = iproduct (isIProduct (prod Fcod)) (λ u → pi (prod (FObj Γ)) (hom-k u ))
679
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 678
diff changeset
373 g : Hom A p0 (iprod (prod Fcod))
680
5d894993477f fh=gh done. limit from product and equalizer done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 679
diff changeset
374 g = iproduct (isIProduct (prod Fcod)) (λ u → A [ FMap Γ (hom u) o pi (prod (FObj Γ)) (hom-j u ) ] )
682
50a01df1169a clean up of pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 681
diff changeset
375 equ-ε : Equalizer A g f
50a01df1169a clean up of pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 681
diff changeset
376 equ-ε = eqa g f
50a01df1169a clean up of pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 681
diff changeset
377 d : Obj A
50a01df1169a clean up of pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 681
diff changeset
378 d = equalizer-c equ-ε
50a01df1169a clean up of pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 681
diff changeset
379 e : Hom A d p0
50a01df1169a clean up of pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 681
diff changeset
380 e = equalizer equ-ε
50a01df1169a clean up of pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 681
diff changeset
381 equ = isEqualizer equ-ε
683
88e8a1290dc4 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 682
diff changeset
382 -- projection of the product of Obj I
682
50a01df1169a clean up of pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 681
diff changeset
383 proj : (i : Obj I) → Hom A p0 (FObj Γ i)
50a01df1169a clean up of pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 681
diff changeset
384 proj = pi ( prod (FObj Γ) )
50a01df1169a clean up of pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 681
diff changeset
385 prodΓ = isIProduct ( prod (FObj Γ) )
683
88e8a1290dc4 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 682
diff changeset
386 -- projection of the product of Hom I
686
14ad6ec8a662 fix comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 685
diff changeset
387 μ : {j k : Obj I} → (u : Hom I j k ) → Hom A (iprod (prod Fcod)) (Fcod (Homprod u))
14ad6ec8a662 fix comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 685
diff changeset
388 μ u = pi (prod Fcod ) (Homprod u)
691
917e51be9bbf change argument of Limit and K
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 690
diff changeset
389 cone-ε : NTrans I A (K I A (equalizer-c equ-ε ) ) Γ
685
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 684
diff changeset
390 cone-ε = record {
682
50a01df1169a clean up of pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 681
diff changeset
391 TMap = λ i → tmap i ;
50a01df1169a clean up of pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 681
diff changeset
392 isNTrans = record { commute = commute1 }
50a01df1169a clean up of pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 681
diff changeset
393 } where
691
917e51be9bbf change argument of Limit and K
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 690
diff changeset
394 tmap : (i : Obj I) → Hom A (FObj (K I A d) i) (FObj Γ i)
682
50a01df1169a clean up of pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 681
diff changeset
395 tmap i = A [ proj i o e ]
50a01df1169a clean up of pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 681
diff changeset
396 commute1 : {j k : Obj I} {u : Hom I j k} →
691
917e51be9bbf change argument of Limit and K
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 690
diff changeset
397 A [ A [ FMap Γ u o tmap j ] ≈ A [ tmap k o FMap (K I A d) u ] ]
682
50a01df1169a clean up of pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 681
diff changeset
398 commute1 {j} {k} {u} = let open ≈-Reasoning (A) in begin
50a01df1169a clean up of pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 681
diff changeset
399 FMap Γ u o tmap j
50a01df1169a clean up of pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 681
diff changeset
400 ≈⟨⟩
50a01df1169a clean up of pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 681
diff changeset
401 FMap Γ u o ( proj j o e )
50a01df1169a clean up of pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 681
diff changeset
402 ≈⟨ assoc ⟩
50a01df1169a clean up of pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 681
diff changeset
403 ( FMap Γ u o pi (prod (FObj Γ)) j ) o e
50a01df1169a clean up of pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 681
diff changeset
404 ≈↑⟨ car ( pif=q (isIProduct (prod Fcod )) ) ⟩
686
14ad6ec8a662 fix comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 685
diff changeset
405 ( μ u o g ) o e
682
50a01df1169a clean up of pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 681
diff changeset
406 ≈↑⟨ assoc ⟩
686
14ad6ec8a662 fix comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 685
diff changeset
407 μ u o (g o e )
682
50a01df1169a clean up of pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 681
diff changeset
408 ≈⟨ cdr ( fe=ge (isEqualizer equ-ε )) ⟩
686
14ad6ec8a662 fix comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 685
diff changeset
409 μ u o (f o e )
682
50a01df1169a clean up of pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 681
diff changeset
410 ≈⟨ assoc ⟩
686
14ad6ec8a662 fix comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 685
diff changeset
411 (μ u o f ) o e
682
50a01df1169a clean up of pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 681
diff changeset
412 ≈⟨ car ( pif=q (isIProduct (prod Fcod ))) ⟩
50a01df1169a clean up of pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 681
diff changeset
413 pi (prod (FObj Γ)) k o e
50a01df1169a clean up of pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 681
diff changeset
414 ≈⟨⟩
50a01df1169a clean up of pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 681
diff changeset
415 proj k o e
50a01df1169a clean up of pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 681
diff changeset
416 ≈↑⟨ idR ⟩
50a01df1169a clean up of pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 681
diff changeset
417 (proj k o e ) o id1 A d
50a01df1169a clean up of pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 681
diff changeset
418 ≈⟨⟩
691
917e51be9bbf change argument of Limit and K
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 690
diff changeset
419 tmap k o FMap (K I A d) u
682
50a01df1169a clean up of pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 681
diff changeset
420
683
88e8a1290dc4 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 682
diff changeset
421 -- an arrow to our product of Obj I ( is an equalizer because of commutativity of t )
691
917e51be9bbf change argument of Limit and K
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 690
diff changeset
422 h : {a : Obj A} → (t : NTrans I A (K I A a) Γ ) → Hom A a p0
683
88e8a1290dc4 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 682
diff changeset
423 h t = iproduct prodΓ (TMap t)
691
917e51be9bbf change argument of Limit and K
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 690
diff changeset
424 fh=gh : (a : Obj A) → (t : NTrans I A (K I A a) Γ ) →
683
88e8a1290dc4 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 682
diff changeset
425 A [ A [ g o h t ] ≈ A [ f o h t ] ]
679
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 678
diff changeset
426 fh=gh a t = let open ≈-Reasoning (A) in begin
683
88e8a1290dc4 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 682
diff changeset
427 g o h t
680
5d894993477f fh=gh done. limit from product and equalizer done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 679
diff changeset
428 ≈↑⟨ ip-uniqueness (isIProduct (prod Fcod)) ⟩
683
88e8a1290dc4 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 682
diff changeset
429 iproduct (isIProduct (prod Fcod)) (λ u → pi (prod Fcod) u o ( g o h t ))
682
50a01df1169a clean up of pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 681
diff changeset
430 ≈⟨ ip-cong (isIProduct (prod Fcod)) ( λ u → begin
683
88e8a1290dc4 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 682
diff changeset
431 pi (prod Fcod) u o ( g o h t )
682
50a01df1169a clean up of pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 681
diff changeset
432 ≈⟨ assoc ⟩
683
88e8a1290dc4 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 682
diff changeset
433 ( pi (prod Fcod) u o g ) o h t
682
50a01df1169a clean up of pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 681
diff changeset
434 ≈⟨ car (pif=q (isIProduct (prod Fcod ))) ⟩
683
88e8a1290dc4 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 682
diff changeset
435 (FMap Γ (hom u) o pi (prod (FObj Γ)) (hom-j u) ) o h t
682
50a01df1169a clean up of pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 681
diff changeset
436 ≈↑⟨ assoc ⟩
683
88e8a1290dc4 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 682
diff changeset
437 FMap Γ (hom u) o (pi (prod (FObj Γ)) (hom-j u) o h t )
682
50a01df1169a clean up of pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 681
diff changeset
438 ≈⟨ cdr ( pif=q prodΓ ) ⟩
50a01df1169a clean up of pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 681
diff changeset
439 FMap Γ (hom u) o TMap t (hom-j u)
50a01df1169a clean up of pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 681
diff changeset
440 ≈⟨ IsNTrans.commute (isNTrans t) ⟩
50a01df1169a clean up of pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 681
diff changeset
441 TMap t (hom-k u) o id1 A a
50a01df1169a clean up of pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 681
diff changeset
442 ≈⟨ idR ⟩
50a01df1169a clean up of pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 681
diff changeset
443 TMap t (hom-k u)
50a01df1169a clean up of pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 681
diff changeset
444 ≈↑⟨ pif=q prodΓ ⟩
683
88e8a1290dc4 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 682
diff changeset
445 pi (prod (FObj Γ)) (hom-k u) o h t
682
50a01df1169a clean up of pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 681
diff changeset
446 ≈↑⟨ car (pif=q (isIProduct (prod Fcod ))) ⟩
683
88e8a1290dc4 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 682
diff changeset
447 (pi (prod Fcod) u o f ) o h t
682
50a01df1169a clean up of pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 681
diff changeset
448 ≈↑⟨ assoc ⟩
683
88e8a1290dc4 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 682
diff changeset
449 pi (prod Fcod) u o ( f o h t )
682
50a01df1169a clean up of pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 681
diff changeset
450
50a01df1169a clean up of pullback
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 681
diff changeset
451 ) ⟩
683
88e8a1290dc4 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 682
diff changeset
452 iproduct (isIProduct (prod Fcod)) (λ u → pi (prod Fcod) u o ( f o h t ))
680
5d894993477f fh=gh done. limit from product and equalizer done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 679
diff changeset
453 ≈⟨ ip-uniqueness (isIProduct (prod Fcod)) ⟩
683
88e8a1290dc4 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 682
diff changeset
454 f o h t
678
867ea41b331c extensionality remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 677
diff changeset
455
691
917e51be9bbf change argument of Limit and K
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 690
diff changeset
456 cone1 : (a : Obj A) → NTrans I A (K I A a) Γ → Hom A a d
685
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 684
diff changeset
457 cone1 a t = k equ (h t) ( fh=gh a t )
691
917e51be9bbf change argument of Limit and K
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 690
diff changeset
458 t0f=t1 : {a : Obj A} {t : NTrans I A (K I A a) Γ} {i : Obj I} →
685
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 684
diff changeset
459 A [ A [ TMap cone-ε i o cone1 a t ] ≈ TMap t i ]
283
5492a0681f55 on going ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 282
diff changeset
460 t0f=t1 {a} {t} {i} = let open ≈-Reasoning (A) in begin
685
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 684
diff changeset
461 TMap cone-ε i o cone1 a t
283
5492a0681f55 on going ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 282
diff changeset
462 ≈⟨⟩
683
88e8a1290dc4 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 682
diff changeset
463 ( ( proj i ) o e ) o k equ (h t) (fh=gh a t)
283
5492a0681f55 on going ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 282
diff changeset
464 ≈↑⟨ assoc ⟩
683
88e8a1290dc4 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 682
diff changeset
465 proj i o ( e o k equ (h t) (fh=gh a t ) )
673
0007f9a25e9c fix limit from product and equalizer (not yet finished )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 672
diff changeset
466 ≈⟨ cdr ( ek=h equ) ⟩
683
88e8a1290dc4 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 682
diff changeset
467 proj i o h t
676
faf48511f69d two product as in CWM
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 675
diff changeset
468 ≈⟨ pif=q prodΓ ⟩
283
5492a0681f55 on going ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 282
diff changeset
469 TMap t i
5492a0681f55 on going ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 282
diff changeset
470
691
917e51be9bbf change argument of Limit and K
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 690
diff changeset
471 limit-uniqueness1 : {a : Obj A} {t : NTrans I A (K I A a) Γ} {f : Hom A a d}
685
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 684
diff changeset
472 → ({i : Obj I} → A [ A [ TMap cone-ε i o f ] ≈ TMap t i ]) →
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 684
diff changeset
473 A [ cone1 a t ≈ f ]
283
5492a0681f55 on going ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 282
diff changeset
474 limit-uniqueness1 {a} {t} {f} lim=t = let open ≈-Reasoning (A) in begin
685
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 684
diff changeset
475 cone1 a t
283
5492a0681f55 on going ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 282
diff changeset
476 ≈⟨⟩
683
88e8a1290dc4 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 682
diff changeset
477 k equ (h t) (fh=gh a t)
673
0007f9a25e9c fix limit from product and equalizer (not yet finished )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 672
diff changeset
478 ≈⟨ IsEqualizer.uniqueness equ ( begin
283
5492a0681f55 on going ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 282
diff changeset
479 e o f
673
0007f9a25e9c fix limit from product and equalizer (not yet finished )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 672
diff changeset
480 ≈↑⟨ ip-uniqueness prodΓ ⟩
0007f9a25e9c fix limit from product and equalizer (not yet finished )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 672
diff changeset
481 iproduct prodΓ (λ i → ( proj i o ( e o f ) ) )
0007f9a25e9c fix limit from product and equalizer (not yet finished )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 672
diff changeset
482 ≈⟨ ip-cong prodΓ ( λ i → begin
285
46d4ad55b948 commutativity continue...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 284
diff changeset
483 proj i o ( e o f )
284
4be696e3fd94 comutativity remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 283
diff changeset
484 ≈⟨ assoc ⟩
285
46d4ad55b948 commutativity continue...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 284
diff changeset
485 ( proj i o e ) o f
46d4ad55b948 commutativity continue...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 284
diff changeset
486 ≈⟨ lim=t {i} ⟩
46d4ad55b948 commutativity continue...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 284
diff changeset
487 TMap t i
284
4be696e3fd94 comutativity remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 283
diff changeset
488 ∎ ) ⟩
683
88e8a1290dc4 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 682
diff changeset
489 h t
283
5492a0681f55 on going ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 282
diff changeset
490 ∎ ) ⟩
5492a0681f55 on going ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 282
diff changeset
491 f
5492a0681f55 on going ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 282
diff changeset
492
5492a0681f55 on going ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 282
diff changeset
493
673
0007f9a25e9c fix limit from product and equalizer (not yet finished )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 672
diff changeset
494
0007f9a25e9c fix limit from product and equalizer (not yet finished )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 672
diff changeset
495 --
291
c8e26650ddf9 limit preserving ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 290
diff changeset
496 --
c8e26650ddf9 limit preserving ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 290
diff changeset
497 -- Adjoint functor preserves limits
c8e26650ddf9 limit preserving ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 290
diff changeset
498 --
c8e26650ddf9 limit preserving ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 290
diff changeset
499 --
c8e26650ddf9 limit preserving ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 290
diff changeset
500
c8e26650ddf9 limit preserving ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 290
diff changeset
501 open import Category.Cat
c8e26650ddf9 limit preserving ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 290
diff changeset
502
c8e26650ddf9 limit preserving ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 290
diff changeset
503 ta1 : { c₁' c₂' ℓ' : Level} (B : Category c₁' c₂' ℓ') ( Γ : Functor I B )
691
917e51be9bbf change argument of Limit and K
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 690
diff changeset
504 ( lim : Obj B ) ( tb : NTrans I B ( K I B lim ) Γ ) →
917e51be9bbf change argument of Limit and K
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 690
diff changeset
505 ( U : Functor B A) → NTrans I A ( K I A (FObj U lim) ) (U ○ Γ)
299
8c72f5284bc8 remove module parameter from yoneda functor
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 298
diff changeset
506 ta1 B Γ lim tb U = record {
291
c8e26650ddf9 limit preserving ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 290
diff changeset
507 TMap = TMap (Functor*Nat I A U tb) ;
c8e26650ddf9 limit preserving ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 290
diff changeset
508 isNTrans = record { commute = λ {a} {b} {f} → let open ≈-Reasoning (A) in begin
c8e26650ddf9 limit preserving ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 290
diff changeset
509 FMap (U ○ Γ) f o TMap (Functor*Nat I A U tb) a
c8e26650ddf9 limit preserving ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 290
diff changeset
510 ≈⟨ nat ( Functor*Nat I A U tb ) ⟩
691
917e51be9bbf change argument of Limit and K
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 690
diff changeset
511 TMap (Functor*Nat I A U tb) b o FMap (U ○ K I B lim) f
291
c8e26650ddf9 limit preserving ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 290
diff changeset
512 ≈⟨ cdr (IsFunctor.identity (isFunctor U) ) ⟩
691
917e51be9bbf change argument of Limit and K
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 690
diff changeset
513 TMap (Functor*Nat I A U tb) b o FMap (K I A (FObj U lim)) f
291
c8e26650ddf9 limit preserving ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 290
diff changeset
514
c8e26650ddf9 limit preserving ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 290
diff changeset
515 } }
c8e26650ddf9 limit preserving ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 290
diff changeset
516
c8e26650ddf9 limit preserving ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 290
diff changeset
517 adjoint-preseve-limit :
691
917e51be9bbf change argument of Limit and K
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 690
diff changeset
518 { c₁' c₂' ℓ' : Level} (B : Category c₁' c₂' ℓ') ( Γ : Functor I B ) ( limitb : Limit I B Γ ) →
917e51be9bbf change argument of Limit and K
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 690
diff changeset
519 ( adj : Adjunction A B ) → Limit I A (Adjunction.U adj ○ Γ)
688
a5f2ca67e7c5 fix monad/adjunction definition
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 686
diff changeset
520 adjoint-preseve-limit B Γ limitb adj = record {
484
fcae3025d900 fix Limit pu a0 and t0 in record definition
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 475
diff changeset
521 a0 = FObj U lim ;
fcae3025d900 fix Limit pu a0 and t0 in record definition
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 475
diff changeset
522 t0 = ta1 B Γ lim tb U ;
487
c257347a27f3 found limit in freyd
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 484
diff changeset
523 isLimit = record {
c257347a27f3 found limit in freyd
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 484
diff changeset
524 limit = λ a t → limit1 a t ;
c257347a27f3 found limit in freyd
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 484
diff changeset
525 t0f=t = λ {a t i } → t0f=t1 {a} {t} {i} ;
495
633df882db86 fryed1 done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 487
diff changeset
526 limit-uniqueness = λ {a} {t} {f} t=f → limit-uniqueness1 {a} {t} {f} t=f
487
c257347a27f3 found limit in freyd
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 484
diff changeset
527 }
291
c8e26650ddf9 limit preserving ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 290
diff changeset
528 } where
688
a5f2ca67e7c5 fix monad/adjunction definition
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 686
diff changeset
529 U : Functor B A
a5f2ca67e7c5 fix monad/adjunction definition
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 686
diff changeset
530 U = Adjunction.U adj
a5f2ca67e7c5 fix monad/adjunction definition
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 686
diff changeset
531 F : Functor A B
a5f2ca67e7c5 fix monad/adjunction definition
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 686
diff changeset
532 F = Adjunction.F adj
a5f2ca67e7c5 fix monad/adjunction definition
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 686
diff changeset
533 η : NTrans A A identityFunctor ( U ○ F )
a5f2ca67e7c5 fix monad/adjunction definition
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 686
diff changeset
534 η = Adjunction.η adj
a5f2ca67e7c5 fix monad/adjunction definition
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 686
diff changeset
535 ε : NTrans B B ( F ○ U ) identityFunctor
a5f2ca67e7c5 fix monad/adjunction definition
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 686
diff changeset
536 ε = Adjunction.ε adj
484
fcae3025d900 fix Limit pu a0 and t0 in record definition
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 475
diff changeset
537 ta = ta1 B Γ (a0 limitb) (t0 limitb) U
fcae3025d900 fix Limit pu a0 and t0 in record definition
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 475
diff changeset
538 tb = t0 limitb
fcae3025d900 fix Limit pu a0 and t0 in record definition
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 475
diff changeset
539 lim = a0 limitb
691
917e51be9bbf change argument of Limit and K
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 690
diff changeset
540 tfmap : (a : Obj A) → NTrans I A (K I A a) (U ○ Γ) → (i : Obj I) → Hom B (FObj (K I B (FObj F a)) i) (FObj Γ i)
293
fb0ab8c72e15 limit defined.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 292
diff changeset
541 tfmap a t i = B [ TMap ε (FObj Γ i) o FMap F (TMap t i) ]
691
917e51be9bbf change argument of Limit and K
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 690
diff changeset
542 tF : (a : Obj A) → NTrans I A (K I A a) (U ○ Γ) → NTrans I B (K I B (FObj F a)) Γ
293
fb0ab8c72e15 limit defined.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 292
diff changeset
543 tF a t = record {
fb0ab8c72e15 limit defined.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 292
diff changeset
544 TMap = tfmap a t ;
fb0ab8c72e15 limit defined.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 292
diff changeset
545 isNTrans = record { commute = λ {a'} {b} {f} → let open ≈-Reasoning (B) in begin
fb0ab8c72e15 limit defined.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 292
diff changeset
546 FMap Γ f o tfmap a t a'
294
db4ecbdbf9e9 limit1 done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 293
diff changeset
547 ≈⟨⟩
db4ecbdbf9e9 limit1 done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 293
diff changeset
548 FMap Γ f o ( TMap ε (FObj Γ a') o FMap F (TMap t a'))
db4ecbdbf9e9 limit1 done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 293
diff changeset
549 ≈⟨ assoc ⟩
db4ecbdbf9e9 limit1 done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 293
diff changeset
550 (FMap Γ f o TMap ε (FObj Γ a') ) o FMap F (TMap t a')
db4ecbdbf9e9 limit1 done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 293
diff changeset
551 ≈⟨ car (nat ε) ⟩
db4ecbdbf9e9 limit1 done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 293
diff changeset
552 (TMap ε (FObj Γ b) o FMap (F ○ U) (FMap Γ f) ) o FMap F (TMap t a')
db4ecbdbf9e9 limit1 done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 293
diff changeset
553 ≈↑⟨ assoc ⟩
db4ecbdbf9e9 limit1 done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 293
diff changeset
554 TMap ε (FObj Γ b) o ( FMap (F ○ U) (FMap Γ f) o FMap F (TMap t a') )
db4ecbdbf9e9 limit1 done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 293
diff changeset
555 ≈↑⟨ cdr ( distr F ) ⟩
db4ecbdbf9e9 limit1 done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 293
diff changeset
556 TMap ε (FObj Γ b) o ( FMap F (A [ FMap U (FMap Γ f) o TMap t a' ] ) )
db4ecbdbf9e9 limit1 done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 293
diff changeset
557 ≈⟨ cdr ( fcong F (nat t) ) ⟩
691
917e51be9bbf change argument of Limit and K
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 690
diff changeset
558 TMap ε (FObj Γ b) o FMap F (A [ TMap t b o FMap (K I A a) f ])
294
db4ecbdbf9e9 limit1 done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 293
diff changeset
559 ≈⟨⟩
691
917e51be9bbf change argument of Limit and K
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 690
diff changeset
560 TMap ε (FObj Γ b) o FMap F (A [ TMap t b o id1 A (FObj (K I A a) b) ])
299
8c72f5284bc8 remove module parameter from yoneda functor
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 298
diff changeset
561 ≈⟨ cdr ( fcong F (idR1 A)) ⟩
294
db4ecbdbf9e9 limit1 done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 293
diff changeset
562 TMap ε (FObj Γ b) o FMap F (TMap t b )
db4ecbdbf9e9 limit1 done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 293
diff changeset
563 ≈↑⟨ idR ⟩
691
917e51be9bbf change argument of Limit and K
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 690
diff changeset
564 ( TMap ε (FObj Γ b) o FMap F (TMap t b)) o id1 B (FObj F (FObj (K I A a) b))
294
db4ecbdbf9e9 limit1 done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 293
diff changeset
565 ≈⟨⟩
691
917e51be9bbf change argument of Limit and K
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 690
diff changeset
566 tfmap a t b o FMap (K I B (FObj F a)) f
293
fb0ab8c72e15 limit defined.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 292
diff changeset
567
fb0ab8c72e15 limit defined.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 292
diff changeset
568 } }
691
917e51be9bbf change argument of Limit and K
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 690
diff changeset
569 limit1 : (a : Obj A) → NTrans I A (K I A a) (U ○ Γ) → Hom A a (FObj U (a0 limitb) )
487
c257347a27f3 found limit in freyd
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 484
diff changeset
570 limit1 a t = A [ FMap U (limit (isLimit limitb) (FObj F a) (tF a t )) o TMap η a ]
691
917e51be9bbf change argument of Limit and K
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 690
diff changeset
571 t0f=t1 : {a : Obj A} {t : NTrans I A (K I A a) (U ○ Γ)} {i : Obj I} →
291
c8e26650ddf9 limit preserving ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 290
diff changeset
572 A [ A [ TMap ta i o limit1 a t ] ≈ TMap t i ]
295
26e8f0227ebd limit equation done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 294
diff changeset
573 t0f=t1 {a} {t} {i} = let open ≈-Reasoning (A) in begin
26e8f0227ebd limit equation done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 294
diff changeset
574 TMap ta i o limit1 a t
26e8f0227ebd limit equation done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 294
diff changeset
575 ≈⟨⟩
487
c257347a27f3 found limit in freyd
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 484
diff changeset
576 FMap U ( TMap tb i ) o ( FMap U (limit (isLimit limitb) (FObj F a) (tF a t )) o TMap η a )
295
26e8f0227ebd limit equation done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 294
diff changeset
577 ≈⟨ assoc ⟩
487
c257347a27f3 found limit in freyd
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 484
diff changeset
578 ( FMap U ( TMap tb i ) o FMap U (limit (isLimit limitb) (FObj F a) (tF a t ))) o TMap η a
295
26e8f0227ebd limit equation done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 294
diff changeset
579 ≈↑⟨ car ( distr U ) ⟩
487
c257347a27f3 found limit in freyd
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 484
diff changeset
580 FMap U ( B [ TMap tb i o limit (isLimit limitb) (FObj F a) (tF a t ) ] ) o TMap η a
c257347a27f3 found limit in freyd
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 484
diff changeset
581 ≈⟨ car ( fcong U ( t0f=t (isLimit limitb) ) ) ⟩
295
26e8f0227ebd limit equation done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 294
diff changeset
582 FMap U (TMap (tF a t) i) o TMap η a
26e8f0227ebd limit equation done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 294
diff changeset
583 ≈⟨⟩
26e8f0227ebd limit equation done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 294
diff changeset
584 FMap U ( B [ TMap ε (FObj Γ i) o FMap F (TMap t i) ] ) o TMap η a
26e8f0227ebd limit equation done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 294
diff changeset
585 ≈⟨ car ( distr U ) ⟩
26e8f0227ebd limit equation done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 294
diff changeset
586 ( FMap U ( TMap ε (FObj Γ i)) o FMap U ( FMap F (TMap t i) )) o TMap η a
26e8f0227ebd limit equation done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 294
diff changeset
587 ≈↑⟨ assoc ⟩
26e8f0227ebd limit equation done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 294
diff changeset
588 FMap U ( TMap ε (FObj Γ i) ) o ( FMap U ( FMap F (TMap t i) ) o TMap η a )
26e8f0227ebd limit equation done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 294
diff changeset
589 ≈⟨ cdr ( nat η ) ⟩
26e8f0227ebd limit equation done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 294
diff changeset
590 FMap U (TMap ε (FObj Γ i)) o ( TMap η (FObj U (FObj Γ i)) o FMap (identityFunctor {_} {_} {_} {A}) (TMap t i) )
26e8f0227ebd limit equation done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 294
diff changeset
591 ≈⟨ assoc ⟩
26e8f0227ebd limit equation done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 294
diff changeset
592 ( FMap U (TMap ε (FObj Γ i)) o TMap η (FObj U (FObj Γ i))) o TMap t i
26e8f0227ebd limit equation done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 294
diff changeset
593 ≈⟨ car ( IsAdjunction.adjoint1 ( Adjunction.isAdjunction adj ) ) ⟩
26e8f0227ebd limit equation done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 294
diff changeset
594 id1 A (FObj (U ○ Γ) i) o TMap t i
26e8f0227ebd limit equation done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 294
diff changeset
595 ≈⟨ idL ⟩
26e8f0227ebd limit equation done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 294
diff changeset
596 TMap t i
26e8f0227ebd limit equation done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 294
diff changeset
597
296
bba60d843462 lemma1 will be proved
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 295
diff changeset
598 -- ta = TMap (Functor*Nat I A U tb) , FMap U ( TMap tb i ) o f ≈ TMap t i
691
917e51be9bbf change argument of Limit and K
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 690
diff changeset
599 limit-uniqueness1 : {a : Obj A} {t : NTrans I A (K I A a) (U ○ Γ)} {f : Hom A a (FObj U lim)}
291
c8e26650ddf9 limit preserving ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 290
diff changeset
600 → ({i : Obj I} → A [ A [ TMap ta i o f ] ≈ TMap t i ]) →
c8e26650ddf9 limit preserving ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 290
diff changeset
601 A [ limit1 a t ≈ f ]
295
26e8f0227ebd limit equation done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 294
diff changeset
602 limit-uniqueness1 {a} {t} {f} lim=t = let open ≈-Reasoning (A) in begin
26e8f0227ebd limit equation done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 294
diff changeset
603 limit1 a t
26e8f0227ebd limit equation done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 294
diff changeset
604 ≈⟨⟩
487
c257347a27f3 found limit in freyd
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 484
diff changeset
605 FMap U (limit (isLimit limitb) (FObj F a) (tF a t )) o TMap η a
495
633df882db86 fryed1 done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 487
diff changeset
606 ≈⟨ car ( fcong U (limit-uniqueness (isLimit limitb) ( λ {i} → lemma1 i) )) ⟩
298
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 297
diff changeset
607 FMap U ( B [ TMap ε lim o FMap F f ] ) o TMap η a -- Universal mapping
297
537570f6a44f limit preservation proved.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 296
diff changeset
608 ≈⟨ car (distr U ) ⟩
537570f6a44f limit preservation proved.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 296
diff changeset
609 ( (FMap U (TMap ε lim)) o (FMap U ( FMap F f )) ) o TMap η a
537570f6a44f limit preservation proved.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 296
diff changeset
610 ≈⟨ sym assoc ⟩
537570f6a44f limit preservation proved.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 296
diff changeset
611 (FMap U (TMap ε lim)) o ((FMap U ( FMap F f )) o TMap η a )
537570f6a44f limit preservation proved.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 296
diff changeset
612 ≈⟨ cdr (nat η) ⟩
537570f6a44f limit preservation proved.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 296
diff changeset
613 (FMap U (TMap ε lim)) o ((TMap η (FObj U lim )) o f )
537570f6a44f limit preservation proved.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 296
diff changeset
614 ≈⟨ assoc ⟩
537570f6a44f limit preservation proved.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 296
diff changeset
615 ((FMap U (TMap ε lim)) o (TMap η (FObj U lim))) o f
537570f6a44f limit preservation proved.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 296
diff changeset
616 ≈⟨ car ( IsAdjunction.adjoint1 ( Adjunction.isAdjunction adj)) ⟩
537570f6a44f limit preservation proved.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 296
diff changeset
617 id (FObj U lim) o f
537570f6a44f limit preservation proved.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 296
diff changeset
618 ≈⟨ idL ⟩
537570f6a44f limit preservation proved.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 296
diff changeset
619 f
296
bba60d843462 lemma1 will be proved
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 295
diff changeset
620 ∎ where
bba60d843462 lemma1 will be proved
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 295
diff changeset
621 lemma1 : (i : Obj I) → B [ B [ TMap tb i o B [ TMap ε lim o FMap F f ] ] ≈ TMap (tF a t) i ]
bba60d843462 lemma1 will be proved
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 295
diff changeset
622 lemma1 i = let open ≈-Reasoning (B) in begin
bba60d843462 lemma1 will be proved
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 295
diff changeset
623 TMap tb i o (TMap ε lim o FMap F f)
297
537570f6a44f limit preservation proved.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 296
diff changeset
624 ≈⟨ assoc ⟩
537570f6a44f limit preservation proved.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 296
diff changeset
625 ( TMap tb i o TMap ε lim ) o FMap F f
537570f6a44f limit preservation proved.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 296
diff changeset
626 ≈⟨ car ( nat ε ) ⟩
537570f6a44f limit preservation proved.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 296
diff changeset
627 ( TMap ε (FObj Γ i) o FMap F ( FMap U ( TMap tb i ))) o FMap F f
537570f6a44f limit preservation proved.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 296
diff changeset
628 ≈↑⟨ assoc ⟩
537570f6a44f limit preservation proved.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 296
diff changeset
629 TMap ε (FObj Γ i) o ( FMap F ( FMap U ( TMap tb i )) o FMap F f )
537570f6a44f limit preservation proved.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 296
diff changeset
630 ≈↑⟨ cdr ( distr F ) ⟩
537570f6a44f limit preservation proved.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 296
diff changeset
631 TMap ε (FObj Γ i) o FMap F ( A [ FMap U ( TMap tb i ) o f ] )
537570f6a44f limit preservation proved.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 296
diff changeset
632 ≈⟨ cdr ( fcong F (lim=t {i}) ) ⟩
296
bba60d843462 lemma1 will be proved
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 295
diff changeset
633 TMap ε (FObj Γ i) o FMap F (TMap t i)
bba60d843462 lemma1 will be proved
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 295
diff changeset
634 ≈⟨⟩
bba60d843462 lemma1 will be proved
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 295
diff changeset
635 TMap (tF a t) i
bba60d843462 lemma1 will be proved
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 295
diff changeset
636
295
26e8f0227ebd limit equation done.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 294
diff changeset
637
296
bba60d843462 lemma1 will be proved
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 295
diff changeset
638
bba60d843462 lemma1 will be proved
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 295
diff changeset
639