← Back

Modules

Leios

  • Abstract
  • Base
  • Blocks
  • Config
  • FFD
  • KeyRegistration
  • Linear
  • Linear.Trace.Verifier
  • Linear.Trace.Verifier.Test
  • Prelude
  • Protocol
  • SpecStructure
  • Voting
  • VRF

Network

  • BasicBroadcast
12345678910111213141516171819202122232425262728293031323334353637383940414243
{-# OPTIONS --without-K --safe #-}
module Categories.Functor.Construction.Constant where
 
open import Level
 
open import Categories.Category
open import Categories.Category.Instance.One
open import Categories.Category.Product
open import Categories.Functor renaming (id to idF)
open import Categories.NaturalTransformation using (NaturalTransformation)
import Categories.Morphism.Reasoning as MR
 
private
variable
o ℓ e : Level
C D : Category o ℓ e
 
const : (d : Category.Obj D) → Functor C D
const {D = D} d = record
{ F₀ = λ _ → d
; F₁ = λ _ → id
; identity = refl
; homomorphism = sym identity²
; F-resp-≈ = λ _ → refl
}
where open Category D
open Equiv
 
const! : (d : Category.Obj D) → Functor (One {0ℓ} {0ℓ} {0ℓ}) D
const! = const
 
constˡ : (c : Category.Obj C) → Functor D (Product C D)
constˡ c = const c ※ idF
 
constʳ : (c : Category.Obj C) → Functor D (Product D C)
constʳ c = idF ※ (const c)
 
constNat : ∀ {A B} → Category._⇒_ D A B → NaturalTransformation (const {D = D} {C = C} A) (const B)
constNat {D = D} f = record
{ η = λ _ → f
; commute = λ _ → MR.id-comm D
; sym-commute = λ _ → MR.id-comm-sym D
}