FIX_TAC : string -> tactic
# g `!x a. a + x = x + a`;; # e (FIX_TAC "a");; val it : goalstack = 1 subgoal (1 total) `!x. a + x = x + a`
# 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`
# 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`