|
944 | 944 | builtins:findall_cleanup(LhLength, Error) |
945 | 945 | ). |
946 | 946 |
|
947 | | -:- non_counted_backtracking set_difference/3. |
948 | | - |
949 | | -set_difference([X|Xs], [Y|Ys], Zs) :- |
950 | | - X == Y, !, set_difference(Xs, [Y|Ys], Zs). |
951 | | -set_difference([X|Xs], [Y|Ys], [X|Zs]) :- |
952 | | - X @< Y, !, set_difference(Xs, [Y|Ys], Zs). |
953 | | -set_difference([X|Xs], [Y|Ys], Zs) :- |
954 | | - X @> Y, !, set_difference([X|Xs], Ys, Zs). |
955 | | -set_difference([], _, []) :- !. |
956 | | -set_difference(Xs, [], Xs). |
957 | | - |
958 | 947 |
|
959 | 948 | :- non_counted_backtracking iterate_variants/3. |
960 | 949 |
|
|
987 | 976 | ( Goal1 = _ ^ _ ) -> |
988 | 977 | rightmost_power(Goal1, Goal2, ExistentialVars0), |
989 | 978 | term_variables(ExistentialVars0, ExistentialVars), |
990 | | - sort(Witnesses0, Witnesses1), |
991 | | - sort(ExistentialVars, ExistentialVars1), |
992 | | - set_difference(Witnesses1, ExistentialVars1, Witnesses), |
| 979 | + lists:append(Witnesses0, Witnesses, ExistentialVars), |
993 | 980 | expand_goal(M:Goal2, M, Goal3), |
994 | 981 | findall(Witnesses-Template, Goal3, PairedSolutions) |
995 | 982 | ; Witnesses = Witnesses0, |
|
0 commit comments