diff options
author | Maxime Dénès <mail@maximedenes.fr> | 2018-03-20 18:23:44 +0100 |
---|---|---|
committer | Maxime Dénès <mail@maximedenes.fr> | 2018-03-20 19:10:15 +0100 |
commit | 50409f26d4c4f6f71af20cbaea234b8c0649dd26 (patch) | |
tree | 7a4a5ab52aeb34b081f5b6454782a3361395ed2a /plugins/ssrmatching | |
parent | 17c94dca5fe2fc19137b9cac923d51e8eb818041 (diff) |
[ssreflect] Respect Opaque in FO unification
Diffstat (limited to 'plugins/ssrmatching')
-rw-r--r-- | plugins/ssrmatching/ssrmatching.ml4 | 7 |
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 = |