SUBST_TAC : (thm list -> tactic)
A ?- t
============================= SUBST_TAC [A1|-u1=v1,...,An|-un=vn]
A ?- t[v1,...,vn/u1,...,un]
SUBST_TAC automatically renames bound variables to prevent free variables in vi becoming bound after substitution.
?- (n + 0) + (0 + m) = m + n
- val thm1 = SPEC_ALL arithmeticTheory.ADD_SYM
val thm2 = CONJUNCT1 arithmeticTheory.ADD_CLAUSES;
thm1 = |- m + n = n + m
thm2 = |- 0 + m = m
?- (n + 0) + m = n + m