0

@false posed an interesting challenge here in the comment section concerning determinism. He not only questions whether there is a difference between solution and answer. A distinction which might affect the notion of determinism. But also whether this query here:

?- freeze(_,false).

Has a solution? Since delayed execution is not in the scope of the original question, this new question should offer a platform to settle the terminological problem, also in hindsight of what is determinism.

1 Answers1

0

Here is a refutation that the goal has no solution, contrary to what @false claims. If it had no solution, then (\+)/1 would turn it into a yes. But it doesn't, it turns it into a no:

?- \+ freeze(_,false).
false.

Its probably rather programming error, to have a delayed goal that isn't satisfiable. Delayed goal should express a "MAYBE". If the "MAYBE" is always a "NO", then a delayed goal doesn't make any sense.

The effect of (\+)/1 is then that it turns "MAYBE" and "YES" into "NO", and "NO" into "YES". A residual problem is though, that there could be multiple delayed goals that are not satisfiable as a conjunction.