Content deleted Content added
m Categorize |
Give up on inline citations |
||
Line 3:
==Definition==
A ''partial applicative structure''
The ''terms''
* A constant <math>a \in A</math> is an expression,
Line 15:
A term is ''closed'' if it contains no variables. A closed term may be ''evaluated'' in the natural way: a constant <math>a \in A</math> evaluates to itself, and if the terms <math>e_1</math> and <math>e_2</math> respectively evaluate to <math>a_1</math> and <math>a_2</math>, then <math>e_1 e_2</math> evaluates to <math>a_1 a_2</math>, if this is defined. Note that the evaluation is a partial operation, since not all applications are defined. A substitution operation is also defined in the natural way: if <math>t</math> is a term, <math>x</math> is a variable and <math>u</math> is another term, <math>t[u/x]</math> denotes the term <math>t</math> with all occurrences of <math>x</math> replaced by <math>u</math>. We write <math>t \downarrow</math> to simultaneously express that the term <math>t</math> evaluates to a defined value and denote this value (this matches standard notation for values of [[partial functions]]). We also write <math>t \simeq u</math> when both closed terms <math>t</math> either do not evaluate to a defined value, or evaluate to the same value.
The partial applicative structure ''A'' is said to be ''combinatory complete''
* <math>a a_0 \dots a_{n-1} \downarrow</math> for all <math>a_0, \dots, a_{n-1} \in A</math>,
* <math>a a_0 \dots a_n \simeq t[a_0/x_0, \dots, a_n/x_n]</math> for all <math>a_0, \dots, a_n \in A</math>.
A '''partial combinatory algebra'''
Informally, the combinatory completeness condition requires an analogue of the abstraction operation from lambda calculus to exist inside the pca.
Line 28:
In the same way as there is a translation from [[λ-term]]s to terms of the [[SKI combinator calculus]] by eliminating [[λ-abstraction]]s using combinators, pcas can be characterized by the existence of elements which satisfy equations analogous to the S and K combinators. Note, however, that some care must be taken in the statement and proof since application is not always defined in a pca.
'''Theorem:'''
* <math>K x y \downarrow = x</math> for all <math>x, y \in A</math>,
Line 63:
We can form a pca (in fact a tca) by quotienting the set of closed (untyped) λ-terms by [[β-equivalence]] and taking the application to be the one inherited from λ-calculus.
==
<ref name=van-oosten>{{ cite book | title = Realizability: an introduction to its categorical side | author = Jaap van Oosten | isbn = 9780444515841 | year = 2008 | publisher = Elsevier Science | pages = 328 }}</ref>▼
{{refbegin}}
▲*
{{refend}}
{{mathlogic-stub}}
|