<?xml version="1.0" encoding="iso-8859-1"?>
<pnml>
<net id="Net-One" type="P/T net">
<labels x="557" y="49" width="340" height="611" border="true">
<text>This is an example net to introduce the modelling, verification and simulation features of TAPAAL.

The circles are called places and rectangles transitions. They are connected either by standard arcs from place to transition or transition to place, or they can be connected by transport arcs (these arcs always come in pairs) like from P1 to T3 and T3 to P6.

Behaviour of the net is given by tokens. Each place can store any number of tokens and each token has its own real-time age. In our example there is initially one token of age 0 in the place Start.

A transition can fire if in every of its input places there is at least one token of an age that fits into the interval placed on the corresponding arc. When transition fires a new token of age 0 is produced to any of its output places for the normal arcs. In case of trasport arc, the age of the token remains the same as the age of the consumed token.

Finally, the place P2 contains so-called invariant &lt;=5. This means that any token in that place cannot be older than 5 time units. So another behaviour of the net are so called time-delays. This means that all tokens in the net grow older by a some amount of time, as long as none of the invariants are violated.

-----------------------------

In our example we might want to know if it is possible by doing some time delays and transition firings to place a token into the place Target.

The query "Target Reachable" in the upper right corner expressis this property. It moreover asks for fastest such trace. By clicking on "Verify" the verification will begin and ouput the trace allowing us to place a token into the place Targe. By clicking on the symbols &gt; and &lt; one can move back and force in the trace and investigate the intermediate markings.

