summaryrefslogtreecommitdiff
path: root/pretyping/tacred.mli
diff options
context:
space:
mode:
Diffstat (limited to 'pretyping/tacred.mli')
-rw-r--r--pretyping/tacred.mli32
1 files changed, 19 insertions, 13 deletions
diff --git a/pretyping/tacred.mli b/pretyping/tacred.mli
index e12d6ad2..2bba87a7 100644
--- a/pretyping/tacred.mli
+++ b/pretyping/tacred.mli
@@ -6,7 +6,7 @@
(* * GNU Lesser General Public License Version 2.1 *)
(************************************************************************)
-(*i $Id: tacred.mli 11094 2008-06-10 19:35:23Z herbelin $ i*)
+(*i $Id$ i*)
(*i*)
open Names
@@ -17,16 +17,27 @@ open Reductionops
open Closure
open Rawterm
open Termops
+open Pattern
(*i*)
-type reduction_tactic_error =
+type reduction_tactic_error =
InvalidAbstraction of env * constr * (env * Type_errors.type_error)
exception ReductionTacticError of reduction_tactic_error
(*s Reduction functions associated to tactics. \label{tacred} *)
-val is_evaluable : env -> evaluable_global_reference -> bool
+(* Evaluable global reference *)
+
+val is_evaluable : Environ.env -> evaluable_global_reference -> bool
+
+val error_not_evaluable : Libnames.global_reference -> 'a
+
+val evaluable_of_global_reference :
+ Environ.env -> Libnames.global_reference -> evaluable_global_reference
+
+val global_of_evaluable_reference :
+ evaluable_global_reference -> Libnames.global_reference
exception Redelimination
@@ -37,7 +48,7 @@ val red_product : reduction_function
val try_red_product : reduction_function
(* Simpl *)
-val simpl : reduction_function
+val simpl : reduction_function
(* Simpl only at the head *)
val whd_simpl : reduction_function
@@ -47,7 +58,7 @@ val whd_simpl : reduction_function
val hnf_constr : reduction_function
(* Unfold *)
-val unfoldn :
+val unfoldn :
(occurrences * evaluable_global_reference) list -> reduction_function
(* Fold *)
@@ -75,17 +86,12 @@ val reduce_to_atomic_ind : env -> evar_map -> types -> inductive * types
val reduce_to_quantified_ind : env -> evar_map -> types -> inductive * types
(* [reduce_to_quantified_ref env sigma ref t] try to put [t] in the form
- [t'=(x1:A1)..(xn:An)(ref args)] and raise [Not_found] if not possible *)
+ [t'=(x1:A1)..(xn:An)(ref args)] and fails with user error if not possible *)
val reduce_to_quantified_ref :
env -> evar_map -> Libnames.global_reference -> types -> types
val reduce_to_atomic_ref :
env -> evar_map -> Libnames.global_reference -> types -> types
-val contextually : bool -> occurrences * constr -> reduction_function
- -> reduction_function
-
-(* Compatibility *)
-(* use [simpl] instead of [nf] *)
-val nf : reduction_function
-
+val contextually : bool -> occurrences * constr_pattern ->
+ (patvar_map -> reduction_function) -> reduction_function