Skip to content

Commit e1e8edf

Browse files
committed
Added specs to manifest, added README
Signed-off-by: Andrew Helwer <[email protected]>
1 parent 5ac7778 commit e1e8edf

10 files changed

+213
-154
lines changed

README.md

+30-29
Large diffs are not rendered by default.

manifest.json

+152-60
Original file line numberDiff line numberDiff line change
@@ -389,6 +389,92 @@
389389
}
390390
]
391391
},
392+
{
393+
"path": "specifications/FiniteMonotonic",
394+
"title": "Finite Model-Checking of Monotonic Systems",
395+
"description": "Illustration of a technique for making infinite monotonic systems finite for the purposes of model-checking.",
396+
"source": "https://ahelwer.ca/post/2023-11-01-tla-finite-monotonic/",
397+
"authors": [
398+
"Andrew Helwer"
399+
],
400+
"tags": [
401+
"beginner"
402+
],
403+
"modules": [
404+
{
405+
"path": "specifications/FiniteMonotonic/CRDT.tla",
406+
"communityDependencies": [],
407+
"tlaLanguageVersion": 2,
408+
"features": [],
409+
"models": []
410+
},
411+
{
412+
"path": "specifications/FiniteMonotonic/MC_CRDT.tla",
413+
"communityDependencies": [],
414+
"tlaLanguageVersion": 2,
415+
"features": [],
416+
"models": [
417+
{
418+
"path": "specifications/FiniteMonotonic/MC_CRDT.cfg",
419+
"runtime": "00:00:05",
420+
"size": "small",
421+
"mode": "exhaustive search",
422+
"config": [],
423+
"features": [
424+
"liveness"
425+
],
426+
"result": "success"
427+
}
428+
]
429+
},
430+
{
431+
"path": "specifications/FiniteMonotonic/MC_Constraint_CRDT.tla",
432+
"communityDependencies": [],
433+
"tlaLanguageVersion": 2,
434+
"features": [],
435+
"models": [
436+
{
437+
"path": "specifications/FiniteMonotonic/MC_Constraint_CRDT.cfg",
438+
"runtime": "00:00:05",
439+
"size": "small",
440+
"mode": "exhaustive search",
441+
"config": [],
442+
"features": [
443+
"liveness",
444+
"state constraint"
445+
],
446+
"result": "success"
447+
}
448+
]
449+
},
450+
{
451+
"path": "specifications/FiniteMonotonic/MC_ReplicatedLog.tla",
452+
"communityDependencies": [],
453+
"tlaLanguageVersion": 2,
454+
"features": [],
455+
"models": [
456+
{
457+
"path": "specifications/FiniteMonotonic/MC_ReplicatedLog.cfg",
458+
"runtime": "00:00:05",
459+
"size": "small",
460+
"mode": "exhaustive search",
461+
"config": [],
462+
"features": [
463+
"liveness"
464+
],
465+
"result": "success"
466+
}
467+
]
468+
},
469+
{
470+
"path": "specifications/FiniteMonotonic/ReplicatedLog.tla",
471+
"communityDependencies": [],
472+
"tlaLanguageVersion": 2,
473+
"features": [],
474+
"models": []
475+
}
476+
]
477+
},
392478
{
393479
"path": "specifications/GameOfLife",
394480
"title": "Conway's Game of Life",
@@ -458,6 +544,22 @@
458544
],
459545
"tags": [],
460546
"modules": [
547+
{
548+
"path": "specifications/KeyValueStore/ClientCentric.tla",
549+
"communityDependencies": [],
550+
"tlaLanguageVersion": 2,
551+
"features": [],
552+
"models": []
553+
},
554+
{
555+
"path": "specifications/KeyValueStore/KVsnap.tla",
556+
"communityDependencies": [],
557+
"tlaLanguageVersion": 2,
558+
"features": [
559+
"pluscal"
560+
],
561+
"models": []
562+
},
461563
{
462564
"path": "specifications/KeyValueStore/KeyValueStore.tla",
463565
"communityDependencies": [],
@@ -504,13 +606,6 @@
504606
}
505607
]
506608
},
507-
{
508-
"path": "specifications/KeyValueStore/KVsnap.tla",
509-
"communityDependencies": [],
510-
"tlaLanguageVersion": 2,
511-
"features": ["pluscal"],
512-
"models": []
513-
},
514609
{
515610
"path": "specifications/KeyValueStore/MCKVsnap.tla",
516611
"communityDependencies": [],
@@ -539,13 +634,6 @@
539634
"tlaLanguageVersion": 2,
540635
"features": [],
541636
"models": []
542-
},
543-
{
544-
"path": "specifications/KeyValueStore/ClientCentric.tla",
545-
"communityDependencies": [],
546-
"tlaLanguageVersion": 2,
547-
"features": [],
548-
"models": []
549637
}
550638
]
551639
},
@@ -770,6 +858,55 @@
770858
}
771859
]
772860
},
861+
{
862+
"path": "specifications/Majority",
863+
"title": "Boyer-Moore majority vote algorithm",
864+
"description": "An efficient algorithm for detecting a majority value in a sequence",
865+
"source": "",
866+
"authors": [
867+
"Stephan Merz"
868+
],
869+
"tags": [
870+
"beginner"
871+
],
872+
"modules": [
873+
{
874+
"path": "specifications/Majority/MCMajority.tla",
875+
"communityDependencies": [],
876+
"tlaLanguageVersion": 2,
877+
"features": [],
878+
"models": [
879+
{
880+
"path": "specifications/Majority/MCMajority.cfg",
881+
"runtime": "00:00:05",
882+
"size": "small",
883+
"mode": "exhaustive search",
884+
"config": [
885+
"ignore deadlock"
886+
],
887+
"features": [],
888+
"result": "success"
889+
}
890+
]
891+
},
892+
{
893+
"path": "specifications/Majority/Majority.tla",
894+
"communityDependencies": [],
895+
"tlaLanguageVersion": 2,
896+
"features": [],
897+
"models": []
898+
},
899+
{
900+
"path": "specifications/Majority/MajorityProof.tla",
901+
"communityDependencies": [],
902+
"tlaLanguageVersion": 2,
903+
"features": [
904+
"proof"
905+
],
906+
"models": []
907+
}
908+
]
909+
},
773910
{
774911
"path": "specifications/MisraReachability",
775912
"title": "Misra Reachability Algorithm",
@@ -3252,7 +3389,7 @@
32523389
"config": [
32533390
"ignore deadlock"
32543391
],
3255-
"features": [
3392+
"features": [
32563393
"liveness",
32573394
"state constraint",
32583395
"view"
@@ -3698,51 +3835,6 @@
36983835
"models": []
36993836
}
37003837
]
3701-
},
3702-
{
3703-
"path": "specifications/Majority",
3704-
"title": "Boyer-Moore majority vote algorithm",
3705-
"description": "An efficient algorithm for detecting a majority value in a sequence",
3706-
"source": "",
3707-
"authors": [
3708-
"Stephan Merz"
3709-
],
3710-
"tags": ["beginner"],
3711-
"modules": [
3712-
{
3713-
"path": "specifications/Majority/Majority.tla",
3714-
"communityDependencies": [],
3715-
"tlaLanguageVersion": 2,
3716-
"features": [],
3717-
"models": []
3718-
},
3719-
{
3720-
"path": "specifications/Majority/MCMajority.tla",
3721-
"communityDependencies": [],
3722-
"tlaLanguageVersion": 2,
3723-
"features": [],
3724-
"models": [
3725-
{
3726-
"path": "specifications/Majority/MCMajority.cfg",
3727-
"runtime": "00:00:05",
3728-
"size": "small",
3729-
"mode": "exhaustive search",
3730-
"config": ["ignore deadlock"],
3731-
"features": [],
3732-
"result": "success"
3733-
}
3734-
]
3735-
},
3736-
{
3737-
"path": "specifications/Majority/MajorityProof.tla",
3738-
"communityDependencies": [],
3739-
"tlaLanguageVersion": 2,
3740-
"features": [
3741-
"proof"
3742-
],
3743-
"models": []
3744-
}
3745-
]
37463838
}
37473839
]
37483840
}

