-
Notifications
You must be signed in to change notification settings - Fork 57
Add Prover Based ShutdownManager #489
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
Open
baierd
wants to merge
88
commits into
master
Choose a base branch
from
feature_prover_based_shutdown
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
88 commits
Select commit
Hold shift + click to select a range
b8ccbe0
Revert "Revert changes supposed to be on a feature branch"
baierd 7422f4c
Reduce complexity of prover based shutdown getter
baierd a43d183
Reduce complexity of prover based shutdown getter even more
baierd 5af69e6
Remove unnecessary comment in BitwuzlaTheoremProver
baierd 2b81ac8
Allow and use direct access to prover specific ShutdownNotifier
baierd 92f2f60
Add Int and BV test for context shutdown and prover reuse afterward
baierd b048f56
Add default implementation of isUnsat() to centralize checks (closed,…
baierd e73b889
Add more timeout/shutdown tests:
baierd ba6c2bc
Add a model test that checks error when requesting a model for UNSAT …
baierd 28d5648
Remove unnecessary exceptions from test methods in TimeoutTest
baierd 5de5971
Format TimeoutTest
baierd 0f8e757
Add default handling for basic prover API like isUnsat(), getUnsatCor…
baierd 1b6f52b
Remove unnecessary final modifiers in AbstractProver
baierd 77ab3d6
Add more uniform handling of prerequisites of interpolation API
baierd 223624c
Add clarification JavaDoc for getShutdownManagerForProver()
baierd 55f8e08
Add clarification JavaDoc about needed options for unsatCoreOverAssum…
baierd 6613b21
Add more internal information about shutdown re-use for Z3 and Bitwuzla
baierd 843b0ee
Format JavaDoc
baierd e6587bd
Add API for requesting new prover environments with a dedicated prove…
baierd 418bc8b
Remove old getter for created shutdown manager in the BasicProverEnvi…
baierd c85042b
Add new prover environments with a dedicated prover shutdown notifier…
baierd 2fe5c2b
Add dedicated prover shutdown notifier to abstract provers
baierd 028ef5b
Add dedicated prover shutdown notifier to Bitwuzla
baierd b122b50
Add dedicated prover shutdown notifier to ShutdownHook
baierd b1ad38f
Add dedicated prover shutdown notifier to Boolector and remove unneed…
baierd 856d3b6
Add dedicated prover shutdown notifier to CVC4
baierd 3b16949
Add dedicated prover shutdown notifier to CVC5 implementation, but ma…
baierd fa7dfb2
Add dedicated prover shutdown notifier to MathSAT5
baierd 37a58ee
Add dedicated prover shutdown notifier to OpenSMT2
baierd 3538fdc
Add dedicated prover shutdown notifier to Princess but make it not us…
baierd 9e6d0ba
Add dedicated prover shutdown notifier to SMTInterpol but make it not…
baierd 02bdda9
Add dedicated prover shutdown notifier to Yices2
baierd 30a74dd
Add dedicated prover shutdown notifier to Z3
baierd 1812dfc
Change TimeoutTest for the new way prover shutdown can be requested a…
baierd 17ec72e
Add default behavior/failure checks for getEvaluator()
baierd 5a20e6d
Add default behavior/failure checks for pop() for termination
baierd 0b95f11
Concat static string error msgs
baierd 1cd34dd
Add shutdown reason to exception msg for non-interrupted exception th…
baierd c85c030
Add recovery of assertProverAPIThrowsInterruptedException from method…
baierd 407f52a
Remove redundant checks from BoolectorTheoremProver.java
baierd 384c7b1
Remove commented out old code
baierd 97c44b6
Add full shutdown/interrupt exception handling to Z3 model
baierd cfa1cdb
Remove redundant checks and code from provers/solvers
baierd 799385c
Directly use shutdown exception text constant when checking for hidde…
baierd b4fbc2f
Lazily eval shutdown msg when checking in non throwing methods
baierd 1f5c866
Reduce args for CVC5InterpolatingProver constructor
baierd 676aebb
Apply refaster patch
baierd 65407fb
Switch to lazy and self implemented shutdown state check
baierd 2e83b93
Centralize getInterpolant ID checking and also give back the mismatch…
baierd ee5eee0
Centralize getInterpolant ID checking and also give back the mismatch…
baierd c1dc784
Correctly reset assumptions for interpolation in the assumption wrapp…
baierd 41daa1f
Remove unneeded lazy handling of error msg
baierd d06d41c
Extend TimeoutTest with checking for all prover API, including interp…
baierd 4a4cac8
Improve interpolation input error messages by including a null check …
baierd 0c683e8
Reduce query size for timeout test (was unnecessarily high)
baierd 79ba7d7
Rename shutdownManagers in tests to make their use/source more clear
baierd 295e01a
Make internal prover variables private and add setter and getter wher…
baierd a9023f9
Remove unneeded lambda from Mathsat termination check
baierd 3ca9316
Add a sanity check in DebuggingBasicProverEnvironment for getModelAss…
baierd 9e63816
Mark implementation specifications with @implNote in SolverContext
baierd ac5be00
Make JavaDoc clearer for SolverContext prover requests and their inte…
baierd 1d9ec5a
Improve JavaDoc of SolverContext in regard to shutdown of provers
baierd e4bf4e8
Hide common Strings used in provers from users
baierd f16f77d
Make common Strings used in provers static
baierd 1ab6955
Re-add default impl of getModelAssignments()
baierd fc323b9
Re-throw exception when clearing assumptions, and it's not another ex…
baierd 1b268a3
Improve JavaDoc of constructor methods of new prover environments wit…
baierd c4a7a65
Add warning for sneaky SolverExceptions in Model JavaDoc
baierd b7da958
Throw sneaky SolverExceptions in Mathsat Model instead of confusing I…
baierd 50094eb
Add more sneaky throw warnings to API that may throw a SolverExceptio…
baierd 89837d5
Remove sneaky throw of SolverException from Mathsat native call
baierd dbbdc31
Remove sneaky throw of SolverException from Z3 model and add Interrup…
baierd b0e7b44
Add SolverException and InterruptedException to many calls related to…
baierd 0ca8d4f
Remove sneaky throws for Z3 specific code entirely
baierd cd51b02
Add Solver- and InterruptedException to push() and addConstraint() API
baierd 898832d
Remove warnings about sneaky throws where they can't happen anymore
baierd c900399
Format: remove warnings about sneaky throws where they can't happen a…
baierd 2166410
Rename exception variable to fit naming schema
baierd 64b21b3
Improve warning for sneaky throws in model iterator() as suggested by…
baierd cd3ef20
Merge feature branch 481-mathsat5-returns-null-for-msat_model_create_…
baierd 477efd0
Remove special handling of interrupts for API that did not throw Inte…
baierd ca14eff
Remove special handling of interrupts for API that did not throw Inte…
baierd 4b429db
Switch all expected exceptions after interrupt to InterruptedExceptio…
baierd d447902
Remove toString() in lazy evaluation to be actually lazy in AbstractP…
baierd 22bc811
Move JavaDoc from throws to general info for prover environment creat…
baierd a75ec8a
Use dummy ShutdownNotifier instead of null if there is no prover spec…
baierd 5f30d42
Remove null checks for prover based ShutdownNotifier when no longer n…
baierd b8c9a06
Remove Z3 specific code for throwing checked exceptions as runtime ex…
baierd File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't understand this comment. The return type of the method is
InterpolatingProverEnvironment, one always needs to return such an instance. What does this have to do with "solving with assumptions"?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a comment for developers (e.g. students) so that they get info what to implement. We have this at several locations and for example helped me back in my bachelors thesis.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sure, having
@implNotes is good. But what does this one want to say? Isn'tInterpolatingProverEnvironmentalways required, and what does implementing it have to do with "satisfiability tests with assumptions"?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No it is not always required. The default impl throws a
UnsupportedOperationException.It is meant to lead the developer to the conclusion that this needs to be implemented if you want to interpolate. Usually students (in my experience) notice once they run the tests that things are missing ;D
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok, but then the comment should still refer to interpolation and not satisfiability tests with assumptions.