- g `HD[1;2;3] = 1`;
`HD[1;2;3] = 1`
() : void
- expandf (REWRITE_TAC[HD;TL]);;
OK..
goal proved
|- HD[1;2;3] = 1
Previous subproof:
goal proved
() : void
The following example shows how the use of an invalid tactic can
yield a theorem which does not correspond to the goal set.
- set_goal([], Term `1=2`);
`1 = 2`
() : void
- expandf (REWRITE_TAC[ASSUME (Term`1=2`)]);
OK..
goal proved
. |- 1 = 2
Previous subproof:
goal proved
() : void
The proof assumed something which was not on the assumption list.
This assumption appears in the assumption list of the theorem proved, even
though it was not in the goal. An attempt to perform the proof using expand
fails. The validated version of the tactic detects that the justification
produces a theorem which does not correspond to the goal set. It therefore
fails.