-
Notifications
You must be signed in to change notification settings - Fork 25
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
ogma-core
: equivalence operator should be translated to (==)
#126
Comments
Thank you @Andersen0 . I can confirm that the issue is there. This will be an easy fix. |
ogma-core
: equivalence operator should be translated to (==)
Description The SMV to Copilot translator translates equivalences as Type
Additional context None. Requester
Method to check presence of bug Compiling a specification with {
"test_componentSpec": {
"Functions": [
],
"Internal_variables": [
],
"Other_variables": [
{
"name": "a",
"type": "bool"
}
],
"Requirements": [
{
"CoCoSpecCode": "true",
"fretish": "unimportant",
"name": "testCopilot001",
"ptLTL": "a <-> a"
}
]
}
}
Expected result The execution above should produce a Copilot specification that can be compiled and where Desired result The execution above should produce a Copilot specification that can be compiled and where Proposed solution Modify the SMV translator to use Further notes None. |
Change Manager: Confirmed that the issue exists. |
Technical Lead: Confirmed that the issue should be addressed. |
Technical Lead: Issue scheduled for fixing in Ogma 1.3. Fix assigned to: @ivanperez-keera. |
…Refs #126. The SMV to Copilot translator translates equivalences as (<==>). However, that operator does not exist in Copilot, it is simply (==) for Bools. This commit replaces the translation of the equivalence operator from SMV to be (==) in Copilot.
…Refs #126. The SMV to Copilot translator translates equivalences as (<==>). However, that operator does not exist in Copilot; it is simply (==) for Bools. This commit replaces the translation of the equivalence operator from SMV to be (==) in Copilot.
Implementor: Solution implemented, review requested. |
Change Manager: Verified that:
|
Change Manager: Implementation ready to be merged. |
When using an equivalence operator (as used in, for example, FRETISH requirements as
<=>
) the returned Monitor will not be able to properly run because the Haskell Monitor cannot use the<==>
operator that is defined in the code.The command used for generation of the Monitor was:
ogma fret-component-spec --fret-file-name fret_specifications.json > Monitor.hs
The command used for compiling and linking:
ghc -package copilot-c99 -package copilot-language -package copilot-libraries Monitor.hs
Acquired error message:
Suggested fix:
Defining a custom infix operator that compares two boolean arguments and returns true if they are both true or both false
The text was updated successfully, but these errors were encountered: