All gratuitously my opinion, YMMV, hope that helps.
-
-
Thanks so much! I've looked at SMTCOMP results before but still been a bit lost. Good advice on sticking to smtlib format - I was lazy and the Python interface was tempting. But I've seen most of my workload turn to bitvector stuff so CVC4, Boolector and Yices seem worth trying.
4 replies 0 retweets 5 likes -
Replying to @geofflangdale @ciphernyx and
... honestly, at this stage, the best solver is nice, but community and documentation are important. I'm having a lot of trouble with the gap between "hi noob, want to solve Sudoku or find a De Bruijin sequence?" and scientific papers that assume I'm already a SMT researcher.
1 reply 0 retweets 6 likes -
Replying to @geofflangdale @ciphernyx and
As I've said before, I feel like one of those apes in 2001 poking the monolith with a stick whenever I use an SMT solver. Building a better mental model of how it works - preferably without having to ingest enough theory to become an SMT researcher in the process - would be nice.
4 replies 2 retweets 23 likes -
Replying to @geofflangdale @ciphernyx and
My best advice is to rewrite your query in every different way you can think to issue it, observe the often initially counter-intuitive performance differences, and A/B test your way to acceptable performance. I rewrote some 2KLOC queries 10+ times. Not ideal but builds intuition
1 reply 0 retweets 1 like -
Replying to @RolfRolles @geofflangdale and
Some theory helps, too. E.g., the equality theory is one of the simpler ones. Try replacing every possible part of your query with an equality predicate of some sort. You might be shocked at the results... I was.
1 reply 0 retweets 1 like -
Replying to @RolfRolles @geofflangdale and
Aggressively eliminate the more complex theories whenever possible. Using the array theory? Maybe you can get away with just the bitvector theory if you pose the query differently somehow.
1 reply 0 retweets 1 like -
Replying to @RolfRolles @ciphernyx and
Thanks! I've been thinking of making arrays go away for one task that I'm modelling. Unfortunately, there's another task where I can't imagine how to do it without arrays (for those into that sort of thing, modelling the x86 instructions PEXT or PDEP and generating a const mask).
2 replies 0 retweets 2 likes -
Replying to @geofflangdale @RolfRolles and
Claire Xen 🏳️⚧️ 🏳️🌈 🧙🏻♀️ BLM 🏴 🚩 Retweeted Claire Xen 🏳️⚧️ 🏳️🌈 🧙🏻♀️ BLM 🏴 🚩
We need to compare notes on that one.https://twitter.com/oe1cxw/status/1050860235139817472 …
Claire Xen 🏳️⚧️ 🏳️🌈 🧙🏻♀️ BLM 🏴 🚩 added,
3 replies 0 retweets 1 like -
Replying to @oe1cxw @RolfRolles and
OK, so the butterfly idea is way ahead of mine. For PEXT/bext, I was imagining (pls don't laugh, I am SMT noob) that we'd generate an array with constraints dictating strictly ascending bits (obvs in the range of 0..bitwidth-1) and shift/extract the bits.
1 reply 0 retweets 0 likes
I think that's a perfectly fine way of encoding PEXT if it's fast enough. I wouldn't use an array for that though. Simply use 32/64 individual variables. (Array abstraction only makes sense if you don't access all 2^N elements, otherwise just using 2^N individual vars is better.)
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.