I've been using the example of concurrently incrementing a shared variable for demonstrating TLA+.
Since this can be split up into t = i, and i = t + 1 actions, it demonstrates many of the interesting facets of TLA+ model checking while being a tiny example:
- Basic TLA+ syntax and TLC usage
- Non-determinism
- Counter-examples
- Liveness and fairness
- State space explosion and symmetry reduction
I've been using the example of concurrently incrementing a shared variable for demonstrating TLA+.
Since this can be split up into
t = i, andi = t + 1actions, it demonstrates many of the interesting facets of TLA+ model checking while being a tiny example: