Reading material

Pages 52-58.

Additional material

  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