SUBST_MATCH : (thm -> thm -> thm)
A |- u=v A' |- t -------------------- SUBST_MATCH (A|-u=v) (A'|-t) A u A' |- t[v/u]SUBST_MATCH allows only a free instance of u to be substituted for in t. An instance which contain bound variables can be substituted for by using rewriting rules such as REWRITE_RULE, PURE_REWRITE_RULE and ONCE_REWRITE_RULE.
#let thm1 = SPECL ["m:num"; "n:num"] ADD_SYM;; thm1 = |- m + n = n + mis used to apply substitutions, depending on the occurrence of free instances
#SUBST_MATCH thm1 (ASSUME "(n + 1) + (m - 1) = m + n");; . |- (m - 1) + (n + 1) = m + n #SUBST_MATCH thm1 (ASSUME "!n. (n + 1) + (m - 1) = m + n");; . |- !n. (n + 1) + (m - 1) = m + n