Skip to content

Commit

Permalink
Register/unregister
Browse files Browse the repository at this point in the history
  • Loading branch information
grahamrhay committed Dec 20, 2023
0 parents commit 9e2a928
Show file tree
Hide file tree
Showing 5 changed files with 56 additions and 0 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
states/
syn_TTrace_*
7 changes: 7 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# It's a Syn!

## Run the model

```
docker run --rm -it -v $PWD:/app -w /app openjdk:14-jdk-alpine java -XX:+UseParallelGC -cp tla2tools.jar tlc2.TLC -config syn.cfg -workers auto -cleanup syn.tla
```
5 changes: 5 additions & 0 deletions syn.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
INIT Init
NEXT Next

INVARIANTS
AllRegistered
42 changes: 42 additions & 0 deletions syn.tla
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
---- MODULE syn ----
EXTENDS FiniteSets, Integers

VARIABLES registered, next_val, added, removed

vars == <<registered, next_val, added, removed>>

Init ==
/\ registered = {}
/\ next_val = 0
/\ added = 0
/\ removed = 0

Register ==
/\ next_val < 5
/\ registered' = registered \union {next_val}
/\ next_val' = next_val + 1
/\ added' = added + 1
/\ UNCHANGED <<removed>>

ItemToRemove ==
CHOOSE r \in registered: TRUE

Unregister ==
/\ Cardinality(registered) > 0
/\ registered' = registered \ {ItemToRemove}
/\ removed' = removed + 1
/\ UNCHANGED <<added, next_val>>

Complete ==
/\ next_val = 5
/\ UNCHANGED <<added, next_val, registered, removed>>

Next ==
\/ Register
\/ Unregister
\/ Complete

Spec == Init /\ [][Next]_vars

AllRegistered == Cardinality(registered) = (added - removed)
====
Binary file added tla2tools.jar
Binary file not shown.

0 comments on commit 9e2a928

Please sign in to comment.