When the not operator is used inside a require statement but inside a more complex expression (not consisting only of temporal/Boolean operators), the resulting requirement does not evaluate correctly. Looking at the compiled AST, the problem is that the not is being compiled to a PropositionNot object even though it's already inside an atomic proposition.
Thanks to Daniel Genin for discovering this issue!
Steps To Reproduce
Running the following scenario (with no options) shows that the requirement is not enforced:
ego = new Object
other = new Object at (Range(-1, 1), 5)
require all([not other.x > 0])
Issue Submission Checklist
[X] I am reporting an issue, not asking a question
[X] I checked the open and closed issues, forum, etc. and have not found any solution
[X] I have provided all necessary code, etc. to reproduce the issue
System Details
main
)Detailed Description
When the
not
operator is used inside arequire
statement but inside a more complex expression (not consisting only of temporal/Boolean operators), the resulting requirement does not evaluate correctly. Looking at the compiled AST, the problem is that thenot
is being compiled to aPropositionNot
object even though it's already inside an atomic proposition.Thanks to Daniel Genin for discovering this issue!
Steps To Reproduce
Running the following scenario (with no options) shows that the requirement is not enforced:
Issue Submission Checklist