-
Notifications
You must be signed in to change notification settings - Fork 25
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Continuation of https://git.key-project.org/key/key/-/merge_requests/596. All review comments have been adressed. ______________________ This branch introduces the proof analysis and slicing algorithms implemented for my bachelor's thesis for inclusion in the next KeY version. # Why? Neat data structure (dependency graph) and algorithm that help many usecases: "optimizing" the loading time of finished proofs, investigating the efficiency of KeY's heuristics, reducing the size of incomplete proofs, ... Also see https://git.key-project.org/key/key-docs/-/merge_requests/7 # Features and Impact Many new features available in the GUI: inspecting the dependency graph of a proof, proof analysis, proof slicing, ... The build script has been changed to save the full git commit hash as KeY version. ## Changes in key.core - new `EqualsModProofIrrelevancy` interface to ignore certain details when comparing objects across proofs (currently only origin labels) - `Node`: `stepIndex` and `branchLocation` - `BranchLocation` class to represent a location in the proof tree - `KeYMediator`: `fireProofLoaded` event (called just before a loaded proof is replayed) - `ProofSaver`: option to only save the proof obligation - `OneStepSimplifier`: when reloading a proof, restrict the formulas available to the Simplifier to the previously used formulas - `Taclet`: `addedBy` field to indicate which proof step defined a taclet - `ModularSMTLib2Translator`, `SMTFocusResults`: new facilities to ask the SMT solver for an unsat core and hide formulas not present in the unsat core from the sequent ## Changes in key.util - `Graph`, `DirectedGraph`, `GraphEdge`, `DefaultEdge`: simple implementation of a directed graph # Review The most "interesting" class to review is probably SlicingProofReplayer, since some parts of it are very similar to the IntermediateProofReplayer. # Persons involved Commit c9f59aeba25cde9f9db4fc608e99f235575377bc by Mattias Ulbrich (experiments with SMT unsat cores) is included in this branch. It was only intended as a "temporary hack", but it proved to be quite useful and has been adapted slightly to handle SMT solvers that do not produce unsat cores. ________________________ Comment edited by @WolframPfeifer: Attached the original description.
- Loading branch information
Showing
145 changed files
with
9,808 additions
and
216 deletions.
There are no files selected for viewing
This file contains 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 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 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 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 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 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 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 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 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 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 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.