if name = "_clearme" then clear_tac ["_clearme"] else id_tac ]
;;
-let constructor ?(num=1) ~args status goal =
+let constructor_tac ?(num=1) ~args = distribute_tac (fun status goal ->
if num < 1 then fail (lazy "constructor numbers begin with 1");
let gty = get_goalty status goal in
let status, (r,_,_,_) = analyse_indty status gty in
Ast.Appl (HExtlib.list_concat ~sep:[Ast.Implicit `Vector]
([Ast.NRef ref] :: List.map (fun _,_,x -> [x]) args))
in
- exec (apply_tac ("",0,t)) status goal
+ exec (apply_tac ("",0,t)) status goal)
;;
-let constructor_tac ?num ~args = distribute_tac (constructor ?num ~args);;
-
let assert0_tac (hyps,concl) = distribute_tac (fun status goal ->
let gty = get_goalty status goal in
let eq status ctx t1 t2 =