Prevent unnesting whenever possible without BDDs

Issue #82 resolved
Broes De Cat created an issue

When not using bdds, unnesting known functions (either builtin or given) is useless, as this is only using for query optimization (for which we need bdds). On the other hand, it is important to prevent it, because it strongly increases grounding time (*|introduced domain|). Should be easy to add to unnesting transformations.

Comments (5)

  1. Bart Bogaerts
    • changed status to open

    The way it is fixed now, is not the right way. Now, one checks just for the GROUNDWITHBOUNDS option to be true when one decides whether or not to unnest.

    The right way is using two different transformations:

    • One transformation never unnests known terms,
    • One transformation always unnests them (to be used when constructing bdds)

    Because for example, we might want to manipulate bdds when groundwithbounds is disabled, or we still want to be able to do the first unnesting in the grounding, even when we ground with bounds...

  2. Log in to comment