This repo contains very small examples of TLA+ functionality or applications, intended to help you learn TLA+.
For more sophisticated examples, see:
List of Examples
TLA+ works by modeling systems via state machines. If we model an actual state machine this way, how does the generated state graph compare to the machine we're modeling?
What does it look like to validate the correctness of a procedural algorithm?
What does it look like to model a concurrent system?
What does it look like to specify a temporal condition?
How can you use TLA+ to validate formulas in predicate logic?
How can you use TLA+ to find deadlocks in a concurrent system?
What does it look like when two processes interact incorrectly due to a race condition?
How can one module use operators defined in another module?
How can one module parameterize and/or namespace operators defined in another module?
Basic functional list operations(Head/Tail/Append/Len/Reverse) on sequences.
Contributions are welcome.
- Please make sure examples are very small.
- Put each example in its own subfolder with a README.md file. (These examples use README files instead of putting all documentation into the spec itself so that they will be easier to explore on Github. As soon as a user navigates to a folder they will be reading the documentation in their browser, rather than having to navigate into the individual spec file.)
- Name sub-folders and examples using the existing pattern of "spec-name" for the folder and "SpecName.tla" for the TLA+ file.