Higher-Order Computability
A computability model C has weak (binary cartesian) products if there is an operation assigning to each A,B∈∣C∣ a datatype A⋈B∈∣C∣ along with operations πA∈C[A⋈B,A] and πB∈C[A⋈B,B], such that for any f∈C[C,A] and g∈C[C,B], there exists ⟨f,g⟩∈C[C,A⋈B] satisfying the following for all c∈C.
- ⟨f,g⟩(c)↓ iff f(c)↓ and g(c)↓
- if ⟨f,g⟩(c) is defined, then πA(⟨f,g⟩(c))=f(c) and πB(⟨f,g⟩(c))=g(c)
We say that d∈A⋈B represents the pair (a,b) if πA(d)=a and πB(d)=b.