1
<?xml version="1.0" encoding="utf-8"?><!DOCTYPE nta PUBLIC '-//Uppaal Team//DTD Flat System 1.1//EN' 'http://www.it.uu.se/research/group/darts/uppaal/flat-1_1.dtd'><nta><declaration>//Insert declarations of global clocks, variables, constants and channels.
1
<?xml version="1.0" encoding="utf-8"?>
2
<!DOCTYPE nta PUBLIC '-//Uppaal Team//DTD Flat System 1.1//EN' 'http://www.it.uu.se/research/group/darts/uppaal/flat-1_1.dtd'>
4
<declaration>//Insert declarations of global clocks, variables, constants and channels.
12
15
broadcast chan receive[N];
15
</declaration><template><name>Node</name><parameter>const id_t id, const id_t pr</parameter><declaration>id_t cur := pr;
21
<parameter>const id_t id, const id_t pr</parameter>
22
<declaration>id_t cur := pr;
17
clock x;</declaration><location id="id0" x="-736" y="-152"><name x="-760" y="-136">Leader</name><committed/></location><location id="id1" x="-736" y="-288"><label kind="invariant" x="-720" y="-312">x<=MaxD</label></location><init ref="id1"/><transition><source ref="id1"/><target ref="id1"/><label kind="select" x="-808" y="-392">e:id_t</label><label kind="guard" x="-752" y="-392">e>pr</label><label kind="synchronisation" x="-776" y="-368">send[id][e]?</label><label kind="assignment" x="-704" y="-392">cur=e</label><nail x="-664" y="-368"/><nail x="-808" y="-368"/></transition><transition><source ref="id1"/><target ref="id0"/><label kind="synchronisation" x="-776" y="-224">send[id][pr]?</label></transition><transition><source ref="id1"/><target ref="id1"/><label kind="synchronisation" x="-664" y="-280">send[(id+1)%N][cur]!</label><label kind="assignment" x="-664" y="-264">x.reset()</label><nail x="-632" y="-288"/><nail x="-632" y="-200"/></transition><transition><source ref="id1"/><target ref="id1"/><label kind="select" x="-816" y="-312">e:id_t</label><label kind="guard" x="-856" y="-312">e<pr</label><label kind="synchronisation" x="-872" y="-280">send[id][e]?</label><nail x="-840" y="-288"/><nail x="-840" y="-200"/></transition></template><system>//Insert process assignments.
24
clock x;</declaration>
25
<location id="id0" x="-736" y="-152">
26
<name x="-760" y="-136">Leader</name>
29
<location id="id1" x="-736" y="-288">
35
<label kind="select" x="-808" y="-392">e:id_t</label>
36
<label kind="guard" x="-752" y="-392">e>pr</label>
37
<label kind="synchronisation" x="-776" y="-368">send[id][e]?</label>
38
<label kind="assignment" x="-704" y="-392">cur=e</label>
39
<nail x="-664" y="-368"/>
40
<nail x="-808" y="-368"/>
45
<label kind="synchronisation" x="-776" y="-224">send[id][pr]?</label>
50
<label kind="synchronisation" x="-664" y="-280">send[(id+1)%N][cur]!</label>
51
<label kind="assignment" x="-664" y="-264">x.reset()</label>
52
<nail x="-632" y="-288"/>
53
<nail x="-632" y="-200"/>
58
<label kind="select" x="-816" y="-312">e:id_t</label>
59
<label kind="guard" x="-856" y="-312">e<pr</label>
60
<label kind="synchronisation" x="-872" y="-280">send[id][e]?</label>
61
<nail x="-840" y="-288"/>
62
<nail x="-840" y="-200"/>
65
<system>//Insert process assignments.
27
75
//Edit system definition.
28
system N0, N1, N2, N3, N4, N5;</system></nta>
b'\\ No newline at end of file'
76
system N0, N1, N2, N3, N4, N5;</system>