python: implicit str->formula conversion
* python/spot/impl.i, python/spot/__init__.py: Implement it. * NEWS: Mention it. * tests/python/atva16-fig2a.ipynb, tests/python/atva16-fig2b.ipynb, tests/python/formulas.ipynb, tests/python/ltsmin-dve.ipynb, tests/python/ltsmin-pml.ipynb, tests/python/stutter-inv.ipynb, doc/org/tut02.org: Modernize.
This commit is contained in:
parent
5c1d9c492c
commit
6a808492c1
10 changed files with 168 additions and 210 deletions
|
|
@ -4,7 +4,7 @@
|
|||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"This example is the right part of Fig.2 in our ATVA'16 paper titled \"*Spot 2.0 — a framework for LTL and ω-automata manipulation*\"."
|
||||
"This example is the right part of Fig.2 in our ATVA'16 paper titled [\"*Spot 2.0 — a framework for LTL and ω-automata manipulation*\"](https://www.lrde.epita.fr/~adl/dl/adl/duret.16.atva2.pdf) slightly updated to benefit from improvements in more recent versions of Spot."
|
||||
]
|
||||
},
|
||||
{
|
||||
|
|
@ -15,8 +15,8 @@
|
|||
"source": [
|
||||
"import spot\n",
|
||||
"import spot.ltsmin\n",
|
||||
"spot.setup(show_default='.abr', max_states=10)\n",
|
||||
"# This extra line ensures that our test-suite skips this test if divine is not installed.\n",
|
||||
"spot.setup(show_default='.Ab', max_states=10)\n",
|
||||
"# This extra line ensures that our test suite skips this test if divine is not installed.\n",
|
||||
"spot.ltsmin.require('divine')"
|
||||
]
|
||||
},
|
||||
|
|
@ -82,12 +82,10 @@
|
|||
"<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
|
||||
" -->\n",
|
||||
"<!-- Pages: 1 -->\n",
|
||||
"<svg width=\"734pt\" height=\"177pt\"\n",
|
||||
" viewBox=\"0.00 0.00 734.00 177.35\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
||||
"<g id=\"graph0\" class=\"graph\" transform=\"scale(.5617 .5617) rotate(0) translate(4 311.7401)\">\n",
|
||||
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-311.7401 1302.7729,-311.7401 1302.7729,4 -4,4\"/>\n",
|
||||
"<text text-anchor=\"start\" x=\"646.3864\" y=\"-292.5401\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">t</text>\n",
|
||||
"<text text-anchor=\"start\" x=\"638.3864\" y=\"-277.5401\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[all]</text>\n",
|
||||
"<svg width=\"734pt\" height=\"156pt\"\n",
|
||||
" viewBox=\"0.00 0.00 734.00 156.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
||||
"<g id=\"graph0\" class=\"graph\" transform=\"scale(.5617 .5617) rotate(0) translate(4 273.7401)\">\n",
|
||||
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-273.7401 1302.7729,-273.7401 1302.7729,4 -4,4\"/>\n",
|
||||
"<!-- I -->\n",
|
||||
"<!-- 0 -->\n",
|
||||
"<g id=\"node2\" class=\"node\">\n",
|
||||
|
|
@ -289,7 +287,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.impl.kripke; proxy of <Swig Object of type 'std::shared_ptr< spot::kripke > *' at 0x7f7cac317630> >"
|
||||
"<spot.impl.kripke; proxy of <Swig Object of type 'std::shared_ptr< spot::kripke > *' at 0x7f4dc45626f0> >"
|
||||
]
|
||||
},
|
||||
"execution_count": 4,
|
||||
|
|
@ -308,10 +306,9 @@
|
|||
"outputs": [],
|
||||
"source": [
|
||||
"def model_check(model, f):\n",
|
||||
" f = spot.formula(f)\n",
|
||||
" ss = model.kripke(spot.atomic_prop_collect(f))\n",
|
||||
" nf = spot.formula_Not(f).translate()\n",
|
||||
" return spot.otf_product(ss, nf).is_empty()"
|
||||
" nf = spot.formula.Not(f)\n",
|
||||
" ss = model.kripke(spot.atomic_prop_collect(nf))\n",
|
||||
" return not ss.intersects(nf.translate())"
|
||||
]
|
||||
},
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue