diff options
| author | msozeau | 2008-07-28 09:10:41 +0000 |
|---|---|---|
| committer | msozeau | 2008-07-28 09:10:41 +0000 |
| commit | 14c5325d2e94d9d60c47af734579731abb74573f (patch) | |
| tree | b84cd0c230314a7c8306c18655fc30484ddf2999 /tactics | |
| parent | da84cdafe0ef6d82d27fbbcc87f7a78b210d5b97 (diff) | |
Fix bug in term dnet preventing some unifications. Allow "higher-order"
class constraints of the form Π x1 ... xn, Class args.
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@11278 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'tactics')
| -rw-r--r-- | tactics/btermdn.ml | 2 | ||||
| -rw-r--r-- | tactics/class_tactics.ml4 | 7 | ||||
| -rw-r--r-- | tactics/termdn.ml | 1 |
3 files changed, 5 insertions, 5 deletions
diff --git a/tactics/btermdn.ml b/tactics/btermdn.ml index 2412968a1e..379949f462 100644 --- a/tactics/btermdn.ml +++ b/tactics/btermdn.ml @@ -52,7 +52,7 @@ let bounded_constr_val_discr (t,depth) = match constr_val_discr t with | Dn.Label (c,l) -> Dn.Label(c,List.map (fun c -> (c,depth-1)) l) | Dn.Nothing -> Dn.Nothing - | Dn.Everything -> Dn.Nothing + | Dn.Everything -> Dn.Everything type 'a t = (global_reference,constr_pattern * int,'a) Dn.t diff --git a/tactics/class_tactics.ml4 b/tactics/class_tactics.ml4 index 64ea47a9bc..16e8bce3af 100644 --- a/tactics/class_tactics.ml4 +++ b/tactics/class_tactics.ml4 @@ -515,11 +515,10 @@ let resolve_typeclass_evars d p env evd onlyargs split fail = let pred = if onlyargs then (fun ev evi -> Typeclasses.is_implicit_arg (snd (Evd.evar_source ev evd)) && - class_of_constr evi.Evd.evar_concl <> None) - else - (fun ev evi -> class_of_constr evi.Evd.evar_concl <> None) + Typeclasses.is_class_evar evi) + else (fun ev evi -> Typeclasses.is_class_evar evi) in resolve_all_evars d p env pred evd split fail - + let solve_inst debug mode depth env evd onlyargs split fail = resolve_typeclass_evars debug (mode, depth) env evd onlyargs split fail diff --git a/tactics/termdn.ml b/tactics/termdn.ml index 995183dc90..591b2947c9 100644 --- a/tactics/termdn.ml +++ b/tactics/termdn.ml @@ -70,6 +70,7 @@ let constr_val_discr t = | Ind ind_sp -> Label(IndRef ind_sp,l) | Construct cstr_sp -> Label((ConstructRef cstr_sp),l) | Var id -> Label(VarRef id,l) + | Const _ -> Everything | _ -> Nothing let constr_val_discr_st (idpred,cpred) t = |
