Skip to content

feat/blase: align parser semantics to parse sext/zext into extended widths from SMT-LIB.#1975

Merged
bollu merged 3 commits intomainfrom
fix-sext-zext-parsed-widths
Mar 11, 2026
Merged

feat/blase: align parser semantics to parse sext/zext into extended widths from SMT-LIB.#1975
bollu merged 3 commits intomainfrom
fix-sext-zext-parsed-widths

Conversation

@bollu
Copy link
Copy Markdown
Collaborator

@bollu bollu commented Mar 11, 2026

This fixes our encoding of pzero_extend and psign_extend to align with SMT-LIB standard.

@bollu bollu force-pushed the fix-sext-zext-parsed-widths branch from 865cbac to cf1cab3 Compare March 11, 2026 15:14
@bollu bollu merged commit b7dfbed into main Mar 11, 2026
21 checks passed
bollu added a commit that referenced this pull request Mar 12, 2026
… precondition checks (#1976)

SMT-LIB defines its semantics of PBV over `Int`, and makes zero extend,
sign extend, and extract partial functions when the widths are negative.
In contract, we define our semantics of PBV over nat.

To bridge this gap, we define an interpretation of the SMT-LIB semantics
where all subtractions are assumed to not result in negative numbers.
That is, for any subterm `(w - v)`, we introduce a width precondition `w
>= v`. Under this regime, our naive BMC solver correctly provides UNSAT
for all of the PBV Alive dataset, showing that this is a sensible
semantics. The PBV solver, leaves the cases when these happen as
uninterpreted, one assumes, as per their spec.

Moreover, this strategy of adding preconditions.

Stacked on #1975.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant