Skip to content
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

Separate core properties and their assertions #8

Open
MattWindsor91 opened this issue Oct 14, 2022 · 0 comments
Open

Separate core properties and their assertions #8

MattWindsor91 opened this issue Oct 14, 2022 · 0 comments
Labels
enhancement New feature or request question Further information is requested

Comments

@MattWindsor91
Copy link
Collaborator

Currently, assertions over core properties are a distinct language from assertions over specifications. This is a holdover from the RoboChart Assertions language.

specification group Foo: module M
  // not used

assertion A: target of Foo is deterministic in the traces model

I think I would instead prefer to have something like:

specification group Foo: module M
  property Det: target is deterministic

assertion A: Foo::Det holds in the traces model // holds and does-not-hold allowed here

Advantages of doing this include:

  • Assertion language is simplified and uniform (it now only knows about universal/existential properties and their negations);
  • All properties of a target are under its group;
  • Paves the way to eventually possibly making assertions able to target multiple properties at once (maybe an 'all properties of Foo hold in the traces model');
  • Any future work in enriching the constant instantiation setup will be easier to apply to core properties.

Disadvantages include:

  • More metamodel complexity;
  • More verbose elucidation of core properties, unless we find a shorthand for asserting them.

From the metamodel perspective, we would end up with something like:

  • Property
    • CoreProperty
    • Interaction
  • Assertion (holds name, Property reference, negation, existential/universal)
@MattWindsor91 MattWindsor91 added enhancement New feature or request question Further information is requested labels Oct 14, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request question Further information is requested
Projects
None yet
Development

No branches or pull requests

1 participant