Hi all,
I have some unexpected results on a test program related to well founded semantics. The program is the following:
:- table p/1 as incremental.
p(X) :- tnot(qs(X)), tnot(p(X)).
p(X) :- tnot(rs(X)), tnot(p(X)).
:- table qs/1 as incremental.
qs(X) :- q(X).
:- table rs/1 as incremental.
rs(X) :- q(X).
:- dynamic q/1 as incremental.
q(1).
The execution is:
| ?- p(1).
no
| ?- increval:incr_retract(q(1)).
yes
| ?- p(1).
undefined
| ?- increval:incr_assert(q(1)).
yes
| ?- p(1).
undefined
It is the last answer that is unexpected for me (since I thought it would be "no" as for the first query). Do I miss something? I am using XSB 4.0 under Windows.
Best regards
Christophe
Teri,
this looks like a bug in incremental tabling, as executing abolish_all tables gives the right answer to p(1) in this case.
Related
Bugs: #250