Commit 7d001ca6 authored by Kirill Smelkov's avatar Kirill Smelkov

Trying to satisfy Dijkstra II

	Any processes may take arbitrarily long to execute its noncritical
	section, and may even halt there.  Other processes must be able to enter the
	critical section without having to wait for those processes to complete the
	noncritical section.
parent 253af10d
......@@ -75,9 +75,9 @@ Spec == /\ Init /\ [][Next]_vars
ME == INSTANCE MutualExclusionSpec WITH
pc <- [proc \in Procs |-> IF pc[proc] = "cs" THEN "cs"
ELSE "non-cs"]
pc <- [proc \in Procs |-> CASE pc[proc] = "cs" -> "cs"
[] pc[proc] = "enter" -> "csentry"
[] OTHER -> "non-cs"]
THEOREM Spec => ME!Spec
THEOREM Spec => []ME!MutualExclusion
......@@ -85,5 +85,5 @@ THEOREM Spec => ME!Liveness
=============================================================================
\* Modification History
\* Last modified Wed Feb 09 18:03:45 MSK 2022 by kirr
\* Last modified Wed Feb 09 19:58:34 MSK 2022 by kirr
\* Created Wed Feb 09 16:13:49 MSK 2022 by kirr
......@@ -13,7 +13,7 @@
<stringAttribute key="distributedTLC" value="off"/>
<stringAttribute key="distributedTLCVMArgs" value=""/>
<intAttribute key="fpBits" value="1"/>
<intAttribute key="fpIndex" value="107"/>
<intAttribute key="fpIndex" value="90"/>
<booleanAttribute key="fpIndexRandom" value="true"/>
<intAttribute key="maxHeapSize" value="25"/>
<intAttribute key="maxSetSize" value="1000000"/>
......
......@@ -3,7 +3,7 @@
<stringAttribute key="TLCCmdLineParameters" value=""/>
<stringAttribute key="alias" value=""/>
<intAttribute key="collectCoverage" value="1"/>
<stringAttribute key="configurationName" value="Model_1_SnapShot_1644418425669"/>
<stringAttribute key="configurationName" value="Model_1_SnapShot_1644425787608"/>
<booleanAttribute key="deferLiveness" value="false"/>
<intAttribute key="dfidDepth" value="100"/>
<booleanAttribute key="dfidMode" value="false"/>
......@@ -13,7 +13,7 @@
<stringAttribute key="distributedTLC" value="off"/>
<stringAttribute key="distributedTLCVMArgs" value=""/>
<intAttribute key="fpBits" value="1"/>
<intAttribute key="fpIndex" value="96"/>
<intAttribute key="fpIndex" value="88"/>
<booleanAttribute key="fpIndexRandom" value="true"/>
<intAttribute key="maxHeapSize" value="25"/>
<intAttribute key="maxSetSize" value="1000000"/>
......@@ -27,6 +27,7 @@
<booleanAttribute key="modelCorrectnessCheckDeadlock" value="true"/>
<listAttribute key="modelCorrectnessInvariants">
<listEntry value="1ME!MutualExclusion"/>
<listEntry value="1\A i \in Procs : (pc[i] = &quot;cs&quot;) =&gt; (turn = i)"/>
</listAttribute>
<listAttribute key="modelCorrectnessProperties">
<listEntry value="1ME!Spec"/>
......
......@@ -3,7 +3,7 @@
<stringAttribute key="TLCCmdLineParameters" value=""/>
<stringAttribute key="alias" value=""/>
<intAttribute key="collectCoverage" value="1"/>
<stringAttribute key="configurationName" value="Model_1_SnapShot_1644418436130"/>
<stringAttribute key="configurationName" value="Model_1_SnapShot_1644425917721"/>
<booleanAttribute key="deferLiveness" value="false"/>
<intAttribute key="dfidDepth" value="100"/>
<booleanAttribute key="dfidMode" value="false"/>
......@@ -13,7 +13,7 @@
<stringAttribute key="distributedTLC" value="off"/>
<stringAttribute key="distributedTLCVMArgs" value=""/>
<intAttribute key="fpBits" value="1"/>
<intAttribute key="fpIndex" value="55"/>
<intAttribute key="fpIndex" value="90"/>
<booleanAttribute key="fpIndexRandom" value="true"/>
<intAttribute key="maxHeapSize" value="25"/>
<intAttribute key="maxSetSize" value="1000000"/>
......@@ -27,6 +27,7 @@
<booleanAttribute key="modelCorrectnessCheckDeadlock" value="true"/>
<listAttribute key="modelCorrectnessInvariants">
<listEntry value="1ME!MutualExclusion"/>
<listEntry value="1\A i \in Procs : (pc[i] = &quot;cs&quot;) =&gt; (turn = i)"/>
</listAttribute>
<listAttribute key="modelCorrectnessProperties">
<listEntry value="1ME!Spec"/>
......
......@@ -75,9 +75,9 @@ Spec == /\ Init /\ [][Next]_vars
ME == INSTANCE MutualExclusionSpec WITH
pc <- [proc \in Procs |-> IF pc[proc] = "cs" THEN "cs"
ELSE "non-cs"]
pc <- [proc \in Procs |-> CASE pc[proc] = "cs" -> "cs"
[] pc[proc] = "enter" -> "csentry"
[] OTHER -> "non-cs"]
THEOREM Spec => ME!Spec
THEOREM Spec => []ME!MutualExclusion
......@@ -85,5 +85,5 @@ THEOREM Spec => ME!Liveness
=============================================================================
\* Modification History
\* Last modified Wed Feb 09 18:03:45 MSK 2022 by kirr
\* Last modified Wed Feb 09 19:58:34 MSK 2022 by kirr
\* Created Wed Feb 09 16:13:49 MSK 2022 by kirr
\* CONSTANT definitions
CONSTANT
Procs <- const_1644421370985520000
Procs <- const_1644425915701562000
\* SPECIFICATION definition
SPECIFICATION
Spec
\* INVARIANT definition
INVARIANT
inv_1644421370985521000
inv_1644421370985522000
inv_1644425915701563000
inv_1644425915701564000
\* PROPERTY definition
PROPERTY
prop_1644421370985523000
prop_1644421370985524000
\* Generated on Wed Feb 09 18:42:50 MSK 2022
\ No newline at end of file
prop_1644425915701565000
prop_1644425915701566000
\* Generated on Wed Feb 09 19:58:35 MSK 2022
\ No newline at end of file
......@@ -2,7 +2,7 @@
TLC2 Version 2.16 of Day Month 20?? (rev: 9310ee7)
@!@!@ENDMSG 2262 @!@!@
@!@!@STARTMSG 2187:0 @!@!@
Running breadth-first search Model-Checking with fp 107 and seed 6844394497227079726 with 2 workers on 4 cores with 1161MB heap and 2608MB offheap memory [pid: 73860] (Linux 5.10.0-10-amd64 amd64, AdoptOpenJDK 14.0.1 x86_64, OffHeapDiskFPSet, DiskStateQueue).
Running breadth-first search Model-Checking with fp 90 and seed -2010183919109019723 with 2 workers on 4 cores with 1161MB heap and 2608MB offheap memory [pid: 76629] (Linux 5.10.0-10-amd64 amd64, AdoptOpenJDK 14.0.1 x86_64, OffHeapDiskFPSet, DiskStateQueue).
@!@!@ENDMSG 2187 @!@!@
@!@!@STARTMSG 2220:0 @!@!@
Starting SANY...
......@@ -27,7 +27,7 @@ Semantic processing of module MC
SANY finished.
@!@!@ENDMSG 2219 @!@!@
@!@!@STARTMSG 2185:0 @!@!@
Starting... (2022-02-09 18:42:51)
Starting... (2022-02-09 19:58:36)
@!@!@ENDMSG 2185 @!@!@
@!@!@STARTMSG 2212:0 @!@!@
Implied-temporal checking--satisfiability problem has 5 branches.
......@@ -36,16 +36,16 @@ Implied-temporal checking--satisfiability problem has 5 branches.
Computing initial states...
@!@!@ENDMSG 2189 @!@!@
@!@!@STARTMSG 2190:0 @!@!@
Finished computing initial states: 2 distinct states generated at 2022-02-09 18:42:52.
Finished computing initial states: 2 distinct states generated at 2022-02-09 19:58:37.
@!@!@ENDMSG 2190 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(5) at 2022-02-09 18:42:52: 26 states generated, 16 distinct states found, 0 states left on queue.
Progress(5) at 2022-02-09 19:58:37: 26 states generated, 16 distinct states found, 0 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2192:0 @!@!@
Checking 5 branches of temporal properties for the complete state space with 80 total distinct states at (2022-02-09 18:42:52)
Checking 5 branches of temporal properties for the complete state space with 80 total distinct states at (2022-02-09 19:58:37)
@!@!@ENDMSG 2192 @!@!@
@!@!@STARTMSG 2267:0 @!@!@
Finished checking temporal properties in 00s at 2022-02-09 18:42:52
Finished checking temporal properties in 00s at 2022-02-09 19:58:37
@!@!@ENDMSG 2267 @!@!@
@!@!@STARTMSG 2193:0 @!@!@
Model checking completed. No error has been found.
......@@ -54,7 +54,7 @@ Model checking completed. No error has been found.
calculated (optimistic): val = 8.7E-18
@!@!@ENDMSG 2193 @!@!@
@!@!@STARTMSG 2201:0 @!@!@
The coverage statistics at 2022-02-09 18:42:52
The coverage statistics at 2022-02-09 19:58:37
@!@!@ENDMSG 2201 @!@!@
@!@!@STARTMSG 2773:0 @!@!@
<Init line 40, col 1 to line 40, col 4 of module Alternate>: 2:2
......@@ -72,55 +72,55 @@ The coverage statistics at 2022-02-09 18:42:52
||line 42, col 27 to line 42, col 33 of module Alternate: 2
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<ncs line 44, col 1 to line 44, col 9 of module Alternate>: 8:24
<ncs line 44, col 1 to line 44, col 9 of module Alternate>: 8:18
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 44, col 17 to line 44, col 32 of module Alternate: 72
line 44, col 17 to line 44, col 32 of module Alternate: 62
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 44, col 17 to line 44, col 24 of module Alternate: 48
|line 44, col 17 to line 44, col 24 of module Alternate: 44
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 45, col 17 to line 45, col 20 of module Alternate: 24
line 45, col 17 to line 45, col 20 of module Alternate: 18
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 46, col 17 to line 46, col 51 of module Alternate: 24
line 46, col 17 to line 46, col 51 of module Alternate: 18
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 47, col 17 to line 47, col 28 of module Alternate: 24
line 47, col 17 to line 47, col 28 of module Alternate: 18
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<enter line 49, col 1 to line 49, col 11 of module Alternate>: 3:4
<enter line 49, col 1 to line 49, col 11 of module Alternate>: 3:6
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 49, col 19 to line 49, col 36 of module Alternate: 52
line 49, col 19 to line 49, col 36 of module Alternate: 50
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 49, col 19 to line 49, col 26 of module Alternate: 48
|line 49, col 19 to line 49, col 26 of module Alternate: 44
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 50, col 19 to line 50, col 29 of module Alternate: 16
line 50, col 19 to line 50, col 29 of module Alternate: 22
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 50, col 19 to line 50, col 22 of module Alternate: 12
|line 50, col 19 to line 50, col 22 of module Alternate: 16
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 50, col 26 to line 50, col 29 of module Alternate: 12
|line 50, col 26 to line 50, col 29 of module Alternate: 16
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 51, col 19 to line 51, col 50 of module Alternate: 4
line 51, col 19 to line 51, col 50 of module Alternate: 6
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 52, col 19 to line 52, col 30 of module Alternate: 4
line 52, col 19 to line 52, col 30 of module Alternate: 6
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<cs line 54, col 1 to line 54, col 8 of module Alternate>: 3:6
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 54, col 16 to line 54, col 30 of module Alternate: 54
line 54, col 16 to line 54, col 30 of module Alternate: 50
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 54, col 16 to line 54, col 23 of module Alternate: 48
|line 54, col 16 to line 54, col 23 of module Alternate: 44
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 55, col 16 to line 55, col 19 of module Alternate: 6
......@@ -132,61 +132,61 @@ The coverage statistics at 2022-02-09 18:42:52
line 57, col 16 to line 57, col 27 of module Alternate: 6
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<exit line 59, col 1 to line 59, col 10 of module Alternate>: 0:6
<exit line 59, col 1 to line 59, col 10 of module Alternate>: 0:4
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 59, col 18 to line 59, col 34 of module Alternate: 54
line 59, col 18 to line 59, col 34 of module Alternate: 48
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 59, col 18 to line 59, col 25 of module Alternate: 48
|line 59, col 18 to line 59, col 25 of module Alternate: 44
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 60, col 18 to line 60, col 46 of module Alternate: 6
line 60, col 18 to line 60, col 46 of module Alternate: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 61, col 18 to line 61, col 50 of module Alternate: 6
line 61, col 18 to line 61, col 50 of module Alternate: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<inv_1644421370985521000 line 10, col 1 to line 10, col 23 of module MC>
<inv_1644425915701563000 line 10, col 1 to line 10, col 23 of module MC>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 11, col 1 to line 11, col 18 of module MC: 16
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
|line 78, col 23 to line 79, col 77 of module Alternate: 98:148
|line 78, col 23 to line 80, col 82 of module Alternate: 83:94
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 78, col 33 to line 78, col 37 of module Alternate: 98
||line 78, col 33 to line 78, col 37 of module Alternate: 83
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 77, col 1 to line 79, col 77 of module Alternate: 42
|line 77, col 1 to line 80, col 82 of module Alternate: 42
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 39, col 20 to line 39, col 84 of module MutualExclusionSpec: 16
|line 47, col 20 to line 47, col 84 of module MutualExclusionSpec: 16
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 39, col 38 to line 39, col 84 of module MutualExclusionSpec: 64
||line 47, col 38 to line 47, col 84 of module MutualExclusionSpec: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 39, col 39 to line 39, col 44 of module MutualExclusionSpec: 64
|||line 47, col 39 to line 47, col 44 of module MutualExclusionSpec: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 39, col 50 to line 39, col 84 of module MutualExclusionSpec: 32
|||line 47, col 50 to line 47, col 84 of module MutualExclusionSpec: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 39, col 52 to line 39, col 83 of module MutualExclusionSpec: 32
||||line 47, col 52 to line 47, col 83 of module MutualExclusionSpec: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||||line 39, col 53 to line 39, col 64 of module MutualExclusionSpec: 32
|||||line 47, col 53 to line 47, col 64 of module MutualExclusionSpec: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||||line 39, col 71 to line 39, col 82 of module MutualExclusionSpec: 4
|||||line 47, col 71 to line 47, col 82 of module MutualExclusionSpec: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 39, col 31 to line 39, col 35 of module MutualExclusionSpec: 16
||line 47, col 31 to line 47, col 35 of module MutualExclusionSpec: 16
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<inv_1644421370985522000 line 14, col 1 to line 14, col 23 of module MC>
<inv_1644425915701564000 line 14, col 1 to line 14, col 23 of module MC>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 15, col 1 to line 15, col 45 of module MC: 16
......@@ -207,7 +207,7 @@ The coverage statistics at 2022-02-09 18:42:52
End of statistics.
@!@!@ENDMSG 2202 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(5) at 2022-02-09 18:42:52: 26 states generated (1 042 s/min), 16 distinct states found (641 ds/min), 0 states left on queue.
Progress(5) at 2022-02-09 19:58:37: 26 states generated (1 154 s/min), 16 distinct states found (710 ds/min), 0 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2199:0 @!@!@
26 states generated, 16 distinct states found, 0 states left on queue.
......@@ -219,5 +219,5 @@ The depth of the complete state graph search is 5.
The average outdegree of the complete state graph is 1 (minimum is 0, the maximum 2 and the 95th percentile is 2).
@!@!@ENDMSG 2268 @!@!@
@!@!@STARTMSG 2186:0 @!@!@
Finished in 1515ms at (2022-02-09 18:42:52)
Finished in 1364ms at (2022-02-09 19:58:37)
@!@!@ENDMSG 2186 @!@!@
......@@ -2,26 +2,26 @@
EXTENDS Alternate, TLC
\* CONSTANT definitions @modelParameterConstants:0Procs
const_1644421370985520000 ==
const_1644425915701562000 ==
0..1
----
\* INVARIANT definition @modelCorrectnessInvariants:0
inv_1644421370985521000 ==
inv_1644425915701563000 ==
ME!MutualExclusion
----
\* INVARIANT definition @modelCorrectnessInvariants:1
inv_1644421370985522000 ==
inv_1644425915701564000 ==
\A i \in Procs : (pc[i] = "cs") => (turn = i)
----
\* PROPERTY definition @modelCorrectnessProperties:0
prop_1644421370985523000 ==
prop_1644425915701565000 ==
ME!Spec
----
\* PROPERTY definition @modelCorrectnessProperties:1
prop_1644421370985524000 ==
prop_1644425915701566000 ==
ME!Liveness
----
=============================================================================
\* Modification History
\* Created Wed Feb 09 18:42:50 MSK 2022 by kirr
\* Created Wed Feb 09 19:58:35 MSK 2022 by kirr
......@@ -2,7 +2,7 @@
TLC2 Version 2.16 of Day Month 20?? (rev: 9310ee7)
@!@!@ENDMSG 2262 @!@!@
@!@!@STARTMSG 2187:0 @!@!@
Running breadth-first search Model-Checking with fp 107 and seed 6844394497227079726 with 2 workers on 4 cores with 1161MB heap and 2608MB offheap memory [pid: 73860] (Linux 5.10.0-10-amd64 amd64, AdoptOpenJDK 14.0.1 x86_64, OffHeapDiskFPSet, DiskStateQueue).
Running breadth-first search Model-Checking with fp 90 and seed -2010183919109019723 with 2 workers on 4 cores with 1161MB heap and 2608MB offheap memory [pid: 76629] (Linux 5.10.0-10-amd64 amd64, AdoptOpenJDK 14.0.1 x86_64, OffHeapDiskFPSet, DiskStateQueue).
@!@!@ENDMSG 2187 @!@!@
@!@!@STARTMSG 2220:0 @!@!@
Starting SANY...
......@@ -27,7 +27,7 @@ Semantic processing of module MC
SANY finished.
@!@!@ENDMSG 2219 @!@!@
@!@!@STARTMSG 2185:0 @!@!@
Starting... (2022-02-09 18:42:51)
Starting... (2022-02-09 19:58:36)
@!@!@ENDMSG 2185 @!@!@
@!@!@STARTMSG 2212:0 @!@!@
Implied-temporal checking--satisfiability problem has 5 branches.
......@@ -36,16 +36,16 @@ Implied-temporal checking--satisfiability problem has 5 branches.
Computing initial states...
@!@!@ENDMSG 2189 @!@!@
@!@!@STARTMSG 2190:0 @!@!@
Finished computing initial states: 2 distinct states generated at 2022-02-09 18:42:52.
Finished computing initial states: 2 distinct states generated at 2022-02-09 19:58:37.
@!@!@ENDMSG 2190 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(5) at 2022-02-09 18:42:52: 26 states generated, 16 distinct states found, 0 states left on queue.
Progress(5) at 2022-02-09 19:58:37: 26 states generated, 16 distinct states found, 0 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2192:0 @!@!@
Checking 5 branches of temporal properties for the complete state space with 80 total distinct states at (2022-02-09 18:42:52)
Checking 5 branches of temporal properties for the complete state space with 80 total distinct states at (2022-02-09 19:58:37)
@!@!@ENDMSG 2192 @!@!@
@!@!@STARTMSG 2267:0 @!@!@
Finished checking temporal properties in 00s at 2022-02-09 18:42:52
Finished checking temporal properties in 00s at 2022-02-09 19:58:37
@!@!@ENDMSG 2267 @!@!@
@!@!@STARTMSG 2193:0 @!@!@
Model checking completed. No error has been found.
......@@ -54,7 +54,7 @@ Model checking completed. No error has been found.
calculated (optimistic): val = 8.7E-18
@!@!@ENDMSG 2193 @!@!@
@!@!@STARTMSG 2201:0 @!@!@
The coverage statistics at 2022-02-09 18:42:52
The coverage statistics at 2022-02-09 19:58:37
@!@!@ENDMSG 2201 @!@!@
@!@!@STARTMSG 2773:0 @!@!@
<Init line 40, col 1 to line 40, col 4 of module Alternate>: 2:2
......@@ -72,55 +72,55 @@ The coverage statistics at 2022-02-09 18:42:52
||line 42, col 27 to line 42, col 33 of module Alternate: 2
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<ncs line 44, col 1 to line 44, col 9 of module Alternate>: 8:24
<ncs line 44, col 1 to line 44, col 9 of module Alternate>: 8:18
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 44, col 17 to line 44, col 32 of module Alternate: 72
line 44, col 17 to line 44, col 32 of module Alternate: 62
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 44, col 17 to line 44, col 24 of module Alternate: 48
|line 44, col 17 to line 44, col 24 of module Alternate: 44
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 45, col 17 to line 45, col 20 of module Alternate: 24
line 45, col 17 to line 45, col 20 of module Alternate: 18
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 46, col 17 to line 46, col 51 of module Alternate: 24
line 46, col 17 to line 46, col 51 of module Alternate: 18
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 47, col 17 to line 47, col 28 of module Alternate: 24
line 47, col 17 to line 47, col 28 of module Alternate: 18
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<enter line 49, col 1 to line 49, col 11 of module Alternate>: 3:4
<enter line 49, col 1 to line 49, col 11 of module Alternate>: 3:6
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 49, col 19 to line 49, col 36 of module Alternate: 52
line 49, col 19 to line 49, col 36 of module Alternate: 50
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 49, col 19 to line 49, col 26 of module Alternate: 48
|line 49, col 19 to line 49, col 26 of module Alternate: 44
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 50, col 19 to line 50, col 29 of module Alternate: 16
line 50, col 19 to line 50, col 29 of module Alternate: 22
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 50, col 19 to line 50, col 22 of module Alternate: 12
|line 50, col 19 to line 50, col 22 of module Alternate: 16
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 50, col 26 to line 50, col 29 of module Alternate: 12
|line 50, col 26 to line 50, col 29 of module Alternate: 16
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 51, col 19 to line 51, col 50 of module Alternate: 4
line 51, col 19 to line 51, col 50 of module Alternate: 6
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 52, col 19 to line 52, col 30 of module Alternate: 4
line 52, col 19 to line 52, col 30 of module Alternate: 6
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<cs line 54, col 1 to line 54, col 8 of module Alternate>: 3:6
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 54, col 16 to line 54, col 30 of module Alternate: 54
line 54, col 16 to line 54, col 30 of module Alternate: 50
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 54, col 16 to line 54, col 23 of module Alternate: 48
|line 54, col 16 to line 54, col 23 of module Alternate: 44
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 55, col 16 to line 55, col 19 of module Alternate: 6
......@@ -132,61 +132,61 @@ The coverage statistics at 2022-02-09 18:42:52
line 57, col 16 to line 57, col 27 of module Alternate: 6
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<exit line 59, col 1 to line 59, col 10 of module Alternate>: 0:6
<exit line 59, col 1 to line 59, col 10 of module Alternate>: 0:4
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 59, col 18 to line 59, col 34 of module Alternate: 54
line 59, col 18 to line 59, col 34 of module Alternate: 48
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 59, col 18 to line 59, col 25 of module Alternate: 48
|line 59, col 18 to line 59, col 25 of module Alternate: 44
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 60, col 18 to line 60, col 46 of module Alternate: 6
line 60, col 18 to line 60, col 46 of module Alternate: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 61, col 18 to line 61, col 50 of module Alternate: 6
line 61, col 18 to line 61, col 50 of module Alternate: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<inv_1644421370985521000 line 10, col 1 to line 10, col 23 of module MC>
<inv_1644425915701563000 line 10, col 1 to line 10, col 23 of module MC>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 11, col 1 to line 11, col 18 of module MC: 16
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
|line 78, col 23 to line 79, col 77 of module Alternate: 98:148
|line 78, col 23 to line 80, col 82 of module Alternate: 83:94
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 78, col 33 to line 78, col 37 of module Alternate: 98
||line 78, col 33 to line 78, col 37 of module Alternate: 83
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 77, col 1 to line 79, col 77 of module Alternate: 42
|line 77, col 1 to line 80, col 82 of module Alternate: 42
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 39, col 20 to line 39, col 84 of module MutualExclusionSpec: 16
|line 47, col 20 to line 47, col 84 of module MutualExclusionSpec: 16
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 39, col 38 to line 39, col 84 of module MutualExclusionSpec: 64
||line 47, col 38 to line 47, col 84 of module MutualExclusionSpec: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 39, col 39 to line 39, col 44 of module MutualExclusionSpec: 64
|||line 47, col 39 to line 47, col 44 of module MutualExclusionSpec: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 39, col 50 to line 39, col 84 of module MutualExclusionSpec: 32
|||line 47, col 50 to line 47, col 84 of module MutualExclusionSpec: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 39, col 52 to line 39, col 83 of module MutualExclusionSpec: 32
||||line 47, col 52 to line 47, col 83 of module MutualExclusionSpec: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||||line 39, col 53 to line 39, col 64 of module MutualExclusionSpec: 32
|||||line 47, col 53 to line 47, col 64 of module MutualExclusionSpec: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||||line 39, col 71 to line 39, col 82 of module MutualExclusionSpec: 4
|||||line 47, col 71 to line 47, col 82 of module MutualExclusionSpec: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 39, col 31 to line 39, col 35 of module MutualExclusionSpec: 16
||line 47, col 31 to line 47, col 35 of module MutualExclusionSpec: 16
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<inv_1644421370985522000 line 14, col 1 to line 14, col 23 of module MC>
<inv_1644425915701564000 line 14, col 1 to line 14, col 23 of module MC>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 15, col 1 to line 15, col 45 of module MC: 16
......@@ -207,7 +207,7 @@ The coverage statistics at 2022-02-09 18:42:52
End of statistics.
@!@!@ENDMSG 2202 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(5) at 2022-02-09 18:42:52: 26 states generated (1 042 s/min), 16 distinct states found (641 ds/min), 0 states left on queue.
Progress(5) at 2022-02-09 19:58:37: 26 states generated (1 154 s/min), 16 distinct states found (710 ds/min), 0 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2199:0 @!@!@
26 states generated, 16 distinct states found, 0 states left on queue.
......@@ -219,5 +219,5 @@ The depth of the complete state graph search is 5.
The average outdegree of the complete state graph is 1 (minimum is 0, the maximum 2 and the 95th percentile is 2).
@!@!@ENDMSG 2268 @!@!@
@!@!@STARTMSG 2186:0 @!@!@
Finished in 1515ms at (2022-02-09 18:42:52)
Finished in 1364ms at (2022-02-09 19:58:37)
@!@!@ENDMSG 2186 @!@!@
......@@ -3,67 +3,67 @@ edge [colorscheme="paired12"]
nodesep=0.35;
subgraph cluster_graph {
color="white";
-400635202659742381 [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")\n/\\ turn = 0",style = filled]
-1182823203390725160 [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")\n/\\ turn = 1",style = filled]
-400635202659742381 -> -475001133580855070 [label="",color="2",fontcolor="2"];
-475001133580855070 [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")\n/\\ turn = 0"];
-400635202659742381 -> 4659978677738564643 [label="",color="2",fontcolor="2"];
4659978677738564643 [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")\n/\\ turn = 0"];
-400635202659742381 -> -400635202659742381 [style="dashed"];
-1182823203390725160 -> -1401437471233001879 [label="",color="2",fontcolor="2"];
-1401437471233001879 [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")\n/\\ turn = 1"];
-1182823203390725160 -> 6147128843187323560 [label="",color="2",fontcolor="2"];
6147128843187323560 [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")\n/\\ turn = 1"];
-1182823203390725160 -> -1182823203390725160 [style="dashed"];
-475001133580855070 -> 5240454219582294627 [label="",color="3",fontcolor="3"];
5240454219582294627 [label="/\\ pc = (0 :> \"cs\" @@ 1 :> \"ncs\")\n/\\ turn = 0"];
-475001133580855070 -> 5064951816826678884 [label="",color="2",fontcolor="2"];
5064951816826678884 [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")\n/\\ turn = 0"];
-475001133580855070 -> -475001133580855070 [style="dashed"];
4659978677738564643 -> 5064951816826678884 [label="",color="2",fontcolor="2"];
4659978677738564643 -> 4659978677738564643 [style="dashed"];
-1401437471233001879 -> 6030106734495858927 [label="",color="2",fontcolor="2"];
6030106734495858927 [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")\n/\\ turn = 1"];
-1401437471233001879 -> -1401437471233001879 [style="dashed"];
6147128843187323560 -> 6030106734495858927 [label="",color="2",fontcolor="2"];
5240454219582294627 -> 7049503415477998762 [label="",color="4",fontcolor="4"];
7049503415477998762 [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"ncs\")\n/\\ turn = 0"];
6147128843187323560 -> 6211392433518555324 [label="",color="3",fontcolor="3"];
6211392433518555324 [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")\n/\\ turn = 1"];
5240454219582294627 -> 3923823433829631963 [label="",color="2",fontcolor="2"];
3923823433829631963 [label="/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")\n/\\ turn = 0"];
6147128843187323560 -> 6147128843187323560 [style="dashed"];
5240454219582294627 -> 5240454219582294627 [style="dashed"];
5064951816826678884 -> 3923823433829631963 [label="",color="3",fontcolor="3"];
5064951816826678884 -> 5064951816826678884 [style="dashed"];
6030106734495858927 -> 897235516867550670 [label="",color="3",fontcolor="3"];
897235516867550670 [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")\n/\\ turn = 1"];
6030106734495858927 -> 6030106734495858927 [style="dashed"];
7049503415477998762 -> -1182823203390725160 [label="",color="5",fontcolor="5"];
7049503415477998762 -> 4069903303166039434 [label="",color="2",fontcolor="2"];
4069903303166039434 [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")\n/\\ turn = 0"];
7049503415477998762 -> 7049503415477998762 [style="dashed"];
6211392433518555324 -> 897235516867550670 [label="",color="2",fontcolor="2"];
6211392433518555324 -> -9152277194294045646 [label="",color="4",fontcolor="4"];
-9152277194294045646 [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"exit\")\n/\\ turn = 1"];
6211392433518555324 -> 6211392433518555324 [style="dashed"];
3923823433829631963 -> 4069903303166039434 [label="",color="4",fontcolor="4"];
3923823433829631963 -> 3923823433829631963 [style="dashed"];
897235516867550670 -> -2015577958311089194 [label="",color="4",fontcolor="4"];
-2015577958311089194 [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")\n/\\ turn = 1"];
897235516867550670 -> 897235516867550670 [style="dashed"];
4069903303166039434 -> 6147128843187323560 [label="",color="5",fontcolor="5"];
4069903303166039434 -> 4069903303166039434 [style="dashed"];
-9152277194294045646 -> -2015577958311089194 [label="",color="2",fontcolor="2"];
-9152277194294045646 -> -400635202659742381 [label="",color="5",fontcolor="5"];
-9152277194294045646 -> -9152277194294045646 [style="dashed"];
-2015577958311089194 -> -475001133580855070 [label="",color="5",fontcolor="5"];
-2015577958311089194 -> -2015577958311089194 [style="dashed"];
{rank = same; -1182823203390725160;-400635202659742381;}
{rank = same; 4659978677738564643;-1401437471233001879;6147128843187323560;-475001133580855070;}
{rank = same; 6030106734495858927;6211392433518555324;5240454219582294627;5064951816826678884;}
{rank = same; 3923823433829631963;7049503415477998762;897235516867550670;-9152277194294045646;}
{rank = same; -2015577958311089194;4069903303166039434;}
-2304256186017901240 [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")\n/\\ turn = 0",style = filled]
3063590532813598594 [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")\n/\\ turn = 1",style = filled]
-2304256186017901240 -> 4021501492038283011 [label="",color="2",fontcolor="2"];
4021501492038283011 [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")\n/\\ turn = 0"];
-2304256186017901240 -> -4661709328420890533 [label="",color="2",fontcolor="2"];
-4661709328420890533 [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")\n/\\ turn = 0"];
-2304256186017901240 -> -2304256186017901240 [style="dashed"];
3063590532813598594 -> -194057057360964151 [label="",color="2",fontcolor="2"];
-194057057360964151 [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")\n/\\ turn = 1"];
3063590532813598594 -> 8489255053443179153 [label="",color="2",fontcolor="2"];
8489255053443179153 [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")\n/\\ turn = 1"];
3063590532813598594 -> 3063590532813598594 [style="dashed"];
4021501492038283011 -> 543325479923207427 [label="",color="3",fontcolor="3"];
543325479923207427 [label="/\\ pc = (0 :> \"cs\" @@ 1 :> \"ncs\")\n/\\ turn = 0"];
4021501492038283011 -> 244470699041366076 [label="",color="2",fontcolor="2"];
244470699041366076 [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")\n/\\ turn = 0"];
4021501492038283011 -> 4021501492038283011 [style="dashed"];
-4661709328420890533 -> 244470699041366076 [label="",color="2",fontcolor="2"];
-4661709328420890533 -> -4661709328420890533 [style="dashed"];
-194057057360964151 -> -3898669630605452554 [label="",color="2",fontcolor="2"];
-3898669630605452554 [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")\n/\\ turn = 1"];
8489255053443179153 -> -3898669630605452554 [label="",color="2",fontcolor="2"];
-194057057360964151 -> -194057057360964151 [style="dashed"];
8489255053443179153 -> 6208733498515523769 [label="",color="3",fontcolor="3"];
6208733498515523769 [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")\n/\\ turn = 1"];
8489255053443179153 -> 8489255053443179153 [style="dashed"];
543325479923207427 -> -6395493111282828260 [label="",color="4",fontcolor="4"];
-6395493111282828260 [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"ncs\")\n/\\ turn = 0"];
543325479923207427 -> 1580961522298426183 [label="",color="2",fontcolor="2"];
1580961522298426183 [label="/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")\n/\\ turn = 0"];
543325479923207427 -> 543325479923207427 [style="dashed"];
244470699041366076 -> 1580961522298426183 [label="",color="3",fontcolor="3"];
244470699041366076 -> 244470699041366076 [style="dashed"];
-3898669630605452554 -> 5921214264002221941 [label="",color="3",fontcolor="3"];
5921214264002221941 [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")\n/\\ turn = 1"];
-3898669630605452554 -> -3898669630605452554 [style="dashed"];
6208733498515523769 -> 5921214264002221941 [label="",color="2",fontcolor="2"];
6208733498515523769 -> -8187951950540390906 [label="",color="4",fontcolor="4"];
-8187951950540390906 [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"exit\")\n/\\ turn = 1"];
6208733498515523769 -> 6208733498515523769 [style="dashed"];
-6395493111282828260 -> 3063590532813598594 [label="",color="5",fontcolor="5"];
-6395493111282828260 -> 8639444591122381034 [label="",color="2",fontcolor="2"];
8639444591122381034 [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")\n/\\ turn = 0"];
-6395493111282828260 -> -6395493111282828260 [style="dashed"];
1580961522298426183 -> 8639444591122381034 [label="",color="4",fontcolor="4"];
5921214264002221941 -> -8265530133940623444 [label="",color="4",fontcolor="4"];
-8265530133940623444 [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")\n/\\ turn = 1"];
1580961522298426183 -> 1580961522298426183 [style="dashed"];
5921214264002221941 -> 5921214264002221941 [style="dashed"];
-8187951950540390906 -> -8265530133940623444 [label="",color="2",fontcolor="2"];
-8187951950540390906 -> -2304256186017901240 [label="",color="5",fontcolor="5"];
8639444591122381034 -> 8489255053443179153 [label="",color="5",fontcolor="5"];
-8187951950540390906 -> -8187951950540390906 [style="dashed"];
8639444591122381034 -> 8639444591122381034 [style="dashed"];
-8265530133940623444 -> 4021501492038283011 [label="",color="5",fontcolor="5"];
-8265530133940623444 -> -8265530133940623444 [style="dashed"];
{rank = same; -2304256186017901240;3063590532813598594;}
{rank = same; -194057057360964151;4021501492038283011;8489255053443179153;-4661709328420890533;}
{rank = same; 543325479923207427;-3898669630605452554;244470699041366076;6208733498515523769;}
{rank = same; -6395493111282828260;5921214264002221941;1580961522298426183;-8187951950540390906;}
{rank = same; -8265530133940623444;8639444591122381034;}
}
subgraph cluster_legend {graph[style=bold];label = "Next State Actions" style="solid"
node [ labeljust="l",colorscheme="paired12",style=filled,shape=record ]
......
......@@ -2,421 +2,240 @@ digraph DiskGraph {
nodesep=0.35;
subgraph cluster_graph {
color="white";
"-400635202659742381.1" [style = filled] [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#-400635202659742381.1#"]
"-1182823203390725160.1" [style = filled] [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")\n/\\ turn = 1
#-1182823203390725160.1#"]
"-400635202659742381.1" -> "-475001133580855070.1" [label="[t]"];
"-475001133580855070.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#-475001133580855070.1#"];
"-400635202659742381.1" -> "4659978677738564643.1" [label="[t]"];
"4659978677738564643.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")\n/\\ turn = 0
#4659978677738564643.1#"];
"-400635202659742381.1" -> "-400635202659742381.1" [label="[f]"];
"-400635202659742381.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#-400635202659742381.1#"];
"-1182823203390725160.1" -> "6147128843187323560.1" [label="[t]"];
"6147128843187323560.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")\n/\\ turn = 1
#6147128843187323560.1#"];
"-1182823203390725160.1" -> "-1401437471233001879.1" [label="[t]"];
"-1401437471233001879.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")\n/\\ turn = 1
#-1401437471233001879.1#"];
"-1182823203390725160.1" -> "-1182823203390725160.1" [label="[f]"];
"-1182823203390725160.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")\n/\\ turn = 1
#-1182823203390725160.1#"];
"-475001133580855070.1" -> "-475001133580855070.1" [label="[f]"];
"-475001133580855070.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#-475001133580855070.1#"];
"-475001133580855070.1" -> "5240454219582294627.1" [label="[t]"];
"5240454219582294627.1" [label="/\\ pc = (0 :> \"cs\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#5240454219582294627.1#"];
"-475001133580855070.1" -> "5064951816826678884.1" [label="[t]"];
"5064951816826678884.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")\n/\\ turn = 0
#5064951816826678884.1#"];
"-1401437471233001879.1" -> "-1401437471233001879.1" [label="[f]"];
"-1401437471233001879.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")\n/\\ turn = 1
#-1401437471233001879.1#"];
"-1401437471233001879.1" -> "6030106734495858927.1" [label="[t]"];
"6030106734495858927.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")\n/\\ turn = 1
#6030106734495858927.1#"];
"4659978677738564643.1" -> "4659978677738564643.1" [label="[f]"];
"4659978677738564643.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")\n/\\ turn = 0
#4659978677738564643.1#"];
"4659978677738564643.1" -> "5064951816826678884.1" [label="[t]"];
"5064951816826678884.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")\n/\\ turn = 0
#5064951816826678884.1#"];
"6147128843187323560.1" -> "6147128843187323560.1" [label="[f]"];
"6147128843187323560.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")\n/\\ turn = 1
#6147128843187323560.1#"];
"6147128843187323560.1" -> "6211392433518555324.0" [label="[t]"];
"6211392433518555324.0" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")\n/\\ turn = 1
#6211392433518555324.0#"];
"6147128843187323560.1" -> "6211392433518555324.1" [label="[t]"];
"6211392433518555324.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")\n/\\ turn = 1
#6211392433518555324.1#"];
"6147128843187323560.1" -> "6030106734495858927.1" [label="[t]"];
"6030106734495858927.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")\n/\\ turn = 1
#6030106734495858927.1#"];
"5240454219582294627.1" -> "5240454219582294627.1" [label="[f]"];
"5240454219582294627.1" [label="/\\ pc = (0 :> \"cs\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#5240454219582294627.1#"];
"5240454219582294627.1" -> "7049503415477998762.1" [label="[t]"];
"7049503415477998762.1" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#7049503415477998762.1#"];
"5240454219582294627.1" -> "3923823433829631963.1" [label="[t]"];
"3923823433829631963.1" [label="/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")\n/\\ turn = 0
#3923823433829631963.1#"];
"5064951816826678884.1" -> "5064951816826678884.1" [label="[f]"];
"5064951816826678884.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")\n/\\ turn = 0
#5064951816826678884.1#"];
"5064951816826678884.1" -> "3923823433829631963.1" [label="[t]"];
"3923823433829631963.1" [label="/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")\n/\\ turn = 0
#3923823433829631963.1#"];
"6030106734495858927.1" -> "897235516867550670.0" [label="[t]"];
"897235516867550670.0" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")\n/\\ turn = 1
#897235516867550670.0#"];
"6030106734495858927.1" -> "897235516867550670.1" [label="[t]"];
"897235516867550670.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")\n/\\ turn = 1
#897235516867550670.1#"];
"6030106734495858927.1" -> "6030106734495858927.1" [label="[f]"];
"6030106734495858927.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")\n/\\ turn = 1
#6030106734495858927.1#"];
"7049503415477998762.1" -> "-1182823203390725160.1" [label="[t]"];
"-1182823203390725160.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")\n/\\ turn = 1
#-1182823203390725160.1#"];
"7049503415477998762.1" -> "4069903303166039434.1" [label="[t]"];
"4069903303166039434.1" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")\n/\\ turn = 0
#4069903303166039434.1#"];
"7049503415477998762.1" -> "7049503415477998762.1" [label="[f]"];
"7049503415477998762.1" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#7049503415477998762.1#"];
"6211392433518555324.0" -> "6211392433518555324.2" [label="[f]"];
"6211392433518555324.2" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")\n/\\ turn = 1
#6211392433518555324.2#"];
"6211392433518555324.2" -> "897235516867550670.2" [style="dotted"] [label="[t]"];
"6211392433518555324.0" -> "897235516867550670.2" [label="[t]"];
"897235516867550670.2" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")\n/\\ turn = 1
#897235516867550670.2#"];
"6211392433518555324.1" -> "-9152277194294045646.1" [label="[t]"];
"-9152277194294045646.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"exit\")\n/\\ turn = 1
#-9152277194294045646.1#"];
"6211392433518555324.1" -> "6211392433518555324.0" [label="[f]"];
"6211392433518555324.0" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")\n/\\ turn = 1
#6211392433518555324.0#"];
"6211392433518555324.1" -> "6211392433518555324.1" [label="[f]"];
"6211392433518555324.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")\n/\\ turn = 1
#6211392433518555324.1#"];
"6211392433518555324.1" -> "897235516867550670.0" [label="[t]"];
"897235516867550670.0" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")\n/\\ turn = 1
#897235516867550670.0#"];
"6211392433518555324.1" -> "897235516867550670.1" [label="[t]"];
"897235516867550670.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")\n/\\ turn = 1
#897235516867550670.1#"];
"3923823433829631963.1" -> "4069903303166039434.1" [label="[t]"];
"4069903303166039434.1" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")\n/\\ turn = 0
#4069903303166039434.1#"];
"3923823433829631963.1" -> "3923823433829631963.1" [label="[f]"];
"3923823433829631963.1" [label="/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")\n/\\ turn = 0
#3923823433829631963.1#"];
"897235516867550670.0" -> "897235516867550670.2" [label="[f]"];
"897235516867550670.2" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")\n/\\ turn = 1
#897235516867550670.2#"];
"897235516867550670.1" -> "-2015577958311089194.1" [label="[t]"];
"-2015577958311089194.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")\n/\\ turn = 1
#-2015577958311089194.1#"];
"897235516867550670.1" -> "897235516867550670.0" [label="[f]"];
"897235516867550670.0" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")\n/\\ turn = 1
#897235516867550670.0#"];
"897235516867550670.1" -> "897235516867550670.1" [label="[f]"];
"897235516867550670.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")\n/\\ turn = 1
#897235516867550670.1#"];
"897235516867550670.2" -> "897235516867550670.2" [label="[f]"];
"897235516867550670.2" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")\n/\\ turn = 1
#897235516867550670.2#"];
"4069903303166039434.1" -> "6147128843187323560.1" [label="[t]"];
"6147128843187323560.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")\n/\\ turn = 1
#6147128843187323560.1#"];
"4069903303166039434.1" -> "4069903303166039434.1" [label="[f]"];
"4069903303166039434.1" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")\n/\\ turn = 0
#4069903303166039434.1#"];
"-9152277194294045646.1" -> "-9152277194294045646.1" [label="[f]"];
"-9152277194294045646.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"exit\")\n/\\ turn = 1
#-9152277194294045646.1#"];
"-9152277194294045646.1" -> "-400635202659742381.1" [label="[t]"];
"-400635202659742381.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#-400635202659742381.1#"];
"-9152277194294045646.1" -> "-2015577958311089194.1" [label="[t]"];
"-2015577958311089194.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")\n/\\ turn = 1
#-2015577958311089194.1#"];
"-2015577958311089194.1" -> "-475001133580855070.1" [label="[t]"];
"-475001133580855070.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#-475001133580855070.1#"];
"-2015577958311089194.1" -> "-2015577958311089194.1" [label="[f]"];
"-2015577958311089194.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")\n/\\ turn = 1
#-2015577958311089194.1#"];
"-2304256186017901240.1" [style = filled] [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#-2304256186017901240.1#"]
"3063590532813598594.1" [style = filled] [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")\n/\\ turn = 1
#3063590532813598594.1#"]
"-2304256186017901240.1" -> "4021501492038283011.1" [label="[t]"];
"4021501492038283011.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#4021501492038283011.1#"];
"-2304256186017901240.1" -> "-2304256186017901240.1" [label="[f]"];
"-2304256186017901240.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#-2304256186017901240.1#"];
"-2304256186017901240.1" -> "-4661709328420890533.1" [label="[t]"];
"-4661709328420890533.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")\n/\\ turn = 0
#-4661709328420890533.1#"];
"3063590532813598594.1" -> "8489255053443179153.1" [label="[t]"];
"8489255053443179153.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")\n/\\ turn = 1
#8489255053443179153.1#"];
"3063590532813598594.1" -> "3063590532813598594.1" [label="[f]"];
"3063590532813598594.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")\n/\\ turn = 1
#3063590532813598594.1#"];
"3063590532813598594.1" -> "-194057057360964151.1" [label="[t]"];
"-194057057360964151.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")\n/\\ turn = 1
#-194057057360964151.1#"];
"-4661709328420890533.1" -> "-4661709328420890533.1" [label="[f]"];
"-4661709328420890533.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")\n/\\ turn = 0
#-4661709328420890533.1#"];
"-4661709328420890533.1" -> "244470699041366076.1" [label="[t]"];
"244470699041366076.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")\n/\\ turn = 0
#244470699041366076.1#"];
"4021501492038283011.1" -> "543325479923207427.1" [label="[t]"];
"543325479923207427.1" [label="/\\ pc = (0 :> \"cs\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#543325479923207427.1#"];
"4021501492038283011.1" -> "4021501492038283011.1" [label="[f]"];
"4021501492038283011.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#4021501492038283011.1#"];
"4021501492038283011.1" -> "244470699041366076.1" [label="[t]"];
"244470699041366076.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")\n/\\ turn = 0
#244470699041366076.1#"];
"-194057057360964151.1" -> "-3898669630605452554.1" [label="[t]"];
"-3898669630605452554.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")\n/\\ turn = 1
#-3898669630605452554.1#"];
"-194057057360964151.1" -> "-194057057360964151.1" [label="[f]"];
"-194057057360964151.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")\n/\\ turn = 1
#-194057057360964151.1#"];
"8489255053443179153.1" -> "8489255053443179153.1" [label="[f]"];
"8489255053443179153.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")\n/\\ turn = 1
#8489255053443179153.1#"];
"8489255053443179153.1" -> "-3898669630605452554.1" [label="[t]"];
"-3898669630605452554.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")\n/\\ turn = 1
#-3898669630605452554.1#"];
"8489255053443179153.1" -> "6208733498515523769.0" [label="[t]"];
"6208733498515523769.0" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")\n/\\ turn = 1
#6208733498515523769.0#"];
"8489255053443179153.1" -> "6208733498515523769.1" [label="[t]"];
"6208733498515523769.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")\n/\\ turn = 1
#6208733498515523769.1#"];
"543325479923207427.1" -> "543325479923207427.1" [label="[f]"];
"543325479923207427.1" [label="/\\ pc = (0 :> \"cs\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#543325479923207427.1#"];
"543325479923207427.1" -> "1580961522298426183.1" [label="[t]"];
"1580961522298426183.1" [label="/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")\n/\\ turn = 0
#1580961522298426183.1#"];
"543325479923207427.1" -> "-6395493111282828260.1" [label="[t]"];
"-6395493111282828260.1" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#-6395493111282828260.1#"];
"244470699041366076.1" -> "1580961522298426183.1" [label="[t]"];
"1580961522298426183.1" [label="/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")\n/\\ turn = 0
#1580961522298426183.1#"];
"244470699041366076.1" -> "244470699041366076.1" [label="[f]"];
"244470699041366076.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")\n/\\ turn = 0
#244470699041366076.1#"];
"-3898669630605452554.1" -> "5921214264002221941.0" [label="[t]"];
"5921214264002221941.0" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")\n/\\ turn = 1
#5921214264002221941.0#"];
"-3898669630605452554.1" -> "5921214264002221941.1" [label="[t]"];
"5921214264002221941.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")\n/\\ turn = 1
#5921214264002221941.1#"];
"-3898669630605452554.1" -> "-3898669630605452554.1" [label="[f]"];
"-3898669630605452554.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")\n/\\ turn = 1
#-3898669630605452554.1#"];
"6208733498515523769.0" -> "5921214264002221941.2" [label="[t]"];
"5921214264002221941.2" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")\n/\\ turn = 1
#5921214264002221941.2#"];
"6208733498515523769.0" -> "6208733498515523769.2" [label="[f]"];
"6208733498515523769.2" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")\n/\\ turn = 1
#6208733498515523769.2#"];
"6208733498515523769.2" -> "5921214264002221941.2" [style="dotted"] [label="[t]"];
"6208733498515523769.1" -> "5921214264002221941.0" [label="[t]"];
"5921214264002221941.0" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")\n/\\ turn = 1
#5921214264002221941.0#"];
"6208733498515523769.1" -> "5921214264002221941.1" [label="[t]"];
"5921214264002221941.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")\n/\\ turn = 1
#5921214264002221941.1#"];
"6208733498515523769.1" -> "-8187951950540390906.1" [label="[t]"];
"-8187951950540390906.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"exit\")\n/\\ turn = 1
#-8187951950540390906.1#"];
"6208733498515523769.1" -> "6208733498515523769.0" [label="[f]"];
"6208733498515523769.0" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")\n/\\ turn = 1
#6208733498515523769.0#"];
"6208733498515523769.1" -> "6208733498515523769.1" [label="[f]"];
"6208733498515523769.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")\n/\\ turn = 1
#6208733498515523769.1#"];
"-6395493111282828260.1" -> "3063590532813598594.1" [label="[t]"];
"3063590532813598594.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")\n/\\ turn = 1
#3063590532813598594.1#"];
"-6395493111282828260.1" -> "8639444591122381034.1" [label="[t]"];
"8639444591122381034.1" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")\n/\\ turn = 0
#8639444591122381034.1#"];
"-6395493111282828260.1" -> "-6395493111282828260.1" [label="[f]"];
"-6395493111282828260.1" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#-6395493111282828260.1#"];
"5921214264002221941.0" -> "5921214264002221941.2" [label="[f]"];
"5921214264002221941.2" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")\n/\\ turn = 1
#5921214264002221941.2#"];
"5921214264002221941.1" -> "5921214264002221941.0" [label="[f]"];
"5921214264002221941.0" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")\n/\\ turn = 1
#5921214264002221941.0#"];
"5921214264002221941.1" -> "5921214264002221941.1" [label="[f]"];
"5921214264002221941.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")\n/\\ turn = 1
#5921214264002221941.1#"];
"5921214264002221941.1" -> "-8265530133940623444.1" [label="[t]"];
"-8265530133940623444.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")\n/\\ turn = 1
#-8265530133940623444.1#"];
"5921214264002221941.2" -> "5921214264002221941.2" [label="[f]"];
"5921214264002221941.2" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")\n/\\ turn = 1
#5921214264002221941.2#"];
"1580961522298426183.1" -> "1580961522298426183.1" [label="[f]"];
"1580961522298426183.1" [label="/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")\n/\\ turn = 0
#1580961522298426183.1#"];
"1580961522298426183.1" -> "8639444591122381034.1" [label="[t]"];
"8639444591122381034.1" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")\n/\\ turn = 0
#8639444591122381034.1#"];
"8639444591122381034.1" -> "8489255053443179153.1" [label="[t]"];
"8489255053443179153.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")\n/\\ turn = 1
#8489255053443179153.1#"];
"8639444591122381034.1" -> "8639444591122381034.1" [label="[f]"];
"8639444591122381034.1" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")\n/\\ turn = 0
#8639444591122381034.1#"];
"-8187951950540390906.1" -> "-8187951950540390906.1" [label="[f]"];
"-8187951950540390906.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"exit\")\n/\\ turn = 1
#-8187951950540390906.1#"];
"-8187951950540390906.1" -> "-2304256186017901240.1" [label="[t]"];
"-2304256186017901240.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#-2304256186017901240.1#"];
"-8187951950540390906.1" -> "-8265530133940623444.1" [label="[t]"];
"-8265530133940623444.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")\n/\\ turn = 1
#-8265530133940623444.1#"];
"-8265530133940623444.1" -> "4021501492038283011.1" [label="[t]"];
"4021501492038283011.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#4021501492038283011.1#"];
"-8265530133940623444.1" -> "-8265530133940623444.1" [label="[f]"];
"-8265530133940623444.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")\n/\\ turn = 1
#-8265530133940623444.1#"];
}
}958311089194.1#"];
}3598594.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")\n/\\ turn = 1
#3063590532813598594.1#"];
"-6395493111282828260.1" -> "8639444591122381034.0" [label="[t]"];
"8639444591122381034.0" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")\n/\\ turn = 0
#8639444591122381034.0#"];
"-6395493111282828260.1" -> "8639444591122381034.1" [label="[t]"];
"8639444591122381034.1" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")\n/\\ turn = 0
#8639444591122381034.1#"];
"-6395493111282828260.1" -> "-6395493111282828260.1" [label="[f]"];
"-6395493111282828260.1" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#-6395493111282828260.1#"];
"5921214264002221941.1" -> "5921214264002221941.1" [label="[f]"];
"5921214264002221941.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")\n/\\ turn = 1
#5921214264002221941.1#"];
"5921214264002221941.1" -> "-8265530133940623444.1" [label="[t]"];
"-8265530133940623444.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")\n/\\ turn = 1
#-8265530133940623444.1#"];
"1580961522298426183.0" -> "1580961522298426183.2" [label="[f]"];
"1580961522298426183.2" [label="/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")\n/\\ turn = 0
#1580961522298426183.2#"];
"1580961522298426183.0" -> "8639444591122381034.2" [label="[t]"];
"8639444591122381034.2" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")\n/\\ turn = 0
#8639444591122381034.2#"];
"1580961522298426183.1" -> "1580961522298426183.0" [label="[f]"];
"1580961522298426183.0" [label="/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")\n/\\ turn = 0
#1580961522298426183.0#"];
"1580961522298426183.1" -> "1580961522298426183.1" [label="[f]"];
"1580961522298426183.1" [label="/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")\n/\\ turn = 0
#1580961522298426183.1#"];
"1580961522298426183.1" -> "8639444591122381034.0" [label="[t]"];
"8639444591122381034.0" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")\n/\\ turn = 0
#8639444591122381034.0#"];
"1580961522298426183.1" -> "8639444591122381034.1" [label="[t]"];
"8639444591122381034.1" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")\n/\\ turn = 0
#8639444591122381034.1#"];
"1580961522298426183.2" -> "1580961522298426183.2" [label="[f]"];
"1580961522298426183.2" [label="/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")\n/\\ turn = 0
#1580961522298426183.2#"];
"1580961522298426183.2" -> "8639444591122381034.2" [label="[t]"];
"8639444591122381034.2" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")\n/\\ turn = 0
#8639444591122381034.2#"];
"8639444591122381034.0" -> "8489255053443179153.2" [label="[t]"];
"8489255053443179153.2" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")\n/\\ turn = 1
#8489255053443179153.2#"];
"8639444591122381034.0" -> "8639444591122381034.2" [label="[f]"];
"8639444591122381034.2" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")\n/\\ turn = 0
#8639444591122381034.2#"];
"8639444591122381034.1" -> "8489255053443179153.0" [label="[t]"];
"8489255053443179153.0" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")\n/\\ turn = 1
#8489255053443179153.0#"];
"8639444591122381034.1" -> "8489255053443179153.1" [label="[t]"];
"8489255053443179153.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")\n/\\ turn = 1
#8489255053443179153.1#"];
"8639444591122381034.1" -> "8639444591122381034.0" [label="[f]"];
"8639444591122381034.0" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")\n/\\ turn = 0
#8639444591122381034.0#"];
"8639444591122381034.1" -> "8639444591122381034.1" [label="[f]"];
"8639444591122381034.1" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")\n/\\ turn = 0
#8639444591122381034.1#"];
"8639444591122381034.2" -> "8489255053443179153.2" [label="[t]"];
"8489255053443179153.2" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")\n/\\ turn = 1
#8489255053443179153.2#"];
"8639444591122381034.2" -> "8639444591122381034.2" [label="[f]"];
"8639444591122381034.2" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")\n/\\ turn = 0
#8639444591122381034.2#"];
"-8187951950540390906.1" -> "-8187951950540390906.1" [label="[f]"];
"-8187951950540390906.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"exit\")\n/\\ turn = 1
#-8187951950540390906.1#"];
"-8187951950540390906.1" -> "-2304256186017901240.1" [label="[t]"];
"-2304256186017901240.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#-2304256186017901240.1#"];
"-8187951950540390906.1" -> "-8265530133940623444.1" [label="[t]"];
"-8265530133940623444.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")\n/\\ turn = 1
#-8265530133940623444.1#"];
"-8265530133940623444.1" -> "4021501492038283011.1" [label="[t]"];
"4021501492038283011.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#4021501492038283011.1#"];
"-8265530133940623444.1" -> "-8265530133940623444.1" [label="[f]"];
"-8265530133940623444.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")\n/\\ turn = 1
#-8265530133940623444.1#"];
}
}6678884.1#"];
"6147128843187323560.2" -> "6147128843187323560.2" [label="[f]"];
"6147128843187323560.2" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")\n/\\ turn = 1
#6147128843187323560.2#"];
"6147128843187323560.2" -> "6030106734495858927.2" [label="[t]"];
"6030106734495858927.2" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")\n/\\ turn = 1
#6030106734495858927.2#"];
"6147128843187323560.0" -> "6147128843187323560.2" [label="[f]"];
"6147128843187323560.2" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")\n/\\ turn = 1
#6147128843187323560.2#"];
"6147128843187323560.0" -> "6030106734495858927.2" [label="[t]"];
"6030106734495858927.2" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")\n/\\ turn = 1
#6030106734495858927.2#"];
"6147128843187323560.1" -> "6147128843187323560.0" [label="[f]"];
"6147128843187323560.0" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")\n/\\ turn = 1
#6147128843187323560.0#"];
"6147128843187323560.1" -> "6147128843187323560.1" [label="[f]"];
"6147128843187323560.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")\n/\\ turn = 1
#6147128843187323560.1#"];
"6147128843187323560.1" -> "6211392433518555324.1" [label="[t]"];
"6211392433518555324.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")\n/\\ turn = 1
#6211392433518555324.1#"];
"6147128843187323560.1" -> "6030106734495858927.0" [label="[t]"];
"6030106734495858927.0" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")\n/\\ turn = 1
#6030106734495858927.0#"];
"6147128843187323560.1" -> "6030106734495858927.1" [label="[t]"];
"6030106734495858927.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")\n/\\ turn = 1
#6030106734495858927.1#"];
"5240454219582294627.2" -> "5240454219582294627.2" [label="[f]"];
"5240454219582294627.2" [label="/\\ pc = (0 :> \"cs\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#5240454219582294627.2#"];
"5240454219582294627.2" -> "7049503415477998762.2" [label="[t]"];
"7049503415477998762.2" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#7049503415477998762.2#"];
"5240454219582294627.2" -> "3923823433829631963.2" [label="[t]"];
"3923823433829631963.2" [label="/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")\n/\\ turn = 0
#3923823433829631963.2#"];
"5240454219582294627.0" -> "5240454219582294627.2" [label="[f]"];
"5240454219582294627.2" [label="/\\ pc = (0 :> \"cs\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#5240454219582294627.2#"];
"5240454219582294627.0" -> "7049503415477998762.2" [label="[t]"];
"7049503415477998762.2" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#7049503415477998762.2#"];
"5240454219582294627.0" -> "3923823433829631963.2" [label="[t]"];
"3923823433829631963.2" [label="/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")\n/\\ turn = 0
#3923823433829631963.2#"];
"5240454219582294627.1" -> "5240454219582294627.0" [label="[f]"];
"5240454219582294627.0" [label="/\\ pc = (0 :> \"cs\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#5240454219582294627.0#"];
"5240454219582294627.1" -> "5240454219582294627.1" [label="[f]"];
"5240454219582294627.1" [label="/\\ pc = (0 :> \"cs\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#5240454219582294627.1#"];
"5240454219582294627.1" -> "7049503415477998762.0" [label="[t]"];
"7049503415477998762.0" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#7049503415477998762.0#"];
"5240454219582294627.1" -> "7049503415477998762.1" [label="[t]"];
"7049503415477998762.1" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#7049503415477998762.1#"];
"5240454219582294627.1" -> "3923823433829631963.0" [label="[t]"];
"3923823433829631963.0" [label="/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")\n/\\ turn = 0
#3923823433829631963.0#"];
"5240454219582294627.1" -> "3923823433829631963.1" [label="[t]"];
"3923823433829631963.1" [label="/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")\n/\\ turn = 0
#3923823433829631963.1#"];
"5064951816826678884.2" -> "5064951816826678884.2" [label="[f]"];
"5064951816826678884.2" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")\n/\\ turn = 0
#5064951816826678884.2#"];
"5064951816826678884.2" -> "3923823433829631963.2" [label="[t]"];
"3923823433829631963.2" [label="/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")\n/\\ turn = 0
#3923823433829631963.2#"];
"5064951816826678884.0" -> "5064951816826678884.2" [label="[f]"];
"5064951816826678884.2" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")\n/\\ turn = 0
#5064951816826678884.2#"];
"5064951816826678884.0" -> "3923823433829631963.2" [label="[t]"];
"3923823433829631963.2" [label="/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")\n/\\ turn = 0
#3923823433829631963.2#"];
"5064951816826678884.1" -> "5064951816826678884.0" [label="[f]"];
"5064951816826678884.0" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")\n/\\ turn = 0
#5064951816826678884.0#"];
"5064951816826678884.1" -> "5064951816826678884.1" [label="[f]"];
"5064951816826678884.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")\n/\\ turn = 0
#5064951816826678884.1#"];
"5064951816826678884.1" -> "3923823433829631963.0" [label="[t]"];
"3923823433829631963.0" [label="/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")\n/\\ turn = 0
#3923823433829631963.0#"];
"5064951816826678884.1" -> "3923823433829631963.1" [label="[t]"];
"3923823433829631963.1" [label="/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")\n/\\ turn = 0
#3923823433829631963.1#"];
"6030106734495858927.2" -> "6030106734495858927.2" [label="[f]"];
"6030106734495858927.2" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")\n/\\ turn = 1
#6030106734495858927.2#"];
"6030106734495858927.0" -> "6030106734495858927.2" [label="[f]"];
"6030106734495858927.2" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")\n/\\ turn = 1
#6030106734495858927.2#"];
"6030106734495858927.1" -> "897235516867550670.1" [label="[t]"];
"897235516867550670.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")\n/\\ turn = 1
#897235516867550670.1#"];
"6030106734495858927.1" -> "6030106734495858927.0" [label="[f]"];
"6030106734495858927.0" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")\n/\\ turn = 1
#6030106734495858927.0#"];
"6030106734495858927.1" -> "6030106734495858927.1" [label="[f]"];
"6030106734495858927.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")\n/\\ turn = 1
#6030106734495858927.1#"];
"7049503415477998762.2" -> "-1182823203390725160.2" [label="[t]"];
"-1182823203390725160.2" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")\n/\\ turn = 1
#-1182823203390725160.2#"];
"7049503415477998762.2" -> "4069903303166039434.2" [label="[t]"];
"4069903303166039434.2" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")\n/\\ turn = 0
#4069903303166039434.2#"];
"7049503415477998762.2" -> "7049503415477998762.2" [label="[f]"];
"7049503415477998762.2" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#7049503415477998762.2#"];
"7049503415477998762.0" -> "-1182823203390725160.2" [label="[t]"];
"-1182823203390725160.2" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")\n/\\ turn = 1
#-1182823203390725160.2#"];
"7049503415477998762.0" -> "4069903303166039434.2" [label="[t]"];
"4069903303166039434.2" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")\n/\\ turn = 0
#4069903303166039434.2#"];
"7049503415477998762.0" -> "7049503415477998762.2" [label="[f]"];
"7049503415477998762.2" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#7049503415477998762.2#"];
"7049503415477998762.1" -> "-1182823203390725160.0" [label="[t]"];
"-1182823203390725160.0" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")\n/\\ turn = 1
#-1182823203390725160.0#"];
"7049503415477998762.1" -> "-1182823203390725160.1" [label="[t]"];
"-1182823203390725160.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")\n/\\ turn = 1
#-1182823203390725160.1#"];
"7049503415477998762.1" -> "4069903303166039434.0" [label="[t]"];
"4069903303166039434.0" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")\n/\\ turn = 0
#4069903303166039434.0#"];
"7049503415477998762.1" -> "4069903303166039434.1" [label="[t]"];
"4069903303166039434.1" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")\n/\\ turn = 0
#4069903303166039434.1#"];
"7049503415477998762.1" -> "7049503415477998762.0" [label="[f]"];
"7049503415477998762.0" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#7049503415477998762.0#"];
"7049503415477998762.1" -> "7049503415477998762.1" [label="[f]"];
"7049503415477998762.1" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#7049503415477998762.1#"];
"6211392433518555324.1" -> "-9152277194294045646.0" [label="[t]"];
"-9152277194294045646.0" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"exit\")\n/\\ turn = 1
#-9152277194294045646.0#"];
"6211392433518555324.1" -> "-9152277194294045646.1" [label="[t]"];
"-9152277194294045646.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"exit\")\n/\\ turn = 1
#-9152277194294045646.1#"];
"6211392433518555324.1" -> "6211392433518555324.1" [label="[f]"];
"6211392433518555324.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")\n/\\ turn = 1
#6211392433518555324.1#"];
"6211392433518555324.1" -> "897235516867550670.1" [label="[t]"];
"897235516867550670.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")\n/\\ turn = 1
#897235516867550670.1#"];
"3923823433829631963.2" -> "4069903303166039434.2" [label="[t]"];
"4069903303166039434.2" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")\n/\\ turn = 0
#4069903303166039434.2#"];
"3923823433829631963.2" -> "3923823433829631963.2" [label="[f]"];
"3923823433829631963.2" [label="/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")\n/\\ turn = 0
#3923823433829631963.2#"];
"3923823433829631963.0" -> "4069903303166039434.2" [label="[t]"];
"4069903303166039434.2" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")\n/\\ turn = 0
#4069903303166039434.2#"];
"3923823433829631963.0" -> "3923823433829631963.2" [label="[f]"];
"3923823433829631963.2" [label="/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")\n/\\ turn = 0
#3923823433829631963.2#"];
"3923823433829631963.1" -> "4069903303166039434.0" [label="[t]"];
"4069903303166039434.0" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")\n/\\ turn = 0
#4069903303166039434.0#"];
"3923823433829631963.1" -> "4069903303166039434.1" [label="[t]"];
"4069903303166039434.1" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")\n/\\ turn = 0
#4069903303166039434.1#"];
"3923823433829631963.1" -> "3923823433829631963.0" [label="[f]"];
"3923823433829631963.0" [label="/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")\n/\\ turn = 0
#3923823433829631963.0#"];
"3923823433829631963.1" -> "3923823433829631963.1" [label="[f]"];
"3923823433829631963.1" [label="/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")\n/\\ turn = 0
#3923823433829631963.1#"];
"897235516867550670.1" -> "-2015577958311089194.0" [label="[t]"];
"-2015577958311089194.0" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")\n/\\ turn = 1
#-2015577958311089194.0#"];
"897235516867550670.1" -> "-2015577958311089194.1" [label="[t]"];
"-2015577958311089194.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")\n/\\ turn = 1
#-2015577958311089194.1#"];
"897235516867550670.1" -> "897235516867550670.1" [label="[f]"];
"897235516867550670.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")\n/\\ turn = 1
#897235516867550670.1#"];
"4069903303166039434.2" -> "6147128843187323560.2" [label="[t]"];
"6147128843187323560.2" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")\n/\\ turn = 1
#6147128843187323560.2#"];
"4069903303166039434.2" -> "4069903303166039434.2" [label="[f]"];
"4069903303166039434.2" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")\n/\\ turn = 0
#4069903303166039434.2#"];
"4069903303166039434.0" -> "6147128843187323560.2" [label="[t]"];
"6147128843187323560.2" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")\n/\\ turn = 1
#6147128843187323560.2#"];
"4069903303166039434.0" -> "4069903303166039434.2" [label="[f]"];
"4069903303166039434.2" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")\n/\\ turn = 0
#4069903303166039434.2#"];
"4069903303166039434.1" -> "6147128843187323560.0" [label="[t]"];
"6147128843187323560.0" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")\n/\\ turn = 1
#6147128843187323560.0#"];
"4069903303166039434.1" -> "6147128843187323560.1" [label="[t]"];
"6147128843187323560.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")\n/\\ turn = 1
#6147128843187323560.1#"];
"4069903303166039434.1" -> "4069903303166039434.0" [label="[f]"];
"4069903303166039434.0" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")\n/\\ turn = 0
#4069903303166039434.0#"];
"4069903303166039434.1" -> "4069903303166039434.1" [label="[f]"];
"4069903303166039434.1" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")\n/\\ turn = 0
#4069903303166039434.1#"];
"-9152277194294045646.0" -> "-9152277194294045646.2" [label="[f]"];
"-9152277194294045646.2" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"exit\")\n/\\ turn = 1
#-9152277194294045646.2#"];
"-9152277194294045646.2" -> "-2015577958311089194.2" [style="dotted"] [label="[t]"];
"-9152277194294045646.2" -> "-400635202659742381.2" [style="dotted"] [label="[t]"];
"-9152277194294045646.0" -> "-400635202659742381.2" [label="[t]"];
"-400635202659742381.2" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#-400635202659742381.2#"];
"-9152277194294045646.0" -> "-2015577958311089194.2" [label="[t]"];
"-2015577958311089194.2" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")\n/\\ turn = 1
#-2015577958311089194.2#"];
"-9152277194294045646.1" -> "-9152277194294045646.0" [label="[f]"];
"-9152277194294045646.0" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"exit\")\n/\\ turn = 1
#-9152277194294045646.0#"];
"-9152277194294045646.1" -> "-9152277194294045646.1" [label="[f]"];
"-9152277194294045646.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"exit\")\n/\\ turn = 1
#-9152277194294045646.1#"];
"-9152277194294045646.1" -> "-400635202659742381.0" [label="[t]"];
"-400635202659742381.0" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#-400635202659742381.0#"];
"-9152277194294045646.1" -> "-400635202659742381.1" [label="[t]"];
"-400635202659742381.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#-400635202659742381.1#"];
"-9152277194294045646.1" -> "-2015577958311089194.0" [label="[t]"];
"-2015577958311089194.0" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")\n/\\ turn = 1
#-2015577958311089194.0#"];
"-9152277194294045646.1" -> "-2015577958311089194.1" [label="[t]"];
"-2015577958311089194.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")\n/\\ turn = 1
#-2015577958311089194.1#"];
"-2015577958311089194.0" -> "-475001133580855070.2" [label="[t]"];
"-475001133580855070.2" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#-475001133580855070.2#"];
"-2015577958311089194.0" -> "-2015577958311089194.2" [label="[f]"];
"-2015577958311089194.2" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")\n/\\ turn = 1
#-2015577958311089194.2#"];
"-2015577958311089194.1" -> "-475001133580855070.0" [label="[t]"];
"-475001133580855070.0" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#-475001133580855070.0#"];
"-2015577958311089194.1" -> "-475001133580855070.1" [label="[t]"];
"-475001133580855070.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#-475001133580855070.1#"];
"-2015577958311089194.1" -> "-2015577958311089194.0" [label="[f]"];
"-2015577958311089194.0" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")\n/\\ turn = 1
#-2015577958311089194.0#"];
"-2015577958311089194.1" -> "-2015577958311089194.1" [label="[f]"];
"-2015577958311089194.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")\n/\\ turn = 1
#-2015577958311089194.1#"];
"-2015577958311089194.2" -> "-475001133580855070.2" [label="[t]"];
"-475001133580855070.2" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#-475001133580855070.2#"];
"-2015577958311089194.2" -> "-2015577958311089194.2" [label="[f]"];
"-2015577958311089194.2" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")\n/\\ turn = 1
#-2015577958311089194.2#"];
}33940623444.1#"];
}
}
\ No newline at end of file
......@@ -3,20 +3,27 @@
\* Procs is set of processes.
\* Every process is assumed to loop and enter into "cs" state on every interation.
\* States besides non-critical are represented as "non-cs".
\* Non-critical state is represented as "non-cs".
\* When process decides it want to enter into critical-section, it first goes into "csentry" state.
CONSTANT Procs
VARIABLES pc
TypeOK == pc \in [Procs -> {"non-cs", "cs"}]
TypeOK == pc \in [Procs -> {"non-cs", "csentry", "cs"}]
vars == <<pc>>
\* All processes start from non-critical section.
Init == pc \in [Procs -> {"non-cs"}]
\* WantCS(proc) is action when proc decides that it wants to enter into critical section.
WantCS(proc) ==
/\ pc[proc] = "non-cs"
/\ pc' = [pc EXCEPT ![proc] = "csentry"]
\* EnterCS(proc) is action when proc enters critical section.
EnterCS(proc) ==
/\ \A i \in Procs: pc[i] /= "cs"
/\ pc[proc] = "csentry"
/\ \A i \in Procs \ {proc} : pc[i] /= "cs"
/\ pc' = [pc EXCEPT ![proc] = "cs"]
\* ExitCS(proc) is action when proc leaves critical section.
......@@ -24,12 +31,13 @@ ExitCS(proc) ==
/\ pc[proc] = "cs"
/\ pc' = [pc EXCEPT ![proc] = "non-cs"]
Next == \E i \in Procs: EnterCS(i) \/ ExitCS(i)
Next == \E i \in Procs: WantCS(i) \/ EnterCS(i) \/ ExitCS(i)
Spec == /\ Init
/\ [][Next]_vars
/\ \A i \in Procs: ( \* fairness
\* not fair for WantCS - it can pause and even hang there
/\ SF_vars(EnterCS(i))
/\ SF_vars(ExitCS(i)))
......@@ -40,7 +48,7 @@ MutualExclusion == \A i,j \in Procs: (i /= j) => ~((pc[i] = "cs") /\ (pc[j] = "c
\* Liveness is temporal property indicating that every process has a chance to enter critical section and leaves it.
Liveness == \A i \in Procs:
/\ (pc[i] = "non-cs") ~> (pc[i] = "cs")
/\ (pc[i] = "csentry") ~> (pc[i] = "cs")
/\ (pc[i] = "cs") ~> (pc[i] = "non-cs")
......@@ -51,5 +59,5 @@ THEOREM Spec => Liveness
=============================================================================
\* Modification History
\* Last modified Wed Feb 09 17:36:37 MSK 2022 by kirr
\* Last modified Wed Feb 09 19:11:11 MSK 2022 by kirr
\* Created Wed Feb 09 13:11:29 MSK 2022 by kirr
\* CONSTANT definitions
CONSTANT
Procs <- const_1644418423653463000
\* SPECIFICATION definition
SPECIFICATION
Spec
\* INVARIANT definition
INVARIANT
inv_1644418423653464000
\* PROPERTY definition
PROPERTY
prop_1644418423653465000
prop_1644418423653466000
\* Generated on Wed Feb 09 17:53:43 MSK 2022
\ No newline at end of file
strict digraph DiskGraph {
edge [colorscheme="paired12"]
nodesep=0.35;
subgraph cluster_graph {
color="white";
1402084145941851076 [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")\n/\\ turn = 0",style = filled]
264913071721429937 [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")\n/\\ turn = 1",style = filled]
264913071721429937 -> 1441589058236749349 [label="",color="2",fontcolor="2"];
1441589058236749349 [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")\n/\\ turn = 1"];
1402084145941851076 -> 349469391966471760 [label="",color="2",fontcolor="2"];
349469391966471760 [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")\n/\\ turn = 0"];
264913071721429937 -> -6190723150750739455 [label="",color="2",fontcolor="2"];
-6190723150750739455 [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")\n/\\ turn = 1"];
1402084145941851076 -> -4985978420825095052 [label="",color="2",fontcolor="2"];
-4985978420825095052 [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")\n/\\ turn = 0"];
264913071721429937 -> 264913071721429937 [style="dashed"];
1402084145941851076 -> 1402084145941851076 [style="dashed"];
1441589058236749349 -> -4025760291280799090 [label="",color="2",fontcolor="2"];
-4025760291280799090 [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")\n/\\ turn = 1"];
349469391966471760 -> -5049627876531235088 [label="",color="3",fontcolor="3"];
-5049627876531235088 [label="/\\ pc = (0 :> \"cs\" @@ 1 :> \"ncs\")\n/\\ turn = 0"];
1441589058236749349 -> 1441589058236749349 [style="dashed"];
349469391966471760 -> -2812008362376975621 [label="",color="2",fontcolor="2"];
-2812008362376975621 [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")\n/\\ turn = 0"];
349469391966471760 -> 349469391966471760 [style="dashed"];
-6190723150750739455 -> -4025760291280799090 [label="",color="2",fontcolor="2"];
-6190723150750739455 -> -493897691022108030 [label="",color="3",fontcolor="3"];
-493897691022108030 [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")\n/\\ turn = 1"];
-6190723150750739455 -> -6190723150750739455 [style="dashed"];
-4985978420825095052 -> -2812008362376975621 [label="",color="2",fontcolor="2"];
-4985978420825095052 -> -4985978420825095052 [style="dashed"];
-4025760291280799090 -> 1306702513220175931 [label="",color="3",fontcolor="3"];
1306702513220175931 [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")\n/\\ turn = 1"];
-5049627876531235088 -> -1782044937556263316 [label="",color="4",fontcolor="4"];
-1782044937556263316 [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"ncs\")\n/\\ turn = 0"];
-4025760291280799090 -> -4025760291280799090 [style="dashed"];
-5049627876531235088 -> 562133816054668434 [label="",color="2",fontcolor="2"];
562133816054668434 [label="/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")\n/\\ turn = 0"];
-5049627876531235088 -> -5049627876531235088 [style="dashed"];
-2812008362376975621 -> 562133816054668434 [label="",color="3",fontcolor="3"];
-2812008362376975621 -> -2812008362376975621 [style="dashed"];
-493897691022108030 -> 1306702513220175931 [label="",color="2",fontcolor="2"];
-493897691022108030 -> -1933917819784720848 [label="",color="4",fontcolor="4"];
-1933917819784720848 [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"exit\")\n/\\ turn = 1"];
-493897691022108030 -> -493897691022108030 [style="dashed"];
1306702513220175931 -> 7779513292595707742 [label="",color="4",fontcolor="4"];
7779513292595707742 [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")\n/\\ turn = 1"];
1306702513220175931 -> 1306702513220175931 [style="dashed"];
-1782044937556263316 -> 264913071721429937 [label="",color="5",fontcolor="5"];
-1782044937556263316 -> 7488564517445007501 [label="",color="2",fontcolor="2"];
7488564517445007501 [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")\n/\\ turn = 0"];
562133816054668434 -> 7488564517445007501 [label="",color="4",fontcolor="4"];
-1782044937556263316 -> -1782044937556263316 [style="dashed"];
562133816054668434 -> 562133816054668434 [style="dashed"];
-1933917819784720848 -> 7779513292595707742 [label="",color="2",fontcolor="2"];
-1933917819784720848 -> 1402084145941851076 [label="",color="5",fontcolor="5"];
-1933917819784720848 -> -1933917819784720848 [style="dashed"];
7779513292595707742 -> 349469391966471760 [label="",color="5",fontcolor="5"];
7779513292595707742 -> 7779513292595707742 [style="dashed"];
7488564517445007501 -> -6190723150750739455 [label="",color="5",fontcolor="5"];
7488564517445007501 -> 7488564517445007501 [style="dashed"];
{rank = same; 264913071721429937;1402084145941851076;}
{rank = same; 1441589058236749349;-4985978420825095052;-6190723150750739455;349469391966471760;}
{rank = same; -493897691022108030;-4025760291280799090;-5049627876531235088;-2812008362376975621;}
{rank = same; 1306702513220175931;-1782044937556263316;562133816054668434;-1933917819784720848;}
{rank = same; 7488564517445007501;7779513292595707742;}
}
subgraph cluster_legend {graph[style=bold];label = "Next State Actions" style="solid"
node [ labeljust="l",colorscheme="paired12",style=filled,shape=record ]
cs [label="cs",fillcolor=4]
exit [label="exit",fillcolor=5]
enter [label="enter",fillcolor=3]
ncs [label="ncs",fillcolor=2]
}}
\ No newline at end of file
digraph DiskGraph {
nodesep=0.35;
subgraph cluster_graph {
color="white";
"1402084145941851076.1" [style = filled] [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#1402084145941851076.1#"]
"264913071721429937.1" [style = filled] [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")\n/\\ turn = 1
#264913071721429937.1#"]
"264913071721429937.1" -> "-6190723150750739455.1" [label="[t]"];
"-6190723150750739455.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")\n/\\ turn = 1
#-6190723150750739455.1#"];
"264913071721429937.1" -> "264913071721429937.1" [label="[f]"];
"264913071721429937.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")\n/\\ turn = 1
#264913071721429937.1#"];
"264913071721429937.1" -> "1441589058236749349.1" [label="[t]"];
"1441589058236749349.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")\n/\\ turn = 1
#1441589058236749349.1#"];
"1402084145941851076.1" -> "349469391966471760.1" [label="[t]"];
"349469391966471760.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#349469391966471760.1#"];
"1402084145941851076.1" -> "-4985978420825095052.1" [label="[t]"];
"-4985978420825095052.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")\n/\\ turn = 0
#-4985978420825095052.1#"];
"1402084145941851076.1" -> "1402084145941851076.1" [label="[f]"];
"1402084145941851076.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#1402084145941851076.1#"];
"1441589058236749349.1" -> "1441589058236749349.1" [label="[f]"];
"1441589058236749349.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")\n/\\ turn = 1
#1441589058236749349.1#"];
"1441589058236749349.1" -> "-4025760291280799090.1" [label="[t]"];
"-4025760291280799090.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")\n/\\ turn = 1
#-4025760291280799090.1#"];
"349469391966471760.1" -> "-5049627876531235088.1" [label="[t]"];
"-5049627876531235088.1" [label="/\\ pc = (0 :> \"cs\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#-5049627876531235088.1#"];
"349469391966471760.1" -> "349469391966471760.1" [label="[f]"];
"349469391966471760.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#349469391966471760.1#"];
"349469391966471760.1" -> "-2812008362376975621.1" [label="[t]"];
"-2812008362376975621.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")\n/\\ turn = 0
#-2812008362376975621.1#"];
"-6190723150750739455.1" -> "-6190723150750739455.1" [label="[f]"];
"-6190723150750739455.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")\n/\\ turn = 1
#-6190723150750739455.1#"];
"-6190723150750739455.1" -> "-493897691022108030.0" [label="[t]"];
"-493897691022108030.0" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")\n/\\ turn = 1
#-493897691022108030.0#"];
"-6190723150750739455.1" -> "-493897691022108030.1" [label="[t]"];
"-493897691022108030.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")\n/\\ turn = 1
#-493897691022108030.1#"];
"-6190723150750739455.1" -> "-4025760291280799090.1" [label="[t]"];
"-4025760291280799090.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")\n/\\ turn = 1
#-4025760291280799090.1#"];
"-4985978420825095052.1" -> "-4985978420825095052.1" [label="[f]"];
"-4985978420825095052.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")\n/\\ turn = 0
#-4985978420825095052.1#"];
"-4985978420825095052.1" -> "-2812008362376975621.1" [label="[t]"];
"-2812008362376975621.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")\n/\\ turn = 0
#-2812008362376975621.1#"];
"-4025760291280799090.1" -> "1306702513220175931.0" [label="[t]"];
"1306702513220175931.0" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")\n/\\ turn = 1
#1306702513220175931.0#"];
"-4025760291280799090.1" -> "1306702513220175931.1" [label="[t]"];
"1306702513220175931.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")\n/\\ turn = 1
#1306702513220175931.1#"];
"-4025760291280799090.1" -> "-4025760291280799090.1" [label="[f]"];
"-4025760291280799090.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")\n/\\ turn = 1
#-4025760291280799090.1#"];
"-5049627876531235088.1" -> "-5049627876531235088.1" [label="[f]"];
"-5049627876531235088.1" [label="/\\ pc = (0 :> \"cs\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#-5049627876531235088.1#"];
"-5049627876531235088.1" -> "562133816054668434.1" [label="[t]"];
"562133816054668434.1" [label="/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")\n/\\ turn = 0
#562133816054668434.1#"];
"-5049627876531235088.1" -> "-1782044937556263316.1" [label="[t]"];
"-1782044937556263316.1" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#-1782044937556263316.1#"];
"-2812008362376975621.1" -> "562133816054668434.1" [label="[t]"];
"562133816054668434.1" [label="/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")\n/\\ turn = 0
#562133816054668434.1#"];
"-2812008362376975621.1" -> "-2812008362376975621.1" [label="[f]"];
"-2812008362376975621.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")\n/\\ turn = 0
#-2812008362376975621.1#"];
"-493897691022108030.0" -> "-493897691022108030.2" [label="[f]"];
"-493897691022108030.2" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")\n/\\ turn = 1
#-493897691022108030.2#"];
"-493897691022108030.2" -> "1306702513220175931.2" [style="dotted"] [label="[t]"];
"-493897691022108030.0" -> "1306702513220175931.2" [label="[t]"];
"1306702513220175931.2" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")\n/\\ turn = 1
#1306702513220175931.2#"];
"-493897691022108030.1" -> "-1933917819784720848.1" [label="[t]"];
"-1933917819784720848.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"exit\")\n/\\ turn = 1
#-1933917819784720848.1#"];
"-493897691022108030.1" -> "-493897691022108030.0" [label="[f]"];
"-493897691022108030.0" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")\n/\\ turn = 1
#-493897691022108030.0#"];
"-493897691022108030.1" -> "-493897691022108030.1" [label="[f]"];
"-493897691022108030.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")\n/\\ turn = 1
#-493897691022108030.1#"];
"-493897691022108030.1" -> "1306702513220175931.0" [label="[t]"];
"1306702513220175931.0" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")\n/\\ turn = 1
#1306702513220175931.0#"];
"-493897691022108030.1" -> "1306702513220175931.1" [label="[t]"];
"1306702513220175931.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")\n/\\ turn = 1
#1306702513220175931.1#"];
"1306702513220175931.0" -> "1306702513220175931.2" [label="[f]"];
"1306702513220175931.2" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")\n/\\ turn = 1
#1306702513220175931.2#"];
"1306702513220175931.1" -> "1306702513220175931.0" [label="[f]"];
"1306702513220175931.0" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")\n/\\ turn = 1
#1306702513220175931.0#"];
"1306702513220175931.1" -> "1306702513220175931.1" [label="[f]"];
"1306702513220175931.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")\n/\\ turn = 1
#1306702513220175931.1#"];
"1306702513220175931.1" -> "7779513292595707742.1" [label="[t]"];
"7779513292595707742.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")\n/\\ turn = 1
#7779513292595707742.1#"];
"1306702513220175931.2" -> "1306702513220175931.2" [label="[f]"];
"1306702513220175931.2" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")\n/\\ turn = 1
#1306702513220175931.2#"];
"562133816054668434.1" -> "562133816054668434.1" [label="[f]"];
"562133816054668434.1" [label="/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")\n/\\ turn = 0
#562133816054668434.1#"];
"562133816054668434.1" -> "7488564517445007501.1" [label="[t]"];
"7488564517445007501.1" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")\n/\\ turn = 0
#7488564517445007501.1#"];
"-1782044937556263316.1" -> "264913071721429937.1" [label="[t]"];
"264913071721429937.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")\n/\\ turn = 1
#264913071721429937.1#"];
"-1782044937556263316.1" -> "-1782044937556263316.1" [label="[f]"];
"-1782044937556263316.1" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#-1782044937556263316.1#"];
"-1782044937556263316.1" -> "7488564517445007501.1" [label="[t]"];
"7488564517445007501.1" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")\n/\\ turn = 0
#7488564517445007501.1#"];
"-1933917819784720848.1" -> "-1933917819784720848.1" [label="[f]"];
"-1933917819784720848.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"exit\")\n/\\ turn = 1
#-1933917819784720848.1#"];
"-1933917819784720848.1" -> "1402084145941851076.1" [label="[t]"];
"1402084145941851076.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#1402084145941851076.1#"];
"-1933917819784720848.1" -> "7779513292595707742.1" [label="[t]"];
"7779513292595707742.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")\n/\\ turn = 1
#7779513292595707742.1#"];
"7488564517445007501.1" -> "-6190723150750739455.1" [label="[t]"];
"-6190723150750739455.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")\n/\\ turn = 1
#-6190723150750739455.1#"];
"7488564517445007501.1" -> "7488564517445007501.1" [label="[f]"];
"7488564517445007501.1" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")\n/\\ turn = 0
#7488564517445007501.1#"];
"7779513292595707742.1" -> "349469391966471760.1" [label="[t]"];
"349469391966471760.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#349469391966471760.1#"];
"7779513292595707742.1" -> "7779513292595707742.1" [label="[f]"];
"7779513292595707742.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")\n/\\ turn = 1
#7779513292595707742.1#"];
}
} "-4025760291280799090.1" [label="[t]"];
"-4025760291280799090.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")\n/\\ turn = 1
#-4025760291280799090.1#"];
"-4985978420825095052.2" -> "-4985978420825095052.2" [label="[f]"];
"-4985978420825095052.2" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")\n/\\ turn = 0
#-4985978420825095052.2#"];
"-4985978420825095052.2" -> "-2812008362376975621.2" [label="[t]"];
"-2812008362376975621.2" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")\n/\\ turn = 0
#-2812008362376975621.2#"];
"-4985978420825095052.0" -> "-4985978420825095052.2" [label="[f]"];
"-4985978420825095052.2" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")\n/\\ turn = 0
#-4985978420825095052.2#"];
"-4985978420825095052.0" -> "-2812008362376975621.2" [label="[t]"];
"-2812008362376975621.2" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")\n/\\ turn = 0
#-2812008362376975621.2#"];
"-4985978420825095052.1" -> "-4985978420825095052.0" [label="[f]"];
"-4985978420825095052.0" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")\n/\\ turn = 0
#-4985978420825095052.0#"];
"-4985978420825095052.1" -> "-4985978420825095052.1" [label="[f]"];
"-4985978420825095052.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")\n/\\ turn = 0
#-4985978420825095052.1#"];
"-4985978420825095052.1" -> "-2812008362376975621.0" [label="[t]"];
"-2812008362376975621.0" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")\n/\\ turn = 0
#-2812008362376975621.0#"];
"-4985978420825095052.1" -> "-2812008362376975621.1" [label="[t]"];
"-2812008362376975621.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")\n/\\ turn = 0
#-2812008362376975621.1#"];
"-4025760291280799090.2" -> "-4025760291280799090.2" [label="[f]"];
"-4025760291280799090.2" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")\n/\\ turn = 1
#-4025760291280799090.2#"];
"-4025760291280799090.0" -> "-4025760291280799090.2" [label="[f]"];
"-4025760291280799090.2" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")\n/\\ turn = 1
#-4025760291280799090.2#"];
"-4025760291280799090.1" -> "1306702513220175931.1" [label="[t]"];
"1306702513220175931.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")\n/\\ turn = 1
#1306702513220175931.1#"];
"-4025760291280799090.1" -> "-4025760291280799090.0" [label="[f]"];
"-4025760291280799090.0" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")\n/\\ turn = 1
#-4025760291280799090.0#"];
"-4025760291280799090.1" -> "-4025760291280799090.1" [label="[f]"];
"-4025760291280799090.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")\n/\\ turn = 1
#-4025760291280799090.1#"];
"-5049627876531235088.2" -> "-5049627876531235088.2" [label="[f]"];
"-5049627876531235088.2" [label="/\\ pc = (0 :> \"cs\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#-5049627876531235088.2#"];
"-5049627876531235088.2" -> "562133816054668434.2" [label="[t]"];
"562133816054668434.2" [label="/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")\n/\\ turn = 0
#562133816054668434.2#"];
"-5049627876531235088.2" -> "-1782044937556263316.2" [label="[t]"];
"-1782044937556263316.2" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#-1782044937556263316.2#"];
"-5049627876531235088.0" -> "-5049627876531235088.2" [label="[f]"];
"-5049627876531235088.2" [label="/\\ pc = (0 :> \"cs\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#-5049627876531235088.2#"];
"-5049627876531235088.0" -> "562133816054668434.2" [label="[t]"];
"562133816054668434.2" [label="/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")\n/\\ turn = 0
#562133816054668434.2#"];
"-5049627876531235088.0" -> "-1782044937556263316.2" [label="[t]"];
"-1782044937556263316.2" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#-1782044937556263316.2#"];
"-5049627876531235088.1" -> "-5049627876531235088.0" [label="[f]"];
"-5049627876531235088.0" [label="/\\ pc = (0 :> \"cs\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#-5049627876531235088.0#"];
"-5049627876531235088.1" -> "-5049627876531235088.1" [label="[f]"];
"-5049627876531235088.1" [label="/\\ pc = (0 :> \"cs\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#-5049627876531235088.1#"];
"-5049627876531235088.1" -> "562133816054668434.0" [label="[t]"];
"562133816054668434.0" [label="/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")\n/\\ turn = 0
#562133816054668434.0#"];
"-5049627876531235088.1" -> "562133816054668434.1" [label="[t]"];
"562133816054668434.1" [label="/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")\n/\\ turn = 0
#562133816054668434.1#"];
"-5049627876531235088.1" -> "-1782044937556263316.0" [label="[t]"];
"-1782044937556263316.0" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#-1782044937556263316.0#"];
"-5049627876531235088.1" -> "-1782044937556263316.1" [label="[t]"];
"-1782044937556263316.1" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#-1782044937556263316.1#"];
"-2812008362376975621.2" -> "562133816054668434.2" [label="[t]"];
"562133816054668434.2" [label="/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")\n/\\ turn = 0
#562133816054668434.2#"];
"-2812008362376975621.2" -> "-2812008362376975621.2" [label="[f]"];
"-2812008362376975621.2" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")\n/\\ turn = 0
#-2812008362376975621.2#"];
"-2812008362376975621.0" -> "562133816054668434.2" [label="[t]"];
"562133816054668434.2" [label="/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")\n/\\ turn = 0
#562133816054668434.2#"];
"-2812008362376975621.0" -> "-2812008362376975621.2" [label="[f]"];
"-2812008362376975621.2" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")\n/\\ turn = 0
#-2812008362376975621.2#"];
"-2812008362376975621.1" -> "562133816054668434.0" [label="[t]"];
"562133816054668434.0" [label="/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")\n/\\ turn = 0
#562133816054668434.0#"];
"-2812008362376975621.1" -> "562133816054668434.1" [label="[t]"];
"562133816054668434.1" [label="/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")\n/\\ turn = 0
#562133816054668434.1#"];
"-2812008362376975621.1" -> "-2812008362376975621.0" [label="[f]"];
"-2812008362376975621.0" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")\n/\\ turn = 0
#-2812008362376975621.0#"];
"-2812008362376975621.1" -> "-2812008362376975621.1" [label="[f]"];
"-2812008362376975621.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")\n/\\ turn = 0
#-2812008362376975621.1#"];
"-493897691022108030.1" -> "-1933917819784720848.0" [label="[t]"];
"-1933917819784720848.0" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"exit\")\n/\\ turn = 1
#-1933917819784720848.0#"];
"-493897691022108030.1" -> "-1933917819784720848.1" [label="[t]"];
"-1933917819784720848.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"exit\")\n/\\ turn = 1
#-1933917819784720848.1#"];
"-493897691022108030.1" -> "-493897691022108030.1" [label="[f]"];
"-493897691022108030.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")\n/\\ turn = 1
#-493897691022108030.1#"];
"-493897691022108030.1" -> "1306702513220175931.1" [label="[t]"];
"1306702513220175931.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")\n/\\ turn = 1
#1306702513220175931.1#"];
"1306702513220175931.1" -> "1306702513220175931.1" [label="[f]"];
"1306702513220175931.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")\n/\\ turn = 1
#1306702513220175931.1#"];
"1306702513220175931.1" -> "7779513292595707742.0" [label="[t]"];
"7779513292595707742.0" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")\n/\\ turn = 1
#7779513292595707742.0#"];
"1306702513220175931.1" -> "7779513292595707742.1" [label="[t]"];
"7779513292595707742.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")\n/\\ turn = 1
#7779513292595707742.1#"];
"562133816054668434.2" -> "562133816054668434.2" [label="[f]"];
"562133816054668434.2" [label="/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")\n/\\ turn = 0
#562133816054668434.2#"];
"562133816054668434.2" -> "7488564517445007501.2" [label="[t]"];
"7488564517445007501.2" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")\n/\\ turn = 0
#7488564517445007501.2#"];
"562133816054668434.0" -> "562133816054668434.2" [label="[f]"];
"562133816054668434.2" [label="/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")\n/\\ turn = 0
#562133816054668434.2#"];
"562133816054668434.0" -> "7488564517445007501.2" [label="[t]"];
"7488564517445007501.2" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")\n/\\ turn = 0
#7488564517445007501.2#"];
"562133816054668434.1" -> "562133816054668434.0" [label="[f]"];
"562133816054668434.0" [label="/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")\n/\\ turn = 0
#562133816054668434.0#"];
"562133816054668434.1" -> "562133816054668434.1" [label="[f]"];
"562133816054668434.1" [label="/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")\n/\\ turn = 0
#562133816054668434.1#"];
"562133816054668434.1" -> "7488564517445007501.0" [label="[t]"];
"7488564517445007501.0" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")\n/\\ turn = 0
#7488564517445007501.0#"];
"562133816054668434.1" -> "7488564517445007501.1" [label="[t]"];
"7488564517445007501.1" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")\n/\\ turn = 0
#7488564517445007501.1#"];
"-1782044937556263316.2" -> "264913071721429937.2" [label="[t]"];
"264913071721429937.2" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")\n/\\ turn = 1
#264913071721429937.2#"];
"-1782044937556263316.2" -> "-1782044937556263316.2" [label="[f]"];
"-1782044937556263316.2" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#-1782044937556263316.2#"];
"-1782044937556263316.2" -> "7488564517445007501.2" [label="[t]"];
"7488564517445007501.2" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")\n/\\ turn = 0
#7488564517445007501.2#"];
"-1782044937556263316.0" -> "264913071721429937.2" [label="[t]"];
"264913071721429937.2" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")\n/\\ turn = 1
#264913071721429937.2#"];
"-1782044937556263316.0" -> "-1782044937556263316.2" [label="[f]"];
"-1782044937556263316.2" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#-1782044937556263316.2#"];
"-1782044937556263316.0" -> "7488564517445007501.2" [label="[t]"];
"7488564517445007501.2" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")\n/\\ turn = 0
#7488564517445007501.2#"];
"-1782044937556263316.1" -> "264913071721429937.0" [label="[t]"];
"264913071721429937.0" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")\n/\\ turn = 1
#264913071721429937.0#"];
"-1782044937556263316.1" -> "264913071721429937.1" [label="[t]"];
"264913071721429937.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")\n/\\ turn = 1
#264913071721429937.1#"];
"-1782044937556263316.1" -> "-1782044937556263316.0" [label="[f]"];
"-1782044937556263316.0" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#-1782044937556263316.0#"];
"-1782044937556263316.1" -> "-1782044937556263316.1" [label="[f]"];
"-1782044937556263316.1" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#-1782044937556263316.1#"];
"-1782044937556263316.1" -> "7488564517445007501.0" [label="[t]"];
"7488564517445007501.0" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")\n/\\ turn = 0
#7488564517445007501.0#"];
"-1782044937556263316.1" -> "7488564517445007501.1" [label="[t]"];
"7488564517445007501.1" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")\n/\\ turn = 0
#7488564517445007501.1#"];
"-1933917819784720848.0" -> "-1933917819784720848.2" [label="[f]"];
"-1933917819784720848.2" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"exit\")\n/\\ turn = 1
#-1933917819784720848.2#"];
"-1933917819784720848.2" -> "7779513292595707742.2" [style="dotted"] [label="[t]"];
"-1933917819784720848.2" -> "1402084145941851076.2" [style="dotted"] [label="[t]"];
"-1933917819784720848.0" -> "1402084145941851076.2" [label="[t]"];
"1402084145941851076.2" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#1402084145941851076.2#"];
"-1933917819784720848.0" -> "7779513292595707742.2" [label="[t]"];
"7779513292595707742.2" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")\n/\\ turn = 1
#7779513292595707742.2#"];
"-1933917819784720848.1" -> "-1933917819784720848.0" [label="[f]"];
"-1933917819784720848.0" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"exit\")\n/\\ turn = 1
#-1933917819784720848.0#"];
"-1933917819784720848.1" -> "-1933917819784720848.1" [label="[f]"];
"-1933917819784720848.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"exit\")\n/\\ turn = 1
#-1933917819784720848.1#"];
"-1933917819784720848.1" -> "1402084145941851076.0" [label="[t]"];
"1402084145941851076.0" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#1402084145941851076.0#"];
"-1933917819784720848.1" -> "1402084145941851076.1" [label="[t]"];
"1402084145941851076.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#1402084145941851076.1#"];
"-1933917819784720848.1" -> "7779513292595707742.0" [label="[t]"];
"7779513292595707742.0" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")\n/\\ turn = 1
#7779513292595707742.0#"];
"-1933917819784720848.1" -> "7779513292595707742.1" [label="[t]"];
"7779513292595707742.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")\n/\\ turn = 1
#7779513292595707742.1#"];
"7488564517445007501.2" -> "-6190723150750739455.2" [label="[t]"];
"-6190723150750739455.2" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")\n/\\ turn = 1
#-6190723150750739455.2#"];
"7488564517445007501.2" -> "7488564517445007501.2" [label="[f]"];
"7488564517445007501.2" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")\n/\\ turn = 0
#7488564517445007501.2#"];
"7488564517445007501.0" -> "-6190723150750739455.2" [label="[t]"];
"-6190723150750739455.2" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")\n/\\ turn = 1
#-6190723150750739455.2#"];
"7488564517445007501.0" -> "7488564517445007501.2" [label="[f]"];
"7488564517445007501.2" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")\n/\\ turn = 0
#7488564517445007501.2#"];
"7488564517445007501.1" -> "-6190723150750739455.0" [label="[t]"];
"-6190723150750739455.0" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")\n/\\ turn = 1
#-6190723150750739455.0#"];
"7488564517445007501.1" -> "-6190723150750739455.1" [label="[t]"];
"-6190723150750739455.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")\n/\\ turn = 1
#-6190723150750739455.1#"];
"7488564517445007501.1" -> "7488564517445007501.0" [label="[f]"];
"7488564517445007501.0" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")\n/\\ turn = 0
#7488564517445007501.0#"];
"7488564517445007501.1" -> "7488564517445007501.1" [label="[f]"];
"7488564517445007501.1" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")\n/\\ turn = 0
#7488564517445007501.1#"];
"7779513292595707742.0" -> "349469391966471760.2" [label="[t]"];
"349469391966471760.2" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#349469391966471760.2#"];
"7779513292595707742.0" -> "7779513292595707742.2" [label="[f]"];
"7779513292595707742.2" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")\n/\\ turn = 1
#7779513292595707742.2#"];
"7779513292595707742.1" -> "349469391966471760.0" [label="[t]"];
"349469391966471760.0" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#349469391966471760.0#"];
"7779513292595707742.1" -> "349469391966471760.1" [label="[t]"];
"349469391966471760.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#349469391966471760.1#"];
"7779513292595707742.1" -> "7779513292595707742.0" [label="[f]"];
"7779513292595707742.0" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")\n/\\ turn = 1
#7779513292595707742.0#"];
"7779513292595707742.1" -> "7779513292595707742.1" [label="[f]"];
"7779513292595707742.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")\n/\\ turn = 1
#7779513292595707742.1#"];
"7779513292595707742.2" -> "349469391966471760.2" [label="[t]"];
"349469391966471760.2" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#349469391966471760.2#"];
"7779513292595707742.2" -> "7779513292595707742.2" [label="[f]"];
"7779513292595707742.2" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")\n/\\ turn = 1
#7779513292595707742.2#"];
}
}7501.2#"];
}
}
\ No newline at end of file
@!@!@STARTMSG 2262:0 @!@!@
TLC2 Version 2.16 of Day Month 20?? (rev: 9310ee7)
@!@!@ENDMSG 2262 @!@!@
@!@!@STARTMSG 2187:0 @!@!@
Running breadth-first search Model-Checking with fp 55 and seed 7390341523143387179 with 2 workers on 4 cores with 1161MB heap and 2608MB offheap memory [pid: 71572] (Linux 5.10.0-10-amd64 amd64, AdoptOpenJDK 14.0.1 x86_64, OffHeapDiskFPSet, DiskStateQueue).
@!@!@ENDMSG 2187 @!@!@
@!@!@STARTMSG 2220:0 @!@!@
Starting SANY...
@!@!@ENDMSG 2220 @!@!@
Parsing file /home/kirr/study/tla+/pluscal/ME/Alternate.toolbox/Model_1/MC.tla
Parsing file /home/kirr/study/tla+/pluscal/ME/Alternate.toolbox/Model_1/Alternate.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/TLC.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Integers.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Naturals.tla
Parsing file /home/kirr/study/tla+/pluscal/ME/Alternate.toolbox/Model_1/MutualExclusionSpec.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Sequences.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/FiniteSets.tla
Semantic processing of module Naturals
Semantic processing of module Integers
Semantic processing of module MutualExclusionSpec
Semantic processing of module Alternate
Semantic processing of module Sequences
Semantic processing of module FiniteSets
Semantic processing of module TLC
Semantic processing of module MC
@!@!@STARTMSG 2219:0 @!@!@
SANY finished.
@!@!@ENDMSG 2219 @!@!@
@!@!@STARTMSG 2185:0 @!@!@
Starting... (2022-02-09 17:53:54)
@!@!@ENDMSG 2185 @!@!@
@!@!@STARTMSG 2212:0 @!@!@
Implied-temporal checking--satisfiability problem has 5 branches.
@!@!@ENDMSG 2212 @!@!@
@!@!@STARTMSG 2189:0 @!@!@
Computing initial states...
@!@!@ENDMSG 2189 @!@!@
@!@!@STARTMSG 2108:1 @!@!@
Property Init is violated by the initial state:
/\ pc = (0 :> "ncs" @@ 1 :> "ncs")
/\ turn = 0
@!@!@ENDMSG 2108 @!@!@
@!@!@STARTMSG 2186:0 @!@!@
Finished in 1232ms at (2022-02-09 17:53:55)
@!@!@ENDMSG 2186 @!@!@
@!@!@STARTMSG 2262:0 @!@!@
TLC2 Version 2.16 of Day Month 20?? (rev: 9310ee7)
@!@!@ENDMSG 2262 @!@!@
@!@!@STARTMSG 2187:0 @!@!@
Running breadth-first search Model-Checking with fp 55 and seed 7390341523143387179 with 2 workers on 4 cores with 1161MB heap and 2608MB offheap memory [pid: 71572] (Linux 5.10.0-10-amd64 amd64, AdoptOpenJDK 14.0.1 x86_64, OffHeapDiskFPSet, DiskStateQueue).
@!@!@ENDMSG 2187 @!@!@
@!@!@STARTMSG 2220:0 @!@!@
Starting SANY...
@!@!@ENDMSG 2220 @!@!@
Parsing file /home/kirr/study/tla+/pluscal/ME/Alternate.toolbox/Model_1/MC.tla
Parsing file /home/kirr/study/tla+/pluscal/ME/Alternate.toolbox/Model_1/Alternate.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/TLC.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Integers.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Naturals.tla
Parsing file /home/kirr/study/tla+/pluscal/ME/Alternate.toolbox/Model_1/MutualExclusionSpec.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Sequences.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/FiniteSets.tla
Semantic processing of module Naturals
Semantic processing of module Integers
Semantic processing of module MutualExclusionSpec
Semantic processing of module Alternate
Semantic processing of module Sequences
Semantic processing of module FiniteSets
Semantic processing of module TLC
Semantic processing of module MC
@!@!@STARTMSG 2219:0 @!@!@
SANY finished.
@!@!@ENDMSG 2219 @!@!@
@!@!@STARTMSG 2185:0 @!@!@
Starting... (2022-02-09 17:53:54)
@!@!@ENDMSG 2185 @!@!@
@!@!@STARTMSG 2212:0 @!@!@
Implied-temporal checking--satisfiability problem has 5 branches.
@!@!@ENDMSG 2212 @!@!@
@!@!@STARTMSG 2189:0 @!@!@
Computing initial states...
@!@!@ENDMSG 2189 @!@!@
@!@!@STARTMSG 2108:1 @!@!@
Property Init is violated by the initial state:
/\ pc = (0 :> "ncs" @@ 1 :> "ncs")
/\ turn = 0
@!@!@ENDMSG 2108 @!@!@
@!@!@STARTMSG 2186:0 @!@!@
Finished in 1232ms at (2022-02-09 17:53:55)
@!@!@ENDMSG 2186 @!@!@
strict digraph DiskGraph {
edge [colorscheme="paired12"]
nodesep=0.35;
subgraph cluster_graph {
color="white";
digraph DiskGraph {
nodesep=0.35;
subgraph cluster_graph {
color="white";
......@@ -74,12 +74,6 @@ Spec == /\ Init /\ [][Next]_vars
(*
PC2ME(xpc) == [proc \in Procs |-> IF xpc[proc] = "cs" THEN "cs"
ELSE "non-cs"]
ME == INSTANCE MutualExclusionSpec WITH pc <- PC2ME(pc)
*)
ME == INSTANCE MutualExclusionSpec WITH
pc <- [proc \in Procs |-> IF pc[proc] = "cs" THEN "cs"
ELSE "non-cs"]
......@@ -91,5 +85,5 @@ THEOREM Spec => ME!Liveness
=============================================================================
\* Modification History
\* Last modified Wed Feb 09 17:53:40 MSK 2022 by kirr
\* Last modified Wed Feb 09 18:03:45 MSK 2022 by kirr
\* Created Wed Feb 09 16:13:49 MSK 2022 by kirr
\* CONSTANT definitions
CONSTANT
Procs <- const_1644410888466290000
Procs <- const_1644425785595557000
\* SPECIFICATION definition
SPECIFICATION
Spec
\* INVARIANT definition
INVARIANT
TypeOK
MutualExclusion
inv_1644425785595558000
inv_1644425785595559000
\* PROPERTY definition
PROPERTY
Liveness
\* Generated on Wed Feb 09 15:48:08 MSK 2022
\ No newline at end of file
prop_1644425785595560000
prop_1644425785595561000
\* Generated on Wed Feb 09 19:56:25 MSK 2022
\ No newline at end of file
@!@!@STARTMSG 2262:0 @!@!@
TLC2 Version 2.16 of Day Month 20?? (rev: 9310ee7)
@!@!@ENDMSG 2262 @!@!@
@!@!@STARTMSG 2187:0 @!@!@
Running breadth-first search Model-Checking with fp 88 and seed -405408752417771537 with 2 workers on 4 cores with 1161MB heap and 2608MB offheap memory [pid: 76540] (Linux 5.10.0-10-amd64 amd64, AdoptOpenJDK 14.0.1 x86_64, OffHeapDiskFPSet, DiskStateQueue).
@!@!@ENDMSG 2187 @!@!@
@!@!@STARTMSG 2220:0 @!@!@
Starting SANY...
@!@!@ENDMSG 2220 @!@!@
Parsing file /home/kirr/study/tla+/pluscal/ME/Alternate.toolbox/Model_1/MC.tla
Parsing file /home/kirr/study/tla+/pluscal/ME/Alternate.toolbox/Model_1/Alternate.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/TLC.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Integers.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Naturals.tla
Parsing file /home/kirr/study/tla+/pluscal/ME/Alternate.toolbox/Model_1/MutualExclusionSpec.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Sequences.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/FiniteSets.tla
Semantic processing of module Naturals
Semantic processing of module Integers
Semantic processing of module MutualExclusionSpec
Semantic processing of module Alternate
Semantic processing of module Sequences
Semantic processing of module FiniteSets
Semantic processing of module TLC
Semantic processing of module MC
@!@!@STARTMSG 2219:0 @!@!@
SANY finished.
@!@!@ENDMSG 2219 @!@!@
@!@!@STARTMSG 2185:0 @!@!@
Starting... (2022-02-09 19:56:26)
@!@!@ENDMSG 2185 @!@!@
@!@!@STARTMSG 2212:0 @!@!@
Implied-temporal checking--satisfiability problem has 5 branches.
@!@!@ENDMSG 2212 @!@!@
@!@!@STARTMSG 2189:0 @!@!@
Computing initial states...
@!@!@ENDMSG 2189 @!@!@
@!@!@STARTMSG 2190:0 @!@!@
Finished computing initial states: 2 distinct states generated at 2022-02-09 19:56:26.
@!@!@ENDMSG 2190 @!@!@
@!@!@STARTMSG 2112:1 @!@!@
Action property line 38, col 12 to line 38, col 24 of module MutualExclusionSpec is violated.
@!@!@ENDMSG 2112 @!@!@
@!@!@STARTMSG 2121:1 @!@!@
The behavior up to this point is:
@!@!@ENDMSG 2121 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
1: <Initial predicate>
/\ pc = (0 :> "ncs" @@ 1 :> "ncs")
/\ turn = 0
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
2: <ncs line 44, col 14 to line 47, col 28 of module Alternate>
/\ pc = (0 :> "enter" @@ 1 :> "ncs")
/\ turn = 0
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
3: <enter line 49, col 16 to line 52, col 30 of module Alternate>
/\ pc = (0 :> "cs" @@ 1 :> "ncs")
/\ turn = 0
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2201:0 @!@!@
The coverage statistics at 2022-02-09 19:56:26
@!@!@ENDMSG 2201 @!@!@
@!@!@STARTMSG 2773:0 @!@!@
<Init line 40, col 1 to line 40, col 4 of module Alternate>: 4:4
@!@!@ENDMSG 2773 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 41, col 12 to line 41, col 25 of module Alternate: 2
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 42, col 12 to line 42, col 44 of module Alternate: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
|line 42, col 17 to line 42, col 44 of module Alternate: 4:8
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 42, col 27 to line 42, col 33 of module Alternate: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<ncs line 44, col 1 to line 44, col 9 of module Alternate>: 6:8
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 44, col 17 to line 44, col 32 of module Alternate: 21
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 44, col 17 to line 44, col 24 of module Alternate: 13
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 45, col 17 to line 45, col 20 of module Alternate: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 46, col 17 to line 46, col 51 of module Alternate: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 47, col 17 to line 47, col 28 of module Alternate: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<enter line 49, col 1 to line 49, col 11 of module Alternate>: 2:3
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 49, col 19 to line 49, col 36 of module Alternate: 13
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 49, col 19 to line 49, col 26 of module Alternate: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 50, col 19 to line 50, col 29 of module Alternate: 6
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 50, col 19 to line 50, col 22 of module Alternate: 5
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 50, col 26 to line 50, col 29 of module Alternate: 5
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 51, col 19 to line 51, col 50 of module Alternate: 1
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 51, col 25 to line 51, col 50 of module Alternate: 3
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 52, col 19 to line 52, col 30 of module Alternate: 1
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 52, col 27 to line 52, col 30 of module Alternate: 3
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<cs line 54, col 1 to line 54, col 8 of module Alternate>: 0:0
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 54, col 16 to line 54, col 30 of module Alternate: 9
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 56, col 16 to line 56, col 49 of module Alternate: 0
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 57, col 16 to line 57, col 27 of module Alternate: 0
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<exit line 59, col 1 to line 59, col 10 of module Alternate>: 0:0
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 59, col 18 to line 59, col 34 of module Alternate: 9
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 60, col 18 to line 60, col 46 of module Alternate: 0
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 61, col 18 to line 61, col 50 of module Alternate: 0
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<inv_1644425785595558000 line 10, col 1 to line 10, col 23 of module MC>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 11, col 1 to line 11, col 18 of module MC: 10
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
|line 78, col 23 to line 79, col 77 of module Alternate: 48:76
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 78, col 33 to line 78, col 37 of module Alternate: 48
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 77, col 1 to line 79, col 77 of module Alternate: 21
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 47, col 20 to line 47, col 84 of module MutualExclusionSpec: 10
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 47, col 38 to line 47, col 84 of module MutualExclusionSpec: 40
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 47, col 39 to line 47, col 44 of module MutualExclusionSpec: 40
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 47, col 50 to line 47, col 84 of module MutualExclusionSpec: 20
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 47, col 52 to line 47, col 83 of module MutualExclusionSpec: 20
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||||line 47, col 53 to line 47, col 64 of module MutualExclusionSpec: 20
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||||line 47, col 71 to line 47, col 82 of module MutualExclusionSpec: 2
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 47, col 31 to line 47, col 35 of module MutualExclusionSpec: 10
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<inv_1644425785595559000 line 14, col 1 to line 14, col 23 of module MC>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 15, col 1 to line 15, col 45 of module MC: 10
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 15, col 18 to line 15, col 45 of module MC: 20
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 15, col 19 to line 15, col 30 of module MC: 20
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 15, col 37 to line 15, col 44 of module MC: 2
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 15, col 10 to line 15, col 14 of module MC: 10
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2202:0 @!@!@
End of statistics.
@!@!@ENDMSG 2202 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(3) at 2022-02-09 19:56:26: 11 states generated (517 s/min), 10 distinct states found (470 ds/min), 2 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2199:0 @!@!@
11 states generated, 10 distinct states found, 2 states left on queue.
@!@!@ENDMSG 2199 @!@!@
@!@!@STARTMSG 2194:0 @!@!@
The depth of the complete state graph search is 3.
@!@!@ENDMSG 2194 @!@!@
@!@!@STARTMSG 2186:0 @!@!@
Finished in 1287ms at (2022-02-09 19:56:26)
@!@!@ENDMSG 2186 @!@!@
......@@ -2,22 +2,26 @@
EXTENDS Alternate, TLC
\* CONSTANT definitions @modelParameterConstants:0Procs
const_1644418423653463000 ==
const_1644425785595557000 ==
0..1
----
\* INVARIANT definition @modelCorrectnessInvariants:0
inv_1644418423653464000 ==
inv_1644425785595558000 ==
ME!MutualExclusion
----
\* INVARIANT definition @modelCorrectnessInvariants:1
inv_1644425785595559000 ==
\A i \in Procs : (pc[i] = "cs") => (turn = i)
----
\* PROPERTY definition @modelCorrectnessProperties:0
prop_1644418423653465000 ==
prop_1644425785595560000 ==
ME!Spec
----
\* PROPERTY definition @modelCorrectnessProperties:1
prop_1644418423653466000 ==
prop_1644425785595561000 ==
ME!Liveness
----
=============================================================================
\* Modification History
\* Created Wed Feb 09 17:53:43 MSK 2022 by kirr
\* Created Wed Feb 09 19:56:25 MSK 2022 by kirr
@!@!@STARTMSG 2262:0 @!@!@
TLC2 Version 2.16 of Day Month 20?? (rev: 9310ee7)
@!@!@ENDMSG 2262 @!@!@
@!@!@STARTMSG 2187:0 @!@!@
Running breadth-first search Model-Checking with fp 88 and seed -405408752417771537 with 2 workers on 4 cores with 1161MB heap and 2608MB offheap memory [pid: 76540] (Linux 5.10.0-10-amd64 amd64, AdoptOpenJDK 14.0.1 x86_64, OffHeapDiskFPSet, DiskStateQueue).
@!@!@ENDMSG 2187 @!@!@
@!@!@STARTMSG 2220:0 @!@!@
Starting SANY...
@!@!@ENDMSG 2220 @!@!@
Parsing file /home/kirr/study/tla+/pluscal/ME/Alternate.toolbox/Model_1/MC.tla
Parsing file /home/kirr/study/tla+/pluscal/ME/Alternate.toolbox/Model_1/Alternate.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/TLC.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Integers.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Naturals.tla
Parsing file /home/kirr/study/tla+/pluscal/ME/Alternate.toolbox/Model_1/MutualExclusionSpec.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Sequences.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/FiniteSets.tla
Semantic processing of module Naturals
Semantic processing of module Integers
Semantic processing of module MutualExclusionSpec
Semantic processing of module Alternate
Semantic processing of module Sequences
Semantic processing of module FiniteSets
Semantic processing of module TLC
Semantic processing of module MC
@!@!@STARTMSG 2219:0 @!@!@
SANY finished.
@!@!@ENDMSG 2219 @!@!@
@!@!@STARTMSG 2185:0 @!@!@
Starting... (2022-02-09 19:56:26)
@!@!@ENDMSG 2185 @!@!@
@!@!@STARTMSG 2212:0 @!@!@
Implied-temporal checking--satisfiability problem has 5 branches.
@!@!@ENDMSG 2212 @!@!@
@!@!@STARTMSG 2189:0 @!@!@
Computing initial states...
@!@!@ENDMSG 2189 @!@!@
@!@!@STARTMSG 2190:0 @!@!@
Finished computing initial states: 2 distinct states generated at 2022-02-09 19:56:26.
@!@!@ENDMSG 2190 @!@!@
@!@!@STARTMSG 2112:1 @!@!@
Action property line 38, col 12 to line 38, col 24 of module MutualExclusionSpec is violated.
@!@!@ENDMSG 2112 @!@!@
@!@!@STARTMSG 2121:1 @!@!@
The behavior up to this point is:
@!@!@ENDMSG 2121 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
1: <Initial predicate>
/\ pc = (0 :> "ncs" @@ 1 :> "ncs")
/\ turn = 0
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
2: <ncs line 44, col 14 to line 47, col 28 of module Alternate>
/\ pc = (0 :> "enter" @@ 1 :> "ncs")
/\ turn = 0
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
3: <enter line 49, col 16 to line 52, col 30 of module Alternate>
/\ pc = (0 :> "cs" @@ 1 :> "ncs")
/\ turn = 0
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2201:0 @!@!@
The coverage statistics at 2022-02-09 19:56:26
@!@!@ENDMSG 2201 @!@!@
@!@!@STARTMSG 2773:0 @!@!@
<Init line 40, col 1 to line 40, col 4 of module Alternate>: 4:4
@!@!@ENDMSG 2773 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 41, col 12 to line 41, col 25 of module Alternate: 2
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 42, col 12 to line 42, col 44 of module Alternate: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
|line 42, col 17 to line 42, col 44 of module Alternate: 4:8
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 42, col 27 to line 42, col 33 of module Alternate: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<ncs line 44, col 1 to line 44, col 9 of module Alternate>: 6:8
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 44, col 17 to line 44, col 32 of module Alternate: 21
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 44, col 17 to line 44, col 24 of module Alternate: 13
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 45, col 17 to line 45, col 20 of module Alternate: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 46, col 17 to line 46, col 51 of module Alternate: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 47, col 17 to line 47, col 28 of module Alternate: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<enter line 49, col 1 to line 49, col 11 of module Alternate>: 2:3
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 49, col 19 to line 49, col 36 of module Alternate: 13
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 49, col 19 to line 49, col 26 of module Alternate: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 50, col 19 to line 50, col 29 of module Alternate: 6
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 50, col 19 to line 50, col 22 of module Alternate: 5
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 50, col 26 to line 50, col 29 of module Alternate: 5
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 51, col 19 to line 51, col 50 of module Alternate: 1
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 51, col 25 to line 51, col 50 of module Alternate: 3
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 52, col 19 to line 52, col 30 of module Alternate: 1
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 52, col 27 to line 52, col 30 of module Alternate: 3
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<cs line 54, col 1 to line 54, col 8 of module Alternate>: 0:0
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 54, col 16 to line 54, col 30 of module Alternate: 9
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 56, col 16 to line 56, col 49 of module Alternate: 0
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 57, col 16 to line 57, col 27 of module Alternate: 0
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<exit line 59, col 1 to line 59, col 10 of module Alternate>: 0:0
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 59, col 18 to line 59, col 34 of module Alternate: 9
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 60, col 18 to line 60, col 46 of module Alternate: 0
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 61, col 18 to line 61, col 50 of module Alternate: 0
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<inv_1644425785595558000 line 10, col 1 to line 10, col 23 of module MC>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 11, col 1 to line 11, col 18 of module MC: 10
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
|line 78, col 23 to line 79, col 77 of module Alternate: 48:76
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 78, col 33 to line 78, col 37 of module Alternate: 48
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 77, col 1 to line 79, col 77 of module Alternate: 21
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 47, col 20 to line 47, col 84 of module MutualExclusionSpec: 10
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 47, col 38 to line 47, col 84 of module MutualExclusionSpec: 40
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 47, col 39 to line 47, col 44 of module MutualExclusionSpec: 40
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 47, col 50 to line 47, col 84 of module MutualExclusionSpec: 20
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 47, col 52 to line 47, col 83 of module MutualExclusionSpec: 20
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||||line 47, col 53 to line 47, col 64 of module MutualExclusionSpec: 20
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||||line 47, col 71 to line 47, col 82 of module MutualExclusionSpec: 2
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 47, col 31 to line 47, col 35 of module MutualExclusionSpec: 10
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<inv_1644425785595559000 line 14, col 1 to line 14, col 23 of module MC>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 15, col 1 to line 15, col 45 of module MC: 10
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 15, col 18 to line 15, col 45 of module MC: 20
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 15, col 19 to line 15, col 30 of module MC: 20
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 15, col 37 to line 15, col 44 of module MC: 2
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 15, col 10 to line 15, col 14 of module MC: 10
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2202:0 @!@!@
End of statistics.
@!@!@ENDMSG 2202 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(3) at 2022-02-09 19:56:26: 11 states generated (517 s/min), 10 distinct states found (470 ds/min), 2 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2199:0 @!@!@
11 states generated, 10 distinct states found, 2 states left on queue.
@!@!@ENDMSG 2199 @!@!@
@!@!@STARTMSG 2194:0 @!@!@
The depth of the complete state graph search is 3.
@!@!@ENDMSG 2194 @!@!@
@!@!@STARTMSG 2186:0 @!@!@
Finished in 1287ms at (2022-02-09 19:56:26)
@!@!@ENDMSG 2186 @!@!@
strict digraph DiskGraph {
edge [colorscheme="paired12"]
nodesep=0.35;
subgraph cluster_graph {
color="white";
-4385412785220897332 [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")\n/\\ turn = 0",style = filled]
-7792006210643843233 [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")\n/\\ turn = 1",style = filled]
-4385412785220897332 -> -2121727716720394216 [label="",color="2",fontcolor="2"];
-2121727716720394216 [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")\n/\\ turn = 0"];
-4385412785220897332 -> -3757412970352516297 [label="",color="2",fontcolor="2"];
-3757412970352516297 [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")\n/\\ turn = 0"];
-7792006210643843233 -> -5588753771789561205 [label="",color="2",fontcolor="2"];
-5588753771789561205 [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")\n/\\ turn = 1"];
-4385412785220897332 -> -4385412785220897332 [style="dashed"];
-7792006210643843233 -> -7267643063291514460 [label="",color="2",fontcolor="2"];
-7267643063291514460 [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")\n/\\ turn = 1"];
-7792006210643843233 -> -7792006210643843233 [style="dashed"];
-2121727716720394216 -> 8435757444235712431 [label="",color="3",fontcolor="3"];
8435757444235712431 [label="/\\ pc = (0 :> \"cs\" @@ 1 :> \"ncs\")\n/\\ turn = 0"];
-3757412970352516297 -> 4039947853683791371 [label="",color="2",fontcolor="2"];
4039947853683791371 [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")\n/\\ turn = 0"];
-3757412970352516297 -> -3757412970352516297 [style="dashed"];
-5588753771789561205 -> 7561014664456340632 [label="",color="2",fontcolor="2"];
7561014664456340632 [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")\n/\\ turn = 1"];
-5588753771789561205 -> -5588753771789561205 [style="dashed"];
-7267643063291514460 -> 7561014664456340632 [label="",color="2",fontcolor="2"];
-7267643063291514460 -> 9009807488935807510 [label="",color="3",fontcolor="3"];
9009807488935807510 [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")\n/\\ turn = 1"];
-2121727716720394216 -> -2121727716720394216 [style="dashed"];
-7267643063291514460 -> -7267643063291514460 [style="dashed"];
{rank = same; -4385412785220897332;-7792006210643843233;}
{rank = same; -2121727716720394216;-3757412970352516297;-5588753771789561205;-7267643063291514460;}
}
subgraph cluster_legend {graph[style=bold];label = "Next State Actions" style="solid"
node [ labeljust="l",colorscheme="paired12",style=filled,shape=record ]
enter [label="enter",fillcolor=3]
ncs [label="ncs",fillcolor=2]
}}
\ No newline at end of file
digraph DiskGraph {
nodesep=0.35;
subgraph cluster_graph {
color="white";
"-4385412785220897332.1" [style = filled] [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#-4385412785220897332.1#"]
"-7792006210643843233.1" [style = filled] [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")\n/\\ turn = 1
#-7792006210643843233.1#"]
"-7792006210643843233.1" -> "-7267643063291514460.1" [label="[t]"];
"-7267643063291514460.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")\n/\\ turn = 1
#-7267643063291514460.1#"];
"-7792006210643843233.1" -> "-5588753771789561205.1" [label="[t]"];
"-5588753771789561205.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")\n/\\ turn = 1
#-5588753771789561205.1#"];
"-7792006210643843233.1" -> "-7792006210643843233.1" [label="[f]"];
"-7792006210643843233.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")\n/\\ turn = 1
#-7792006210643843233.1#"];
"-4385412785220897332.1" -> "-3757412970352516297.1" [label="[t]"];
"-3757412970352516297.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")\n/\\ turn = 0
#-3757412970352516297.1#"];
"-4385412785220897332.1" -> "-2121727716720394216.1" [label="[t]"];
"-2121727716720394216.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#-2121727716720394216.1#"];
"-4385412785220897332.1" -> "-4385412785220897332.1" [label="[f]"];
"-4385412785220897332.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#-4385412785220897332.1#"];
"-3757412970352516297.1" -> "-3757412970352516297.1" [label="[f]"];
"-3757412970352516297.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")\n/\\ turn = 0
#-3757412970352516297.1#"];
"-3757412970352516297.1" -> "4039947853683791371.1" [label="[t]"];
"4039947853683791371.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")\n/\\ turn = 0
#4039947853683791371.1#"];
"-5588753771789561205.1" -> "7561014664456340632.1" [label="[t]"];
"7561014664456340632.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")\n/\\ turn = 1
#7561014664456340632.1#"];
"-5588753771789561205.1" -> "-5588753771789561205.1" [label="[f]"];
"-5588753771789561205.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")\n/\\ turn = 1
#-5588753771789561205.1#"];
"-2121727716720394216.1" -> "-2121727716720394216.1" [label="[f]"];
"-2121727716720394216.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#-2121727716720394216.1#"];
"-2121727716720394216.1" -> "8435757444235712431.1" [label="[t]"];
"8435757444235712431.1" [label="/\\ pc = (0 :> \"cs\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#8435757444235712431.1#"];
"-7267643063291514460.1" -> "-7267643063291514460.1" [label="[f]"];
"-7267643063291514460.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")\n/\\ turn = 1
#-7267643063291514460.1#"];
"-7267643063291514460.1" -> "9009807488935807510.0" [label="[t]"];
"9009807488935807510.0" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")\n/\\ turn = 1
#9009807488935807510.0#"];
"-7267643063291514460.1" -> "9009807488935807510.1" [label="[t]"];
"9009807488935807510.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")\n/\\ turn = 1
#9009807488935807510.1#"];
"-7267643063291514460.1" -> "7561014664456340632.1" [label="[t]"];
"7561014664456340632.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")\n/\\ turn = 1
#7561014664456340632.1#"];
}
}
\ No newline at end of file
......@@ -3,20 +3,27 @@
\* Procs is set of processes.
\* Every process is assumed to loop and enter into "cs" state on every interation.
\* States besides non-critical are represented as "non-cs".
\* Non-critical state is represented as "non-cs".
\* When process decides it want to enter into critical-section, it first goes into "csentry" state.
CONSTANT Procs
VARIABLES pc
TypeOK == pc \in [Procs -> {"non-cs", "cs"}]
TypeOK == pc \in [Procs -> {"non-cs", "csentry", "cs"}]
vars == <<pc>>
\* All processes start from non-critical section.
Init == pc \in [Procs -> {"non-cs"}]
\* WantCS(proc) is action when proc decides that it wants to enter into critical section.
WantCS(proc) ==
/\ pc[proc] = "non-cs"
/\ pc' = [pc EXCEPT ![proc] = "csentry"]
\* EnterCS(proc) is action when proc enters critical section.
EnterCS(proc) ==
/\ \A i \in Procs: pc[i] /= "cs"
/\ pc[proc] = "csentry"
/\ \A i \in Procs \ {proc} : pc[i] /= "cs"
/\ pc' = [pc EXCEPT ![proc] = "cs"]
\* ExitCS(proc) is action when proc leaves critical section.
......@@ -24,12 +31,13 @@ ExitCS(proc) ==
/\ pc[proc] = "cs"
/\ pc' = [pc EXCEPT ![proc] = "non-cs"]
Next == \E i \in Procs: EnterCS(i) \/ ExitCS(i)
Next == \E i \in Procs: WantCS(i) \/ EnterCS(i) \/ ExitCS(i)
Spec == /\ Init
/\ [][Next]_vars
/\ \A i \in Procs: ( \* fairness
\* not fair for WantCS - it can pause and even hang there
/\ SF_vars(EnterCS(i))
/\ SF_vars(ExitCS(i)))
......@@ -40,7 +48,7 @@ MutualExclusion == \A i,j \in Procs: (i /= j) => ~((pc[i] = "cs") /\ (pc[j] = "c
\* Liveness is temporal property indicating that every process has a chance to enter critical section and leaves it.
Liveness == \A i \in Procs:
/\ (pc[i] = "non-cs") ~> (pc[i] = "cs")
/\ (pc[i] = "csentry") ~> (pc[i] = "cs")
/\ (pc[i] = "cs") ~> (pc[i] = "non-cs")
......@@ -51,5 +59,5 @@ THEOREM Spec => Liveness
=============================================================================
\* Modification History
\* Last modified Wed Feb 09 17:36:37 MSK 2022 by kirr
\* Last modified Wed Feb 09 19:11:11 MSK 2022 by kirr
\* Created Wed Feb 09 13:11:29 MSK 2022 by kirr
......@@ -74,16 +74,10 @@ Spec == /\ Init /\ [][Next]_vars
(*
PC2ME(xpc) == [proc \in Procs |-> IF xpc[proc] = "cs" THEN "cs"
ELSE "non-cs"]
ME == INSTANCE MutualExclusionSpec WITH pc <- PC2ME(pc)
*)
ME == INSTANCE MutualExclusionSpec WITH
pc <- [proc \in Procs |-> IF pc[proc] = "cs" THEN "cs"
ELSE "Znon-cs"]
pc <- [proc \in Procs |-> CASE pc[proc] = "cs" -> "cs"
[] pc[proc] = "enter" -> "csentry"
[] OTHER -> "non-cs"]
THEOREM Spec => ME!Spec
THEOREM Spec => []ME!MutualExclusion
......@@ -91,5 +85,5 @@ THEOREM Spec => ME!Liveness
=============================================================================
\* Modification History
\* Last modified Wed Feb 09 17:53:52 MSK 2022 by kirr
\* Last modified Wed Feb 09 19:58:34 MSK 2022 by kirr
\* Created Wed Feb 09 16:13:49 MSK 2022 by kirr
\* CONSTANT definitions
CONSTANT
Procs <- const_1644418434112467000
Procs <- const_1644425915701562000
\* SPECIFICATION definition
SPECIFICATION
Spec
\* INVARIANT definition
INVARIANT
inv_1644418434112468000
inv_1644425915701563000
inv_1644425915701564000
\* PROPERTY definition
PROPERTY
prop_1644418434112469000
prop_1644418434112470000
\* Generated on Wed Feb 09 17:53:54 MSK 2022
\ No newline at end of file
prop_1644425915701565000
prop_1644425915701566000
\* Generated on Wed Feb 09 19:58:35 MSK 2022
\ No newline at end of file
......@@ -2,7 +2,7 @@
TLC2 Version 2.16 of Day Month 20?? (rev: 9310ee7)
@!@!@ENDMSG 2262 @!@!@
@!@!@STARTMSG 2187:0 @!@!@
Running breadth-first search Model-Checking with fp 96 and seed -7115604794889667354 with 2 workers on 4 cores with 1161MB heap and 2608MB offheap memory [pid: 71512] (Linux 5.10.0-10-amd64 amd64, AdoptOpenJDK 14.0.1 x86_64, OffHeapDiskFPSet, DiskStateQueue).
Running breadth-first search Model-Checking with fp 90 and seed -2010183919109019723 with 2 workers on 4 cores with 1161MB heap and 2608MB offheap memory [pid: 76629] (Linux 5.10.0-10-amd64 amd64, AdoptOpenJDK 14.0.1 x86_64, OffHeapDiskFPSet, DiskStateQueue).
@!@!@ENDMSG 2187 @!@!@
@!@!@STARTMSG 2220:0 @!@!@
Starting SANY...
......@@ -27,7 +27,7 @@ Semantic processing of module MC
SANY finished.
@!@!@ENDMSG 2219 @!@!@
@!@!@STARTMSG 2185:0 @!@!@
Starting... (2022-02-09 17:53:44)
Starting... (2022-02-09 19:58:36)
@!@!@ENDMSG 2185 @!@!@
@!@!@STARTMSG 2212:0 @!@!@
Implied-temporal checking--satisfiability problem has 5 branches.
......@@ -36,16 +36,16 @@ Implied-temporal checking--satisfiability problem has 5 branches.
Computing initial states...
@!@!@ENDMSG 2189 @!@!@
@!@!@STARTMSG 2190:0 @!@!@
Finished computing initial states: 2 distinct states generated at 2022-02-09 17:53:44.
Finished computing initial states: 2 distinct states generated at 2022-02-09 19:58:37.
@!@!@ENDMSG 2190 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(5) at 2022-02-09 17:53:45: 26 states generated, 16 distinct states found, 0 states left on queue.
Progress(5) at 2022-02-09 19:58:37: 26 states generated, 16 distinct states found, 0 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2192:0 @!@!@
Checking 5 branches of temporal properties for the complete state space with 80 total distinct states at (2022-02-09 17:53:45)
Checking 5 branches of temporal properties for the complete state space with 80 total distinct states at (2022-02-09 19:58:37)
@!@!@ENDMSG 2192 @!@!@
@!@!@STARTMSG 2267:0 @!@!@
Finished checking temporal properties in 00s at 2022-02-09 17:53:45
Finished checking temporal properties in 00s at 2022-02-09 19:58:37
@!@!@ENDMSG 2267 @!@!@
@!@!@STARTMSG 2193:0 @!@!@
Model checking completed. No error has been found.
......@@ -54,7 +54,7 @@ Model checking completed. No error has been found.
calculated (optimistic): val = 8.7E-18
@!@!@ENDMSG 2193 @!@!@
@!@!@STARTMSG 2201:0 @!@!@
The coverage statistics at 2022-02-09 17:53:45
The coverage statistics at 2022-02-09 19:58:37
@!@!@ENDMSG 2201 @!@!@
@!@!@STARTMSG 2773:0 @!@!@
<Init line 40, col 1 to line 40, col 4 of module Alternate>: 2:2
......@@ -72,55 +72,55 @@ The coverage statistics at 2022-02-09 17:53:45
||line 42, col 27 to line 42, col 33 of module Alternate: 2
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<ncs line 44, col 1 to line 44, col 9 of module Alternate>: 8:24
<ncs line 44, col 1 to line 44, col 9 of module Alternate>: 8:18
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 44, col 17 to line 44, col 32 of module Alternate: 72
line 44, col 17 to line 44, col 32 of module Alternate: 62
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 44, col 17 to line 44, col 24 of module Alternate: 48
|line 44, col 17 to line 44, col 24 of module Alternate: 44
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 45, col 17 to line 45, col 20 of module Alternate: 24
line 45, col 17 to line 45, col 20 of module Alternate: 18
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 46, col 17 to line 46, col 51 of module Alternate: 24
line 46, col 17 to line 46, col 51 of module Alternate: 18
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 47, col 17 to line 47, col 28 of module Alternate: 24
line 47, col 17 to line 47, col 28 of module Alternate: 18
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<enter line 49, col 1 to line 49, col 11 of module Alternate>: 3:4
<enter line 49, col 1 to line 49, col 11 of module Alternate>: 3:6
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 49, col 19 to line 49, col 36 of module Alternate: 52
line 49, col 19 to line 49, col 36 of module Alternate: 50
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 49, col 19 to line 49, col 26 of module Alternate: 48
|line 49, col 19 to line 49, col 26 of module Alternate: 44
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 50, col 19 to line 50, col 29 of module Alternate: 16
line 50, col 19 to line 50, col 29 of module Alternate: 22
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 50, col 19 to line 50, col 22 of module Alternate: 12
|line 50, col 19 to line 50, col 22 of module Alternate: 16
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 50, col 26 to line 50, col 29 of module Alternate: 12
|line 50, col 26 to line 50, col 29 of module Alternate: 16
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 51, col 19 to line 51, col 50 of module Alternate: 4
line 51, col 19 to line 51, col 50 of module Alternate: 6
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 52, col 19 to line 52, col 30 of module Alternate: 4
line 52, col 19 to line 52, col 30 of module Alternate: 6
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<cs line 54, col 1 to line 54, col 8 of module Alternate>: 3:6
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 54, col 16 to line 54, col 30 of module Alternate: 54
line 54, col 16 to line 54, col 30 of module Alternate: 50
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 54, col 16 to line 54, col 23 of module Alternate: 48
|line 54, col 16 to line 54, col 23 of module Alternate: 44
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 55, col 16 to line 55, col 19 of module Alternate: 6
......@@ -132,64 +132,82 @@ The coverage statistics at 2022-02-09 17:53:45
line 57, col 16 to line 57, col 27 of module Alternate: 6
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<exit line 59, col 1 to line 59, col 10 of module Alternate>: 0:6
<exit line 59, col 1 to line 59, col 10 of module Alternate>: 0:4
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 59, col 18 to line 59, col 34 of module Alternate: 54
line 59, col 18 to line 59, col 34 of module Alternate: 48
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 59, col 18 to line 59, col 25 of module Alternate: 48
|line 59, col 18 to line 59, col 25 of module Alternate: 44
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 60, col 18 to line 60, col 46 of module Alternate: 6
line 60, col 18 to line 60, col 46 of module Alternate: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 61, col 18 to line 61, col 50 of module Alternate: 6
line 61, col 18 to line 61, col 50 of module Alternate: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<inv_1644418423653464000 line 10, col 1 to line 10, col 23 of module MC>
<inv_1644425915701563000 line 10, col 1 to line 10, col 23 of module MC>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 11, col 1 to line 11, col 18 of module MC: 16
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
|line 84, col 23 to line 85, col 77 of module Alternate: 98:148
|line 78, col 23 to line 80, col 82 of module Alternate: 83:94
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 84, col 33 to line 84, col 37 of module Alternate: 98
||line 78, col 33 to line 78, col 37 of module Alternate: 83
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 83, col 1 to line 85, col 77 of module Alternate: 42
|line 77, col 1 to line 80, col 82 of module Alternate: 42
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 39, col 20 to line 39, col 84 of module MutualExclusionSpec: 16
|line 47, col 20 to line 47, col 84 of module MutualExclusionSpec: 16
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 39, col 38 to line 39, col 84 of module MutualExclusionSpec: 64
||line 47, col 38 to line 47, col 84 of module MutualExclusionSpec: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 39, col 39 to line 39, col 44 of module MutualExclusionSpec: 64
|||line 47, col 39 to line 47, col 44 of module MutualExclusionSpec: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 39, col 50 to line 39, col 84 of module MutualExclusionSpec: 32
|||line 47, col 50 to line 47, col 84 of module MutualExclusionSpec: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 39, col 52 to line 39, col 83 of module MutualExclusionSpec: 32
||||line 47, col 52 to line 47, col 83 of module MutualExclusionSpec: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||||line 39, col 53 to line 39, col 64 of module MutualExclusionSpec: 32
|||||line 47, col 53 to line 47, col 64 of module MutualExclusionSpec: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||||line 39, col 71 to line 39, col 82 of module MutualExclusionSpec: 4
|||||line 47, col 71 to line 47, col 82 of module MutualExclusionSpec: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 39, col 31 to line 39, col 35 of module MutualExclusionSpec: 16
||line 47, col 31 to line 47, col 35 of module MutualExclusionSpec: 16
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<inv_1644425915701564000 line 14, col 1 to line 14, col 23 of module MC>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 15, col 1 to line 15, col 45 of module MC: 16
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 15, col 18 to line 15, col 45 of module MC: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 15, col 19 to line 15, col 30 of module MC: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 15, col 37 to line 15, col 44 of module MC: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 15, col 10 to line 15, col 14 of module MC: 16
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2202:0 @!@!@
End of statistics.
@!@!@ENDMSG 2202 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(5) at 2022-02-09 17:53:45: 26 states generated (1 132 s/min), 16 distinct states found (697 ds/min), 0 states left on queue.
Progress(5) at 2022-02-09 19:58:37: 26 states generated (1 154 s/min), 16 distinct states found (710 ds/min), 0 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2199:0 @!@!@
26 states generated, 16 distinct states found, 0 states left on queue.
......@@ -201,5 +219,5 @@ The depth of the complete state graph search is 5.
The average outdegree of the complete state graph is 1 (minimum is 0, the maximum 2 and the 95th percentile is 2).
@!@!@ENDMSG 2268 @!@!@
@!@!@STARTMSG 2186:0 @!@!@
Finished in 1384ms at (2022-02-09 17:53:45)
Finished in 1364ms at (2022-02-09 19:58:37)
@!@!@ENDMSG 2186 @!@!@
......@@ -2,22 +2,26 @@
EXTENDS Alternate, TLC
\* CONSTANT definitions @modelParameterConstants:0Procs
const_1644418434112467000 ==
const_1644425915701562000 ==
0..1
----
\* INVARIANT definition @modelCorrectnessInvariants:0
inv_1644418434112468000 ==
inv_1644425915701563000 ==
ME!MutualExclusion
----
\* INVARIANT definition @modelCorrectnessInvariants:1
inv_1644425915701564000 ==
\A i \in Procs : (pc[i] = "cs") => (turn = i)
----
\* PROPERTY definition @modelCorrectnessProperties:0
prop_1644418434112469000 ==
prop_1644425915701565000 ==
ME!Spec
----
\* PROPERTY definition @modelCorrectnessProperties:1
prop_1644418434112470000 ==
prop_1644425915701566000 ==
ME!Liveness
----
=============================================================================
\* Modification History
\* Created Wed Feb 09 17:53:54 MSK 2022 by kirr
\* Created Wed Feb 09 19:58:35 MSK 2022 by kirr
......@@ -2,7 +2,7 @@
TLC2 Version 2.16 of Day Month 20?? (rev: 9310ee7)
@!@!@ENDMSG 2262 @!@!@
@!@!@STARTMSG 2187:0 @!@!@
Running breadth-first search Model-Checking with fp 96 and seed -7115604794889667354 with 2 workers on 4 cores with 1161MB heap and 2608MB offheap memory [pid: 71512] (Linux 5.10.0-10-amd64 amd64, AdoptOpenJDK 14.0.1 x86_64, OffHeapDiskFPSet, DiskStateQueue).
Running breadth-first search Model-Checking with fp 90 and seed -2010183919109019723 with 2 workers on 4 cores with 1161MB heap and 2608MB offheap memory [pid: 76629] (Linux 5.10.0-10-amd64 amd64, AdoptOpenJDK 14.0.1 x86_64, OffHeapDiskFPSet, DiskStateQueue).
@!@!@ENDMSG 2187 @!@!@
@!@!@STARTMSG 2220:0 @!@!@
Starting SANY...
......@@ -27,7 +27,7 @@ Semantic processing of module MC
SANY finished.
@!@!@ENDMSG 2219 @!@!@
@!@!@STARTMSG 2185:0 @!@!@
Starting... (2022-02-09 17:53:44)
Starting... (2022-02-09 19:58:36)
@!@!@ENDMSG 2185 @!@!@
@!@!@STARTMSG 2212:0 @!@!@
Implied-temporal checking--satisfiability problem has 5 branches.
......@@ -36,16 +36,16 @@ Implied-temporal checking--satisfiability problem has 5 branches.
Computing initial states...
@!@!@ENDMSG 2189 @!@!@
@!@!@STARTMSG 2190:0 @!@!@
Finished computing initial states: 2 distinct states generated at 2022-02-09 17:53:44.
Finished computing initial states: 2 distinct states generated at 2022-02-09 19:58:37.
@!@!@ENDMSG 2190 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(5) at 2022-02-09 17:53:45: 26 states generated, 16 distinct states found, 0 states left on queue.
Progress(5) at 2022-02-09 19:58:37: 26 states generated, 16 distinct states found, 0 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2192:0 @!@!@
Checking 5 branches of temporal properties for the complete state space with 80 total distinct states at (2022-02-09 17:53:45)
Checking 5 branches of temporal properties for the complete state space with 80 total distinct states at (2022-02-09 19:58:37)
@!@!@ENDMSG 2192 @!@!@
@!@!@STARTMSG 2267:0 @!@!@
Finished checking temporal properties in 00s at 2022-02-09 17:53:45
Finished checking temporal properties in 00s at 2022-02-09 19:58:37
@!@!@ENDMSG 2267 @!@!@
@!@!@STARTMSG 2193:0 @!@!@
Model checking completed. No error has been found.
......@@ -54,7 +54,7 @@ Model checking completed. No error has been found.
calculated (optimistic): val = 8.7E-18
@!@!@ENDMSG 2193 @!@!@
@!@!@STARTMSG 2201:0 @!@!@
The coverage statistics at 2022-02-09 17:53:45
The coverage statistics at 2022-02-09 19:58:37
@!@!@ENDMSG 2201 @!@!@
@!@!@STARTMSG 2773:0 @!@!@
<Init line 40, col 1 to line 40, col 4 of module Alternate>: 2:2
......@@ -72,55 +72,55 @@ The coverage statistics at 2022-02-09 17:53:45
||line 42, col 27 to line 42, col 33 of module Alternate: 2
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<ncs line 44, col 1 to line 44, col 9 of module Alternate>: 8:24
<ncs line 44, col 1 to line 44, col 9 of module Alternate>: 8:18
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 44, col 17 to line 44, col 32 of module Alternate: 72
line 44, col 17 to line 44, col 32 of module Alternate: 62
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 44, col 17 to line 44, col 24 of module Alternate: 48
|line 44, col 17 to line 44, col 24 of module Alternate: 44
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 45, col 17 to line 45, col 20 of module Alternate: 24
line 45, col 17 to line 45, col 20 of module Alternate: 18
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 46, col 17 to line 46, col 51 of module Alternate: 24
line 46, col 17 to line 46, col 51 of module Alternate: 18
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 47, col 17 to line 47, col 28 of module Alternate: 24
line 47, col 17 to line 47, col 28 of module Alternate: 18
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<enter line 49, col 1 to line 49, col 11 of module Alternate>: 3:4
<enter line 49, col 1 to line 49, col 11 of module Alternate>: 3:6
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 49, col 19 to line 49, col 36 of module Alternate: 52
line 49, col 19 to line 49, col 36 of module Alternate: 50
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 49, col 19 to line 49, col 26 of module Alternate: 48
|line 49, col 19 to line 49, col 26 of module Alternate: 44
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 50, col 19 to line 50, col 29 of module Alternate: 16
line 50, col 19 to line 50, col 29 of module Alternate: 22
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 50, col 19 to line 50, col 22 of module Alternate: 12
|line 50, col 19 to line 50, col 22 of module Alternate: 16
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 50, col 26 to line 50, col 29 of module Alternate: 12
|line 50, col 26 to line 50, col 29 of module Alternate: 16
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 51, col 19 to line 51, col 50 of module Alternate: 4
line 51, col 19 to line 51, col 50 of module Alternate: 6
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 52, col 19 to line 52, col 30 of module Alternate: 4
line 52, col 19 to line 52, col 30 of module Alternate: 6
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<cs line 54, col 1 to line 54, col 8 of module Alternate>: 3:6
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 54, col 16 to line 54, col 30 of module Alternate: 54
line 54, col 16 to line 54, col 30 of module Alternate: 50
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 54, col 16 to line 54, col 23 of module Alternate: 48
|line 54, col 16 to line 54, col 23 of module Alternate: 44
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 55, col 16 to line 55, col 19 of module Alternate: 6
......@@ -132,64 +132,82 @@ The coverage statistics at 2022-02-09 17:53:45
line 57, col 16 to line 57, col 27 of module Alternate: 6
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<exit line 59, col 1 to line 59, col 10 of module Alternate>: 0:6
<exit line 59, col 1 to line 59, col 10 of module Alternate>: 0:4
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 59, col 18 to line 59, col 34 of module Alternate: 54
line 59, col 18 to line 59, col 34 of module Alternate: 48
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 59, col 18 to line 59, col 25 of module Alternate: 48
|line 59, col 18 to line 59, col 25 of module Alternate: 44
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 60, col 18 to line 60, col 46 of module Alternate: 6
line 60, col 18 to line 60, col 46 of module Alternate: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 61, col 18 to line 61, col 50 of module Alternate: 6
line 61, col 18 to line 61, col 50 of module Alternate: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<inv_1644418423653464000 line 10, col 1 to line 10, col 23 of module MC>
<inv_1644425915701563000 line 10, col 1 to line 10, col 23 of module MC>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 11, col 1 to line 11, col 18 of module MC: 16
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
|line 84, col 23 to line 85, col 77 of module Alternate: 98:148
|line 78, col 23 to line 80, col 82 of module Alternate: 83:94
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 84, col 33 to line 84, col 37 of module Alternate: 98
||line 78, col 33 to line 78, col 37 of module Alternate: 83
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 83, col 1 to line 85, col 77 of module Alternate: 42
|line 77, col 1 to line 80, col 82 of module Alternate: 42
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 39, col 20 to line 39, col 84 of module MutualExclusionSpec: 16
|line 47, col 20 to line 47, col 84 of module MutualExclusionSpec: 16
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 39, col 38 to line 39, col 84 of module MutualExclusionSpec: 64
||line 47, col 38 to line 47, col 84 of module MutualExclusionSpec: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 39, col 39 to line 39, col 44 of module MutualExclusionSpec: 64
|||line 47, col 39 to line 47, col 44 of module MutualExclusionSpec: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 39, col 50 to line 39, col 84 of module MutualExclusionSpec: 32
|||line 47, col 50 to line 47, col 84 of module MutualExclusionSpec: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 39, col 52 to line 39, col 83 of module MutualExclusionSpec: 32
||||line 47, col 52 to line 47, col 83 of module MutualExclusionSpec: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||||line 39, col 53 to line 39, col 64 of module MutualExclusionSpec: 32
|||||line 47, col 53 to line 47, col 64 of module MutualExclusionSpec: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||||line 39, col 71 to line 39, col 82 of module MutualExclusionSpec: 4
|||||line 47, col 71 to line 47, col 82 of module MutualExclusionSpec: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 39, col 31 to line 39, col 35 of module MutualExclusionSpec: 16
||line 47, col 31 to line 47, col 35 of module MutualExclusionSpec: 16
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<inv_1644425915701564000 line 14, col 1 to line 14, col 23 of module MC>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 15, col 1 to line 15, col 45 of module MC: 16
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 15, col 18 to line 15, col 45 of module MC: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 15, col 19 to line 15, col 30 of module MC: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 15, col 37 to line 15, col 44 of module MC: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 15, col 10 to line 15, col 14 of module MC: 16
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2202:0 @!@!@
End of statistics.
@!@!@ENDMSG 2202 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(5) at 2022-02-09 17:53:45: 26 states generated (1 132 s/min), 16 distinct states found (697 ds/min), 0 states left on queue.
Progress(5) at 2022-02-09 19:58:37: 26 states generated (1 154 s/min), 16 distinct states found (710 ds/min), 0 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2199:0 @!@!@
26 states generated, 16 distinct states found, 0 states left on queue.
......@@ -201,5 +219,5 @@ The depth of the complete state graph search is 5.
The average outdegree of the complete state graph is 1 (minimum is 0, the maximum 2 and the 95th percentile is 2).
@!@!@ENDMSG 2268 @!@!@
@!@!@STARTMSG 2186:0 @!@!@
Finished in 1384ms at (2022-02-09 17:53:45)
Finished in 1364ms at (2022-02-09 19:58:37)
@!@!@ENDMSG 2186 @!@!@
strict digraph DiskGraph {
edge [colorscheme="paired12"]
nodesep=0.35;
subgraph cluster_graph {
color="white";
-2304256186017901240 [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")\n/\\ turn = 0",style = filled]
3063590532813598594 [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")\n/\\ turn = 1",style = filled]
-2304256186017901240 -> 4021501492038283011 [label="",color="2",fontcolor="2"];
4021501492038283011 [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")\n/\\ turn = 0"];
-2304256186017901240 -> -4661709328420890533 [label="",color="2",fontcolor="2"];
-4661709328420890533 [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")\n/\\ turn = 0"];
-2304256186017901240 -> -2304256186017901240 [style="dashed"];
3063590532813598594 -> -194057057360964151 [label="",color="2",fontcolor="2"];
-194057057360964151 [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")\n/\\ turn = 1"];
3063590532813598594 -> 8489255053443179153 [label="",color="2",fontcolor="2"];
8489255053443179153 [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")\n/\\ turn = 1"];
3063590532813598594 -> 3063590532813598594 [style="dashed"];
4021501492038283011 -> 543325479923207427 [label="",color="3",fontcolor="3"];
543325479923207427 [label="/\\ pc = (0 :> \"cs\" @@ 1 :> \"ncs\")\n/\\ turn = 0"];
4021501492038283011 -> 244470699041366076 [label="",color="2",fontcolor="2"];
244470699041366076 [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")\n/\\ turn = 0"];
4021501492038283011 -> 4021501492038283011 [style="dashed"];
-4661709328420890533 -> 244470699041366076 [label="",color="2",fontcolor="2"];
-4661709328420890533 -> -4661709328420890533 [style="dashed"];
-194057057360964151 -> -3898669630605452554 [label="",color="2",fontcolor="2"];
-3898669630605452554 [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")\n/\\ turn = 1"];
8489255053443179153 -> -3898669630605452554 [label="",color="2",fontcolor="2"];
-194057057360964151 -> -194057057360964151 [style="dashed"];
8489255053443179153 -> 6208733498515523769 [label="",color="3",fontcolor="3"];
6208733498515523769 [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")\n/\\ turn = 1"];
8489255053443179153 -> 8489255053443179153 [style="dashed"];
543325479923207427 -> -6395493111282828260 [label="",color="4",fontcolor="4"];
-6395493111282828260 [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"ncs\")\n/\\ turn = 0"];
543325479923207427 -> 1580961522298426183 [label="",color="2",fontcolor="2"];
1580961522298426183 [label="/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")\n/\\ turn = 0"];
543325479923207427 -> 543325479923207427 [style="dashed"];
244470699041366076 -> 1580961522298426183 [label="",color="3",fontcolor="3"];
244470699041366076 -> 244470699041366076 [style="dashed"];
-3898669630605452554 -> 5921214264002221941 [label="",color="3",fontcolor="3"];
5921214264002221941 [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")\n/\\ turn = 1"];
-3898669630605452554 -> -3898669630605452554 [style="dashed"];
6208733498515523769 -> 5921214264002221941 [label="",color="2",fontcolor="2"];
6208733498515523769 -> -8187951950540390906 [label="",color="4",fontcolor="4"];
-8187951950540390906 [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"exit\")\n/\\ turn = 1"];
6208733498515523769 -> 6208733498515523769 [style="dashed"];
-6395493111282828260 -> 3063590532813598594 [label="",color="5",fontcolor="5"];
-6395493111282828260 -> 8639444591122381034 [label="",color="2",fontcolor="2"];
8639444591122381034 [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")\n/\\ turn = 0"];
-6395493111282828260 -> -6395493111282828260 [style="dashed"];
1580961522298426183 -> 8639444591122381034 [label="",color="4",fontcolor="4"];
5921214264002221941 -> -8265530133940623444 [label="",color="4",fontcolor="4"];
-8265530133940623444 [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")\n/\\ turn = 1"];
1580961522298426183 -> 1580961522298426183 [style="dashed"];
5921214264002221941 -> 5921214264002221941 [style="dashed"];
-8187951950540390906 -> -8265530133940623444 [label="",color="2",fontcolor="2"];
-8187951950540390906 -> -2304256186017901240 [label="",color="5",fontcolor="5"];
8639444591122381034 -> 8489255053443179153 [label="",color="5",fontcolor="5"];
-8187951950540390906 -> -8187951950540390906 [style="dashed"];
8639444591122381034 -> 8639444591122381034 [style="dashed"];
-8265530133940623444 -> 4021501492038283011 [label="",color="5",fontcolor="5"];
-8265530133940623444 -> -8265530133940623444 [style="dashed"];
{rank = same; -2304256186017901240;3063590532813598594;}
{rank = same; -194057057360964151;4021501492038283011;8489255053443179153;-4661709328420890533;}
{rank = same; 543325479923207427;-3898669630605452554;244470699041366076;6208733498515523769;}
{rank = same; -6395493111282828260;5921214264002221941;1580961522298426183;-8187951950540390906;}
{rank = same; -8265530133940623444;8639444591122381034;}
}
subgraph cluster_legend {graph[style=bold];label = "Next State Actions" style="solid"
node [ labeljust="l",colorscheme="paired12",style=filled,shape=record ]
cs [label="cs",fillcolor=4]
exit [label="exit",fillcolor=5]
enter [label="enter",fillcolor=3]
ncs [label="ncs",fillcolor=2]
}}
\ No newline at end of file
digraph DiskGraph {
nodesep=0.35;
subgraph cluster_graph {
color="white";
"-2304256186017901240.1" [style = filled] [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#-2304256186017901240.1#"]
"3063590532813598594.1" [style = filled] [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")\n/\\ turn = 1
#3063590532813598594.1#"]
"-2304256186017901240.1" -> "4021501492038283011.1" [label="[t]"];
"4021501492038283011.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#4021501492038283011.1#"];
"-2304256186017901240.1" -> "-2304256186017901240.1" [label="[f]"];
"-2304256186017901240.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#-2304256186017901240.1#"];
"-2304256186017901240.1" -> "-4661709328420890533.1" [label="[t]"];
"-4661709328420890533.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")\n/\\ turn = 0
#-4661709328420890533.1#"];
"3063590532813598594.1" -> "8489255053443179153.1" [label="[t]"];
"8489255053443179153.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")\n/\\ turn = 1
#8489255053443179153.1#"];
"3063590532813598594.1" -> "3063590532813598594.1" [label="[f]"];
"3063590532813598594.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")\n/\\ turn = 1
#3063590532813598594.1#"];
"3063590532813598594.1" -> "-194057057360964151.1" [label="[t]"];
"-194057057360964151.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")\n/\\ turn = 1
#-194057057360964151.1#"];
"-4661709328420890533.1" -> "-4661709328420890533.1" [label="[f]"];
"-4661709328420890533.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")\n/\\ turn = 0
#-4661709328420890533.1#"];
"-4661709328420890533.1" -> "244470699041366076.1" [label="[t]"];
"244470699041366076.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")\n/\\ turn = 0
#244470699041366076.1#"];
"4021501492038283011.1" -> "543325479923207427.1" [label="[t]"];
"543325479923207427.1" [label="/\\ pc = (0 :> \"cs\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#543325479923207427.1#"];
"4021501492038283011.1" -> "4021501492038283011.1" [label="[f]"];
"4021501492038283011.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#4021501492038283011.1#"];
"4021501492038283011.1" -> "244470699041366076.1" [label="[t]"];
"244470699041366076.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")\n/\\ turn = 0
#244470699041366076.1#"];
"-194057057360964151.1" -> "-3898669630605452554.1" [label="[t]"];
"-3898669630605452554.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")\n/\\ turn = 1
#-3898669630605452554.1#"];
"-194057057360964151.1" -> "-194057057360964151.1" [label="[f]"];
"-194057057360964151.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")\n/\\ turn = 1
#-194057057360964151.1#"];
"8489255053443179153.1" -> "8489255053443179153.1" [label="[f]"];
"8489255053443179153.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")\n/\\ turn = 1
#8489255053443179153.1#"];
"8489255053443179153.1" -> "-3898669630605452554.1" [label="[t]"];
"-3898669630605452554.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")\n/\\ turn = 1
#-3898669630605452554.1#"];
"8489255053443179153.1" -> "6208733498515523769.0" [label="[t]"];
"6208733498515523769.0" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")\n/\\ turn = 1
#6208733498515523769.0#"];
"8489255053443179153.1" -> "6208733498515523769.1" [label="[t]"];
"6208733498515523769.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")\n/\\ turn = 1
#6208733498515523769.1#"];
"543325479923207427.1" -> "543325479923207427.1" [label="[f]"];
"543325479923207427.1" [label="/\\ pc = (0 :> \"cs\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#543325479923207427.1#"];
"543325479923207427.1" -> "1580961522298426183.1" [label="[t]"];
"1580961522298426183.1" [label="/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")\n/\\ turn = 0
#1580961522298426183.1#"];
"543325479923207427.1" -> "-6395493111282828260.1" [label="[t]"];
"-6395493111282828260.1" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#-6395493111282828260.1#"];
"244470699041366076.1" -> "1580961522298426183.1" [label="[t]"];
"1580961522298426183.1" [label="/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")\n/\\ turn = 0
#1580961522298426183.1#"];
"244470699041366076.1" -> "244470699041366076.1" [label="[f]"];
"244470699041366076.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")\n/\\ turn = 0
#244470699041366076.1#"];
"-3898669630605452554.1" -> "5921214264002221941.0" [label="[t]"];
"5921214264002221941.0" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")\n/\\ turn = 1
#5921214264002221941.0#"];
"-3898669630605452554.1" -> "5921214264002221941.1" [label="[t]"];
"5921214264002221941.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")\n/\\ turn = 1
#5921214264002221941.1#"];
"-3898669630605452554.1" -> "-3898669630605452554.1" [label="[f]"];
"-3898669630605452554.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")\n/\\ turn = 1
#-3898669630605452554.1#"];
"6208733498515523769.0" -> "5921214264002221941.2" [label="[t]"];
"5921214264002221941.2" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")\n/\\ turn = 1
#5921214264002221941.2#"];
"6208733498515523769.0" -> "6208733498515523769.2" [label="[f]"];
"6208733498515523769.2" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")\n/\\ turn = 1
#6208733498515523769.2#"];
"6208733498515523769.2" -> "5921214264002221941.2" [style="dotted"] [label="[t]"];
"6208733498515523769.1" -> "5921214264002221941.0" [label="[t]"];
"5921214264002221941.0" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")\n/\\ turn = 1
#5921214264002221941.0#"];
"6208733498515523769.1" -> "5921214264002221941.1" [label="[t]"];
"5921214264002221941.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")\n/\\ turn = 1
#5921214264002221941.1#"];
"6208733498515523769.1" -> "-8187951950540390906.1" [label="[t]"];
"-8187951950540390906.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"exit\")\n/\\ turn = 1
#-8187951950540390906.1#"];
"6208733498515523769.1" -> "6208733498515523769.0" [label="[f]"];
"6208733498515523769.0" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")\n/\\ turn = 1
#6208733498515523769.0#"];
"6208733498515523769.1" -> "6208733498515523769.1" [label="[f]"];
"6208733498515523769.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")\n/\\ turn = 1
#6208733498515523769.1#"];
"-6395493111282828260.1" -> "3063590532813598594.1" [label="[t]"];
"3063590532813598594.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")\n/\\ turn = 1
#3063590532813598594.1#"];
"-6395493111282828260.1" -> "8639444591122381034.1" [label="[t]"];
"8639444591122381034.1" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")\n/\\ turn = 0
#8639444591122381034.1#"];
"-6395493111282828260.1" -> "-6395493111282828260.1" [label="[f]"];
"-6395493111282828260.1" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#-6395493111282828260.1#"];
"5921214264002221941.0" -> "5921214264002221941.2" [label="[f]"];
"5921214264002221941.2" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")\n/\\ turn = 1
#5921214264002221941.2#"];
"5921214264002221941.1" -> "5921214264002221941.0" [label="[f]"];
"5921214264002221941.0" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")\n/\\ turn = 1
#5921214264002221941.0#"];
"5921214264002221941.1" -> "5921214264002221941.1" [label="[f]"];
"5921214264002221941.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")\n/\\ turn = 1
#5921214264002221941.1#"];
"5921214264002221941.1" -> "-8265530133940623444.1" [label="[t]"];
"-8265530133940623444.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")\n/\\ turn = 1
#-8265530133940623444.1#"];
"5921214264002221941.2" -> "5921214264002221941.2" [label="[f]"];
"5921214264002221941.2" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")\n/\\ turn = 1
#5921214264002221941.2#"];
"1580961522298426183.1" -> "1580961522298426183.1" [label="[f]"];
"1580961522298426183.1" [label="/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")\n/\\ turn = 0
#1580961522298426183.1#"];
"1580961522298426183.1" -> "8639444591122381034.1" [label="[t]"];
"8639444591122381034.1" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")\n/\\ turn = 0
#8639444591122381034.1#"];
"8639444591122381034.1" -> "8489255053443179153.1" [label="[t]"];
"8489255053443179153.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")\n/\\ turn = 1
#8489255053443179153.1#"];
"8639444591122381034.1" -> "8639444591122381034.1" [label="[f]"];
"8639444591122381034.1" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")\n/\\ turn = 0
#8639444591122381034.1#"];
"-8187951950540390906.1" -> "-8187951950540390906.1" [label="[f]"];
"-8187951950540390906.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"exit\")\n/\\ turn = 1
#-8187951950540390906.1#"];
"-8187951950540390906.1" -> "-2304256186017901240.1" [label="[t]"];
"-2304256186017901240.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#-2304256186017901240.1#"];
"-8187951950540390906.1" -> "-8265530133940623444.1" [label="[t]"];
"-8265530133940623444.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")\n/\\ turn = 1
#-8265530133940623444.1#"];
"-8265530133940623444.1" -> "4021501492038283011.1" [label="[t]"];
"4021501492038283011.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#4021501492038283011.1#"];
"-8265530133940623444.1" -> "-8265530133940623444.1" [label="[f]"];
"-8265530133940623444.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")\n/\\ turn = 1
#-8265530133940623444.1#"];
}
}3598594.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")\n/\\ turn = 1
#3063590532813598594.1#"];
"-6395493111282828260.1" -> "8639444591122381034.0" [label="[t]"];
"8639444591122381034.0" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")\n/\\ turn = 0
#8639444591122381034.0#"];
"-6395493111282828260.1" -> "8639444591122381034.1" [label="[t]"];
"8639444591122381034.1" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")\n/\\ turn = 0
#8639444591122381034.1#"];
"-6395493111282828260.1" -> "-6395493111282828260.1" [label="[f]"];
"-6395493111282828260.1" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#-6395493111282828260.1#"];
"5921214264002221941.1" -> "5921214264002221941.1" [label="[f]"];
"5921214264002221941.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")\n/\\ turn = 1
#5921214264002221941.1#"];
"5921214264002221941.1" -> "-8265530133940623444.1" [label="[t]"];
"-8265530133940623444.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")\n/\\ turn = 1
#-8265530133940623444.1#"];
"1580961522298426183.0" -> "1580961522298426183.2" [label="[f]"];
"1580961522298426183.2" [label="/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")\n/\\ turn = 0
#1580961522298426183.2#"];
"1580961522298426183.0" -> "8639444591122381034.2" [label="[t]"];
"8639444591122381034.2" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")\n/\\ turn = 0
#8639444591122381034.2#"];
"1580961522298426183.1" -> "1580961522298426183.0" [label="[f]"];
"1580961522298426183.0" [label="/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")\n/\\ turn = 0
#1580961522298426183.0#"];
"1580961522298426183.1" -> "1580961522298426183.1" [label="[f]"];
"1580961522298426183.1" [label="/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")\n/\\ turn = 0
#1580961522298426183.1#"];
"1580961522298426183.1" -> "8639444591122381034.0" [label="[t]"];
"8639444591122381034.0" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")\n/\\ turn = 0
#8639444591122381034.0#"];
"1580961522298426183.1" -> "8639444591122381034.1" [label="[t]"];
"8639444591122381034.1" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")\n/\\ turn = 0
#8639444591122381034.1#"];
"1580961522298426183.2" -> "1580961522298426183.2" [label="[f]"];
"1580961522298426183.2" [label="/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")\n/\\ turn = 0
#1580961522298426183.2#"];
"1580961522298426183.2" -> "8639444591122381034.2" [label="[t]"];
"8639444591122381034.2" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")\n/\\ turn = 0
#8639444591122381034.2#"];
"8639444591122381034.0" -> "8489255053443179153.2" [label="[t]"];
"8489255053443179153.2" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")\n/\\ turn = 1
#8489255053443179153.2#"];
"8639444591122381034.0" -> "8639444591122381034.2" [label="[f]"];
"8639444591122381034.2" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")\n/\\ turn = 0
#8639444591122381034.2#"];
"8639444591122381034.1" -> "8489255053443179153.0" [label="[t]"];
"8489255053443179153.0" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")\n/\\ turn = 1
#8489255053443179153.0#"];
"8639444591122381034.1" -> "8489255053443179153.1" [label="[t]"];
"8489255053443179153.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")\n/\\ turn = 1
#8489255053443179153.1#"];
"8639444591122381034.1" -> "8639444591122381034.0" [label="[f]"];
"8639444591122381034.0" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")\n/\\ turn = 0
#8639444591122381034.0#"];
"8639444591122381034.1" -> "8639444591122381034.1" [label="[f]"];
"8639444591122381034.1" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")\n/\\ turn = 0
#8639444591122381034.1#"];
"8639444591122381034.2" -> "8489255053443179153.2" [label="[t]"];
"8489255053443179153.2" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")\n/\\ turn = 1
#8489255053443179153.2#"];
"8639444591122381034.2" -> "8639444591122381034.2" [label="[f]"];
"8639444591122381034.2" [label="/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")\n/\\ turn = 0
#8639444591122381034.2#"];
"-8187951950540390906.1" -> "-8187951950540390906.1" [label="[f]"];
"-8187951950540390906.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"exit\")\n/\\ turn = 1
#-8187951950540390906.1#"];
"-8187951950540390906.1" -> "-2304256186017901240.1" [label="[t]"];
"-2304256186017901240.1" [label="/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#-2304256186017901240.1#"];
"-8187951950540390906.1" -> "-8265530133940623444.1" [label="[t]"];
"-8265530133940623444.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")\n/\\ turn = 1
#-8265530133940623444.1#"];
"-8265530133940623444.1" -> "4021501492038283011.1" [label="[t]"];
"4021501492038283011.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")\n/\\ turn = 0
#4021501492038283011.1#"];
"-8265530133940623444.1" -> "-8265530133940623444.1" [label="[f]"];
"-8265530133940623444.1" [label="/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")\n/\\ turn = 1
#-8265530133940623444.1#"];
}
}33940623444.1#"];
}
}
\ No newline at end of file
------------------------ MODULE MutualExclusionSpec ------------------------
\* Module MutualExclusionSpec provides specification for mutual-exclusion problem
\* Module MutualExclusionSpec provides general specification for mutual-exclusion problem.
\* Procs is set of processes.
\* Every process is assumed to loop and enter into "cs" state on every interation.
\* States besides non-critical are represented as "non-cs".
\* Non-critical state is represented as "non-cs".
\* When process decides it want to enter into critical-section, it first goes into "csentry" state.
CONSTANT Procs
VARIABLES pc
TypeOK == pc \in [Procs -> {"non-cs", "cs"}]
TypeOK == pc \in [Procs -> {"non-cs", "csentry", "cs"}]
vars == <<pc>>
\* All processes start from non-critical section.
Init == pc \in [Procs -> {"non-cs"}]
\* WantCS(proc) is action when proc decides that it wants to enter into critical section.
WantCS(proc) ==
/\ pc[proc] = "non-cs"
/\ pc' = [pc EXCEPT ![proc] = "csentry"]
\* EnterCS(proc) is action when proc enters critical section.
EnterCS(proc) ==
/\ \A i \in Procs: pc[i] /= "cs"
/\ pc[proc] = "csentry"
/\ \A i \in Procs \ {proc} : pc[i] /= "cs"
/\ pc' = [pc EXCEPT ![proc] = "cs"]
\* ExitCS(proc) is action when proc leaves critical section.
ExitCS(proc) ==
/\ pc[proc] = "cs" \* XXX also check others are not in cs here?
/\ pc[proc] = "cs"
/\ pc' = [pc EXCEPT ![proc] = "non-cs"]
Next == \E i \in Procs: EnterCS(i) \/ ExitCS(i)
Next == \E i \in Procs: WantCS(i) \/ EnterCS(i) \/ ExitCS(i)
Spec == /\ Init
/\ [][Next]_vars
/\ \A i \in Procs: (
/\ \A i \in Procs: ( \* fairness
\* not fair for WantCS - it can pause and even hang there
/\ SF_vars(EnterCS(i))
/\ SF_vars(ExitCS(i)))
--------
----------------
\* MutualExclusion is invariant indicating that no two processes can be inside critical section at the same time.
MutualExclusion == \A i,j \in Procs: (i /= j) => ~((pc[i] = "cs") /\ (pc[j] = "cs"))
\* Liveness is temporal property indicating that every process has a chance to enter critical section and leaves it.
Liveness == \A i \in Procs:
/\ (pc[i] = "non-cs") ~> <>(pc[i] = "cs")
/\ (pc[i] = "cs") ~> (pc[i] = "non-cs") \* XXX pc -> pc'
\* Liveness == (pc[0] = "cs") => <>(pc[0] = "ZZZZ")
\* Liveness == (pc[0] = "cs") => <>(pc[0] = "ZZZZ")
\*Liveness == (pc[0] = "cs") ~> <>(pc[0] = "non-cs")
/\ (pc[i] = "csentry") ~> (pc[i] = "cs")
/\ (pc[i] = "cs") ~> (pc[i] = "non-cs")
THEOREM Spec => []TypeOK
......@@ -56,5 +59,5 @@ THEOREM Spec => Liveness
=============================================================================
\* Modification History
\* Last modified Wed Feb 09 15:48:07 MSK 2022 by kirr
\* Last modified Wed Feb 09 19:11:11 MSK 2022 by kirr
\* Created Wed Feb 09 13:11:29 MSK 2022 by kirr
No preview for this file type
......@@ -3,20 +3,27 @@
\* Procs is set of processes.
\* Every process is assumed to loop and enter into "cs" state on every interation.
\* States besides non-critical are represented as "non-cs".
\* Non-critical state is represented as "non-cs".
\* When process decides it want to enter into critical-section, it first goes into "csentry" state.
CONSTANT Procs
VARIABLES pc
TypeOK == pc \in [Procs -> {"non-cs", "cs"}]
TypeOK == pc \in [Procs -> {"non-cs", "csentry", "cs"}]
vars == <<pc>>
\* All processes start from non-critical section.
Init == pc \in [Procs -> {"non-cs"}]
\* WantCS(proc) is action when proc decides that it wants to enter into critical section.
WantCS(proc) ==
/\ pc[proc] = "non-cs"
/\ pc' = [pc EXCEPT ![proc] = "csentry"]
\* EnterCS(proc) is action when proc enters critical section.
EnterCS(proc) ==
/\ \A i \in Procs: pc[i] /= "cs"
/\ pc[proc] = "csentry"
/\ \A i \in Procs \ {proc} : pc[i] /= "cs"
/\ pc' = [pc EXCEPT ![proc] = "cs"]
\* ExitCS(proc) is action when proc leaves critical section.
......@@ -24,12 +31,13 @@ ExitCS(proc) ==
/\ pc[proc] = "cs"
/\ pc' = [pc EXCEPT ![proc] = "non-cs"]
Next == \E i \in Procs: EnterCS(i) \/ ExitCS(i)
Next == \E i \in Procs: WantCS(i) \/ EnterCS(i) \/ ExitCS(i)
Spec == /\ Init
/\ [][Next]_vars
/\ \A i \in Procs: ( \* fairness
\* not fair for WantCS - it can pause and even hang there
/\ SF_vars(EnterCS(i))
/\ SF_vars(ExitCS(i)))
......@@ -40,7 +48,7 @@ MutualExclusion == \A i,j \in Procs: (i /= j) => ~((pc[i] = "cs") /\ (pc[j] = "c
\* Liveness is temporal property indicating that every process has a chance to enter critical section and leaves it.
Liveness == \A i \in Procs:
/\ (pc[i] = "non-cs") ~> (pc[i] = "cs")
/\ (pc[i] = "csentry") ~> (pc[i] = "cs")
/\ (pc[i] = "cs") ~> (pc[i] = "non-cs")
......@@ -51,5 +59,5 @@ THEOREM Spec => Liveness
=============================================================================
\* Modification History
\* Last modified Wed Feb 09 17:36:37 MSK 2022 by kirr
\* Last modified Wed Feb 09 19:11:11 MSK 2022 by kirr
\* Created Wed Feb 09 13:11:29 MSK 2022 by kirr
......@@ -2,11 +2,10 @@
CONSTANTS
p1 = p1
p2 = p2
p3 = p3
\* MV CONSTANT definitions
CONSTANT
Procs <- const_1644419360528487000
Procs <- const_1644425758311553000
\* SPECIFICATION definition
SPECIFICATION
Spec
......@@ -17,4 +16,4 @@ MutualExclusion
\* PROPERTY definition
PROPERTY
Liveness
\* Generated on Wed Feb 09 18:09:20 MSK 2022
\ No newline at end of file
\* Generated on Wed Feb 09 19:55:58 MSK 2022
\ No newline at end of file
......@@ -2,7 +2,7 @@
TLC2 Version 2.16 of Day Month 20?? (rev: 9310ee7)
@!@!@ENDMSG 2262 @!@!@
@!@!@STARTMSG 2187:0 @!@!@
Running breadth-first search Model-Checking with fp 88 and seed -4612128687295260141 with 2 workers on 4 cores with 1161MB heap and 2608MB offheap memory [pid: 72336] (Linux 5.10.0-10-amd64 amd64, AdoptOpenJDK 14.0.1 x86_64, OffHeapDiskFPSet, DiskStateQueue).
Running breadth-first search Model-Checking with fp 64 and seed -2330330544042997939 with 2 workers on 4 cores with 1161MB heap and 2608MB offheap memory [pid: 76477] (Linux 5.10.0-10-amd64 amd64, AdoptOpenJDK 14.0.1 x86_64, OffHeapDiskFPSet, DiskStateQueue).
@!@!@ENDMSG 2187 @!@!@
@!@!@STARTMSG 2220:0 @!@!@
Starting SANY...
......@@ -23,149 +23,167 @@ Semantic processing of module MC
SANY finished.
@!@!@ENDMSG 2219 @!@!@
@!@!@STARTMSG 2185:0 @!@!@
Starting... (2022-02-09 18:09:20)
Starting... (2022-02-09 19:55:58)
@!@!@ENDMSG 2185 @!@!@
@!@!@STARTMSG 2212:0 @!@!@
Implied-temporal checking--satisfiability problem has 6 branches.
Implied-temporal checking--satisfiability problem has 4 branches.
@!@!@ENDMSG 2212 @!@!@
@!@!@STARTMSG 2189:0 @!@!@
Computing initial states...
@!@!@ENDMSG 2189 @!@!@
@!@!@STARTMSG 2190:0 @!@!@
Finished computing initial states: 1 distinct state generated at 2022-02-09 18:09:21.
Finished computing initial states: 1 distinct state generated at 2022-02-09 19:55:59.
@!@!@ENDMSG 2190 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(2) at 2022-02-09 18:09:21: 7 states generated, 4 distinct states found, 0 states left on queue.
Progress(4) at 2022-02-09 19:55:59: 15 states generated, 8 distinct states found, 0 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2192:0 @!@!@
Checking 6 branches of temporal properties for the complete state space with 24 total distinct states at (2022-02-09 18:09:21)
Checking 4 branches of temporal properties for the complete state space with 32 total distinct states at (2022-02-09 19:55:59)
@!@!@ENDMSG 2192 @!@!@
@!@!@STARTMSG 2267:0 @!@!@
Finished checking temporal properties in 00s at 2022-02-09 18:09:21
Finished checking temporal properties in 00s at 2022-02-09 19:55:59
@!@!@ENDMSG 2267 @!@!@
@!@!@STARTMSG 2193:0 @!@!@
Model checking completed. No error has been found.
Estimates of the probability that TLC did not check all reachable states
because two distinct states had the same fingerprint:
calculated (optimistic): val = 6.5E-19
calculated (optimistic): val = 3.0E-18
@!@!@ENDMSG 2193 @!@!@
@!@!@STARTMSG 2201:0 @!@!@
The coverage statistics at 2022-02-09 18:09:21
The coverage statistics at 2022-02-09 19:55:59
@!@!@ENDMSG 2201 @!@!@
@!@!@STARTMSG 2773:0 @!@!@
<Init line 15, col 1 to line 15, col 4 of module MutualExclusionSpec>: 1:1
<Init line 16, col 1 to line 16, col 4 of module MutualExclusionSpec>: 1:1
@!@!@ENDMSG 2773 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 15, col 9 to line 15, col 36 of module MutualExclusionSpec: 1
line 16, col 9 to line 16, col 36 of module MutualExclusionSpec: 1
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
|line 15, col 16 to line 15, col 36 of module MutualExclusionSpec: 1:3
|line 16, col 16 to line 16, col 36 of module MutualExclusionSpec: 1:2
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 15, col 17 to line 15, col 21 of module MutualExclusionSpec: 1
||line 16, col 17 to line 16, col 21 of module MutualExclusionSpec: 1
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
||line 15, col 26 to line 15, col 35 of module MutualExclusionSpec: 1:8
||line 16, col 26 to line 16, col 35 of module MutualExclusionSpec: 1:5
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<EnterCS line 18, col 1 to line 18, col 13 of module MutualExclusionSpec>: 3:12
<WantCS line 19, col 1 to line 19, col 12 of module MutualExclusionSpec>: 4:24
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 19, col 28 to line 19, col 40 of module MutualExclusionSpec: 237
line 20, col 12 to line 20, col 30 of module MutualExclusionSpec: 76
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 19, col 28 to line 19, col 32 of module MutualExclusionSpec: 201
|line 20, col 12 to line 20, col 19 of module MutualExclusionSpec: 52
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 19, col 21 to line 19, col 25 of module MutualExclusionSpec: 99
line 21, col 12 to line 21, col 48 of module MutualExclusionSpec: 24
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<EnterCS line 24, col 1 to line 24, col 13 of module MutualExclusionSpec>: 3:16
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 25, col 12 to line 25, col 31 of module MutualExclusionSpec: 68
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 25, col 12 to line 25, col 19 of module MutualExclusionSpec: 52
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 26, col 38 to line 26, col 50 of module MutualExclusionSpec: 34
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 26, col 38 to line 26, col 42 of module MutualExclusionSpec: 18
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 26, col 21 to line 26, col 34 of module MutualExclusionSpec: 18
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 26, col 21 to line 26, col 25 of module MutualExclusionSpec: 18
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
|line 11, col 1 to line 11, col 12 of module MC: 99:396
||line 11, col 1 to line 11, col 8 of module MC: 18:36
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 11, col 2 to line 11, col 3 of module MC: 99
|||line 11, col 2 to line 11, col 3 of module MC: 18
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 11, col 6 to line 11, col 7 of module MC: 99
|||line 11, col 6 to line 11, col 7 of module MC: 18
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 11, col 10 to line 11, col 11 of module MC: 99
|line 26, col 29 to line 26, col 34 of module MutualExclusionSpec: 18
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 20, col 12 to line 20, col 43 of module MutualExclusionSpec: 12
line 27, col 12 to line 27, col 43 of module MutualExclusionSpec: 16
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<ExitCS line 23, col 1 to line 23, col 12 of module MutualExclusionSpec>: 0:29
<ExitCS line 30, col 1 to line 30, col 12 of module MutualExclusionSpec>: 0:10
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 24, col 12 to line 24, col 26 of module MutualExclusionSpec: 128
line 31, col 12 to line 31, col 26 of module MutualExclusionSpec: 62
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 24, col 12 to line 24, col 19 of module MutualExclusionSpec: 99
|line 31, col 12 to line 31, col 19 of module MutualExclusionSpec: 52
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 25, col 12 to line 25, col 47 of module MutualExclusionSpec: 29
line 32, col 12 to line 32, col 47 of module MutualExclusionSpec: 10
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<TypeOK line 10, col 1 to line 10, col 6 of module MutualExclusionSpec>
<TypeOK line 11, col 1 to line 11, col 6 of module MutualExclusionSpec>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 10, col 11 to line 10, col 44 of module MutualExclusionSpec: 4
line 11, col 11 to line 11, col 55 of module MutualExclusionSpec: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<MutualExclusion line 39, col 1 to line 39, col 15 of module MutualExclusionSpec>
<MutualExclusion line 47, col 1 to line 47, col 15 of module MutualExclusionSpec>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 39, col 20 to line 39, col 84 of module MutualExclusionSpec: 4
line 47, col 20 to line 47, col 84 of module MutualExclusionSpec: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 39, col 38 to line 39, col 84 of module MutualExclusionSpec: 36
|line 47, col 38 to line 47, col 84 of module MutualExclusionSpec: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 39, col 39 to line 39, col 44 of module MutualExclusionSpec: 36
||line 47, col 39 to line 47, col 44 of module MutualExclusionSpec: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 39, col 50 to line 39, col 84 of module MutualExclusionSpec: 24
||line 47, col 50 to line 47, col 84 of module MutualExclusionSpec: 16
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 39, col 52 to line 39, col 83 of module MutualExclusionSpec: 24
|||line 47, col 52 to line 47, col 83 of module MutualExclusionSpec: 16
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 39, col 53 to line 39, col 64 of module MutualExclusionSpec: 24
||||line 47, col 53 to line 47, col 64 of module MutualExclusionSpec: 16
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 39, col 71 to line 39, col 82 of module MutualExclusionSpec: 6
||||line 47, col 71 to line 47, col 82 of module MutualExclusionSpec: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 39, col 31 to line 39, col 35 of module MutualExclusionSpec: 4
|line 47, col 31 to line 47, col 35 of module MutualExclusionSpec: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
||line 11, col 1 to line 11, col 12 of module MC: 4:68
||line 11, col 1 to line 11, col 8 of module MC: 8:80
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 11, col 2 to line 11, col 3 of module MC: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 11, col 6 to line 11, col 7 of module MC: 4
|||line 11, col 2 to line 11, col 3 of module MC: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 11, col 10 to line 11, col 11 of module MC: 4
|||line 11, col 6 to line 11, col 7 of module MC: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2202:0 @!@!@
End of statistics.
@!@!@ENDMSG 2202 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(2) at 2022-02-09 18:09:21: 7 states generated (327 s/min), 4 distinct states found (186 ds/min), 0 states left on queue.
Progress(4) at 2022-02-09 19:55:59: 15 states generated (708 s/min), 8 distinct states found (377 ds/min), 0 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2199:0 @!@!@
7 states generated, 4 distinct states found, 0 states left on queue.
15 states generated, 8 distinct states found, 0 states left on queue.
@!@!@ENDMSG 2199 @!@!@
@!@!@STARTMSG 2194:0 @!@!@
The depth of the complete state graph search is 2.
The depth of the complete state graph search is 4.
@!@!@ENDMSG 2194 @!@!@
@!@!@STARTMSG 2268:0 @!@!@
The average outdegree of the complete state graph is 1 (minimum is 0, the maximum 3 and the 95th percentile is 3).
The average outdegree of the complete state graph is 1 (minimum is 0, the maximum 2 and the 95th percentile is 2).
@!@!@ENDMSG 2268 @!@!@
@!@!@STARTMSG 2186:0 @!@!@
Finished in 1296ms at (2022-02-09 18:09:21)
Finished in 1276ms at (2022-02-09 19:55:59)
@!@!@ENDMSG 2186 @!@!@
......@@ -3,14 +3,14 @@ EXTENDS MutualExclusionSpec, TLC
\* MV CONSTANT declarations@modelParameterConstants
CONSTANTS
p1, p2, p3
p1, p2
----
\* MV CONSTANT definitions Procs
const_1644419360528487000 ==
{p1, p2, p3}
const_1644425758311553000 ==
{p1, p2}
----
=============================================================================
\* Modification History
\* Created Wed Feb 09 18:09:20 MSK 2022 by kirr
\* Created Wed Feb 09 19:55:58 MSK 2022 by kirr
......@@ -2,7 +2,7 @@
TLC2 Version 2.16 of Day Month 20?? (rev: 9310ee7)
@!@!@ENDMSG 2262 @!@!@
@!@!@STARTMSG 2187:0 @!@!@
Running breadth-first search Model-Checking with fp 88 and seed -4612128687295260141 with 2 workers on 4 cores with 1161MB heap and 2608MB offheap memory [pid: 72336] (Linux 5.10.0-10-amd64 amd64, AdoptOpenJDK 14.0.1 x86_64, OffHeapDiskFPSet, DiskStateQueue).
Running breadth-first search Model-Checking with fp 64 and seed -2330330544042997939 with 2 workers on 4 cores with 1161MB heap and 2608MB offheap memory [pid: 76477] (Linux 5.10.0-10-amd64 amd64, AdoptOpenJDK 14.0.1 x86_64, OffHeapDiskFPSet, DiskStateQueue).
@!@!@ENDMSG 2187 @!@!@
@!@!@STARTMSG 2220:0 @!@!@
Starting SANY...
......@@ -23,149 +23,167 @@ Semantic processing of module MC
SANY finished.
@!@!@ENDMSG 2219 @!@!@
@!@!@STARTMSG 2185:0 @!@!@
Starting... (2022-02-09 18:09:20)
Starting... (2022-02-09 19:55:58)
@!@!@ENDMSG 2185 @!@!@
@!@!@STARTMSG 2212:0 @!@!@
Implied-temporal checking--satisfiability problem has 6 branches.
Implied-temporal checking--satisfiability problem has 4 branches.
@!@!@ENDMSG 2212 @!@!@
@!@!@STARTMSG 2189:0 @!@!@
Computing initial states...
@!@!@ENDMSG 2189 @!@!@
@!@!@STARTMSG 2190:0 @!@!@
Finished computing initial states: 1 distinct state generated at 2022-02-09 18:09:21.
Finished computing initial states: 1 distinct state generated at 2022-02-09 19:55:59.
@!@!@ENDMSG 2190 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(2) at 2022-02-09 18:09:21: 7 states generated, 4 distinct states found, 0 states left on queue.
Progress(4) at 2022-02-09 19:55:59: 15 states generated, 8 distinct states found, 0 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2192:0 @!@!@
Checking 6 branches of temporal properties for the complete state space with 24 total distinct states at (2022-02-09 18:09:21)
Checking 4 branches of temporal properties for the complete state space with 32 total distinct states at (2022-02-09 19:55:59)
@!@!@ENDMSG 2192 @!@!@
@!@!@STARTMSG 2267:0 @!@!@
Finished checking temporal properties in 00s at 2022-02-09 18:09:21
Finished checking temporal properties in 00s at 2022-02-09 19:55:59
@!@!@ENDMSG 2267 @!@!@
@!@!@STARTMSG 2193:0 @!@!@
Model checking completed. No error has been found.
Estimates of the probability that TLC did not check all reachable states
because two distinct states had the same fingerprint:
calculated (optimistic): val = 6.5E-19
calculated (optimistic): val = 3.0E-18
@!@!@ENDMSG 2193 @!@!@
@!@!@STARTMSG 2201:0 @!@!@
The coverage statistics at 2022-02-09 18:09:21
The coverage statistics at 2022-02-09 19:55:59
@!@!@ENDMSG 2201 @!@!@
@!@!@STARTMSG 2773:0 @!@!@
<Init line 15, col 1 to line 15, col 4 of module MutualExclusionSpec>: 1:1
<Init line 16, col 1 to line 16, col 4 of module MutualExclusionSpec>: 1:1
@!@!@ENDMSG 2773 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 15, col 9 to line 15, col 36 of module MutualExclusionSpec: 1
line 16, col 9 to line 16, col 36 of module MutualExclusionSpec: 1
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
|line 15, col 16 to line 15, col 36 of module MutualExclusionSpec: 1:3
|line 16, col 16 to line 16, col 36 of module MutualExclusionSpec: 1:2
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 15, col 17 to line 15, col 21 of module MutualExclusionSpec: 1
||line 16, col 17 to line 16, col 21 of module MutualExclusionSpec: 1
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
||line 15, col 26 to line 15, col 35 of module MutualExclusionSpec: 1:8
||line 16, col 26 to line 16, col 35 of module MutualExclusionSpec: 1:5
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<EnterCS line 18, col 1 to line 18, col 13 of module MutualExclusionSpec>: 3:12
<WantCS line 19, col 1 to line 19, col 12 of module MutualExclusionSpec>: 4:24
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 19, col 28 to line 19, col 40 of module MutualExclusionSpec: 237
line 20, col 12 to line 20, col 30 of module MutualExclusionSpec: 76
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 19, col 28 to line 19, col 32 of module MutualExclusionSpec: 201
|line 20, col 12 to line 20, col 19 of module MutualExclusionSpec: 52
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 19, col 21 to line 19, col 25 of module MutualExclusionSpec: 99
line 21, col 12 to line 21, col 48 of module MutualExclusionSpec: 24
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<EnterCS line 24, col 1 to line 24, col 13 of module MutualExclusionSpec>: 3:16
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 25, col 12 to line 25, col 31 of module MutualExclusionSpec: 68
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 25, col 12 to line 25, col 19 of module MutualExclusionSpec: 52
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 26, col 38 to line 26, col 50 of module MutualExclusionSpec: 34
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 26, col 38 to line 26, col 42 of module MutualExclusionSpec: 18
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 26, col 21 to line 26, col 34 of module MutualExclusionSpec: 18
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 26, col 21 to line 26, col 25 of module MutualExclusionSpec: 18
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
|line 11, col 1 to line 11, col 12 of module MC: 99:396
||line 11, col 1 to line 11, col 8 of module MC: 18:36
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 11, col 2 to line 11, col 3 of module MC: 99
|||line 11, col 2 to line 11, col 3 of module MC: 18
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 11, col 6 to line 11, col 7 of module MC: 99
|||line 11, col 6 to line 11, col 7 of module MC: 18
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 11, col 10 to line 11, col 11 of module MC: 99
|line 26, col 29 to line 26, col 34 of module MutualExclusionSpec: 18
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 20, col 12 to line 20, col 43 of module MutualExclusionSpec: 12
line 27, col 12 to line 27, col 43 of module MutualExclusionSpec: 16
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<ExitCS line 23, col 1 to line 23, col 12 of module MutualExclusionSpec>: 0:29
<ExitCS line 30, col 1 to line 30, col 12 of module MutualExclusionSpec>: 0:10
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 24, col 12 to line 24, col 26 of module MutualExclusionSpec: 128
line 31, col 12 to line 31, col 26 of module MutualExclusionSpec: 62
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 24, col 12 to line 24, col 19 of module MutualExclusionSpec: 99
|line 31, col 12 to line 31, col 19 of module MutualExclusionSpec: 52
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 25, col 12 to line 25, col 47 of module MutualExclusionSpec: 29
line 32, col 12 to line 32, col 47 of module MutualExclusionSpec: 10
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<TypeOK line 10, col 1 to line 10, col 6 of module MutualExclusionSpec>
<TypeOK line 11, col 1 to line 11, col 6 of module MutualExclusionSpec>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 10, col 11 to line 10, col 44 of module MutualExclusionSpec: 4
line 11, col 11 to line 11, col 55 of module MutualExclusionSpec: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<MutualExclusion line 39, col 1 to line 39, col 15 of module MutualExclusionSpec>
<MutualExclusion line 47, col 1 to line 47, col 15 of module MutualExclusionSpec>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 39, col 20 to line 39, col 84 of module MutualExclusionSpec: 4
line 47, col 20 to line 47, col 84 of module MutualExclusionSpec: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 39, col 38 to line 39, col 84 of module MutualExclusionSpec: 36
|line 47, col 38 to line 47, col 84 of module MutualExclusionSpec: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 39, col 39 to line 39, col 44 of module MutualExclusionSpec: 36
||line 47, col 39 to line 47, col 44 of module MutualExclusionSpec: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 39, col 50 to line 39, col 84 of module MutualExclusionSpec: 24
||line 47, col 50 to line 47, col 84 of module MutualExclusionSpec: 16
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 39, col 52 to line 39, col 83 of module MutualExclusionSpec: 24
|||line 47, col 52 to line 47, col 83 of module MutualExclusionSpec: 16
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 39, col 53 to line 39, col 64 of module MutualExclusionSpec: 24
||||line 47, col 53 to line 47, col 64 of module MutualExclusionSpec: 16
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 39, col 71 to line 39, col 82 of module MutualExclusionSpec: 6
||||line 47, col 71 to line 47, col 82 of module MutualExclusionSpec: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 39, col 31 to line 39, col 35 of module MutualExclusionSpec: 4
|line 47, col 31 to line 47, col 35 of module MutualExclusionSpec: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
||line 11, col 1 to line 11, col 12 of module MC: 4:68
||line 11, col 1 to line 11, col 8 of module MC: 8:80
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 11, col 2 to line 11, col 3 of module MC: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 11, col 6 to line 11, col 7 of module MC: 4
|||line 11, col 2 to line 11, col 3 of module MC: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 11, col 10 to line 11, col 11 of module MC: 4
|||line 11, col 6 to line 11, col 7 of module MC: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2202:0 @!@!@
End of statistics.
@!@!@ENDMSG 2202 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(2) at 2022-02-09 18:09:21: 7 states generated (327 s/min), 4 distinct states found (186 ds/min), 0 states left on queue.
Progress(4) at 2022-02-09 19:55:59: 15 states generated (708 s/min), 8 distinct states found (377 ds/min), 0 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2199:0 @!@!@
7 states generated, 4 distinct states found, 0 states left on queue.
15 states generated, 8 distinct states found, 0 states left on queue.
@!@!@ENDMSG 2199 @!@!@
@!@!@STARTMSG 2194:0 @!@!@
The depth of the complete state graph search is 2.
The depth of the complete state graph search is 4.
@!@!@ENDMSG 2194 @!@!@
@!@!@STARTMSG 2268:0 @!@!@
The average outdegree of the complete state graph is 1 (minimum is 0, the maximum 3 and the 95th percentile is 3).
The average outdegree of the complete state graph is 1 (minimum is 0, the maximum 2 and the 95th percentile is 2).
@!@!@ENDMSG 2268 @!@!@
@!@!@STARTMSG 2186:0 @!@!@
Finished in 1296ms at (2022-02-09 18:09:21)
Finished in 1276ms at (2022-02-09 19:55:59)
@!@!@ENDMSG 2186 @!@!@
......@@ -3,25 +3,44 @@ edge [colorscheme="paired12"]
nodesep=0.35;
subgraph cluster_graph {
color="white";
4634416839099240645 [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"non-cs\" @@ p3 :> \"non-cs\")",style = filled]
4634416839099240645 -> 5434594326082262714 [label="",color="2",fontcolor="2"];
5434594326082262714 [label="pc = (p1 :> \"cs\" @@ p2 :> \"non-cs\" @@ p3 :> \"non-cs\")"];
5434594326082262714 -> 4634416839099240645 [label="",color="3",fontcolor="3"];
4634416839099240645 -> -8039079448462160139 [label="",color="2",fontcolor="2"];
-8039079448462160139 [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"cs\" @@ p3 :> \"non-cs\")"];
5434594326082262714 -> 5434594326082262714 [style="dashed"];
4634416839099240645 -> -1387407517741503287 [label="",color="2",fontcolor="2"];
-1387407517741503287 [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"non-cs\" @@ p3 :> \"cs\")"];
4634416839099240645 -> 4634416839099240645 [style="dashed"];
-8039079448462160139 -> 4634416839099240645 [label="",color="3",fontcolor="3"];
-8039079448462160139 -> -8039079448462160139 [style="dashed"];
-1387407517741503287 -> 4634416839099240645 [label="",color="3",fontcolor="3"];
-1387407517741503287 -> -1387407517741503287 [style="dashed"];
{rank = same; 4634416839099240645;}
{rank = same; 5434594326082262714;-8039079448462160139;-1387407517741503287;}
-7824571988019409220 [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"non-cs\")",style = filled]
-7824571988019409220 -> 5080291979216001926 [label="",color="2",fontcolor="2"];
5080291979216001926 [label="pc = (p1 :> \"csentry\" @@ p2 :> \"non-cs\")"];
-7824571988019409220 -> -8272984896072399991 [label="",color="2",fontcolor="2"];
-8272984896072399991 [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"csentry\")"];
5080291979216001926 -> 897139957786517708 [label="",color="3",fontcolor="3"];
897139957786517708 [label="pc = (p1 :> \"cs\" @@ p2 :> \"non-cs\")"];
-7824571988019409220 -> -7824571988019409220 [style="dashed"];
5080291979216001926 -> 4489738507008100367 [label="",color="2",fontcolor="2"];
4489738507008100367 [label="pc = (p1 :> \"csentry\" @@ p2 :> \"csentry\")"];
5080291979216001926 -> 5080291979216001926 [style="dashed"];
-8272984896072399991 -> 4489738507008100367 [label="",color="2",fontcolor="2"];
-8272984896072399991 -> -9137926712894874236 [label="",color="3",fontcolor="3"];
-9137926712894874236 [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"cs\")"];
-8272984896072399991 -> -8272984896072399991 [style="dashed"];
897139957786517708 -> -7824571988019409220 [label="",color="4",fontcolor="4"];
897139957786517708 -> -1529149678030047826 [label="",color="2",fontcolor="2"];
-1529149678030047826 [label="pc = (p1 :> \"cs\" @@ p2 :> \"csentry\")"];
897139957786517708 -> 897139957786517708 [style="dashed"];
4489738507008100367 -> -1529149678030047826 [label="",color="3",fontcolor="3"];
4489738507008100367 -> 1143334986297935796 [label="",color="3",fontcolor="3"];
1143334986297935796 [label="pc = (p1 :> \"csentry\" @@ p2 :> \"cs\")"];
4489738507008100367 -> 4489738507008100367 [style="dashed"];
-9137926712894874236 -> 1143334986297935796 [label="",color="2",fontcolor="2"];
-9137926712894874236 -> -7824571988019409220 [label="",color="4",fontcolor="4"];
-9137926712894874236 -> -9137926712894874236 [style="dashed"];
-1529149678030047826 -> -8272984896072399991 [label="",color="4",fontcolor="4"];
-1529149678030047826 -> -1529149678030047826 [style="dashed"];
1143334986297935796 -> 5080291979216001926 [label="",color="4",fontcolor="4"];
1143334986297935796 -> 1143334986297935796 [style="dashed"];
{rank = same; -7824571988019409220;}
{rank = same; -8272984896072399991;5080291979216001926;}
{rank = same; -9137926712894874236;897139957786517708;4489738507008100367;}
{rank = same; 1143334986297935796;-1529149678030047826;}
}
subgraph cluster_legend {graph[style=bold];label = "Next State Actions" style="solid"
node [ labeljust="l",colorscheme="paired12",style=filled,shape=record ]
ExitCS [label="ExitCS",fillcolor=3]
EnterCS [label="EnterCS",fillcolor=2]
WantCS [label="WantCS",fillcolor=2]
ExitCS [label="ExitCS",fillcolor=4]
EnterCS [label="EnterCS",fillcolor=3]
}}
\ No newline at end of file
......@@ -2,94 +2,109 @@ digraph DiskGraph {
nodesep=0.35;
subgraph cluster_graph {
color="white";
"4634416839099240645.1" [style = filled] [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"non-cs\" @@ p3 :> \"non-cs\")
#4634416839099240645.1#"]
"4634416839099240645.1" -> "-8039079448462160139.1" [label="[fftffftftftf]"];
"-8039079448462160139.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"cs\" @@ p3 :> \"non-cs\")
#-8039079448462160139.1#"];
"-8039079448462160139.1" -> "4634416839099240645.1" [style="dotted"] [label="[ffftffttfttt]"];
"4634416839099240645.1" -> "4634416839099240645.1" [label="[fffffftftftf]"];
"4634416839099240645.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"non-cs\" @@ p3 :> \"non-cs\")
#4634416839099240645.1#"];
"4634416839099240645.1" -> "-1387407517741503287.0" [label="[fffftftftftf]"];
"-1387407517741503287.0" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"non-cs\" @@ p3 :> \"cs\")
#-1387407517741503287.0#"];
"4634416839099240645.1" -> "-1387407517741503287.1" [label="[fffftftftftf]"];
"-1387407517741503287.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"non-cs\" @@ p3 :> \"cs\")
#-1387407517741503287.1#"];
"-1387407517741503287.1" -> "4634416839099240645.1" [style="dotted"] [label="[ffffftfttttt]"];
"4634416839099240645.1" -> "5434594326082262714.1" [label="[tffffftftftf]"];
"5434594326082262714.1" [label="pc = (p1 :> \"cs\" @@ p2 :> \"non-cs\" @@ p3 :> \"non-cs\")
#5434594326082262714.1#"];
"5434594326082262714.1" -> "4634416839099240645.1" [style="dotted"] [label="[ftffffttttft]"];
"-7824571988019409220.1" [style = filled] [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"non-cs\")
#-7824571988019409220.1#"]
"-7824571988019409220.1" -> "5080291979216001926.1" [label="[fffftttt]"];
"5080291979216001926.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"non-cs\")
#5080291979216001926.1#"];
"5080291979216001926.1" -> "897139957786517708.1" [style="dotted"] [label="[tffftttf]"];
"897139957786517708.1" -> "-7824571988019409220.1" [style="dotted"] [label="[ftffttft]"];
"897139957786517708.1" -> "-1529149678030047826.1" [style="dotted"] [label="[ffffttft]"];
"5080291979216001926.1" -> "4489738507008100367.1" [style="dotted"] [label="[fffftttf]"];
"-7824571988019409220.1" -> "-8272984896072399991.1" [label="[fffftttt]"];
"-8272984896072399991.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"csentry\")
#-8272984896072399991.1#"];
"-8272984896072399991.1" -> "4489738507008100367.1" [style="dotted"] [label="[fffftftt]"];
"-8272984896072399991.1" -> "-9137926712894874236.0" [style="dotted"] [label="[fftftftt]"];
"-8272984896072399991.1" -> "-9137926712894874236.1" [style="dotted"] [label="[fftftftt]"];
"-7824571988019409220.1" -> "-7824571988019409220.1" [label="[fffftttt]"];
"-7824571988019409220.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"non-cs\")
#-7824571988019409220.1#"];
"4489738507008100367.1" -> "1143334986297935796.0" [label="[fftftftf]"];
"1143334986297935796.0" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"cs\")
#1143334986297935796.0#"];
"4489738507008100367.1" -> "1143334986297935796.1" [label="[fftftftf]"];
"1143334986297935796.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"cs\")
#1143334986297935796.1#"];
"4489738507008100367.1" -> "-1529149678030047826.1" [label="[tffftftf]"];
"-1529149678030047826.1" [label="pc = (p1 :> \"cs\" @@ p2 :> \"csentry\")
#-1529149678030047826.1#"];
"4489738507008100367.1" -> "4489738507008100367.1" [label="[fffftftf]"];
"4489738507008100367.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"csentry\")
#4489738507008100367.1#"];
"-9137926712894874236.0" -> "1143334986297935796.2" [label="[fffffttt]"];
"1143334986297935796.2" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"cs\")
#1143334986297935796.2#"];
"-9137926712894874236.0" -> "-9137926712894874236.2" [label="[fffffttt]"];
"-9137926712894874236.2" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"cs\")
#-9137926712894874236.2#"];
"-9137926712894874236.2" -> "1143334986297935796.2" [style="dotted"] [label="[fffffttt]"];
"-9137926712894874236.1" -> "1143334986297935796.0" [label="[fffffttt]"];
"1143334986297935796.0" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"cs\")
#1143334986297935796.0#"];
"-9137926712894874236.1" -> "1143334986297935796.1" [label="[fffffttt]"];
"1143334986297935796.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"cs\")
#1143334986297935796.1#"];
"-9137926712894874236.1" -> "-9137926712894874236.0" [label="[fffffttt]"];
"-9137926712894874236.0" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"cs\")
#-9137926712894874236.0#"];
"-9137926712894874236.1" -> "-9137926712894874236.1" [label="[fffffttt]"];
"-9137926712894874236.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"cs\")
#-9137926712894874236.1#"];
"-9137926712894874236.1" -> "-7824571988019409220.1" [label="[ffftfttt]"];
"-7824571988019409220.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"non-cs\")
#-7824571988019409220.1#"];
"-1529149678030047826.1" -> "-8272984896072399991.1" [label="[ftffttft]"];
"-8272984896072399991.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"csentry\")
#-8272984896072399991.1#"];
"-1529149678030047826.1" -> "-1529149678030047826.1" [label="[ffffttft]"];
"-1529149678030047826.1" [label="pc = (p1 :> \"cs\" @@ p2 :> \"csentry\")
#-1529149678030047826.1#"];
"1143334986297935796.0" -> "1143334986297935796.2" [label="[fffffttt]"];
"1143334986297935796.2" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"cs\")
#1143334986297935796.2#"];
"1143334986297935796.1" -> "1143334986297935796.0" [label="[fffffttt]"];
"1143334986297935796.0" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"cs\")
#1143334986297935796.0#"];
"1143334986297935796.1" -> "1143334986297935796.1" [label="[fffffttt]"];
"1143334986297935796.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"cs\")
#1143334986297935796.1#"];
"1143334986297935796.1" -> "5080291979216001926.1" [label="[ffftfttt]"];
"5080291979216001926.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"non-cs\")
#5080291979216001926.1#"];
"1143334986297935796.2" -> "1143334986297935796.2" [label="[fffffttt]"];
"1143334986297935796.2" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"cs\")
#1143334986297935796.2#"];
}
}")
#-8039079448462160139.0#"];
"-8039079448462160139.0" -> "4634416839099240645.2" [style="dotted"] [label="[ffftffttfttt]"];
"4634416839099240645.1" -> "-8039079448462160139.1" [label="[fftffftftftf]"];
"-8039079448462160139.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"cs\" @@ p3 :> \"non-cs\")
#-8039079448462160139.1#"];
"-8039079448462160139.1" -> "4634416839099240645.0" [style="dotted"] [label="[ffftffttfttt]"];
"-8039079448462160139.1" -> "4634416839099240645.1" [style="dotted"] [label="[ffftffttfttt]"];
"4634416839099240645.1" -> "4634416839099240645.0" [label="[fffffftftftf]"];
"4634416839099240645.0" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"non-cs\" @@ p3 :> \"non-cs\")
#4634416839099240645.0#"];
"4634416839099240645.1" -> "4634416839099240645.1" [label="[fffffftftftf]"];
"4634416839099240645.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"non-cs\" @@ p3 :> \"non-cs\")
#4634416839099240645.1#"];
"4634416839099240645.1" -> "-1387407517741503287.1" [label="[fffftftftftf]"];
"-1387407517741503287.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"non-cs\" @@ p3 :> \"cs\")
#-1387407517741503287.1#"];
"-1387407517741503287.1" -> "4634416839099240645.0" [style="dotted"] [label="[ffffftfttttt]"];
"-1387407517741503287.1" -> "4634416839099240645.1" [style="dotted"] [label="[ffffftfttttt]"];
"4634416839099240645.1" -> "5434594326082262714.0" [label="[tffffftftftf]"];
"5434594326082262714.0" [label="pc = (p1 :> \"cs\" @@ p2 :> \"non-cs\" @@ p3 :> \"non-cs\")
#5434594326082262714.0#"];
"5434594326082262714.0" -> "4634416839099240645.2" [style="dotted"] [label="[ftffffttttft]"];
"4634416839099240645.1" -> "5434594326082262714.1" [label="[tffffftftftf]"];
"5434594326082262714.1" [label="pc = (p1 :> \"cs\" @@ p2 :> \"non-cs\" @@ p3 :> \"non-cs\")
#5434594326082262714.1#"];
"5434594326082262714.1" -> "4634416839099240645.0" [style="dotted"] [label="[ftffffttttft]"];
"5434594326082262714.1" -> "4634416839099240645.1" [style="dotted"] [label="[ftffffttttft]"];
}
}17741503287.2#"];
"-1387407517741503287.0" -> "4634416839099240645.2" [label="[ffffftfttttt]"];
"4634416839099240645.2" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"non-cs\" @@ p3 :> \"non-cs\")
#4634416839099240645.2#"];
"-1387407517741503287.0" -> "-1387407517741503287.2" [label="[fffffffttttt]"];
"-1387407517741503287.2" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"non-cs\" @@ p3 :> \"cs\")
#-1387407517741503287.2#"];
"-1387407517741503287.1" -> "4634416839099240645.0" [label="[ffffftfttttt]"];
"4634416839099240645.0" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"non-cs\" @@ p3 :> \"non-cs\")
#4634416839099240645.0#"];
"-1387407517741503287.1" -> "4634416839099240645.1" [label="[ffffftfttttt]"];
"4634416839099240645.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"non-cs\" @@ p3 :> \"non-cs\")
#4634416839099240645.1#"];
"-1387407517741503287.1" -> "-1387407517741503287.0" [label="[fffffffttttt]"];
"-1387407517741503287.0" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"non-cs\" @@ p3 :> \"cs\")
#-1387407517741503287.0#"];
"-1387407517741503287.1" -> "-1387407517741503287.1" [label="[fffffffttttt]"];
"-1387407517741503287.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"non-cs\" @@ p3 :> \"cs\")
#-1387407517741503287.1#"];
}" [label="[ftffttft]"];
"-8272984896072399991.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"csentry\")
#-8272984896072399991.1#"];
"-1529149678030047826.1" -> "-1529149678030047826.0" [label="[ffffttft]"];
"-1529149678030047826.0" [label="pc = (p1 :> \"cs\" @@ p2 :> \"csentry\")
#-1529149678030047826.0#"];
"-1529149678030047826.1" -> "-1529149678030047826.1" [label="[ffffttft]"];
"-1529149678030047826.1" [label="pc = (p1 :> \"cs\" @@ p2 :> \"csentry\")
#-1529149678030047826.1#"];
"-1529149678030047826.2" -> "-8272984896072399991.2" [label="[ftffttft]"];
"-8272984896072399991.2" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"csentry\")
#-8272984896072399991.2#"];
"-1529149678030047826.2" -> "-1529149678030047826.2" [label="[ffffttft]"];
"-1529149678030047826.2" [label="pc = (p1 :> \"cs\" @@ p2 :> \"csentry\")
#-1529149678030047826.2#"];
"1143334986297935796.1" -> "1143334986297935796.1" [label="[fffffttt]"];
"1143334986297935796.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"cs\")
#1143334986297935796.1#"];
"1143334986297935796.1" -> "5080291979216001926.1" [label="[ffftfttt]"];
"5080291979216001926.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"non-cs\")
#5080291979216001926.1#"];
}
}-1387407517741503287.2#"];
"-1387407517741503287.0" -> "4634416839099240645.2" [label="[ffffftfttttt]"];
"4634416839099240645.2" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"non-cs\" @@ p3 :> \"non-cs\")
#4634416839099240645.2#"];
"-1387407517741503287.0" -> "-1387407517741503287.2" [label="[fffffffttttt]"];
"-1387407517741503287.2" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"non-cs\" @@ p3 :> \"cs\")
#-1387407517741503287.2#"];
"-1387407517741503287.1" -> "4634416839099240645.0" [label="[ffffftfttttt]"];
"4634416839099240645.0" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"non-cs\" @@ p3 :> \"non-cs\")
#4634416839099240645.0#"];
"-1387407517741503287.1" -> "4634416839099240645.1" [label="[ffffftfttttt]"];
"4634416839099240645.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"non-cs\" @@ p3 :> \"non-cs\")
#4634416839099240645.1#"];
"-1387407517741503287.1" -> "-1387407517741503287.0" [label="[fffffffttttt]"];
"-1387407517741503287.0" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"non-cs\" @@ p3 :> \"cs\")
#-1387407517741503287.0#"];
"-1387407517741503287.1" -> "-1387407517741503287.1" [label="[fffffffttttt]"];
"-1387407517741503287.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"non-cs\" @@ p3 :> \"cs\")
#-1387407517741503287.1#"];
}")
#1143334986297935796.1#"];
"1143334986297935796.1" -> "5080291979216001926.0" [label="[ffftfttt]"];
"5080291979216001926.0" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"non-cs\")
#5080291979216001926.0#"];
"1143334986297935796.1" -> "5080291979216001926.1" [label="[ffftfttt]"];
"5080291979216001926.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"non-cs\")
#5080291979216001926.1#"];
}
}
\ No newline at end of file
......@@ -3,20 +3,27 @@
\* Procs is set of processes.
\* Every process is assumed to loop and enter into "cs" state on every interation.
\* States besides non-critical are represented as "non-cs".
\* Non-critical state is represented as "non-cs".
\* When process decides it want to enter into critical-section, it first goes into "csentry" state.
CONSTANT Procs
VARIABLES pc
TypeOK == pc \in [Procs -> {"non-cs", "cs"}]
TypeOK == pc \in [Procs -> {"non-cs", "csentry", "cs"}]
vars == <<pc>>
\* All processes start from non-critical section.
Init == pc \in [Procs -> {"non-cs"}]
\* WantCS(proc) is action when proc decides that it wants to enter into critical section.
WantCS(proc) ==
/\ pc[proc] = "non-cs"
/\ pc' = [pc EXCEPT ![proc] = "csentry"]
\* EnterCS(proc) is action when proc enters critical section.
EnterCS(proc) ==
/\ \A i \in Procs: pc[i] /= "cs"
/\ pc[proc] = "csentry"
/\ \A i \in Procs \ {proc} : pc[i] /= "cs"
/\ pc' = [pc EXCEPT ![proc] = "cs"]
\* ExitCS(proc) is action when proc leaves critical section.
......@@ -24,12 +31,13 @@ ExitCS(proc) ==
/\ pc[proc] = "cs"
/\ pc' = [pc EXCEPT ![proc] = "non-cs"]
Next == \E i \in Procs: EnterCS(i) \/ ExitCS(i)
Next == \E i \in Procs: WantCS(i) \/ EnterCS(i) \/ ExitCS(i)
Spec == /\ Init
/\ [][Next]_vars
/\ \A i \in Procs: ( \* fairness
\* not fair for WantCS - it can pause and even hang there
/\ SF_vars(EnterCS(i))
/\ SF_vars(ExitCS(i)))
......@@ -40,7 +48,7 @@ MutualExclusion == \A i,j \in Procs: (i /= j) => ~((pc[i] = "cs") /\ (pc[j] = "c
\* Liveness is temporal property indicating that every process has a chance to enter critical section and leaves it.
Liveness == \A i \in Procs:
/\ (pc[i] = "non-cs") ~> (pc[i] = "cs")
/\ (pc[i] = "csentry") ~> (pc[i] = "cs")
/\ (pc[i] = "cs") ~> (pc[i] = "non-cs")
......@@ -51,5 +59,5 @@ THEOREM Spec => Liveness
=============================================================================
\* Modification History
\* Last modified Wed Feb 09 17:36:37 MSK 2022 by kirr
\* Last modified Wed Feb 09 19:11:11 MSK 2022 by kirr
\* Created Wed Feb 09 13:11:29 MSK 2022 by kirr
strict digraph DiskGraph {
edge [colorscheme="paired12"]
nodesep=0.35;
subgraph cluster_graph {
color="white";
678051584500975225 [label="pc = (0 :> \"non-cs\" @@ 1 :> \"non-cs\")",style = filled]
678051584500975225 -> 723320521238198925 [label="",color="2",fontcolor="2"];
723320521238198925 [label="pc = (0 :> \"cs\" @@ 1 :> \"non-cs\")"];
678051584500975225 -> 896249248177462194 [label="",color="2",fontcolor="2"];
896249248177462194 [label="pc = (0 :> \"non-cs\" @@ 1 :> \"cs\")"];
678051584500975225 -> 678051584500975225 [style="dashed"];
723320521238198925 -> 678051584500975225 [label="",color="3",fontcolor="3"];
723320521238198925 -> 723320521238198925 [style="dashed"];
896249248177462194 -> 678051584500975225 [label="",color="3",fontcolor="3"];
896249248177462194 -> 896249248177462194 [style="dashed"];
{rank = same; 678051584500975225;}
{rank = same; 896249248177462194;723320521238198925;}
}
subgraph cluster_legend {graph[style=bold];label = "Next State Actions" style="solid"
node [ labeljust="l",colorscheme="paired12",style=filled,shape=record ]
ExitCS [label="ExitCS",fillcolor=3]
EnterCS [label="EnterCS",fillcolor=2]
}}
\ No newline at end of file
digraph DiskGraph {
nodesep=0.35;
subgraph cluster_graph {
color="white";
"678051584500975225.1" [style = filled] [label="pc = (0 :> \"non-cs\" @@ 1 :> \"non-cs\")
#678051584500975225.1#"]
"678051584500975225.1" -> "896249248177462194.0" [label="[fftftftf]"];
"896249248177462194.0" [label="pc = (0 :> \"non-cs\" @@ 1 :> \"cs\")
#896249248177462194.0#"];
"678051584500975225.1" -> "896249248177462194.1" [label="[fftftftf]"];
"896249248177462194.1" [label="pc = (0 :> \"non-cs\" @@ 1 :> \"cs\")
#896249248177462194.1#"];
"678051584500975225.1" -> "678051584500975225.1" [label="[fffftftf]"];
"678051584500975225.1" [label="pc = (0 :> \"non-cs\" @@ 1 :> \"non-cs\")
#678051584500975225.1#"];
"678051584500975225.1" -> "723320521238198925.1" [label="[tffftftf]"];
"723320521238198925.1" [label="pc = (0 :> \"cs\" @@ 1 :> \"non-cs\")
#723320521238198925.1#"];
"723320521238198925.1" -> "678051584500975225.1" [style="dotted"] [label="[ftffttft]"];
"896249248177462194.0" -> "896249248177462194.2" [label="[fffffttt]"];
"896249248177462194.2" [label="pc = (0 :> \"non-cs\" @@ 1 :> \"cs\")
#896249248177462194.2#"];
"896249248177462194.1" -> "896249248177462194.0" [label="[fffffttt]"];
"896249248177462194.0" [label="pc = (0 :> \"non-cs\" @@ 1 :> \"cs\")
#896249248177462194.0#"];
"896249248177462194.1" -> "896249248177462194.1" [label="[fffffttt]"];
"896249248177462194.1" [label="pc = (0 :> \"non-cs\" @@ 1 :> \"cs\")
#896249248177462194.1#"];
"896249248177462194.1" -> "678051584500975225.1" [label="[ffftfttt]"];
"678051584500975225.1" [label="pc = (0 :> \"non-cs\" @@ 1 :> \"non-cs\")
#678051584500975225.1#"];
}
}98925.1" [label="[tffftftf]"];
"723320521238198925.1" [label="pc = (0 :> \"cs\" @@ 1 :> \"non-cs\")
#723320521238198925.1#"];
"723320521238198925.1" -> "678051584500975225.0" [style="dotted"] [label="[ftffttft]"];
"723320521238198925.1" -> "678051584500975225.1" [style="dotted"] [label="[ftffttft]"];
"896249248177462194.1" -> "896249248177462194.1" [label="[fffffttt]"];
"896249248177462194.1" [label="pc = (0 :> \"non-cs\" @@ 1 :> \"cs\")
#896249248177462194.1#"];
"896249248177462194.1" -> "678051584500975225.0" [label="[ffftfttt]"];
"678051584500975225.0" [label="pc = (0 :> \"non-cs\" @@ 1 :> \"non-cs\")
#678051584500975225.0#"];
"896249248177462194.1" -> "678051584500975225.1" [label="[ffftfttt]"];
"678051584500975225.1" [label="pc = (0 :> \"non-cs\" @@ 1 :> \"non-cs\")
#678051584500975225.1#"];
}
}.0" -> "896249248177462194.2" [label="[fffffttt]"];
"896249248177462194.2" [label="pc = (0 :> \"non-cs\" @@ 1 :> \"cs\")
#896249248177462194.2#"];
"896249248177462194.0" -> "678051584500975225.2" [label="[ffftfttt]"];
"678051584500975225.2" [label="pc = (0 :> \"non-cs\" @@ 1 :> \"non-cs\")
#678051584500975225.2#"];
"896249248177462194.1" -> "896249248177462194.0" [label="[fffffttt]"];
"896249248177462194.0" [label="pc = (0 :> \"non-cs\" @@ 1 :> \"cs\")
#896249248177462194.0#"];
"896249248177462194.1" -> "896249248177462194.1" [label="[fffffttt]"];
"896249248177462194.1" [label="pc = (0 :> \"non-cs\" @@ 1 :> \"cs\")
#896249248177462194.1#"];
"896249248177462194.1" -> "678051584500975225.0" [label="[ffftfttt]"];
"678051584500975225.0" [label="pc = (0 :> \"non-cs\" @@ 1 :> \"non-cs\")
#678051584500975225.0#"];
"896249248177462194.1" -> "678051584500975225.1" [label="[ffftfttt]"];
"678051584500975225.1" [label="pc = (0 :> \"non-cs\" @@ 1 :> \"non-cs\")
#678051584500975225.1#"];
}
}
\ No newline at end of file
strict digraph DiskGraph {
edge [colorscheme="paired12"]
nodesep=0.35;
subgraph cluster_graph {
color="white";
2926185554924883776 [label="pc = (0 :> \"non-cs\" @@ 1 :> \"non-cs\")",style = filled]
2926185554924883776 -> -9028380718502956592 [label="",color="2",fontcolor="2"];
-9028380718502956592 [label="pc = (0 :> \"cs\" @@ 1 :> \"non-cs\")"];
2926185554924883776 -> -239195827483615975 [label="",color="2",fontcolor="2"];
-239195827483615975 [label="pc = (0 :> \"non-cs\" @@ 1 :> \"cs\")"];
-9028380718502956592 -> 2926185554924883776 [label="",color="3",fontcolor="3"];
2926185554924883776 -> 2926185554924883776 [style="dashed"];
-9028380718502956592 -> -9028380718502956592 [style="dashed"];
-239195827483615975 -> 2926185554924883776 [label="",color="3",fontcolor="3"];
-239195827483615975 -> -239195827483615975 [style="dashed"];
{rank = same; 2926185554924883776;}
{rank = same; -9028380718502956592;-239195827483615975;}
}
subgraph cluster_legend {graph[style=bold];label = "Next State Actions" style="solid"
node [ labeljust="l",colorscheme="paired12",style=filled,shape=record ]
ExitCS [label="ExitCS",fillcolor=3]
EnterCS [label="EnterCS",fillcolor=2]
}}
\ No newline at end of file
digraph DiskGraph {
nodesep=0.35;
subgraph cluster_graph {
color="white";
"2926185554924883776.1" [style = filled] [label="pc = (0 :> \"non-cs\" @@ 1 :> \"non-cs\")
#2926185554924883776.1#"]
"2926185554924883776.1" -> "-9028380718502956592.1" [label="[tffftftf]"];
"-9028380718502956592.1" [label="pc = (0 :> \"cs\" @@ 1 :> \"non-cs\")
#-9028380718502956592.1#"];
"-9028380718502956592.1" -> "2926185554924883776.1" [style="dotted"] [label="[ftffttft]"];
"2926185554924883776.1" -> "2926185554924883776.1" [label="[fffftftf]"];
"2926185554924883776.1" [label="pc = (0 :> \"non-cs\" @@ 1 :> \"non-cs\")
#2926185554924883776.1#"];
"2926185554924883776.1" -> "-239195827483615975.0" [label="[fftftftf]"];
"-239195827483615975.0" [label="pc = (0 :> \"non-cs\" @@ 1 :> \"cs\")
#-239195827483615975.0#"];
"2926185554924883776.1" -> "-239195827483615975.1" [label="[fftftftf]"];
"-239195827483615975.1" [label="pc = (0 :> \"non-cs\" @@ 1 :> \"cs\")
#-239195827483615975.1#"];
"-239195827483615975.1" -> "2926185554924883776.1" [style="dotted"] [label="[ffftfttt]"];
}
}[style="dotted"] [label="[ftffttft]"];
"2926185554924883776.1" -> "-9028380718502956592.1" [label="[tffftftf]"];
"-9028380718502956592.1" [label="pc = (0 :> \"cs\" @@ 1 :> \"non-cs\")
#-9028380718502956592.1#"];
"-9028380718502956592.1" -> "2926185554924883776.0" [style="dotted"] [label="[ftffttft]"];
"-9028380718502956592.1" -> "2926185554924883776.1" [style="dotted"] [label="[ftffttft]"];
"2926185554924883776.1" -> "2926185554924883776.0" [label="[fffftftf]"];
"2926185554924883776.0" [label="pc = (0 :> \"non-cs\" @@ 1 :> \"non-cs\")
#2926185554924883776.0#"];
"2926185554924883776.1" -> "2926185554924883776.1" [label="[fffftftf]"];
"2926185554924883776.1" [label="pc = (0 :> \"non-cs\" @@ 1 :> \"non-cs\")
#2926185554924883776.1#"];
"2926185554924883776.1" -> "-239195827483615975.1" [label="[fftftftf]"];
"-239195827483615975.1" [label="pc = (0 :> \"non-cs\" @@ 1 :> \"cs\")
#-239195827483615975.1#"];
"-239195827483615975.1" -> "2926185554924883776.0" [style="dotted"] [label="[ffftfttt]"];
"-239195827483615975.1" -> "2926185554924883776.1" [style="dotted"] [label="[ffftfttt]"];
}
}
\ No newline at end of file
@!@!@STARTMSG 2262:0 @!@!@
TLC2 Version 2.16 of Day Month 20?? (rev: 9310ee7)
@!@!@ENDMSG 2262 @!@!@
@!@!@STARTMSG 2187:0 @!@!@
Running breadth-first search Model-Checking with fp 58 and seed -6328379916666862350 with 2 workers on 4 cores with 1161MB heap and 2608MB offheap memory [pid: 64864] (Linux 5.10.0-10-amd64 amd64, AdoptOpenJDK 14.0.1 x86_64, OffHeapDiskFPSet, DiskStateQueue).
@!@!@ENDMSG 2187 @!@!@
@!@!@STARTMSG 2220:0 @!@!@
Starting SANY...
@!@!@ENDMSG 2220 @!@!@
Parsing file /home/kirr/study/tla+/pluscal/ME/MutualExclusionSpec.toolbox/Model_1/MC.tla
Parsing file /home/kirr/study/tla+/pluscal/ME/MutualExclusionSpec.toolbox/Model_1/MutualExclusionSpec.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/TLC.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Naturals.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Sequences.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/FiniteSets.tla
Semantic processing of module MutualExclusionSpec
Semantic processing of module Naturals
Semantic processing of module Sequences
Semantic processing of module FiniteSets
Semantic processing of module TLC
Semantic processing of module MC
@!@!@STARTMSG 2219:0 @!@!@
SANY finished.
@!@!@ENDMSG 2219 @!@!@
@!@!@STARTMSG 2185:0 @!@!@
Starting... (2022-02-09 15:50:40)
@!@!@ENDMSG 2185 @!@!@
@!@!@STARTMSG 2214:1 @!@!@
Temporal formulas containing actions must be of forms <>[]A or []<>A.
@!@!@ENDMSG 2214 @!@!@
@!@!@STARTMSG 2186:0 @!@!@
Finished in 433ms at (2022-02-09 15:50:40)
@!@!@ENDMSG 2186 @!@!@
---- MODULE MC ----
EXTENDS MutualExclusionSpec, TLC
\* CONSTANT definitions @modelParameterConstants:0Procs
const_1644411039581298000 ==
{0, 1}
----
=============================================================================
\* Modification History
\* Created Wed Feb 09 15:50:39 MSK 2022 by kirr
@!@!@STARTMSG 2262:0 @!@!@
TLC2 Version 2.16 of Day Month 20?? (rev: 9310ee7)
@!@!@ENDMSG 2262 @!@!@
@!@!@STARTMSG 2187:0 @!@!@
Running breadth-first search Model-Checking with fp 58 and seed -6328379916666862350 with 2 workers on 4 cores with 1161MB heap and 2608MB offheap memory [pid: 64864] (Linux 5.10.0-10-amd64 amd64, AdoptOpenJDK 14.0.1 x86_64, OffHeapDiskFPSet, DiskStateQueue).
@!@!@ENDMSG 2187 @!@!@
@!@!@STARTMSG 2220:0 @!@!@
Starting SANY...
@!@!@ENDMSG 2220 @!@!@
Parsing file /home/kirr/study/tla+/pluscal/ME/MutualExclusionSpec.toolbox/Model_1/MC.tla
Parsing file /home/kirr/study/tla+/pluscal/ME/MutualExclusionSpec.toolbox/Model_1/MutualExclusionSpec.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/TLC.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Naturals.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Sequences.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/FiniteSets.tla
Semantic processing of module MutualExclusionSpec
Semantic processing of module Naturals
Semantic processing of module Sequences
Semantic processing of module FiniteSets
Semantic processing of module TLC
Semantic processing of module MC
@!@!@STARTMSG 2219:0 @!@!@
SANY finished.
@!@!@ENDMSG 2219 @!@!@
@!@!@STARTMSG 2185:0 @!@!@
Starting... (2022-02-09 15:50:40)
@!@!@ENDMSG 2185 @!@!@
@!@!@STARTMSG 2214:1 @!@!@
Temporal formulas containing actions must be of forms <>[]A or []<>A.
@!@!@ENDMSG 2214 @!@!@
@!@!@STARTMSG 2186:0 @!@!@
Finished in 433ms at (2022-02-09 15:50:40)
@!@!@ENDMSG 2186 @!@!@
strict digraph DiskGraph {
edge [colorscheme="paired12"]
nodesep=0.35;
subgraph cluster_graph {
color="white";
------------------------ MODULE MutualExclusionSpec ------------------------
\* Module MutualExclusionSpec provides specification for mutual-exclusion problem
\* Procs is set of processes.
\* Every process is assumed to loop and enter into "cs" state on every interation.
\* States besides non-critical are represented as "non-cs".
CONSTANT Procs
VARIABLES pc
TypeOK == pc \in [Procs -> {"non-cs", "cs"}]
vars == <<pc>>
\* All processes start from non-critical section.
Init == pc \in [Procs -> {"non-cs"}]
\* EnterCS(proc) is action when proc enters critical section.
EnterCS(proc) ==
/\ \A i \in Procs: pc[i] /= "cs"
/\ pc' = [pc EXCEPT ![proc] = "cs"]
\* ExitCS(proc) is action when proc leaves critical section.
ExitCS(proc) ==
/\ pc[proc] = "cs" \* XXX also check others are not in cs here?
/\ pc' = [pc EXCEPT ![proc] = "non-cs"]
Next == \E i \in Procs: EnterCS(i) \/ ExitCS(i)
Spec == /\ Init
/\ [][Next]_vars
/\ \A i \in Procs: (
/\ SF_vars(EnterCS(i))
/\ SF_vars(ExitCS(i)))
--------
\* MutualExclusion is invariant indicating that no two processes can be inside critical section at the same time.
MutualExclusion == \A i,j \in Procs: (i /= j) => ~((pc[i] = "cs") /\ (pc[j] = "cs"))
\* Liveness is temporal property indicating that every process has a chance to enter critical section and leaves it.
Liveness == \A i \in Procs:
/\ (pc[i] = "non-cs") ~> (pc[i] = "cs")
/\ [][(pc[i] = "cs") => (pc'[i] = "non-cs")]_vars \* XXX pc -> pc' "no eventually"
\* Liveness == (pc[0] = "cs") => <>(pc[0] = "ZZZZ")
\* Liveness == (pc[0] = "cs") => <>(pc[0] = "ZZZZ")
\*Liveness == (pc[0] = "cs") ~> <>(pc[0] = "non-cs")
THEOREM Spec => []TypeOK
THEOREM Spec => []MutualExclusion
THEOREM Spec => Liveness
=============================================================================
\* Modification History
\* Last modified Wed Feb 09 15:50:11 MSK 2022 by kirr
\* Created Wed Feb 09 13:11:29 MSK 2022 by kirr
@!@!@STARTMSG 2262:0 @!@!@
TLC2 Version 2.16 of Day Month 20?? (rev: 9310ee7)
@!@!@ENDMSG 2262 @!@!@
@!@!@STARTMSG 2187:0 @!@!@
Running breadth-first search Model-Checking with fp 53 and seed -4049060676733912034 with 2 workers on 4 cores with 1161MB heap and 2608MB offheap memory [pid: 65295] (Linux 5.10.0-10-amd64 amd64, AdoptOpenJDK 14.0.1 x86_64, OffHeapDiskFPSet, DiskStateQueue).
@!@!@ENDMSG 2187 @!@!@
@!@!@STARTMSG 2220:0 @!@!@
Starting SANY...
@!@!@ENDMSG 2220 @!@!@
Parsing file /home/kirr/study/tla+/pluscal/ME/MutualExclusionSpec.toolbox/Model_1/MC.tla
Parsing file /home/kirr/study/tla+/pluscal/ME/MutualExclusionSpec.toolbox/Model_1/MutualExclusionSpec.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/TLC.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Naturals.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Sequences.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/FiniteSets.tla
Semantic processing of module MutualExclusionSpec
Semantic processing of module Naturals
Semantic processing of module Sequences
Semantic processing of module FiniteSets
Semantic processing of module TLC
Semantic processing of module MC
@!@!@STARTMSG 2219:0 @!@!@
SANY finished.
@!@!@ENDMSG 2219 @!@!@
@!@!@STARTMSG 2185:0 @!@!@
Starting... (2022-02-09 16:00:19)
@!@!@ENDMSG 2185 @!@!@
@!@!@STARTMSG 2212:0 @!@!@
Implied-temporal checking--satisfiability problem has 4 branches.
@!@!@ENDMSG 2212 @!@!@
@!@!@STARTMSG 2189:0 @!@!@
Computing initial states...
@!@!@ENDMSG 2189 @!@!@
@!@!@STARTMSG 2190:0 @!@!@
Finished computing initial states: 1 distinct state generated at 2022-02-09 16:00:20.
@!@!@ENDMSG 2190 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(2) at 2022-02-09 16:00:20: 5 states generated, 3 distinct states found, 0 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2192:0 @!@!@
Checking 4 branches of temporal properties for the complete state space with 12 total distinct states at (2022-02-09 16:00:20)
@!@!@ENDMSG 2192 @!@!@
@!@!@STARTMSG 2267:0 @!@!@
Finished checking temporal properties in 00s at 2022-02-09 16:00:20
@!@!@ENDMSG 2267 @!@!@
@!@!@STARTMSG 2193:0 @!@!@
Model checking completed. No error has been found.
Estimates of the probability that TLC did not check all reachable states
because two distinct states had the same fingerprint:
calculated (optimistic): val = 3.3E-19
@!@!@ENDMSG 2193 @!@!@
@!@!@STARTMSG 2201:0 @!@!@
The coverage statistics at 2022-02-09 16:00:20
@!@!@ENDMSG 2201 @!@!@
@!@!@STARTMSG 2773:0 @!@!@
<Init line 15, col 1 to line 15, col 4 of module MutualExclusionSpec>: 1:1
@!@!@ENDMSG 2773 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 15, col 9 to line 15, col 36 of module MutualExclusionSpec: 1
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
|line 15, col 16 to line 15, col 36 of module MutualExclusionSpec: 1:2
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 15, col 17 to line 15, col 21 of module MutualExclusionSpec: 1
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
||line 15, col 26 to line 15, col 35 of module MutualExclusionSpec: 1:5
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<EnterCS line 18, col 1 to line 18, col 13 of module MutualExclusionSpec>: 2:6
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 19, col 28 to line 19, col 40 of module MutualExclusionSpec: 78
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 19, col 28 to line 19, col 32 of module MutualExclusionSpec: 66
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 19, col 21 to line 19, col 25 of module MutualExclusionSpec: 42
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
|line 6, col 1 to line 6, col 6 of module MC: 42:126
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 20, col 12 to line 20, col 43 of module MutualExclusionSpec: 6
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<ExitCS line 23, col 1 to line 23, col 12 of module MutualExclusionSpec>: 0:18
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 24, col 12 to line 24, col 26 of module MutualExclusionSpec: 60
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 24, col 12 to line 24, col 19 of module MutualExclusionSpec: 42
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 25, col 12 to line 25, col 47 of module MutualExclusionSpec: 18
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<TypeOK line 10, col 1 to line 10, col 6 of module MutualExclusionSpec>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 10, col 11 to line 10, col 44 of module MutualExclusionSpec: 3
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<MutualExclusion line 39, col 1 to line 39, col 15 of module MutualExclusionSpec>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 39, col 20 to line 39, col 84 of module MutualExclusionSpec: 3
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 39, col 38 to line 39, col 84 of module MutualExclusionSpec: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 39, col 39 to line 39, col 44 of module MutualExclusionSpec: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 39, col 50 to line 39, col 84 of module MutualExclusionSpec: 6
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 39, col 52 to line 39, col 83 of module MutualExclusionSpec: 6
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 39, col 53 to line 39, col 64 of module MutualExclusionSpec: 6
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 39, col 71 to line 39, col 82 of module MutualExclusionSpec: 2
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 39, col 31 to line 39, col 35 of module MutualExclusionSpec: 3
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
||line 6, col 1 to line 6, col 6 of module MC: 3:30
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2202:0 @!@!@
End of statistics.
@!@!@ENDMSG 2202 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(2) at 2022-02-09 16:00:20: 5 states generated (248 s/min), 3 distinct states found (149 ds/min), 0 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2199:0 @!@!@
5 states generated, 3 distinct states found, 0 states left on queue.
@!@!@ENDMSG 2199 @!@!@
@!@!@STARTMSG 2194:0 @!@!@
The depth of the complete state graph search is 2.
@!@!@ENDMSG 2194 @!@!@
@!@!@STARTMSG 2268:0 @!@!@
The average outdegree of the complete state graph is 1 (minimum is 0, the maximum 2 and the 95th percentile is 2).
@!@!@ENDMSG 2268 @!@!@
@!@!@STARTMSG 2186:0 @!@!@
Finished in 1213ms at (2022-02-09 16:00:20)
@!@!@ENDMSG 2186 @!@!@
@!@!@STARTMSG 2262:0 @!@!@
TLC2 Version 2.16 of Day Month 20?? (rev: 9310ee7)
@!@!@ENDMSG 2262 @!@!@
@!@!@STARTMSG 2187:0 @!@!@
Running breadth-first search Model-Checking with fp 53 and seed -4049060676733912034 with 2 workers on 4 cores with 1161MB heap and 2608MB offheap memory [pid: 65295] (Linux 5.10.0-10-amd64 amd64, AdoptOpenJDK 14.0.1 x86_64, OffHeapDiskFPSet, DiskStateQueue).
@!@!@ENDMSG 2187 @!@!@
@!@!@STARTMSG 2220:0 @!@!@
Starting SANY...
@!@!@ENDMSG 2220 @!@!@
Parsing file /home/kirr/study/tla+/pluscal/ME/MutualExclusionSpec.toolbox/Model_1/MC.tla
Parsing file /home/kirr/study/tla+/pluscal/ME/MutualExclusionSpec.toolbox/Model_1/MutualExclusionSpec.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/TLC.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Naturals.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Sequences.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/FiniteSets.tla
Semantic processing of module MutualExclusionSpec
Semantic processing of module Naturals
Semantic processing of module Sequences
Semantic processing of module FiniteSets
Semantic processing of module TLC
Semantic processing of module MC
@!@!@STARTMSG 2219:0 @!@!@
SANY finished.
@!@!@ENDMSG 2219 @!@!@
@!@!@STARTMSG 2185:0 @!@!@
Starting... (2022-02-09 16:00:19)
@!@!@ENDMSG 2185 @!@!@
@!@!@STARTMSG 2212:0 @!@!@
Implied-temporal checking--satisfiability problem has 4 branches.
@!@!@ENDMSG 2212 @!@!@
@!@!@STARTMSG 2189:0 @!@!@
Computing initial states...
@!@!@ENDMSG 2189 @!@!@
@!@!@STARTMSG 2190:0 @!@!@
Finished computing initial states: 1 distinct state generated at 2022-02-09 16:00:20.
@!@!@ENDMSG 2190 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(2) at 2022-02-09 16:00:20: 5 states generated, 3 distinct states found, 0 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2192:0 @!@!@
Checking 4 branches of temporal properties for the complete state space with 12 total distinct states at (2022-02-09 16:00:20)
@!@!@ENDMSG 2192 @!@!@
@!@!@STARTMSG 2267:0 @!@!@
Finished checking temporal properties in 00s at 2022-02-09 16:00:20
@!@!@ENDMSG 2267 @!@!@
@!@!@STARTMSG 2193:0 @!@!@
Model checking completed. No error has been found.
Estimates of the probability that TLC did not check all reachable states
because two distinct states had the same fingerprint:
calculated (optimistic): val = 3.3E-19
@!@!@ENDMSG 2193 @!@!@
@!@!@STARTMSG 2201:0 @!@!@
The coverage statistics at 2022-02-09 16:00:20
@!@!@ENDMSG 2201 @!@!@
@!@!@STARTMSG 2773:0 @!@!@
<Init line 15, col 1 to line 15, col 4 of module MutualExclusionSpec>: 1:1
@!@!@ENDMSG 2773 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 15, col 9 to line 15, col 36 of module MutualExclusionSpec: 1
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
|line 15, col 16 to line 15, col 36 of module MutualExclusionSpec: 1:2
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 15, col 17 to line 15, col 21 of module MutualExclusionSpec: 1
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
||line 15, col 26 to line 15, col 35 of module MutualExclusionSpec: 1:5
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<EnterCS line 18, col 1 to line 18, col 13 of module MutualExclusionSpec>: 2:6
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 19, col 28 to line 19, col 40 of module MutualExclusionSpec: 78
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 19, col 28 to line 19, col 32 of module MutualExclusionSpec: 66
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 19, col 21 to line 19, col 25 of module MutualExclusionSpec: 42
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
|line 6, col 1 to line 6, col 6 of module MC: 42:126
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 20, col 12 to line 20, col 43 of module MutualExclusionSpec: 6
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<ExitCS line 23, col 1 to line 23, col 12 of module MutualExclusionSpec>: 0:18
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 24, col 12 to line 24, col 26 of module MutualExclusionSpec: 60
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 24, col 12 to line 24, col 19 of module MutualExclusionSpec: 42
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 25, col 12 to line 25, col 47 of module MutualExclusionSpec: 18
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<TypeOK line 10, col 1 to line 10, col 6 of module MutualExclusionSpec>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 10, col 11 to line 10, col 44 of module MutualExclusionSpec: 3
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<MutualExclusion line 39, col 1 to line 39, col 15 of module MutualExclusionSpec>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 39, col 20 to line 39, col 84 of module MutualExclusionSpec: 3
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 39, col 38 to line 39, col 84 of module MutualExclusionSpec: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 39, col 39 to line 39, col 44 of module MutualExclusionSpec: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 39, col 50 to line 39, col 84 of module MutualExclusionSpec: 6
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 39, col 52 to line 39, col 83 of module MutualExclusionSpec: 6
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 39, col 53 to line 39, col 64 of module MutualExclusionSpec: 6
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 39, col 71 to line 39, col 82 of module MutualExclusionSpec: 2
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 39, col 31 to line 39, col 35 of module MutualExclusionSpec: 3
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
||line 6, col 1 to line 6, col 6 of module MC: 3:30
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2202:0 @!@!@
End of statistics.
@!@!@ENDMSG 2202 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(2) at 2022-02-09 16:00:20: 5 states generated (248 s/min), 3 distinct states found (149 ds/min), 0 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2199:0 @!@!@
5 states generated, 3 distinct states found, 0 states left on queue.
@!@!@ENDMSG 2199 @!@!@
@!@!@STARTMSG 2194:0 @!@!@
The depth of the complete state graph search is 2.
@!@!@ENDMSG 2194 @!@!@
@!@!@STARTMSG 2268:0 @!@!@
The average outdegree of the complete state graph is 1 (minimum is 0, the maximum 2 and the 95th percentile is 2).
@!@!@ENDMSG 2268 @!@!@
@!@!@STARTMSG 2186:0 @!@!@
Finished in 1213ms at (2022-02-09 16:00:20)
@!@!@ENDMSG 2186 @!@!@
strict digraph DiskGraph {
edge [colorscheme="paired12"]
nodesep=0.35;
subgraph cluster_graph {
color="white";
-7649361877716949000 [label="pc = (0 :> \"non-cs\" @@ 1 :> \"non-cs\")",style = filled]
-7649361877716949000 -> -6931778146122684311 [label="",color="2",fontcolor="2"];
-6931778146122684311 [label="pc = (0 :> \"cs\" @@ 1 :> \"non-cs\")"];
-6931778146122684311 -> -7649361877716949000 [label="",color="3",fontcolor="3"];
-7649361877716949000 -> -7872711117459500480 [label="",color="2",fontcolor="2"];
-7872711117459500480 [label="pc = (0 :> \"non-cs\" @@ 1 :> \"cs\")"];
-6931778146122684311 -> -6931778146122684311 [style="dashed"];
-7649361877716949000 -> -7649361877716949000 [style="dashed"];
-7872711117459500480 -> -7649361877716949000 [label="",color="3",fontcolor="3"];
-7872711117459500480 -> -7872711117459500480 [style="dashed"];
{rank = same; -7649361877716949000;}
{rank = same; -7872711117459500480;-6931778146122684311;}
}
subgraph cluster_legend {graph[style=bold];label = "Next State Actions" style="solid"
node [ labeljust="l",colorscheme="paired12",style=filled,shape=record ]
ExitCS [label="ExitCS",fillcolor=3]
EnterCS [label="EnterCS",fillcolor=2]
}}
\ No newline at end of file
digraph DiskGraph {
nodesep=0.35;
subgraph cluster_graph {
color="white";
"-7649361877716949000.1" [style = filled] [label="pc = (0 :> \"non-cs\" @@ 1 :> \"non-cs\")
#-7649361877716949000.1#"]
"-7649361877716949000.1" -> "-7872711117459500480.0" [label="[fftftftf]"];
"-7872711117459500480.0" [label="pc = (0 :> \"non-cs\" @@ 1 :> \"cs\")
#-7872711117459500480.0#"];
"-7649361877716949000.1" -> "-7872711117459500480.1" [label="[fftftftf]"];
"-7872711117459500480.1" [label="pc = (0 :> \"non-cs\" @@ 1 :> \"cs\")
#-7872711117459500480.1#"];
"-7872711117459500480.1" -> "-7649361877716949000.1" [style="dotted"] [label="[ffftfttt]"];
"-7649361877716949000.1" -> "-7649361877716949000.1" [label="[fffftftf]"];
"-7649361877716949000.1" [label="pc = (0 :> \"non-cs\" @@ 1 :> \"non-cs\")
#-7649361877716949000.1#"];
"-7649361877716949000.1" -> "-6931778146122684311.1" [label="[tffftftf]"];
"-6931778146122684311.1" [label="pc = (0 :> \"cs\" @@ 1 :> \"non-cs\")
#-6931778146122684311.1#"];
"-6931778146122684311.1" -> "-7649361877716949000.1" [style="dotted"] [label="[ftffttft]"];
}
}e="dotted"] [label="[ffftfttt]"];
"-7872711117459500480.1" -> "-7649361877716949000.1" [style="dotted"] [label="[ffftfttt]"];
"-7649361877716949000.1" -> "-7649361877716949000.0" [label="[fffftftf]"];
"-7649361877716949000.0" [label="pc = (0 :> \"non-cs\" @@ 1 :> \"non-cs\")
#-7649361877716949000.0#"];
"-7649361877716949000.1" -> "-7649361877716949000.1" [label="[fffftftf]"];
"-7649361877716949000.1" [label="pc = (0 :> \"non-cs\" @@ 1 :> \"non-cs\")
#-7649361877716949000.1#"];
"-7649361877716949000.1" -> "-6931778146122684311.0" [label="[tffftftf]"];
"-6931778146122684311.0" [label="pc = (0 :> \"cs\" @@ 1 :> \"non-cs\")
#-6931778146122684311.0#"];
"-6931778146122684311.0" -> "-7649361877716949000.2" [style="dotted"] [label="[ftffttft]"];
"-7649361877716949000.1" -> "-6931778146122684311.1" [label="[tffftftf]"];
"-6931778146122684311.1" [label="pc = (0 :> \"cs\" @@ 1 :> \"non-cs\")
#-6931778146122684311.1#"];
"-6931778146122684311.1" -> "-7649361877716949000.0" [style="dotted"] [label="[ftffttft]"];
"-6931778146122684311.1" -> "-7649361877716949000.1" [style="dotted"] [label="[ftffttft]"];
}
}
\ No newline at end of file
------------------------ MODULE MutualExclusionSpec ------------------------
\* Module MutualExclusionSpec provides specification for mutual-exclusion problem
\* Procs is set of processes.
\* Every process is assumed to loop and enter into "cs" state on every interation.
\* States besides non-critical are represented as "non-cs".
CONSTANT Procs
VARIABLES pc
TypeOK == pc \in [Procs -> {"non-cs", "cs"}]
vars == <<pc>>
\* All processes start from non-critical section.
Init == pc \in [Procs -> {"non-cs"}]
\* EnterCS(proc) is action when proc enters critical section.
EnterCS(proc) ==
/\ \A i \in Procs: pc[i] /= "cs"
/\ pc' = [pc EXCEPT ![proc] = "cs"]
\* ExitCS(proc) is action when proc leaves critical section.
ExitCS(proc) ==
/\ pc[proc] = "cs" \* XXX also check others are not in cs here?
/\ pc' = [pc EXCEPT ![proc] = "non-cs"]
Next == \E i \in Procs: EnterCS(i) \/ ExitCS(i)
Spec == /\ Init
/\ [][Next]_vars
/\ \A i \in Procs: (
/\ SF_vars(EnterCS(i))
/\ SF_vars(ExitCS(i)))
--------
\* MutualExclusion is invariant indicating that no two processes can be inside critical section at the same time.
MutualExclusion == \A i,j \in Procs: (i /= j) => ~((pc[i] = "cs") /\ (pc[j] = "cs"))
\* Liveness is temporal property indicating that every process has a chance to enter critical section and leaves it.
Liveness == \A i \in Procs:
/\ (pc[i] = "non-cs") ~> (pc[i] = "cs")
/\ (pc[i] = "cs") ~> (pc[i] = "non-cs") \* XXX pc -> pc' "no eventually"
\* Liveness == (pc[0] = "cs") => <>(pc[0] = "ZZZZ")
\* Liveness == (pc[0] = "cs") => <>(pc[0] = "ZZZZ")
\*Liveness == (pc[0] = "cs") ~> <>(pc[0] = "non-cs")
THEOREM Spec => []TypeOK
THEOREM Spec => []MutualExclusion
THEOREM Spec => Liveness
=============================================================================
\* Modification History
\* Last modified Wed Feb 09 15:55:48 MSK 2022 by kirr
\* Created Wed Feb 09 13:11:29 MSK 2022 by kirr
strict digraph DiskGraph {
edge [colorscheme="paired12"]
nodesep=0.35;
subgraph cluster_graph {
color="white";
582816844734143798 [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"non-cs\")",style = filled]
582816844734143798 -> 7936308069750956572 [label="",color="2",fontcolor="2"];
7936308069750956572 [label="pc = (p1 :> \"cs\" @@ p2 :> \"non-cs\")"];
582816844734143798 -> -1134157095415687547 [label="",color="2",fontcolor="2"];
-1134157095415687547 [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"cs\")"];
7936308069750956572 -> 582816844734143798 [label="",color="3",fontcolor="3"];
582816844734143798 -> 582816844734143798 [style="dashed"];
7936308069750956572 -> 7936308069750956572 [style="dashed"];
-1134157095415687547 -> 582816844734143798 [label="",color="3",fontcolor="3"];
-1134157095415687547 -> -1134157095415687547 [style="dashed"];
{rank = same; 582816844734143798;}
{rank = same; -1134157095415687547;7936308069750956572;}
}
subgraph cluster_legend {graph[style=bold];label = "Next State Actions" style="solid"
node [ labeljust="l",colorscheme="paired12",style=filled,shape=record ]
ExitCS [label="ExitCS",fillcolor=3]
EnterCS [label="EnterCS",fillcolor=2]
}}
\ No newline at end of file
digraph DiskGraph {
nodesep=0.35;
subgraph cluster_graph {
color="white";
"582816844734143798.1" [style = filled] [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"non-cs\")
#582816844734143798.1#"]
"582816844734143798.1" -> "-1134157095415687547.0" [label="[fftftftf]"];
"-1134157095415687547.0" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"cs\")
#-1134157095415687547.0#"];
"582816844734143798.1" -> "-1134157095415687547.1" [label="[fftftftf]"];
"-1134157095415687547.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"cs\")
#-1134157095415687547.1#"];
"-1134157095415687547.1" -> "582816844734143798.1" [style="dotted"] [label="[ffftfttt]"];
"582816844734143798.1" -> "582816844734143798.1" [label="[fffftftf]"];
"582816844734143798.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"non-cs\")
#582816844734143798.1#"];
"582816844734143798.1" -> "7936308069750956572.1" [label="[tffftftf]"];
"7936308069750956572.1" [label="pc = (p1 :> \"cs\" @@ p2 :> \"non-cs\")
#7936308069750956572.1#"];
"7936308069750956572.1" -> "582816844734143798.1" [style="dotted"] [label="[ftffttft]"];
}
}tted"] [label="[ffftfttt]"];
"-1134157095415687547.1" -> "582816844734143798.1" [style="dotted"] [label="[ffftfttt]"];
"582816844734143798.1" -> "582816844734143798.0" [label="[fffftftf]"];
"582816844734143798.0" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"non-cs\")
#582816844734143798.0#"];
"582816844734143798.1" -> "582816844734143798.1" [label="[fffftftf]"];
"582816844734143798.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"non-cs\")
#582816844734143798.1#"];
"582816844734143798.1" -> "7936308069750956572.0" [label="[tffftftf]"];
"7936308069750956572.0" [label="pc = (p1 :> \"cs\" @@ p2 :> \"non-cs\")
#7936308069750956572.0#"];
"7936308069750956572.0" -> "582816844734143798.2" [style="dotted"] [label="[ftffttft]"];
"582816844734143798.1" -> "7936308069750956572.1" [label="[tffftftf]"];
"7936308069750956572.1" [label="pc = (p1 :> \"cs\" @@ p2 :> \"non-cs\")
#7936308069750956572.1#"];
"7936308069750956572.1" -> "582816844734143798.0" [style="dotted"] [label="[ftffttft]"];
"7936308069750956572.1" -> "582816844734143798.1" [style="dotted"] [label="[ftffttft]"];
}
}t]"];
}
}
\ No newline at end of file
------------------------ MODULE MutualExclusionSpec ------------------------
\* Module MutualExclusionSpec provides specification for mutual-exclusion problem
\* Procs is set of processes.
\* Every process is assumed to loop and enter into "cs" state on every interation.
\* States besides non-critical are represented as "non-cs".
CONSTANT Procs
VARIABLES pc
TypeOK == pc \in [Procs -> {"non-cs", "cs"}]
vars == <<pc>>
\* All processes start from non-critical section.
Init == pc \in [Procs -> {"non-cs"}]
\* EnterCS(proc) is action when proc enters critical section.
EnterCS(proc) ==
/\ \A i \in Procs: pc[i] /= "cs"
/\ pc' = [pc EXCEPT ![proc] = "cs"]
\* ExitCS(proc) is action when proc leaves critical section.
ExitCS(proc) ==
/\ pc[proc] = "cs" \* XXX also check others are not in cs here?
/\ pc' = [pc EXCEPT ![proc] = "non-cs"]
Next == \E i \in Procs: EnterCS(i) \/ ExitCS(i)
Spec == /\ Init
/\ [][Next]_vars
/\ \A i \in Procs: (
/\ SF_vars(EnterCS(i))
/\ SF_vars(ExitCS(i)))
--------
\* MutualExclusion is invariant indicating that no two processes can be inside critical section at the same time.
MutualExclusion == \A i,j \in Procs: (i /= j) => ~((pc[i] = "cs") /\ (pc[j] = "cs"))
\* Liveness is temporal property indicating that every process has a chance to enter critical section and leaves it.
Liveness == \A i \in Procs:
/\ (pc[i] = "non-cs") ~> (pc[i] = "cs")
/\ (pc[i] = "cs") ~> (pc[i] = "non-cs") \* XXX pc -> pc' "no eventually"
THEOREM Spec => []TypeOK
THEOREM Spec => []MutualExclusion
THEOREM Spec => Liveness
=============================================================================
\* Modification History
\* Last modified Wed Feb 09 16:00:34 MSK 2022 by kirr
\* Created Wed Feb 09 13:11:29 MSK 2022 by kirr
......@@ -5,7 +5,7 @@ p2 = p2
\* MV CONSTANT definitions
CONSTANT
Procs <- const_1644411648311310000
Procs <- const_1644423034848529000
\* SPECIFICATION definition
SPECIFICATION
Spec
......@@ -16,4 +16,4 @@ MutualExclusion
\* PROPERTY definition
PROPERTY
Liveness
\* Generated on Wed Feb 09 16:00:48 MSK 2022
\ No newline at end of file
\* Generated on Wed Feb 09 19:10:34 MSK 2022
\ No newline at end of file
......@@ -2,7 +2,7 @@
TLC2 Version 2.16 of Day Month 20?? (rev: 9310ee7)
@!@!@ENDMSG 2262 @!@!@
@!@!@STARTMSG 2187:0 @!@!@
Running breadth-first search Model-Checking with fp 109 and seed -1003431394953192071 with 2 workers on 4 cores with 1161MB heap and 2608MB offheap memory [pid: 64738] (Linux 5.10.0-10-amd64 amd64, AdoptOpenJDK 14.0.1 x86_64, OffHeapDiskFPSet, DiskStateQueue).
Running breadth-first search Model-Checking with fp 79 and seed 2865534814333238230 with 2 workers on 4 cores with 1161MB heap and 2608MB offheap memory [pid: 74362] (Linux 5.10.0-10-amd64 amd64, AdoptOpenJDK 14.0.1 x86_64, OffHeapDiskFPSet, DiskStateQueue).
@!@!@ENDMSG 2187 @!@!@
@!@!@STARTMSG 2220:0 @!@!@
Starting SANY...
......@@ -23,7 +23,7 @@ Semantic processing of module MC
SANY finished.
@!@!@ENDMSG 2219 @!@!@
@!@!@STARTMSG 2185:0 @!@!@
Starting... (2022-02-09 15:48:20)
Starting... (2022-02-09 19:10:35)
@!@!@ENDMSG 2185 @!@!@
@!@!@STARTMSG 2212:0 @!@!@
Implied-temporal checking--satisfiability problem has 4 branches.
......@@ -32,122 +32,142 @@ Implied-temporal checking--satisfiability problem has 4 branches.
Computing initial states...
@!@!@ENDMSG 2189 @!@!@
@!@!@STARTMSG 2190:0 @!@!@
Finished computing initial states: 1 distinct state generated at 2022-02-09 15:48:21.
Finished computing initial states: 1 distinct state generated at 2022-02-09 19:10:36.
@!@!@ENDMSG 2190 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(2) at 2022-02-09 15:48:21: 5 states generated, 3 distinct states found, 0 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2192:0 @!@!@
Checking 4 branches of temporal properties for the complete state space with 12 total distinct states at (2022-02-09 15:48:21)
@!@!@ENDMSG 2192 @!@!@
@!@!@STARTMSG 2267:0 @!@!@
Finished checking temporal properties in 00s at 2022-02-09 15:48:21
@!@!@ENDMSG 2267 @!@!@
@!@!@STARTMSG 2193:0 @!@!@
Model checking completed. No error has been found.
Estimates of the probability that TLC did not check all reachable states
because two distinct states had the same fingerprint:
calculated (optimistic): val = 3.3E-19
@!@!@ENDMSG 2193 @!@!@
@!@!@STARTMSG 1000:1 @!@!@
TLC threw an unexpected exception.
This was probably caused by an error in the spec or model.
See the User Output or TLC Console for clues to what happened.
The exception was a java.lang.RuntimeException
: Attempted to check if the value:
p1
is an element of the model value p1
@!@!@ENDMSG 1000 @!@!@
@!@!@STARTMSG 2121:1 @!@!@
The behavior up to this point is:
@!@!@ENDMSG 2121 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
1: <Initial predicate>
pc = (p1 :> "non-cs" @@ p2 :> "non-cs")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
2: <WantCS line 20, col 9 to line 21, col 48 of module MutualExclusionSpec>
pc = (p1 :> "csentry" @@ p2 :> "non-cs")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2147:1 @!@!@
TLC was unable to fingerprint.
Fingerprint Stack Trace:
0. Line 25, column 9 to line 27, column 43 in MutualExclusionSpec
1. Line 25, column 12 to line 25, column 31 in MutualExclusionSpec
2. Line 26, column 12 to line 26, column 48 in MutualExclusionSpec
3. Line 26, column 21 to line 26, column 32 in MutualExclusionSpec
4. Line 11, column 1 to line 11, column 8 in MC
Reason:
Attempted to check if the value:
p1
is an element of the model value p1
@!@!@ENDMSG 2147 @!@!@
@!@!@STARTMSG 2201:0 @!@!@
The coverage statistics at 2022-02-09 15:48:21
The coverage statistics at 2022-02-09 19:10:36
@!@!@ENDMSG 2201 @!@!@
@!@!@STARTMSG 2773:0 @!@!@
<Init line 15, col 1 to line 15, col 4 of module MutualExclusionSpec>: 1:1
<Init line 16, col 1 to line 16, col 4 of module MutualExclusionSpec>: 2:2
@!@!@ENDMSG 2773 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 15, col 9 to line 15, col 36 of module MutualExclusionSpec: 1
line 16, col 9 to line 16, col 36 of module MutualExclusionSpec: 2
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
|line 15, col 16 to line 15, col 36 of module MutualExclusionSpec: 1:2
|line 16, col 16 to line 16, col 36 of module MutualExclusionSpec: 2:4
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 15, col 17 to line 15, col 21 of module MutualExclusionSpec: 1
||line 16, col 17 to line 16, col 21 of module MutualExclusionSpec: 2
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
||line 15, col 26 to line 15, col 35 of module MutualExclusionSpec: 1:5
||line 16, col 26 to line 16, col 35 of module MutualExclusionSpec: 2:10
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<EnterCS line 18, col 1 to line 18, col 13 of module MutualExclusionSpec>: 2:6
<WantCS line 19, col 1 to line 19, col 12 of module MutualExclusionSpec>: 3:4
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 19, col 28 to line 19, col 40 of module MutualExclusionSpec: 78
line 20, col 12 to line 20, col 30 of module MutualExclusionSpec: 11
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 19, col 28 to line 19, col 32 of module MutualExclusionSpec: 66
|line 20, col 12 to line 20, col 19 of module MutualExclusionSpec: 7
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 19, col 21 to line 19, col 25 of module MutualExclusionSpec: 42
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
|line 6, col 1 to line 6, col 6 of module MC: 42:126
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 20, col 12 to line 20, col 43 of module MutualExclusionSpec: 6
line 21, col 12 to line 21, col 48 of module MutualExclusionSpec: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<ExitCS line 23, col 1 to line 23, col 12 of module MutualExclusionSpec>: 0:18
<EnterCS line 24, col 1 to line 24, col 13 of module MutualExclusionSpec>: 0:0
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 24, col 12 to line 24, col 26 of module MutualExclusionSpec: 60
line 25, col 12 to line 25, col 31 of module MutualExclusionSpec: 6
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 24, col 12 to line 24, col 19 of module MutualExclusionSpec: 42
line 26, col 12 to line 26, col 48 of module MutualExclusionSpec: 3
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 25, col 12 to line 25, col 47 of module MutualExclusionSpec: 18
line 27, col 12 to line 27, col 43 of module MutualExclusionSpec: 0
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<ExitCS line 30, col 1 to line 30, col 12 of module MutualExclusionSpec>: 0:0
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 31, col 12 to line 31, col 26 of module MutualExclusionSpec: 3
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<TypeOK line 10, col 1 to line 10, col 6 of module MutualExclusionSpec>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 10, col 11 to line 10, col 44 of module MutualExclusionSpec: 3
line 32, col 12 to line 32, col 47 of module MutualExclusionSpec: 0
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<MutualExclusion line 39, col 1 to line 39, col 15 of module MutualExclusionSpec>
<TypeOK line 11, col 1 to line 11, col 6 of module MutualExclusionSpec>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 39, col 20 to line 39, col 84 of module MutualExclusionSpec: 3
line 11, col 11 to line 11, col 55 of module MutualExclusionSpec: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<MutualExclusion line 47, col 1 to line 47, col 15 of module MutualExclusionSpec>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 39, col 38 to line 39, col 84 of module MutualExclusionSpec: 12
line 47, col 20 to line 47, col 84 of module MutualExclusionSpec: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 39, col 39 to line 39, col 44 of module MutualExclusionSpec: 12
|line 47, col 38 to line 47, col 84 of module MutualExclusionSpec: 16
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 39, col 50 to line 39, col 84 of module MutualExclusionSpec: 6
||line 47, col 39 to line 47, col 44 of module MutualExclusionSpec: 16
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 39, col 52 to line 39, col 83 of module MutualExclusionSpec: 6
||line 47, col 50 to line 47, col 84 of module MutualExclusionSpec: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 39, col 53 to line 39, col 64 of module MutualExclusionSpec: 6
|line 47, col 31 to line 47, col 35 of module MutualExclusionSpec: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
||line 11, col 1 to line 11, col 8 of module MC: 4:40
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 39, col 71 to line 39, col 82 of module MutualExclusionSpec: 2
|||line 11, col 2 to line 11, col 3 of module MC: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 39, col 31 to line 39, col 35 of module MutualExclusionSpec: 3
|||line 11, col 6 to line 11, col 7 of module MC: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
||line 6, col 1 to line 6, col 6 of module MC: 3:30
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2202:0 @!@!@
End of statistics.
@!@!@ENDMSG 2202 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(2) at 2022-02-09 15:48:21: 5 states generated (244 s/min), 3 distinct states found (146 ds/min), 0 states left on queue.
Progress(3) at 2022-02-09 19:10:36: 4 states generated (199 s/min), 4 distinct states found (199 ds/min), 1 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2199:0 @!@!@
5 states generated, 3 distinct states found, 0 states left on queue.
4 states generated, 4 distinct states found, 1 states left on queue.
@!@!@ENDMSG 2199 @!@!@
@!@!@STARTMSG 2194:0 @!@!@
The depth of the complete state graph search is 2.
The depth of the complete state graph search is 3.
@!@!@ENDMSG 2194 @!@!@
@!@!@STARTMSG 2268:0 @!@!@
The average outdegree of the complete state graph is 1 (minimum is 0, the maximum 2 and the 95th percentile is 2).
@!@!@ENDMSG 2268 @!@!@
@!@!@STARTMSG 2186:0 @!@!@
Finished in 1235ms at (2022-02-09 15:48:21)
Finished in 1210ms at (2022-02-09 19:10:36)
@!@!@ENDMSG 2186 @!@!@
......@@ -7,10 +7,10 @@ p1, p2
----
\* MV CONSTANT definitions Procs
const_1644411648311310000 ==
const_1644423034848529000 ==
{p1, p2}
----
=============================================================================
\* Modification History
\* Created Wed Feb 09 16:00:48 MSK 2022 by kirr
\* Created Wed Feb 09 19:10:34 MSK 2022 by kirr
......@@ -2,7 +2,7 @@
TLC2 Version 2.16 of Day Month 20?? (rev: 9310ee7)
@!@!@ENDMSG 2262 @!@!@
@!@!@STARTMSG 2187:0 @!@!@
Running breadth-first search Model-Checking with fp 109 and seed -1003431394953192071 with 2 workers on 4 cores with 1161MB heap and 2608MB offheap memory [pid: 64738] (Linux 5.10.0-10-amd64 amd64, AdoptOpenJDK 14.0.1 x86_64, OffHeapDiskFPSet, DiskStateQueue).
Running breadth-first search Model-Checking with fp 79 and seed 2865534814333238230 with 2 workers on 4 cores with 1161MB heap and 2608MB offheap memory [pid: 74362] (Linux 5.10.0-10-amd64 amd64, AdoptOpenJDK 14.0.1 x86_64, OffHeapDiskFPSet, DiskStateQueue).
@!@!@ENDMSG 2187 @!@!@
@!@!@STARTMSG 2220:0 @!@!@
Starting SANY...
......@@ -23,7 +23,7 @@ Semantic processing of module MC
SANY finished.
@!@!@ENDMSG 2219 @!@!@
@!@!@STARTMSG 2185:0 @!@!@
Starting... (2022-02-09 15:48:20)
Starting... (2022-02-09 19:10:35)
@!@!@ENDMSG 2185 @!@!@
@!@!@STARTMSG 2212:0 @!@!@
Implied-temporal checking--satisfiability problem has 4 branches.
......@@ -32,122 +32,142 @@ Implied-temporal checking--satisfiability problem has 4 branches.
Computing initial states...
@!@!@ENDMSG 2189 @!@!@
@!@!@STARTMSG 2190:0 @!@!@
Finished computing initial states: 1 distinct state generated at 2022-02-09 15:48:21.
Finished computing initial states: 1 distinct state generated at 2022-02-09 19:10:36.
@!@!@ENDMSG 2190 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(2) at 2022-02-09 15:48:21: 5 states generated, 3 distinct states found, 0 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2192:0 @!@!@
Checking 4 branches of temporal properties for the complete state space with 12 total distinct states at (2022-02-09 15:48:21)
@!@!@ENDMSG 2192 @!@!@
@!@!@STARTMSG 2267:0 @!@!@
Finished checking temporal properties in 00s at 2022-02-09 15:48:21
@!@!@ENDMSG 2267 @!@!@
@!@!@STARTMSG 2193:0 @!@!@
Model checking completed. No error has been found.
Estimates of the probability that TLC did not check all reachable states
because two distinct states had the same fingerprint:
calculated (optimistic): val = 3.3E-19
@!@!@ENDMSG 2193 @!@!@
@!@!@STARTMSG 1000:1 @!@!@
TLC threw an unexpected exception.
This was probably caused by an error in the spec or model.
See the User Output or TLC Console for clues to what happened.
The exception was a java.lang.RuntimeException
: Attempted to check if the value:
p1
is an element of the model value p1
@!@!@ENDMSG 1000 @!@!@
@!@!@STARTMSG 2121:1 @!@!@
The behavior up to this point is:
@!@!@ENDMSG 2121 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
1: <Initial predicate>
pc = (p1 :> "non-cs" @@ p2 :> "non-cs")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
2: <WantCS line 20, col 9 to line 21, col 48 of module MutualExclusionSpec>
pc = (p1 :> "csentry" @@ p2 :> "non-cs")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2147:1 @!@!@
TLC was unable to fingerprint.
Fingerprint Stack Trace:
0. Line 25, column 9 to line 27, column 43 in MutualExclusionSpec
1. Line 25, column 12 to line 25, column 31 in MutualExclusionSpec
2. Line 26, column 12 to line 26, column 48 in MutualExclusionSpec
3. Line 26, column 21 to line 26, column 32 in MutualExclusionSpec
4. Line 11, column 1 to line 11, column 8 in MC
Reason:
Attempted to check if the value:
p1
is an element of the model value p1
@!@!@ENDMSG 2147 @!@!@
@!@!@STARTMSG 2201:0 @!@!@
The coverage statistics at 2022-02-09 15:48:21
The coverage statistics at 2022-02-09 19:10:36
@!@!@ENDMSG 2201 @!@!@
@!@!@STARTMSG 2773:0 @!@!@
<Init line 15, col 1 to line 15, col 4 of module MutualExclusionSpec>: 1:1
<Init line 16, col 1 to line 16, col 4 of module MutualExclusionSpec>: 2:2
@!@!@ENDMSG 2773 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 15, col 9 to line 15, col 36 of module MutualExclusionSpec: 1
line 16, col 9 to line 16, col 36 of module MutualExclusionSpec: 2
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
|line 15, col 16 to line 15, col 36 of module MutualExclusionSpec: 1:2
|line 16, col 16 to line 16, col 36 of module MutualExclusionSpec: 2:4
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 15, col 17 to line 15, col 21 of module MutualExclusionSpec: 1
||line 16, col 17 to line 16, col 21 of module MutualExclusionSpec: 2
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
||line 15, col 26 to line 15, col 35 of module MutualExclusionSpec: 1:5
||line 16, col 26 to line 16, col 35 of module MutualExclusionSpec: 2:10
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<EnterCS line 18, col 1 to line 18, col 13 of module MutualExclusionSpec>: 2:6
<WantCS line 19, col 1 to line 19, col 12 of module MutualExclusionSpec>: 3:4
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 19, col 28 to line 19, col 40 of module MutualExclusionSpec: 78
line 20, col 12 to line 20, col 30 of module MutualExclusionSpec: 11
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 19, col 28 to line 19, col 32 of module MutualExclusionSpec: 66
|line 20, col 12 to line 20, col 19 of module MutualExclusionSpec: 7
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 19, col 21 to line 19, col 25 of module MutualExclusionSpec: 42
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
|line 6, col 1 to line 6, col 6 of module MC: 42:126
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 20, col 12 to line 20, col 43 of module MutualExclusionSpec: 6
line 21, col 12 to line 21, col 48 of module MutualExclusionSpec: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<ExitCS line 23, col 1 to line 23, col 12 of module MutualExclusionSpec>: 0:18
<EnterCS line 24, col 1 to line 24, col 13 of module MutualExclusionSpec>: 0:0
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 24, col 12 to line 24, col 26 of module MutualExclusionSpec: 60
line 25, col 12 to line 25, col 31 of module MutualExclusionSpec: 6
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 24, col 12 to line 24, col 19 of module MutualExclusionSpec: 42
line 26, col 12 to line 26, col 48 of module MutualExclusionSpec: 3
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 25, col 12 to line 25, col 47 of module MutualExclusionSpec: 18
line 27, col 12 to line 27, col 43 of module MutualExclusionSpec: 0
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<ExitCS line 30, col 1 to line 30, col 12 of module MutualExclusionSpec>: 0:0
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 31, col 12 to line 31, col 26 of module MutualExclusionSpec: 3
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<TypeOK line 10, col 1 to line 10, col 6 of module MutualExclusionSpec>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 10, col 11 to line 10, col 44 of module MutualExclusionSpec: 3
line 32, col 12 to line 32, col 47 of module MutualExclusionSpec: 0
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<MutualExclusion line 39, col 1 to line 39, col 15 of module MutualExclusionSpec>
<TypeOK line 11, col 1 to line 11, col 6 of module MutualExclusionSpec>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 39, col 20 to line 39, col 84 of module MutualExclusionSpec: 3
line 11, col 11 to line 11, col 55 of module MutualExclusionSpec: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<MutualExclusion line 47, col 1 to line 47, col 15 of module MutualExclusionSpec>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 39, col 38 to line 39, col 84 of module MutualExclusionSpec: 12
line 47, col 20 to line 47, col 84 of module MutualExclusionSpec: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 39, col 39 to line 39, col 44 of module MutualExclusionSpec: 12
|line 47, col 38 to line 47, col 84 of module MutualExclusionSpec: 16
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 39, col 50 to line 39, col 84 of module MutualExclusionSpec: 6
||line 47, col 39 to line 47, col 44 of module MutualExclusionSpec: 16
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 39, col 52 to line 39, col 83 of module MutualExclusionSpec: 6
||line 47, col 50 to line 47, col 84 of module MutualExclusionSpec: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 39, col 53 to line 39, col 64 of module MutualExclusionSpec: 6
|line 47, col 31 to line 47, col 35 of module MutualExclusionSpec: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
||line 11, col 1 to line 11, col 8 of module MC: 4:40
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 39, col 71 to line 39, col 82 of module MutualExclusionSpec: 2
|||line 11, col 2 to line 11, col 3 of module MC: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 39, col 31 to line 39, col 35 of module MutualExclusionSpec: 3
|||line 11, col 6 to line 11, col 7 of module MC: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
||line 6, col 1 to line 6, col 6 of module MC: 3:30
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2202:0 @!@!@
End of statistics.
@!@!@ENDMSG 2202 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(2) at 2022-02-09 15:48:21: 5 states generated (244 s/min), 3 distinct states found (146 ds/min), 0 states left on queue.
Progress(3) at 2022-02-09 19:10:36: 4 states generated (199 s/min), 4 distinct states found (199 ds/min), 1 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2199:0 @!@!@
5 states generated, 3 distinct states found, 0 states left on queue.
4 states generated, 4 distinct states found, 1 states left on queue.
@!@!@ENDMSG 2199 @!@!@
@!@!@STARTMSG 2194:0 @!@!@
The depth of the complete state graph search is 2.
The depth of the complete state graph search is 3.
@!@!@ENDMSG 2194 @!@!@
@!@!@STARTMSG 2268:0 @!@!@
The average outdegree of the complete state graph is 1 (minimum is 0, the maximum 2 and the 95th percentile is 2).
@!@!@ENDMSG 2268 @!@!@
@!@!@STARTMSG 2186:0 @!@!@
Finished in 1235ms at (2022-02-09 15:48:21)
Finished in 1210ms at (2022-02-09 19:10:36)
@!@!@ENDMSG 2186 @!@!@
strict digraph DiskGraph {
edge [colorscheme="paired12"]
nodesep=0.35;
subgraph cluster_graph {
color="white";
3143074434256139936 [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"non-cs\")",style = filled]
3143074434256139936 -> 2823154248114870767 [label="",color="2",fontcolor="2"];
2823154248114870767 [label="pc = (p1 :> \"csentry\" @@ p2 :> \"non-cs\")"];
3143074434256139936 -> 1422282246814246033 [label="",color="2",fontcolor="2"];
1422282246814246033 [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"csentry\")"];
3143074434256139936 -> 3143074434256139936 [style="dashed"];
1422282246814246033 -> 4396769628091392145 [label="",color="2",fontcolor="2"];
4396769628091392145 [label="pc = (p1 :> \"csentry\" @@ p2 :> \"csentry\")"];
2823154248114870767 -> 2823154248114870767 [style="dashed"];
1422282246814246033 -> 1422282246814246033 [style="dashed"];
{rank = same; 3143074434256139936;}
{rank = same; 1422282246814246033;2823154248114870767;}
}
}
\ No newline at end of file
digraph DiskGraph {
nodesep=0.35;
subgraph cluster_graph {
color="white";
"3143074434256139936.1" [style = filled] [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"non-cs\")
#3143074434256139936.1#"]
"3143074434256139936.1" -> "3143074434256139936.1" [label="[fffftttt]"];
"3143074434256139936.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"non-cs\")
#3143074434256139936.1#"];
"3143074434256139936.1" -> "1422282246814246033.1" [label="[fffftttt]"];
"1422282246814246033.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"csentry\")
#1422282246814246033.1#"];
"3143074434256139936.1" -> "2823154248114870767.1" [label="[fffftttt]"];
"2823154248114870767.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"non-cs\")
#2823154248114870767.1#"];
}
}43074434256139936.1" -> "2823154248114870767.1" [label="[fffftttt]"];
"2823154248114870767.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"non-cs\")
#2823154248114870767.1#"];
}
}
\ No newline at end of file
......@@ -3,20 +3,27 @@
\* Procs is set of processes.
\* Every process is assumed to loop and enter into "cs" state on every interation.
\* States besides non-critical are represented as "non-cs".
\* Non-critical state is represented as "non-cs".
\* When process decides it want to enter into critical-section, it first goes into "csentry" state.
CONSTANT Procs
VARIABLES pc
TypeOK == pc \in [Procs -> {"non-cs", "cs"}]
TypeOK == pc \in [Procs -> {"non-cs", "csentry", "cs"}]
vars == <<pc>>
\* All processes start from non-critical section.
Init == pc \in [Procs -> {"non-cs"}]
\* WantCS(proc) is action when proc decides that it wants to enter into critical section.
WantCS(proc) ==
/\ pc[proc] = "non-cs"
/\ pc' = [pc EXCEPT ![proc] = "csentry"]
\* EnterCS(proc) is action when proc enters critical section.
EnterCS(proc) ==
/\ \A i \in Procs: pc[i] /= "cs"
/\ pc[proc] = "csentry"
/\ \A i \in Procs \ proc : pc[i] /= "cs"
/\ pc' = [pc EXCEPT ![proc] = "cs"]
\* ExitCS(proc) is action when proc leaves critical section.
......@@ -24,12 +31,13 @@ ExitCS(proc) ==
/\ pc[proc] = "cs"
/\ pc' = [pc EXCEPT ![proc] = "non-cs"]
Next == \E i \in Procs: EnterCS(i) \/ ExitCS(i)
Next == \E i \in Procs: WantCS(i) \/ EnterCS(i) \/ ExitCS(i)
Spec == /\ Init
/\ [][Next]_vars
/\ \A i \in Procs: ( \* fairness
\* not fair for WantCS - it can pause and even hang there
/\ SF_vars(EnterCS(i))
/\ SF_vars(ExitCS(i)))
......@@ -40,7 +48,7 @@ MutualExclusion == \A i,j \in Procs: (i /= j) => ~((pc[i] = "cs") /\ (pc[j] = "c
\* Liveness is temporal property indicating that every process has a chance to enter critical section and leaves it.
Liveness == \A i \in Procs:
/\ (pc[i] = "non-cs") ~> (pc[i] = "cs")
/\ (pc[i] = "csentry") ~> (pc[i] = "cs")
/\ (pc[i] = "cs") ~> (pc[i] = "non-cs")
......@@ -51,5 +59,5 @@ THEOREM Spec => Liveness
=============================================================================
\* Modification History
\* Last modified Wed Feb 09 17:36:37 MSK 2022 by kirr
\* Last modified Wed Feb 09 19:09:49 MSK 2022 by kirr
\* Created Wed Feb 09 13:11:29 MSK 2022 by kirr
\* CONSTANT definitions
\* MV CONSTANT declarations
CONSTANTS
p1 = p1
p2 = p2
\* MV CONSTANT definitions
CONSTANT
Procs <- const_1644411039581298000
Procs <- const_1644423072349533000
\* SPECIFICATION definition
SPECIFICATION
Spec
......@@ -12,4 +16,4 @@ MutualExclusion
\* PROPERTY definition
PROPERTY
Liveness
\* Generated on Wed Feb 09 15:50:39 MSK 2022
\ No newline at end of file
\* Generated on Wed Feb 09 19:11:12 MSK 2022
\ No newline at end of file
......@@ -2,7 +2,7 @@
TLC2 Version 2.16 of Day Month 20?? (rev: 9310ee7)
@!@!@ENDMSG 2262 @!@!@
@!@!@STARTMSG 2187:0 @!@!@
Running breadth-first search Model-Checking with fp 86 and seed 8693710054238297361 with 2 workers on 4 cores with 1161MB heap and 2608MB offheap memory [pid: 65364] (Linux 5.10.0-10-amd64 amd64, AdoptOpenJDK 14.0.1 x86_64, OffHeapDiskFPSet, DiskStateQueue).
Running breadth-first search Model-Checking with fp 14 and seed -8502427424122778385 with 2 workers on 4 cores with 1161MB heap and 2608MB offheap memory [pid: 74427] (Linux 5.10.0-10-amd64 amd64, AdoptOpenJDK 14.0.1 x86_64, OffHeapDiskFPSet, DiskStateQueue).
@!@!@ENDMSG 2187 @!@!@
@!@!@STARTMSG 2220:0 @!@!@
Starting SANY...
......@@ -23,7 +23,7 @@ Semantic processing of module MC
SANY finished.
@!@!@ENDMSG 2219 @!@!@
@!@!@STARTMSG 2185:0 @!@!@
Starting... (2022-02-09 16:00:48)
Starting... (2022-02-09 19:11:12)
@!@!@ENDMSG 2185 @!@!@
@!@!@STARTMSG 2212:0 @!@!@
Implied-temporal checking--satisfiability problem has 4 branches.
......@@ -32,134 +32,158 @@ Implied-temporal checking--satisfiability problem has 4 branches.
Computing initial states...
@!@!@ENDMSG 2189 @!@!@
@!@!@STARTMSG 2190:0 @!@!@
Finished computing initial states: 1 distinct state generated at 2022-02-09 16:00:49.
Finished computing initial states: 1 distinct state generated at 2022-02-09 19:11:13.
@!@!@ENDMSG 2190 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(2) at 2022-02-09 16:00:49: 5 states generated, 3 distinct states found, 0 states left on queue.
Progress(4) at 2022-02-09 19:11:13: 15 states generated, 8 distinct states found, 0 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2192:0 @!@!@
Checking 4 branches of temporal properties for the complete state space with 12 total distinct states at (2022-02-09 16:00:49)
Checking 4 branches of temporal properties for the complete state space with 32 total distinct states at (2022-02-09 19:11:13)
@!@!@ENDMSG 2192 @!@!@
@!@!@STARTMSG 2267:0 @!@!@
Finished checking temporal properties in 00s at 2022-02-09 16:00:49
Finished checking temporal properties in 00s at 2022-02-09 19:11:13
@!@!@ENDMSG 2267 @!@!@
@!@!@STARTMSG 2193:0 @!@!@
Model checking completed. No error has been found.
Estimates of the probability that TLC did not check all reachable states
because two distinct states had the same fingerprint:
calculated (optimistic): val = 3.3E-19
calculated (optimistic): val = 3.0E-18
@!@!@ENDMSG 2193 @!@!@
@!@!@STARTMSG 2201:0 @!@!@
The coverage statistics at 2022-02-09 16:00:49
The coverage statistics at 2022-02-09 19:11:13
@!@!@ENDMSG 2201 @!@!@
@!@!@STARTMSG 2773:0 @!@!@
<Init line 15, col 1 to line 15, col 4 of module MutualExclusionSpec>: 1:1
<Init line 16, col 1 to line 16, col 4 of module MutualExclusionSpec>: 1:1
@!@!@ENDMSG 2773 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 15, col 9 to line 15, col 36 of module MutualExclusionSpec: 1
line 16, col 9 to line 16, col 36 of module MutualExclusionSpec: 1
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
|line 15, col 16 to line 15, col 36 of module MutualExclusionSpec: 1:2
|line 16, col 16 to line 16, col 36 of module MutualExclusionSpec: 1:2
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 15, col 17 to line 15, col 21 of module MutualExclusionSpec: 1
||line 16, col 17 to line 16, col 21 of module MutualExclusionSpec: 1
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
||line 15, col 26 to line 15, col 35 of module MutualExclusionSpec: 1:5
||line 16, col 26 to line 16, col 35 of module MutualExclusionSpec: 1:5
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<EnterCS line 18, col 1 to line 18, col 13 of module MutualExclusionSpec>: 2:6
<WantCS line 19, col 1 to line 19, col 12 of module MutualExclusionSpec>: 4:10
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 19, col 28 to line 19, col 40 of module MutualExclusionSpec: 78
line 20, col 12 to line 20, col 30 of module MutualExclusionSpec: 34
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 19, col 28 to line 19, col 32 of module MutualExclusionSpec: 66
|line 20, col 12 to line 20, col 19 of module MutualExclusionSpec: 24
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 19, col 21 to line 19, col 25 of module MutualExclusionSpec: 42
line 21, col 12 to line 21, col 48 of module MutualExclusionSpec: 10
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<EnterCS line 24, col 1 to line 24, col 13 of module MutualExclusionSpec>: 3:6
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 25, col 12 to line 25, col 31 of module MutualExclusionSpec: 30
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 25, col 12 to line 25, col 19 of module MutualExclusionSpec: 24
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 26, col 38 to line 26, col 50 of module MutualExclusionSpec: 14
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 26, col 38 to line 26, col 42 of module MutualExclusionSpec: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 26, col 21 to line 26, col 34 of module MutualExclusionSpec: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 26, col 21 to line 26, col 25 of module MutualExclusionSpec: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
|line 11, col 1 to line 11, col 8 of module MC: 42:126
||line 11, col 1 to line 11, col 8 of module MC: 8:16
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 11, col 2 to line 11, col 3 of module MC: 42
|||line 11, col 2 to line 11, col 3 of module MC: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 11, col 6 to line 11, col 7 of module MC: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 11, col 6 to line 11, col 7 of module MC: 42
|line 26, col 29 to line 26, col 34 of module MutualExclusionSpec: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 20, col 12 to line 20, col 43 of module MutualExclusionSpec: 6
line 27, col 12 to line 27, col 43 of module MutualExclusionSpec: 6
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<ExitCS line 23, col 1 to line 23, col 12 of module MutualExclusionSpec>: 0:18
<ExitCS line 30, col 1 to line 30, col 12 of module MutualExclusionSpec>: 0:6
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 24, col 12 to line 24, col 26 of module MutualExclusionSpec: 60
line 31, col 12 to line 31, col 26 of module MutualExclusionSpec: 30
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 24, col 12 to line 24, col 19 of module MutualExclusionSpec: 42
|line 31, col 12 to line 31, col 19 of module MutualExclusionSpec: 24
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 25, col 12 to line 25, col 47 of module MutualExclusionSpec: 18
line 32, col 12 to line 32, col 47 of module MutualExclusionSpec: 6
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<TypeOK line 10, col 1 to line 10, col 6 of module MutualExclusionSpec>
<TypeOK line 11, col 1 to line 11, col 6 of module MutualExclusionSpec>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 10, col 11 to line 10, col 44 of module MutualExclusionSpec: 3
line 11, col 11 to line 11, col 55 of module MutualExclusionSpec: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<MutualExclusion line 39, col 1 to line 39, col 15 of module MutualExclusionSpec>
<MutualExclusion line 47, col 1 to line 47, col 15 of module MutualExclusionSpec>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 39, col 20 to line 39, col 84 of module MutualExclusionSpec: 3
line 47, col 20 to line 47, col 84 of module MutualExclusionSpec: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 39, col 38 to line 39, col 84 of module MutualExclusionSpec: 12
|line 47, col 38 to line 47, col 84 of module MutualExclusionSpec: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 39, col 39 to line 39, col 44 of module MutualExclusionSpec: 12
||line 47, col 39 to line 47, col 44 of module MutualExclusionSpec: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 39, col 50 to line 39, col 84 of module MutualExclusionSpec: 6
||line 47, col 50 to line 47, col 84 of module MutualExclusionSpec: 16
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 39, col 52 to line 39, col 83 of module MutualExclusionSpec: 6
|||line 47, col 52 to line 47, col 83 of module MutualExclusionSpec: 16
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 39, col 53 to line 39, col 64 of module MutualExclusionSpec: 6
||||line 47, col 53 to line 47, col 64 of module MutualExclusionSpec: 16
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 39, col 71 to line 39, col 82 of module MutualExclusionSpec: 2
||||line 47, col 71 to line 47, col 82 of module MutualExclusionSpec: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 39, col 31 to line 39, col 35 of module MutualExclusionSpec: 3
|line 47, col 31 to line 47, col 35 of module MutualExclusionSpec: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
||line 11, col 1 to line 11, col 8 of module MC: 3:30
||line 11, col 1 to line 11, col 8 of module MC: 8:80
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 11, col 2 to line 11, col 3 of module MC: 3
|||line 11, col 2 to line 11, col 3 of module MC: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 11, col 6 to line 11, col 7 of module MC: 3
|||line 11, col 6 to line 11, col 7 of module MC: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2202:0 @!@!@
End of statistics.
@!@!@ENDMSG 2202 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(2) at 2022-02-09 16:00:49: 5 states generated (235 s/min), 3 distinct states found (141 ds/min), 0 states left on queue.
Progress(4) at 2022-02-09 19:11:13: 15 states generated (736 s/min), 8 distinct states found (392 ds/min), 0 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2199:0 @!@!@
5 states generated, 3 distinct states found, 0 states left on queue.
15 states generated, 8 distinct states found, 0 states left on queue.
@!@!@ENDMSG 2199 @!@!@
@!@!@STARTMSG 2194:0 @!@!@
The depth of the complete state graph search is 2.
The depth of the complete state graph search is 4.
@!@!@ENDMSG 2194 @!@!@
@!@!@STARTMSG 2268:0 @!@!@
The average outdegree of the complete state graph is 1 (minimum is 0, the maximum 2 and the 95th percentile is 2).
@!@!@ENDMSG 2268 @!@!@
@!@!@STARTMSG 2186:0 @!@!@
Finished in 1290ms at (2022-02-09 16:00:49)
Finished in 1241ms at (2022-02-09 19:11:13)
@!@!@ENDMSG 2186 @!@!@
---- MODULE MC ----
EXTENDS MutualExclusionSpec, TLC
\* CONSTANT definitions @modelParameterConstants:0Procs
const_1644410888466290000 ==
{0, 1}
\* MV CONSTANT declarations@modelParameterConstants
CONSTANTS
p1, p2
----
\* MV CONSTANT definitions Procs
const_1644423072349533000 ==
{p1, p2}
----
=============================================================================
\* Modification History
\* Created Wed Feb 09 15:48:08 MSK 2022 by kirr
\* Created Wed Feb 09 19:11:12 MSK 2022 by kirr
......@@ -2,7 +2,7 @@
TLC2 Version 2.16 of Day Month 20?? (rev: 9310ee7)
@!@!@ENDMSG 2262 @!@!@
@!@!@STARTMSG 2187:0 @!@!@
Running breadth-first search Model-Checking with fp 86 and seed 8693710054238297361 with 2 workers on 4 cores with 1161MB heap and 2608MB offheap memory [pid: 65364] (Linux 5.10.0-10-amd64 amd64, AdoptOpenJDK 14.0.1 x86_64, OffHeapDiskFPSet, DiskStateQueue).
Running breadth-first search Model-Checking with fp 14 and seed -8502427424122778385 with 2 workers on 4 cores with 1161MB heap and 2608MB offheap memory [pid: 74427] (Linux 5.10.0-10-amd64 amd64, AdoptOpenJDK 14.0.1 x86_64, OffHeapDiskFPSet, DiskStateQueue).
@!@!@ENDMSG 2187 @!@!@
@!@!@STARTMSG 2220:0 @!@!@
Starting SANY...
......@@ -23,7 +23,7 @@ Semantic processing of module MC
SANY finished.
@!@!@ENDMSG 2219 @!@!@
@!@!@STARTMSG 2185:0 @!@!@
Starting... (2022-02-09 16:00:48)
Starting... (2022-02-09 19:11:12)
@!@!@ENDMSG 2185 @!@!@
@!@!@STARTMSG 2212:0 @!@!@
Implied-temporal checking--satisfiability problem has 4 branches.
......@@ -32,134 +32,158 @@ Implied-temporal checking--satisfiability problem has 4 branches.
Computing initial states...
@!@!@ENDMSG 2189 @!@!@
@!@!@STARTMSG 2190:0 @!@!@
Finished computing initial states: 1 distinct state generated at 2022-02-09 16:00:49.
Finished computing initial states: 1 distinct state generated at 2022-02-09 19:11:13.
@!@!@ENDMSG 2190 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(2) at 2022-02-09 16:00:49: 5 states generated, 3 distinct states found, 0 states left on queue.
Progress(4) at 2022-02-09 19:11:13: 15 states generated, 8 distinct states found, 0 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2192:0 @!@!@
Checking 4 branches of temporal properties for the complete state space with 12 total distinct states at (2022-02-09 16:00:49)
Checking 4 branches of temporal properties for the complete state space with 32 total distinct states at (2022-02-09 19:11:13)
@!@!@ENDMSG 2192 @!@!@
@!@!@STARTMSG 2267:0 @!@!@
Finished checking temporal properties in 00s at 2022-02-09 16:00:49
Finished checking temporal properties in 00s at 2022-02-09 19:11:13
@!@!@ENDMSG 2267 @!@!@
@!@!@STARTMSG 2193:0 @!@!@
Model checking completed. No error has been found.
Estimates of the probability that TLC did not check all reachable states
because two distinct states had the same fingerprint:
calculated (optimistic): val = 3.3E-19
calculated (optimistic): val = 3.0E-18
@!@!@ENDMSG 2193 @!@!@
@!@!@STARTMSG 2201:0 @!@!@
The coverage statistics at 2022-02-09 16:00:49
The coverage statistics at 2022-02-09 19:11:13
@!@!@ENDMSG 2201 @!@!@
@!@!@STARTMSG 2773:0 @!@!@
<Init line 15, col 1 to line 15, col 4 of module MutualExclusionSpec>: 1:1
<Init line 16, col 1 to line 16, col 4 of module MutualExclusionSpec>: 1:1
@!@!@ENDMSG 2773 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 15, col 9 to line 15, col 36 of module MutualExclusionSpec: 1
line 16, col 9 to line 16, col 36 of module MutualExclusionSpec: 1
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
|line 15, col 16 to line 15, col 36 of module MutualExclusionSpec: 1:2
|line 16, col 16 to line 16, col 36 of module MutualExclusionSpec: 1:2
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 15, col 17 to line 15, col 21 of module MutualExclusionSpec: 1
||line 16, col 17 to line 16, col 21 of module MutualExclusionSpec: 1
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
||line 15, col 26 to line 15, col 35 of module MutualExclusionSpec: 1:5
||line 16, col 26 to line 16, col 35 of module MutualExclusionSpec: 1:5
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<EnterCS line 18, col 1 to line 18, col 13 of module MutualExclusionSpec>: 2:6
<WantCS line 19, col 1 to line 19, col 12 of module MutualExclusionSpec>: 4:10
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 19, col 28 to line 19, col 40 of module MutualExclusionSpec: 78
line 20, col 12 to line 20, col 30 of module MutualExclusionSpec: 34
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 19, col 28 to line 19, col 32 of module MutualExclusionSpec: 66
|line 20, col 12 to line 20, col 19 of module MutualExclusionSpec: 24
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 19, col 21 to line 19, col 25 of module MutualExclusionSpec: 42
line 21, col 12 to line 21, col 48 of module MutualExclusionSpec: 10
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<EnterCS line 24, col 1 to line 24, col 13 of module MutualExclusionSpec>: 3:6
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 25, col 12 to line 25, col 31 of module MutualExclusionSpec: 30
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 25, col 12 to line 25, col 19 of module MutualExclusionSpec: 24
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 26, col 38 to line 26, col 50 of module MutualExclusionSpec: 14
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 26, col 38 to line 26, col 42 of module MutualExclusionSpec: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 26, col 21 to line 26, col 34 of module MutualExclusionSpec: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 26, col 21 to line 26, col 25 of module MutualExclusionSpec: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
|line 11, col 1 to line 11, col 8 of module MC: 42:126
||line 11, col 1 to line 11, col 8 of module MC: 8:16
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 11, col 2 to line 11, col 3 of module MC: 42
|||line 11, col 2 to line 11, col 3 of module MC: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 11, col 6 to line 11, col 7 of module MC: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 11, col 6 to line 11, col 7 of module MC: 42
|line 26, col 29 to line 26, col 34 of module MutualExclusionSpec: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 20, col 12 to line 20, col 43 of module MutualExclusionSpec: 6
line 27, col 12 to line 27, col 43 of module MutualExclusionSpec: 6
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<ExitCS line 23, col 1 to line 23, col 12 of module MutualExclusionSpec>: 0:18
<ExitCS line 30, col 1 to line 30, col 12 of module MutualExclusionSpec>: 0:6
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 24, col 12 to line 24, col 26 of module MutualExclusionSpec: 60
line 31, col 12 to line 31, col 26 of module MutualExclusionSpec: 30
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 24, col 12 to line 24, col 19 of module MutualExclusionSpec: 42
|line 31, col 12 to line 31, col 19 of module MutualExclusionSpec: 24
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 25, col 12 to line 25, col 47 of module MutualExclusionSpec: 18
line 32, col 12 to line 32, col 47 of module MutualExclusionSpec: 6
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<TypeOK line 10, col 1 to line 10, col 6 of module MutualExclusionSpec>
<TypeOK line 11, col 1 to line 11, col 6 of module MutualExclusionSpec>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 10, col 11 to line 10, col 44 of module MutualExclusionSpec: 3
line 11, col 11 to line 11, col 55 of module MutualExclusionSpec: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<MutualExclusion line 39, col 1 to line 39, col 15 of module MutualExclusionSpec>
<MutualExclusion line 47, col 1 to line 47, col 15 of module MutualExclusionSpec>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 39, col 20 to line 39, col 84 of module MutualExclusionSpec: 3
line 47, col 20 to line 47, col 84 of module MutualExclusionSpec: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 39, col 38 to line 39, col 84 of module MutualExclusionSpec: 12
|line 47, col 38 to line 47, col 84 of module MutualExclusionSpec: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 39, col 39 to line 39, col 44 of module MutualExclusionSpec: 12
||line 47, col 39 to line 47, col 44 of module MutualExclusionSpec: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 39, col 50 to line 39, col 84 of module MutualExclusionSpec: 6
||line 47, col 50 to line 47, col 84 of module MutualExclusionSpec: 16
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 39, col 52 to line 39, col 83 of module MutualExclusionSpec: 6
|||line 47, col 52 to line 47, col 83 of module MutualExclusionSpec: 16
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 39, col 53 to line 39, col 64 of module MutualExclusionSpec: 6
||||line 47, col 53 to line 47, col 64 of module MutualExclusionSpec: 16
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 39, col 71 to line 39, col 82 of module MutualExclusionSpec: 2
||||line 47, col 71 to line 47, col 82 of module MutualExclusionSpec: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 39, col 31 to line 39, col 35 of module MutualExclusionSpec: 3
|line 47, col 31 to line 47, col 35 of module MutualExclusionSpec: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
||line 11, col 1 to line 11, col 8 of module MC: 3:30
||line 11, col 1 to line 11, col 8 of module MC: 8:80
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 11, col 2 to line 11, col 3 of module MC: 3
|||line 11, col 2 to line 11, col 3 of module MC: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 11, col 6 to line 11, col 7 of module MC: 3
|||line 11, col 6 to line 11, col 7 of module MC: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2202:0 @!@!@
End of statistics.
@!@!@ENDMSG 2202 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(2) at 2022-02-09 16:00:49: 5 states generated (235 s/min), 3 distinct states found (141 ds/min), 0 states left on queue.
Progress(4) at 2022-02-09 19:11:13: 15 states generated (736 s/min), 8 distinct states found (392 ds/min), 0 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2199:0 @!@!@
5 states generated, 3 distinct states found, 0 states left on queue.
15 states generated, 8 distinct states found, 0 states left on queue.
@!@!@ENDMSG 2199 @!@!@
@!@!@STARTMSG 2194:0 @!@!@
The depth of the complete state graph search is 2.
The depth of the complete state graph search is 4.
@!@!@ENDMSG 2194 @!@!@
@!@!@STARTMSG 2268:0 @!@!@
The average outdegree of the complete state graph is 1 (minimum is 0, the maximum 2 and the 95th percentile is 2).
@!@!@ENDMSG 2268 @!@!@
@!@!@STARTMSG 2186:0 @!@!@
Finished in 1290ms at (2022-02-09 16:00:49)
Finished in 1241ms at (2022-02-09 19:11:13)
@!@!@ENDMSG 2186 @!@!@
strict digraph DiskGraph {
edge [colorscheme="paired12"]
nodesep=0.35;
subgraph cluster_graph {
color="white";
8798217331989301526 [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"non-cs\")",style = filled]
8798217331989301526 -> 2809826689868173441 [label="",color="2",fontcolor="2"];
2809826689868173441 [label="pc = (p1 :> \"csentry\" @@ p2 :> \"non-cs\")"];
8798217331989301526 -> -8068881905337273774 [label="",color="2",fontcolor="2"];
-8068881905337273774 [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"csentry\")"];
2809826689868173441 -> -243709637424907489 [label="",color="3",fontcolor="3"];
-243709637424907489 [label="pc = (p1 :> \"cs\" @@ p2 :> \"non-cs\")"];
8798217331989301526 -> 8798217331989301526 [style="dashed"];
2809826689868173441 -> -2512439092521345775 [label="",color="2",fontcolor="2"];
-2512439092521345775 [label="pc = (p1 :> \"csentry\" @@ p2 :> \"csentry\")"];
2809826689868173441 -> 2809826689868173441 [style="dashed"];
-8068881905337273774 -> -2512439092521345775 [label="",color="2",fontcolor="2"];
-8068881905337273774 -> -8710873557232318604 [label="",color="3",fontcolor="3"];
-8710873557232318604 [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"cs\")"];
-8068881905337273774 -> -8068881905337273774 [style="dashed"];
-243709637424907489 -> 8798217331989301526 [label="",color="4",fontcolor="4"];
-243709637424907489 -> -2885253387240760518 [label="",color="2",fontcolor="2"];
-2885253387240760518 [label="pc = (p1 :> \"cs\" @@ p2 :> \"csentry\")"];
-243709637424907489 -> -243709637424907489 [style="dashed"];
-2512439092521345775 -> -2885253387240760518 [label="",color="3",fontcolor="3"];
-2512439092521345775 -> -8857494542735143160 [label="",color="3",fontcolor="3"];
-8857494542735143160 [label="pc = (p1 :> \"csentry\" @@ p2 :> \"cs\")"];
-2512439092521345775 -> -2512439092521345775 [style="dashed"];
-8710873557232318604 -> -8857494542735143160 [label="",color="2",fontcolor="2"];
-8710873557232318604 -> 8798217331989301526 [label="",color="4",fontcolor="4"];
-8710873557232318604 -> -8710873557232318604 [style="dashed"];
-2885253387240760518 -> -8068881905337273774 [label="",color="4",fontcolor="4"];
-2885253387240760518 -> -2885253387240760518 [style="dashed"];
-8857494542735143160 -> 2809826689868173441 [label="",color="4",fontcolor="4"];
-8857494542735143160 -> -8857494542735143160 [style="dashed"];
{rank = same; 8798217331989301526;}
{rank = same; 2809826689868173441;-8068881905337273774;}
{rank = same; -2512439092521345775;-243709637424907489;-8710873557232318604;}
{rank = same; -8857494542735143160;-2885253387240760518;}
}
subgraph cluster_legend {graph[style=bold];label = "Next State Actions" style="solid"
node [ labeljust="l",colorscheme="paired12",style=filled,shape=record ]
WantCS [label="WantCS",fillcolor=2]
ExitCS [label="ExitCS",fillcolor=4]
EnterCS [label="EnterCS",fillcolor=3]
}}
\ No newline at end of file
digraph DiskGraph {
nodesep=0.35;
subgraph cluster_graph {
color="white";
"8798217331989301526.1" [style = filled] [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"non-cs\")
#8798217331989301526.1#"]
"8798217331989301526.1" -> "2809826689868173441.1" [label="[fffftttt]"];
"2809826689868173441.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"non-cs\")
#2809826689868173441.1#"];
"8798217331989301526.1" -> "-8068881905337273774.1" [label="[fffftttt]"];
"-8068881905337273774.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"csentry\")
#-8068881905337273774.1#"];
"8798217331989301526.1" -> "8798217331989301526.1" [label="[fffftttt]"];
"8798217331989301526.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"non-cs\")
#8798217331989301526.1#"];
"2809826689868173441.1" -> "-2512439092521345775.1" [label="[fffftttf]"];
"-2512439092521345775.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"csentry\")
#-2512439092521345775.1#"];
"2809826689868173441.1" -> "2809826689868173441.1" [label="[fffftttf]"];
"2809826689868173441.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"non-cs\")
#2809826689868173441.1#"];
"2809826689868173441.1" -> "-243709637424907489.1" [label="[tffftttf]"];
"-243709637424907489.1" [label="pc = (p1 :> \"cs\" @@ p2 :> \"non-cs\")
#-243709637424907489.1#"];
"-8068881905337273774.1" -> "-2512439092521345775.1" [label="[fffftftt]"];
"-2512439092521345775.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"csentry\")
#-2512439092521345775.1#"];
"-8068881905337273774.1" -> "-8068881905337273774.1" [label="[fffftftt]"];
"-8068881905337273774.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"csentry\")
#-8068881905337273774.1#"];
"-8068881905337273774.1" -> "-8710873557232318604.0" [label="[fftftftt]"];
"-8710873557232318604.0" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"cs\")
#-8710873557232318604.0#"];
"-8068881905337273774.1" -> "-8710873557232318604.1" [label="[fftftftt]"];
"-8710873557232318604.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"cs\")
#-8710873557232318604.1#"];
"-243709637424907489.1" -> "8798217331989301526.1" [label="[ftffttft]"];
"8798217331989301526.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"non-cs\")
#8798217331989301526.1#"];
"-243709637424907489.1" -> "-2885253387240760518.1" [label="[ffffttft]"];
"-2885253387240760518.1" [label="pc = (p1 :> \"cs\" @@ p2 :> \"csentry\")
#-2885253387240760518.1#"];
"-243709637424907489.1" -> "-243709637424907489.1" [label="[ffffttft]"];
"-243709637424907489.1" [label="pc = (p1 :> \"cs\" @@ p2 :> \"non-cs\")
#-243709637424907489.1#"];
"-2512439092521345775.1" -> "-2512439092521345775.1" [label="[fffftftf]"];
"-2512439092521345775.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"csentry\")
#-2512439092521345775.1#"];
"-2512439092521345775.1" -> "-8857494542735143160.0" [label="[fftftftf]"];
"-8857494542735143160.0" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"cs\")
#-8857494542735143160.0#"];
"-2512439092521345775.1" -> "-8857494542735143160.1" [label="[fftftftf]"];
"-8857494542735143160.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"cs\")
#-8857494542735143160.1#"];
"-2512439092521345775.1" -> "-2885253387240760518.1" [label="[tffftftf]"];
"-2885253387240760518.1" [label="pc = (p1 :> \"cs\" @@ p2 :> \"csentry\")
#-2885253387240760518.1#"];
"-8710873557232318604.0" -> "-8710873557232318604.2" [label="[fffffttt]"];
"-8710873557232318604.2" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"cs\")
#-8710873557232318604.2#"];
"-8710873557232318604.2" -> "-8857494542735143160.2" [style="dotted"] [label="[fffffttt]"];
"-8710873557232318604.0" -> "-8857494542735143160.2" [label="[fffffttt]"];
"-8857494542735143160.2" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"cs\")
#-8857494542735143160.2#"];
"-8710873557232318604.1" -> "-8710873557232318604.0" [label="[fffffttt]"];
"-8710873557232318604.0" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"cs\")
#-8710873557232318604.0#"];
"-8710873557232318604.1" -> "-8710873557232318604.1" [label="[fffffttt]"];
"-8710873557232318604.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"cs\")
#-8710873557232318604.1#"];
"-8710873557232318604.1" -> "8798217331989301526.1" [label="[ffftfttt]"];
"8798217331989301526.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"non-cs\")
#8798217331989301526.1#"];
"-8710873557232318604.1" -> "-8857494542735143160.0" [label="[fffffttt]"];
"-8857494542735143160.0" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"cs\")
#-8857494542735143160.0#"];
"-8710873557232318604.1" -> "-8857494542735143160.1" [label="[fffffttt]"];
"-8857494542735143160.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"cs\")
#-8857494542735143160.1#"];
"-2885253387240760518.1" -> "-8068881905337273774.1" [label="[ftffttft]"];
"-8068881905337273774.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"csentry\")
#-8068881905337273774.1#"];
"-2885253387240760518.1" -> "-2885253387240760518.1" [label="[ffffttft]"];
"-2885253387240760518.1" [label="pc = (p1 :> \"cs\" @@ p2 :> \"csentry\")
#-2885253387240760518.1#"];
"-8857494542735143160.0" -> "-8857494542735143160.2" [label="[fffffttt]"];
"-8857494542735143160.2" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"cs\")
#-8857494542735143160.2#"];
"-8857494542735143160.1" -> "2809826689868173441.1" [label="[ffftfttt]"];
"2809826689868173441.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"non-cs\")
#2809826689868173441.1#"];
"-8857494542735143160.1" -> "-8857494542735143160.0" [label="[fffffttt]"];
"-8857494542735143160.0" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"cs\")
#-8857494542735143160.0#"];
"-8857494542735143160.1" -> "-8857494542735143160.1" [label="[fffffttt]"];
"-8857494542735143160.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"cs\")
#-8857494542735143160.1#"];
"-8857494542735143160.2" -> "-8857494542735143160.2" [label="[fffffttt]"];
"-8857494542735143160.2" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"cs\")
#-8857494542735143160.2#"];
}
}cs\")
#-8857494542735143160.1#"];
"-2885253387240760518.0" -> "-8068881905337273774.2" [label="[ftffttft]"];
"-8068881905337273774.2" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"csentry\")
#-8068881905337273774.2#"];
"-2885253387240760518.0" -> "-2885253387240760518.2" [label="[ffffttft]"];
"-2885253387240760518.2" [label="pc = (p1 :> \"cs\" @@ p2 :> \"csentry\")
#-2885253387240760518.2#"];
"-2885253387240760518.1" -> "-8068881905337273774.0" [label="[ftffttft]"];
"-8068881905337273774.0" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"csentry\")
#-8068881905337273774.0#"];
"-2885253387240760518.1" -> "-8068881905337273774.1" [label="[ftffttft]"];
"-8068881905337273774.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"csentry\")
#-8068881905337273774.1#"];
"-2885253387240760518.1" -> "-2885253387240760518.0" [label="[ffffttft]"];
"-2885253387240760518.0" [label="pc = (p1 :> \"cs\" @@ p2 :> \"csentry\")
#-2885253387240760518.0#"];
"-2885253387240760518.1" -> "-2885253387240760518.1" [label="[ffffttft]"];
"-2885253387240760518.1" [label="pc = (p1 :> \"cs\" @@ p2 :> \"csentry\")
#-2885253387240760518.1#"];
"-2885253387240760518.2" -> "-8068881905337273774.2" [label="[ftffttft]"];
"-8068881905337273774.2" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"csentry\")
#-8068881905337273774.2#"];
"-2885253387240760518.2" -> "-2885253387240760518.2" [label="[ffffttft]"];
"-2885253387240760518.2" [label="pc = (p1 :> \"cs\" @@ p2 :> \"csentry\")
#-2885253387240760518.2#"];
"-8857494542735143160.1" -> "2809826689868173441.1" [label="[ffftfttt]"];
"2809826689868173441.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"non-cs\")
#2809826689868173441.1#"];
"-8857494542735143160.1" -> "-8857494542735143160.1" [label="[fffffttt]"];
"-8857494542735143160.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"cs\")
#-8857494542735143160.1#"];
}
}
\ No newline at end of file
------------------------ MODULE MutualExclusionSpec ------------------------
\* Module MutualExclusionSpec provides specification for mutual-exclusion problem
\* Module MutualExclusionSpec provides general specification for mutual-exclusion problem.
\* Procs is set of processes.
\* Every process is assumed to loop and enter into "cs" state on every interation.
\* States besides non-critical are represented as "non-cs".
\* Non-critical state is represented as "non-cs".
\* When process decides it want to enter into critical-section, it first goes into "csentry" state.
CONSTANT Procs
VARIABLES pc
TypeOK == pc \in [Procs -> {"non-cs", "cs"}]
TypeOK == pc \in [Procs -> {"non-cs", "csentry", "cs"}]
vars == <<pc>>
\* All processes start from non-critical section.
Init == pc \in [Procs -> {"non-cs"}]
\* WantCS(proc) is action when proc decides that it wants to enter into critical section.
WantCS(proc) ==
/\ pc[proc] = "non-cs"
/\ pc' = [pc EXCEPT ![proc] = "csentry"]
\* EnterCS(proc) is action when proc enters critical section.
EnterCS(proc) ==
/\ \A i \in Procs: pc[i] /= "cs"
/\ pc[proc] = "csentry"
/\ \A i \in Procs \ {proc} : pc[i] /= "cs"
/\ pc' = [pc EXCEPT ![proc] = "cs"]
\* ExitCS(proc) is action when proc leaves critical section.
ExitCS(proc) ==
/\ pc[proc] = "cs" \* XXX also check others are not in cs here?
/\ pc[proc] = "cs"
/\ pc' = [pc EXCEPT ![proc] = "non-cs"]
Next == \E i \in Procs: EnterCS(i) \/ ExitCS(i)
Next == \E i \in Procs: WantCS(i) \/ EnterCS(i) \/ ExitCS(i)
Spec == /\ Init
/\ [][Next]_vars
/\ \A i \in Procs: (
/\ \A i \in Procs: ( \* fairness
\* not fair for WantCS - it can pause and even hang there
/\ SF_vars(EnterCS(i))
/\ SF_vars(ExitCS(i)))
--------
----------------
\* MutualExclusion is invariant indicating that no two processes can be inside critical section at the same time.
MutualExclusion == \A i,j \in Procs: (i /= j) => ~((pc[i] = "cs") /\ (pc[j] = "cs"))
\* Liveness is temporal property indicating that every process has a chance to enter critical section and leaves it.
Liveness == \A i \in Procs:
/\ (pc[i] = "non-cs") ~> (pc[i] = "cs")
/\ (pc[i] = "cs") ~> (pc[i] = "non-cs") \* XXX pc -> pc'
\* Liveness == (pc[0] = "cs") => <>(pc[0] = "ZZZZ")
\* Liveness == (pc[0] = "cs") => <>(pc[0] = "ZZZZ")
\*Liveness == (pc[0] = "cs") ~> <>(pc[0] = "non-cs")
/\ (pc[i] = "csentry") ~> (pc[i] = "cs")
/\ (pc[i] = "cs") ~> (pc[i] = "non-cs")
THEOREM Spec => []TypeOK
......@@ -56,5 +59,5 @@ THEOREM Spec => Liveness
=============================================================================
\* Modification History
\* Last modified Wed Feb 09 15:48:17 MSK 2022 by kirr
\* Last modified Wed Feb 09 19:11:11 MSK 2022 by kirr
\* Created Wed Feb 09 13:11:29 MSK 2022 by kirr
\* MV CONSTANT declarations
CONSTANTS
p1 = p1
p2 = p2
p3 = p3
\* MV CONSTANT definitions
CONSTANT
Procs <- const_1644423102754541000
\* SPECIFICATION definition
SPECIFICATION
Spec
\* INVARIANT definition
INVARIANT
TypeOK
MutualExclusion
\* PROPERTY definition
PROPERTY
Liveness
\* Generated on Wed Feb 09 19:11:42 MSK 2022
\ No newline at end of file
@!@!@STARTMSG 2262:0 @!@!@
TLC2 Version 2.16 of Day Month 20?? (rev: 9310ee7)
@!@!@ENDMSG 2262 @!@!@
@!@!@STARTMSG 2187:0 @!@!@
Running breadth-first search Model-Checking with fp 100 and seed -7769893409237685287 with 2 workers on 4 cores with 1161MB heap and 2608MB offheap memory [pid: 74483] (Linux 5.10.0-10-amd64 amd64, AdoptOpenJDK 14.0.1 x86_64, OffHeapDiskFPSet, DiskStateQueue).
@!@!@ENDMSG 2187 @!@!@
@!@!@STARTMSG 2220:0 @!@!@
Starting SANY...
@!@!@ENDMSG 2220 @!@!@
Parsing file /home/kirr/study/tla+/pluscal/ME/MutualExclusionSpec.toolbox/Model_1/MC.tla
Parsing file /home/kirr/study/tla+/pluscal/ME/MutualExclusionSpec.toolbox/Model_1/MutualExclusionSpec.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/TLC.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Naturals.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Sequences.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/FiniteSets.tla
Semantic processing of module MutualExclusionSpec
Semantic processing of module Naturals
Semantic processing of module Sequences
Semantic processing of module FiniteSets
Semantic processing of module TLC
Semantic processing of module MC
@!@!@STARTMSG 2219:0 @!@!@
SANY finished.
@!@!@ENDMSG 2219 @!@!@
@!@!@STARTMSG 2185:0 @!@!@
Starting... (2022-02-09 19:11:43)
@!@!@ENDMSG 2185 @!@!@
@!@!@STARTMSG 2212:0 @!@!@
Implied-temporal checking--satisfiability problem has 6 branches.
@!@!@ENDMSG 2212 @!@!@
@!@!@STARTMSG 2189:0 @!@!@
Computing initial states...
@!@!@ENDMSG 2189 @!@!@
@!@!@STARTMSG 2190:0 @!@!@
Finished computing initial states: 1 distinct state generated at 2022-02-09 19:11:44.
@!@!@ENDMSG 2190 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(5) at 2022-02-09 19:11:44: 49 states generated, 20 distinct states found, 0 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2192:0 @!@!@
Checking 6 branches of temporal properties for the complete state space with 120 total distinct states at (2022-02-09 19:11:44)
@!@!@ENDMSG 2192 @!@!@
@!@!@STARTMSG 2267:0 @!@!@
Finished checking temporal properties in 00s at 2022-02-09 19:11:44
@!@!@ENDMSG 2267 @!@!@
@!@!@STARTMSG 2193:0 @!@!@
Model checking completed. No error has been found.
Estimates of the probability that TLC did not check all reachable states
because two distinct states had the same fingerprint:
calculated (optimistic): val = 3.1E-17
@!@!@ENDMSG 2193 @!@!@
@!@!@STARTMSG 2201:0 @!@!@
The coverage statistics at 2022-02-09 19:11:44
@!@!@ENDMSG 2201 @!@!@
@!@!@STARTMSG 2773:0 @!@!@
<Init line 16, col 1 to line 16, col 4 of module MutualExclusionSpec>: 1:1
@!@!@ENDMSG 2773 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 16, col 9 to line 16, col 36 of module MutualExclusionSpec: 1
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
|line 16, col 16 to line 16, col 36 of module MutualExclusionSpec: 1:3
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 16, col 17 to line 16, col 21 of module MutualExclusionSpec: 1
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
||line 16, col 26 to line 16, col 35 of module MutualExclusionSpec: 1:8
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<WantCS line 19, col 1 to line 19, col 12 of module MutualExclusionSpec>: 12:36
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 20, col 12 to line 20, col 30 of module MutualExclusionSpec: 114
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 20, col 12 to line 20, col 19 of module MutualExclusionSpec: 78
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 21, col 12 to line 21, col 48 of module MutualExclusionSpec: 36
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<EnterCS line 24, col 1 to line 24, col 13 of module MutualExclusionSpec>: 7:15
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 25, col 12 to line 25, col 31 of module MutualExclusionSpec: 93
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 25, col 12 to line 25, col 19 of module MutualExclusionSpec: 78
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 26, col 38 to line 26, col 50 of module MutualExclusionSpec: 78
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 26, col 38 to line 26, col 42 of module MutualExclusionSpec: 48
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 26, col 21 to line 26, col 34 of module MutualExclusionSpec: 27
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 26, col 21 to line 26, col 25 of module MutualExclusionSpec: 27
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
||line 11, col 1 to line 11, col 12 of module MC: 27:81
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 11, col 2 to line 11, col 3 of module MC: 27
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 11, col 6 to line 11, col 7 of module MC: 27
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 11, col 10 to line 11, col 11 of module MC: 27
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 26, col 29 to line 26, col 34 of module MutualExclusionSpec: 27
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 27, col 12 to line 27, col 43 of module MutualExclusionSpec: 15
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<ExitCS line 30, col 1 to line 30, col 12 of module MutualExclusionSpec>: 0:15
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 31, col 12 to line 31, col 26 of module MutualExclusionSpec: 93
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 31, col 12 to line 31, col 19 of module MutualExclusionSpec: 78
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 32, col 12 to line 32, col 47 of module MutualExclusionSpec: 15
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<TypeOK line 11, col 1 to line 11, col 6 of module MutualExclusionSpec>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 11, col 11 to line 11, col 55 of module MutualExclusionSpec: 20
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<MutualExclusion line 47, col 1 to line 47, col 15 of module MutualExclusionSpec>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 47, col 20 to line 47, col 84 of module MutualExclusionSpec: 20
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 47, col 38 to line 47, col 84 of module MutualExclusionSpec: 180
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 47, col 39 to line 47, col 44 of module MutualExclusionSpec: 180
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 47, col 50 to line 47, col 84 of module MutualExclusionSpec: 120
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 47, col 52 to line 47, col 83 of module MutualExclusionSpec: 120
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 47, col 53 to line 47, col 64 of module MutualExclusionSpec: 120
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 47, col 71 to line 47, col 82 of module MutualExclusionSpec: 24
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 47, col 31 to line 47, col 35 of module MutualExclusionSpec: 20
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
||line 11, col 1 to line 11, col 12 of module MC: 20:340
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 11, col 2 to line 11, col 3 of module MC: 20
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 11, col 6 to line 11, col 7 of module MC: 20
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 11, col 10 to line 11, col 11 of module MC: 20
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2202:0 @!@!@
End of statistics.
@!@!@ENDMSG 2202 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(5) at 2022-02-09 19:11:44: 49 states generated (2 066 s/min), 20 distinct states found (843 ds/min), 0 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2199:0 @!@!@
49 states generated, 20 distinct states found, 0 states left on queue.
@!@!@ENDMSG 2199 @!@!@
@!@!@STARTMSG 2194:0 @!@!@
The depth of the complete state graph search is 5.
@!@!@ENDMSG 2194 @!@!@
@!@!@STARTMSG 2268:0 @!@!@
The average outdegree of the complete state graph is 1 (minimum is 0, the maximum 3 and the 95th percentile is 3).
@!@!@ENDMSG 2268 @!@!@
@!@!@STARTMSG 2186:0 @!@!@
Finished in 1435ms at (2022-02-09 19:11:44)
@!@!@ENDMSG 2186 @!@!@
---- MODULE MC ----
EXTENDS MutualExclusionSpec, TLC
\* MV CONSTANT declarations@modelParameterConstants
CONSTANTS
p1, p2, p3
----
\* MV CONSTANT definitions Procs
const_1644423102754541000 ==
{p1, p2, p3}
----
=============================================================================
\* Modification History
\* Created Wed Feb 09 19:11:42 MSK 2022 by kirr
@!@!@STARTMSG 2262:0 @!@!@
TLC2 Version 2.16 of Day Month 20?? (rev: 9310ee7)
@!@!@ENDMSG 2262 @!@!@
@!@!@STARTMSG 2187:0 @!@!@
Running breadth-first search Model-Checking with fp 100 and seed -7769893409237685287 with 2 workers on 4 cores with 1161MB heap and 2608MB offheap memory [pid: 74483] (Linux 5.10.0-10-amd64 amd64, AdoptOpenJDK 14.0.1 x86_64, OffHeapDiskFPSet, DiskStateQueue).
@!@!@ENDMSG 2187 @!@!@
@!@!@STARTMSG 2220:0 @!@!@
Starting SANY...
@!@!@ENDMSG 2220 @!@!@
Parsing file /home/kirr/study/tla+/pluscal/ME/MutualExclusionSpec.toolbox/Model_1/MC.tla
Parsing file /home/kirr/study/tla+/pluscal/ME/MutualExclusionSpec.toolbox/Model_1/MutualExclusionSpec.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/TLC.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Naturals.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Sequences.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/FiniteSets.tla
Semantic processing of module MutualExclusionSpec
Semantic processing of module Naturals
Semantic processing of module Sequences
Semantic processing of module FiniteSets
Semantic processing of module TLC
Semantic processing of module MC
@!@!@STARTMSG 2219:0 @!@!@
SANY finished.
@!@!@ENDMSG 2219 @!@!@
@!@!@STARTMSG 2185:0 @!@!@
Starting... (2022-02-09 19:11:43)
@!@!@ENDMSG 2185 @!@!@
@!@!@STARTMSG 2212:0 @!@!@
Implied-temporal checking--satisfiability problem has 6 branches.
@!@!@ENDMSG 2212 @!@!@
@!@!@STARTMSG 2189:0 @!@!@
Computing initial states...
@!@!@ENDMSG 2189 @!@!@
@!@!@STARTMSG 2190:0 @!@!@
Finished computing initial states: 1 distinct state generated at 2022-02-09 19:11:44.
@!@!@ENDMSG 2190 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(5) at 2022-02-09 19:11:44: 49 states generated, 20 distinct states found, 0 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2192:0 @!@!@
Checking 6 branches of temporal properties for the complete state space with 120 total distinct states at (2022-02-09 19:11:44)
@!@!@ENDMSG 2192 @!@!@
@!@!@STARTMSG 2267:0 @!@!@
Finished checking temporal properties in 00s at 2022-02-09 19:11:44
@!@!@ENDMSG 2267 @!@!@
@!@!@STARTMSG 2193:0 @!@!@
Model checking completed. No error has been found.
Estimates of the probability that TLC did not check all reachable states
because two distinct states had the same fingerprint:
calculated (optimistic): val = 3.1E-17
@!@!@ENDMSG 2193 @!@!@
@!@!@STARTMSG 2201:0 @!@!@
The coverage statistics at 2022-02-09 19:11:44
@!@!@ENDMSG 2201 @!@!@
@!@!@STARTMSG 2773:0 @!@!@
<Init line 16, col 1 to line 16, col 4 of module MutualExclusionSpec>: 1:1
@!@!@ENDMSG 2773 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 16, col 9 to line 16, col 36 of module MutualExclusionSpec: 1
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
|line 16, col 16 to line 16, col 36 of module MutualExclusionSpec: 1:3
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 16, col 17 to line 16, col 21 of module MutualExclusionSpec: 1
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
||line 16, col 26 to line 16, col 35 of module MutualExclusionSpec: 1:8
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<WantCS line 19, col 1 to line 19, col 12 of module MutualExclusionSpec>: 12:36
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 20, col 12 to line 20, col 30 of module MutualExclusionSpec: 114
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 20, col 12 to line 20, col 19 of module MutualExclusionSpec: 78
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 21, col 12 to line 21, col 48 of module MutualExclusionSpec: 36
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<EnterCS line 24, col 1 to line 24, col 13 of module MutualExclusionSpec>: 7:15
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 25, col 12 to line 25, col 31 of module MutualExclusionSpec: 93
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 25, col 12 to line 25, col 19 of module MutualExclusionSpec: 78
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 26, col 38 to line 26, col 50 of module MutualExclusionSpec: 78
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 26, col 38 to line 26, col 42 of module MutualExclusionSpec: 48
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 26, col 21 to line 26, col 34 of module MutualExclusionSpec: 27
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 26, col 21 to line 26, col 25 of module MutualExclusionSpec: 27
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
||line 11, col 1 to line 11, col 12 of module MC: 27:81
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 11, col 2 to line 11, col 3 of module MC: 27
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 11, col 6 to line 11, col 7 of module MC: 27
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 11, col 10 to line 11, col 11 of module MC: 27
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 26, col 29 to line 26, col 34 of module MutualExclusionSpec: 27
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 27, col 12 to line 27, col 43 of module MutualExclusionSpec: 15
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<ExitCS line 30, col 1 to line 30, col 12 of module MutualExclusionSpec>: 0:15
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 31, col 12 to line 31, col 26 of module MutualExclusionSpec: 93
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 31, col 12 to line 31, col 19 of module MutualExclusionSpec: 78
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 32, col 12 to line 32, col 47 of module MutualExclusionSpec: 15
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<TypeOK line 11, col 1 to line 11, col 6 of module MutualExclusionSpec>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 11, col 11 to line 11, col 55 of module MutualExclusionSpec: 20
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<MutualExclusion line 47, col 1 to line 47, col 15 of module MutualExclusionSpec>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 47, col 20 to line 47, col 84 of module MutualExclusionSpec: 20
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 47, col 38 to line 47, col 84 of module MutualExclusionSpec: 180
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 47, col 39 to line 47, col 44 of module MutualExclusionSpec: 180
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 47, col 50 to line 47, col 84 of module MutualExclusionSpec: 120
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 47, col 52 to line 47, col 83 of module MutualExclusionSpec: 120
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 47, col 53 to line 47, col 64 of module MutualExclusionSpec: 120
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 47, col 71 to line 47, col 82 of module MutualExclusionSpec: 24
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 47, col 31 to line 47, col 35 of module MutualExclusionSpec: 20
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
||line 11, col 1 to line 11, col 12 of module MC: 20:340
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 11, col 2 to line 11, col 3 of module MC: 20
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 11, col 6 to line 11, col 7 of module MC: 20
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 11, col 10 to line 11, col 11 of module MC: 20
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2202:0 @!@!@
End of statistics.
@!@!@ENDMSG 2202 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(5) at 2022-02-09 19:11:44: 49 states generated (2 066 s/min), 20 distinct states found (843 ds/min), 0 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2199:0 @!@!@
49 states generated, 20 distinct states found, 0 states left on queue.
@!@!@ENDMSG 2199 @!@!@
@!@!@STARTMSG 2194:0 @!@!@
The depth of the complete state graph search is 5.
@!@!@ENDMSG 2194 @!@!@
@!@!@STARTMSG 2268:0 @!@!@
The average outdegree of the complete state graph is 1 (minimum is 0, the maximum 3 and the 95th percentile is 3).
@!@!@ENDMSG 2268 @!@!@
@!@!@STARTMSG 2186:0 @!@!@
Finished in 1435ms at (2022-02-09 19:11:44)
@!@!@ENDMSG 2186 @!@!@
strict digraph DiskGraph {
edge [colorscheme="paired12"]
nodesep=0.35;
subgraph cluster_graph {
color="white";
5217975130859057757 [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"non-cs\" @@ p3 :> \"non-cs\")",style = filled]
5217975130859057757 -> -3308214584577419848 [label="",color="2",fontcolor="2"];
-3308214584577419848 [label="pc = (p1 :> \"csentry\" @@ p2 :> \"non-cs\" @@ p3 :> \"non-cs\")"];
5217975130859057757 -> -6303282370263029309 [label="",color="2",fontcolor="2"];
-6303282370263029309 [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"csentry\" @@ p3 :> \"non-cs\")"];
5217975130859057757 -> 137870492197837315 [label="",color="2",fontcolor="2"];
137870492197837315 [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"non-cs\" @@ p3 :> \"csentry\")"];
5217975130859057757 -> 5217975130859057757 [style="dashed"];
-3308214584577419848 -> -5590668329479140723 [label="",color="3",fontcolor="3"];
-5590668329479140723 [label="pc = (p1 :> \"cs\" @@ p2 :> \"non-cs\" @@ p3 :> \"non-cs\")"];
-3308214584577419848 -> 4762715159091487864 [label="",color="2",fontcolor="2"];
4762715159091487864 [label="pc = (p1 :> \"csentry\" @@ p2 :> \"csentry\" @@ p3 :> \"non-cs\")"];
-3308214584577419848 -> -1479575019485096008 [label="",color="2",fontcolor="2"];
-1479575019485096008 [label="pc = (p1 :> \"csentry\" @@ p2 :> \"non-cs\" @@ p3 :> \"csentry\")"];
-3308214584577419848 -> -3308214584577419848 [style="dashed"];
-6303282370263029309 -> 4762715159091487864 [label="",color="2",fontcolor="2"];
-6303282370263029309 -> 1366311645532392275 [label="",color="3",fontcolor="3"];
1366311645532392275 [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"cs\" @@ p3 :> \"non-cs\")"];
-6303282370263029309 -> -3843622382816089045 [label="",color="2",fontcolor="2"];
-3843622382816089045 [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"csentry\" @@ p3 :> \"csentry\")"];
-6303282370263029309 -> -6303282370263029309 [style="dashed"];
137870492197837315 -> -1479575019485096008 [label="",color="2",fontcolor="2"];
137870492197837315 -> -3843622382816089045 [label="",color="2",fontcolor="2"];
137870492197837315 -> -599712687789443792 [label="",color="3",fontcolor="3"];
-599712687789443792 [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"non-cs\" @@ p3 :> \"cs\")"];
137870492197837315 -> 137870492197837315 [style="dashed"];
-5590668329479140723 -> 5217975130859057757 [label="",color="4",fontcolor="4"];
-5590668329479140723 -> -3685764261801800386 [label="",color="2",fontcolor="2"];
-3685764261801800386 [label="pc = (p1 :> \"cs\" @@ p2 :> \"csentry\" @@ p3 :> \"non-cs\")"];
-5590668329479140723 -> 7329158149849612030 [label="",color="2",fontcolor="2"];
7329158149849612030 [label="pc = (p1 :> \"cs\" @@ p2 :> \"non-cs\" @@ p3 :> \"csentry\")"];
-5590668329479140723 -> -5590668329479140723 [style="dashed"];
4762715159091487864 -> -3685764261801800386 [label="",color="3",fontcolor="3"];
4762715159091487864 -> -3699504200012880685 [label="",color="3",fontcolor="3"];
-3699504200012880685 [label="pc = (p1 :> \"csentry\" @@ p2 :> \"cs\" @@ p3 :> \"non-cs\")"];
4762715159091487864 -> -5279481120083610738 [label="",color="2",fontcolor="2"];
-5279481120083610738 [label="pc = (p1 :> \"csentry\" @@ p2 :> \"csentry\" @@ p3 :> \"csentry\")"];
4762715159091487864 -> 4762715159091487864 [style="dashed"];
-1479575019485096008 -> 7329158149849612030 [label="",color="3",fontcolor="3"];
-1479575019485096008 -> -5279481120083610738 [label="",color="2",fontcolor="2"];
-1479575019485096008 -> 3022972843128871600 [label="",color="3",fontcolor="3"];
3022972843128871600 [label="pc = (p1 :> \"csentry\" @@ p2 :> \"non-cs\" @@ p3 :> \"cs\")"];
-1479575019485096008 -> -1479575019485096008 [style="dashed"];
1366311645532392275 -> -3699504200012880685 [label="",color="2",fontcolor="2"];
1366311645532392275 -> 5217975130859057757 [label="",color="4",fontcolor="4"];
1366311645532392275 -> 5283398624897554180 [label="",color="2",fontcolor="2"];
5283398624897554180 [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"cs\" @@ p3 :> \"csentry\")"];
1366311645532392275 -> 1366311645532392275 [style="dashed"];
-3843622382816089045 -> -5279481120083610738 [label="",color="2",fontcolor="2"];
-3843622382816089045 -> 5283398624897554180 [label="",color="3",fontcolor="3"];
-3843622382816089045 -> 7010834156384815582 [label="",color="3",fontcolor="3"];
7010834156384815582 [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"csentry\" @@ p3 :> \"cs\")"];
-3843622382816089045 -> -3843622382816089045 [style="dashed"];
-599712687789443792 -> 3022972843128871600 [label="",color="2",fontcolor="2"];
-599712687789443792 -> 7010834156384815582 [label="",color="2",fontcolor="2"];
-599712687789443792 -> 5217975130859057757 [label="",color="4",fontcolor="4"];
-599712687789443792 -> -599712687789443792 [style="dashed"];
-3685764261801800386 -> -6303282370263029309 [label="",color="4",fontcolor="4"];
-3685764261801800386 -> 418233314717506544 [label="",color="2",fontcolor="2"];
418233314717506544 [label="pc = (p1 :> \"cs\" @@ p2 :> \"csentry\" @@ p3 :> \"csentry\")"];
-3685764261801800386 -> -3685764261801800386 [style="dashed"];
7329158149849612030 -> 137870492197837315 [label="",color="4",fontcolor="4"];
7329158149849612030 -> 418233314717506544 [label="",color="2",fontcolor="2"];
7329158149849612030 -> 7329158149849612030 [style="dashed"];
-3699504200012880685 -> -3308214584577419848 [label="",color="4",fontcolor="4"];
-3699504200012880685 -> -921586124651416668 [label="",color="2",fontcolor="2"];
-921586124651416668 [label="pc = (p1 :> \"csentry\" @@ p2 :> \"cs\" @@ p3 :> \"csentry\")"];
-3699504200012880685 -> -3699504200012880685 [style="dashed"];
-5279481120083610738 -> 418233314717506544 [label="",color="3",fontcolor="3"];
-5279481120083610738 -> -921586124651416668 [label="",color="3",fontcolor="3"];
-5279481120083610738 -> -2653528622886195842 [label="",color="3",fontcolor="3"];
-2653528622886195842 [label="pc = (p1 :> \"csentry\" @@ p2 :> \"csentry\" @@ p3 :> \"cs\")"];
-5279481120083610738 -> -5279481120083610738 [style="dashed"];
3022972843128871600 -> -2653528622886195842 [label="",color="2",fontcolor="2"];
3022972843128871600 -> -3308214584577419848 [label="",color="4",fontcolor="4"];
3022972843128871600 -> 3022972843128871600 [style="dashed"];
5283398624897554180 -> -921586124651416668 [label="",color="2",fontcolor="2"];
5283398624897554180 -> 137870492197837315 [label="",color="4",fontcolor="4"];
5283398624897554180 -> 5283398624897554180 [style="dashed"];
7010834156384815582 -> -2653528622886195842 [label="",color="2",fontcolor="2"];
7010834156384815582 -> -6303282370263029309 [label="",color="4",fontcolor="4"];
7010834156384815582 -> 7010834156384815582 [style="dashed"];
418233314717506544 -> -3843622382816089045 [label="",color="4",fontcolor="4"];
418233314717506544 -> 418233314717506544 [style="dashed"];
-921586124651416668 -> -1479575019485096008 [label="",color="4",fontcolor="4"];
-921586124651416668 -> -921586124651416668 [style="dashed"];
-2653528622886195842 -> 4762715159091487864 [label="",color="4",fontcolor="4"];
-2653528622886195842 -> -2653528622886195842 [style="dashed"];
{rank = same; 5217975130859057757;}
{rank = same; 137870492197837315;-6303282370263029309;-3308214584577419848;}
{rank = same; 4762715159091487864;-599712687789443792;1366311645532392275;-1479575019485096008;-5590668329479140723;-3843622382816089045;}
{rank = same; -3685764261801800386;3022972843128871600;-3699504200012880685;5283398624897554180;7329158149849612030;-5279481120083610738;7010834156384815582;}
{rank = same; -921586124651416668;-2653528622886195842;418233314717506544;}
}
subgraph cluster_legend {graph[style=bold];label = "Next State Actions" style="solid"
node [ labeljust="l",colorscheme="paired12",style=filled,shape=record ]
WantCS [label="WantCS",fillcolor=2]
ExitCS [label="ExitCS",fillcolor=4]
EnterCS [label="EnterCS",fillcolor=3]
}}
\ No newline at end of file
digraph DiskGraph {
nodesep=0.35;
subgraph cluster_graph {
color="white";
"5217975130859057757.1" [style = filled] [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"non-cs\" @@ p3 :> \"non-cs\")
#5217975130859057757.1#"]
"5217975130859057757.1" -> "-6303282370263029309.1" [label="[fffffftttttt]"];
"-6303282370263029309.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"csentry\" @@ p3 :> \"non-cs\")
#-6303282370263029309.1#"];
"5217975130859057757.1" -> "137870492197837315.1" [label="[fffffftttttt]"];
"137870492197837315.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"non-cs\" @@ p3 :> \"csentry\")
#137870492197837315.1#"];
"5217975130859057757.1" -> "-3308214584577419848.1" [label="[fffffftttttt]"];
"-3308214584577419848.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"non-cs\" @@ p3 :> \"non-cs\")
#-3308214584577419848.1#"];
"5217975130859057757.1" -> "5217975130859057757.1" [label="[fffffftttttt]"];
"5217975130859057757.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"non-cs\" @@ p3 :> \"non-cs\")
#5217975130859057757.1#"];
"-3308214584577419848.1" -> "4762715159091487864.1" [label="[fffffftttttf]"];
"4762715159091487864.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"csentry\" @@ p3 :> \"non-cs\")
#4762715159091487864.1#"];
"-3308214584577419848.1" -> "-1479575019485096008.1" [label="[fffffftttttf]"];
"-1479575019485096008.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"non-cs\" @@ p3 :> \"csentry\")
#-1479575019485096008.1#"];
"-3308214584577419848.1" -> "-3308214584577419848.1" [label="[fffffftttttf]"];
"-3308214584577419848.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"non-cs\" @@ p3 :> \"non-cs\")
#-3308214584577419848.1#"];
"-3308214584577419848.1" -> "-5590668329479140723.1" [label="[tffffftttttf]"];
"-5590668329479140723.1" [label="pc = (p1 :> \"cs\" @@ p2 :> \"non-cs\" @@ p3 :> \"non-cs\")
#-5590668329479140723.1#"];
"-6303282370263029309.1" -> "1366311645532392275.1" [label="[fftffftttftt]"];
"1366311645532392275.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"cs\" @@ p3 :> \"non-cs\")
#1366311645532392275.1#"];
"-6303282370263029309.1" -> "-6303282370263029309.1" [label="[fffffftttftt]"];
"-6303282370263029309.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"csentry\" @@ p3 :> \"non-cs\")
#-6303282370263029309.1#"];
"-6303282370263029309.1" -> "4762715159091487864.1" [label="[fffffftttftt]"];
"4762715159091487864.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"csentry\" @@ p3 :> \"non-cs\")
#4762715159091487864.1#"];
"-6303282370263029309.1" -> "-3843622382816089045.1" [label="[fffffftttftt]"];
"-3843622382816089045.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"csentry\" @@ p3 :> \"csentry\")
#-3843622382816089045.1#"];
"137870492197837315.1" -> "-599712687789443792.0" [label="[fffftftftttt]"];
"-599712687789443792.0" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"non-cs\" @@ p3 :> \"cs\")
#-599712687789443792.0#"];
"137870492197837315.1" -> "-599712687789443792.1" [label="[fffftftftttt]"];
"-599712687789443792.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"non-cs\" @@ p3 :> \"cs\")
#-599712687789443792.1#"];
"137870492197837315.1" -> "137870492197837315.1" [label="[fffffftftttt]"];
"137870492197837315.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"non-cs\" @@ p3 :> \"csentry\")
#137870492197837315.1#"];
"137870492197837315.1" -> "-1479575019485096008.1" [label="[fffffftftttt]"];
"-1479575019485096008.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"non-cs\" @@ p3 :> \"csentry\")
#-1479575019485096008.1#"];
"137870492197837315.1" -> "-3843622382816089045.1" [label="[fffffftftttt]"];
"-3843622382816089045.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"csentry\" @@ p3 :> \"csentry\")
#-3843622382816089045.1#"];
"-5590668329479140723.1" -> "-5590668329479140723.1" [label="[ffffffttttft]"];
"-5590668329479140723.1" [label="pc = (p1 :> \"cs\" @@ p2 :> \"non-cs\" @@ p3 :> \"non-cs\")
#-5590668329479140723.1#"];
"-5590668329479140723.1" -> "5217975130859057757.1" [label="[ftffffttttft]"];
"5217975130859057757.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"non-cs\" @@ p3 :> \"non-cs\")
#5217975130859057757.1#"];
"-5590668329479140723.1" -> "-3685764261801800386.1" [label="[ffffffttttft]"];
"-3685764261801800386.1" [label="pc = (p1 :> \"cs\" @@ p2 :> \"csentry\" @@ p3 :> \"non-cs\")
#-3685764261801800386.1#"];
"-5590668329479140723.1" -> "7329158149849612030.1" [label="[ffffffttttft]"];
"7329158149849612030.1" [label="pc = (p1 :> \"cs\" @@ p2 :> \"non-cs\" @@ p3 :> \"csentry\")
#7329158149849612030.1#"];
"4762715159091487864.1" -> "-3699504200012880685.1" [label="[fftffftttftf]"];
"-3699504200012880685.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"cs\" @@ p3 :> \"non-cs\")
#-3699504200012880685.1#"];
"4762715159091487864.1" -> "4762715159091487864.1" [label="[fffffftttftf]"];
"4762715159091487864.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"csentry\" @@ p3 :> \"non-cs\")
#4762715159091487864.1#"];
"4762715159091487864.1" -> "-3685764261801800386.1" [label="[tffffftttftf]"];
"-3685764261801800386.1" [label="pc = (p1 :> \"cs\" @@ p2 :> \"csentry\" @@ p3 :> \"non-cs\")
#-3685764261801800386.1#"];
"4762715159091487864.1" -> "-5279481120083610738.1" [label="[fffffftttftf]"];
"-5279481120083610738.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"csentry\" @@ p3 :> \"csentry\")
#-5279481120083610738.1#"];
"-1479575019485096008.1" -> "3022972843128871600.0" [label="[fffftftftttf]"];
"3022972843128871600.0" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"non-cs\" @@ p3 :> \"cs\")
#3022972843128871600.0#"];
"-1479575019485096008.1" -> "3022972843128871600.1" [label="[fffftftftttf]"];
"3022972843128871600.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"non-cs\" @@ p3 :> \"cs\")
#3022972843128871600.1#"];
"-1479575019485096008.1" -> "-1479575019485096008.1" [label="[fffffftftttf]"];
"-1479575019485096008.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"non-cs\" @@ p3 :> \"csentry\")
#-1479575019485096008.1#"];
"-1479575019485096008.1" -> "7329158149849612030.1" [label="[tffffftftttf]"];
"7329158149849612030.1" [label="pc = (p1 :> \"cs\" @@ p2 :> \"non-cs\" @@ p3 :> \"csentry\")
#7329158149849612030.1#"];
"-1479575019485096008.1" -> "-5279481120083610738.1" [label="[fffffftftttf]"];
"-5279481120083610738.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"csentry\" @@ p3 :> \"csentry\")
#-5279481120083610738.1#"];
"1366311645532392275.1" -> "-3699504200012880685.1" [label="[ffffffttfttt]"];
"-3699504200012880685.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"cs\" @@ p3 :> \"non-cs\")
#-3699504200012880685.1#"];
"1366311645532392275.1" -> "5283398624897554180.1" [label="[ffffffttfttt]"];
"5283398624897554180.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"cs\" @@ p3 :> \"csentry\")
#5283398624897554180.1#"];
"1366311645532392275.1" -> "1366311645532392275.1" [label="[ffffffttfttt]"];
"1366311645532392275.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"cs\" @@ p3 :> \"non-cs\")
#1366311645532392275.1#"];
"1366311645532392275.1" -> "5217975130859057757.1" [label="[ffftffttfttt]"];
"5217975130859057757.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"non-cs\" @@ p3 :> \"non-cs\")
#5217975130859057757.1#"];
"-3843622382816089045.1" -> "5283398624897554180.1" [label="[fftffftftftt]"];
"5283398624897554180.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"cs\" @@ p3 :> \"csentry\")
#5283398624897554180.1#"];
"-3843622382816089045.1" -> "-3843622382816089045.1" [label="[fffffftftftt]"];
"-3843622382816089045.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"csentry\" @@ p3 :> \"csentry\")
#-3843622382816089045.1#"];
"-3843622382816089045.1" -> "-5279481120083610738.1" [label="[fffffftftftt]"];
"-5279481120083610738.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"csentry\" @@ p3 :> \"csentry\")
#-5279481120083610738.1#"];
"-3843622382816089045.1" -> "7010834156384815582.0" [label="[fffftftftftt]"];
"7010834156384815582.0" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"csentry\" @@ p3 :> \"cs\")
#7010834156384815582.0#"];
"-3843622382816089045.1" -> "7010834156384815582.1" [label="[fffftftftftt]"];
"7010834156384815582.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"csentry\" @@ p3 :> \"cs\")
#7010834156384815582.1#"];
"-599712687789443792.0" -> "3022972843128871600.2" [label="[fffffffttttt]"];
"3022972843128871600.2" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"non-cs\" @@ p3 :> \"cs\")
#3022972843128871600.2#"];
"-599712687789443792.0" -> "-599712687789443792.2" [label="[fffffffttttt]"];
"-599712687789443792.2" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"non-cs\" @@ p3 :> \"cs\")
#-599712687789443792.2#"];
"-599712687789443792.2" -> "3022972843128871600.2" [style="dotted"] [label="[fffffffttttt]"];
"-599712687789443792.2" -> "7010834156384815582.2" [style="dotted"] [label="[fffffffttttt]"];
"-599712687789443792.0" -> "7010834156384815582.2" [label="[fffffffttttt]"];
"7010834156384815582.2" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"csentry\" @@ p3 :> \"cs\")
#7010834156384815582.2#"];
"-599712687789443792.1" -> "3022972843128871600.0" [label="[fffffffttttt]"];
"3022972843128871600.0" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"non-cs\" @@ p3 :> \"cs\")
#3022972843128871600.0#"];
"-599712687789443792.1" -> "3022972843128871600.1" [label="[fffffffttttt]"];
"3022972843128871600.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"non-cs\" @@ p3 :> \"cs\")
#3022972843128871600.1#"];
"-599712687789443792.1" -> "-599712687789443792.0" [label="[fffffffttttt]"];
"-599712687789443792.0" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"non-cs\" @@ p3 :> \"cs\")
#-599712687789443792.0#"];
"-599712687789443792.1" -> "-599712687789443792.1" [label="[fffffffttttt]"];
"-599712687789443792.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"non-cs\" @@ p3 :> \"cs\")
#-599712687789443792.1#"];
"-599712687789443792.1" -> "5217975130859057757.1" [label="[ffffftfttttt]"];
"5217975130859057757.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"non-cs\" @@ p3 :> \"non-cs\")
#5217975130859057757.1#"];
"-599712687789443792.1" -> "7010834156384815582.0" [label="[fffffffttttt]"];
"7010834156384815582.0" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"csentry\" @@ p3 :> \"cs\")
#7010834156384815582.0#"];
"-599712687789443792.1" -> "7010834156384815582.1" [label="[fffffffttttt]"];
"7010834156384815582.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"csentry\" @@ p3 :> \"cs\")
#7010834156384815582.1#"];
"-3685764261801800386.1" -> "418233314717506544.1" [label="[ffffffttttft]"];
"418233314717506544.1" [label="pc = (p1 :> \"cs\" @@ p2 :> \"csentry\" @@ p3 :> \"csentry\")
#418233314717506544.1#"];
"-3685764261801800386.1" -> "-6303282370263029309.1" [label="[ftffffttttft]"];
"-6303282370263029309.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"csentry\" @@ p3 :> \"non-cs\")
#-6303282370263029309.1#"];
"-3685764261801800386.1" -> "-3685764261801800386.1" [label="[ffffffttttft]"];
"-3685764261801800386.1" [label="pc = (p1 :> \"cs\" @@ p2 :> \"csentry\" @@ p3 :> \"non-cs\")
#-3685764261801800386.1#"];
"7329158149849612030.1" -> "418233314717506544.1" [label="[ffffffttttft]"];
"418233314717506544.1" [label="pc = (p1 :> \"cs\" @@ p2 :> \"csentry\" @@ p3 :> \"csentry\")
#418233314717506544.1#"];
"7329158149849612030.1" -> "137870492197837315.1" [label="[ftffffttttft]"];
"137870492197837315.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"non-cs\" @@ p3 :> \"csentry\")
#137870492197837315.1#"];
"7329158149849612030.1" -> "7329158149849612030.1" [label="[ffffffttttft]"];
"7329158149849612030.1" [label="pc = (p1 :> \"cs\" @@ p2 :> \"non-cs\" @@ p3 :> \"csentry\")
#7329158149849612030.1#"];
"-3699504200012880685.1" -> "-3699504200012880685.1" [label="[ffffffttfttt]"];
"-3699504200012880685.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"cs\" @@ p3 :> \"non-cs\")
#-3699504200012880685.1#"];
"-3699504200012880685.1" -> "-921586124651416668.1" [label="[ffffffttfttt]"];
"-921586124651416668.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"cs\" @@ p3 :> \"csentry\")
#-921586124651416668.1#"];
"-3699504200012880685.1" -> "-3308214584577419848.1" [label="[ffftffttfttt]"];
"-3308214584577419848.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"non-cs\" @@ p3 :> \"non-cs\")
#-3308214584577419848.1#"];
"3022972843128871600.0" -> "3022972843128871600.2" [label="[fffffffttttt]"];
"3022972843128871600.2" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"non-cs\" @@ p3 :> \"cs\")
#3022972843128871600.2#"];
"3022972843128871600.0" -> "-2653528622886195842.2" [label="[fffffffttttt]"];
"-2653528622886195842.2" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"csentry\" @@ p3 :> \"cs\")
#-2653528622886195842.2#"];
"3022972843128871600.1" -> "3022972843128871600.0" [label="[fffffffttttt]"];
"3022972843128871600.0" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"non-cs\" @@ p3 :> \"cs\")
#3022972843128871600.0#"];
"3022972843128871600.1" -> "3022972843128871600.1" [label="[fffffffttttt]"];
"3022972843128871600.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"non-cs\" @@ p3 :> \"cs\")
#3022972843128871600.1#"];
"3022972843128871600.1" -> "-3308214584577419848.1" [label="[ffffftfttttt]"];
"-3308214584577419848.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"non-cs\" @@ p3 :> \"non-cs\")
#-3308214584577419848.1#"];
"3022972843128871600.1" -> "-2653528622886195842.0" [label="[fffffffttttt]"];
"-2653528622886195842.0" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"csentry\" @@ p3 :> \"cs\")
#-2653528622886195842.0#"];
"3022972843128871600.1" -> "-2653528622886195842.1" [label="[fffffffttttt]"];
"-2653528622886195842.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"csentry\" @@ p3 :> \"cs\")
#-2653528622886195842.1#"];
"3022972843128871600.2" -> "3022972843128871600.2" [label="[fffffffttttt]"];
"3022972843128871600.2" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"non-cs\" @@ p3 :> \"cs\")
#3022972843128871600.2#"];
"3022972843128871600.2" -> "-2653528622886195842.2" [label="[fffffffttttt]"];
"-2653528622886195842.2" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"csentry\" @@ p3 :> \"cs\")
#-2653528622886195842.2#"];
"-5279481120083610738.1" -> "418233314717506544.1" [label="[tffffftftftf]"];
"418233314717506544.1" [label="pc = (p1 :> \"cs\" @@ p2 :> \"csentry\" @@ p3 :> \"csentry\")
#418233314717506544.1#"];
"-5279481120083610738.1" -> "-921586124651416668.1" [label="[fftffftftftf]"];
"-921586124651416668.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"cs\" @@ p3 :> \"csentry\")
#-921586124651416668.1#"];
"-5279481120083610738.1" -> "-2653528622886195842.0" [label="[fffftftftftf]"];
"-2653528622886195842.0" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"csentry\" @@ p3 :> \"cs\")
#-2653528622886195842.0#"];
"-5279481120083610738.1" -> "-2653528622886195842.1" [label="[fffftftftftf]"];
"-2653528622886195842.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"csentry\" @@ p3 :> \"cs\")
#-2653528622886195842.1#"];
"-5279481120083610738.1" -> "-5279481120083610738.1" [label="[fffffftftftf]"];
"-5279481120083610738.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"csentry\" @@ p3 :> \"csentry\")
#-5279481120083610738.1#"];
"5283398624897554180.1" -> "137870492197837315.1" [label="[ffftffttfttt]"];
"137870492197837315.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"non-cs\" @@ p3 :> \"csentry\")
#137870492197837315.1#"];
"5283398624897554180.1" -> "-921586124651416668.1" [label="[ffffffttfttt]"];
"-921586124651416668.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"cs\" @@ p3 :> \"csentry\")
#-921586124651416668.1#"];
"5283398624897554180.1" -> "5283398624897554180.1" [label="[ffffffttfttt]"];
"5283398624897554180.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"cs\" @@ p3 :> \"csentry\")
#5283398624897554180.1#"];
"7010834156384815582.0" -> "-2653528622886195842.2" [label="[fffffffttttt]"];
"-2653528622886195842.2" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"csentry\" @@ p3 :> \"cs\")
#-2653528622886195842.2#"];
"7010834156384815582.0" -> "7010834156384815582.2" [label="[fffffffttttt]"];
"7010834156384815582.2" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"csentry\" @@ p3 :> \"cs\")
#7010834156384815582.2#"];
"7010834156384815582.1" -> "-6303282370263029309.1" [label="[ffffftfttttt]"];
"-6303282370263029309.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"csentry\" @@ p3 :> \"non-cs\")
#-6303282370263029309.1#"];
"7010834156384815582.1" -> "-2653528622886195842.0" [label="[fffffffttttt]"];
"-2653528622886195842.0" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"csentry\" @@ p3 :> \"cs\")
#-2653528622886195842.0#"];
"7010834156384815582.1" -> "-2653528622886195842.1" [label="[fffffffttttt]"];
"-2653528622886195842.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"csentry\" @@ p3 :> \"cs\")
#-2653528622886195842.1#"];
"7010834156384815582.1" -> "7010834156384815582.0" [label="[fffffffttttt]"];
"7010834156384815582.0" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"csentry\" @@ p3 :> \"cs\")
#7010834156384815582.0#"];
"7010834156384815582.1" -> "7010834156384815582.1" [label="[fffffffttttt]"];
"7010834156384815582.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"csentry\" @@ p3 :> \"cs\")
#7010834156384815582.1#"];
"7010834156384815582.2" -> "-2653528622886195842.2" [label="[fffffffttttt]"];
"-2653528622886195842.2" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"csentry\" @@ p3 :> \"cs\")
#-2653528622886195842.2#"];
"7010834156384815582.2" -> "7010834156384815582.2" [label="[fffffffttttt]"];
"7010834156384815582.2" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"csentry\" @@ p3 :> \"cs\")
#7010834156384815582.2#"];
"418233314717506544.1" -> "418233314717506544.1" [label="[ffffffttttft]"];
"418233314717506544.1" [label="pc = (p1 :> \"cs\" @@ p2 :> \"csentry\" @@ p3 :> \"csentry\")
#418233314717506544.1#"];
"418233314717506544.1" -> "-3843622382816089045.1" [label="[ftffffttttft]"];
"-3843622382816089045.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"csentry\" @@ p3 :> \"csentry\")
#-3843622382816089045.1#"];
"-921586124651416668.1" -> "-921586124651416668.1" [label="[ffffffttfttt]"];
"-921586124651416668.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"cs\" @@ p3 :> \"csentry\")
#-921586124651416668.1#"];
"-921586124651416668.1" -> "-1479575019485096008.1" [label="[ffftffttfttt]"];
"-1479575019485096008.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"non-cs\" @@ p3 :> \"csentry\")
#-1479575019485096008.1#"];
"-2653528622886195842.2" -> "-2653528622886195842.2" [label="[fffffffttttt]"];
"-2653528622886195842.2" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"csentry\" @@ p3 :> \"cs\")
#-2653528622886195842.2#"];
"-2653528622886195842.0" -> "-2653528622886195842.2" [label="[fffffffttttt]"];
"-2653528622886195842.2" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"csentry\" @@ p3 :> \"cs\")
#-2653528622886195842.2#"];
"-2653528622886195842.1" -> "4762715159091487864.1" [label="[ffffftfttttt]"];
"4762715159091487864.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"csentry\" @@ p3 :> \"non-cs\")
#4762715159091487864.1#"];
"-2653528622886195842.1" -> "-2653528622886195842.0" [label="[fffffffttttt]"];
"-2653528622886195842.0" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"csentry\" @@ p3 :> \"cs\")
#-2653528622886195842.0#"];
"-2653528622886195842.1" -> "-2653528622886195842.1" [label="[fffffffttttt]"];
"-2653528622886195842.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"csentry\" @@ p3 :> \"cs\")
#-2653528622886195842.1#"];
}
}"csentry\" @@ p2 :> \"csentry\" @@ p3 :> \"cs\")
#-2653528622886195842.1#"];
"-5279481120083610738.0" -> "418233314717506544.2" [label="[tffffftftftf]"];
"418233314717506544.2" [label="pc = (p1 :> \"cs\" @@ p2 :> \"csentry\" @@ p3 :> \"csentry\")
#418233314717506544.2#"];
"-5279481120083610738.0" -> "-921586124651416668.2" [label="[fftffftftftf]"];
"-921586124651416668.2" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"cs\" @@ p3 :> \"csentry\")
#-921586124651416668.2#"];
"-5279481120083610738.0" -> "-5279481120083610738.2" [label="[fffffftftftf]"];
"-5279481120083610738.2" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"csentry\" @@ p3 :> \"csentry\")
#-5279481120083610738.2#"];
"-5279481120083610738.1" -> "418233314717506544.0" [label="[tffffftftftf]"];
"418233314717506544.0" [label="pc = (p1 :> \"cs\" @@ p2 :> \"csentry\" @@ p3 :> \"csentry\")
#418233314717506544.0#"];
"-5279481120083610738.1" -> "418233314717506544.1" [label="[tffffftftftf]"];
"418233314717506544.1" [label="pc = (p1 :> \"cs\" @@ p2 :> \"csentry\" @@ p3 :> \"csentry\")
#418233314717506544.1#"];
"-5279481120083610738.1" -> "-921586124651416668.0" [label="[fftffftftftf]"];
"-921586124651416668.0" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"cs\" @@ p3 :> \"csentry\")
#-921586124651416668.0#"];
"-5279481120083610738.1" -> "-921586124651416668.1" [label="[fftffftftftf]"];
"-921586124651416668.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"cs\" @@ p3 :> \"csentry\")
#-921586124651416668.1#"];
"-5279481120083610738.1" -> "-2653528622886195842.1" [label="[fffftftftftf]"];
"-2653528622886195842.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"csentry\" @@ p3 :> \"cs\")
#-2653528622886195842.1#"];
"-5279481120083610738.1" -> "-5279481120083610738.0" [label="[fffffftftftf]"];
"-5279481120083610738.0" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"csentry\" @@ p3 :> \"csentry\")
#-5279481120083610738.0#"];
"-5279481120083610738.1" -> "-5279481120083610738.1" [label="[fffffftftftf]"];
"-5279481120083610738.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"csentry\" @@ p3 :> \"csentry\")
#-5279481120083610738.1#"];
"-5279481120083610738.2" -> "418233314717506544.2" [label="[tffffftftftf]"];
"418233314717506544.2" [label="pc = (p1 :> \"cs\" @@ p2 :> \"csentry\" @@ p3 :> \"csentry\")
#418233314717506544.2#"];
"-5279481120083610738.2" -> "-921586124651416668.2" [label="[fftffftftftf]"];
"-921586124651416668.2" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"cs\" @@ p3 :> \"csentry\")
#-921586124651416668.2#"];
"-5279481120083610738.2" -> "-5279481120083610738.2" [label="[fffffftftftf]"];
"-5279481120083610738.2" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"csentry\" @@ p3 :> \"csentry\")
#-5279481120083610738.2#"];
"5283398624897554180.0" -> "137870492197837315.2" [label="[ffftffttfttt]"];
"137870492197837315.2" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"non-cs\" @@ p3 :> \"csentry\")
#137870492197837315.2#"];
"5283398624897554180.0" -> "-921586124651416668.2" [label="[ffffffttfttt]"];
"-921586124651416668.2" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"cs\" @@ p3 :> \"csentry\")
#-921586124651416668.2#"];
"5283398624897554180.0" -> "5283398624897554180.2" [label="[ffffffttfttt]"];
"5283398624897554180.2" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"cs\" @@ p3 :> \"csentry\")
#5283398624897554180.2#"];
"5283398624897554180.1" -> "137870492197837315.0" [label="[ffftffttfttt]"];
"137870492197837315.0" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"non-cs\" @@ p3 :> \"csentry\")
#137870492197837315.0#"];
"5283398624897554180.1" -> "137870492197837315.1" [label="[ffftffttfttt]"];
"137870492197837315.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"non-cs\" @@ p3 :> \"csentry\")
#137870492197837315.1#"];
"5283398624897554180.1" -> "-921586124651416668.0" [label="[ffffffttfttt]"];
"-921586124651416668.0" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"cs\" @@ p3 :> \"csentry\")
#-921586124651416668.0#"];
"5283398624897554180.1" -> "-921586124651416668.1" [label="[ffffffttfttt]"];
"-921586124651416668.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"cs\" @@ p3 :> \"csentry\")
#-921586124651416668.1#"];
"5283398624897554180.1" -> "5283398624897554180.0" [label="[ffffffttfttt]"];
"5283398624897554180.0" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"cs\" @@ p3 :> \"csentry\")
#5283398624897554180.0#"];
"5283398624897554180.1" -> "5283398624897554180.1" [label="[ffffffttfttt]"];
"5283398624897554180.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"cs\" @@ p3 :> \"csentry\")
#5283398624897554180.1#"];
"5283398624897554180.2" -> "137870492197837315.2" [label="[ffftffttfttt]"];
"137870492197837315.2" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"non-cs\" @@ p3 :> \"csentry\")
#137870492197837315.2#"];
"5283398624897554180.2" -> "-921586124651416668.2" [label="[ffffffttfttt]"];
"-921586124651416668.2" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"cs\" @@ p3 :> \"csentry\")
#-921586124651416668.2#"];
"5283398624897554180.2" -> "5283398624897554180.2" [label="[ffffffttfttt]"];
"5283398624897554180.2" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"cs\" @@ p3 :> \"csentry\")
#5283398624897554180.2#"];
"7010834156384815582.1" -> "-6303282370263029309.1" [label="[ffffftfttttt]"];
"-6303282370263029309.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"csentry\" @@ p3 :> \"non-cs\")
#-6303282370263029309.1#"];
"7010834156384815582.1" -> "-2653528622886195842.1" [label="[fffffffttttt]"];
"-2653528622886195842.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"csentry\" @@ p3 :> \"cs\")
#-2653528622886195842.1#"];
"7010834156384815582.1" -> "7010834156384815582.1" [label="[fffffffttttt]"];
"7010834156384815582.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"csentry\" @@ p3 :> \"cs\")
#7010834156384815582.1#"];
"418233314717506544.0" -> "418233314717506544.2" [label="[ffffffttttft]"];
"418233314717506544.2" [label="pc = (p1 :> \"cs\" @@ p2 :> \"csentry\" @@ p3 :> \"csentry\")
#418233314717506544.2#"];
"418233314717506544.0" -> "-3843622382816089045.2" [label="[ftffffttttft]"];
"-3843622382816089045.2" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"csentry\" @@ p3 :> \"csentry\")
#-3843622382816089045.2#"];
"418233314717506544.1" -> "418233314717506544.0" [label="[ffffffttttft]"];
"418233314717506544.0" [label="pc = (p1 :> \"cs\" @@ p2 :> \"csentry\" @@ p3 :> \"csentry\")
#418233314717506544.0#"];
"418233314717506544.1" -> "418233314717506544.1" [label="[ffffffttttft]"];
"418233314717506544.1" [label="pc = (p1 :> \"cs\" @@ p2 :> \"csentry\" @@ p3 :> \"csentry\")
#418233314717506544.1#"];
"418233314717506544.1" -> "-3843622382816089045.0" [label="[ftffffttttft]"];
"-3843622382816089045.0" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"csentry\" @@ p3 :> \"csentry\")
#-3843622382816089045.0#"];
"418233314717506544.1" -> "-3843622382816089045.1" [label="[ftffffttttft]"];
"-3843622382816089045.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"csentry\" @@ p3 :> \"csentry\")
#-3843622382816089045.1#"];
"418233314717506544.2" -> "418233314717506544.2" [label="[ffffffttttft]"];
"418233314717506544.2" [label="pc = (p1 :> \"cs\" @@ p2 :> \"csentry\" @@ p3 :> \"csentry\")
#418233314717506544.2#"];
"418233314717506544.2" -> "-3843622382816089045.2" [label="[ftffffttttft]"];
"-3843622382816089045.2" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"csentry\" @@ p3 :> \"csentry\")
#-3843622382816089045.2#"];
"-921586124651416668.0" -> "-921586124651416668.2" [label="[ffffffttfttt]"];
"-921586124651416668.2" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"cs\" @@ p3 :> \"csentry\")
#-921586124651416668.2#"];
"-921586124651416668.0" -> "-1479575019485096008.2" [label="[ffftffttfttt]"];
"-1479575019485096008.2" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"non-cs\" @@ p3 :> \"csentry\")
#-1479575019485096008.2#"];
"-921586124651416668.1" -> "-921586124651416668.0" [label="[ffffffttfttt]"];
"-921586124651416668.0" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"cs\" @@ p3 :> \"csentry\")
#-921586124651416668.0#"];
"-921586124651416668.1" -> "-921586124651416668.1" [label="[ffffffttfttt]"];
"-921586124651416668.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"cs\" @@ p3 :> \"csentry\")
#-921586124651416668.1#"];
"-921586124651416668.1" -> "-1479575019485096008.0" [label="[ffftffttfttt]"];
"-1479575019485096008.0" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"non-cs\" @@ p3 :> \"csentry\")
#-1479575019485096008.0#"];
"-921586124651416668.1" -> "-1479575019485096008.1" [label="[ffftffttfttt]"];
"-1479575019485096008.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"non-cs\" @@ p3 :> \"csentry\")
#-1479575019485096008.1#"];
"-921586124651416668.2" -> "-921586124651416668.2" [label="[ffffffttfttt]"];
"-921586124651416668.2" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"cs\" @@ p3 :> \"csentry\")
#-921586124651416668.2#"];
"-921586124651416668.2" -> "-1479575019485096008.2" [label="[ffftffttfttt]"];
"-1479575019485096008.2" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"non-cs\" @@ p3 :> \"csentry\")
#-1479575019485096008.2#"];
"-2653528622886195842.1" -> "4762715159091487864.1" [label="[ffffftfttttt]"];
"4762715159091487864.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"csentry\" @@ p3 :> \"non-cs\")
#4762715159091487864.1#"];
"-2653528622886195842.1" -> "-2653528622886195842.1" [label="[fffffffttttt]"];
"-2653528622886195842.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"csentry\" @@ p3 :> \"cs\")
#-2653528622886195842.1#"];
}
}l="pc = (p1 :> \"csentry\" @@ p2 :> \"csentry\" @@ p3 :> \"cs\")
#-2653528622886195842.1#"];
}
}\")
#-2653528622886195842.1#"];
}
}
\ No newline at end of file
------------------------ MODULE MutualExclusionSpec ------------------------
\* Module MutualExclusionSpec provides general specification for mutual-exclusion problem.
\* Procs is set of processes.
\* Every process is assumed to loop and enter into "cs" state on every interation.
\* Non-critical state is represented as "non-cs".
\* When process decides it want to enter into critical-section, it first goes into "csentry" state.
CONSTANT Procs
VARIABLES pc
TypeOK == pc \in [Procs -> {"non-cs", "csentry", "cs"}]
vars == <<pc>>
\* All processes start from non-critical section.
Init == pc \in [Procs -> {"non-cs"}]
\* WantCS(proc) is action when proc decides that it wants to enter into critical section.
WantCS(proc) ==
/\ pc[proc] = "non-cs"
/\ pc' = [pc EXCEPT ![proc] = "csentry"]
\* EnterCS(proc) is action when proc enters critical section.
EnterCS(proc) ==
/\ pc[proc] = "csentry"
/\ \A i \in Procs \ {proc} : pc[i] /= "cs"
/\ pc' = [pc EXCEPT ![proc] = "cs"]
\* ExitCS(proc) is action when proc leaves critical section.
ExitCS(proc) ==
/\ pc[proc] = "cs"
/\ pc' = [pc EXCEPT ![proc] = "non-cs"]
Next == \E i \in Procs: WantCS(i) \/ EnterCS(i) \/ ExitCS(i)
Spec == /\ Init
/\ [][Next]_vars
/\ \A i \in Procs: ( \* fairness
\* not fair for WantCS - it can pause and even hang there
/\ SF_vars(EnterCS(i))
/\ SF_vars(ExitCS(i)))
----------------
\* MutualExclusion is invariant indicating that no two processes can be inside critical section at the same time.
MutualExclusion == \A i,j \in Procs: (i /= j) => ~((pc[i] = "cs") /\ (pc[j] = "cs"))
\* Liveness is temporal property indicating that every process has a chance to enter critical section and leaves it.
Liveness == \A i \in Procs:
/\ (pc[i] = "csentry") ~> (pc[i] = "cs")
/\ (pc[i] = "cs") ~> (pc[i] = "non-cs")
THEOREM Spec => []TypeOK
THEOREM Spec => []MutualExclusion
THEOREM Spec => Liveness
=============================================================================
\* Modification History
\* Last modified Wed Feb 09 19:11:11 MSK 2022 by kirr
\* Created Wed Feb 09 13:11:29 MSK 2022 by kirr
\* CONSTANT definitions
\* MV CONSTANT declarations
CONSTANTS
p1 = p1
p2 = p2
\* MV CONSTANT definitions
CONSTANT
Procs <- const_1644410900335294000
Procs <- const_1644423127294549000
\* SPECIFICATION definition
SPECIFICATION
Spec
......@@ -12,4 +16,4 @@ MutualExclusion
\* PROPERTY definition
PROPERTY
Liveness
\* Generated on Wed Feb 09 15:48:20 MSK 2022
\ No newline at end of file
\* Generated on Wed Feb 09 19:12:07 MSK 2022
\ No newline at end of file
@!@!@STARTMSG 2262:0 @!@!@
TLC2 Version 2.16 of Day Month 20?? (rev: 9310ee7)
@!@!@ENDMSG 2262 @!@!@
@!@!@STARTMSG 2187:0 @!@!@
Running breadth-first search Model-Checking with fp 55 and seed -5658876381641416370 with 2 workers on 4 cores with 1161MB heap and 2608MB offheap memory [pid: 74536] (Linux 5.10.0-10-amd64 amd64, AdoptOpenJDK 14.0.1 x86_64, OffHeapDiskFPSet, DiskStateQueue).
@!@!@ENDMSG 2187 @!@!@
@!@!@STARTMSG 2220:0 @!@!@
Starting SANY...
@!@!@ENDMSG 2220 @!@!@
Parsing file /home/kirr/study/tla+/pluscal/ME/MutualExclusionSpec.toolbox/Model_1/MC.tla
Parsing file /home/kirr/study/tla+/pluscal/ME/MutualExclusionSpec.toolbox/Model_1/MutualExclusionSpec.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/TLC.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Naturals.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Sequences.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/FiniteSets.tla
Semantic processing of module MutualExclusionSpec
Semantic processing of module Naturals
Semantic processing of module Sequences
Semantic processing of module FiniteSets
Semantic processing of module TLC
Semantic processing of module MC
@!@!@STARTMSG 2219:0 @!@!@
SANY finished.
@!@!@ENDMSG 2219 @!@!@
@!@!@STARTMSG 2185:0 @!@!@
Starting... (2022-02-09 19:12:07)
@!@!@ENDMSG 2185 @!@!@
@!@!@STARTMSG 2212:0 @!@!@
Implied-temporal checking--satisfiability problem has 4 branches.
@!@!@ENDMSG 2212 @!@!@
@!@!@STARTMSG 2189:0 @!@!@
Computing initial states...
@!@!@ENDMSG 2189 @!@!@
@!@!@STARTMSG 2190:0 @!@!@
Finished computing initial states: 1 distinct state generated at 2022-02-09 19:12:08.
@!@!@ENDMSG 2190 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(4) at 2022-02-09 19:12:08: 15 states generated, 8 distinct states found, 0 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2192:0 @!@!@
Checking 4 branches of temporal properties for the complete state space with 32 total distinct states at (2022-02-09 19:12:08)
@!@!@ENDMSG 2192 @!@!@
@!@!@STARTMSG 2267:0 @!@!@
Finished checking temporal properties in 00s at 2022-02-09 19:12:08
@!@!@ENDMSG 2267 @!@!@
@!@!@STARTMSG 2193:0 @!@!@
Model checking completed. No error has been found.
Estimates of the probability that TLC did not check all reachable states
because two distinct states had the same fingerprint:
calculated (optimistic): val = 3.0E-18
@!@!@ENDMSG 2193 @!@!@
@!@!@STARTMSG 2201:0 @!@!@
The coverage statistics at 2022-02-09 19:12:08
@!@!@ENDMSG 2201 @!@!@
@!@!@STARTMSG 2773:0 @!@!@
<Init line 16, col 1 to line 16, col 4 of module MutualExclusionSpec>: 1:1
@!@!@ENDMSG 2773 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 16, col 9 to line 16, col 36 of module MutualExclusionSpec: 1
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
|line 16, col 16 to line 16, col 36 of module MutualExclusionSpec: 1:2
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 16, col 17 to line 16, col 21 of module MutualExclusionSpec: 1
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
||line 16, col 26 to line 16, col 35 of module MutualExclusionSpec: 1:5
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<WantCS line 19, col 1 to line 19, col 12 of module MutualExclusionSpec>: 4:10
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 20, col 12 to line 20, col 30 of module MutualExclusionSpec: 34
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 20, col 12 to line 20, col 19 of module MutualExclusionSpec: 24
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 21, col 12 to line 21, col 48 of module MutualExclusionSpec: 10
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<EnterCS line 24, col 1 to line 24, col 13 of module MutualExclusionSpec>: 3:6
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 25, col 12 to line 25, col 31 of module MutualExclusionSpec: 30
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 25, col 12 to line 25, col 19 of module MutualExclusionSpec: 24
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 26, col 38 to line 26, col 50 of module MutualExclusionSpec: 14
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 26, col 38 to line 26, col 42 of module MutualExclusionSpec: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 26, col 21 to line 26, col 34 of module MutualExclusionSpec: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 26, col 21 to line 26, col 25 of module MutualExclusionSpec: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
||line 11, col 1 to line 11, col 8 of module MC: 8:16
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 11, col 2 to line 11, col 3 of module MC: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 11, col 6 to line 11, col 7 of module MC: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 26, col 29 to line 26, col 34 of module MutualExclusionSpec: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 27, col 12 to line 27, col 43 of module MutualExclusionSpec: 6
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<ExitCS line 30, col 1 to line 30, col 12 of module MutualExclusionSpec>: 0:6
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 31, col 12 to line 31, col 26 of module MutualExclusionSpec: 30
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 31, col 12 to line 31, col 19 of module MutualExclusionSpec: 24
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 32, col 12 to line 32, col 47 of module MutualExclusionSpec: 6
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<TypeOK line 11, col 1 to line 11, col 6 of module MutualExclusionSpec>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 11, col 11 to line 11, col 55 of module MutualExclusionSpec: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<MutualExclusion line 47, col 1 to line 47, col 15 of module MutualExclusionSpec>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 47, col 20 to line 47, col 84 of module MutualExclusionSpec: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 47, col 38 to line 47, col 84 of module MutualExclusionSpec: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 47, col 39 to line 47, col 44 of module MutualExclusionSpec: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 47, col 50 to line 47, col 84 of module MutualExclusionSpec: 16
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 47, col 52 to line 47, col 83 of module MutualExclusionSpec: 16
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 47, col 53 to line 47, col 64 of module MutualExclusionSpec: 16
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 47, col 71 to line 47, col 82 of module MutualExclusionSpec: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 47, col 31 to line 47, col 35 of module MutualExclusionSpec: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
||line 11, col 1 to line 11, col 8 of module MC: 8:80
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 11, col 2 to line 11, col 3 of module MC: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 11, col 6 to line 11, col 7 of module MC: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2202:0 @!@!@
End of statistics.
@!@!@ENDMSG 2202 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(4) at 2022-02-09 19:12:08: 15 states generated (731 s/min), 8 distinct states found (389 ds/min), 0 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2199:0 @!@!@
15 states generated, 8 distinct states found, 0 states left on queue.
@!@!@ENDMSG 2199 @!@!@
@!@!@STARTMSG 2194:0 @!@!@
The depth of the complete state graph search is 4.
@!@!@ENDMSG 2194 @!@!@
@!@!@STARTMSG 2268:0 @!@!@
The average outdegree of the complete state graph is 1 (minimum is 0, the maximum 2 and the 95th percentile is 2).
@!@!@ENDMSG 2268 @!@!@
@!@!@STARTMSG 2186:0 @!@!@
Finished in 1243ms at (2022-02-09 19:12:08)
@!@!@ENDMSG 2186 @!@!@
---- MODULE MC ----
EXTENDS MutualExclusionSpec, TLC
\* CONSTANT definitions @modelParameterConstants:0Procs
const_1644411619075302000 ==
{0, 1}
\* MV CONSTANT declarations@modelParameterConstants
CONSTANTS
p1, p2
----
\* MV CONSTANT definitions Procs
const_1644423127294549000 ==
{p1, p2}
----
=============================================================================
\* Modification History
\* Created Wed Feb 09 16:00:19 MSK 2022 by kirr
\* Created Wed Feb 09 19:12:07 MSK 2022 by kirr
@!@!@STARTMSG 2262:0 @!@!@
TLC2 Version 2.16 of Day Month 20?? (rev: 9310ee7)
@!@!@ENDMSG 2262 @!@!@
@!@!@STARTMSG 2187:0 @!@!@
Running breadth-first search Model-Checking with fp 55 and seed -5658876381641416370 with 2 workers on 4 cores with 1161MB heap and 2608MB offheap memory [pid: 74536] (Linux 5.10.0-10-amd64 amd64, AdoptOpenJDK 14.0.1 x86_64, OffHeapDiskFPSet, DiskStateQueue).
@!@!@ENDMSG 2187 @!@!@
@!@!@STARTMSG 2220:0 @!@!@
Starting SANY...
@!@!@ENDMSG 2220 @!@!@
Parsing file /home/kirr/study/tla+/pluscal/ME/MutualExclusionSpec.toolbox/Model_1/MC.tla
Parsing file /home/kirr/study/tla+/pluscal/ME/MutualExclusionSpec.toolbox/Model_1/MutualExclusionSpec.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/TLC.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Naturals.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Sequences.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/FiniteSets.tla
Semantic processing of module MutualExclusionSpec
Semantic processing of module Naturals
Semantic processing of module Sequences
Semantic processing of module FiniteSets
Semantic processing of module TLC
Semantic processing of module MC
@!@!@STARTMSG 2219:0 @!@!@
SANY finished.
@!@!@ENDMSG 2219 @!@!@
@!@!@STARTMSG 2185:0 @!@!@
Starting... (2022-02-09 19:12:07)
@!@!@ENDMSG 2185 @!@!@
@!@!@STARTMSG 2212:0 @!@!@
Implied-temporal checking--satisfiability problem has 4 branches.
@!@!@ENDMSG 2212 @!@!@
@!@!@STARTMSG 2189:0 @!@!@
Computing initial states...
@!@!@ENDMSG 2189 @!@!@
@!@!@STARTMSG 2190:0 @!@!@
Finished computing initial states: 1 distinct state generated at 2022-02-09 19:12:08.
@!@!@ENDMSG 2190 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(4) at 2022-02-09 19:12:08: 15 states generated, 8 distinct states found, 0 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2192:0 @!@!@
Checking 4 branches of temporal properties for the complete state space with 32 total distinct states at (2022-02-09 19:12:08)
@!@!@ENDMSG 2192 @!@!@
@!@!@STARTMSG 2267:0 @!@!@
Finished checking temporal properties in 00s at 2022-02-09 19:12:08
@!@!@ENDMSG 2267 @!@!@
@!@!@STARTMSG 2193:0 @!@!@
Model checking completed. No error has been found.
Estimates of the probability that TLC did not check all reachable states
because two distinct states had the same fingerprint:
calculated (optimistic): val = 3.0E-18
@!@!@ENDMSG 2193 @!@!@
@!@!@STARTMSG 2201:0 @!@!@
The coverage statistics at 2022-02-09 19:12:08
@!@!@ENDMSG 2201 @!@!@
@!@!@STARTMSG 2773:0 @!@!@
<Init line 16, col 1 to line 16, col 4 of module MutualExclusionSpec>: 1:1
@!@!@ENDMSG 2773 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 16, col 9 to line 16, col 36 of module MutualExclusionSpec: 1
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
|line 16, col 16 to line 16, col 36 of module MutualExclusionSpec: 1:2
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 16, col 17 to line 16, col 21 of module MutualExclusionSpec: 1
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
||line 16, col 26 to line 16, col 35 of module MutualExclusionSpec: 1:5
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<WantCS line 19, col 1 to line 19, col 12 of module MutualExclusionSpec>: 4:10
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 20, col 12 to line 20, col 30 of module MutualExclusionSpec: 34
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 20, col 12 to line 20, col 19 of module MutualExclusionSpec: 24
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 21, col 12 to line 21, col 48 of module MutualExclusionSpec: 10
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<EnterCS line 24, col 1 to line 24, col 13 of module MutualExclusionSpec>: 3:6
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 25, col 12 to line 25, col 31 of module MutualExclusionSpec: 30
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 25, col 12 to line 25, col 19 of module MutualExclusionSpec: 24
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 26, col 38 to line 26, col 50 of module MutualExclusionSpec: 14
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 26, col 38 to line 26, col 42 of module MutualExclusionSpec: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 26, col 21 to line 26, col 34 of module MutualExclusionSpec: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 26, col 21 to line 26, col 25 of module MutualExclusionSpec: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
||line 11, col 1 to line 11, col 8 of module MC: 8:16
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 11, col 2 to line 11, col 3 of module MC: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 11, col 6 to line 11, col 7 of module MC: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 26, col 29 to line 26, col 34 of module MutualExclusionSpec: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 27, col 12 to line 27, col 43 of module MutualExclusionSpec: 6
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<ExitCS line 30, col 1 to line 30, col 12 of module MutualExclusionSpec>: 0:6
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 31, col 12 to line 31, col 26 of module MutualExclusionSpec: 30
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 31, col 12 to line 31, col 19 of module MutualExclusionSpec: 24
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 32, col 12 to line 32, col 47 of module MutualExclusionSpec: 6
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<TypeOK line 11, col 1 to line 11, col 6 of module MutualExclusionSpec>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 11, col 11 to line 11, col 55 of module MutualExclusionSpec: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<MutualExclusion line 47, col 1 to line 47, col 15 of module MutualExclusionSpec>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 47, col 20 to line 47, col 84 of module MutualExclusionSpec: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 47, col 38 to line 47, col 84 of module MutualExclusionSpec: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 47, col 39 to line 47, col 44 of module MutualExclusionSpec: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 47, col 50 to line 47, col 84 of module MutualExclusionSpec: 16
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 47, col 52 to line 47, col 83 of module MutualExclusionSpec: 16
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 47, col 53 to line 47, col 64 of module MutualExclusionSpec: 16
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 47, col 71 to line 47, col 82 of module MutualExclusionSpec: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 47, col 31 to line 47, col 35 of module MutualExclusionSpec: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
||line 11, col 1 to line 11, col 8 of module MC: 8:80
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 11, col 2 to line 11, col 3 of module MC: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 11, col 6 to line 11, col 7 of module MC: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2202:0 @!@!@
End of statistics.
@!@!@ENDMSG 2202 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(4) at 2022-02-09 19:12:08: 15 states generated (731 s/min), 8 distinct states found (389 ds/min), 0 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2199:0 @!@!@
15 states generated, 8 distinct states found, 0 states left on queue.
@!@!@ENDMSG 2199 @!@!@
@!@!@STARTMSG 2194:0 @!@!@
The depth of the complete state graph search is 4.
@!@!@ENDMSG 2194 @!@!@
@!@!@STARTMSG 2268:0 @!@!@
The average outdegree of the complete state graph is 1 (minimum is 0, the maximum 2 and the 95th percentile is 2).
@!@!@ENDMSG 2268 @!@!@
@!@!@STARTMSG 2186:0 @!@!@
Finished in 1243ms at (2022-02-09 19:12:08)
@!@!@ENDMSG 2186 @!@!@
strict digraph DiskGraph {
edge [colorscheme="paired12"]
nodesep=0.35;
subgraph cluster_graph {
color="white";
-5600971966646261494 [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"non-cs\")",style = filled]
-5600971966646261494 -> 5224388844003945969 [label="",color="2",fontcolor="2"];
5224388844003945969 [label="pc = (p1 :> \"csentry\" @@ p2 :> \"non-cs\")"];
-5600971966646261494 -> -1954060131598170906 [label="",color="2",fontcolor="2"];
-1954060131598170906 [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"csentry\")"];
5224388844003945969 -> 8841972215369422245 [label="",color="3",fontcolor="3"];
8841972215369422245 [label="pc = (p1 :> \"cs\" @@ p2 :> \"non-cs\")"];
-5600971966646261494 -> -5600971966646261494 [style="dashed"];
5224388844003945969 -> 2906234234861043712 [label="",color="2",fontcolor="2"];
2906234234861043712 [label="pc = (p1 :> \"csentry\" @@ p2 :> \"csentry\")"];
5224388844003945969 -> 5224388844003945969 [style="dashed"];
-1954060131598170906 -> 2906234234861043712 [label="",color="2",fontcolor="2"];
-1954060131598170906 -> -5346104617546393001 [label="",color="3",fontcolor="3"];
-5346104617546393001 [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"cs\")"];
-1954060131598170906 -> -1954060131598170906 [style="dashed"];
8841972215369422245 -> -5600971966646261494 [label="",color="4",fontcolor="4"];
8841972215369422245 -> 6908346055007045189 [label="",color="2",fontcolor="2"];
6908346055007045189 [label="pc = (p1 :> \"cs\" @@ p2 :> \"csentry\")"];
8841972215369422245 -> 8841972215369422245 [style="dashed"];
2906234234861043712 -> 6908346055007045189 [label="",color="3",fontcolor="3"];
2906234234861043712 -> -4269040404130360412 [label="",color="3",fontcolor="3"];
-4269040404130360412 [label="pc = (p1 :> \"csentry\" @@ p2 :> \"cs\")"];
2906234234861043712 -> 2906234234861043712 [style="dashed"];
-5346104617546393001 -> -4269040404130360412 [label="",color="2",fontcolor="2"];
-5346104617546393001 -> -5600971966646261494 [label="",color="4",fontcolor="4"];
-5346104617546393001 -> -5346104617546393001 [style="dashed"];
6908346055007045189 -> -1954060131598170906 [label="",color="4",fontcolor="4"];
6908346055007045189 -> 6908346055007045189 [style="dashed"];
-4269040404130360412 -> 5224388844003945969 [label="",color="4",fontcolor="4"];
-4269040404130360412 -> -4269040404130360412 [style="dashed"];
{rank = same; -5600971966646261494;}
{rank = same; 5224388844003945969;-1954060131598170906;}
{rank = same; 8841972215369422245;-5346104617546393001;2906234234861043712;}
{rank = same; 6908346055007045189;-4269040404130360412;}
}
subgraph cluster_legend {graph[style=bold];label = "Next State Actions" style="solid"
node [ labeljust="l",colorscheme="paired12",style=filled,shape=record ]
WantCS [label="WantCS",fillcolor=2]
ExitCS [label="ExitCS",fillcolor=4]
EnterCS [label="EnterCS",fillcolor=3]
}}
\ No newline at end of file
digraph DiskGraph {
nodesep=0.35;
subgraph cluster_graph {
color="white";
"-5600971966646261494.1" [style = filled] [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"non-cs\")
#-5600971966646261494.1#"]
"-5600971966646261494.1" -> "5224388844003945969.1" [label="[fffftttt]"];
"5224388844003945969.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"non-cs\")
#5224388844003945969.1#"];
"-5600971966646261494.1" -> "-1954060131598170906.1" [label="[fffftttt]"];
"-1954060131598170906.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"csentry\")
#-1954060131598170906.1#"];
"-5600971966646261494.1" -> "-5600971966646261494.1" [label="[fffftttt]"];
"-5600971966646261494.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"non-cs\")
#-5600971966646261494.1#"];
"5224388844003945969.1" -> "2906234234861043712.1" [label="[fffftttf]"];
"2906234234861043712.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"csentry\")
#2906234234861043712.1#"];
"5224388844003945969.1" -> "5224388844003945969.1" [label="[fffftttf]"];
"5224388844003945969.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"non-cs\")
#5224388844003945969.1#"];
"5224388844003945969.1" -> "8841972215369422245.1" [label="[tffftttf]"];
"8841972215369422245.1" [label="pc = (p1 :> \"cs\" @@ p2 :> \"non-cs\")
#8841972215369422245.1#"];
"-1954060131598170906.1" -> "2906234234861043712.1" [label="[fffftftt]"];
"2906234234861043712.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"csentry\")
#2906234234861043712.1#"];
"-1954060131598170906.1" -> "-1954060131598170906.1" [label="[fffftftt]"];
"-1954060131598170906.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"csentry\")
#-1954060131598170906.1#"];
"-1954060131598170906.1" -> "-5346104617546393001.0" [label="[fftftftt]"];
"-5346104617546393001.0" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"cs\")
#-5346104617546393001.0#"];
"-1954060131598170906.1" -> "-5346104617546393001.1" [label="[fftftftt]"];
"-5346104617546393001.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"cs\")
#-5346104617546393001.1#"];
"8841972215369422245.1" -> "6908346055007045189.1" [label="[ffffttft]"];
"6908346055007045189.1" [label="pc = (p1 :> \"cs\" @@ p2 :> \"csentry\")
#6908346055007045189.1#"];
"8841972215369422245.1" -> "8841972215369422245.1" [label="[ffffttft]"];
"8841972215369422245.1" [label="pc = (p1 :> \"cs\" @@ p2 :> \"non-cs\")
#8841972215369422245.1#"];
"8841972215369422245.1" -> "-5600971966646261494.1" [label="[ftffttft]"];
"-5600971966646261494.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"non-cs\")
#-5600971966646261494.1#"];
"2906234234861043712.1" -> "2906234234861043712.1" [label="[fffftftf]"];
"2906234234861043712.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"csentry\")
#2906234234861043712.1#"];
"2906234234861043712.1" -> "-4269040404130360412.0" [label="[fftftftf]"];
"-4269040404130360412.0" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"cs\")
#-4269040404130360412.0#"];
"2906234234861043712.1" -> "-4269040404130360412.1" [label="[fftftftf]"];
"-4269040404130360412.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"cs\")
#-4269040404130360412.1#"];
"2906234234861043712.1" -> "6908346055007045189.1" [label="[tffftftf]"];
"6908346055007045189.1" [label="pc = (p1 :> \"cs\" @@ p2 :> \"csentry\")
#6908346055007045189.1#"];
"6908346055007045189.1" -> "6908346055007045189.1" [label="[ffffttft]"];
"6908346055007045189.1" [label="pc = (p1 :> \"cs\" @@ p2 :> \"csentry\")
#6908346055007045189.1#"];
"6908346055007045189.1" -> "-1954060131598170906.1" [label="[ftffttft]"];
"-1954060131598170906.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"csentry\")
#-1954060131598170906.1#"];
"-5346104617546393001.0" -> "-4269040404130360412.2" [label="[fffffttt]"];
"-4269040404130360412.2" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"cs\")
#-4269040404130360412.2#"];
"-5346104617546393001.0" -> "-5346104617546393001.2" [label="[fffffttt]"];
"-5346104617546393001.2" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"cs\")
#-5346104617546393001.2#"];
"-5346104617546393001.2" -> "-4269040404130360412.2" [style="dotted"] [label="[fffffttt]"];
"-5346104617546393001.1" -> "-4269040404130360412.0" [label="[fffffttt]"];
"-4269040404130360412.0" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"cs\")
#-4269040404130360412.0#"];
"-5346104617546393001.1" -> "-4269040404130360412.1" [label="[fffffttt]"];
"-4269040404130360412.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"cs\")
#-4269040404130360412.1#"];
"-5346104617546393001.1" -> "-5346104617546393001.0" [label="[fffffttt]"];
"-5346104617546393001.0" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"cs\")
#-5346104617546393001.0#"];
"-5346104617546393001.1" -> "-5346104617546393001.1" [label="[fffffttt]"];
"-5346104617546393001.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"cs\")
#-5346104617546393001.1#"];
"-5346104617546393001.1" -> "-5600971966646261494.1" [label="[ffftfttt]"];
"-5600971966646261494.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"non-cs\")
#-5600971966646261494.1#"];
"-4269040404130360412.0" -> "-4269040404130360412.2" [label="[fffffttt]"];
"-4269040404130360412.2" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"cs\")
#-4269040404130360412.2#"];
"-4269040404130360412.1" -> "5224388844003945969.1" [label="[ffftfttt]"];
"5224388844003945969.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"non-cs\")
#5224388844003945969.1#"];
"-4269040404130360412.1" -> "-4269040404130360412.0" [label="[fffffttt]"];
"-4269040404130360412.0" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"cs\")
#-4269040404130360412.0#"];
"-4269040404130360412.1" -> "-4269040404130360412.1" [label="[fffffttt]"];
"-4269040404130360412.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"cs\")
#-4269040404130360412.1#"];
"-4269040404130360412.2" -> "-4269040404130360412.2" [label="[fffffttt]"];
"-4269040404130360412.2" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"cs\")
#-4269040404130360412.2#"];
}
}08346055007045189.1" -> "6908346055007045189.1" [label="[ffffttft]"];
"6908346055007045189.1" [label="pc = (p1 :> \"cs\" @@ p2 :> \"csentry\")
#6908346055007045189.1#"];
"6908346055007045189.1" -> "-1954060131598170906.0" [label="[ftffttft]"];
"-1954060131598170906.0" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"csentry\")
#-1954060131598170906.0#"];
"6908346055007045189.1" -> "-1954060131598170906.1" [label="[ftffttft]"];
"-1954060131598170906.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"csentry\")
#-1954060131598170906.1#"];
"6908346055007045189.2" -> "6908346055007045189.2" [label="[ffffttft]"];
"6908346055007045189.2" [label="pc = (p1 :> \"cs\" @@ p2 :> \"csentry\")
#6908346055007045189.2#"];
"6908346055007045189.2" -> "-1954060131598170906.2" [label="[ftffttft]"];
"-1954060131598170906.2" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"csentry\")
#-1954060131598170906.2#"];
"-5346104617546393001.1" -> "-4269040404130360412.1" [label="[fffffttt]"];
"-4269040404130360412.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"cs\")
#-4269040404130360412.1#"];
"-5346104617546393001.1" -> "-5346104617546393001.1" [label="[fffffttt]"];
"-5346104617546393001.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"cs\")
#-5346104617546393001.1#"];
"-5346104617546393001.1" -> "-5600971966646261494.1" [label="[ffftfttt]"];
"-5600971966646261494.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"non-cs\")
#-5600971966646261494.1#"];
"-4269040404130360412.1" -> "5224388844003945969.1" [label="[ffftfttt]"];
"5224388844003945969.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"non-cs\")
#5224388844003945969.1#"];
"-4269040404130360412.1" -> "-4269040404130360412.1" [label="[fffffttt]"];
"-4269040404130360412.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"cs\")
#-4269040404130360412.1#"];
}
}];
}
}
\ No newline at end of file
------------------------ MODULE MutualExclusionSpec ------------------------
\* Module MutualExclusionSpec provides general specification for mutual-exclusion problem.
\* Procs is set of processes.
\* Every process is assumed to loop and enter into "cs" state on every interation.
\* Non-critical state is represented as "non-cs".
\* When process decides it want to enter into critical-section, it first goes into "csentry" state.
CONSTANT Procs
VARIABLES pc
TypeOK == pc \in [Procs -> {"non-cs", "csentry", "cs"}]
vars == <<pc>>
\* All processes start from non-critical section.
Init == pc \in [Procs -> {"non-cs"}]
\* WantCS(proc) is action when proc decides that it wants to enter into critical section.
WantCS(proc) ==
/\ pc[proc] = "non-cs"
/\ pc' = [pc EXCEPT ![proc] = "csentry"]
\* EnterCS(proc) is action when proc enters critical section.
EnterCS(proc) ==
/\ pc[proc] = "csentry"
/\ \A i \in Procs \ {proc} : pc[i] /= "cs"
/\ pc' = [pc EXCEPT ![proc] = "cs"]
\* ExitCS(proc) is action when proc leaves critical section.
ExitCS(proc) ==
/\ pc[proc] = "cs"
/\ pc' = [pc EXCEPT ![proc] = "non-cs"]
Next == \E i \in Procs: WantCS(i) \/ EnterCS(i) \/ ExitCS(i)
Spec == /\ Init
/\ [][Next]_vars
/\ \A i \in Procs: ( \* fairness
\* not fair for WantCS - it can pause and even hang there
/\ SF_vars(EnterCS(i))
/\ SF_vars(ExitCS(i)))
----------------
\* MutualExclusion is invariant indicating that no two processes can be inside critical section at the same time.
MutualExclusion == \A i,j \in Procs: (i /= j) => ~((pc[i] = "cs") /\ (pc[j] = "cs"))
\* Liveness is temporal property indicating that every process has a chance to enter critical section and leaves it.
Liveness == \A i \in Procs:
/\ (pc[i] = "csentry") ~> (pc[i] = "cs")
/\ (pc[i] = "cs") ~> (pc[i] = "non-cs")
THEOREM Spec => []TypeOK
THEOREM Spec => []MutualExclusion
THEOREM Spec => Liveness
=============================================================================
\* Modification History
\* Last modified Wed Feb 09 19:11:11 MSK 2022 by kirr
\* Created Wed Feb 09 13:11:29 MSK 2022 by kirr
\* CONSTANT definitions
\* MV CONSTANT declarations
CONSTANTS
p1 = p1
p2 = p2
\* MV CONSTANT definitions
CONSTANT
Procs <- const_1644411619075302000
Procs <- const_1644425758311553000
\* SPECIFICATION definition
SPECIFICATION
Spec
......@@ -12,4 +16,4 @@ MutualExclusion
\* PROPERTY definition
PROPERTY
Liveness
\* Generated on Wed Feb 09 16:00:19 MSK 2022
\ No newline at end of file
\* Generated on Wed Feb 09 19:55:58 MSK 2022
\ No newline at end of file
......@@ -2,7 +2,7 @@
TLC2 Version 2.16 of Day Month 20?? (rev: 9310ee7)
@!@!@ENDMSG 2262 @!@!@
@!@!@STARTMSG 2187:0 @!@!@
Running breadth-first search Model-Checking with fp 60 and seed -8986725491940249781 with 2 workers on 4 cores with 1161MB heap and 2608MB offheap memory [pid: 64683] (Linux 5.10.0-10-amd64 amd64, AdoptOpenJDK 14.0.1 x86_64, OffHeapDiskFPSet, DiskStateQueue).
Running breadth-first search Model-Checking with fp 64 and seed -2330330544042997939 with 2 workers on 4 cores with 1161MB heap and 2608MB offheap memory [pid: 76477] (Linux 5.10.0-10-amd64 amd64, AdoptOpenJDK 14.0.1 x86_64, OffHeapDiskFPSet, DiskStateQueue).
@!@!@ENDMSG 2187 @!@!@
@!@!@STARTMSG 2220:0 @!@!@
Starting SANY...
......@@ -23,7 +23,7 @@ Semantic processing of module MC
SANY finished.
@!@!@ENDMSG 2219 @!@!@
@!@!@STARTMSG 2185:0 @!@!@
Starting... (2022-02-09 15:48:08)
Starting... (2022-02-09 19:55:58)
@!@!@ENDMSG 2185 @!@!@
@!@!@STARTMSG 2212:0 @!@!@
Implied-temporal checking--satisfiability problem has 4 branches.
......@@ -32,122 +32,158 @@ Implied-temporal checking--satisfiability problem has 4 branches.
Computing initial states...
@!@!@ENDMSG 2189 @!@!@
@!@!@STARTMSG 2190:0 @!@!@
Finished computing initial states: 1 distinct state generated at 2022-02-09 15:48:09.
Finished computing initial states: 1 distinct state generated at 2022-02-09 19:55:59.
@!@!@ENDMSG 2190 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(2) at 2022-02-09 15:48:09: 5 states generated, 3 distinct states found, 0 states left on queue.
Progress(4) at 2022-02-09 19:55:59: 15 states generated, 8 distinct states found, 0 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2192:0 @!@!@
Checking 4 branches of temporal properties for the complete state space with 12 total distinct states at (2022-02-09 15:48:09)
Checking 4 branches of temporal properties for the complete state space with 32 total distinct states at (2022-02-09 19:55:59)
@!@!@ENDMSG 2192 @!@!@
@!@!@STARTMSG 2267:0 @!@!@
Finished checking temporal properties in 00s at 2022-02-09 15:48:09
Finished checking temporal properties in 00s at 2022-02-09 19:55:59
@!@!@ENDMSG 2267 @!@!@
@!@!@STARTMSG 2193:0 @!@!@
Model checking completed. No error has been found.
Estimates of the probability that TLC did not check all reachable states
because two distinct states had the same fingerprint:
calculated (optimistic): val = 3.3E-19
calculated (optimistic): val = 3.0E-18
@!@!@ENDMSG 2193 @!@!@
@!@!@STARTMSG 2201:0 @!@!@
The coverage statistics at 2022-02-09 15:48:09
The coverage statistics at 2022-02-09 19:55:59
@!@!@ENDMSG 2201 @!@!@
@!@!@STARTMSG 2773:0 @!@!@
<Init line 15, col 1 to line 15, col 4 of module MutualExclusionSpec>: 1:1
<Init line 16, col 1 to line 16, col 4 of module MutualExclusionSpec>: 1:1
@!@!@ENDMSG 2773 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 15, col 9 to line 15, col 36 of module MutualExclusionSpec: 1
line 16, col 9 to line 16, col 36 of module MutualExclusionSpec: 1
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
|line 15, col 16 to line 15, col 36 of module MutualExclusionSpec: 1:2
|line 16, col 16 to line 16, col 36 of module MutualExclusionSpec: 1:2
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 15, col 17 to line 15, col 21 of module MutualExclusionSpec: 1
||line 16, col 17 to line 16, col 21 of module MutualExclusionSpec: 1
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
||line 15, col 26 to line 15, col 35 of module MutualExclusionSpec: 1:5
||line 16, col 26 to line 16, col 35 of module MutualExclusionSpec: 1:5
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<EnterCS line 18, col 1 to line 18, col 13 of module MutualExclusionSpec>: 2:6
<WantCS line 19, col 1 to line 19, col 12 of module MutualExclusionSpec>: 4:24
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 19, col 28 to line 19, col 40 of module MutualExclusionSpec: 48
line 20, col 12 to line 20, col 30 of module MutualExclusionSpec: 76
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 19, col 28 to line 19, col 32 of module MutualExclusionSpec: 36
|line 20, col 12 to line 20, col 19 of module MutualExclusionSpec: 52
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 19, col 21 to line 19, col 25 of module MutualExclusionSpec: 26
line 21, col 12 to line 21, col 48 of module MutualExclusionSpec: 24
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<EnterCS line 24, col 1 to line 24, col 13 of module MutualExclusionSpec>: 3:16
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 25, col 12 to line 25, col 31 of module MutualExclusionSpec: 68
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 25, col 12 to line 25, col 19 of module MutualExclusionSpec: 52
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 26, col 38 to line 26, col 50 of module MutualExclusionSpec: 34
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 26, col 38 to line 26, col 42 of module MutualExclusionSpec: 18
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 26, col 21 to line 26, col 34 of module MutualExclusionSpec: 18
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 26, col 21 to line 26, col 25 of module MutualExclusionSpec: 18
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
|line 6, col 1 to line 6, col 6 of module MC: 26:78
||line 11, col 1 to line 11, col 8 of module MC: 18:36
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 20, col 12 to line 20, col 43 of module MutualExclusionSpec: 6
|||line 11, col 2 to line 11, col 3 of module MC: 18
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 11, col 6 to line 11, col 7 of module MC: 18
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 26, col 29 to line 26, col 34 of module MutualExclusionSpec: 18
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 27, col 12 to line 27, col 43 of module MutualExclusionSpec: 16
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<ExitCS line 23, col 1 to line 23, col 12 of module MutualExclusionSpec>: 0:10
<ExitCS line 30, col 1 to line 30, col 12 of module MutualExclusionSpec>: 0:10
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 24, col 12 to line 24, col 26 of module MutualExclusionSpec: 36
line 31, col 12 to line 31, col 26 of module MutualExclusionSpec: 62
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 24, col 12 to line 24, col 19 of module MutualExclusionSpec: 26
|line 31, col 12 to line 31, col 19 of module MutualExclusionSpec: 52
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 25, col 12 to line 25, col 47 of module MutualExclusionSpec: 10
line 32, col 12 to line 32, col 47 of module MutualExclusionSpec: 10
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<TypeOK line 10, col 1 to line 10, col 6 of module MutualExclusionSpec>
<TypeOK line 11, col 1 to line 11, col 6 of module MutualExclusionSpec>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 10, col 11 to line 10, col 44 of module MutualExclusionSpec: 3
line 11, col 11 to line 11, col 55 of module MutualExclusionSpec: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<MutualExclusion line 39, col 1 to line 39, col 15 of module MutualExclusionSpec>
<MutualExclusion line 47, col 1 to line 47, col 15 of module MutualExclusionSpec>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 39, col 20 to line 39, col 84 of module MutualExclusionSpec: 3
line 47, col 20 to line 47, col 84 of module MutualExclusionSpec: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 39, col 38 to line 39, col 84 of module MutualExclusionSpec: 12
|line 47, col 38 to line 47, col 84 of module MutualExclusionSpec: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 39, col 39 to line 39, col 44 of module MutualExclusionSpec: 12
||line 47, col 39 to line 47, col 44 of module MutualExclusionSpec: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 39, col 50 to line 39, col 84 of module MutualExclusionSpec: 6
||line 47, col 50 to line 47, col 84 of module MutualExclusionSpec: 16
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 39, col 52 to line 39, col 83 of module MutualExclusionSpec: 6
|||line 47, col 52 to line 47, col 83 of module MutualExclusionSpec: 16
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 39, col 53 to line 39, col 64 of module MutualExclusionSpec: 6
||||line 47, col 53 to line 47, col 64 of module MutualExclusionSpec: 16
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 39, col 71 to line 39, col 82 of module MutualExclusionSpec: 2
||||line 47, col 71 to line 47, col 82 of module MutualExclusionSpec: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 39, col 31 to line 39, col 35 of module MutualExclusionSpec: 3
|line 47, col 31 to line 47, col 35 of module MutualExclusionSpec: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
||line 6, col 1 to line 6, col 6 of module MC: 3:30
||line 11, col 1 to line 11, col 8 of module MC: 8:80
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 11, col 2 to line 11, col 3 of module MC: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 11, col 6 to line 11, col 7 of module MC: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2202:0 @!@!@
End of statistics.
@!@!@ENDMSG 2202 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(2) at 2022-02-09 15:48:09: 5 states generated (232 s/min), 3 distinct states found (139 ds/min), 0 states left on queue.
Progress(4) at 2022-02-09 19:55:59: 15 states generated (708 s/min), 8 distinct states found (377 ds/min), 0 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2199:0 @!@!@
5 states generated, 3 distinct states found, 0 states left on queue.
15 states generated, 8 distinct states found, 0 states left on queue.
@!@!@ENDMSG 2199 @!@!@
@!@!@STARTMSG 2194:0 @!@!@
The depth of the complete state graph search is 2.
The depth of the complete state graph search is 4.
@!@!@ENDMSG 2194 @!@!@
@!@!@STARTMSG 2268:0 @!@!@
The average outdegree of the complete state graph is 1 (minimum is 0, the maximum 2 and the 95th percentile is 2).
@!@!@ENDMSG 2268 @!@!@
@!@!@STARTMSG 2186:0 @!@!@
Finished in 1297ms at (2022-02-09 15:48:09)
Finished in 1276ms at (2022-02-09 19:55:59)
@!@!@ENDMSG 2186 @!@!@
---- MODULE MC ----
EXTENDS MutualExclusionSpec, TLC
\* CONSTANT definitions @modelParameterConstants:0Procs
const_1644410900335294000 ==
{0, 1}
\* MV CONSTANT declarations@modelParameterConstants
CONSTANTS
p1, p2
----
\* MV CONSTANT definitions Procs
const_1644425758311553000 ==
{p1, p2}
----
=============================================================================
\* Modification History
\* Created Wed Feb 09 15:48:20 MSK 2022 by kirr
\* Created Wed Feb 09 19:55:58 MSK 2022 by kirr
......@@ -2,7 +2,7 @@
TLC2 Version 2.16 of Day Month 20?? (rev: 9310ee7)
@!@!@ENDMSG 2262 @!@!@
@!@!@STARTMSG 2187:0 @!@!@
Running breadth-first search Model-Checking with fp 60 and seed -8986725491940249781 with 2 workers on 4 cores with 1161MB heap and 2608MB offheap memory [pid: 64683] (Linux 5.10.0-10-amd64 amd64, AdoptOpenJDK 14.0.1 x86_64, OffHeapDiskFPSet, DiskStateQueue).
Running breadth-first search Model-Checking with fp 64 and seed -2330330544042997939 with 2 workers on 4 cores with 1161MB heap and 2608MB offheap memory [pid: 76477] (Linux 5.10.0-10-amd64 amd64, AdoptOpenJDK 14.0.1 x86_64, OffHeapDiskFPSet, DiskStateQueue).
@!@!@ENDMSG 2187 @!@!@
@!@!@STARTMSG 2220:0 @!@!@
Starting SANY...
......@@ -23,7 +23,7 @@ Semantic processing of module MC
SANY finished.
@!@!@ENDMSG 2219 @!@!@
@!@!@STARTMSG 2185:0 @!@!@
Starting... (2022-02-09 15:48:08)
Starting... (2022-02-09 19:55:58)
@!@!@ENDMSG 2185 @!@!@
@!@!@STARTMSG 2212:0 @!@!@
Implied-temporal checking--satisfiability problem has 4 branches.
......@@ -32,122 +32,158 @@ Implied-temporal checking--satisfiability problem has 4 branches.
Computing initial states...
@!@!@ENDMSG 2189 @!@!@
@!@!@STARTMSG 2190:0 @!@!@
Finished computing initial states: 1 distinct state generated at 2022-02-09 15:48:09.
Finished computing initial states: 1 distinct state generated at 2022-02-09 19:55:59.
@!@!@ENDMSG 2190 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(2) at 2022-02-09 15:48:09: 5 states generated, 3 distinct states found, 0 states left on queue.
Progress(4) at 2022-02-09 19:55:59: 15 states generated, 8 distinct states found, 0 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2192:0 @!@!@
Checking 4 branches of temporal properties for the complete state space with 12 total distinct states at (2022-02-09 15:48:09)
Checking 4 branches of temporal properties for the complete state space with 32 total distinct states at (2022-02-09 19:55:59)
@!@!@ENDMSG 2192 @!@!@
@!@!@STARTMSG 2267:0 @!@!@
Finished checking temporal properties in 00s at 2022-02-09 15:48:09
Finished checking temporal properties in 00s at 2022-02-09 19:55:59
@!@!@ENDMSG 2267 @!@!@
@!@!@STARTMSG 2193:0 @!@!@
Model checking completed. No error has been found.
Estimates of the probability that TLC did not check all reachable states
because two distinct states had the same fingerprint:
calculated (optimistic): val = 3.3E-19
calculated (optimistic): val = 3.0E-18
@!@!@ENDMSG 2193 @!@!@
@!@!@STARTMSG 2201:0 @!@!@
The coverage statistics at 2022-02-09 15:48:09
The coverage statistics at 2022-02-09 19:55:59
@!@!@ENDMSG 2201 @!@!@
@!@!@STARTMSG 2773:0 @!@!@
<Init line 15, col 1 to line 15, col 4 of module MutualExclusionSpec>: 1:1
<Init line 16, col 1 to line 16, col 4 of module MutualExclusionSpec>: 1:1
@!@!@ENDMSG 2773 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 15, col 9 to line 15, col 36 of module MutualExclusionSpec: 1
line 16, col 9 to line 16, col 36 of module MutualExclusionSpec: 1
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
|line 15, col 16 to line 15, col 36 of module MutualExclusionSpec: 1:2
|line 16, col 16 to line 16, col 36 of module MutualExclusionSpec: 1:2
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 15, col 17 to line 15, col 21 of module MutualExclusionSpec: 1
||line 16, col 17 to line 16, col 21 of module MutualExclusionSpec: 1
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
||line 15, col 26 to line 15, col 35 of module MutualExclusionSpec: 1:5
||line 16, col 26 to line 16, col 35 of module MutualExclusionSpec: 1:5
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<EnterCS line 18, col 1 to line 18, col 13 of module MutualExclusionSpec>: 2:6
<WantCS line 19, col 1 to line 19, col 12 of module MutualExclusionSpec>: 4:24
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 19, col 28 to line 19, col 40 of module MutualExclusionSpec: 48
line 20, col 12 to line 20, col 30 of module MutualExclusionSpec: 76
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 19, col 28 to line 19, col 32 of module MutualExclusionSpec: 36
|line 20, col 12 to line 20, col 19 of module MutualExclusionSpec: 52
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 19, col 21 to line 19, col 25 of module MutualExclusionSpec: 26
line 21, col 12 to line 21, col 48 of module MutualExclusionSpec: 24
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<EnterCS line 24, col 1 to line 24, col 13 of module MutualExclusionSpec>: 3:16
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 25, col 12 to line 25, col 31 of module MutualExclusionSpec: 68
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 25, col 12 to line 25, col 19 of module MutualExclusionSpec: 52
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 26, col 38 to line 26, col 50 of module MutualExclusionSpec: 34
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 26, col 38 to line 26, col 42 of module MutualExclusionSpec: 18
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 26, col 21 to line 26, col 34 of module MutualExclusionSpec: 18
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 26, col 21 to line 26, col 25 of module MutualExclusionSpec: 18
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
|line 6, col 1 to line 6, col 6 of module MC: 26:78
||line 11, col 1 to line 11, col 8 of module MC: 18:36
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 20, col 12 to line 20, col 43 of module MutualExclusionSpec: 6
|||line 11, col 2 to line 11, col 3 of module MC: 18
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 11, col 6 to line 11, col 7 of module MC: 18
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 26, col 29 to line 26, col 34 of module MutualExclusionSpec: 18
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 27, col 12 to line 27, col 43 of module MutualExclusionSpec: 16
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<ExitCS line 23, col 1 to line 23, col 12 of module MutualExclusionSpec>: 0:10
<ExitCS line 30, col 1 to line 30, col 12 of module MutualExclusionSpec>: 0:10
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 24, col 12 to line 24, col 26 of module MutualExclusionSpec: 36
line 31, col 12 to line 31, col 26 of module MutualExclusionSpec: 62
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 24, col 12 to line 24, col 19 of module MutualExclusionSpec: 26
|line 31, col 12 to line 31, col 19 of module MutualExclusionSpec: 52
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 25, col 12 to line 25, col 47 of module MutualExclusionSpec: 10
line 32, col 12 to line 32, col 47 of module MutualExclusionSpec: 10
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<TypeOK line 10, col 1 to line 10, col 6 of module MutualExclusionSpec>
<TypeOK line 11, col 1 to line 11, col 6 of module MutualExclusionSpec>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 10, col 11 to line 10, col 44 of module MutualExclusionSpec: 3
line 11, col 11 to line 11, col 55 of module MutualExclusionSpec: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<MutualExclusion line 39, col 1 to line 39, col 15 of module MutualExclusionSpec>
<MutualExclusion line 47, col 1 to line 47, col 15 of module MutualExclusionSpec>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 39, col 20 to line 39, col 84 of module MutualExclusionSpec: 3
line 47, col 20 to line 47, col 84 of module MutualExclusionSpec: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 39, col 38 to line 39, col 84 of module MutualExclusionSpec: 12
|line 47, col 38 to line 47, col 84 of module MutualExclusionSpec: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 39, col 39 to line 39, col 44 of module MutualExclusionSpec: 12
||line 47, col 39 to line 47, col 44 of module MutualExclusionSpec: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 39, col 50 to line 39, col 84 of module MutualExclusionSpec: 6
||line 47, col 50 to line 47, col 84 of module MutualExclusionSpec: 16
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 39, col 52 to line 39, col 83 of module MutualExclusionSpec: 6
|||line 47, col 52 to line 47, col 83 of module MutualExclusionSpec: 16
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 39, col 53 to line 39, col 64 of module MutualExclusionSpec: 6
||||line 47, col 53 to line 47, col 64 of module MutualExclusionSpec: 16
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 39, col 71 to line 39, col 82 of module MutualExclusionSpec: 2
||||line 47, col 71 to line 47, col 82 of module MutualExclusionSpec: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 39, col 31 to line 39, col 35 of module MutualExclusionSpec: 3
|line 47, col 31 to line 47, col 35 of module MutualExclusionSpec: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
||line 6, col 1 to line 6, col 6 of module MC: 3:30
||line 11, col 1 to line 11, col 8 of module MC: 8:80
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 11, col 2 to line 11, col 3 of module MC: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 11, col 6 to line 11, col 7 of module MC: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2202:0 @!@!@
End of statistics.
@!@!@ENDMSG 2202 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(2) at 2022-02-09 15:48:09: 5 states generated (232 s/min), 3 distinct states found (139 ds/min), 0 states left on queue.
Progress(4) at 2022-02-09 19:55:59: 15 states generated (708 s/min), 8 distinct states found (377 ds/min), 0 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2199:0 @!@!@
5 states generated, 3 distinct states found, 0 states left on queue.
15 states generated, 8 distinct states found, 0 states left on queue.
@!@!@ENDMSG 2199 @!@!@
@!@!@STARTMSG 2194:0 @!@!@
The depth of the complete state graph search is 2.
The depth of the complete state graph search is 4.
@!@!@ENDMSG 2194 @!@!@
@!@!@STARTMSG 2268:0 @!@!@
The average outdegree of the complete state graph is 1 (minimum is 0, the maximum 2 and the 95th percentile is 2).
@!@!@ENDMSG 2268 @!@!@
@!@!@STARTMSG 2186:0 @!@!@
Finished in 1297ms at (2022-02-09 15:48:09)
Finished in 1276ms at (2022-02-09 19:55:59)
@!@!@ENDMSG 2186 @!@!@
strict digraph DiskGraph {
edge [colorscheme="paired12"]
nodesep=0.35;
subgraph cluster_graph {
color="white";
-7824571988019409220 [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"non-cs\")",style = filled]
-7824571988019409220 -> 5080291979216001926 [label="",color="2",fontcolor="2"];
5080291979216001926 [label="pc = (p1 :> \"csentry\" @@ p2 :> \"non-cs\")"];
-7824571988019409220 -> -8272984896072399991 [label="",color="2",fontcolor="2"];
-8272984896072399991 [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"csentry\")"];
5080291979216001926 -> 897139957786517708 [label="",color="3",fontcolor="3"];
897139957786517708 [label="pc = (p1 :> \"cs\" @@ p2 :> \"non-cs\")"];
-7824571988019409220 -> -7824571988019409220 [style="dashed"];
5080291979216001926 -> 4489738507008100367 [label="",color="2",fontcolor="2"];
4489738507008100367 [label="pc = (p1 :> \"csentry\" @@ p2 :> \"csentry\")"];
5080291979216001926 -> 5080291979216001926 [style="dashed"];
-8272984896072399991 -> 4489738507008100367 [label="",color="2",fontcolor="2"];
-8272984896072399991 -> -9137926712894874236 [label="",color="3",fontcolor="3"];
-9137926712894874236 [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"cs\")"];
-8272984896072399991 -> -8272984896072399991 [style="dashed"];
897139957786517708 -> -7824571988019409220 [label="",color="4",fontcolor="4"];
897139957786517708 -> -1529149678030047826 [label="",color="2",fontcolor="2"];
-1529149678030047826 [label="pc = (p1 :> \"cs\" @@ p2 :> \"csentry\")"];
897139957786517708 -> 897139957786517708 [style="dashed"];
4489738507008100367 -> -1529149678030047826 [label="",color="3",fontcolor="3"];
4489738507008100367 -> 1143334986297935796 [label="",color="3",fontcolor="3"];
1143334986297935796 [label="pc = (p1 :> \"csentry\" @@ p2 :> \"cs\")"];
4489738507008100367 -> 4489738507008100367 [style="dashed"];
-9137926712894874236 -> 1143334986297935796 [label="",color="2",fontcolor="2"];
-9137926712894874236 -> -7824571988019409220 [label="",color="4",fontcolor="4"];
-9137926712894874236 -> -9137926712894874236 [style="dashed"];
-1529149678030047826 -> -8272984896072399991 [label="",color="4",fontcolor="4"];
-1529149678030047826 -> -1529149678030047826 [style="dashed"];
1143334986297935796 -> 5080291979216001926 [label="",color="4",fontcolor="4"];
1143334986297935796 -> 1143334986297935796 [style="dashed"];
{rank = same; -7824571988019409220;}
{rank = same; -8272984896072399991;5080291979216001926;}
{rank = same; -9137926712894874236;897139957786517708;4489738507008100367;}
{rank = same; 1143334986297935796;-1529149678030047826;}
}
subgraph cluster_legend {graph[style=bold];label = "Next State Actions" style="solid"
node [ labeljust="l",colorscheme="paired12",style=filled,shape=record ]
WantCS [label="WantCS",fillcolor=2]
ExitCS [label="ExitCS",fillcolor=4]
EnterCS [label="EnterCS",fillcolor=3]
}}
\ No newline at end of file
digraph DiskGraph {
nodesep=0.35;
subgraph cluster_graph {
color="white";
"-7824571988019409220.1" [style = filled] [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"non-cs\")
#-7824571988019409220.1#"]
"-7824571988019409220.1" -> "5080291979216001926.1" [label="[fffftttt]"];
"5080291979216001926.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"non-cs\")
#5080291979216001926.1#"];
"5080291979216001926.1" -> "897139957786517708.1" [style="dotted"] [label="[tffftttf]"];
"897139957786517708.1" -> "-7824571988019409220.1" [style="dotted"] [label="[ftffttft]"];
"897139957786517708.1" -> "-1529149678030047826.1" [style="dotted"] [label="[ffffttft]"];
"5080291979216001926.1" -> "4489738507008100367.1" [style="dotted"] [label="[fffftttf]"];
"-7824571988019409220.1" -> "-8272984896072399991.1" [label="[fffftttt]"];
"-8272984896072399991.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"csentry\")
#-8272984896072399991.1#"];
"-8272984896072399991.1" -> "4489738507008100367.1" [style="dotted"] [label="[fffftftt]"];
"-8272984896072399991.1" -> "-9137926712894874236.0" [style="dotted"] [label="[fftftftt]"];
"-8272984896072399991.1" -> "-9137926712894874236.1" [style="dotted"] [label="[fftftftt]"];
"-7824571988019409220.1" -> "-7824571988019409220.1" [label="[fffftttt]"];
"-7824571988019409220.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"non-cs\")
#-7824571988019409220.1#"];
"4489738507008100367.1" -> "1143334986297935796.0" [label="[fftftftf]"];
"1143334986297935796.0" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"cs\")
#1143334986297935796.0#"];
"4489738507008100367.1" -> "1143334986297935796.1" [label="[fftftftf]"];
"1143334986297935796.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"cs\")
#1143334986297935796.1#"];
"4489738507008100367.1" -> "-1529149678030047826.1" [label="[tffftftf]"];
"-1529149678030047826.1" [label="pc = (p1 :> \"cs\" @@ p2 :> \"csentry\")
#-1529149678030047826.1#"];
"4489738507008100367.1" -> "4489738507008100367.1" [label="[fffftftf]"];
"4489738507008100367.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"csentry\")
#4489738507008100367.1#"];
"-9137926712894874236.0" -> "1143334986297935796.2" [label="[fffffttt]"];
"1143334986297935796.2" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"cs\")
#1143334986297935796.2#"];
"-9137926712894874236.0" -> "-9137926712894874236.2" [label="[fffffttt]"];
"-9137926712894874236.2" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"cs\")
#-9137926712894874236.2#"];
"-9137926712894874236.2" -> "1143334986297935796.2" [style="dotted"] [label="[fffffttt]"];
"-9137926712894874236.1" -> "1143334986297935796.0" [label="[fffffttt]"];
"1143334986297935796.0" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"cs\")
#1143334986297935796.0#"];
"-9137926712894874236.1" -> "1143334986297935796.1" [label="[fffffttt]"];
"1143334986297935796.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"cs\")
#1143334986297935796.1#"];
"-9137926712894874236.1" -> "-9137926712894874236.0" [label="[fffffttt]"];
"-9137926712894874236.0" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"cs\")
#-9137926712894874236.0#"];
"-9137926712894874236.1" -> "-9137926712894874236.1" [label="[fffffttt]"];
"-9137926712894874236.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"cs\")
#-9137926712894874236.1#"];
"-9137926712894874236.1" -> "-7824571988019409220.1" [label="[ffftfttt]"];
"-7824571988019409220.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"non-cs\")
#-7824571988019409220.1#"];
"-1529149678030047826.1" -> "-8272984896072399991.1" [label="[ftffttft]"];
"-8272984896072399991.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"csentry\")
#-8272984896072399991.1#"];
"-1529149678030047826.1" -> "-1529149678030047826.1" [label="[ffffttft]"];
"-1529149678030047826.1" [label="pc = (p1 :> \"cs\" @@ p2 :> \"csentry\")
#-1529149678030047826.1#"];
"1143334986297935796.0" -> "1143334986297935796.2" [label="[fffffttt]"];
"1143334986297935796.2" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"cs\")
#1143334986297935796.2#"];
"1143334986297935796.1" -> "1143334986297935796.0" [label="[fffffttt]"];
"1143334986297935796.0" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"cs\")
#1143334986297935796.0#"];
"1143334986297935796.1" -> "1143334986297935796.1" [label="[fffffttt]"];
"1143334986297935796.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"cs\")
#1143334986297935796.1#"];
"1143334986297935796.1" -> "5080291979216001926.1" [label="[ffftfttt]"];
"5080291979216001926.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"non-cs\")
#5080291979216001926.1#"];
"1143334986297935796.2" -> "1143334986297935796.2" [label="[fffffttt]"];
"1143334986297935796.2" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"cs\")
#1143334986297935796.2#"];
}
}" [label="[ftffttft]"];
"-8272984896072399991.1" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"csentry\")
#-8272984896072399991.1#"];
"-1529149678030047826.1" -> "-1529149678030047826.0" [label="[ffffttft]"];
"-1529149678030047826.0" [label="pc = (p1 :> \"cs\" @@ p2 :> \"csentry\")
#-1529149678030047826.0#"];
"-1529149678030047826.1" -> "-1529149678030047826.1" [label="[ffffttft]"];
"-1529149678030047826.1" [label="pc = (p1 :> \"cs\" @@ p2 :> \"csentry\")
#-1529149678030047826.1#"];
"-1529149678030047826.2" -> "-8272984896072399991.2" [label="[ftffttft]"];
"-8272984896072399991.2" [label="pc = (p1 :> \"non-cs\" @@ p2 :> \"csentry\")
#-8272984896072399991.2#"];
"-1529149678030047826.2" -> "-1529149678030047826.2" [label="[ffffttft]"];
"-1529149678030047826.2" [label="pc = (p1 :> \"cs\" @@ p2 :> \"csentry\")
#-1529149678030047826.2#"];
"1143334986297935796.1" -> "1143334986297935796.1" [label="[fffffttt]"];
"1143334986297935796.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"cs\")
#1143334986297935796.1#"];
"1143334986297935796.1" -> "5080291979216001926.1" [label="[ffftfttt]"];
"5080291979216001926.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"non-cs\")
#5080291979216001926.1#"];
}
}")
#1143334986297935796.1#"];
"1143334986297935796.1" -> "5080291979216001926.0" [label="[ffftfttt]"];
"5080291979216001926.0" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"non-cs\")
#5080291979216001926.0#"];
"1143334986297935796.1" -> "5080291979216001926.1" [label="[ffftfttt]"];
"5080291979216001926.1" [label="pc = (p1 :> \"csentry\" @@ p2 :> \"non-cs\")
#5080291979216001926.1#"];
}
}
\ No newline at end of file
------------------------ MODULE MutualExclusionSpec ------------------------
\* Module MutualExclusionSpec provides general specification for mutual-exclusion problem.
\* Procs is set of processes.
\* Every process is assumed to loop and enter into "cs" state on every interation.
\* Non-critical state is represented as "non-cs".
\* When process decides it want to enter into critical-section, it first goes into "csentry" state.
CONSTANT Procs
VARIABLES pc
TypeOK == pc \in [Procs -> {"non-cs", "csentry", "cs"}]
vars == <<pc>>
\* All processes start from non-critical section.
Init == pc \in [Procs -> {"non-cs"}]
\* WantCS(proc) is action when proc decides that it wants to enter into critical section.
WantCS(proc) ==
/\ pc[proc] = "non-cs"
/\ pc' = [pc EXCEPT ![proc] = "csentry"]
\* EnterCS(proc) is action when proc enters critical section.
EnterCS(proc) ==
/\ pc[proc] = "csentry"
/\ \A i \in Procs \ {proc} : pc[i] /= "cs"
/\ pc' = [pc EXCEPT ![proc] = "cs"]
\* ExitCS(proc) is action when proc leaves critical section.
ExitCS(proc) ==
/\ pc[proc] = "cs"
/\ pc' = [pc EXCEPT ![proc] = "non-cs"]
Next == \E i \in Procs: WantCS(i) \/ EnterCS(i) \/ ExitCS(i)
Spec == /\ Init
/\ [][Next]_vars
/\ \A i \in Procs: ( \* fairness
\* not fair for WantCS - it can pause and even hang there
/\ SF_vars(EnterCS(i))
/\ SF_vars(ExitCS(i)))
----------------
\* MutualExclusion is invariant indicating that no two processes can be inside critical section at the same time.
MutualExclusion == \A i,j \in Procs: (i /= j) => ~((pc[i] = "cs") /\ (pc[j] = "cs"))
\* Liveness is temporal property indicating that every process has a chance to enter critical section and leaves it.
Liveness == \A i \in Procs:
/\ (pc[i] = "csentry") ~> (pc[i] = "cs")
/\ (pc[i] = "cs") ~> (pc[i] = "non-cs")
THEOREM Spec => []TypeOK
THEOREM Spec => []MutualExclusion
THEOREM Spec => Liveness
=============================================================================
\* Modification History
\* Last modified Wed Feb 09 19:11:11 MSK 2022 by kirr
\* Created Wed Feb 09 13:11:29 MSK 2022 by kirr
This is pdfTeX, Version 3.14159265-2.6-1.40.21 (TeX Live 2020/Debian) (preloaded format=pdflatex 2021.6.9) 9 FEB 2022 16:11
This is pdfTeX, Version 3.14159265-2.6-1.40.21 (TeX Live 2020/Debian) (preloaded format=pdflatex 2021.6.9) 9 FEB 2022 19:09
entering extended mode
restricted \write18 enabled.
%&-line parsing enabled.
......@@ -119,12 +119,12 @@ LaTeX Font Info: External font `cmex10' loaded for size
LaTeX Font Info: External font `cmex10' loaded for size
(Font) <6> on input line 948.
Overfull \hbox (51.37141pt too wide) in paragraph at lines 1019--1027
Overfull \hbox (51.37141pt too wide) in paragraph at lines 1043--1051
[][][][]
[]
Overfull \hbox (56.19621pt too wide) in paragraph at lines 1029--1035
Overfull \hbox (56.19621pt too wide) in paragraph at lines 1053--1059
[][][][]
[]
......@@ -135,7 +135,7 @@ Overfull \hbox (56.19621pt too wide) in paragraph at lines 1029--1035
Here is how much of TeX's memory you used:
1309 strings out of 479304
18453 string characters out of 5869780
311203 words of memory out of 5000000
313203 words of memory out of 5000000
18536 multiletter control sequences out of 15000+600000
408900 words of font info for 48 fonts, out of 8000000 for 9000
1141 hyphenation exceptions out of 8191
......@@ -154,7 +154,7 @@ onts/cm/cmsy7.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm
.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmti7.pfb></
usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmti8.pfb></usr/sha
re/texlive/texmf-dist/fonts/type1/public/amsfonts/latxfont/lasy10.pfb>
Output written on MutualExclusionSpec.pdf (2 pages, 143431 bytes).
Output written on MutualExclusionSpec.pdf (2 pages, 145773 bytes).
PDF statistics:
71 PDF objects out of 1000 (max. 8388607)
51 compressed objects within 1 object stream
......
......@@ -961,14 +961,20 @@
\@xx{}%
\@x{}%
\@y{\@s{0}%
States besides non-critical are represented as \ensuremath{\@w{non-cs}}.
Non-critical state is represented as \ensuremath{\@w{non-cs}}.
}%
\@xx{}%
\@x{}%
\@y{\@s{0}%
When process decides it want to enter into critical-section, it first goes
into \ensuremath{\@w{csentry}} state.
}%
\@xx{}%
\@x{ {\CONSTANT} Procs}%
\@x{ {\VARIABLES} pc}%
\@pvspace{8.0pt}%
\@x{ TypeOK \.{\defeq} pc \.{\in} [ Procs \.{\rightarrow} \{\@w{non{-}cs}
,\,\@w{cs} \} ]}%
,\,\@w{csentry} ,\,\@w{cs} \} ]}%
\@pvspace{8.0pt}%
\@x{ vars \.{\defeq} {\langle} pc {\rangle}}%
\@pvspace{8.0pt}%
......@@ -980,13 +986,26 @@
\@x{ Init \.{\defeq} pc \.{\in} [ Procs \.{\rightarrow} \{\@w{non{-}cs} \} ]}%
\@pvspace{8.0pt}%
\@x{}%
\@y{\@s{0}%
\ensuremath{WantCS(proc)} is action when \ensuremath{proc} decides that it
wants to enter into critical section.
}%
\@xx{}%
\@x{ WantCS ( proc ) \.{\defeq}}%
\@x{\@s{46.00} \.{\land}\@s{3.37} pc [ proc ] \.{=}\@w{non{-}cs}}%
\@x{\@s{46.00} \.{\land}\@s{3.37} pc \.{'} \.{=} [ pc {\EXCEPT} {\bang} [
proc ] \.{=}\@w{csentry} ]}%
\@pvspace{8.0pt}%
\@x{}%
\@y{\@s{0}%
\ensuremath{EnterCS(proc)} is action when \ensuremath{proc} enters critical
section.
}%
\@xx{}%
\@x{ EnterCS ( proc ) \.{\defeq}}%
\@x{\@s{42.40} \.{\land} \A\, i \.{\in} Procs \.{:} pc [ i ] \.{\neq}\@w{cs}}%
\@x{\@s{42.40} \.{\land} pc [ proc ] \.{=}\@w{csentry}}%
\@x{\@s{42.40} \.{\land} \A\, i \.{\in} Procs \.{\,\backslash\,} proc \.{:}
pc [ i ] \.{\neq}\@w{cs}}%
\@x{\@s{42.40} \.{\land} pc \.{'} \.{=} [ pc {\EXCEPT} {\bang} [ proc ]
\.{=}\@w{cs} ]}%
\@pvspace{8.0pt}%
......@@ -1001,8 +1020,8 @@
\@x{\@s{39.77} \.{\land}\@s{3.37} pc \.{'} \.{=} [ pc {\EXCEPT} {\bang} [
proc ] \.{=}\@w{non{-}cs} ]}%
\@pvspace{8.0pt}%
\@x{ Next \.{\defeq} \E\, i \.{\in} Procs \.{:} EnterCS ( i ) \.{\lor} ExitCS
( i )}%
\@x{ Next \.{\defeq} \E\, i \.{\in} Procs \.{:} WantCS ( i ) \.{\lor} EnterCS
( i ) \.{\lor} ExitCS ( i )}%
\@pvspace{16.0pt}%
\@x{ Spec\@s{1.46} \.{\defeq} \.{\land} Init}%
\@x{\@s{39.83} \.{\land} {\Box} [ Next ]_{ vars}}%
......@@ -1011,6 +1030,11 @@
fairness
}%
\@xx{}%
\@x{\@s{55.04}}%
\@y{\@s{0}%
no fair for \ensuremath{WantCS \.{-}} it can pause and even hang there
}%
\@xx{}%
\@x{\@s{55.04} \.{\land} {\SF}_{ vars} ( EnterCS ( i ) )}%
\@x{\@s{55.04} \.{\land} {\SF}_{ vars} ( ExitCS ( i ) ) )}%
\@pvspace{8.0pt}%
......@@ -1033,8 +1057,8 @@
}%
\@xx{}%
\@x{ Liveness \.{\defeq} \A\, i \.{\in} Procs \.{:}}%
\@x{\@s{80.25} \.{\land} ( pc [ i ] \.{=}\@w{non{-}cs} ) \.{\leadsto} ( pc [
i ] \.{=}\@w{cs} )}%
\@x{\@s{80.25} \.{\land} ( pc [ i ] \.{=}\@w{csentry} ) \.{\leadsto} ( pc [ i
] \.{=}\@w{cs} )}%
\@x{\@s{80.25} \.{\land} ( pc [ i ] \.{=}\@w{cs} ) \.{\leadsto} ( pc [ i ]
\.{=}\@w{non{-}cs} )}%
\@pvspace{16.0pt}%
......@@ -1050,7 +1074,7 @@
\end{cpar}%
\begin{cpar}{0}{F}{F}{0}{0}{}%
\ensuremath{\.{\,\backslash\,}\.{*}} Last modified \ensuremath{Wed}
\ensuremath{Feb} 09 16:11:00 \ensuremath{MSK} 2022 by \ensuremath{kirr
\ensuremath{Feb} 09 19:09:40 \ensuremath{MSK} 2022 by \ensuremath{kirr
}%
\end{cpar}%
\begin{cpar}{0}{F}{F}{0}{0}{}%
......
......@@ -13,7 +13,7 @@
<stringAttribute key="distributedTLC" value="off"/>
<stringAttribute key="distributedTLCVMArgs" value=""/>
<intAttribute key="fpBits" value="1"/>
<intAttribute key="fpIndex" value="23"/>
<intAttribute key="fpIndex" value="100"/>
<booleanAttribute key="fpIndexRandom" value="true"/>
<intAttribute key="maxHeapSize" value="25"/>
<intAttribute key="maxSetSize" value="1000000"/>
......@@ -36,7 +36,7 @@
<stringAttribute key="modelExpressionEval" value=""/>
<stringAttribute key="modelParameterActionConstraint" value=""/>
<listAttribute key="modelParameterConstants">
<listEntry value="Procs;;{p1, p2, p3};1;0"/>
<listEntry value="Procs;;{p1, p2};1;0"/>
</listAttribute>
<stringAttribute key="modelParameterContraint" value=""/>
<listAttribute key="modelParameterDefinitions"/>
......
......@@ -3,7 +3,7 @@
<stringAttribute key="TLCCmdLineParameters" value=""/>
<stringAttribute key="alias" value=""/>
<intAttribute key="collectCoverage" value="1"/>
<stringAttribute key="configurationName" value="Model_1_SnapShot_1644411650324"/>
<stringAttribute key="configurationName" value="Model_1_SnapShot_1644423036861"/>
<booleanAttribute key="deferLiveness" value="false"/>
<intAttribute key="dfidDepth" value="100"/>
<booleanAttribute key="dfidMode" value="false"/>
......@@ -13,7 +13,7 @@
<stringAttribute key="distributedTLC" value="off"/>
<stringAttribute key="distributedTLCVMArgs" value=""/>
<intAttribute key="fpBits" value="1"/>
<intAttribute key="fpIndex" value="53"/>
<intAttribute key="fpIndex" value="88"/>
<booleanAttribute key="fpIndexRandom" value="true"/>
<intAttribute key="maxHeapSize" value="25"/>
<intAttribute key="maxSetSize" value="1000000"/>
......
......@@ -3,7 +3,7 @@
<stringAttribute key="TLCCmdLineParameters" value=""/>
<stringAttribute key="alias" value=""/>
<intAttribute key="collectCoverage" value="1"/>
<stringAttribute key="configurationName" value="Model_1_SnapShot_1644411621096"/>
<stringAttribute key="configurationName" value="Model_1_SnapShot_1644423074362"/>
<booleanAttribute key="deferLiveness" value="false"/>
<intAttribute key="dfidDepth" value="100"/>
<booleanAttribute key="dfidMode" value="false"/>
......@@ -13,7 +13,7 @@
<stringAttribute key="distributedTLC" value="off"/>
<stringAttribute key="distributedTLCVMArgs" value=""/>
<intAttribute key="fpBits" value="1"/>
<intAttribute key="fpIndex" value="91"/>
<intAttribute key="fpIndex" value="88"/>
<booleanAttribute key="fpIndexRandom" value="true"/>
<intAttribute key="maxHeapSize" value="25"/>
<intAttribute key="maxSetSize" value="1000000"/>
......@@ -36,7 +36,7 @@
<stringAttribute key="modelExpressionEval" value=""/>
<stringAttribute key="modelParameterActionConstraint" value=""/>
<listAttribute key="modelParameterConstants">
<listEntry value="Procs;;{0, 1};0;0"/>
<listEntry value="Procs;;{p1, p2};1;0"/>
</listAttribute>
<stringAttribute key="modelParameterContraint" value=""/>
<listAttribute key="modelParameterDefinitions"/>
......
......@@ -3,7 +3,7 @@
<stringAttribute key="TLCCmdLineParameters" value=""/>
<stringAttribute key="alias" value=""/>
<intAttribute key="collectCoverage" value="1"/>
<stringAttribute key="configurationName" value="Model_1_SnapShot_1644411040591"/>
<stringAttribute key="configurationName" value="Model_1_SnapShot_1644423104766"/>
<booleanAttribute key="deferLiveness" value="false"/>
<intAttribute key="dfidDepth" value="100"/>
<booleanAttribute key="dfidMode" value="false"/>
......@@ -13,7 +13,7 @@
<stringAttribute key="distributedTLC" value="off"/>
<stringAttribute key="distributedTLCVMArgs" value=""/>
<intAttribute key="fpBits" value="1"/>
<intAttribute key="fpIndex" value="91"/>
<intAttribute key="fpIndex" value="14"/>
<booleanAttribute key="fpIndexRandom" value="true"/>
<intAttribute key="maxHeapSize" value="25"/>
<intAttribute key="maxSetSize" value="1000000"/>
......@@ -36,7 +36,7 @@
<stringAttribute key="modelExpressionEval" value=""/>
<stringAttribute key="modelParameterActionConstraint" value=""/>
<listAttribute key="modelParameterConstants">
<listEntry value="Procs;;{0, 1};0;0"/>
<listEntry value="Procs;;{p1, p2, p3};1;0"/>
</listAttribute>
<stringAttribute key="modelParameterContraint" value=""/>
<listAttribute key="modelParameterDefinitions"/>
......
......@@ -3,7 +3,7 @@
<stringAttribute key="TLCCmdLineParameters" value=""/>
<stringAttribute key="alias" value=""/>
<intAttribute key="collectCoverage" value="1"/>
<stringAttribute key="configurationName" value="Model_1_SnapShot_1644410890486"/>
<stringAttribute key="configurationName" value="Model_1_SnapShot_1644423129307"/>
<booleanAttribute key="deferLiveness" value="false"/>
<intAttribute key="dfidDepth" value="100"/>
<booleanAttribute key="dfidMode" value="false"/>
......@@ -13,7 +13,7 @@
<stringAttribute key="distributedTLC" value="off"/>
<stringAttribute key="distributedTLCVMArgs" value=""/>
<intAttribute key="fpBits" value="1"/>
<intAttribute key="fpIndex" value="91"/>
<intAttribute key="fpIndex" value="100"/>
<booleanAttribute key="fpIndexRandom" value="true"/>
<intAttribute key="maxHeapSize" value="25"/>
<intAttribute key="maxSetSize" value="1000000"/>
......@@ -36,7 +36,7 @@
<stringAttribute key="modelExpressionEval" value=""/>
<stringAttribute key="modelParameterActionConstraint" value=""/>
<listAttribute key="modelParameterConstants">
<listEntry value="Procs;;{0, 1};0;0"/>
<listEntry value="Procs;;{p1, p2};1;0"/>
</listAttribute>
<stringAttribute key="modelParameterContraint" value=""/>
<listAttribute key="modelParameterDefinitions"/>
......
......@@ -3,7 +3,7 @@
<stringAttribute key="TLCCmdLineParameters" value=""/>
<stringAttribute key="alias" value=""/>
<intAttribute key="collectCoverage" value="1"/>
<stringAttribute key="configurationName" value="Model_1_SnapShot_1644410902348"/>
<stringAttribute key="configurationName" value="Model_1_SnapShot_1644425760325"/>
<booleanAttribute key="deferLiveness" value="false"/>
<intAttribute key="dfidDepth" value="100"/>
<booleanAttribute key="dfidMode" value="false"/>
......@@ -13,7 +13,7 @@
<stringAttribute key="distributedTLC" value="off"/>
<stringAttribute key="distributedTLCVMArgs" value=""/>
<intAttribute key="fpBits" value="1"/>
<intAttribute key="fpIndex" value="91"/>
<intAttribute key="fpIndex" value="100"/>
<booleanAttribute key="fpIndexRandom" value="true"/>
<intAttribute key="maxHeapSize" value="25"/>
<intAttribute key="maxSetSize" value="1000000"/>
......@@ -36,7 +36,7 @@
<stringAttribute key="modelExpressionEval" value=""/>
<stringAttribute key="modelParameterActionConstraint" value=""/>
<listAttribute key="modelParameterConstants">
<listEntry value="Procs;;{0, 1};0;0"/>
<listEntry value="Procs;;{p1, p2};1;0"/>
</listAttribute>
<stringAttribute key="modelParameterContraint" value=""/>
<listAttribute key="modelParameterDefinitions"/>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment