comparison freyd1.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 265f13adf93b
children da4486523f73
comparison
equal deleted inserted replaced
483:265f13adf93b 484:fcae3025d900
14 14
15 open import Category.Cat 15 open import Category.Cat
16 16
17 open NTrans 17 open NTrans
18 18
19
20 tb : { c₁' c₂' ℓ' : Level} (B : Category c₁' c₂' ℓ') { c₁ c₂ ℓ : Level} ( I : Category c₁ c₂ ℓ ) ( Γ : Functor I B )
21 ( lim : Obj B ) ( tb : NTrans I B ( K B I lim ) Γ ) →
22 ( U : Functor B C) → NTrans I C ( K C I (FObj U lim) ) (U ○ Γ)
23 tb B I Γ lim tb U = record {
24 TMap = TMap (Functor*Nat I C U tb) ;
25 isNTrans = record { commute = λ {a} {b} {f} → let open ≈-Reasoning (C) in begin
26 FMap (U ○ Γ) f o TMap (Functor*Nat I C U tb) a
27 ≈⟨ nat ( Functor*Nat I C U tb ) ⟩
28 TMap (Functor*Nat I C U tb) b o FMap (U ○ K B I lim) f
29 ≈⟨ cdr (IsFunctor.identity (isFunctor U) ) ⟩
30 TMap (Functor*Nat I C U tb) b o FMap (K C I (FObj U lim)) f
31
32 } }
33 19
34 open Complete 20 open Complete
35 open CommaObj 21 open CommaObj
36 open CommaHom 22 open CommaHom
37 open Limit 23 open Limit
64 } where 50 } where
65 comm1 : {a b : Obj I} {f : Hom I a b} → 51 comm1 : {a b : Obj I} {f : Hom I a b} →
66 A [ A [ FMap (FIA Γ) f o arrow (TMap ta a) ] ≈ A [ arrow (TMap ta b) o FMap (K A I (obj c)) f ] ] 52 A [ A [ FMap (FIA Γ) f o arrow (TMap ta a) ] ≈ A [ arrow (TMap ta b) o FMap (K A I (obj c)) f ] ]
67 comm1 {a} {b} {f} = IsNTrans.commute (isNTrans ta ) 53 comm1 {a} {b} {f} = IsNTrans.commute (isNTrans ta )
68 54
55 tb : { c₁' c₂' ℓ' : Level} (B : Category c₁' c₂' ℓ') { c₁ c₂ ℓ : Level} ( I : Category c₁ c₂ ℓ ) ( Γ : Functor I B )
56 ( lim : Obj B ) ( tb : NTrans I B ( K B I lim ) Γ ) →
57 ( U : Functor B C) → NTrans I C ( K C I (FObj U lim) ) (U ○ Γ)
58 tb B I Γ lim tb U = record {
59 TMap = TMap (Functor*Nat I C U tb) ;
60 isNTrans = record { commute = λ {a} {b} {f} → let open ≈-Reasoning (C) in begin
61 FMap (U ○ Γ) f o TMap (Functor*Nat I C U tb) a
62 ≈⟨ nat ( Functor*Nat I C U tb ) ⟩
63 TMap (Functor*Nat I C U tb) b o FMap (U ○ K B I lim) f
64 ≈⟨ cdr (IsFunctor.identity (isFunctor U) ) ⟩
65 TMap (Functor*Nat I C U tb) b o FMap (K C I (FObj U lim)) f
66
67 } }
68
69 FIC : { I : Category c₁ c₂ ℓ } → ( Γ : Functor I CommaCategory ) → Functor I C
70 FIC {I} Γ = G ○ (FIA Γ)
71
69 NIC : { I : Category c₁ c₂ ℓ } → ( Γ : Functor I CommaCategory ) 72 NIC : { I : Category c₁ c₂ ℓ } → ( Γ : Functor I CommaCategory )
70 (c : Obj CommaCategory ) ( ta : NTrans I A ( K A I (obj c) ) (FIA Γ) ) → NTrans I C ( K C I (FObj G (obj c)) ) (G ○ ( FIA Γ) ) 73 (c : Obj CommaCategory ) ( ta : NTrans I A ( K A I (obj c) ) (FIA Γ) ) → NTrans I C ( K C I (FObj G (obj c)) ) (G ○ ( FIA Γ) )
71 NIC {I} Γ c ta = record { 74 NIC {I} Γ c ta = tb A I (FIA Γ) (obj c) ta G
72 TMap = λ x → FMap G (TMap ta x )
73 ; isNTrans = record { commute = comm1 }
74 } where
75 comm1 : {a b : Obj I} {f : Hom I a b} →
76 C [ C [ FMap (G ○ FIA Γ) f o FMap G (TMap ta a) ] ≈ C [ FMap G (TMap ta b) o FMap (K C I (FObj G (obj c))) f ] ]
77 comm1 {a} {b} {f} = let open ≈-Reasoning (C) in begin
78 FMap (G ○ FIA Γ) f o FMap G (TMap ta a)
79 ≈↑⟨ distr G ⟩
80 FMap G ( A [ FMap (FIA Γ) f o TMap ta a ] )
81 ≈⟨ fcong G ( nat ta ) ⟩
82 FMap G ( A [ TMap ta b o FMap (K A I (obj c)) f ] )
83 ≈⟨ distr G ⟩
84 FMap G (TMap ta b) o FMap G (FMap (K A I (obj c)) f )
85 ≈⟨ cdr ( IsFunctor.identity (isFunctor G )) ⟩
86 FMap G (TMap ta b) o id1 C (FObj G (obj c))
87 ≈⟨⟩
88 FMap G (TMap ta b) o FMap (K C I (FObj G (obj c))) f
89
90 75
91 76 LimitC : { I : Category c₁ c₂ ℓ } → ( comp : Complete A I )
92 NIComma : { I : Category c₁ c₂ ℓ } → ( Γ : Functor I CommaCategory ) 77 → ( Glimit : ( Γ : Functor I A ) (lim : Obj A )
93 (c : Obj CommaCategory ) ( ta : NTrans I A ( K A I (obj c) ) (FIA Γ) ) → NTrans I CommaCategory ( K CommaCategory I c ) Γ 78 → ( limita : Limit A I Γ lim ta ) → Limit C I (G ○ Γ) (FObj G lim) (tb A I Γ lim ta G ) )
94 NIComma {I} Γ c ta = record { 79 → ( lim : Obj CommaCategory ) → ( Γ : Functor I CommaCategory ) ( ta : NTrans I CommaCategory ( K CommaCategory I ? ) Γ )
95 TMap = λ x → record { 80 → Limit C I (FIC Γ) {!!} ( NIC Γ {!!} (NIA Γ {!!} ta) )
96 arrow = TMap ta x 81 LimitC {I} comp Glimit lim Γ ta = Glimit (FIA Γ) {!!} (NIA Γ {!!} ta ) (isLimit comp (FIA Γ))
97 ; comm = comm1 x
98 }
99 ; isNTrans = record { commute = {!!} }
100 } where
101 comm1 : ( x : Obj I ) → C [ C [ FMap G (TMap ta x) o hom (FObj (K CommaCategory I c) x) ] ≈ C [ hom (FObj Γ x) o FMap F (TMap ta x) ] ]
102 comm1 x = let open ≈-Reasoning (C) in begin
103 FMap G (TMap ta x) o hom (FObj (K CommaCategory I c) x)
104 ≈⟨ {!!} ⟩
105 hom (FObj Γ x) o FMap F (TMap ta x)
106
107
108
109 82
110 commaLimit : { I : Category c₁ c₂ ℓ } → ( Complete A I) → ( Γ : Functor I CommaCategory ) → Obj CommaCategory 83 commaLimit : { I : Category c₁ c₂ ℓ } → ( Complete A I) → ( Γ : Functor I CommaCategory ) → Obj CommaCategory
111 commaLimit {I} comp Γ = record { 84 commaLimit {I} comp Γ = record {
112 obj = limit-c comp (FIA Γ) 85 obj = limit-c comp (FIA Γ)
113 ; hom = limitHom 86 ; hom = limitHom
114 } where 87 } where
115 ll = ( limit (isLimit comp (FIA Γ)) (limit-c comp (FIA Γ)) {!!}) 88 ll = ( limit (isLimit comp (FIA Γ)) (limit-c comp (FIA Γ)) (NIA Γ {!!} {!!} ))
116 limitHom : Hom C (FObj F (limit-c comp (FIA Γ ) )) (FObj G (limit-c comp (FIA Γ) )) 89 limitHom : Hom C (FObj F (limit-c comp (FIA Γ ) )) (FObj G (limit-c comp (FIA Γ) ))
117 limitHom = C [ FMap G ll o C [ {!!} o FMap F ll ] ] 90 limitHom = {!!}
118 91
119 92
120 commaNat : { I : Category c₁ c₂ ℓ } → ( comp : Complete A I) → ( Γ : Functor I CommaCategory ) 93 commaNat : { I : Category c₁ c₂ ℓ } → ( comp : Complete A I) → ( Γ : Functor I CommaCategory )
121 → (c : Obj CommaCategory ) 94 → (c : Obj CommaCategory )
122 → ( ta : NTrans I CommaCategory ( K CommaCategory I c ) Γ ) 95 → ( ta : NTrans I CommaCategory ( K CommaCategory I c ) Γ )
125 TMap = λ x → tmap x 98 TMap = λ x → tmap x
126 ; isNTrans = record { commute = {!!} } 99 ; isNTrans = record { commute = {!!} }
127 } where 100 } where
128 tmap : (i : Obj I) → Hom CommaCategory (FObj (K CommaCategory I c) i) (FObj Γ i) 101 tmap : (i : Obj I) → Hom CommaCategory (FObj (K CommaCategory I c) i) (FObj Γ i)
129 tmap i = record { 102 tmap i = record {
130 arrow = A [ arrow ( TMap ta i) o A [ {!!} o limit ( isLimit comp (FIA Γ ) ) (obj c) ( NIA Γ c ta ) ] ] 103 arrow = A [ arrow ( TMap ta i) o A [ {!!} o limit ( isLimit comp (FIA Γ ) ) (obj c) ( NIA Γ c ta ) ] ]
131 ; comm = {!!} 104 ; comm = {!!}
132 } 105 }
133 commute : {a b : Obj I} {f : Hom I a b} → 106 commute : {a b : Obj I} {f : Hom I a b} →
134 CommaCategory [ CommaCategory [ FMap Γ f o tmap a ] ≈ CommaCategory [ tmap b o FMap (K CommaCategory I c) f ] ] 107 CommaCategory [ CommaCategory [ FMap Γ f o tmap a ] ≈ CommaCategory [ tmap b o FMap (K CommaCategory I c) f ] ]
135 commute {a} {b} {f} = {!!} 108 commute {a} {b} {f} = {!!}