aboutsummaryrefslogtreecommitdiffhomepage
path: root/tactics
diff options
context:
space:
mode:
authorGravatar msozeau <msozeau@85f007b7-540e-0410-9357-904b9bb8a0f7>2011-04-13 14:28:35 +0000
committerGravatar msozeau <msozeau@85f007b7-540e-0410-9357-904b9bb8a0f7>2011-04-13 14:28:35 +0000
commitd51c733cb7a3034921fc63a07588e5f0d1e98525 (patch)
tree80e53c7a10e2757649bcbe2ee62aa639ff36e4b9 /tactics
parent9369925f8edebf18a7d9cc9516521f193117f3f8 (diff)
- Make typeclass transparency information directly available
- Fix pretyping to consider remaining unif problems with the right transparency information. git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@13996 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'tactics')
-rw-r--r--tactics/class_tactics.ml48
1 files changed, 6 insertions, 2 deletions
diff --git a/tactics/class_tactics.ml4 b/tactics/class_tactics.ml4
index 64c5c5a9e..f754a926d 100644
--- a/tactics/class_tactics.ml4
+++ b/tactics/class_tactics.ml4
@@ -320,7 +320,8 @@ let hints_tac hints =
match sgls with
| None -> gls', s'
| Some (evgls, s') ->
- (gls' @ List.map (fun (ev, x) -> (Some ev, x)) evgls, s')
+ (* Reorder with dependent subgoals. *)
+ (gls' @ List.map (fun (ev, x) -> Some ev, x) evgls, s')
in
let gls' = list_map_i
(fun j (evar, g) ->
@@ -601,7 +602,10 @@ let initial_select_evars onlyargs =
(fun evd ev evi -> Typeclasses.is_class_evar evd evi)
let resolve_typeclass_evars debug m env evd onlyargs split fail =
- resolve_all_evars debug m env (initial_select_evars onlyargs) evd split fail
+ let evd = Evarconv.consider_remaining_unif_problems
+ ~ts:(Typeclasses.classes_transparent_state ()) env evd
+ in
+ resolve_all_evars debug m env (initial_select_evars onlyargs) evd split fail
let solve_inst debug depth env evd onlyargs split fail =
resolve_typeclass_evars debug depth env evd onlyargs split fail