-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathExample6_Bound.tla
49 lines (41 loc) · 1.56 KB
/
Example6_Bound.tla
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
---------------------------- MODULE Example6_Bound --------------------------------
\**********************************************************************************
\* A 4-bound Petri Net
\*
\* `. ---------------------
\* | |
\* | -- --
\* v |t1| -> p2 -> |t3|
\* -> -- --
\* p1
\* -> -- --
\* ^ |t2| -> p3 -> |t4|
\* | -- --
\* | |
\* ---------------------
\* .'
\**********************************************************************************
Places == {"p1", "p2", "p3"} (* Define the net. *)
Transitions == {"t1", "t2", "t3", "t4"}
Arcs == [
p1 |-> {"t1", "t2"},
p2 |-> {"t3"},
p3 |-> {"t4"},
t1 |-> {"p2"},
t2 |-> {"p3"},
t3 |-> {"p1"},
t4 |-> {"p1"}
]
ArcWeights == <<>> \* Unspecified arc weights default to 1.
InitialMarking == [p2 |-> 2, p3 |-> 2]
VARIABLE Marking
PN == INSTANCE PetriNet (* Instantiate it within a namespace. *)
Spec == PN!Spec (* Make Spec and Invariants available for the config file. *)
Invariants == PN!Invariants
-----------------------------------------------------------------------------------
\**********************************************************************************
\* Properties
\**********************************************************************************
\* Petri Net is 4-bound. Asserting 3-bound would fail.
BoundFour == PN!Bound(4)
===================================================================================