Skip to content

SMT2 back-end: flatten with_exprt operands #8670

New issue

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

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

Already on GitHub? # to your account

Open
wants to merge 1 commit into
base: develop
Choose a base branch
from

Conversation

tautschnig
Copy link
Collaborator

Solvers without datatypes support require flattening towards bitvectors. This is also true for array-typed expressions when the array is not at the top level (despite possible array-theory support). This changes makes sure we will flatten such array-typed expressions.

  • Each commit message has a non-empty body, explaining why the change was made.
  • n/a Methods or procedures I have added are documented, following the guidelines provided in CODING_STANDARD.md.
  • n/a The feature or user visible behaviour I have added or modified has been documented in the User Guide in doc/cprover-manual/
  • Regression or unit tests are included, or existing tests cover the modified code (in this case I have detailed which ones those are in the commit message).
  • n/a My commit message includes data points confirming performance improvements (if claimed).
  • My PR is restricted to a single feature or bugfix.
  • n/a White-space or formatting changes outside the feature-related changed lines are in commits of their own.

Copy link

codecov bot commented Jul 2, 2025

Codecov Report

Attention: Patch coverage is 53.57143% with 13 lines in your changes missing coverage. Please review.

Project coverage is 80.39%. Comparing base (e88ed5f) to head (1bb5b81).

Files with missing lines Patch % Lines
src/solvers/smt2/smt2_conv.cpp 53.57% 13 Missing ⚠️
Additional details and impacted files
@@             Coverage Diff             @@
##           develop    #8670      +/-   ##
===========================================
- Coverage    80.39%   80.39%   -0.01%     
===========================================
  Files         1688     1688              
  Lines       207387   207394       +7     
  Branches        73       73              
===========================================
+ Hits        166728   166733       +5     
- Misses       40659    40661       +2     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Solvers without datatypes support require flattening towards bitvectors.
This is also true for array-typed expressions when the array is not at
the top level (despite possible array-theory support). This changes
makes sure we will flatten such array-typed expressions.
@tautschnig tautschnig self-assigned this Jul 9, 2025
@tautschnig
Copy link
Collaborator Author

Note to reviewers: #8637 includes a test set-up with tests passing once the changes in this PR are applied. I am working on extracting a minified variant thereof to include as regression test.

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants