Non-monotonic incremental updates and negation

I just read that the semi-naive incremental update of tabled
predicates is subject to the following restrictions:

  • Only monotonic updates, i.e. assertz/1 and no retract/1,
    if retract/1 the system falls back to simply invalidate tabled predicates,
    and cannot incrementally promote changes.

  • Only programs without negation, i.e. assertz/1 is only
    incrementally promoted if the program has no negation.
    The documentation here says “In particular it does not deal
    with negation”

Is this the state of the art. What would be needed to allow
either non-monotonic updates or to allow negation or to
allow both?

My naive question might not be related to your professional question. I have heard that the table functionality is based on well-founded sematics, which means rational trees (cyclic terms) are not allowed for the table because they are not well-founded. Although I havn’t check this question myself, but I am interested in theory about how to control these so called mixed fixpoint semantics. Also I am interested in the table from my zdd library point of view, though, which uses not so elegant hash tables as the prolog table.