Mercurial > hg > Members > kono > Proof > category
diff 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 |
line wrap: on
line diff
--- a/freyd1.agda Sat Mar 11 10:51:12 2017 +0900 +++ b/freyd1.agda Sat Mar 11 16:38:08 2017 +0900 @@ -17,20 +17,6 @@ open NTrans -tb : { c₁' c₂' ℓ' : Level} (B : Category c₁' c₂' ℓ') { c₁ c₂ ℓ : Level} ( I : Category c₁ c₂ ℓ ) ( Γ : Functor I B ) - ( lim : Obj B ) ( tb : NTrans I B ( K B I lim ) Γ ) → - ( U : Functor B C) → NTrans I C ( K C I (FObj U lim) ) (U ○ Γ) -tb B I Γ lim tb U = record { - TMap = TMap (Functor*Nat I C U tb) ; - isNTrans = record { commute = λ {a} {b} {f} → let open ≈-Reasoning (C) in begin - FMap (U ○ Γ) f o TMap (Functor*Nat I C U tb) a - ≈⟨ nat ( Functor*Nat I C U tb ) ⟩ - TMap (Functor*Nat I C U tb) b o FMap (U ○ K B I lim) f - ≈⟨ cdr (IsFunctor.identity (isFunctor U) ) ⟩ - TMap (Functor*Nat I C U tb) b o FMap (K C I (FObj U lim)) f - ∎ - } } - open Complete open CommaObj open CommaHom @@ -66,55 +52,42 @@ A [ A [ FMap (FIA Γ) f o arrow (TMap ta a) ] ≈ A [ arrow (TMap ta b) o FMap (K A I (obj c)) f ] ] comm1 {a} {b} {f} = IsNTrans.commute (isNTrans ta ) +tb : { c₁' c₂' ℓ' : Level} (B : Category c₁' c₂' ℓ') { c₁ c₂ ℓ : Level} ( I : Category c₁ c₂ ℓ ) ( Γ : Functor I B ) + ( lim : Obj B ) ( tb : NTrans I B ( K B I lim ) Γ ) → + ( U : Functor B C) → NTrans I C ( K C I (FObj U lim) ) (U ○ Γ) +tb B I Γ lim tb U = record { + TMap = TMap (Functor*Nat I C U tb) ; + isNTrans = record { commute = λ {a} {b} {f} → let open ≈-Reasoning (C) in begin + FMap (U ○ Γ) f o TMap (Functor*Nat I C U tb) a + ≈⟨ nat ( Functor*Nat I C U tb ) ⟩ + TMap (Functor*Nat I C U tb) b o FMap (U ○ K B I lim) f + ≈⟨ cdr (IsFunctor.identity (isFunctor U) ) ⟩ + TMap (Functor*Nat I C U tb) b o FMap (K C I (FObj U lim)) f + ∎ + } } + +FIC : { I : Category c₁ c₂ ℓ } → ( Γ : Functor I CommaCategory ) → Functor I C +FIC {I} Γ = G ○ (FIA Γ) + NIC : { I : Category c₁ c₂ ℓ } → ( Γ : Functor I CommaCategory ) (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 Γ) ) -NIC {I} Γ c ta = record { - TMap = λ x → FMap G (TMap ta x ) - ; isNTrans = record { commute = comm1 } - } where - comm1 : {a b : Obj I} {f : Hom I a b} → - 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 ] ] - comm1 {a} {b} {f} = let open ≈-Reasoning (C) in begin - FMap (G ○ FIA Γ) f o FMap G (TMap ta a) - ≈↑⟨ distr G ⟩ - FMap G ( A [ FMap (FIA Γ) f o TMap ta a ] ) - ≈⟨ fcong G ( nat ta ) ⟩ - FMap G ( A [ TMap ta b o FMap (K A I (obj c)) f ] ) - ≈⟨ distr G ⟩ - FMap G (TMap ta b) o FMap G (FMap (K A I (obj c)) f ) - ≈⟨ cdr ( IsFunctor.identity (isFunctor G )) ⟩ - FMap G (TMap ta b) o id1 C (FObj G (obj c)) - ≈⟨⟩ - FMap G (TMap ta b) o FMap (K C I (FObj G (obj c))) f - ∎ +NIC {I} Γ c ta = tb A I (FIA Γ) (obj c) ta G - -NIComma : { I : Category c₁ c₂ ℓ } → ( Γ : Functor I CommaCategory ) - (c : Obj CommaCategory ) ( ta : NTrans I A ( K A I (obj c) ) (FIA Γ) ) → NTrans I CommaCategory ( K CommaCategory I c ) Γ -NIComma {I} Γ c ta = record { - TMap = λ x → record { - arrow = TMap ta x - ; comm = comm1 x - } - ; isNTrans = record { commute = {!!} } - } where - 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) ] ] - comm1 x = let open ≈-Reasoning (C) in begin - FMap G (TMap ta x) o hom (FObj (K CommaCategory I c) x) - ≈⟨ {!!} ⟩ - hom (FObj Γ x) o FMap F (TMap ta x) - ∎ - - +LimitC : { I : Category c₁ c₂ ℓ } → ( comp : Complete A I ) + → ( Glimit : ( Γ : Functor I A ) (lim : Obj A ) + → ( limita : Limit A I Γ lim ta ) → Limit C I (G ○ Γ) (FObj G lim) (tb A I Γ lim ta G ) ) + → ( lim : Obj CommaCategory ) → ( Γ : Functor I CommaCategory ) ( ta : NTrans I CommaCategory ( K CommaCategory I ? ) Γ ) + → Limit C I (FIC Γ) {!!} ( NIC Γ {!!} (NIA Γ {!!} ta) ) +LimitC {I} comp Glimit lim Γ ta = Glimit (FIA Γ) {!!} (NIA Γ {!!} ta ) (isLimit comp (FIA Γ)) commaLimit : { I : Category c₁ c₂ ℓ } → ( Complete A I) → ( Γ : Functor I CommaCategory ) → Obj CommaCategory commaLimit {I} comp Γ = record { obj = limit-c comp (FIA Γ) ; hom = limitHom } where - ll = ( limit (isLimit comp (FIA Γ)) (limit-c comp (FIA Γ)) {!!}) + ll = ( limit (isLimit comp (FIA Γ)) (limit-c comp (FIA Γ)) (NIA Γ {!!} {!!} )) limitHom : Hom C (FObj F (limit-c comp (FIA Γ ) )) (FObj G (limit-c comp (FIA Γ) )) - limitHom = C [ FMap G ll o C [ {!!} o FMap F ll ] ] + limitHom = {!!} commaNat : { I : Category c₁ c₂ ℓ } → ( comp : Complete A I) → ( Γ : Functor I CommaCategory ) @@ -127,7 +100,7 @@ } where tmap : (i : Obj I) → Hom CommaCategory (FObj (K CommaCategory I c) i) (FObj Γ i) tmap i = record { - arrow = A [ arrow ( TMap ta i) o A [ {!!} o limit ( isLimit comp (FIA Γ ) ) (obj c) ( NIA Γ c ta ) ] ] + arrow = A [ arrow ( TMap ta i) o A [ {!!} o limit ( isLimit comp (FIA Γ ) ) (obj c) ( NIA Γ c ta ) ] ] ; comm = {!!} } commute : {a b : Obj I} {f : Hom I a b} →