Lifted unit propagation iterates over the full structure

Issue #201 resolved
Broes De Cat created an issue

Which is quite expensive for large/infinite structures. Main issue is that it is difficult to find out where this long run comes from when the user expects it to be fast (because using cp).

#include <mx> vocabulary V{ type x isa int C:x C2:x }

theory T:V{ C~=C2. }

structure S:V{ x = {1..100000000} } procedure main(){ stdoptions.cpsupport = true stdoptions.liftedunitpropagation = true // (on by default) print(onemodel(T,S)) }

Comments (5)

  1. Bart Bogaerts

    Now, this is even worse!

    Commit 6d7a4a28ce0a improved propagation, but now the generators that run over the entire structure even take longer. We should look into this!

    It seems to have something to do with types "nat" that are derived in unnesting some terms... see for example tests/mx/satmx/SATRobot.idp, where a type nat is derived...

  2. Broes De Cat reporter

    (Reply via broe...@gmail.com):

    Ik zag juist dit mailtje nog eens. Heb je eens concrete file waar het te traag op ging? Dan zal ik daar eens naar kijken.

    Broes

  3. Bart Bogaerts

    Die SATRobot werkt ondertussen terug snel aangezien ik de generators verbeterd heb.

    Jouw voorbeeld (zie originele issue) gaat nog altijd heel traag...

  4. Log in to comment