aboutsummaryrefslogtreecommitdiffhomepage
path: root/tactics/autorewrite.mli
diff options
context:
space:
mode:
authorGravatar msozeau <msozeau@85f007b7-540e-0410-9357-904b9bb8a0f7>2009-04-13 23:07:54 +0000
committerGravatar msozeau <msozeau@85f007b7-540e-0410-9357-904b9bb8a0f7>2009-04-13 23:07:54 +0000
commit0e608025f45c9ffc2573c72e5c23bc183e3ab0b3 (patch)
tree69d66976f12d7bc9f46e1ba681fa9401a8515226 /tactics/autorewrite.mli
parente2655d38d11b072da0e5f4d40b05adbea73c8b8d (diff)
Rewrite of setoid_rewrite to modularize it based on proof-producing
strategies (à la ELAN). Now setoid_rewrite is just one strategy and autorewrite is a more elaborate one. Any kind of traversals can be defined, strategies can be composed etc... in ML. An incomplete (no fix) language extension for specifying them in Ltac is there too. On a typical autorewrite-with-setoids usage, proof production time is divided by 2 and proof size by 10. Fix some admitted proofs and buggy patterns in Classes.Morphisms as well. git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@12081 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'tactics/autorewrite.mli')
-rw-r--r--tactics/autorewrite.mli7
1 files changed, 7 insertions, 0 deletions
diff --git a/tactics/autorewrite.mli b/tactics/autorewrite.mli
index f0557f9d3..632a28170 100644
--- a/tactics/autorewrite.mli
+++ b/tactics/autorewrite.mli
@@ -9,6 +9,8 @@
(*i $Id$ i*)
(*i*)
+open Term
+open Tacexpr
open Tacmach
(*i*)
@@ -22,6 +24,11 @@ val add_rew_rules : string -> raw_rew_rule list -> unit
val autorewrite : tactic -> string list -> tactic
val autorewrite_in : Names.identifier -> tactic -> string list -> tactic
+(* Rewriting rules *)
+(* the type is the statement of the lemma constr. Used to elim duplicates. *)
+type rew_rule = constr * types * bool * glob_tactic_expr
+
+val find_base : string -> rew_rule list
val auto_multi_rewrite : string list -> Tacticals.clause -> tactic