Lambda Calculus Substitutions Flashcards
What is the requirement for a substitution to be case 1?
b must be a variable
What is the requirement for a substitution to be case 2?
b must be a lambda abstraction
What is the requirement for a substitution to be case 3?
b must be an application expression
What property does subst(a, p, b) contain if the case is 1a?
p == b
What property does subst(a, p, b) contain if the case is 1b?
p != b
What property does subst(a, p, b) contain if the case is 2a?
p == x
What properties does subst(a, p, b) contain if the case is 2b?
p != x and x does not occur freely in a
What properties does subst(a, p, b) contain if the case is 2c?
p != x and x does occur freely in a
What property does subst(a, p, b) contain if the case is 3?
e1 and e2 are arbitrary lambda expressions
What is the evaluation of case 1a?
a
What is the evaluation of case 1b?
b
What is the evaluation of case 2a?
b
What is the evaluation of case 2b?
[lambda]x.subst(a, p, E)
What is the evaluation of case 2c?
The Lambda Calculus with case 2b applied, after an alpha-conversion
What is the evaluation of case 3?
(subst(a, p, e1) subst(a, p, e2))