specifications/FiniteMonotonic/CRDT.tla

+1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
------------------------------- MODULE CRDT ---------------------------------
2+
23
EXTENDS Naturals
34

45
CONSTANT Node

specifications/FiniteMonotonic/MC_CRDT.cfg

+1
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,4 @@ CONSTANTS
44
Divergence = 3
55
INVARIANTS TypeOK Safety
66
PROPERTIES Liveness Monotonicity
7+

specifications/FiniteMonotonic/MC_CRDT.tla

+1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
------------------------------- MODULE MC_CRDT ------------------------------
2+
23
EXTENDS Naturals
34

45
CONSTANTS Node, Divergence

specifications/FiniteMonotonic/MC_Constraint_CRDT.cfg

+1
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,4 @@ CONSTANT Node = {n1, n2, n3}
33
INVARIANTS TypeOK Safety
44
PROPERTIES Monotonicity Liveness
55
CONSTRAINT StateConstraint
6+

specifications/FiniteMonotonic/MC_Constraint_CRDT.tla

+1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
------------------------- MODULE MC_Constraint_CRDT -------------------------
2+
23
EXTENDS Naturals
34

45
CONSTANT Node
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
SPECIFICATION SimpleSpec
1+
SPECIFICATION Spec
22
CONSTANTS
33
Node = {n1, n2, n3}
44
Transaction = {tx1, tx2, tx3}
55
Divergence = 5
66
INVARIANT TypeOK
77
PROPERTY Liveness
8+

0 commit comments

Comments
 (0)