* wrap/python/tests/decompose.ipynb: Typos.

This commit is contained in:
Alexandre Duret-Lutz 2015-11-09 10:01:03 +01:00
parent 458fc53b71
commit e206b5ef33

View file

@ -17,7 +17,8 @@
"pygments_lexer": "ipython3", "pygments_lexer": "ipython3",
"version": "3.4.3+" "version": "3.4.3+"
}, },
"name": "" "name": "",
"signature": "sha256:80d55ee45e6262dfcb29a53e9df5940e6a49ea8584e10e97963faeee4ace738a"
}, },
"nbformat": 3, "nbformat": 3,
"nbformat_minor": 0, "nbformat_minor": 0,
@ -41,11 +42,14 @@
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {},
"source": [ "source": [
"This notebook demonstrates how to use the `strength_decompose()` function to split an automaton in up to three automata capturing different behaviors. This is based on the paper [Strength-based decomposition of the property B\u00fcchi automaton for faster model checking](https://www.lrde.epita.fr/~adl/dl/adl/renault.13.tacas.pdf) (TACAS'13).\n", "This notebook demonstrates how to use the `decompose_strength()` function to split an automaton in up to three automata capturing different behaviors. This is based on the paper [Strength-based decomposition of the property B\u00fcchi automaton for faster model checking](https://www.lrde.epita.fr/~adl/dl/adl/renault.13.tacas.pdf) (TACAS'13).\n",
"\n",
"This page uses the Python bindings, but the same decompositions can be performed from the shell using [`autfilt`](https://spot.lrde.epita.fr/autfilt.html) and its `--decompose-strength` option.\n",
"\n", "\n",
"# Basics\n", "# Basics\n",
"\n", "\n",
"Let's define the following strengths of SCCs:\n", "Let's define the following strengths of SCCs:\n",
"\n",
"- an accepting SCC is **weak** if all its transitions belong to the same acceptance sets\n", "- an accepting SCC is **weak** if all its transitions belong to the same acceptance sets\n",
"- an accepting SCC is **terminal** if it is *weak* and complete (i.e. from any state, you can stay in the SCC by reading any word)\n", "- an accepting SCC is **terminal** if it is *weak* and complete (i.e. from any state, you can stay in the SCC by reading any word)\n",
"- an accepting SCC is **strictly weak** if it is *weak* and not complete (in other words: *weak* but not *terminal*)\n", "- an accepting SCC is **strictly weak** if it is *weak* and not complete (in other words: *weak* but not *terminal*)\n",
@ -199,7 +203,7 @@
"</svg>" "</svg>"
], ],
"text": [ "text": [
"<IPython.core.display.SVG object>" "<IPython.core.display.SVG at 0x7fd4fcc39198>"
] ]
} }
], ],
@ -209,9 +213,10 @@
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {},
"source": [ "source": [
"The `strength_decompose()` function takes an automaton, and a string specifying which strength to preserve. \n", "The `decompose_strength()` function takes an automaton, and a string specifying which strength to preserve. \n",
"\n", "\n",
"The letters used for this specification are as follows:\n", "The letters used for this specification are as follows:\n",
"\n",
"- `t`: terminal\n", "- `t`: terminal\n",
"- `w`: strictly weak\n", "- `w`: strictly weak\n",
"- `s`: strong\n", "- `s`: strong\n",
@ -309,7 +314,7 @@
"</svg>" "</svg>"
], ],
"text": [ "text": [
"<IPython.core.display.SVG object>" "<IPython.core.display.SVG at 0x7fd505085f60>"
] ]
} }
], ],
@ -444,7 +449,7 @@
"</svg>" "</svg>"
], ],
"text": [ "text": [
"<IPython.core.display.SVG object>" "<IPython.core.display.SVG at 0x7fd4fc0f2978>"
] ]
} }
], ],
@ -528,7 +533,7 @@
"</svg>" "</svg>"
], ],
"text": [ "text": [
"<IPython.core.display.SVG object>" "<IPython.core.display.SVG at 0x7fd4fc1329b0>"
] ]
} }
], ],
@ -599,7 +604,7 @@
"</svg>\n" "</svg>\n"
], ],
"text": [ "text": [
"<spot_impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fe318ffbf00> >" "<spot_impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fd4fcbe7720> >"
] ]
} }
], ],
@ -708,7 +713,7 @@
"</svg>" "</svg>"
], ],
"text": [ "text": [
"<IPython.core.display.SVG object>" "<IPython.core.display.SVG at 0x7fd505047cf8>"
] ]
}, },
{ {
@ -825,7 +830,7 @@
"</svg>" "</svg>"
], ],
"text": [ "text": [
"<IPython.core.display.SVG object>" "<IPython.core.display.SVG at 0x7fd5050739e8>"
] ]
}, },
{ {
@ -961,7 +966,7 @@
"</svg>" "</svg>"
], ],
"text": [ "text": [
"<IPython.core.display.SVG object>" "<IPython.core.display.SVG at 0x7fd504fe65f8>"
] ]
} }
], ],
@ -1359,7 +1364,7 @@
"</svg>" "</svg>"
], ],
"text": [ "text": [
"<IPython.core.display.SVG object>" "<IPython.core.display.SVG at 0x7fd505047a58>"
] ]
} }
], ],
@ -1677,7 +1682,7 @@
"</svg>" "</svg>"
], ],
"text": [ "text": [
"<IPython.core.display.SVG object>" "<IPython.core.display.SVG at 0x7fd504fe6588>"
] ]
}, },
{ {
@ -1867,7 +1872,7 @@
"</svg>" "</svg>"
], ],
"text": [ "text": [
"<IPython.core.display.SVG object>" "<IPython.core.display.SVG at 0x7fd4fd89fa20>"
] ]
}, },
{ {
@ -2040,7 +2045,7 @@
"</svg>" "</svg>"
], ],
"text": [ "text": [
"<IPython.core.display.SVG object>" "<IPython.core.display.SVG at 0x7fd504fe6588>"
] ]
} }
], ],
@ -2368,7 +2373,7 @@
"</svg>" "</svg>"
], ],
"text": [ "text": [
"<IPython.core.display.SVG object>" "<IPython.core.display.SVG at 0x7fd504fe68d0>"
] ]
} }
], ],
@ -2505,7 +2510,7 @@
"</svg>" "</svg>"
], ],
"text": [ "text": [
"<IPython.core.display.SVG object>" "<IPython.core.display.SVG at 0x7fd4fd89fa20>"
] ]
}, },
{ {
@ -2617,7 +2622,7 @@
"</svg>" "</svg>"
], ],
"text": [ "text": [
"<IPython.core.display.SVG object>" "<IPython.core.display.SVG at 0x7fd4fd89fa20>"
] ]
}, },
{ {
@ -2790,7 +2795,7 @@
"</svg>" "</svg>"
], ],
"text": [ "text": [
"<IPython.core.display.SVG object>" "<IPython.core.display.SVG at 0x7fd4fd89fa20>"
] ]
} }
], ],
@ -3140,7 +3145,7 @@
"</svg>" "</svg>"
], ],
"text": [ "text": [
"<IPython.core.display.SVG object>" "<IPython.core.display.SVG at 0x7fd505029630>"
] ]
} }
], ],
@ -3423,7 +3428,7 @@
"</svg>" "</svg>"
], ],
"text": [ "text": [
"<IPython.core.display.SVG object>" "<IPython.core.display.SVG at 0x7fd4fc077d30>"
] ]
}, },
{ {
@ -3568,7 +3573,7 @@
"</svg>" "</svg>"
], ],
"text": [ "text": [
"<IPython.core.display.SVG object>" "<IPython.core.display.SVG at 0x7fd4fd89fcf8>"
] ]
}, },
{ {
@ -3698,7 +3703,7 @@
"</svg>" "</svg>"
], ],
"text": [ "text": [
"<IPython.core.display.SVG object>" "<IPython.core.display.SVG at 0x7fd4fc077d30>"
] ]
} }
], ],
@ -3994,7 +3999,7 @@
"</svg>" "</svg>"
], ],
"text": [ "text": [
"<IPython.core.display.SVG object>" "<IPython.core.display.SVG at 0x7fd505029b70>"
] ]
} }
], ],
@ -4100,7 +4105,7 @@
"</svg>" "</svg>"
], ],
"text": [ "text": [
"<IPython.core.display.SVG object>" "<IPython.core.display.SVG at 0x7fd4fc0d9748>"
] ]
} }
], ],
@ -4185,7 +4190,7 @@
"</svg>" "</svg>"
], ],
"text": [ "text": [
"<IPython.core.display.SVG object>" "<IPython.core.display.SVG at 0x7fd4fc0bcd68>"
] ]
}, },
{ {
@ -4244,7 +4249,7 @@
"</svg>" "</svg>"
], ],
"text": [ "text": [
"<IPython.core.display.SVG object>" "<IPython.core.display.SVG at 0x7fd4e6906710>"
] ]
} }
], ],
@ -4323,7 +4328,7 @@
"</svg>" "</svg>"
], ],
"text": [ "text": [
"<IPython.core.display.SVG object>" "<IPython.core.display.SVG at 0x7fd4fc0bc978>"
] ]
} }
], ],
@ -4471,7 +4476,7 @@
"</svg>" "</svg>"
], ],
"text": [ "text": [
"<IPython.core.display.SVG object>" "<IPython.core.display.SVG at 0x7fd505081208>"
] ]
} }
], ],
@ -4596,7 +4601,7 @@
"</svg>" "</svg>"
], ],
"text": [ "text": [
"<IPython.core.display.SVG object>" "<IPython.core.display.SVG at 0x7fd50502ee10>"
] ]
}, },
{ {
@ -4677,7 +4682,7 @@
"</svg>" "</svg>"
], ],
"text": [ "text": [
"<IPython.core.display.SVG object>" "<IPython.core.display.SVG at 0x7fd505029a20>"
] ]
}, },
{ {
@ -4787,7 +4792,7 @@
"</svg>" "</svg>"
], ],
"text": [ "text": [
"<IPython.core.display.SVG object>" "<IPython.core.display.SVG at 0x7fd4fc0dc470>"
] ]
} }
], ],