specialize scc_filter for inherently_weak automata
Part of issue #351. * spot/twaalgos/sccfilter.cc, spot/twaalgos/sccfilter.hh: Specialize for inherently-weak automata. * spot/twaalgos/postproc.cc: Simplify. * tests/core/dca2.test, tests/core/parity2.test, tests/core/prodor.test, tests/core/randomize.test, tests/python/automata.ipynb, tests/python/highlighting.ipynb, tests/python/product.ipynb, tests/python/remfin.py, tests/python/stutter-inv.ipynb: Adjust. * NEWS: Mention it.
This commit is contained in:
parent
2fad1ff6de
commit
95d732e331
13 changed files with 1245 additions and 2011 deletions
|
|
@ -240,7 +240,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f0128edca50> >"
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7feca4075120> >"
|
||||
]
|
||||
},
|
||||
"execution_count": 4,
|
||||
|
|
@ -352,7 +352,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.twa; proxy of <Swig Object of type 'std::shared_ptr< spot::twa > *' at 0x7f0128e4cd50> >"
|
||||
"<spot.twa; proxy of <Swig Object of type 'std::shared_ptr< spot::twa > *' at 0x7fec96f528d0> >"
|
||||
]
|
||||
},
|
||||
"execution_count": 5,
|
||||
|
|
@ -462,7 +462,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f0128edca50> >"
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7feca4075120> >"
|
||||
]
|
||||
},
|
||||
"execution_count": 6,
|
||||
|
|
@ -695,7 +695,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f0128e4cab0> >"
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fec96f528a0> >"
|
||||
]
|
||||
},
|
||||
"execution_count": 8,
|
||||
|
|
@ -892,7 +892,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f0128e4cab0> >"
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fec96f528a0> >"
|
||||
]
|
||||
},
|
||||
"execution_count": 11,
|
||||
|
|
@ -977,7 +977,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f0128e6d8a0> >"
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fec96f52a50> >"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
|
|
@ -1032,7 +1032,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f0128e6d780> >"
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fec96f529f0> >"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
|
|
@ -1126,7 +1126,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f0128e6d090> >"
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fec96f52ab0> >"
|
||||
]
|
||||
},
|
||||
"execution_count": 13,
|
||||
|
|
@ -1257,7 +1257,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f0128e6d090> >"
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fec96f52ab0> >"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
|
|
@ -1322,7 +1322,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f0128e6d8a0> >"
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fec96f52a50> >"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
|
|
@ -1377,7 +1377,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f0128e6d780> >"
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fec96f529f0> >"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
|
|
@ -1609,7 +1609,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.impl.twa_product; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_product > *' at 0x7f0128e6db40> >"
|
||||
"<spot.impl.twa_product; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_product > *' at 0x7fec96f52b40> >"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
|
|
@ -1624,14 +1624,11 @@
|
|||
"<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
|
||||
" -->\n",
|
||||
"<!-- Pages: 1 -->\n",
|
||||
"<svg width=\"247pt\" height=\"172pt\"\n",
|
||||
" viewBox=\"0.00 0.00 247.00 172.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
||||
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 168)\">\n",
|
||||
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-168 243,-168 243,4 -4,4\"/>\n",
|
||||
"<text text-anchor=\"start\" x=\"98.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Inf(</text>\n",
|
||||
"<text text-anchor=\"start\" x=\"120.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
||||
"<text text-anchor=\"start\" x=\"136.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
|
||||
"<text text-anchor=\"start\" x=\"96.5\" y=\"-135.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Büchi]</text>\n",
|
||||
"<svg width=\"255pt\" height=\"165pt\"\n",
|
||||
" viewBox=\"0.00 0.00 255.00 164.80\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
||||
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 160.8)\">\n",
|
||||
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-160.8 251,-160.8 251,4 -4,4\"/>\n",
|
||||
"<text text-anchor=\"start\" x=\"100.5\" y=\"-126.6\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Büchi]</text>\n",
|
||||
"<!-- I -->\n",
|
||||
"<!-- 0 -->\n",
|
||||
"<g id=\"node2\" class=\"node\">\n",
|
||||
|
|
@ -1648,14 +1645,15 @@
|
|||
"<!-- 1 -->\n",
|
||||
"<g id=\"node3\" class=\"node\">\n",
|
||||
"<title>1</title>\n",
|
||||
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"221\" cy=\"-62\" rx=\"18\" ry=\"18\"/>\n",
|
||||
"<text text-anchor=\"middle\" x=\"221\" y=\"-58.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
|
||||
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"225\" cy=\"-62\" rx=\"18\" ry=\"18\"/>\n",
|
||||
"<ellipse fill=\"none\" stroke=\"#000000\" cx=\"225\" cy=\"-62\" rx=\"22\" ry=\"22\"/>\n",
|
||||
"<text text-anchor=\"middle\" x=\"225\" y=\"-58.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- 0->1 -->\n",
|
||||
"<g id=\"edge2\" class=\"edge\">\n",
|
||||
"<title>0->1</title>\n",
|
||||
"<path fill=\"none\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M73.4307,-67.3514C86.8358,-71.1754 105.8972,-75.9862 123,-78 139.3316,-79.923 143.6906,-80.1034 160,-78 172.3813,-76.4032 185.8347,-73.0547 196.949,-69.8317\"/>\n",
|
||||
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"203.88,-67.7515 198.081,-72.7808 200.6715,-69.2366 197.3192,-70.2427 197.1754,-69.7638 197.0317,-69.2849 200.384,-68.2788 196.2699,-66.7467 203.88,-67.7515 203.88,-67.7515\"/>\n",
|
||||
"<path fill=\"none\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M73.4307,-67.3514C86.8358,-71.1754 105.8972,-75.9862 123,-78 139.3316,-79.923 143.6752,-79.9797 160,-78 172.3248,-76.5054 185.6823,-73.472 197.0644,-70.4443\"/>\n",
|
||||
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"203.8692,-68.5737 197.9546,-73.4666 200.6269,-69.9836 197.2521,-70.9113 197.1196,-70.4292 196.9871,-69.9471 200.3619,-69.0194 196.2846,-67.3919 203.8692,-68.5737 203.8692,-68.5737\"/>\n",
|
||||
"<text text-anchor=\"start\" x=\"123\" y=\"-82.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a & !b</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- 2 -->\n",
|
||||
|
|
@ -1674,17 +1672,16 @@
|
|||
"<!-- 1->1 -->\n",
|
||||
"<g id=\"edge4\" class=\"edge\">\n",
|
||||
"<title>1->1</title>\n",
|
||||
"<path fill=\"none\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M214.2664,-79.0373C212.8922,-88.8579 215.1367,-98 221,-98 225.3975,-98 227.7594,-92.8576 228.0858,-86.1433\"/>\n",
|
||||
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"227.7336,-79.0373 231.2263,-85.8728 228.4063,-82.5083 228.5796,-86.004 228.0802,-86.0287 227.5808,-86.0535 227.4075,-82.5578 224.934,-86.1847 227.7336,-79.0373 227.7336,-79.0373\"/>\n",
|
||||
"<text text-anchor=\"start\" x=\"217.5\" y=\"-116.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a</text>\n",
|
||||
"<text text-anchor=\"start\" x=\"213\" y=\"-101.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
||||
"<path fill=\"none\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M217.3173,-82.9908C216.3688,-93.0872 218.9297,-102 225,-102 229.5527,-102 232.1314,-96.9866 232.7361,-90.2204\"/>\n",
|
||||
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"232.6827,-82.9908 235.8844,-89.9673 233.2086,-86.487 233.2345,-89.9869 232.7345,-89.9906 232.2345,-89.9943 232.2086,-86.4944 229.5846,-90.0139 232.6827,-82.9908 232.6827,-82.9908\"/>\n",
|
||||
"<text text-anchor=\"start\" x=\"221.5\" y=\"-105.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- 2->1 -->\n",
|
||||
"<g id=\"edge5\" class=\"edge\">\n",
|
||||
"<title>2->1</title>\n",
|
||||
"<path fill=\"none\" stroke=\"#000000\" d=\"M157.588,-26.9041C169.5193,-33.5075 185.9223,-42.5859 199.0562,-49.855\"/>\n",
|
||||
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"205.2072,-53.2593 197.5573,-52.6257 202.1449,-51.5645 199.0827,-49.8696 199.0827,-49.8696 199.0827,-49.8696 202.1449,-51.5645 200.6081,-47.1136 205.2072,-53.2593 205.2072,-53.2593\"/>\n",
|
||||
"<text text-anchor=\"start\" x=\"178\" y=\"-44.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a</text>\n",
|
||||
"<path fill=\"none\" stroke=\"#000000\" d=\"M157.5996,-26.4836C169.3289,-32.6643 185.468,-41.1688 199.0128,-48.3062\"/>\n",
|
||||
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"205.423,-51.684 197.7616,-51.2074 202.3265,-50.0523 199.2301,-48.4206 199.2301,-48.4206 199.2301,-48.4206 202.3265,-50.0523 200.6986,-45.6338 205.423,-51.684 205.423,-51.684\"/>\n",
|
||||
"<text text-anchor=\"start\" x=\"178\" y=\"-43.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- 2->2 -->\n",
|
||||
"<g id=\"edge6\" class=\"edge\">\n",
|
||||
|
|
@ -1697,7 +1694,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f0128e6dba0> >"
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fec96f52c00> >"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
|
|
@ -1794,7 +1791,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f0128e6d180> >"
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fec96f52b10> >"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
|
|
@ -1962,7 +1959,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f0128e6dc30> >"
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fec96f52d80> >"
|
||||
]
|
||||
},
|
||||
"execution_count": 18,
|
||||
|
|
@ -2130,7 +2127,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f0128e6dc30> >"
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fec96f52d80> >"
|
||||
]
|
||||
},
|
||||
"execution_count": 19,
|
||||
|
|
@ -2293,7 +2290,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f0128e6dc30> >"
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fec96f52d80> >"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
|
|
@ -2757,13 +2754,6 @@
|
|||
"spot.highlight_languages(aut)\n",
|
||||
"aut.show('.bas')"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": []
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
|
|
@ -2782,7 +2772,7 @@
|
|||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.6.5"
|
||||
"version": "3.6.5+"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue