Substitution
\(\lambda\)-calculus Part I (Variables and Functions)
2021 James B. Wilson, Colorado State University
\[x\mapsto x+5\]
What is a...
...variable?
...function?
- What is c?
- What is x?
- Are they both variables?
> c = 4
> f(x) = 3*x+2
> f(c)
14
-
Variables are symbols we can replace.
-
Formulas are strings with variables.
What are the variables in \(x+5\)?
- We may trade \(x\) with 3, so \(x\) is a variable.
- Usually constant, we may replace \(5\) with \(\begin{bmatrix} 5 & 0 \\ 0 & 5\end{bmatrix}\). So 5, 1, -1, etc. can be variables.
- We can even trade \(+\), e.g. to change to addition of polynomials, matrices, abelian group addition.
Variables are defined by the language
- Arithmetic: \(x,y,a,b,c\ldots\)
- Geometry: \(\ell, P,Q\)
- Abstract algebra \(x,y,z,\ldots\) but also \(+,-,=,0,\ldots\)
- Synthetic Geometry: \(\ell, P,Q\) but also \(\bot, \|, \angle,\ldots\)
- Category theory: \(A,B,\ldots\) but also \(\to, \Rightarrow,\prod,\coprod,\ldots\)
All Sorts of Variables
Often we insist \(x\) be replaced by "numbers" and \(+\) by binary operations on numbers.
These two variables are of different "sorts".
- Propositional logic assumes only one sort, so a variable can be replaced by anything.
- Predicate logic allows variables in different sorts, commonly in a hierarchy: constants \(1,5,\pi,\ldots\), relations \(+,=,\leq\), relations of relations \(\subset, \cong,\ldots\)...
Without more details, variables have no unique role in meaning. In particular they are not always related to functions.
\[\sum_{i=1}^{100}\cdots, \qquad\forall x.(\cdots),\qquad x\mapsto x+3,\qquad\ldots\]
Free Variables
Variables in the language not assigned to logical connectives.
\[\begin{aligned} a^2+b^2 = c^2 \\ x \mapsto x+c\\ n \textnormal{ is even}\end{aligned}\]
Bound Variables
Variables given syntax or semantics by a logical connective involving the variable.
\[\begin{aligned} x & \mapsto x+5\\ \forall k.&(2k\textnormal{ is even})\\ \exists x.&(x^2-1=0)\\ \sum_{i=1}^{100} & i^2\end{aligned}\]
\(\lambda\)-bound variables signal functions
- Church copied \(\forall x.P(x)\), \(\exists x.P(x)\) and wrote \[\lambda x.P(x)\] Today we mostly write \[x\mapsto P(x).\]
- \(x+5\) is a formula, \[x\mapsto x+5\] is a function of the variable \(x\).
- Sometimes called \(\lambda\)'s, or anonymous but always known as functions.
-
Variables are symbols we can replace.
-
Formulas are strings with variables.
-
Functions are formulas with a \(\lambda\)-bound variable.
But 4 is not a function of c!
So c is not a variable.
Rather c is a name, a definition.
x is clearly a variable:
we will replace x when evaluating f.
> c = 4
> f(x) = 3*x+2
> f(c)
14
Further Reading
- Online guide
- Hindley-Seldin Lambda-Calculus and Combinators, Cambridge U. Press, Chapter 1.
Substitution: lambda-calculus
By James Wilson
Substitution: lambda-calculus
Variables and functions, the start of lambda calculus
- 403