From c79fd7433154cbaf7fa548d361fdddf3dcc3e001 Mon Sep 17 00:00:00 2001 From: Mark Thom Date: Mon, 12 Jan 2026 22:47:39 -0800 Subject: [PATCH] remove unnecessary extra work in findall_with_existential/5 --- src/lib/builtins.pl | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/src/lib/builtins.pl b/src/lib/builtins.pl index 9253aabf..65c829a5 100644 --- a/src/lib/builtins.pl +++ b/src/lib/builtins.pl @@ -944,17 +944,6 @@ findall(Template, Goal, Solutions0, Solutions1) :- builtins:findall_cleanup(LhLength, Error) ). -:- non_counted_backtracking set_difference/3. - -set_difference([X|Xs], [Y|Ys], Zs) :- - X == Y, !, set_difference(Xs, [Y|Ys], Zs). -set_difference([X|Xs], [Y|Ys], [X|Zs]) :- - X @< Y, !, set_difference(Xs, [Y|Ys], Zs). -set_difference([X|Xs], [Y|Ys], Zs) :- - X @> Y, !, set_difference([X|Xs], Ys, Zs). -set_difference([], _, []) :- !. -set_difference(Xs, [], Xs). - :- non_counted_backtracking iterate_variants/3. @@ -987,9 +976,7 @@ findall_with_existential(Template, Goal, PairedSolutions, Witnesses0, Witnesses) ( Goal1 = _ ^ _ ) -> rightmost_power(Goal1, Goal2, ExistentialVars0), term_variables(ExistentialVars0, ExistentialVars), - sort(Witnesses0, Witnesses1), - sort(ExistentialVars, ExistentialVars1), - set_difference(Witnesses1, ExistentialVars1, Witnesses), + lists:append(Witnesses0, Witnesses, ExistentialVars), expand_goal(M:Goal2, M, Goal3), findall(Witnesses-Template, Goal3, PairedSolutions) ; Witnesses = Witnesses0, -- 2.54.0