Closed RyanGlScott closed 6 months ago
To be clear, Macaw isn't yet making use of the new behavior, and by the time Macaw bumps its What4 submodule, the new behavior will be guarded behind an opt-in flag. As a result, Macaw's behavior won't change unless it specifically opts into the new behavior. (Indeed, this was the whole point of guarding this behavior behind a flag, as the new behavior proved problematic for certain use cases, such as in certain SAW proofs.)
Exactly the situation I was hoping for. We probably discussed this back then but I subsequently forgot. Thanks for the confirmation.
Add
pushMuxOps
andpushMuxOpsOption
. If this option is enabled, What4 will push certainExprBuilder
operations (e.g.,zext
) down to the branches ofite
expressions. In some (but not all) circumstances, this can result in operations that are easier for SMT solvers to reason about.