ethereum/act

SMT: Move invariant enrichment to Enrich.hs

d-xo opened this issue · 0 comments

d-xo commented

The SMT backend has some logic that ensures that the appropriate type constraints are introduced for variables that are mentioned in the invariant, but not in the storage block of the behaviour they are being checked against.

This logic is incomplete (it doesn't account for env vars), and having it intermingled with the rest of the SMT backend is messy. This logic should be moved to Enrich.hs, simplifying implementation in the SMT backend and potentially allowing other backeds to make use of this information.