Unfinished stuff about HOM-sets and exponentials

This commit is contained in:
Frederik Hanghøj Iversen 2018-01-15 16:13:23 +01:00
parent 0cd75e6e31
commit 26d449771a
3 changed files with 62 additions and 9 deletions

View file

@ -1,8 +1,14 @@
module Category.Sets where
{-# OPTIONS --allow-unsolved-metas #-}
module Cat.Categories.Sets where
open import Cubical.PathPrelude
open import Agda.Primitive
open import Category
open import Data.Product
open import Data.Product renaming (proj₁ to fst ; proj₂ to snd)
open import Cat.Category
open import Cat.Functor
-- Sets are built-in to Agda. The set of all small sets is called Set.
@ -27,8 +33,28 @@ module _ { ' : Level} { : Category {} {}} where
RepFunctor : Functor Sets
RepFunctor =
record
{ F = λ A (B : C-Obj) Hom { = } A B
; f = λ { {c' = c'} f g {!HomFromArrow { = } c' g!}}
; ident = {!!}
; distrib = {!!}
}
{ func* = λ A (B : C-Obj) Hom { = } A B
; func→ = λ { {c} {c'} f g {!HomFromArrow { = {!!}} c' g!} }
; ident = {!!}
; distrib = {!!}
}
Hom0 : { ' : Level} { : Category {} {'}} Category.Object Functor (Sets {'})
Hom0 { = } A = record
{ func* = λ B .Arrow A B
; func→ = λ f g f .⊕ g
; ident = funExt λ _ snd .ident
; distrib = funExt λ x sym .assoc
}
where
open module = Category
Hom1 : { ' : Level} { : Category {} {'}} Category.Object Functor (Opposite ) (Sets {'})
Hom1 { = } B = record
{ func* = λ A .Arrow A B
; func→ = λ f g {!!} .⊕ {!!}
; ident = {!!}
; distrib = {!!}
}
where
open module = Category

View file

@ -0,0 +1,23 @@
{-# OPTIONS --allow-unsolved-metas #-}
module Cat.Category.Properties where
open import Cat.Category
open import Cat.Functor
open import Cat.Categories.Sets
module _ {a a' b b'} where
Exponential : Category {a} {a'} Category {b} {b'} Category {{!!}} {{!!}}
Exponential A B = record
{ Object = {!!}
; Arrow = {!!}
; 𝟙 = {!!}
; _⊕_ = {!!}
; assoc = {!!}
; ident = {!!}
}
_⇑_ = Exponential
yoneda : { '} { : Category {} {'}} Functor (Sets (Opposite ))
yoneda = {!!}

View file

@ -8,7 +8,6 @@ open import Cat.Category
record Functor {c c' d d'} (C : Category {c} {c'}) (D : Category {d} {d'})
: Set (c c' d d') where
constructor functor
private
open module C = Category C
open module D = Category D
@ -59,4 +58,9 @@ module _ { ' : Level} {A B C : Category {} {'}} (F : Functor B C) (G
-- The identity functor
identity : { ' : Level} {C : Category {} {'}} Functor C C
-- Identity = record { F* = λ x → x ; F→ = λ x → x ; ident = refl ; distrib = refl }
identity = functor (λ x x) (λ x x) (refl) (refl)
identity = record
{ func* = λ x x
; func→ = λ x x
; ident = refl
; distrib = refl
}