aboutsummaryrefslogtreecommitdiffhomepage
path: root/tactics/auto.ml
diff options
context:
space:
mode:
authorGravatar Pierre-Marie Pédrot <pierre-marie.pedrot@inria.fr>2016-03-20 23:00:46 +0100
committerGravatar Pierre-Marie Pédrot <pierre-marie.pedrot@inria.fr>2016-03-20 23:22:18 +0100
commitbc1d2825b7f7d0fc828b4ed99cee8ce62c646148 (patch)
tree65646f324fcca3905867941c3d6e0593e29fde4d /tactics/auto.ml
parentdc7b77f09fe5e59e6e48486d9a8c0bdc6acf83b7 (diff)
Relying on generic arguments to represent Extern hints.
Diffstat (limited to 'tactics/auto.ml')
-rw-r--r--tactics/auto.ml10
1 files changed, 7 insertions, 3 deletions
diff --git a/tactics/auto.ml b/tactics/auto.ml
index 761c41da6..fc6ff03b4 100644
--- a/tactics/auto.ml
+++ b/tactics/auto.ml
@@ -140,8 +140,6 @@ si après Intros la conclusion matche le pattern.
(* conclPattern doit échouer avec error car il est rattraper par tclFIRST *)
-let (forward_interp_tactic, extern_interp) = Hook.make ()
-
let conclPattern concl pat tac =
let constr_bindings env sigma =
match pat with
@@ -156,7 +154,13 @@ let conclPattern concl pat tac =
let env = Proofview.Goal.env gl in
let sigma = Tacmach.New.project gl in
constr_bindings env sigma >>= fun constr_bindings ->
- Hook.get forward_interp_tactic constr_bindings tac
+ let open Genarg in
+ let open Geninterp in
+ let inj c = Val.Dyn (val_tag (topwit Constrarg.wit_constr), c) in
+ let fold id c accu = Id.Map.add id (inj c) accu in
+ let lfun = Id.Map.fold fold constr_bindings Id.Map.empty in
+ let ist = { lfun; extra = TacStore.empty } in
+ Ftactic.run (Geninterp.generic_interp ist tac) (fun _ -> Proofview.tclUNIT ())
end }
(***********************************************************)