-
Notifications
You must be signed in to change notification settings - Fork 52
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"
7422f4c
Reduce complexity of prover based shutdown getter
a43d183
Reduce complexity of prover based shutdown getter even more
5af69e6
Remove unnecessary comment in BitwuzlaTheoremProver
2b81ac8
Allow and use direct access to prover specific ShutdownNotifier
92f2f60
Add Int and BV test for context shutdown and prover reuse afterward
b048f56
Add default implementation of isUnsat() to centralize checks (closed,…
e73b889
Add more timeout/shutdown tests:
ba6c2bc
Add a model test that checks error when requesting a model for UNSAT …
28d5648
Remove unnecessary exceptions from test methods in TimeoutTest
5de5971
Format TimeoutTest
0f8e757
Add default handling for basic prover API like isUnsat(), getUnsatCor…
1b6f52b
Remove unnecessary final modifiers in AbstractProver
77ab3d6
Add more uniform handling of prerequisites of interpolation API
223624c
Add clarification JavaDoc for getShutdownManagerForProver()
55f8e08
Add clarification JavaDoc about needed options for unsatCoreOverAssum…
6613b21
Add more internal information about shutdown re-use for Z3 and Bitwuzla
843b0ee
Format JavaDoc
e6587bd
Add API for requesting new prover environments with a dedicated prove…
418bc8b
Remove old getter for created shutdown manager in the BasicProverEnvi…
c85042b
Add new prover environments with a dedicated prover shutdown notifier…
2fe5c2b
Add dedicated prover shutdown notifier to abstract provers
028ef5b
Add dedicated prover shutdown notifier to Bitwuzla
b122b50
Add dedicated prover shutdown notifier to ShutdownHook
b1ad38f
Add dedicated prover shutdown notifier to Boolector and remove unneed…
856d3b6
Add dedicated prover shutdown notifier to CVC4
3b16949
Add dedicated prover shutdown notifier to CVC5 implementation, but ma…
fa7dfb2
Add dedicated prover shutdown notifier to MathSAT5
37a58ee
Add dedicated prover shutdown notifier to OpenSMT2
3538fdc
Add dedicated prover shutdown notifier to Princess but make it not us…
9e6d0ba
Add dedicated prover shutdown notifier to SMTInterpol but make it not…
02bdda9
Add dedicated prover shutdown notifier to Yices2
30a74dd
Add dedicated prover shutdown notifier to Z3
1812dfc
Change TimeoutTest for the new way prover shutdown can be requested a…
17ec72e
Add default behavior/failure checks for getEvaluator()
5a20e6d
Add default behavior/failure checks for pop() for termination
0b95f11
Concat static string error msgs
1cd34dd
Add shutdown reason to exception msg for non-interrupted exception th…
c85c030
Add recovery of assertProverAPIThrowsInterruptedException from method…
407f52a
Remove redundant checks from BoolectorTheoremProver.java
384c7b1
Remove commented out old code
97c44b6
Add full shutdown/interrupt exception handling to Z3 model
cfa1cdb
Remove redundant checks and code from provers/solvers
799385c
Directly use shutdown exception text constant when checking for hidde…
b4fbc2f
Lazily eval shutdown msg when checking in non throwing methods
1f5c866
Reduce args for CVC5InterpolatingProver constructor
676aebb
Apply refaster patch
65407fb
Switch to lazy and self implemented shutdown state check
2e83b93
Centralize getInterpolant ID checking and also give back the mismatch…
ee5eee0
Centralize getInterpolant ID checking and also give back the mismatch…
c1dc784
Correctly reset assumptions for interpolation in the assumption wrapp…
41daa1f
Remove unneeded lazy handling of error msg
d06d41c
Extend TimeoutTest with checking for all prover API, including interp…
4a4cac8
Improve interpolation input error messages by including a null check …
0c683e8
Reduce query size for timeout test (was unnecessarily high)
79ba7d7
Rename shutdownManagers in tests to make their use/source more clear
295e01a
Make internal prover variables private and add setter and getter wher…
a9023f9
Remove unneeded lambda from Mathsat termination check
3ca9316
Add a sanity check in DebuggingBasicProverEnvironment for getModelAss…
9e63816
Mark implementation specifications with @implNote in SolverContext
ac5be00
Make JavaDoc clearer for SolverContext prover requests and their inte…
1d9ec5a
Improve JavaDoc of SolverContext in regard to shutdown of provers
e4bf4e8
Hide common Strings used in provers from users
f16f77d
Make common Strings used in provers static
1ab6955
Re-add default impl of getModelAssignments()
fc323b9
Re-throw exception when clearing assumptions, and it's not another ex…
1b268a3
Improve JavaDoc of constructor methods of new prover environments wit…
c4a7a65
Add warning for sneaky SolverExceptions in Model JavaDoc
b7da958
Throw sneaky SolverExceptions in Mathsat Model instead of confusing I…
50094eb
Add more sneaky throw warnings to API that may throw a SolverExceptio…
89837d5
Remove sneaky throw of SolverException from Mathsat native call
dbbdc31
Remove sneaky throw of SolverException from Z3 model and add Interrup…
b0e7b44
Add SolverException and InterruptedException to many calls related to…
0ca8d4f
Remove sneaky throws for Z3 specific code entirely
cd51b02
Add Solver- and InterruptedException to push() and addConstraint() API
898832d
Remove warnings about sneaky throws where they can't happen anymore
c900399
Format: remove warnings about sneaky throws where they can't happen a…
2166410
Rename exception variable to fit naming schema
64b21b3
Improve warning for sneaky throws in model iterator() as suggested by…
cd3ef20
Merge feature branch 481-mathsat5-returns-null-for-msat_model_create_…
477efd0
Remove special handling of interrupts for API that did not throw Inte…
ca14eff
Remove special handling of interrupts for API that did not throw Inte…
4b429db
Switch all expected exceptions after interrupt to InterruptedExceptio…
d447902
Remove toString() in lazy evaluation to be actually lazy in AbstractP…
22bc811
Move JavaDoc from throws to general info for prover environment creat…
a75ec8a
Use dummy ShutdownNotifier instead of null if there is no prover spec…
5f30d42
Remove null checks for prover based ShutdownNotifier when no longer n…
b8c9a06
Remove Z3 specific code for throwing checked exceptions as runtime ex…
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
@implNote
s is good. But what does this one want to say? Isn'tInterpolatingProverEnvironment
always 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.