Documentation

PartialCombinatoryAlgebras.CombinatoryAlgebra

class CA (A : Type u_1) extends HasDot A :
Type u_1

A (total) combinatory structure on a set A.

Instances
    def Part.map₂ {α : Type u_1} {β : Type u_2} {γ : Type u_3} (f : αβγ) (u : Part α) (v : Part β) :
    Part γ

    Missing from Part

    Equations
    Instances For
      @[simp]
      theorem Part.map₂_get {α : Type u_1} {β : Type u_2} {γ : Type u_3} (f : αβγ) (u : Part α) (v : Part β) (p : u v ) :
      (Part.map₂ f u v).get p = f (u.get ) (v.get )
      @[simp]
      theorem Part.map₂_Dom {α : Type u_1} {β : Type u_2} {γ : Type u_3} (f : αβγ) (u : Part α) (v : Part β) :
      ((Part.map₂ f u v) ) = (u v )
      @[simp]
      theorem Part.eq_map₂_some {α : Type u_1} {β : Type u_2} {γ : Type u_3} (f : αβγ) (a : α) (b : β) :
      @[reducible]
      instance CA.partialApp {A : Type} [d : HasDot A] :

      A total application induces a partial application

      Equations
      theorem CA.eq_app {A : Type} [HasDot A] {u v : Part A} (hu : u ) (hv : v ) :
      u v = Part.some (u.get hu v.get hv)
      instance CA.isPCA {A : Type} [CA A] :
      PCA A

      A combinatory algebra is a PCA

      Equations