Documentation

LeanPool.PartialCombinatoryAlgebras.CombinatoryAlgebra

Total combinatory algebras #

A total combinatory structure on a type A, and the fact that any total combinatory algebra induces a partial combinatory algebra on the same type.

A (total) combinatory structure on a set A.

  • dot : AAA
  • K : A

    The K combinator.

  • S : A

    The S combinator.

  • eq_K {a b : A} : K a b = a

    The defining equation of K.

  • eq_S {a b c : A} : S a b c = a c (b c)

    The defining equation of S.

Instances
    def LeanPool.PartialCombinatoryAlgebras.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 LeanPool.PartialCombinatoryAlgebras.Part.map₂_Dom {α : Type u_1} {β : Type u_2} {γ : Type u_3} (f : αβγ) (u : Part α) (v : Part β) :
      ((map₂ f u v) ) = (u v )
      @[simp]
      theorem LeanPool.PartialCombinatoryAlgebras.Part.map₂_get {α : Type u_1} {β : Type u_2} {γ : Type u_3} (f : αβγ) (u : Part α) (v : Part β) (p : u v ) :
      (map₂ f u v).get p = f (u.get ) (v.get )
      @[simp]
      theorem LeanPool.PartialCombinatoryAlgebras.Part.eq_map₂_some {α : Type u_1} {β : Type u_2} {γ : Type u_3} (f : αβγ) (a : α) (b : β) :
      theorem LeanPool.PartialCombinatoryAlgebras.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)
      @[implicit_reducible]

      A combinatory algebra is a PCA.

      Equations
      • One or more equations did not get rendered due to their size.