Mercurial > hg > Members > kono > Proof > category
annotate freyd1.agda @ 492:c7b8017bcd4d
on going..
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 13 Mar 2017 13:22:40 +0900 |
parents | 04da2c458d44 |
children | de9ce7e0d97c |
rev | line source |
---|---|
481
65e6906782bb
Completeness of Comma Category begin
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
1 open import Category -- https://github.com/konn/category-agda |
65e6906782bb
Completeness of Comma Category begin
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
2 open import Level |
65e6906782bb
Completeness of Comma Category begin
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
3 |
65e6906782bb
Completeness of Comma Category begin
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
4 module freyd1 {c₁ c₂ ℓ c₁' c₂' ℓ' : Level} {A : Category c₁ c₂ ℓ} {C : Category c₁' c₂' ℓ'} |
65e6906782bb
Completeness of Comma Category begin
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
5 ( F : Functor A C ) ( G : Functor A C ) where |
65e6906782bb
Completeness of Comma Category begin
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
6 |
65e6906782bb
Completeness of Comma Category begin
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
7 open import cat-utility |
65e6906782bb
Completeness of Comma Category begin
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
8 open import HomReasoning |
65e6906782bb
Completeness of Comma Category begin
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
9 open Functor |
65e6906782bb
Completeness of Comma Category begin
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
10 |
65e6906782bb
Completeness of Comma Category begin
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
11 open import Comma1 F G |
492 | 12 -- open import freyd CommaCategory -- we don't need this yet |
481
65e6906782bb
Completeness of Comma Category begin
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
13 |
492 | 14 open import Category.Cat -- Functor composition |
481
65e6906782bb
Completeness of Comma Category begin
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
15 open NTrans |
65e6906782bb
Completeness of Comma Category begin
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
16 open Complete |
65e6906782bb
Completeness of Comma Category begin
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
17 open CommaObj |
65e6906782bb
Completeness of Comma Category begin
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
18 open CommaHom |
65e6906782bb
Completeness of Comma Category begin
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
19 open Limit |
487 | 20 open IsLimit |
481
65e6906782bb
Completeness of Comma Category begin
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
21 |
483 | 22 -- F : A → C |
23 -- G : A → C | |
24 -- | |
25 | |
481
65e6906782bb
Completeness of Comma Category begin
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
26 FIA : { I : Category c₁ c₂ ℓ } → ( Γ : Functor I CommaCategory ) → Functor I A |
65e6906782bb
Completeness of Comma Category begin
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
27 FIA {I} Γ = record { |
482 | 28 FObj = λ x → obj (FObj Γ x ) ; |
29 FMap = λ {a} {b} f → arrow (FMap Γ f ) ; | |
30 isFunctor = record { | |
31 identity = identity | |
32 ; distr = IsFunctor.distr (isFunctor Γ) | |
33 ; ≈-cong = IsFunctor.≈-cong (isFunctor Γ) | |
34 }} where | |
35 identity : {x : Obj I } → A [ arrow (FMap Γ (id1 I x)) ≈ id1 A (obj (FObj Γ x)) ] | |
36 identity {x} = let open ≈-Reasoning (A) in begin | |
37 arrow (FMap Γ (id1 I x)) | |
38 ≈⟨ IsFunctor.identity (isFunctor Γ) ⟩ | |
39 id1 A (obj (FObj Γ x)) | |
40 ∎ | |
481
65e6906782bb
Completeness of Comma Category begin
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
41 |
491
04da2c458d44
comma-a0 commuativity remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
490
diff
changeset
|
42 NIA : { I : Category c₁ c₂ ℓ } → ( Γ : Functor I CommaCategory ) |
04da2c458d44
comma-a0 commuativity remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
490
diff
changeset
|
43 (c : Obj CommaCategory ) ( ta : NTrans I CommaCategory ( K CommaCategory I c ) Γ ) → NTrans I A ( K A I (obj c) ) (FIA Γ) |
04da2c458d44
comma-a0 commuativity remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
490
diff
changeset
|
44 NIA {I} Γ c ta = record { |
04da2c458d44
comma-a0 commuativity remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
490
diff
changeset
|
45 TMap = λ x → arrow (TMap ta x ) |
04da2c458d44
comma-a0 commuativity remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
490
diff
changeset
|
46 ; isNTrans = record { commute = comm1 } |
04da2c458d44
comma-a0 commuativity remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
490
diff
changeset
|
47 } where |
04da2c458d44
comma-a0 commuativity remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
490
diff
changeset
|
48 comm1 : {a b : Obj I} {f : Hom I a b} → |
04da2c458d44
comma-a0 commuativity remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
490
diff
changeset
|
49 A [ A [ FMap (FIA Γ) f o arrow (TMap ta a) ] ≈ A [ arrow (TMap ta b) o FMap (K A I (obj c)) f ] ] |
04da2c458d44
comma-a0 commuativity remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
490
diff
changeset
|
50 comm1 {a} {b} {f} = IsNTrans.commute (isNTrans ta ) |
04da2c458d44
comma-a0 commuativity remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
490
diff
changeset
|
51 |
485 | 52 |
487 | 53 open LimitPreserve |
483 | 54 |
484
fcae3025d900
fix Limit pu a0 and t0 in record definition
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
483
diff
changeset
|
55 LimitC : { I : Category c₁ c₂ ℓ } → ( comp : Complete A I ) |
485 | 56 → ( Γ : Functor I CommaCategory ) |
487 | 57 → ( glimit : LimitPreserve A I C G ) |
491
04da2c458d44
comma-a0 commuativity remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
490
diff
changeset
|
58 → Limit C I (G ○ (FIA Γ)) |
492 | 59 LimitC {I} comp Γ glimit = plimit glimit (climit comp (FIA Γ)) |
486
56cf6581c5f6
add some lemma but no use
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
485
diff
changeset
|
60 |
489 | 61 frev : { I : Category c₁ c₂ ℓ } → (comp : Complete A I) → ( Γ : Functor I CommaCategory ) (i : Obj I ) → Hom A (limit-c comp (FIA Γ)) (obj (FObj Γ i)) |
62 frev comp Γ i = TMap (t0 ( climit comp (FIA Γ))) i | |
63 | |
64 tu : { I : Category c₁ c₂ ℓ } → ( comp : Complete A I) → ( Γ : Functor I CommaCategory ) | |
491
04da2c458d44
comma-a0 commuativity remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
490
diff
changeset
|
65 → NTrans I C (K C I (FObj F (limit-c comp (FIA Γ)))) (G ○ (FIA Γ)) |
489 | 66 tu {I} comp Γ = record { |
67 TMap = λ i → C [ hom ( FObj Γ i ) o FMap F (frev comp Γ i) ] | |
68 ; isNTrans = record { commute = λ {a} {b} {f} → commute {a} {b} {f} } | |
69 } where | |
70 commute : {a b : Obj I} {f : Hom I a b} → | |
491
04da2c458d44
comma-a0 commuativity remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
490
diff
changeset
|
71 C [ C [ FMap (G ○ (FIA Γ)) f o C [ hom (FObj Γ a) o FMap F (frev comp Γ a) ] ] |
489 | 72 ≈ C [ C [ hom (FObj Γ b) o FMap F (frev comp Γ b) ] o FMap (K C I (FObj F (limit-c comp (FIA Γ)))) f ] ] |
73 commute {a} {b} {f} = let open ≈-Reasoning (C) in begin | |
491
04da2c458d44
comma-a0 commuativity remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
490
diff
changeset
|
74 FMap (G ○ (FIA Γ)) f o ( hom (FObj Γ a) o FMap F (frev comp Γ a) ) |
488
016087cfa75a
commaLimit done, commaNat trying..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
487
diff
changeset
|
75 ≈⟨⟩ |
016087cfa75a
commaLimit done, commaNat trying..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
487
diff
changeset
|
76 FMap G (arrow (FMap Γ f ) ) o ( hom (FObj Γ a) o FMap F ( TMap (t0 ( climit comp (FIA Γ))) a )) |
016087cfa75a
commaLimit done, commaNat trying..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
487
diff
changeset
|
77 ≈⟨ assoc ⟩ |
016087cfa75a
commaLimit done, commaNat trying..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
487
diff
changeset
|
78 (FMap G (arrow (FMap Γ f ) ) o hom (FObj Γ a)) o FMap F ( TMap (t0 ( climit comp (FIA Γ))) a ) |
016087cfa75a
commaLimit done, commaNat trying..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
487
diff
changeset
|
79 ≈⟨ car ( comm (FMap Γ f)) ⟩ |
016087cfa75a
commaLimit done, commaNat trying..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
487
diff
changeset
|
80 (hom (FObj Γ b) o FMap F (arrow (FMap Γ f)) ) o FMap F ( TMap (t0 ( climit comp (FIA Γ))) a ) |
016087cfa75a
commaLimit done, commaNat trying..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
487
diff
changeset
|
81 ≈↑⟨ assoc ⟩ |
016087cfa75a
commaLimit done, commaNat trying..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
487
diff
changeset
|
82 hom (FObj Γ b) o ( FMap F (arrow (FMap Γ f)) o FMap F ( TMap (t0 ( climit comp (FIA Γ))) a ) ) |
016087cfa75a
commaLimit done, commaNat trying..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
487
diff
changeset
|
83 ≈↑⟨ cdr (distr F) ⟩ |
016087cfa75a
commaLimit done, commaNat trying..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
487
diff
changeset
|
84 hom (FObj Γ b) o ( FMap F (A [ arrow (FMap Γ f) o TMap (t0 ( climit comp (FIA Γ))) a ] ) ) |
016087cfa75a
commaLimit done, commaNat trying..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
487
diff
changeset
|
85 ≈⟨⟩ |
016087cfa75a
commaLimit done, commaNat trying..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
487
diff
changeset
|
86 hom (FObj Γ b) o ( FMap F (A [ FMap (FIA Γ) f o TMap (t0 ( climit comp (FIA Γ))) a ] ) ) |
016087cfa75a
commaLimit done, commaNat trying..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
487
diff
changeset
|
87 ≈⟨ cdr ( fcong F ( IsNTrans.commute (isNTrans (t0 ( climit comp (FIA Γ))) ))) ⟩ |
016087cfa75a
commaLimit done, commaNat trying..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
487
diff
changeset
|
88 hom (FObj Γ b) o ( FMap F ( A [ (TMap (t0 ( climit comp (FIA Γ))) b) o FMap (K A I (a0 (climit comp (FIA Γ)))) f ] )) |
016087cfa75a
commaLimit done, commaNat trying..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
487
diff
changeset
|
89 ≈⟨⟩ |
016087cfa75a
commaLimit done, commaNat trying..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
487
diff
changeset
|
90 hom (FObj Γ b) o ( FMap F ( A [ (TMap (t0 ( climit comp (FIA Γ))) b) o id1 A (limit-c comp (FIA Γ)) ] )) |
016087cfa75a
commaLimit done, commaNat trying..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
487
diff
changeset
|
91 ≈⟨ cdr ( distr F ) ⟩ |
016087cfa75a
commaLimit done, commaNat trying..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
487
diff
changeset
|
92 hom (FObj Γ b) o ( FMap F (TMap (t0 ( climit comp (FIA Γ))) b) o FMap F (id1 A (limit-c comp (FIA Γ)))) |
016087cfa75a
commaLimit done, commaNat trying..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
487
diff
changeset
|
93 ≈⟨ cdr ( cdr ( IsFunctor.identity (isFunctor F) ) ) ⟩ |
016087cfa75a
commaLimit done, commaNat trying..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
487
diff
changeset
|
94 hom (FObj Γ b) o ( FMap F (TMap (t0 ( climit comp (FIA Γ))) b) o id1 C (FObj F (limit-c comp (FIA Γ)))) |
016087cfa75a
commaLimit done, commaNat trying..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
487
diff
changeset
|
95 ≈⟨ assoc ⟩ |
489 | 96 ( hom (FObj Γ b) o FMap F (frev comp Γ b)) o FMap (K C I (FObj F (limit-c comp (FIA Γ)))) f |
488
016087cfa75a
commaLimit done, commaNat trying..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
487
diff
changeset
|
97 ∎ |
489 | 98 limitHom : { I : Category c₁ c₂ ℓ } → (comp : Complete A I) → ( Γ : Functor I CommaCategory ) |
99 → ( glimit : LimitPreserve A I C G ) → Hom C (FObj F (limit-c comp (FIA Γ ) )) (FObj G (limit-c comp (FIA Γ) )) | |
100 limitHom comp Γ glimit = limit (isLimit (LimitC comp Γ glimit )) (FObj F ( limit-c comp (FIA Γ))) (tu comp Γ ) | |
101 | |
102 commaLimit : { I : Category c₁ c₂ ℓ } → ( Complete A I) → ( Γ : Functor I CommaCategory ) | |
103 → ( glimit : LimitPreserve A I C G ) | |
104 → Obj CommaCategory | |
105 commaLimit {I} comp Γ glimit = record { | |
106 obj = limit-c comp (FIA Γ) | |
107 ; hom = limitHom comp Γ glimit | |
108 } | |
481
65e6906782bb
Completeness of Comma Category begin
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
109 |
65e6906782bb
Completeness of Comma Category begin
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
110 |
65e6906782bb
Completeness of Comma Category begin
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
111 commaNat : { I : Category c₁ c₂ ℓ } → ( comp : Complete A I) → ( Γ : Functor I CommaCategory ) |
488
016087cfa75a
commaLimit done, commaNat trying..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
487
diff
changeset
|
112 → ( glimit : LimitPreserve A I C G ) |
016087cfa75a
commaLimit done, commaNat trying..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
487
diff
changeset
|
113 → NTrans I CommaCategory (K CommaCategory I (commaLimit {I} comp Γ glimit)) Γ |
016087cfa75a
commaLimit done, commaNat trying..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
487
diff
changeset
|
114 commaNat {I} comp Γ glimit = record { |
016087cfa75a
commaLimit done, commaNat trying..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
487
diff
changeset
|
115 TMap = λ x → record { |
016087cfa75a
commaLimit done, commaNat trying..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
487
diff
changeset
|
116 arrow = TMap ( limit-u comp (FIA Γ ) ) x |
489 | 117 ; comm = comm1 x |
488
016087cfa75a
commaLimit done, commaNat trying..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
487
diff
changeset
|
118 } |
489 | 119 ; isNTrans = record { commute = comm2 } |
481
65e6906782bb
Completeness of Comma Category begin
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
120 } where |
488
016087cfa75a
commaLimit done, commaNat trying..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
487
diff
changeset
|
121 comm1 : (x : Obj I ) → |
016087cfa75a
commaLimit done, commaNat trying..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
487
diff
changeset
|
122 C [ C [ FMap G (TMap (limit-u comp (FIA Γ)) x) o hom (FObj (K CommaCategory I (commaLimit comp Γ glimit)) x) ] |
016087cfa75a
commaLimit done, commaNat trying..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
487
diff
changeset
|
123 ≈ C [ hom (FObj Γ x) o FMap F (TMap (limit-u comp (FIA Γ)) x) ] ] |
016087cfa75a
commaLimit done, commaNat trying..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
487
diff
changeset
|
124 comm1 x = let open ≈-Reasoning (C) in begin |
489 | 125 FMap G (TMap (limit-u comp (FIA Γ)) x) o hom (FObj (K CommaCategory I (commaLimit comp Γ glimit)) x) |
126 ≈⟨⟩ | |
127 FMap G (TMap (limit-u comp (FIA Γ)) x) o hom (commaLimit comp Γ glimit) | |
128 ≈⟨⟩ | |
129 FMap G (TMap (limit-u comp (FIA Γ)) x) o limit (isLimit (LimitC comp Γ glimit )) (FObj F ( limit-c comp (FIA Γ))) (tu comp Γ ) | |
130 ≈⟨⟩ | |
131 TMap (t0 ( LimitC comp Γ glimit )) x o limit (isLimit (LimitC comp Γ glimit )) (FObj F ( limit-c comp (FIA Γ))) (tu comp Γ ) | |
132 ≈⟨ t0f=t ( isLimit ( LimitC comp Γ glimit ) ) ⟩ | |
133 TMap (tu comp Γ) x | |
134 ≈⟨⟩ | |
135 hom (FObj Γ x) o FMap F (TMap (limit-u comp (FIA Γ)) x) | |
136 ∎ | |
137 comm2 : {a b : Obj I} {f : Hom I a b} → | |
138 CommaCategory [ CommaCategory [ FMap Γ f o record { arrow = TMap (limit-u comp (FIA Γ)) a ; comm = comm1 a } ] | |
139 ≈ CommaCategory [ record { arrow = TMap (limit-u comp (FIA Γ)) b ; comm = comm1 b } o FMap (K CommaCategory I (commaLimit comp Γ glimit)) f ] ] | |
490 | 140 comm2 {a} {b} {f} = let open ≈-Reasoning (A) in begin |
141 FMap (FIA Γ) f o TMap (limit-u comp (FIA Γ)) a | |
142 ≈⟨ IsNTrans.commute (isNTrans (limit-u comp (FIA Γ))) ⟩ | |
143 TMap (limit-u comp (FIA Γ)) b o FMap (K A I (limit-c comp (FIA Γ))) f | |
489 | 144 ∎ |
481
65e6906782bb
Completeness of Comma Category begin
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
145 |
491
04da2c458d44
comma-a0 commuativity remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
490
diff
changeset
|
146 comma-a0 : { I : Category c₁ c₂ ℓ } → ( comp : Complete A I) → ( Γ : Functor I CommaCategory ) |
04da2c458d44
comma-a0 commuativity remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
490
diff
changeset
|
147 → ( glimit : LimitPreserve A I C G ) (a : CommaObj) → ( t : NTrans I CommaCategory (K CommaCategory I a) Γ ) → Hom CommaCategory a (commaLimit comp Γ glimit) |
04da2c458d44
comma-a0 commuativity remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
490
diff
changeset
|
148 comma-a0 {I} comp Γ glimit a t = record { |
04da2c458d44
comma-a0 commuativity remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
490
diff
changeset
|
149 arrow = limit (isLimit ( climit comp (FIA Γ) ) ) (obj a ) (NIA {I} Γ a t ) |
04da2c458d44
comma-a0 commuativity remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
490
diff
changeset
|
150 ; comm = comm1 |
04da2c458d44
comma-a0 commuativity remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
490
diff
changeset
|
151 } where |
04da2c458d44
comma-a0 commuativity remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
490
diff
changeset
|
152 comm1 : C [ C [ FMap G (limit (isLimit (climit comp (FIA Γ))) (obj a) (NIA Γ a t)) o hom a ] |
04da2c458d44
comma-a0 commuativity remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
490
diff
changeset
|
153 ≈ C [ hom (commaLimit comp Γ glimit) o FMap F (limit (isLimit (climit comp (FIA Γ))) (obj a) (NIA Γ a t)) ] ] |
04da2c458d44
comma-a0 commuativity remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
490
diff
changeset
|
154 comm1 = let open ≈-Reasoning (C) in begin |
04da2c458d44
comma-a0 commuativity remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
490
diff
changeset
|
155 FMap G (limit (isLimit (climit comp (FIA Γ))) (obj a) (NIA Γ a t)) o hom a |
04da2c458d44
comma-a0 commuativity remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
490
diff
changeset
|
156 ≈⟨ {!!} ⟩ |
492 | 157 FMap G ((limit (isLimit (climit comp (FIA Γ))) (obj a) (NIA Γ a t))) o ( {!!} o FMap F (limit (isLimit (climit comp (FIA Γ))) (obj a) (NIA Γ a t))) |
158 ≈⟨ assoc ⟩ | |
159 (FMap G ((limit (isLimit (climit comp (FIA Γ))) (obj a) (NIA Γ a t))) o {!!} ) o FMap F (limit (isLimit (climit comp (FIA Γ))) (obj a) (NIA Γ a t)) | |
160 ≈↑⟨ car ( limit-uniqueness (isLimit (LimitC comp Γ glimit )) {!!} {!!} ) ⟩ | |
491
04da2c458d44
comma-a0 commuativity remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
490
diff
changeset
|
161 limit (isLimit (LimitC comp Γ glimit )) (FObj F ( limit-c comp (FIA Γ))) (tu comp Γ ) o FMap F (limit (isLimit (climit comp (FIA Γ))) (obj a) (NIA Γ a t)) |
04da2c458d44
comma-a0 commuativity remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
490
diff
changeset
|
162 ≈⟨⟩ |
04da2c458d44
comma-a0 commuativity remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
490
diff
changeset
|
163 hom (commaLimit comp Γ glimit) o FMap F (limit (isLimit (climit comp (FIA Γ))) (obj a) (NIA Γ a t)) |
04da2c458d44
comma-a0 commuativity remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
490
diff
changeset
|
164 ∎ |
04da2c458d44
comma-a0 commuativity remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
490
diff
changeset
|
165 |
04da2c458d44
comma-a0 commuativity remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
490
diff
changeset
|
166 comma-t0f=t : { I : Category c₁ c₂ ℓ } → ( comp : Complete A I) → ( Γ : Functor I CommaCategory ) |
04da2c458d44
comma-a0 commuativity remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
490
diff
changeset
|
167 → ( glimit : LimitPreserve A I C G ) (a : CommaObj) → ( t : NTrans I CommaCategory (K CommaCategory I a) Γ ) (i : Obj I ) |
04da2c458d44
comma-a0 commuativity remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
490
diff
changeset
|
168 → CommaCategory [ CommaCategory [ TMap (commaNat comp Γ glimit) i o comma-a0 comp Γ glimit a t ] ≈ TMap t i ] |
04da2c458d44
comma-a0 commuativity remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
490
diff
changeset
|
169 comma-t0f=t {I} comp Γ glimit a t i = let open ≈-Reasoning (A) in begin |
04da2c458d44
comma-a0 commuativity remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
490
diff
changeset
|
170 TMap ( limit-u comp (FIA Γ ) ) i o limit (isLimit ( climit comp (FIA Γ) ) ) (obj a ) (NIA {I} Γ a t ) |
04da2c458d44
comma-a0 commuativity remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
490
diff
changeset
|
171 ≈⟨ t0f=t (isLimit ( climit comp (FIA Γ) ) ) ⟩ |
04da2c458d44
comma-a0 commuativity remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
490
diff
changeset
|
172 TMap (NIA {I} Γ a t ) i |
04da2c458d44
comma-a0 commuativity remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
490
diff
changeset
|
173 ∎ |
04da2c458d44
comma-a0 commuativity remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
490
diff
changeset
|
174 |
04da2c458d44
comma-a0 commuativity remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
490
diff
changeset
|
175 comma-uniqueness : { I : Category c₁ c₂ ℓ } → ( comp : Complete A I) → ( Γ : Functor I CommaCategory ) |
04da2c458d44
comma-a0 commuativity remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
490
diff
changeset
|
176 → ( glimit : LimitPreserve A I C G ) (a : CommaObj) → ( t : NTrans I CommaCategory (K CommaCategory I a) Γ ) |
04da2c458d44
comma-a0 commuativity remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
490
diff
changeset
|
177 → ( f : Hom CommaCategory a (commaLimit comp Γ glimit)) |
04da2c458d44
comma-a0 commuativity remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
490
diff
changeset
|
178 → ( ∀ { i : Obj I } → CommaCategory [ CommaCategory [ TMap ( commaNat { I} comp Γ glimit ) i o f ] ≈ TMap t i ] ) |
04da2c458d44
comma-a0 commuativity remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
490
diff
changeset
|
179 → CommaCategory [ comma-a0 comp Γ glimit a t ≈ f ] |
04da2c458d44
comma-a0 commuativity remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
490
diff
changeset
|
180 comma-uniqueness {I} comp Γ glimit a t f t=f = let open ≈-Reasoning (A) in begin |
04da2c458d44
comma-a0 commuativity remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
490
diff
changeset
|
181 limit (isLimit ( climit comp (FIA Γ) ) ) (obj a ) (NIA {I} Γ a t ) |
04da2c458d44
comma-a0 commuativity remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
490
diff
changeset
|
182 ≈⟨ limit-uniqueness (isLimit ( climit comp (FIA Γ) ) ) (arrow f) t=f ⟩ |
04da2c458d44
comma-a0 commuativity remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
490
diff
changeset
|
183 arrow f |
04da2c458d44
comma-a0 commuativity remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
490
diff
changeset
|
184 ∎ |
04da2c458d44
comma-a0 commuativity remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
490
diff
changeset
|
185 |
481
65e6906782bb
Completeness of Comma Category begin
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
186 hasLimit : { I : Category c₁ c₂ ℓ } → ( comp : Complete A I ) |
488
016087cfa75a
commaLimit done, commaNat trying..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
487
diff
changeset
|
187 → ( glimit : LimitPreserve A I C G ) |
485 | 188 → ( Γ : Functor I CommaCategory ) |
189 → Limit CommaCategory I Γ | |
190 hasLimit {I} comp glimit Γ = record { | |
488
016087cfa75a
commaLimit done, commaNat trying..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
487
diff
changeset
|
191 a0 = commaLimit {I} comp Γ glimit ; |
016087cfa75a
commaLimit done, commaNat trying..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
487
diff
changeset
|
192 t0 = commaNat { I} comp Γ glimit ; |
487 | 193 isLimit = record { |
491
04da2c458d44
comma-a0 commuativity remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
490
diff
changeset
|
194 limit = λ a t → comma-a0 comp Γ glimit a t ; |
04da2c458d44
comma-a0 commuativity remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
490
diff
changeset
|
195 t0f=t = λ {a t i } → comma-t0f=t comp Γ glimit a t i ; |
04da2c458d44
comma-a0 commuativity remains
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
490
diff
changeset
|
196 limit-uniqueness = λ {a} {t} f t=f → comma-uniqueness {I} comp Γ glimit a t f t=f |
487 | 197 } |
481
65e6906782bb
Completeness of Comma Category begin
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
198 } |