draperlaboratory / cbat_tools

Program analysis tools developed at Draper on the CBAT project.
MIT License
101 stars 14 forks source link

Fixes not extracting the memory model from lambda terms #380

Closed bmourad01 closed 1 year ago

bmourad01 commented 1 year ago

With some external solvers (like Boolector), the memory for the countermodels comes back as a big lambda term consisting of a bunch of if-then-else cases for each address.

Obviously, this is very unreadable for the user. Not only that, WP will fail to construct the refuted goals when the memory model is in this form.

This PR fixes the way we parse the output from the external solver, turning it into a sequence of array stores.