Skip to content

Running SMT solvers without type hierarchy encoding #3548

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

Draft
wants to merge 9 commits into
base: main
Choose a base branch
from

Conversation

WolframPfeifer
Copy link
Member

Related Issue

This pull request addresses #1703.

Intended Change

This PR adds an option which allows disabling the type hierarchy in the SMT translation. With that option set, the translation is still sound, but possibly "less complete" than the original translation, but might find some proofs faster, since the embeddings necessary to encode the type hierarchy can mislead the solvers.

Plan

Important

Note: At the moment, the feature is only partially implemented, which leads to many exceptions when trying to run an SMT solver.!

  • Fix and finish implementation
  • At the moment, a new solver is added (Z3 variant without type hierarchy translation). Maybe it is better to have a toggle that applies to all solvers.
  • Document the changes

Type of pull request

  • New feature (non-breaking change which adds functionality)
  • There are changes to the (Java) code

Ensuring quality

  • I made sure that introduced/changed code is well documented (javadoc and inline comments).
  • I made sure that new/changed end-user features are well documented (https://github.com/KeYProject/key-docs).
  • I added new test case(s) for new functionality.
  • I have tested the feature as follows: ...
  • I have checked that runtime performance has not deteriorated.

Additional information and contact(s)

This feature was mostly implemented during the 2nd HacKeYthon 2024.
Thanks to @BookWood7th, @roundEaredSengi and @vb213!

The contributions within this pull request are licensed under GPLv2 (only) for inclusion in KeY.

@WolframPfeifer WolframPfeifer changed the title Translation of smttype hierarchy Running SMT solvers without type hierarchy encoding Feb 14, 2025
@WolframPfeifer WolframPfeifer added Feature New feature or request SMT HacKeYthon Candidate Issue for HacKeYthon '25 labels Feb 14, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature New feature or request HacKeYthon Candidate Issue for HacKeYthon '25 SMT
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants