SUBST_ALL_TAC : thm_tactic
{t1,...,tn} ?- t
================================= SUBST_ALL_TAC (A|-u=v)
{t1[v/u],...,tn[v/u]} ?- t[v/u]
The assumptions of the theorem used to substitute with are not added
to the assumptions of the goal, but they are recorded in the proof. If A is
not a subset of the assumptions of the goal (up to alpha-conversion), then
SUBST_ALL_TAC (A|-u=v) results in an invalid tactic.
SUBST_ALL_TAC automatically renames bound variables to prevent free variables in v becoming bound after substitution.
{0 + m = n} ?- 0 + (0 + m) = n
by substituting with the theorem |- 0 + m = m for addition
SUBST_ALL_TAC (CONJUNCT1 ADD_CLAUSES)results in the goal
{m = n} ?- 0 + m = n