diff options
| author | herbelin | 2013-01-29 18:15:10 +0000 |
|---|---|---|
| committer | herbelin | 2013-01-29 18:15:10 +0000 |
| commit | fc6496dcc326852533ea4d860cdea85c6ee79b3b (patch) | |
| tree | 68c088e4fb6bc21ea2c1f19dffc5aa4de9d8a898 /proofs | |
| parent | 4929fa8a5b65bd90207f3a943227ed09a7ed0b6c (diff) | |
Fixed synchronicity of filter with evar context in new_goal_with.
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@16173 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'proofs')
| -rw-r--r-- | proofs/goal.ml | 12 | ||||
| -rw-r--r-- | proofs/goal.mli | 2 |
2 files changed, 10 insertions, 4 deletions
diff --git a/proofs/goal.ml b/proofs/goal.ml index df3f6e0dbd..1a7e9a9830 100644 --- a/proofs/goal.ml +++ b/proofs/goal.ml @@ -554,10 +554,16 @@ module V82 = struct with a good implementation of them. *) - (* Used for congruence closure *) - let new_goal_with sigma gl new_hyps = + (* Used for congruence closure and change *) + let new_goal_with sigma gl extra_hyps = let evi = content sigma gl in - let new_evi = { evi with Evd.evar_hyps = new_hyps } in + let hyps = evi.Evd.evar_hyps in + let new_hyps = + List.fold_right Environ.push_named_context_val extra_hyps hyps in + let extra_filter = List.map (fun _ -> true) extra_hyps in + let new_filter = extra_filter @ evi.Evd.evar_filter in + let new_evi = + { evi with Evd.evar_hyps = new_hyps; Evd.evar_filter = new_filter } in let new_evi = Typeclasses.mark_unresolvable new_evi in let evk = Evarutil.new_untyped_evar () in let new_sigma = Evd.add Evd.empty evk new_evi in diff --git a/proofs/goal.mli b/proofs/goal.mli index 1146d95f61..72f1b16a46 100644 --- a/proofs/goal.mli +++ b/proofs/goal.mli @@ -232,7 +232,7 @@ module V82 : sig val same_goal : Evd.evar_map -> goal -> Evd.evar_map -> goal -> bool (* Used for congruence closure *) - val new_goal_with : Evd.evar_map -> goal -> Environ.named_context_val -> goal Evd.sigma + val new_goal_with : Evd.evar_map -> goal -> Sign.named_context -> goal Evd.sigma (* Used by the compatibility layer and typeclasses *) val nf_evar : Evd.evar_map -> goal -> goal * Evd.evar_map |
