From: Mark Thom Date: Fri, 5 Feb 2021 03:51:55 +0000 (-0700) Subject: modify rightmost_power/2 to ignore module qualification on (^)/2 (#794) X-Git-Tag: v0.9.0~150^2~65^2~19 X-Git-Url: https://git.sagredo.dev/?a=commitdiff_plain;h=222be9cf6cd2b10bed4ed43076d2984f220bfc7a;p=scryer-prolog.git modify rightmost_power/2 to ignore module qualification on (^)/2 (#794) --- diff --git a/src/lib/builtins.pl b/src/lib/builtins.pl index fa3844cb..889977d2 100644 --- a/src/lib/builtins.pl +++ b/src/lib/builtins.pl @@ -665,8 +665,11 @@ iterate_variants([V-Solution|GroupSolutions], V, Solution) :- iterate_variants([_|GroupSolutions], Ws, Solution) :- iterate_variants(GroupSolutions, Ws, Solution). + rightmost_power(Term, FinalTerm, Xs) :- - ( Term = X ^ Y + ( ( Term = X ^ Y + ; Term = _ : X ^ Y + ) -> ( var(Y) -> FinalTerm = Y, Xs = [X] ; Xs = [X | Xss], rightmost_power(Y, FinalTerm, Xss) ) @@ -674,11 +677,11 @@ rightmost_power(Term, FinalTerm, Xs) :- ). -% :- meta_predicate findall_with_existential(?, 0, ?, ?, ?). - findall_with_existential(Template, Goal, PairedSolutions, Witnesses0, Witnesses) :- ( nonvar(Goal), - Goal = _ ^ _ -> + ( Goal = _ ^ _ + ; Goal = _ : (_ ^ _) + ) -> rightmost_power(Goal, Goal1, ExistentialVars0), term_variables(ExistentialVars0, ExistentialVars), sort(Witnesses0, Witnesses1),