Definition. Partial applicative structure [math-FNBV]

Higher-Order Computability

A partial applicative structure AA consists of

  1. an inhabited family ∣A∣|A| of datatypes A,B,…A,B,\dots, indexed by some set TT,
  2. a (right-associative) binary operation ⇒\Rightarrow on ∣A∣|A|,
  3. for each A,B∈∣A∣A, B \in |A|, a partial function ⋅AB:(A⇒B)×A⇀B\cdot_{AB} : (A \Rightarrow B) \times A \rightharpoonup B.

Notation [local-0]

We often omit ABAB from ⋅AB\cdot_{AB} and treat ⋅\cdot as left-associative.

Definition substructure [local-1]

A partial applicative substructure A#A^\# of A∘A^\circ consists of A#⊂AA^\# \subset A for each datatype A∈∣A∘∣A \in |A^\circ| such that

  • if f∈(A⇒B)#f \in (A \Rightarrow B)^\# and a∈A#a \in A^\#, then f⋅a∈B#f \cdot a \in B^\#.

Definition relative structure [local-2]

Above (A∘;A#)(A^\circ; A^\#) is a relative partial applicative structure.

  • If A#=A∘A^\# = A^\circ, then (A∘;A#)(A^\circ; A^\#) is full.

Definition Typed partial combinatory algebra (TPCA) [math-Y5YD]

A typed partial combinatory algebra is a partial applicative structure satisfying the following conditions

  1. For all A,B∈∣A∣A, B \in |A|, there is a kAB:A⇒B⇒Ak_{AB} : A \Rightarrow B \Rightarrow A such that ∀a. k⋅a↓,∀a,b. k⋅a⋅b=a \forall a.\ k \cdot a \downarrow, \quad \forall a,b.\ k \cdot a \cdot b = a
  2. For all A,B,C∈∣A∣A, B, C \in |A|, there is a sABC:(A⇒B⇒C)⇒(A⇒B)⇒(A⇒C)s_{ABC} : (A \Rightarrow B \Rightarrow C) \Rightarrow (A \Rightarrow B) \Rightarrow (A \Rightarrow C) such that ∀f,g. s⋅f⋅g↓,∀f,g,a. s⋅f⋅g⋅a≃(f⋅a)⋅(g⋅a) \forall f, g.\ s \cdot f \cdot g \downarrow, \quad \forall f,g,a.\ s \cdot f \cdot g \cdot a \simeq (f \cdot a) \cdot (g \cdot a)

Any higher-order model yields an underlying TPCA.