aboutsummaryrefslogtreecommitdiff
path: root/ltac
diff options
context:
space:
mode:
authorMatthieu Sozeau2016-03-09 01:56:30 +0100
committerMatthieu Sozeau2016-06-16 18:21:08 +0200
commit5266ced0de0876d2da34b6f304647f37f62615a9 (patch)
tree2d4ef7746b0980abfd92ced2767a1e3dd660a4f0 /ltac
parentd4a421e57d74d305a797897f43ce216fb4c39719 (diff)
Typeclasses eauto based on new proof engine,
with full backtracking across multiple goals.
Diffstat (limited to 'ltac')
-rw-r--r--ltac/g_auto.ml41
-rw-r--r--ltac/g_class.ml412
2 files changed, 13 insertions, 0 deletions
diff --git a/ltac/g_auto.ml4 b/ltac/g_auto.ml4
index d4fd8a1df3..df7e763470 100644
--- a/ltac/g_auto.ml4
+++ b/ltac/g_auto.ml4
@@ -207,3 +207,4 @@ VERNAC COMMAND EXTEND HintCut CLASSIFIED AS SIDEFF
Hints.add_hints (Locality.make_section_locality (Locality.LocalityFixme.consume ()))
(match dbnames with None -> ["core"] | Some l -> l) entry ]
END
+
diff --git a/ltac/g_class.ml4 b/ltac/g_class.ml4
index 77075ec4c4..161b88242b 100644
--- a/ltac/g_class.ml4
+++ b/ltac/g_class.ml4
@@ -85,3 +85,15 @@ END
TACTIC EXTEND autoapply
[ "autoapply" constr(c) "using" preident(i) ] -> [ Proofview.V82.tactic (autoapply c i) ]
END
+
+open G_auto
+
+TACTIC EXTEND fulleauto
+| ["fulleauto" opthints(dbnames) ] -> [
+ let dbs = match dbnames with None -> ["typeclass_instances"]
+ | Some l -> l in
+ let dbs = List.map Hints.searchtable_map dbs in
+ Pp.msg_debug (Pp.str"Calling fulleauto");
+ Class_tactics.new_eauto_tac false dbs
+ ]
+END