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

(O)XSTS statement-based witness trace #44

Open
2 tasks
arminzavada opened this issue Nov 15, 2024 · 1 comment
Open
2 tasks

(O)XSTS statement-based witness trace #44

arminzavada opened this issue Nov 15, 2024 · 1 comment

Comments

@arminzavada
Copy link
Member

The current witness generation generates a true witness, however, the exact operations executed are encoded implicitly in the model using pre- and post-conditions. It would be valuable to have an explicit representation as well, that explicitly states the exact path the model checker took.

Tasks:

  • Design the trace representation
  • Implement Semantifyr and Backend trace generation
@arminzavada
Copy link
Member Author

Idea for the trace: introduce a new trace keyword, that constructs new instances whenever executed. These instances are placed into a steps feature of the resulting witness type.

Each constructed step instance encodes one specific step of the execution, executing them in the execution order replays the trace.

Separate the steps into Big and Small steps. A big step is an exact execution of a full transition. Small steps are the internal steps in a big step, specifying some parts of the execution with semantic meaning.

For example, in a state machine the big step is the full processing of the incoming event. The internal small steps are the intricate details, such as checking the guard condition, executing the exit action, firing the transition, and finally executing the entry action.

The Big and Small step separetion should be done automatically, making sure that the resulting witness target is a semantically accurate refinement of the original model.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant