Approximation cannot be used in recursive rules

Issue #306 resolved
Bart Bogaerts created an issue

Consider the following theory:

When grounding rules: all instances of rule bodies should be generated: for example the rule

!x: reachable(x) <- (?y: edge(x, y) & reachable(y)).

in a twovalued structure where reachable is always true, should be grounded! If not, this will result in unwanted models!

Comments (5)

  1. Bart Bogaerts reporter

    bugfix in grounderfactory: approximation and recursion

    I fixed a bug in the grounderfactory: We should always ground all rule bodies if they contain defined symbols OR (better) at least do not approximate them based on defined symbols Doing this might delete some recursivity. (which is dangerous)

    Fixed this by making new makeTrue and makeFalse methods that remove all information based on defined symbols.

    This fixes #306

    → <<cset 03102f695347>>

  2. Bart Bogaerts reporter

    bugfix in grounderfactory: approximation and recursion

    I fixed a bug in the grounderfactory: We should always ground all rule bodies if they contain defined symbols OR (better) at least do not approximate them based on defined symbols Doing this might delete some recursivity. (which is dangerous)

    Fixed this by making new makeTrue and makeFalse methods that remove all information based on defined symbols.

    This fixes #306

    → <<cset 7dd0e94809a5>>

  3. Bart Bogaerts reporter

    bugfix in grounderfactory: approximation and recursion

    I fixed a bug in the grounderfactory: We should always ground all rule bodies if they contain defined symbols OR (better) at least do not approximate them based on defined symbols Doing this might delete some recursivity. (which is dangerous)

    Fixed this by making new makeTrue and makeFalse methods that remove all information based on defined symbols.

    This fixes #306

    → <<cset 48d74040f73a>>

  4. Bart Bogaerts reporter

    bugfix in grounderfactory: approximation and recursion

    I fixed a bug in the grounderfactory: We should always ground all rule bodies if they contain defined symbols OR (better) at least do not approximate them based on defined symbols Doing this might delete some recursivity. (which is dangerous)

    Fixed this by making new makeTrue and makeFalse methods that remove all information based on defined symbols.

    This fixes #306

    → <<cset 68ece6a08ec0>>

  5. Bart Bogaerts reporter

    bugfix in grounderfactory: approximation and recursion

    I fixed a bug in the grounderfactory: We should always ground all rule bodies if they contain defined symbols OR (better) at least do not approximate them based on defined symbols Doing this might delete some recursivity. (which is dangerous)

    Fixed this by making new makeTrue and makeFalse methods that remove all information based on defined symbols.

    This fixes #306

    → <<cset 68ece6a08ec0>>

  6. Log in to comment