@@ -2411,7 +2411,10 @@ let get_declared_goals all_goals constraints state assignments pp_ctx =
24112411
24122412let rec reachable1 sigma root acc =
24132413 let EvarInfo info = Evd. find sigma root in
2414- let res = match Evd. evar_body info with Evd. Evar_empty -> Evar.Set. add root acc | Evd. Evar_defined _ -> acc in
2414+ let res =
2415+ match Evd. evar_body info with
2416+ | Evd. Evar_empty -> Evar.Set. add root acc
2417+ | Evd. Evar_defined d -> acc in
24152418 let res = Evar.Set. union res @@ Evarutil. filtered_undefined_evars_of_evar_info sigma info in
24162419 if Evar.Set. equal res acc then acc else reachable sigma res res
24172420and reachable sigma roots acc =
@@ -2429,15 +2432,16 @@ let reachable sigma roots acc =
24292432let solution2evd sigma0 { API.Data. constraints; assignments; state; pp_ctx } roots =
24302433 let state, solved_goals, _, _gls = elpi_solution_to_coq_solution ~calldepth: 0 constraints state in
24312434 let sigma = get_sigma state in
2432- let all_goals = reachable sigma roots Evar.Set. empty in
2435+ let roots = Evd. fold_undefined (fun k _ acc -> Evar.Set. add k acc) sigma0 roots in
2436+ let reachable_undefined_evars = reachable sigma roots Evar.Set. empty in
24332437 let declared_goals, shelved_goals =
2434- get_declared_goals (Evar.Set. diff all_goals solved_goals) constraints state assignments pp_ctx in
2438+ get_declared_goals (Evar.Set. diff reachable_undefined_evars solved_goals) constraints state assignments pp_ctx in
24352439 debug Pp. (fun () -> str " Goals: " ++ prlist_with_sep spc Evar. print declared_goals);
24362440 debug Pp. (fun () -> str " Shelved Goals: " ++ prlist_with_sep spc Evar. print shelved_goals);
2437- (* wrong: Evd.fold_undefined (fun k _ sigma ->
2438- if Evar.Set.mem k all_goals || Evd.mem sigma0 k then sigma
2441+ Evd. fold_undefined (fun k _ sigma ->
2442+ if Evar.Set. mem k reachable_undefined_evars then sigma
24392443 else Evd. remove sigma k
2440- ) sigma*) sigma,
2444+ ) sigma sigma,
24412445 declared_goals,
24422446 shelved_goals
24432447
0 commit comments