diff options
Diffstat (limited to 'pretyping')
| -rw-r--r-- | pretyping/reductionops.ml | 8 | ||||
| -rw-r--r-- | pretyping/reductionops.mli | 4 |
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 |
