aboutsummaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'plugins')
-rw-r--r--plugins/ssr/ssrcommon.ml5
-rw-r--r--plugins/ssrmatching/ssrmatching.ml47
2 files changed, 7 insertions, 5 deletions
diff --git a/plugins/ssr/ssrcommon.ml b/plugins/ssr/ssrcommon.ml
index 19abf6780c..d5118da4cb 100644
--- a/plugins/ssr/ssrcommon.ml
+++ b/plugins/ssr/ssrcommon.ml
@@ -228,8 +228,9 @@ let splay_open_constr gl (sigma, c) =
Reductionops.splay_prod env sigma t
let isAppInd env sigma c =
- try ignore(Tacred.reduce_to_atomic_ind env sigma c); true
- with CErrors.UserError _ -> false
+ let c = Reductionops.clos_whd_flags CClosure.all env sigma c in
+ let c, _ = decompose_app_vect sigma c in
+ EConstr.isInd sigma c
(** Generic argument-based globbing/typing utilities *)
diff --git a/plugins/ssrmatching/ssrmatching.ml4 b/plugins/ssrmatching/ssrmatching.ml4
index 6a1be9db06..2ba6acc036 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 =