Implement representable functors
This commit is contained in:
parent
7090c2c6bf
commit
902b953ad0
|
@ -25,22 +25,8 @@ Sets {ℓ} = record
|
||||||
; ident = funExt (λ x → refl) , funExt (λ x → refl)
|
; ident = funExt (λ x → refl) , funExt (λ x → refl)
|
||||||
}
|
}
|
||||||
|
|
||||||
module _ {ℓ ℓ' : Level} {ℂ : Category {ℓ} {ℓ}} where
|
representable : {ℓ ℓ' : Level} → {ℂ : Category {ℓ} {ℓ'}} → Category.Object ℂ → Functor ℂ (Sets {ℓ'})
|
||||||
private
|
representable {ℂ = ℂ} A = record
|
||||||
C-Obj = Object ℂ
|
|
||||||
_+_ = Arrow ℂ
|
|
||||||
|
|
||||||
RepFunctor : Functor ℂ Sets
|
|
||||||
RepFunctor =
|
|
||||||
record
|
|
||||||
{ 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* = λ B → ℂ.Arrow A B
|
||||||
; func→ = λ f g → f ℂ.⊕ g
|
; func→ = λ f g → f ℂ.⊕ g
|
||||||
; ident = funExt λ _ → snd ℂ.ident
|
; ident = funExt λ _ → snd ℂ.ident
|
||||||
|
@ -49,12 +35,12 @@ Hom0 {ℂ = ℂ} A = record
|
||||||
where
|
where
|
||||||
open module ℂ = Category ℂ
|
open module ℂ = Category ℂ
|
||||||
|
|
||||||
Hom1 : {ℓ ℓ' : Level} → {ℂ : Category {ℓ} {ℓ'}} → Category.Object ℂ → Functor (Opposite ℂ) (Sets {ℓ'})
|
coRepresentable : {ℓ ℓ' : Level} → {ℂ : Category {ℓ} {ℓ'}} → Category.Object (Opposite ℂ) → Functor (Opposite ℂ) (Sets {ℓ'})
|
||||||
Hom1 {ℂ = ℂ} B = record
|
coRepresentable {ℂ = ℂ} B = record
|
||||||
{ func* = λ A → ℂ.Arrow A B
|
{ func* = λ A → ℂ.Arrow A B
|
||||||
; func→ = λ f g → {!!} ℂ.⊕ {!!}
|
; func→ = λ f g → g ℂ.⊕ f
|
||||||
; ident = {!!}
|
; ident = funExt λ x → fst ℂ.ident
|
||||||
; distrib = {!!}
|
; distrib = funExt λ x → ℂ.assoc
|
||||||
}
|
}
|
||||||
where
|
where
|
||||||
open module ℂ = Category ℂ
|
open module ℂ = Category ℂ
|
||||||
|
|
|
@ -128,8 +128,8 @@ Opposite ℂ =
|
||||||
where
|
where
|
||||||
open module ℂ = Category ℂ
|
open module ℂ = Category ℂ
|
||||||
|
|
||||||
Hom : {ℓ ℓ' : Level} → {ℂ : Category {ℓ} {ℓ'}} → (A B : Object ℂ) → Set ℓ'
|
Hom : {ℓ ℓ' : Level} → (ℂ : Category {ℓ} {ℓ'}) → (A B : Object ℂ) → Set ℓ'
|
||||||
Hom {ℂ = ℂ} A B = Arrow ℂ A B
|
Hom ℂ A B = Arrow ℂ A B
|
||||||
|
|
||||||
module _ {ℓ ℓ' : Level} {ℂ : Category {ℓ} {ℓ'}} where
|
module _ {ℓ ℓ' : Level} {ℂ : Category {ℓ} {ℓ'}} where
|
||||||
private
|
private
|
||||||
|
@ -138,5 +138,5 @@ module _ {ℓ ℓ' : Level} {ℂ : Category {ℓ} {ℓ'}} where
|
||||||
_+_ = _⊕_ ℂ
|
_+_ = _⊕_ ℂ
|
||||||
|
|
||||||
HomFromArrow : (A : Obj) → {B B' : Obj} → (g : Arr B B')
|
HomFromArrow : (A : Obj) → {B B' : Obj} → (g : Arr B B')
|
||||||
→ Hom {ℂ = ℂ} A B → Hom {ℂ = ℂ} A B'
|
→ Hom ℂ A B → Hom ℂ A B'
|
||||||
HomFromArrow _A g = λ f → g + f
|
HomFromArrow _A g = λ f → g + f
|
||||||
|
|
Loading…
Reference in a new issue