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.

Generalizable All Variables.

Initial object definition

Structure Initial (π’ž : Category) ≔ mkInitial
{ empty :> π’ž
; bottom : βˆ€ {A : π’ž}, empty β‡’ A
; bottom_unique : βˆ€ `{f : empty β‡’ A}, f β‰ˆ bottom }.

Notation "⟨βŠ₯⟩"≔ empty.
Notation "!-βŠ₯"≔ bottom.
Notation "βŠ₯-unique" ≔ bottom_unique.

Notation "'Initial.make' ⦃ 'empty' ≔ empty ; 'bottom' ≔ bottom ⦄" ≔
  (@mkInitial _ empty bottom _) (only parsing).

Terminal object definition

Structure Terminal (π’ž : Category) ≔ mkTerminal
{ one :> π’ž
; top : βˆ€ {A : π’ž}, A β‡’ one
; top_unique : βˆ€ `{f : A β‡’ one}, f β‰ˆ top }.

Notation "⟨⊀⟩"≔ one.
Notation "!-⊀"≔ top.
Notation "⊀-unique" ≔ top_unique.

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