SUBST1_TAC : thm_tactic
A ?- t ============= SUBST1_TAC (A'|-u=v) A ?- t[v/u]The assumptions of the theorem used to substitute with are not added to the assumptions of the goal but are recorded in the proof. If A' is not a subset of the assumptions A of the goal (up to alpha-conversion), then SUBST1_TAC (A'|-u=v) results in an invalid tactic.
SUBST1_TAC automatically renames bound variables to prevent free variables in v becoming bound after substitution.
?- m * n = (n * (m - 1)) + nsubstituting with the commutative law for multiplication
SUBST1_TAC (SPECL ["m:num"; "n:num"] MULT_SYM)results in the goal
?- n * m = (n * (m - 1)) + n