<?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.

const int N = 6;
const int MaxD = 2;
const int MinD = 1;

clock time;

typedef int[0,N-1] id_t;

broadcast chan send[N][N];
broadcast chan receive[N];
id_t shared;

</declaration><template><name>Node</name><parameter>const id_t id, const id_t pr</parameter><declaration>id_t cur := pr;

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&lt;=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&gt;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=0</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&lt;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.

N0 := Node(0,1);
N1 := Node(1,0);
N2 := Node(2,5);
N3 := Node(3,4);
N4 := Node(4,2);
N5 := Node(5,3);


//Edit system definition.
system N0, N1, N2, N3, N4, N5;</system></nta>