aboutsummaryrefslogtreecommitdiffhomepage
path: root/tactics/autorewrite.mli
diff options
context:
space:
mode:
authorGravatar Pierre-Marie Pédrot <pierre-marie.pedrot@inria.fr>2016-03-25 14:24:51 +0100
committerGravatar Pierre-Marie Pédrot <pierre-marie.pedrot@inria.fr>2016-03-25 14:25:58 +0100
commite8114ee084cae195eb7615293cec0e28dcc0a3d8 (patch)
tree6cc1208059a78d1f85042467542d35871120f831 /tactics/autorewrite.mli
parent222c24ff4361f1a35b267f6b406aa7b2da56e689 (diff)
Moving Autorewrite back to tactics/.
Diffstat (limited to 'tactics/autorewrite.mli')
-rw-r--r--tactics/autorewrite.mli61
1 files changed, 61 insertions, 0 deletions
diff --git a/tactics/autorewrite.mli b/tactics/autorewrite.mli
new file mode 100644
index 000000000..ac613b57c
--- /dev/null
+++ b/tactics/autorewrite.mli
@@ -0,0 +1,61 @@
+(************************************************************************)
+(* v * The Coq Proof Assistant / The Coq Development Team *)
+(* <O___,, * INRIA - CNRS - LIX - LRI - PPS - Copyright 1999-2016 *)
+(* \VV/ **************************************************************)
+(* // * This file is distributed under the terms of the *)
+(* * GNU Lesser General Public License Version 2.1 *)
+(************************************************************************)
+
+open Term
+open Tacexpr
+open Equality
+
+(** Rewriting rules before tactic interpretation *)
+type raw_rew_rule = Loc.t * constr Univ.in_universe_context_set * bool * Genarg.raw_generic_argument option
+
+(** To add rewriting rules to a base *)
+val add_rew_rules : string -> raw_rew_rule list -> unit
+
+(** The AutoRewrite tactic.
+ The optional conditions tell rewrite how to handle matching and side-condition solving.
+ Default is Naive: first match in the clause, don't look at the side-conditions to
+ tell if the rewrite succeeded. *)
+val autorewrite : ?conds:conditions -> unit Proofview.tactic -> string list -> unit Proofview.tactic
+val autorewrite_in : ?conds:conditions -> Names.Id.t -> unit Proofview.tactic -> string list -> unit Proofview.tactic
+
+(** Rewriting rules *)
+type rew_rule = { rew_lemma: constr;
+ rew_type: types;
+ rew_pat: constr;
+ rew_ctx: Univ.universe_context_set;
+ rew_l2r: bool;
+ rew_tac: Genarg.glob_generic_argument option }
+
+val find_rewrites : string -> rew_rule list
+
+val find_matches : string -> constr -> rew_rule list
+
+val auto_multi_rewrite : ?conds:conditions -> string list -> Locus.clause -> unit Proofview.tactic
+
+val auto_multi_rewrite_with : ?conds:conditions -> unit Proofview.tactic -> string list -> Locus.clause -> unit Proofview.tactic
+
+val print_rewrite_hintdb : string -> Pp.std_ppcmds
+
+open Clenv
+
+
+type hypinfo = {
+ hyp_cl : clausenv;
+ hyp_prf : constr;
+ hyp_ty : types;
+ hyp_car : constr;
+ hyp_rel : constr;
+ hyp_l2r : bool;
+ hyp_left : constr;
+ hyp_right : constr;
+}
+
+val find_applied_relation : bool ->
+ Loc.t ->
+ Environ.env -> Evd.evar_map -> Term.constr -> bool -> hypinfo
+