Benedikt Ahrens and RΓ©gis Spadotti— Terminal semantics for codata types in intensional Martin-Löf type theory
Table of contents
Index
Require Import Theory.Category.

Functor definition

Structure Functor (π’ž π’Ÿ : Category) : Type ≔ mkFunctor
{ F:> π’ž β†’ π’Ÿ
; map: βˆ€ {A B}, [ A β‡’ B ⟢ F A β‡’ F B ]
; identity: βˆ€ {A}, id[ F A ] β‰ˆ map id[ A ]
; map_compose : βˆ€ {A B C} {f : A β‡’ B} {g : B β‡’ C}, map (g ∘ f) β‰ˆ (map g) ∘ (map f) }.

Arguments mkFunctor {_ _} {_ _} _ _.
Arguments map{_ _} _ {_ _}.

Notation "F β‹… f" ≔ (map F f) (at level 35, no associativity).

Notation "'Functor.make' ⦃ 'F' ≔ F ; 'map' ≔ map ⦄" ≔
  (@mkFunctor _ _ F map _ _) (only parsing).
Benedikt Ahrens and RΓ©gis Spadotti— Terminal semantics for codata types in intensional Martin-Löf type theory
Table of contents
Index