comparison freyd.agda @ 484:fcae3025d900

fix Limit pu a0 and t0 in record definition
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sat, 11 Mar 2017 16:38:08 +0900
parents 65e6906782bb
children c257347a27f3
comparison
equal deleted inserted replaced
483:265f13adf93b 484:fcae3025d900
47 open IsEqualizer 47 open IsEqualizer
48 48
49 initialFromPreInitialFullSubcategory : {c₁ c₂ ℓ : Level} (A : Category c₁ c₂ ℓ) 49 initialFromPreInitialFullSubcategory : {c₁ c₂ ℓ : Level} (A : Category c₁ c₂ ℓ)
50 (comp : Complete A A) 50 (comp : Complete A A)
51 (SFS : SmallFullSubcategory A ) → 51 (SFS : SmallFullSubcategory A ) →
52 (PI : PreInitial A (SFSF SFS )) → { a0 : Obj A } → HasInitialObject A (limit-c comp (SFSF SFS)) 52 (PI : PreInitial A (SFSF SFS )) → HasInitialObject A (limit-c comp (SFSF SFS))
53 initialFromPreInitialFullSubcategory A comp SFS PI = record { 53 initialFromPreInitialFullSubcategory A comp SFS PI = record {
54 initial = initialArrow ; 54 initial = initialArrow ;
55 uniqueness = λ a f → lemma1 a f 55 uniqueness = λ a f → lemma1 a f
56 } where 56 } where
57 F : Functor A A 57 F : Functor A A
58 F = SFSF SFS 58 F = SFSF SFS
59 FMap← : { a b : Obj A } → Hom A (FObj F a) (FObj F b ) → Hom A a b 59 FMap← : { a b : Obj A } → Hom A (FObj F a) (FObj F b ) → Hom A a b
60 FMap← = SFSFMap← SFS 60 FMap← = SFSFMap← SFS
61 a0 : Obj A 61 a00 : Obj A
62 a0 = limit-c comp F 62 a00 = limit-c comp F
63 lim : ( Γ : Functor A A ) → Limit A A Γ (limit-c comp Γ) (limit-u comp Γ) 63 lim : ( Γ : Functor A A ) → Limit A A Γ
64 lim Γ = isLimit comp Γ 64 lim Γ = isLimit comp Γ
65 u : NTrans A A (K A A a0) F 65 u : NTrans A A (K A A a00) F
66 u = T0 ( lim F ) 66 u = t0 ( lim F )
67 equ : {a b : Obj A} → (f g : Hom A a b) → IsEqualizer A (equalizer-e comp f g ) f g 67 equ : {a b : Obj A} → (f g : Hom A a b) → IsEqualizer A (equalizer-e comp f g ) f g
68 equ f g = Complete.isEqualizer comp f g 68 equ f g = Complete.isEqualizer comp f g
69 ep : {a b : Obj A} → {f g : Hom A a b} → Obj A 69 ep : {a b : Obj A} → {f g : Hom A a b} → Obj A
70 ep {a} {b} {f} {g} = equalizer-p comp f g 70 ep {a} {b} {f} {g} = equalizer-p comp f g
71 ee : {a b : Obj A} → {f g : Hom A a b} → Hom A (ep {a} {b} {f} {g} ) a 71 ee : {a b : Obj A} → {f g : Hom A a b} → Hom A (ep {a} {b} {f} {g} ) a
72 ee {a} {b} {f} {g} = equalizer-e comp f g 72 ee {a} {b} {f} {g} = equalizer-e comp f g
73 f : {a : Obj A} → Hom A a0 (FObj F (preinitialObj PI {a} ) ) 73 f : {a : Obj A} → Hom A a00 (FObj F (preinitialObj PI {a} ) )
74 f {a} = TMap u (preinitialObj PI {a} ) 74 f {a} = TMap u (preinitialObj PI {a} )
75 initialArrow : ∀( a : Obj A ) → Hom A a0 a 75 initialArrow : ∀( a : Obj A ) → Hom A a00 a
76 initialArrow a = A [ preinitialArrow PI {a} o f ] 76 initialArrow a = A [ preinitialArrow PI {a} o f ]
77 equ-fi : { a : Obj A} → {f' : Hom A a0 a} → 77 equ-fi : { a : Obj A} → {f' : Hom A a00 a} →
78 IsEqualizer A ee ( A [ preinitialArrow PI {a} o f ] ) f' 78 IsEqualizer A ee ( A [ preinitialArrow PI {a} o f ] ) f'
79 equ-fi {a} {f'} = equ ( A [ preinitialArrow PI {a} o f ] ) f' 79 equ-fi {a} {f'} = equ ( A [ preinitialArrow PI {a} o f ] ) f'
80 e=id : {e : Hom A a0 a0} → ( {c : Obj A} → A [ A [ TMap u c o e ] ≈ TMap u c ] ) → A [ e ≈ id1 A a0 ] 80 e=id : {e : Hom A a00 a00} → ( {c : Obj A} → A [ A [ TMap u c o e ] ≈ TMap u c ] ) → A [ e ≈ id1 A a00 ]
81 e=id {e} uce=uc = let open ≈-Reasoning (A) in 81 e=id {e} uce=uc = let open ≈-Reasoning (A) in
82 begin 82 begin
83 e 83 e
84 ≈↑⟨ limit-uniqueness (lim F) e ( λ {i} → uce=uc ) ⟩ 84 ≈↑⟨ limit-uniqueness (lim F) e ( λ {i} → uce=uc ) ⟩
85 limit (lim F) a0 u 85 limit (lim F) a00 u
86 ≈⟨ limit-uniqueness (lim F) (id1 A a0) ( λ {i} → idR ) ⟩ 86 ≈⟨ limit-uniqueness (lim F) (id1 A a00) ( λ {i} → idR ) ⟩
87 id1 A a0 87 id1 A a00
88 88
89 kfuc=uc : {c k1 : Obj A} → {p : Hom A k1 a0} → A [ A [ TMap u c o 89 kfuc=uc : {c k1 : Obj A} → {p : Hom A k1 a00} → A [ A [ TMap u c o
90 A [ p o A [ preinitialArrow PI {k1} o TMap u (preinitialObj PI) ] ] ] 90 A [ p o A [ preinitialArrow PI {k1} o TMap u (preinitialObj PI) ] ] ]
91 ≈ TMap u c ] 91 ≈ TMap u c ]
92 kfuc=uc {c} {k1} {p} = let open ≈-Reasoning (A) in 92 kfuc=uc {c} {k1} {p} = let open ≈-Reasoning (A) in
93 begin 93 begin
94 TMap u c o ( p o ( preinitialArrow PI {k1} o TMap u (preinitialObj PI) )) 94 TMap u c o ( p o ( preinitialArrow PI {k1} o TMap u (preinitialObj PI) ))
97 ≈⟨ assoc ⟩ 97 ≈⟨ assoc ⟩
98 (TMap u c o ( p o ( preinitialArrow PI {k1} ))) o TMap u (preinitialObj PI) 98 (TMap u c o ( p o ( preinitialArrow PI {k1} ))) o TMap u (preinitialObj PI)
99 ≈↑⟨ car ( full→ SFS ) ⟩ 99 ≈↑⟨ car ( full→ SFS ) ⟩
100 FMap F (FMap← (TMap u c o p o preinitialArrow PI)) o TMap u (preinitialObj PI) 100 FMap F (FMap← (TMap u c o p o preinitialArrow PI)) o TMap u (preinitialObj PI)
101 ≈⟨ nat u ⟩ 101 ≈⟨ nat u ⟩
102 TMap u c o FMap (K A A a0) (FMap← (TMap u c o p o preinitialArrow PI)) 102 TMap u c o FMap (K A A a00) (FMap← (TMap u c o p o preinitialArrow PI))
103 ≈⟨⟩ 103 ≈⟨⟩
104 TMap u c o id1 A a0 104 TMap u c o id1 A a00
105 ≈⟨ idR ⟩ 105 ≈⟨ idR ⟩
106 TMap u c 106 TMap u c
107 107
108 kfuc=1 : {k1 : Obj A} → {p : Hom A k1 a0} → A [ A [ p o A [ preinitialArrow PI {k1} o TMap u (preinitialObj PI) ] ] ≈ id1 A a0 ] 108 kfuc=1 : {k1 : Obj A} → {p : Hom A k1 a00} → A [ A [ p o A [ preinitialArrow PI {k1} o TMap u (preinitialObj PI) ] ] ≈ id1 A a00 ]
109 kfuc=1 {k1} {p} = e=id ( kfuc=uc ) 109 kfuc=1 {k1} {p} = e=id ( kfuc=uc )
110 -- if equalizer has right inverse, f = g 110 -- if equalizer has right inverse, f = g
111 lemma2 : (a b : Obj A) {c : Obj A} ( f g : Hom A a b ) 111 lemma2 : (a b : Obj A) {c : Obj A} ( f g : Hom A a b )
112 {e : Hom A c a } {e' : Hom A a c } ( equ : IsEqualizer A e f g ) (inv-e : A [ A [ e o e' ] ≈ id1 A a ] ) 112 {e : Hom A c a } {e' : Hom A a c } ( equ : IsEqualizer A e f g ) (inv-e : A [ A [ e o e' ] ≈ id1 A a ] )
113 → A [ f ≈ g ] 113 → A [ f ≈ g ]
127 ≈⟨ cdr inv-e ⟩ 127 ≈⟨ cdr inv-e ⟩
128 g o id1 A a 128 g o id1 A a
129 ≈⟨ idR ⟩ 129 ≈⟨ idR ⟩
130 g 130 g
131 131
132 lemma1 : (a : Obj A) (f' : Hom A a0 a) → A [ f' ≈ initialArrow a ] 132 lemma1 : (a : Obj A) (f' : Hom A a00 a) → A [ f' ≈ initialArrow a ]
133 lemma1 a f' = let open ≈-Reasoning (A) in 133 lemma1 a f' = let open ≈-Reasoning (A) in
134 sym ( 134 sym (
135 begin 135 begin
136 initialArrow a 136 initialArrow a
137 ≈⟨⟩ 137 ≈⟨⟩
138 preinitialArrow PI {a} o f 138 preinitialArrow PI {a} o f
139 ≈⟨ lemma2 a0 a (A [ preinitialArrow PI {a} o f ]) f' {ee {a0} {a} {A [ preinitialArrow PI {a} o f ]} {f'} } (equ-fi ) 139 ≈⟨ lemma2 a00 a (A [ preinitialArrow PI {a} o f ]) f' {ee {a00} {a} {A [ preinitialArrow PI {a} o f ]} {f'} } (equ-fi )
140 (kfuc=1 {ep} {ee} ) ⟩ 140 (kfuc=1 {ep} {ee} ) ⟩
141 f' 141 f'
142 ∎ ) 142 ∎ )
143 143
144 144