Review grounder transformations to reduce context switches, to prevent unnecessary Tseitins

Issue #519 new
Broes De Cat created an issue

Partial function unnesting does not always have to introduce existential quantification. E.g., !x: P(f(x)) => R(x) can be transformed into !x y: f(x)=y & P(y) => R(x).

More?

Comments (4)

  1. Bart Bogaerts

    Disagree with the second point:

    !x: P(f(x)) => R(x)

    should be unnested to !x: (?y: y=f(x) & P(y)) => R(x) This is the semantics and we should not complicate code by taking context into account.

    However, after unnesting, we might (should) call another pushnegation (and flatten) to obtain the formula you wanted

  2. Log in to comment