Pushquantifiers can degrade performance significantly, investigate this!

Issue #518 resolved
Broes De Cat created an issue

!x y: P(x) & Q(y) => R(x,y)

of dus

!x y: ~P(x) | ~Q(y) | R(x,y)

dus mooi clausaal, wordt na push

!x: ~P(x) | (!y: ~Q(y) | R(x,y) )

Waarvoor Tseitins geintroduceerd moeten worden tijdens grounden.

Comments (4)

  1. Bart Bogaerts

    Ideetjes:

    Misschien moeten we PQ default enkel doen indien er geen context-switch geintroduceerd wordt. (als de totale diepte (alternating conj-disj depth) niet verhoogt, lijkt het een goed idee)

    Of... indien de variabelen werkelijk gesplitst worden (als die x niet meer zou voorkomen in de tweede formule (in R dus) zou het ook goed zijn) Dan krijgen we

    !x: ~P(x) | T

    T <=> !y: ~Q(y) | R(y)

    Wat beter is dan het oorpronkeiljke...

  2. Log in to comment