<?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>/*
Model of a controller that tries to get the value of x inside
the given interval and keep it there indefinitely.
The value of x is non-deterministically chosen at the beginning
and the other process non-deterministically changes.
Actions of both of the processes is limited by time
(lesser changes to x take less time).
*/

int x;</declaration><template><name x="5" y="5">Breaker</name><declaration>// Place local declarations here.
clock t;</declaration><location id="id0" x="-168" y="-328"><name x="-178" y="-358">I</name></location><location id="id1" x="56" y="-264"><name x="46" y="-294">env3</name></location><location id="id2" x="-72" y="-512"><name x="-82" y="-542">env4</name></location><location id="id3" x="-200" y="-120"><name x="-224" y="-104">env2</name></location><location id="id4" x="-368" y="-376"><name x="-424" y="-384">env1</name></location><init ref="id0"/><transition><source ref="id1"/><target ref="id0"/><label kind="guard" x="-88" y="-272">t &gt;= 10</label><nail x="-56" y="-280"/></transition><transition><source ref="id2"/><target ref="id0"/><label kind="guard" x="-112" y="-384">t  &gt;= 10</label><nail x="-104" y="-408"/></transition><transition><source ref="id3"/><target ref="id0"/><label kind="guard" x="-248" y="-240">t &gt;= 6</label><nail x="-192" y="-240"/></transition><transition><source ref="id4"/><target ref="id0"/><label kind="guard" x="-264" y="-384">t &gt;= 2</label><nail x="-240" y="-360"/></transition><transition><source ref="id0"/><target ref="id1"/><label kind="assignment" x="-56" y="-336">x = x * 2 - 20</label><nail x="-40" y="-312"/></transition><transition><source ref="id0"/><target ref="id2"/><label kind="assignment" x="-224" y="-480">x += 10, t=0</label><nail x="-144" y="-440"/></transition><transition><source ref="id0"/><target ref="id3"/><label kind="assignment" x="-168" y="-192">x -= 5, t = 0</label><nail x="-168" y="-224"/></transition><transition><source ref="id0"/><target ref="id4"/><label kind="assignment" x="-328" y="-320">x += 2, t = 0</label><nail x="-272" y="-328"/></transition></template><template><name>Fixer</name><declaration>clock t;</declaration><location id="id5" x="-128" y="-376"><name x="-138" y="-406">fix2</name><label kind="invariant" x="-104" y="-384">t &lt;= 12</label></location><location id="id6" x="0" y="-80"><name x="-16" y="-64">fix3</name><label kind="invariant" x="24" y="-80">t &lt;= 5</label></location><location id="id7" x="-472" y="-104"><name x="-480" y="-88">fix1</name><label kind="invariant" x="-544" y="-112">t &lt;= 8</label></location><location id="id8" x="-264" y="-184"><name x="-274" y="-214">I</name><committed/></location><init ref="id8"/><transition><source ref="id5"/><target ref="id8"/><label kind="guard" x="-248" y="-312">t &gt;= 12</label><nail x="-200" y="-288"/></transition><transition><source ref="id6"/><target ref="id8"/><label kind="guard" x="-168" y="-96">t &gt;= 5</label><nail x="-136" y="-104"/></transition><transition><source ref="id7"/><target ref="id8"/><label kind="guard" x="-392" y="-120">t &gt;= 8</label><nail x="-360" y="-136"/></transition><transition><source ref="id8"/><target ref="id5"/><label kind="guard" x="-192" y="-256">x &lt; 20 &amp;&amp; x &gt; 10</label><label kind="assignment" x="-184" y="-240">x += x/2, t = 0</label><nail x="-176" y="-272"/></transition><transition><source ref="id8"/><target ref="id6"/><label kind="guard" x="-168" y="-176">(x &lt; 40 &amp;&amp; x &gt;= 20) || x &lt;=10</label><label kind="assignment" x="-112" y="-160">x += 3, t = 0</label><nail x="-96" y="-128"/></transition><transition><source ref="id8"/><target ref="id7"/><label kind="guard" x="-440" y="-192">x &gt;= 40</label><label kind="assignment" x="-456" y="-176">x -= 9, t = 0</label><nail x="-376" y="-152"/></transition></template><template><name>Startup</name><parameter>const int min, const int max</parameter><location id="id9" x="80" y="-16"></location><location id="id10" x="-64" y="-16"><committed/></location><init ref="id10"/><transition><source ref="id10"/><target ref="id9"/><label kind="select" x="-48" y="-56">k :int[min, max]</label><label kind="assignment" x="-16" y="-40">x = k</label></transition></template><system>// Place template instantiations here.
F = Fixer();
B = Breaker();
S = Startup(-5, 10);

// List one or more processes to be composed into a system.
system B &lt; F &lt; S;</system></nta>