One may observe that two extra tokens are needed in the intermediate markings in order to reach the place Target. Indeed, this number of extra tokens is specified in the Query dialog and by clicking on "Check Boundedness", one can verify that 2 extra tokens are really enough for an exact analysis.</text>
</labels>
<place id="P0">
<graphics>
<position x="135.0" y="30.0"/>
</graphics>
<name>
<value>Start</value>
<graphics>
<offset x="-5.0" y="35.0"/>
</graphics>
</name>
<initialMarking>
<value>1</value>
<graphics>
<offset x="0.0" y="0.0"/>
</graphics>
</initialMarking>
<capacity>
<value>0</value>
</capacity>
<invariant>
<value>&lt;inf</value>
</invariant>
</place>
<place id="P1">
<graphics>
<position x="45.0" y="195.0"/>
</graphics>
<name>
<value>P1</value>
<graphics>
<offset x="-5.0" y="35.0"/>
</graphics>
</name>
<initialMarking>
<value>0</value>
<graphics>
<offset x="0.0" y="0.0"/>
</graphics>
</initialMarking>
<capacity>
<value>0</value>
</capacity>
<invariant>
<value>&lt;inf</value>
</invariant>
</place>
<place id="P2">
<graphics>
<position x="360.0" y="195.0"/>
</graphics>
<name>
<value>P2</value>
<graphics>
<offset x="-5.0" y="35.0"/>
</graphics>
</name>
<initialMarking>
<value>0</value>
<graphics>
<offset x="0.0" y="0.0"/>
</graphics>
</initialMarking>
<capacity>
<value>0</value>
</capacity>
<invariant>
<value>&lt;=5</value>
</invariant>
</place>
<place id="P3">
<graphics>
<position x="225.0" y="390.0"/>
</graphics>
<name>
<value>P3</value>
<graphics>
<offset x="-5.0" y="35.0"/>
</graphics>
</name>
<initialMarking>
<value>0</value>
<graphics>
<offset x="0.0" y="0.0"/>
</graphics>
</initialMarking>
<capacity>
<value>0</value>
</capacity>
<invariant>
<value>&lt;inf</value>
</invariant>
</place>
<place id="P4">
<graphics>
<position x="495.0" y="390.0"/>
</graphics>
<name>
<value>P4</value>
<graphics>
<offset x="-5.0" y="35.0"/>
</graphics>
</name>
<initialMarking>
<value>0</value>
<graphics>
<offset x="0.0" y="0.0"/>
</graphics>
</initialMarking>
<capacity>
<value>0</value>
</capacity>
<invariant>
<value>&lt;inf</value>
</invariant>
</place>
<place id="P5">
<graphics>
<position x="360.0" y="570.0"/>
</graphics>
<name>
<value>P5</value>
<graphics>
<offset x="-5.0" y="35.0"/>
</graphics>
</name>
<initialMarking>
<value>0</value>
<graphics>
<offset x="0.0" y="0.0"/>
</graphics>
</initialMarking>
<capacity>
<value>0</value>
</capacity>
<invariant>
<value>&lt;inf</value>
</invariant>
</place>
<place id="P6">
<graphics>
<position x="45.0" y="390.0"/>
</graphics>
<name>
<value>P6</value>
<graphics>
<offset x="-5.0" y="35.0"/>
</graphics>
</name>
<initialMarking>
<value>0</value>
<graphics>
<offset x="0.0" y="0.0"/>
</graphics>
</initialMarking>
<capacity>
<value>0</value>
</capacity>
<invariant>
<value>&lt;inf</value>
</invariant>
</place>
<place id="P7">
<graphics>
<position x="210.0" y="735.0"/>
</graphics>
<name>
<value>Target</value>
<graphics>
<offset x="-5.0" y="35.0"/>
</graphics>
</name>
<initialMarking>
<value>0</value>
<graphics>
<offset x="0.0" y="0.0"/>
</graphics>
</initialMarking>
<capacity>
<value>0</value>
</capacity>
<invariant>
<value>&lt;inf</value>
</invariant>
</place>
<transition id="T0">
<graphics>
<position x="135.0" y="120.0"/>
</graphics>
<name>
<value>T0</value>
<graphics>
<offset x="-5.0" y="35.0"/>
</graphics>
</name>
<orientation>
<value>180</value>
</orientation>
<rate>
<value>1.0</value>
</rate>
<timed>
<value>false</value>
</timed>
<infiniteServer>
<value>false</value>
</infiniteServer>
<priority>
<value>1</value>
</priority>
</transition>
<transition id="T1">
<graphics>
<position x="360.0" y="300.0"/>
</graphics>
<name>
<value>T1</value>
<graphics>
<offset x="-5.0" y="35.0"/>
</graphics>
</name>
<orientation>
<value>90</value>
</orientation>
<rate>
<value>1.0</value>
</rate>
<timed>
<value>false</value>
</timed>
<infiniteServer>
<value>false</value>
</infiniteServer>
<priority>
<value>1</value>
</priority>
</transition>
<transition id="T2">
<graphics>
<position x="360.0" y="480.0"/>
</graphics>
<name>
<value>T2</value>
<graphics>
<offset x="-5.0" y="35.0"/>
</graphics>
</name>
<orientation>
<value>90</value>
</orientation>
<rate>
<value>1.0</value>
</rate>
<timed>
<value>false</value>
</timed>
<infiniteServer>
<value>false</value>
</infiniteServer>
<priority>
<value>1</value>
</priority>
</transition>
<transition id="T3">
<graphics>
<position x="45.0" y="300.0"/>
</graphics>
<name>
<value>T3</value>
<graphics>
<offset x="-5.0" y="35.0"/>
</graphics>
</name>
<orientation>
<value>90</value>
</orientation>
<rate>
<value>1.0</value>
</rate>
<timed>
<value>false</value>
</timed>
<infiniteServer>
<value>false</value>
</infiniteServer>
<priority>
<value>1</value>
</priority>
</transition>
<transition id="T4">
<graphics>
<position x="210.0" y="630.0"/>
</graphics>
<name>
<value>T4</value>
<graphics>
<offset x="-5.0" y="35.0"/>
</graphics>
</name>
<orientation>
<value>0</value>
</orientation>
<rate>
<value>1.0</value>
</rate>
<timed>
<value>false</value>
</timed>
<infiniteServer>
<value>false</value>
</infiniteServer>
<priority>
<value>1</value>
</priority>
</transition>
<arc id="P0 to T0" source="P0" target="T0">
<graphics/>
<inscription>
<value>[2,4]</value>
<graphics/>
</inscription>
<tagged>
<value>false</value>
</tagged>
<arcpath id="000" x="144" y="56" curvePoint="false"/>
<arcpath id="001" x="146" y="116" curvePoint="false"/>
<type value="timed"/>
</arc>
<arc id="P1 to T3" source="P1" target="T3">
<graphics/>
<inscription>
<value>[4,7]:1</value>
<graphics/>
</inscription>
<tagged>
<value>false</value>
</tagged>
<arcpath id="000" x="54" y="221" curvePoint="false"/>
<arcpath id="001" x="56" y="306" curvePoint="false"/>
<type value="transport"/>
</arc>
<arc id="P2 to T1" source="P2" target="T1">
<graphics/>
<inscription>
<value>[2,6]</value>
<graphics/>
</inscription>
<tagged>
<value>false</value>
</tagged>
<arcpath id="000" x="369" y="221" curvePoint="false"/>
<arcpath id="001" x="371" y="306" curvePoint="false"/>
<type value="timed"/>
</arc>
<arc id="P3 to T2" source="P3" target="T2">
<graphics/>
<inscription>
<value>[2,5]</value>
<graphics/>
</inscription>
<tagged>
<value>false</value>
</tagged>
<arcpath id="000" x="249" y="410" curvePoint="false"/>
<arcpath id="001" x="366" y="486" curvePoint="false"/>
<type value="timed"/>
</arc>
<arc id="P4 to T2" source="P4" target="T2">
<graphics/>
<inscription>
<value>[1,3]</value>
<graphics/>
</inscription>
<tagged>
<value>false</value>
</tagged>
<arcpath id="000" x="494" y="409" curvePoint="false"/>
<arcpath id="001" x="376" y="487" curvePoint="false"/>
<type value="timed"/>
</arc>
<arc id="P5 to T4" source="P5" target="T4">
<graphics/>
<inscription>
<value>[1,7]</value>
<graphics/>
</inscription>
<tagged>
<value>false</value>
</tagged>
<arcpath id="000" x="357" y="587" curvePoint="false"/>
<arcpath id="001" x="226" y="642" curvePoint="false"/>
<type value="timed"/>
</arc>
<arc id="P6 to T4" source="P6" target="T4">
<graphics/>
<inscription>
<value>[8,9]</value>
<graphics/>
</inscription>
<tagged>
<value>false</value>
</tagged>
<arcpath id="000" x="64" y="414" curvePoint="false"/>
<arcpath id="001" x="216" y="642" curvePoint="false"/>
<type value="timed"/>
</arc>
<arc id="T0 to P1" source="T0" target="P1">
<graphics/>
<inscription>
<value>1</value>
<graphics/>
</inscription>
<tagged>
<value>false</value>
</tagged>
<arcpath id="000" x="142" y="131" curvePoint="false"/>
<arcpath id="001" x="68" y="197" curvePoint="false"/>
<type value="normal"/>
</arc>
<arc id="T0 to P2" source="T0" target="P2">
<graphics/>
<inscription>
<value>1</value>
<graphics/>
</inscription>
<tagged>
<value>false</value>
</tagged>
<arcpath id="000" x="152" y="131" curvePoint="false"/>
<arcpath id="001" x="357" y="202" curvePoint="false"/>
<type value="normal"/>
</arc>
<arc id="T1 to P3" source="T1" target="P3">
<graphics/>
<inscription>
<value>1</value>
<graphics/>
</inscription>
<tagged>
<value>false</value>
</tagged>
<arcpath id="000" x="366" y="316" curvePoint="false"/>
<arcpath id="001" x="249" y="393" curvePoint="false"/>
<type value="normal"/>
</arc>
<arc id="T1 to P4" source="T1" target="P4">
<graphics/>
<inscription>
<value>1</value>
<graphics/>
</inscription>
<tagged>
<value>false</value>
</tagged>
<arcpath id="000" x="376" y="317" curvePoint="false"/>
<arcpath id="001" x="494" y="393" curvePoint="false"/>
<type value="normal"/>
</arc>
<arc id="T2 to P5" source="T2" target="P5">
<graphics/>
<inscription>
<value>1</value>
<graphics/>
</inscription>
<tagged>
<value>false</value>
</tagged>
<arcpath id="000" x="371" y="496" curvePoint="false"/>
<arcpath id="001" x="371" y="567" curvePoint="false"/>
<type value="normal"/>
</arc>
<arc id="T3 to P6" source="T3" target="P6">
<graphics/>
<inscription>
<value>[0,inf):1</value>
<graphics/>
</inscription>
<tagged>
<value>false</value>
</tagged>
<arcpath id="000" x="56" y="316" curvePoint="false"/>
<arcpath id="001" x="57" y="312" curvePoint="false"/>
<arcpath id="002" x="57" y="387" curvePoint="false"/>
<type value="transport"/>
</arc>
<arc id="T4 to P7" source="T4" target="P7">
<graphics/>
<inscription>
<value>1</value>
<graphics/>
</inscription>
<tagged>
<value>false</value>
</tagged>
<arcpath id="000" x="222" y="657" curvePoint="false"/>
<arcpath id="001" x="222" y="732" curvePoint="false"/>
<type value="normal"/>
</arc>
<queries name="Target Reachable" traceOption="FASTEST" searchOption="BFS" hashTableSize="null" extrapolationOption="null" reductionOption="NAIVE">
<capacity>
<value>2</value>
</capacity>
<query>
<value>E&lt;&gt;(( Target == 1 ))</value>
</query>
</queries>
</net>
</pnml>

