SUBST_OCCS_TAC : (int list * thm) list -> tactic
A ?- t
============================= SUBST_OCCS_TAC [(l1,A1|-t1=u1),...,
A ?- t[u1,...,un/t1,...,tn] (ln,An|-tn=un)]
SUBST_OCCS_TAC automatically renames bound variables to prevent free variables in ui becoming bound after substitution.
?- (m + n) + (n + m) = (m + n) + (m + n)
SUBST_OCCS_TAC [([3], SPECL [Term `m:num`, Term `n:num`]
arithmeticTheory.ADD_SYM)]
?- (m + n) + (n + m) = (m + n) + (n + m)