aboutsummaryrefslogtreecommitdiff
path: root/pretyping
diff options
context:
space:
mode:
authormsozeau2008-04-20 18:14:44 +0000
committermsozeau2008-04-20 18:14:44 +0000
commit25c9cfe773f69669c867802f6c433b6250ceaf9b (patch)
tree2f5ae872261f55380a235f75c1084ae72da4ea76 /pretyping
parenta00f6f7fd9744c252113abaaa25c6384628efaa3 (diff)
Add the ability to give a transparent_state for conversion, to
parameterize what should be unfolded or not, by default unfolding everything. git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@10819 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'pretyping')
-rw-r--r--pretyping/reductionops.ml8
-rw-r--r--pretyping/reductionops.mli4
2 files changed, 12 insertions, 0 deletions
diff --git a/pretyping/reductionops.ml b/pretyping/reductionops.ml
index 02c517d517..e118a659e9 100644
--- a/pretyping/reductionops.ml
+++ b/pretyping/reductionops.ml
@@ -640,6 +640,14 @@ let is_conv env sigma = test_conversion Reduction.conv env sigma
let is_conv_leq env sigma = test_conversion Reduction.conv_leq env sigma
let is_fconv = function | CONV -> is_conv | CUMUL -> is_conv_leq
+let test_trans_conversion f reds env sigma x y =
+ try let _ = f reds env (nf_evar sigma x) (nf_evar sigma y) in true
+ with NotConvertible -> false
+
+let is_trans_conv env sigma = test_trans_conversion Reduction.trans_conv env sigma
+let is_trans_conv_leq env sigma = test_trans_conversion Reduction.trans_conv_leq env sigma
+let is_trans_fconv = function | CONV -> is_trans_conv | CUMUL -> is_trans_conv_leq
+
(********************************************************************)
(* Special-Purpose Reduction *)
(********************************************************************)
diff --git a/pretyping/reductionops.mli b/pretyping/reductionops.mli
index 2dbf60a422..72a0d1a012 100644
--- a/pretyping/reductionops.mli
+++ b/pretyping/reductionops.mli
@@ -204,6 +204,10 @@ val is_conv : env -> evar_map -> constr -> constr -> bool
val is_conv_leq : env -> evar_map -> constr -> constr -> bool
val is_fconv : conv_pb -> env -> evar_map -> constr -> constr -> bool
+val is_trans_conv : transparent_state -> env -> evar_map -> constr -> constr -> bool
+val is_trans_conv_leq : transparent_state -> env -> evar_map -> constr -> constr -> bool
+val is_trans_fconv : conv_pb -> transparent_state -> env -> evar_map -> constr -> constr -> bool
+
(*s Special-Purpose Reduction Functions *)
val whd_meta : (metavariable * constr) list -> constr -> constr