hexhex/core

DLV safety

Opened this issue · 0 comments

The following program is rejected by DLV because the rule is not safe:

p(a).
q(Y) :- p(X), X=Y.

In DLV, =/2 is considered as a comparison predicate (such as <, >, etc.) which expects both terms to be safe.

However, it is clear that the program can be grounded without any troubles (e.g. by gringo and the internal grounder).

dlvhex shall adopt the latter point of view, but currently this does not work with DLV backend. A possible fix is a rewriting.