FIX_TAC : string -> tactic
- SYNOPSIS
-
Fixes universally quantified variables in goal.
- DESCRIPTION
-
Given a string s indicating a sequence of variable names, FIX_TAC s
performs the introduction of the indicated universally quantified variables.
It is not required to specify the variables in any particular order. The
syntax for the string argument s allows the following patterns:
- a variable name varname (meaning introduce the variable varname)
- a pattern [newname/varname] (meaning introduce varname and call it
newname)
- a pattern [newname] (meaning introduce the outermost variable and
call it newname)
- a final * (meaning introduce the remaining outermost universal
quantified variables)
- FAILURE CONDITIONS
-
Fails if the string specifying the variables is ill-formed or if some of the
indicated variables are not present as outer universal quantifiers in the goal.
- EXAMPLE
-
Here we fix just the variable a:
# g `!x a. a + x = x + a`;;
# e (FIX_TAC "a");;
val it : goalstack = 1 subgoal (1 total)
`!x. a + x = x + a`
while here we rename one of the variables and fix all the others:
# g `!a b x. a + b + x = (a + b) + x`;;
# e (FIX_TAC "[d/x] *");;
val it : goalstack = 1 subgoal (1 total)
`a + b + d = (a + b) + d`
Here we fix an automatically generated variable and choose a meaningful name
for it
# g `(@x. x = 0) + 0 = 0`;;
# e SELECT_ELIM_TAC;;
val it : goalstack = 1 subgoal (1 total)
`!_75605. (!x. x = 0 ==> _75605 = 0) ==> _75605 + 0 = 0`
# e (FIX_TAC "[y]");;
val it : goalstack = 1 subgoal (1 total)
`(!x. x = 0 ==> y = 0) ==> y + 0 = 0`
- SEE ALSO
-
GEN, GEN_TAC, INTRO_TAC, STRIP_TAC, X_GEN_TAC.