aboutsummaryrefslogtreecommitdiff
path: root/proofs
diff options
context:
space:
mode:
authorppedrot2013-09-03 18:18:43 +0000
committerppedrot2013-09-03 18:18:43 +0000
commitb5e88d46530ba745f07a6d2664a0bba00f5f178a (patch)
tree6617c752fc10108b8c528fb3731c5d3786d816d7 /proofs
parentdd3d3a25ccc58bf06a13dc07db2fc5f88967789c (diff)
Partly replacing list-based access functions in Evd. This is still
unsatisfactory as some functions implicitly require some ordering on the evars, but this is already better. git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@16759 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'proofs')
-rw-r--r--proofs/proofview.ml8
1 files changed, 5 insertions, 3 deletions
diff --git a/proofs/proofview.ml b/proofs/proofview.ml
index 8a2c7617c6..843af1373b 100644
--- a/proofs/proofview.ml
+++ b/proofs/proofview.ml
@@ -483,10 +483,11 @@ module V82 = struct
(* Main function in the implementation of Grab Existential Variables.*)
let grab pv =
+ let undef = Evd.undefined_map pv.solution in
let goals =
List.map begin fun (e,_) ->
Goal.build e
- end (Evd.undefined_list pv.solution)
+ end (Evd.ExistentialMap.bindings undef)
in
{ pv with comb = goals }
@@ -508,9 +509,10 @@ module V82 = struct
List.flatten (List.map evars_of_initial initial)
let instantiate_evar n com pv =
- let (evk,_) =
+ let (evk,_) =
let evl = Evarutil.non_instantiated pv.solution in
- if (n <= 0) then
+ let evl = Evd.ExistentialMap.bindings evl in
+ if (n <= 0) then
Errors.error "incorrect existential variable index"
else if List.length evl < n then
Errors.error "not so many uninstantiated existential variables"