aboutsummaryrefslogtreecommitdiffhomepage
path: root/plugins/ssrmatching
diff options
context:
space:
mode:
authorGravatar Maxime Dénès <mail@maximedenes.fr>2018-03-20 18:23:44 +0100
committerGravatar Maxime Dénès <mail@maximedenes.fr>2018-03-20 19:10:15 +0100
commit50409f26d4c4f6f71af20cbaea234b8c0649dd26 (patch)
tree7a4a5ab52aeb34b081f5b6454782a3361395ed2a /plugins/ssrmatching
parent17c94dca5fe2fc19137b9cac923d51e8eb818041 (diff)
[ssreflect] Respect Opaque in FO unification
Diffstat (limited to 'plugins/ssrmatching')
-rw-r--r--plugins/ssrmatching/ssrmatching.ml47
1 files changed, 4 insertions, 3 deletions
diff --git a/plugins/ssrmatching/ssrmatching.ml4 b/plugins/ssrmatching/ssrmatching.ml4
index 6a1be9db0..2ba6acc03 100644
--- a/plugins/ssrmatching/ssrmatching.ml4
+++ b/plugins/ssrmatching/ssrmatching.ml4
@@ -311,14 +311,14 @@ let unif_HO_args env ise0 pa i ca =
(* evars into metas, since 8.2 does not TC metas. This means some lossage *)
(* for HO evars, though hopefully Miller patterns can pick up some of *)
(* those cases, and HO matching will mop up the rest. *)
-let flags_FO =
+let flags_FO env =
let flags =
{ (Unification.default_no_delta_unify_flags ()).Unification.core_unify_flags
with
Unification.modulo_conv_on_closed_terms = None;
Unification.modulo_eta = true;
Unification.modulo_betaiota = true;
- Unification.modulo_delta_types = full_transparent_state}
+ Unification.modulo_delta_types = Conv_oracle.get_transp_state (Environ.oracle env)}
in
{ Unification.core_unify_flags = flags;
Unification.merge_unify_flags = flags;
@@ -328,7 +328,8 @@ let flags_FO =
(Unification.default_no_delta_unify_flags ()).Unification.resolve_evars
}
let unif_FO env ise p c =
- Unification.w_unify env ise Reduction.CONV ~flags:flags_FO (EConstr.of_constr p) (EConstr.of_constr c)
+ Unification.w_unify env ise Reduction.CONV ~flags:(flags_FO env)
+ (EConstr.of_constr p) (EConstr.of_constr c)
(* Perform evar substitution in main term and prune substitution. *)
let nf_open_term sigma0 ise c =