Closed SeSodesa closed 2 years ago
Never mind. Adding an unconditionally grounded rule s(X)
after the conditional worked:
p(X) :- q(X, A) : r(A); s(X).
I guess ambiguities are bad?
It is important to provide a binding for X
. Consider the program
d(f(1)).
p(X) :- q(X) : #false.
The conditional literal is true for all values of X
. We obtain an infinite answer set:
d(f(1)), p(1), p(f(1)), p(f(f(1))), ...
Hello there.
Not sure if this is the right place to ask for usage tips, but I have a bit of a conundrum and the user manual only has one instance of the word unsafe in it, in chapter 6.1. I am trying to declare a conditional or dynamically expanded rule of the form
but Clingo is reporting the variable
X
as "unsafe":Why is this? One source by Lifschitz claims that
However, this does not seem to be the case here. How might I fix a problem like this?