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.
Require Import Theory.Functor.
Require Import Theory.RelativeComonadWithCut.
Require Import Theory.Product.
Require Import Theory.CartesianStrongMonoidal.

Generalizable All Variables.

Category of Relative comonads with cut

Category definition

Section Definitions.

  Context `{BinaryProduct π’ž} `{BinaryProduct π’Ÿ}
          (F : Functor π’ž π’Ÿ) (E : π’ž) `{!CartesianStrongMonoidal F}.

  Implicit Types (A B C D : RelativeComonadWithCut F E).

  Import RelativeComonadWithCut.Morphism.

  Infix "β‡’" ≔ Hom.
  Infix "∘" ≔ compose.

  Lemma left_id A B(f : A β‡’ B) : id ∘ f β‰ˆ f.
  Show proof.
    intro x; simpl. rewrite left_id. reflexivity.

  Lemma right_id A B (f : A β‡’ B) : f ∘ id β‰ˆ f.
  Show proof.
    intro x; simpl. now rewrite right_id.

  Lemma compose_assoc A B C D (f : A β‡’ B) (g : B β‡’ C) (h : C β‡’ D) : h ∘ g ∘ f β‰ˆ h ∘ (g ∘ f).
  Show proof.
    intro x; simpl. now rewrite compose_assoc.

  Canonical Structure 𝑹π‘ͺπ’π’Žπ’π’π’‚π’…π‘Ύπ’Šπ’•π’‰π‘ͺ𝒖𝒕 : Category ≔
    mkCategory left_id right_id compose_assoc.

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