Skip to content

SMTChecker: Refactor processing invariants from the solver #15972

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Apr 3, 2025

Conversation

blishko
Copy link
Contributor

@blishko blishko commented Mar 28, 2025

Instead of extracting invariants as a single expression containing all predicates and their definitions, we represent invariants as a map from predicate names to the corresponding definitions.
Additionally, we need to remember formal arguments of the predicate so we can apply substitutions to the definitions properly.

I believe the previous representation was an artifact of how Z3 returns CHC model through its API. The new representation is more fitting for models extracted from SMT-LIB.

We don't need a separate file for a single, relatively small, helper
function.
@blishko blishko force-pushed the smt-refactor branch 3 times, most recently from 7d072e5 to 654416f Compare March 28, 2025 10:19
@ethereum ethereum deleted a comment Mar 28, 2025
@blishko blishko added smt refactor 🟡 PR review label labels Mar 28, 2025
Instead of extracting invariants as a single expression containing all
predicates and their definitions, we represent invariants as a map from
predicate names to the corresponding definitions.
Additionally, we need to remember formal arguments of the predicate so
we can apply substitutions to the definitions properly.

I believe the previous representation was an artifact of how Z3 returns
CHC model through its API. The new representation is more fitting for
models extracted from SMT-LIB.
@blishko blishko enabled auto-merge April 3, 2025 11:40
@blishko blishko merged commit 7a4ddb2 into develop Apr 3, 2025
74 checks passed
@blishko blishko deleted the smt-refactor branch April 3, 2025 11:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
refactor smt 🟡 PR review label
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants