Skip to content

fix(SMT): restrict get-value to primitive types for cvc5 #679

Draft
shigoel wants to merge 2 commits intomainfrom
shilpi/cvc5-get-value-fix
Draft

fix(SMT): restrict get-value to primitive types for cvc5 #679
shigoel wants to merge 2 commits intomainfrom
shilpi/cvc5-get-value-fix

Conversation

@shigoel
Copy link
Copy Markdown
Contributor

@shigoel shigoel commented Mar 26, 2026

Summary

  • cvc5 fatally aborts when get-value targets a variable of an uninterpreted sort after an unsat check-sat-assuming, producing a "Parse Error: cannot get domain elements" and exit code 1. This prevented the second check-sat from executing, causing spurious "Internal error" results in pyAnalyzeLaurel with --check-level full.
  • Fix: filter the get-value variable list in encodeCore to only include nullary UFs with primitive output types (Int, Bool, String, etc.), which are always safe across both z3 and cvc5.
  • This is conservative — cvc5 handles datatypes fine after unsat, so a future refinement could also include constr types that don't involve uninterpreted sorts.

🤖 Generated with Claude Code

cvc5 fatally aborts ("cannot get domain elements") when get-value
targets a variable of an uninterpreted sort after an unsat check-sat.
This caused spurious "Internal error" results in pyAnalyzeLaurel with
two-sided checking (--check-level full).

Filter the get-value variable list to only include nullary UFs with
primitive output types (Int, Bool, String, etc.), which are always
safe. This is conservative — datatypes are also safe, but we leave
that as a future refinement.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@shigoel shigoel changed the title fix(SMT): restrict get-value to primitive types for cvc5 compat fix(SMT): restrict get-value to primitive types for cvc5 Mar 26, 2026
@shigoel shigoel requested a review from a team as a code owner March 26, 2026 19:37
@shigoel shigoel enabled auto-merge March 26, 2026 19:37
@shigoel shigoel marked this pull request as draft March 26, 2026 21:57
auto-merge was automatically disabled March 26, 2026 21:57

Pull request was converted to draft

@aqjune-aws
Copy link
Copy Markdown
Contributor

CVC5 fixed this in their latest main branch: cvc5/cvc5#12549

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants