Skip to content

Commit

Permalink
Finitizing monotonic systems (#97)
Browse files Browse the repository at this point in the history
* Added basic monotonic specs
* Specs from blog post
* Constrained model
* Added divergence based model
* CRDT spec finished
* Wrote simple replicated log model
* Experiment with different GC methods
* Added specs to manifest, added README
* Minor change to re-run CI
* Added blog post
* Renamed MC specs
* Changed tag to intermediate

Signed-off-by: Andrew Helwer <[email protected]>
  • Loading branch information
ahelwer authored Dec 1, 2023
1 parent 68aec27 commit 2369052
Show file tree
Hide file tree
Showing 13 changed files with 903 additions and 90 deletions.
59 changes: 30 additions & 29 deletions README.md

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion manifest-schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
},
"tags": {
"type": "array",
"items": {"enum": ["beginner"]}
"items": {"enum": ["beginner", "intermediate"]}
},
"modules": {
"type": "array",
Expand Down
212 changes: 152 additions & 60 deletions manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -389,6 +389,92 @@
}
]
},
{
"path": "specifications/FiniteMonotonic",
"title": "Finite Model-Checking of Monotonic Systems",
"description": "Illustration of technique for making ordinarily-infinite monotonic systems finite for the purposes of model-checking.",
"source": "https://ahelwer.ca/post/2023-11-01-tla-finite-monotonic/",
"authors": [
"Andrew Helwer"
],
"tags": [
"intermediate"
],
"modules": [
{
"path": "specifications/FiniteMonotonic/CRDT.tla",
"communityDependencies": [],
"tlaLanguageVersion": 2,
"features": [],
"models": []
},
{
"path": "specifications/FiniteMonotonic/Finitize_CRDT.tla",
"communityDependencies": [],
"tlaLanguageVersion": 2,
"features": [],
"models": [
{
"path": "specifications/FiniteMonotonic/Finitize_CRDT.cfg",
"runtime": "00:00:05",
"size": "small",
"mode": "exhaustive search",
"config": [],
"features": [
"liveness"
],
"result": "success"
}
]
},
{
"path": "specifications/FiniteMonotonic/Constrain_CRDT.tla",
"communityDependencies": [],
"tlaLanguageVersion": 2,
"features": [],
"models": [
{
"path": "specifications/FiniteMonotonic/Constrain_CRDT.cfg",
"runtime": "00:00:05",
"size": "small",
"mode": "exhaustive search",
"config": [],
"features": [
"liveness",
"state constraint"
],
"result": "success"
}
]
},
{
"path": "specifications/FiniteMonotonic/Finitize_ReplicatedLog.tla",
"communityDependencies": [],
"tlaLanguageVersion": 2,
"features": [],
"models": [
{
"path": "specifications/FiniteMonotonic/Finitize_ReplicatedLog.cfg",
"runtime": "00:00:05",
"size": "small",
"mode": "exhaustive search",
"config": [],
"features": [
"liveness"
],
"result": "success"
}
]
},
{
"path": "specifications/FiniteMonotonic/ReplicatedLog.tla",
"communityDependencies": [],
"tlaLanguageVersion": 2,
"features": [],
"models": []
}
]
},
{
"path": "specifications/GameOfLife",
"title": "Conway's Game of Life",
Expand Down Expand Up @@ -458,6 +544,22 @@
],
"tags": [],
"modules": [
{
"path": "specifications/KeyValueStore/ClientCentric.tla",
"communityDependencies": [],
"tlaLanguageVersion": 2,
"features": [],
"models": []
},
{
"path": "specifications/KeyValueStore/KVsnap.tla",
"communityDependencies": [],
"tlaLanguageVersion": 2,
"features": [
"pluscal"
],
"models": []
},
{
"path": "specifications/KeyValueStore/KeyValueStore.tla",
"communityDependencies": [],
Expand Down Expand Up @@ -504,13 +606,6 @@
}
]
},
{
"path": "specifications/KeyValueStore/KVsnap.tla",
"communityDependencies": [],
"tlaLanguageVersion": 2,
"features": ["pluscal"],
"models": []
},
{
"path": "specifications/KeyValueStore/MCKVsnap.tla",
"communityDependencies": [],
Expand Down Expand Up @@ -539,13 +634,6 @@
"tlaLanguageVersion": 2,
"features": [],
"models": []
},
{
"path": "specifications/KeyValueStore/ClientCentric.tla",
"communityDependencies": [],
"tlaLanguageVersion": 2,
"features": [],
"models": []
}
]
},
Expand Down Expand Up @@ -770,6 +858,55 @@
}
]
},
{
"path": "specifications/Majority",
"title": "Boyer-Moore majority vote algorithm",
"description": "An efficient algorithm for detecting a majority value in a sequence",
"source": "",
"authors": [
"Stephan Merz"
],
"tags": [
"beginner"
],
"modules": [
{
"path": "specifications/Majority/MCMajority.tla",
"communityDependencies": [],
"tlaLanguageVersion": 2,
"features": [],
"models": [
{
"path": "specifications/Majority/MCMajority.cfg",
"runtime": "00:00:05",
"size": "small",
"mode": "exhaustive search",
"config": [
"ignore deadlock"
],
"features": [],
"result": "success"
}
]
},
{
"path": "specifications/Majority/Majority.tla",
"communityDependencies": [],
"tlaLanguageVersion": 2,
"features": [],
"models": []
},
{
"path": "specifications/Majority/MajorityProof.tla",
"communityDependencies": [],
"tlaLanguageVersion": 2,
"features": [
"proof"
],
"models": []
}
]
},
{
"path": "specifications/MisraReachability",
"title": "Misra Reachability Algorithm",
Expand Down Expand Up @@ -3252,7 +3389,7 @@
"config": [
"ignore deadlock"
],
"features": [
"features": [
"liveness",
"state constraint",
"view"
Expand Down Expand Up @@ -3698,51 +3835,6 @@
"models": []
}
]
},
{
"path": "specifications/Majority",
"title": "Boyer-Moore majority vote algorithm",
"description": "An efficient algorithm for detecting a majority value in a sequence",
"source": "",
"authors": [
"Stephan Merz"
],
"tags": ["beginner"],
"modules": [
{
"path": "specifications/Majority/Majority.tla",
"communityDependencies": [],
"tlaLanguageVersion": 2,
"features": [],
"models": []
},
{
"path": "specifications/Majority/MCMajority.tla",
"communityDependencies": [],
"tlaLanguageVersion": 2,
"features": [],
"models": [
{
"path": "specifications/Majority/MCMajority.cfg",
"runtime": "00:00:05",
"size": "small",
"mode": "exhaustive search",
"config": ["ignore deadlock"],
"features": [],
"result": "success"
}
]
},
{
"path": "specifications/Majority/MajorityProof.tla",
"communityDependencies": [],
"tlaLanguageVersion": 2,
"features": [
"proof"
],
"models": []
}
]
}
]
}
Loading

0 comments on commit 2369052

Please sign in to comment.