-
Notifications
You must be signed in to change notification settings - Fork 41
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
Add support for new property check for requirements called State-Recoverability #645
base: dev
Are you sure you want to change the base?
Add support for new property check for requirements called State-Recoverability #645
Conversation
State-Recoverability
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.
Thanks @Tob1as864 for your great work.
Although I'm not a requirement analysis expert, I reviewed your code. I marked problematic code locations with some short explanations for you. Hopefully they can help you to resolve the mentioned issues. If not, feel free to ask!
Note: if you use Eclipse, you can get rid of code formatting problems very quickly. Eclipse supports automatic code formatting. If you want to use it, we recommend to use this code formatter template to avoid reformatting all the code in a different style. For setting up the formatter, go to Window
→ Preferences
→ Java
→ Code Style
→ Formatter
, click Import, and choose the file. You can then format the currently opened source file through Source
→ Format
or by using the shortcut key Ctrl+Shift+F
.
...l/src/de/uni_freiburg/informatik/ultimate/core/model/preferences/UltimatePreferenceItem.java
Outdated
Show resolved
Hide resolved
...urce/PEAtoBoogie/src/de/uni_freiburg/informatik/ultimate/pea2boogie/PEAtoBoogieObserver.java
Outdated
Show resolved
Hide resolved
...uni_freiburg/informatik/ultimate/pea2boogie/generator/RtInconcistencyConditionGenerator.java
Outdated
Show resolved
Hide resolved
...ie/src/de/uni_freiburg/informatik/ultimate/pea2boogie/preferences/Pea2BoogiePreferences.java
Outdated
Show resolved
Hide resolved
...EAtoBoogie/src/de/uni_freiburg/informatik/ultimate/pea2boogie/req2pea/ReqCheckAnnotator.java
Outdated
Show resolved
Hide resolved
...gie/src/de/uni_freiburg/informatik/ultimate/pea2boogie/staterecoverability/AuxStatement.java
Outdated
Show resolved
Hide resolved
.../uni_freiburg/informatik/ultimate/pea2boogie/staterecoverability/PeaPhaseProgramCounter.java
Outdated
Show resolved
Hide resolved
...burg/informatik/ultimate/pea2boogie/staterecoverability/VerificationExpressionContainer.java
Outdated
Show resolved
Hide resolved
...ogie/src/de/uni_freiburg/informatik/ultimate/pea2boogie/translator/Req2BoogieTranslator.java
Outdated
Show resolved
Hide resolved
...ogie/src/de/uni_freiburg/informatik/ultimate/pea2boogie/translator/Req2BoogieTranslator.java
Outdated
Show resolved
Hide resolved
…tik/ultimate/core/model/preferences/UltimatePreferenceItem.java Co-authored-by: Manuel Bentele <[email protected]>
…te/pea2boogie/generator/RtInconcistencyConditionGenerator.java Co-authored-by: Manuel Bentele <[email protected]>
…te/pea2boogie/preferences/Pea2BoogiePreferences.java Co-authored-by: Manuel Bentele <[email protected]>
…te/pea2boogie/req2pea/ReqCheckAnnotator.java Co-authored-by: Manuel Bentele <[email protected]>
…te/pea2boogie/req2pea/ReqCheckAnnotator.java Co-authored-by: Manuel Bentele <[email protected]>
…te/pea2boogie/staterecoverability/AuxStatement.java Co-authored-by: Manuel Bentele <[email protected]>
…te/pea2boogie/translator/Req2BoogieTranslator.java Co-authored-by: Manuel Bentele <[email protected]>
…te/pea2boogie/translator/Req2BoogieTranslator.java Co-authored-by: Manuel Bentele <[email protected]>
into NewPropertyForRequirementsCheck
Thanks for the hint with the template. I have imported and used it immediately. The problematic code locations should be resolved right now. |
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.
Now the code files look clean and are ready for a review by the requirement experts @danieldietsch, @Langenfeld, and @hauff. Let's see what they say about the implementation of checking the new property and the code structure.
...EAtoBoogie/src/de/uni_freiburg/informatik/ultimate/pea2boogie/req2pea/ReqCheckAnnotator.java
Outdated
Show resolved
Hide resolved
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 did not review the algorithm, but before I continue you should fix
coding conventions (variable, class names, spacing, modifiers, license headers, comments for interfaces, author comments, etc.) and the comments I already added.
You should also add a description to the PR that states what this is all about, as it is a rather large change and hence, it might be somewhat confusing to review it without knowing what the purpose is.
...urce/Library-BoogieAST/src/de/uni_freiburg/informatik/ultimate/boogie/ExpressionFactory.java
Outdated
Show resolved
Hide resolved
...l/src/de/uni_freiburg/informatik/ultimate/core/model/preferences/UltimatePreferenceItem.java
Outdated
Show resolved
Hide resolved
...urce/PEAtoBoogie/src/de/uni_freiburg/informatik/ultimate/pea2boogie/PEAtoBoogieObserver.java
Show resolved
Hide resolved
...k/source/PEAtoBoogie/src/de/uni_freiburg/informatik/ultimate/pea2boogie/IReqSymbolTable.java
Outdated
Show resolved
Hide resolved
...ie/src/de/uni_freiburg/informatik/ultimate/pea2boogie/preferences/Pea2BoogiePreferences.java
Outdated
Show resolved
Hide resolved
.../source/PEAtoBoogie/src/de/uni_freiburg/informatik/ultimate/pea2boogie/results/ReqCheck.java
Outdated
Show resolved
Hide resolved
...EAtoBoogie/src/de/uni_freiburg/informatik/ultimate/pea2boogie/req2pea/ReqCheckAnnotator.java
Outdated
Show resolved
Hide resolved
...gie/src/de/uni_freiburg/informatik/ultimate/pea2boogie/staterecoverability/AuxStatement.java
Outdated
Show resolved
Hide resolved
...e/uni_freiburg/informatik/ultimate/pea2boogie/staterecoverability/AuxStatementContainer.java
Outdated
Show resolved
Hide resolved
.../uni_freiburg/informatik/ultimate/pea2boogie/staterecoverability/VerificationExpression.java
Outdated
Show resolved
Hide resolved
@Tob1as864 I need a little bit of context before I can review this PR. In particular, I need to know what kind of property you want to check. |
State-Recoverability describes a property that applies if specific condition is recoverable for each interpretation of the requirements specification.
and we ask if the condition sig_2 is true is recoverable for the specification, then the property shall that for this specification the property does not apply. Another example is this parallel composition of a more complex set of requirements where as soon as a certain location is entered certain states are no longer possible (VEH_ELEC_SYS_SEPARATED == true). |
@Tob1as864 @Langenfeld is this PR still relevant? |
@danieldietsch the property in the wip/ad/stuck-at branch should be a generalisation of this branch. But as with so many hunches regarding requirements properties, I have to take a serious look if I did not overlook something. |
@Langenfeld we can keep it around nearly indefinitely ;) |
Adding a new property check to UltimatePA after consultation with Vincent.