Commit dc1f7133 authored by Alexandre Duret-Lutz's avatar Alexandre Duret-Lutz
Browse files

* tests/python/stutter-inv.ipynb: Add link to on-line translator.

parent d67053a2
Pipeline #5135 passed with stages
in 190 minutes and 56 seconds
......@@ -177,10 +177,14 @@
explain_stut('GF(a & Xb)')
```
%% Cell type:markdown id: tags:
Note that a variant of the above explanation procedure is already integerated in our [on-line LTL translator tool](https://spot.lrde.epita.fr/app/) (use the <i>study</i> tab).
%% Cell type:markdown id: tags:
## Detecting stutter-invariant states
Even if the language of an automaton is not sutter invariant, some of its states may recognize a stutter-invariant language. (We assume the language of a state is the language the automaton would have when starting from this state.)
%% Cell type:markdown id: tags:
......@@ -244,11 +248,11 @@
![](data:image/svg+xml;utf8,<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN""http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><!-- Generated by graphviz version 2.40.1 (20161225.0304)--><!-- Pages: 1 --><svg width="553pt" height="227pt"viewBox="0.00 0.00 553.48 226.74" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 222.7401)"><polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-222.7401 549.4802,-222.7401 549.4802,4 -4,4"/><text text-anchor="start" x="251.7401" y="-204.5401" font-family="Lato" font-size="14.00" fill="#000000">Inf(</text><text text-anchor="start" x="273.7401" y="-204.5401" font-family="Lato" font-size="14.00" fill="#1f78b4">⓿</text><text text-anchor="start" x="289.7401" y="-204.5401" font-family="Lato" font-size="14.00" fill="#000000">)</text><text text-anchor="start" x="249.7401" y="-190.5401" font-family="Lato" font-size="14.00" fill="#000000">[Büchi]</text><!-- I --><!-- 0 --><g id="node2" class="node"><title>0</title><ellipse fill="#ffffaa" stroke="#000000" cx="56" cy="-84.8701" rx="18" ry="18"/><text text-anchor="middle" x="56" y="-81.1701" font-family="Lato" font-size="14.00" fill="#000000">0</text></g><!-- I&#45;&gt;0 --><g id="edge1" class="edge"><title>I&#45;&gt;0</title><path fill="none" stroke="#000000" d="M1.1233,-84.8701C4.178,-84.8701 17.9448,-84.8701 30.9241,-84.8701"/><polygon fill="#000000" stroke="#000000" points="37.9807,-84.8701 30.9808,-88.0202 34.4807,-84.8701 30.9807,-84.8702 30.9807,-84.8702 30.9807,-84.8702 34.4807,-84.8701 30.9807,-81.7202 37.9807,-84.8701 37.9807,-84.8701"/></g><!-- 0&#45;&gt;0 --><g id="edge2" class="edge"><title>0&#45;&gt;0</title><path fill="none" stroke="#000000" d="M49.6208,-101.9074C48.3189,-111.728 50.4453,-120.8701 56,-120.8701 60.166,-120.8701 62.4036,-115.7276 62.7128,-109.0134"/><polygon fill="#000000" stroke="#000000" points="62.3792,-101.9074 65.8541,-108.7519 62.5434,-105.4035 62.7076,-108.8997 62.7076,-108.8997 62.7076,-108.8997 62.5434,-105.4035 59.561,-109.0474 62.3792,-101.9074 62.3792,-101.9074"/><text text-anchor="start" x="51.5" y="-124.6701" font-family="Lato" font-size="14.00" fill="#000000">1</text></g><!-- 1 --><g id="node3" class="node"><title>1</title><ellipse fill="#ffffaa" stroke="#e31a1c" stroke-width="2" cx="165" cy="-111.8701" rx="18" ry="18"/><text text-anchor="start" x="160.5" y="-108.1701" font-family="Lato" font-size="14.00" fill="#000000">1</text></g><!-- 0&#45;&gt;1 --><g id="edge3" class="edge"><title>0&#45;&gt;1</title><path fill="none" stroke="#000000" d="M73.5127,-89.2081C91.6004,-93.6885 119.9794,-100.7182 140.3337,-105.7601"/><polygon fill="#000000" stroke="#000000" points="147.1686,-107.4531 139.6165,-108.8275 143.7713,-106.6115 140.374,-105.77 140.374,-105.77 140.374,-105.77 143.7713,-106.6115 141.1314,-102.7124 147.1686,-107.4531 147.1686,-107.4531"/><text text-anchor="start" x="107" y="-106.6701" font-family="Lato" font-size="14.00" fill="#000000">a</text></g><!-- 2 --><g id="node4" class="node"><title>2</title><ellipse fill="#ffffaa" stroke="#000000" cx="165" cy="-57.8701" rx="18" ry="18"/><text text-anchor="middle" x="165" y="-54.1701" font-family="Lato" font-size="14.00" fill="#000000">2</text></g><!-- 0&#45;&gt;2 --><g id="edge4" class="edge"><title>0&#45;&gt;2</title><path fill="none" stroke="#000000" d="M73.5753,-80.4642C79.4345,-78.9986 85.9976,-77.3604 92,-75.8701 108.0742,-71.879 126.1473,-67.4224 140.2892,-63.9421"/><polygon fill="#000000" stroke="#000000" points="147.2947,-62.2188 141.2498,-66.9498 143.896,-63.0549 140.4973,-63.891 140.4973,-63.891 140.4973,-63.891 143.896,-63.0549 139.7449,-60.8322 147.2947,-62.2188 147.2947,-62.2188"/><text text-anchor="start" x="92" y="-79.6701" font-family="Lato" font-size="14.00" fill="#000000">a &amp; !b</text></g><!-- 3 --><g id="node5" class="node"><title>3</title><ellipse fill="#ffffaa" stroke="#e31a1c" stroke-width="2" cx="274" cy="-116.8701" rx="18" ry="18"/><text text-anchor="middle" x="274" y="-113.1701" font-family="Lato" font-size="14.00" fill="#000000">3</text></g><!-- 1&#45;&gt;3 --><g id="edge5" class="edge"><title>1&#45;&gt;3</title><path fill="none" stroke="#000000" d="M182.9991,-112.6957C200.9861,-113.5208 228.7902,-114.7962 248.9323,-115.7202"/><polygon fill="#000000" stroke="#000000" points="255.9741,-116.0432 248.8371,-118.869 252.4778,-115.8828 248.9815,-115.7223 248.9815,-115.7223 248.9815,-115.7223 252.4778,-115.8828 249.1259,-112.5756 255.9741,-116.0432 255.9741,-116.0432"/><text text-anchor="start" x="214" y="-119.6701" font-family="Lato" font-size="14.00" fill="#000000">!a</text></g><!-- 5 --><g id="node6" class="node"><title>5</title><ellipse fill="#ffffaa" stroke="#e31a1c" stroke-width="2" cx="274" cy="-57.8701" rx="18" ry="18"/><text text-anchor="middle" x="274" y="-54.1701" font-family="Lato" font-size="14.00" fill="#000000">5</text></g><!-- 2&#45;&gt;5 --><g id="edge6" class="edge"><title>2&#45;&gt;5</title><path fill="none" stroke="#000000" d="M183.4904,-57.8701C201.3712,-57.8701 228.6126,-57.8701 248.5388,-57.8701"/><polygon fill="#000000" stroke="#000000" points="255.7827,-57.8701 248.7828,-61.0202 252.2827,-57.8701 248.7827,-57.8702 248.7827,-57.8702 248.7827,-57.8702 252.2827,-57.8701 248.7827,-54.7202 255.7827,-57.8701 255.7827,-57.8701"/><text text-anchor="start" x="201" y="-61.6701" font-family="Lato" font-size="14.00" fill="#000000">a &amp; !b</text></g><!-- 3&#45;&gt;3 --><g id="edge7" class="edge"><title>3&#45;&gt;3</title><path fill="none" stroke="#000000" d="M264.7674,-132.4115C262.1685,-142.7787 265.2461,-152.8701 274,-152.8701 280.7022,-152.8701 284.077,-146.9547 284.1245,-139.5291"/><polygon fill="#000000" stroke="#000000" points="283.2326,-132.4115 287.2286,-138.9655 283.6678,-135.8843 284.103,-139.3572 284.103,-139.3572 284.103,-139.3572 283.6678,-135.8843 280.9775,-139.7489 283.2326,-132.4115 283.2326,-132.4115"/><text text-anchor="start" x="269.5" y="-156.6701" font-family="Lato" font-size="14.00" fill="#000000">1</text></g><!-- 4 --><g id="node7" class="node"><title>4</title><ellipse fill="#ffffaa" stroke="#e31a1c" stroke-width="2" cx="391.8701" cy="-122.8701" rx="18" ry="18"/><text text-anchor="middle" x="391.8701" y="-119.1701" font-family="Lato" font-size="14.00" fill="#000000">4</text></g><!-- 3&#45;&gt;4 --><g id="edge8" class="edge"><title>3&#45;&gt;4</title><path fill="none" stroke="#000000" d="M292.1589,-117.7944C312.1173,-118.8104 344.313,-120.4492 366.6998,-121.5888"/><polygon fill="#000000" stroke="#000000" points="373.884,-121.9545 366.7328,-124.7445 370.3885,-121.7765 366.893,-121.5985 366.893,-121.5985 366.893,-121.5985 370.3885,-121.7765 367.0532,-118.4526 373.884,-121.9545 373.884,-121.9545"/><text text-anchor="start" x="311.5" y="-124.6701" font-family="Lato" font-size="14.00" fill="#000000">a &amp; b</text></g><!-- 6 --><g id="node9" class="node"><title>6</title><ellipse fill="#ffffaa" stroke="#e31a1c" stroke-width="2" cx="391.8701" cy="-26.8701" rx="26.7407" ry="26.7407"/><text text-anchor="start" x="387.3701" y="-30.6701" font-family="Lato" font-size="14.00" fill="#000000">6</text><text text-anchor="start" x="383.8701" y="-15.6701" font-family="Lato" font-size="14.00" fill="#1f78b4">⓿</text></g><!-- 5&#45;&gt;6 --><g id="edge10" class="edge"><title>5&#45;&gt;6</title><path fill="none" stroke="#000000" d="M291.6463,-53.229C309.3792,-48.5653 337.1343,-41.2656 358.9445,-35.5295"/><polygon fill="#000000" stroke="#000000" points="365.7966,-33.7274 359.828,-38.5544 362.4117,-34.6177 359.0268,-35.508 359.0268,-35.508 359.0268,-35.508 362.4117,-34.6177 358.2255,-32.4616 365.7966,-33.7274 365.7966,-33.7274"/><text text-anchor="start" x="310" y="-51.6701" font-family="Lato" font-size="14.00" fill="#000000">a &amp; !b</text></g><!-- 7 --><g id="node8" class="node"><title>7</title><ellipse fill="#ffffaa" stroke="#e31a1c" stroke-width="2" cx="518.6102" cy="-122.8701" rx="26.7407" ry="26.7407"/><text text-anchor="start" x="514.1102" y="-126.6701" font-family="Lato" font-size="14.00" fill="#000000">7</text><text text-anchor="start" x="510.6102" y="-111.6701" font-family="Lato" font-size="14.00" fill="#1f78b4">⓿</text></g><!-- 4&#45;&gt;7 --><g id="edge9" class="edge"><title>4&#45;&gt;7</title><path fill="none" stroke="#000000" d="M410.0288,-122.8701C429.3822,-122.8701 460.4746,-122.8701 484.438,-122.8701"/><polygon fill="#000000" stroke="#000000" points="491.6252,-122.8701 484.6253,-126.0202 488.1252,-122.8701 484.6252,-122.8702 484.6252,-122.8702 484.6252,-122.8702 488.1252,-122.8701 484.6252,-119.7202 491.6252,-122.8701 491.6252,-122.8701"/><text text-anchor="start" x="436.7401" y="-126.6701" font-family="Lato" font-size="14.00" fill="#000000">a &amp; !b</text></g><!-- 7&#45;&gt;7 --><g id="edge12" class="edge"><title>7&#45;&gt;7</title><path fill="none" stroke="#000000" d="M507.1668,-147.3317C506.077,-158.2753 509.8914,-167.7401 518.6102,-167.7401 525.2855,-167.7401 529.086,-162.192 530.0116,-154.6799"/><polygon fill="#000000" stroke="#000000" points="530.0535,-147.3317 533.1635,-154.3496 530.0335,-150.8316 530.0135,-154.3316 530.0135,-154.3316 530.0135,-154.3316 530.0335,-150.8316 526.8636,-154.3136 530.0535,-147.3317 530.0535,-147.3317"/><text text-anchor="start" x="515.1102" y="-171.5401" font-family="Lato" font-size="14.00" fill="#000000">a</text></g><!-- 6&#45;&gt;6 --><g id="edge11" class="edge"><title>6&#45;&gt;6</title><path fill="none" stroke="#000000" d="M380.4267,-51.3317C379.3369,-62.2753 383.1513,-71.7401 391.8701,-71.7401 398.5454,-71.7401 402.3458,-66.192 403.2715,-58.6799"/><polygon fill="#000000" stroke="#000000" points="403.3134,-51.3317 406.4234,-58.3496 403.2934,-54.8316 403.2734,-58.3316 403.2734,-58.3316 403.2734,-58.3316 403.2934,-54.8316 400.1235,-58.3136 403.3134,-51.3317 403.3134,-51.3317"/><text text-anchor="start" x="385.3701" y="-75.5401" font-family="Lato" font-size="14.00" fill="#000000">!b</text></g></g></svg>)
%% Cell type:markdown id: tags:
Such a procedure gives us map of where POR can be enabled when model checking using such an automaton.
Such a procedure gives us a map of where POR can be enabled when model checking using this automaton.
%% Cell type:markdown id: tags:
### Second example
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment