\DOC SUBST_ALL_TAC \TYPE {SUBST_ALL_TAC : thm_tactic} \SYNOPSIS

advertisement

\DOC SUBST_ALL_TAC

\TYPE {SUBST_ALL_TAC : thm_tactic}

\SYNOPSIS

Substitutes using a single equation in both the assumptions and conclusion of a goal.

\KEYWORDS tactic.

\DESCRIBE

{SUBST_ALL_TAC} breaches the style of natural deduction, where the assumptions are kept fixed. Given a theorem {A|-u=v} and a goal {([t1;...;tn], t)},

{SUBST_ALL_TAC (A|-u=v)} transforms the assumptions {t1},...,{tn} and the term

{t} into {t1[v/u]},...,{tn[v/u]} and {t[v/u]} respectively, by substituting {v} for each free occurrence of {u} in both the assumptions and the conclusion of the goal.

{

{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.

\FAILURE

{SUBST_ALL_TAC th (A,t)} fails if the conclusion of {th} is not an equation.

No change is made to the goal if no occurrence of the left-hand side of

{th} appears free in {(A,t)}.

\EXAMPLE

Simplifying both the assumption and the term in the goal

{

{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

}

\SEEALSO

Rewrite.ONCE_REWRITE_TAC, Rewrite.PURE_REWRITE_TAC, Rewrite.REWRITE_TAC,

Tactic.SUBST1_TAC, Tactic.SUBST_TAC.

\ENDDOC

Download