sort variables in findall_with_existential before computing set difference (#282), trawl back changes of (#279)

This commit is contained in:
Mark Thom
2020-03-13 13:18:47 -06:00
parent d3eb31e4c3
commit 6c9e704aa8
3 changed files with 14 additions and 35 deletions

View File

@@ -475,7 +475,9 @@ findall_with_existential(Template, Goal, PairedSolutions, Witnesses0, Witnesses)
( nonvar(Goal), Goal = _ ^ _ ->
rightmost_power(Goal, Goal1, ExistentialVars0),
term_variables(ExistentialVars0, ExistentialVars),
set_difference(Witnesses0, ExistentialVars, Witnesses),
sort(Witnesses0, Witnesses1),
sort(ExistentialVars, ExistentialVars1),
set_difference(Witnesses1, ExistentialVars1, Witnesses),
findall(Witnesses-Template, Goal1, PairedSolutions)
; Witnesses = Witnesses0,
findall(Witnesses-Template, Goal, PairedSolutions)