if(true, X, Y) ->> X if(false, X, Y) ->> Y empty(push(X, S)) ->> if((X = error or S = error), error, false)
Leibniz rule: Let e, f and g be expression and
let z be a variable.
e = f
g[e/z] = g[f/z]
Question
Exercise 5.6