tl: implement suffix operator normal form
* spot/tl/Makefile.am: New sonf files * spot/tl/sonf.cc,spot/tl/sonf.hh: Here. * python/spot/impl.i: include sonf.hh header * doc/spot.bib: add entry for the SONF paper * tests/python/formulas.ipynb: show sample usage * tests/python/spot.py: test automata equivalence before/after SONF * NEWS: mention the change
This commit is contained in:
parent
c7201e4776
commit
0505ee9310
9 changed files with 348 additions and 0 deletions
|
|
@ -976,6 +976,62 @@
|
|||
"print(ap) # print as a string\n",
|
||||
"display(ap) # LaTeX-style, for notebooks"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"Converting to Suffix Operator Normal Form:"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 27,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/latex": [
|
||||
"$\\mathsf{G} (\\{x^{\\star}\\}\\mathrel{\\Box\\kern-1.7pt\\raise.4pt\\hbox{$\\mathord{\\rightarrow}$}} \\mathsf{F} a)$"
|
||||
],
|
||||
"text/plain": [
|
||||
"spot.formula(\"G({x[*]}[]-> Fa)\")"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"text/latex": [
|
||||
"$\\mathsf{G} \\mathit{sonf\\_}_{0} \\land \\mathsf{G} (\\lnot \\mathit{sonf\\_}_{1} \\lor \\mathsf{F} a) \\land \\mathsf{G} (\\lnot \\mathit{sonf\\_}_{0} \\lor (\\{x^{\\star}\\}\\mathrel{\\Box\\kern-1.7pt\\raise.4pt\\hbox{$\\mathord{\\rightarrow}$}} \\mathit{sonf\\_}_{1}))$"
|
||||
],
|
||||
"text/plain": [
|
||||
"spot.formula(\"Gsonf_0 & G(!sonf_1 | Fa) & G(!sonf_0 | ({x[*]}[]-> sonf_1))\")"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"('sonf_0', 'sonf_1')"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"f = spot.formula('G({x*} []-> Fa)')\n",
|
||||
"display(f)\n",
|
||||
"\n",
|
||||
"# In addition to the formula, returns a list of newly introduced APs\n",
|
||||
"f, aps = spot.suffix_operator_normal_form(f, 'sonf_')\n",
|
||||
"display(f)\n",
|
||||
"display(aps)"
|
||||
]
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue