Mercurial > hg > Members > kono > Proof > category
view CCC.agda @ 779:6b4bd02efd80
CCC start
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Sat, 06 Oct 2018 13:42:27 +0900 |
parents | |
children | b44c1c6ce646 |
line wrap: on
line source
open import Level open import Category module CCC where open import HomReasoning open import cat-utility open import Data.Product renaming (_×_ to _*_) open Functor -- ccc-1 : Hom A a 1 ≅ {*} -- ccc-2 : Hom A c (a × b) ≅ (Hom A c a ) × ( Hom A c b ) -- ccc-3 : Hom A a (c ^ b) ≅ Hom A (a × b) c record _≅_ {c₁ c₂ ℓ ℓ' : Level} {A : Category c₁ c₂ ℓ} {a b : Obj A} (f : Hom A a b) (S : Set ℓ') : Set ( c₁ ⊔ c₂ ⊔ ℓ ⊔ ℓ' ) where field ≅→ : {!!} ≅← : {!!} iso→ : {!!} iso← : {!!} data One {c : Level} : Set c where OneObj : One -- () in Haskell ( or any one object set ) record isCCC {c₁ c₂ ℓ : Level} (A : Category c₁ c₂ ℓ) (one : Obj A) ( _×_ : Obj A → Obj A → Obj A ) ( _^_ : Obj A → Obj A → Obj A ) : Set ( c₁ ⊔ c₂ ⊔ ℓ ) where field ccc-1 : {a : Obj A} → Hom A a one ≅ One {ℓ} ccc-2 : {a b c : Obj A} → Hom A c ( a × b ) ≅ ( Hom A c a ) * ( Hom A c b ) ccc-3 : {a b c : Obj A} → Hom A a ( c ^ b ) ≅ Hom A ( a × b ) c