Adding a state machine module to copilot-libraries
#698
Replies: 3 comments 6 replies
-
|
Tagging @RyanGlScott @fdedden @agoodloe for awareness. |
Beta Was this translation helpful? Give feedback.
-
|
I haven't tried using this code in-depth yet, but this appears to be a plausible way to encode state machines. I do wonder about the choice to encode states as type StateMachineGF state = (state, state, Stream Bool, [(state, Stream Bool, state)], state) |
Beta Was this translation helpful? Give feedback.
-
|
I worked a little bit more on this module. I moved the core functionality to: https://github.com/ivanperez-keera/copilot/blob/develop-state-machines/copilot-libraries/src/Copilot/Library/StateMachines.hs I put an example here: That example might be best split into two: one that shows how to simulate the machine, and one that shows how to prove properties about it. @RyanGlScott @chathhorn Let me know if you have any thoughts on this. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Ogma currently uses an implementation of state machines in Copilot.
I'd like to create a standard module for state machines that is included as part of
copilot-libraries.I've placed an initial example here:
https://github.com/ivanperez-keera/copilot/blob/develop-state-machines/Test.hs
Can I please get your input on 1) bugs in this implementation, 2) other uses cases not included, 3) other properties we could check about state machines (see
checkDeterministic,completeMachine, etc.).Funny enough, What4 and Z3 are capable of proving these properties for the state machine included with that example.
A prior thread discussed state machines as well: #529
Beta Was this translation helpful? Give feedback.
All reactions