simpLib.SIMP_TAC : simpset -> thm list -> tactic
With simple simpsets, SIMP_TAC is similar in effect to REWRITE_TAC; it transforms the conclusion of a goal by using the (equational) theorems given and those already in the simpset as rewrite rules over the structure of the conclusion of the goal.
Just as ASM_REWRITE_TAC includes the assumptions of a goal in the rewrite rules that REWRITE_TAC uses, ASM_SIMP_TAC adds the assumptions of a goal to the rewrites and then performs simplification.
- val (_, p) =
SIMP_TAC hol_ss [] ([], Term`P x /\ (x = y + 3) ==> P x /\ y < x`);
> val p = fn : thm list -> thm
- p [];
> val it = |- P x /\ (x = y + 3) ==> P x /\ y < x : thm
SIMP_TAC is similar to REWRITE_TAC if used with just the
bool_ss simpset. Here it is used in conjunction with the arithmetic
theorem GREATER_DEF, |- !m n. m > n = n < m, to advance a goal:
- SIMP_TAC bool_ss [GREATER_DEF] ([], Term`T /\ 5 > 4 \/ F`); > val it = ([([], `4 < 5`)], fn) : subgoals