python: define our own SVG DisplayObject

This is to workaround differences in minidom's pretty-printing that
occurred between Python 3.7 and 3.8.

* python/spot/jupyter.py (SVG): New class.
* python/spot/__init__.py: Use it.
* tests/python/_altscc.ipynb, tests/python/alternation.ipynb,
tests/python/automata.ipynb, tests/python/formulas.ipynb,
tests/python/gen.ipynb, tests/python/highlighting.ipynb,
tests/python/ltsmin-dve.ipynb, tests/python/ltsmin-pml.ipynb,
tests/python/product.ipynb, tests/python/randaut.ipynb,
tests/python/testingaut.ipynb, tests/python/twagraph-internals.ipynb,
tests/python/word.ipynb: Adjust.
This commit is contained in:
Alexandre Duret-Lutz 2019-12-04 23:05:51 +01:00
parent 317520efe8
commit 71fef458e1
15 changed files with 14765 additions and 14141 deletions

View file

@ -503,184 +503,191 @@
{
"data": {
"image/svg+xml": [
"<svg height=\"404pt\" viewBox=\"0.00 0.00 371.00 404.00\" width=\"371pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g class=\"graph\" id=\"graph0\" transform=\"scale(1 1) rotate(0) translate(4 400)\">\n",
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Title: G Pages: 1 -->\n",
"<svg width=\"371pt\" height=\"404pt\"\n",
" viewBox=\"0.00 0.00 371.00 404.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.0 1.0) rotate(0) translate(4 400)\">\n",
"<title>G</title>\n",
"<polygon fill=\"#ffffff\" points=\"-4,4 -4,-400 367,-400 367,4 -4,4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-400 367,-400 367,4 -4,4\"/>\n",
"<!-- 0 -->\n",
"<g class=\"node\" id=\"node1\">\n",
"<g id=\"node1\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse cx=\"161\" cy=\"-378\" fill=\"none\" rx=\"40.8928\" ry=\"18\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"161\" y=\"-374.3\">EConcat</text>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"161\" cy=\"-378\" rx=\"40.89\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"161\" y=\"-374.3\" font-family=\"Times,serif\" font-size=\"14.00\">EConcat</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g class=\"node\" id=\"node2\">\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse cx=\"129\" cy=\"-306\" fill=\"none\" rx=\"35.9954\" ry=\"18\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"129\" y=\"-302.3\">Concat</text>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"129\" cy=\"-306\" rx=\"36\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"129\" y=\"-302.3\" font-family=\"Times,serif\" font-size=\"14.00\">Concat</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g class=\"edge\" id=\"edge9\">\n",
"<title>0-&gt;1</title>\n",
"<path d=\"M153.0899,-360.2022C149.4473,-352.0064 145.0455,-342.1024 141.0065,-333.0145\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"144.0789,-331.3096 136.8191,-323.593 137.6822,-334.1527 144.0789,-331.3096\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"148.5899\" y=\"-349.0022\">L</text>\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M153.25,-360.05C149.56,-351.97 145.06,-342.12 140.94,-333.11\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"144.02,-331.43 136.67,-323.79 137.65,-334.34 144.02,-331.43\"/>\n",
"<text text-anchor=\"middle\" x=\"148.75\" y=\"-348.85\" font-family=\"Times,serif\" font-size=\"14.00\">L</text>\n",
"</g>\n",
"<!-- 10 -->\n",
"<g class=\"node\" id=\"node11\">\n",
"<g id=\"node11\" class=\"node\">\n",
"<title>10</title>\n",
"<ellipse cx=\"225\" cy=\"-234\" fill=\"none\" rx=\"27\" ry=\"18\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"225\" y=\"-230.3\">And</text>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"225\" cy=\"-234\" rx=\"27\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"225\" y=\"-230.3\" font-family=\"Times,serif\" font-size=\"14.00\">And</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;10 -->\n",
"<g class=\"edge\" id=\"edge14\">\n",
"<title>0-&gt;10</title>\n",
"<path d=\"M168.9762,-360.0535C180.0668,-335.0998 200.23,-289.7326 213.1015,-260.7717\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"216.4602,-261.8321 217.3233,-251.2725 210.0635,-258.9891 216.4602,-261.8321\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"163.9762\" y=\"-348.8535\">R</text>\n",
"<g id=\"edge14\" class=\"edge\">\n",
"<title>0&#45;&gt;10</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M168.59,-360.15C179.67,-335.57 200.36,-289.68 213.36,-260.82\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"216.7,-261.94 217.61,-251.39 210.31,-259.07 216.7,-261.94\"/>\n",
"<text text-anchor=\"middle\" x=\"163.59\" y=\"-348.95\" font-family=\"Times,serif\" font-size=\"14.00\">R</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g class=\"node\" id=\"node3\">\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>2</title>\n",
"<polygon fill=\"none\" points=\"54,-36 0,-36 0,0 54,0 54,-36\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"27\" y=\"-14.3\">a</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"54,-36 0,-36 0,0 54,0 54,-36\"/>\n",
"<text text-anchor=\"middle\" x=\"27\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\">a</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g class=\"edge\" id=\"edge1\">\n",
"<title>1-&gt;2</title>\n",
"<path d=\"M106.7369,-291.6428C93.666,-282.0164 77.9949,-268.1646 69,-252 31.7473,-185.0541 26.4358,-92.1681 26.3309,-46.1548\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"29.8315,-46.0506 26.3923,-36.0296 22.8317,-46.0081 29.8315,-46.0506\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"103.2369\" y=\"-280.4428\">1</text>\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M107.33,-291.42C94.15,-281.99 78.14,-268.23 69,-252 31.37,-185.16 26.28,-91.96 26.29,-46.34\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"29.79,-46.1 26.38,-36.07 22.79,-46.04 29.79,-46.1\"/>\n",
"<text text-anchor=\"middle\" x=\"103.83\" y=\"-280.22\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g class=\"node\" id=\"node4\">\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse cx=\"129\" cy=\"-234\" fill=\"none\" rx=\"51.1914\" ry=\"18\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"129\" y=\"-230.3\">first_match</text>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"129\" cy=\"-234\" rx=\"51.19\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"129\" y=\"-230.3\" font-family=\"Times,serif\" font-size=\"14.00\">first_match</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;3 -->\n",
"<g class=\"edge\" id=\"edge8\">\n",
"<title>1-&gt;3</title>\n",
"<path d=\"M129,-287.8314C129,-280.131 129,-270.9743 129,-262.4166\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"132.5001,-262.4132 129,-252.4133 125.5001,-262.4133 132.5001,-262.4132\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"125.5\" y=\"-276.6314\">2</text>\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>1&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M129,-287.7C129,-279.98 129,-270.71 129,-262.11\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"132.5,-262.1 129,-252.1 125.5,-262.1 132.5,-262.1\"/>\n",
"<text text-anchor=\"middle\" x=\"125.5\" y=\"-276.5\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g class=\"node\" id=\"node5\">\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>4</title>\n",
"<ellipse cx=\"137\" cy=\"-162\" fill=\"none\" rx=\"35.9954\" ry=\"18\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"137\" y=\"-158.3\">Concat</text>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"137\" cy=\"-162\" rx=\"36\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"137\" y=\"-158.3\" font-family=\"Times,serif\" font-size=\"14.00\">Concat</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;4 -->\n",
"<g class=\"edge\" id=\"edge7\">\n",
"<title>3-&gt;4</title>\n",
"<path d=\"M131.0187,-215.8314C131.8743,-208.131 132.8917,-198.9743 133.8426,-190.4166\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"137.3283,-190.7386 134.9541,-180.4133 130.3711,-189.9656 137.3283,-190.7386\" stroke=\"#000000\"/>\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>3&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M130.98,-215.7C131.86,-207.98 132.92,-198.71 133.9,-190.11\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"137.39,-190.44 135.05,-180.1 130.43,-189.64 137.39,-190.44\"/>\n",
"</g>\n",
"<!-- 5 -->\n",
"<g class=\"node\" id=\"node6\">\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>5</title>\n",
"<ellipse cx=\"264\" cy=\"-90\" fill=\"none\" rx=\"27\" ry=\"18\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"264\" y=\"-86.3\">Star</text>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"264\" cy=\"-90\" rx=\"27\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"264\" y=\"-86.3\" font-family=\"Times,serif\" font-size=\"14.00\">Star</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;5 -->\n",
"<g class=\"edge\" id=\"edge3\">\n",
"<title>4-&gt;5</title>\n",
"<path d=\"M160.8877,-148.4574C181.7279,-136.6424 212.0459,-119.4543 234.416,-106.772\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"236.191,-109.7891 243.1641,-101.8125 232.7387,-103.6997 236.191,-109.7891\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"157.3877\" y=\"-137.2574\">1</text>\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>4&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M160.29,-148.16C181.31,-136.57 212.32,-119.48 234.95,-107.01\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"236.72,-110.03 243.78,-102.14 233.34,-103.9 236.72,-110.03\"/>\n",
"<text text-anchor=\"middle\" x=\"156.79\" y=\"-136.96\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 7 -->\n",
"<g class=\"node\" id=\"node8\">\n",
"<g id=\"node8\" class=\"node\">\n",
"<title>7</title>\n",
"<ellipse cx=\"154\" cy=\"-90\" fill=\"none\" rx=\"27\" ry=\"18\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"154\" y=\"-86.3\">Star</text>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"154\" cy=\"-90\" rx=\"27\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"154\" y=\"-86.3\" font-family=\"Times,serif\" font-size=\"14.00\">Star</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;7 -->\n",
"<g class=\"edge\" id=\"edge5\">\n",
"<title>4-&gt;7</title>\n",
"<path d=\"M141.2898,-143.8314C143.1562,-135.9266 145.385,-126.4872 147.4511,-117.7365\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"150.8788,-118.4501 149.7704,-107.9134 144.0661,-116.8415 150.8788,-118.4501\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"137.7898\" y=\"-132.6314\">2</text>\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>4&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M141.12,-144.05C143.01,-136.26 145.3,-126.82 147.42,-118.08\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"150.85,-118.82 149.8,-108.28 144.04,-117.17 150.85,-118.82\"/>\n",
"<text text-anchor=\"middle\" x=\"137.62\" y=\"-132.85\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- 9 -->\n",
"<g class=\"node\" id=\"node10\">\n",
"<g id=\"node10\" class=\"node\">\n",
"<title>9</title>\n",
"<polygon fill=\"none\" points=\"126,-36 72,-36 72,0 126,0 126,-36\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"99\" y=\"-14.3\">d</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"126,-36 72,-36 72,0 126,0 126,-36\"/>\n",
"<text text-anchor=\"middle\" x=\"99\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\">d</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;9 -->\n",
"<g class=\"edge\" id=\"edge6\">\n",
"<title>4-&gt;9</title>\n",
"<path d=\"M130.0742,-144.187C126.1822,-133.7494 121.4322,-120.2494 118,-108 112.2642,-87.5291 107.3558,-64.0109 103.9655,-46.1505\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"107.3661,-45.2923 102.1034,-36.097 100.4832,-46.5672 107.3661,-45.2923\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"126.5742\" y=\"-132.987\">3</text>\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>4&#45;&gt;9</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M130.25,-144C126.32,-133.7 121.48,-120.22 118,-108 112.2,-87.61 107.26,-64.15 103.87,-46.44\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"107.24,-45.42 101.97,-36.23 100.36,-46.7 107.24,-45.42\"/>\n",
"<text text-anchor=\"middle\" x=\"126.75\" y=\"-132.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n",
"</g>\n",
"<!-- 6 -->\n",
"<g class=\"node\" id=\"node7\">\n",
"<g id=\"node7\" class=\"node\">\n",
"<title>6</title>\n",
"<polygon fill=\"none\" points=\"299,-36 245,-36 245,0 299,0 299,-36\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"272\" y=\"-14.3\">b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"299,-36 245,-36 245,0 299,0 299,-36\"/>\n",
"<text text-anchor=\"middle\" x=\"272\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\">b</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;6 -->\n",
"<g class=\"edge\" id=\"edge2\">\n",
"<title>5-&gt;6</title>\n",
"<path d=\"M266.0187,-71.8314C266.8743,-64.131 267.8917,-54.9743 268.8426,-46.4166\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"272.3283,-46.7386 269.9541,-36.4133 265.3711,-45.9656 272.3283,-46.7386\" stroke=\"#000000\"/>\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>5&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M265.98,-71.7C266.86,-63.98 267.92,-54.71 268.9,-46.11\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"272.39,-46.44 270.05,-36.1 265.43,-45.64 272.39,-46.44\"/>\n",
"</g>\n",
"<!-- 8 -->\n",
"<g class=\"node\" id=\"node9\">\n",
"<g id=\"node9\" class=\"node\">\n",
"<title>8</title>\n",
"<polygon fill=\"none\" points=\"213,-36 159,-36 159,0 213,0 213,-36\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"186\" y=\"-14.3\">c</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"213,-36 159,-36 159,0 213,0 213,-36\"/>\n",
"<text text-anchor=\"middle\" x=\"186\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\">c</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;8 -->\n",
"<g class=\"edge\" id=\"edge4\">\n",
"<title>7-&gt;8</title>\n",
"<path d=\"M161.7463,-72.5708C165.398,-64.3544 169.8396,-54.3608 173.9191,-45.1821\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"177.1277,-46.5802 177.9908,-36.0206 170.7311,-43.7372 177.1277,-46.5802\" stroke=\"#000000\"/>\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>7&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M161.58,-72.41C165.22,-64.45 169.67,-54.72 173.77,-45.76\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"177.05,-47 178.02,-36.45 170.68,-44.09 177.05,-47\"/>\n",
"</g>\n",
"<!-- 10&#45;&gt;8 -->\n",
"<g class=\"edge\" id=\"edge10\">\n",
"<title>10-&gt;8</title>\n",
"<path d=\"M221.742,-215.9555C214.9457,-178.3144 199.2143,-91.1867 191.078,-46.1246\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"194.4974,-45.364 189.2762,-36.1451 187.6088,-46.6079 194.4974,-45.364\" stroke=\"#000000\"/>\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>10&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M221.87,-215.85C215.11,-178.75 199.09,-90.81 190.94,-46.1\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"194.38,-45.44 189.14,-36.23 187.49,-46.7 194.38,-45.44\"/>\n",
"</g>\n",
"<!-- 11 -->\n",
"<g class=\"node\" id=\"node12\">\n",
"<g id=\"node12\" class=\"node\">\n",
"<title>11</title>\n",
"<ellipse cx=\"300\" cy=\"-162\" fill=\"none\" rx=\"27\" ry=\"18\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"300\" y=\"-158.3\">G</text>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"300\" cy=\"-162\" rx=\"27\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"300\" y=\"-158.3\" font-family=\"Times,serif\" font-size=\"14.00\">G</text>\n",
"</g>\n",
"<!-- 10&#45;&gt;11 -->\n",
"<g class=\"edge\" id=\"edge13\">\n",
"<title>10-&gt;11</title>\n",
"<path d=\"M240.54,-219.0816C251.099,-208.945 265.2444,-195.3654 277.0892,-183.9944\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"279.6898,-186.3495 284.4799,-176.8993 274.8421,-181.2998 279.6898,-186.3495\" stroke=\"#000000\"/>\n",
"<g id=\"edge13\" class=\"edge\">\n",
"<title>10&#45;&gt;11</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M240.18,-218.83C250.85,-208.87 265.32,-195.37 277.35,-184.14\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"279.92,-186.53 284.85,-177.14 275.15,-181.41 279.92,-186.53\"/>\n",
"</g>\n",
"<!-- 12 -->\n",
"<g class=\"node\" id=\"node13\">\n",
"<g id=\"node13\" class=\"node\">\n",
"<title>12</title>\n",
"<ellipse cx=\"336\" cy=\"-90\" fill=\"none\" rx=\"27\" ry=\"18\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"336\" y=\"-86.3\">F</text>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"336\" cy=\"-90\" rx=\"27\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"336\" y=\"-86.3\" font-family=\"Times,serif\" font-size=\"14.00\">F</text>\n",
"</g>\n",
"<!-- 11&#45;&gt;12 -->\n",
"<g class=\"edge\" id=\"edge12\">\n",
"<title>11-&gt;12</title>\n",
"<path d=\"M308.7146,-144.5708C312.9597,-136.0807 318.1536,-125.6929 322.8663,-116.2674\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"326.024,-117.7782 327.3657,-107.2687 319.763,-114.6477 326.024,-117.7782\" stroke=\"#000000\"/>\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<title>11&#45;&gt;12</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M308.35,-144.76C312.71,-136.28 318.15,-125.71 323.04,-116.2\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"326.23,-117.64 327.7,-107.15 320.01,-114.44 326.23,-117.64\"/>\n",
"</g>\n",
"<!-- 12&#45;&gt;6 -->\n",
"<g class=\"edge\" id=\"edge11\">\n",
"<title>12-&gt;6</title>\n",
"<path d=\"M322.113,-74.3771C314.1445,-65.4125 303.9417,-53.9344 294.8244,-43.6774\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"297.3785,-41.2826 288.1189,-36.1338 292.1466,-45.9332 297.3785,-41.2826\" stroke=\"#000000\"/>\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>12&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M322.43,-74.15C314.3,-65.26 303.76,-53.74 294.43,-43.53\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"296.91,-41.06 287.58,-36.04 291.74,-45.78 296.91,-41.06\"/>\n",
"</g>\n",
"</g>\n",
"</svg>"
"</svg>\n"
],
"text/plain": [
"<IPython.core.display.SVG object>"
"<spot.jupyter.SVG object>"
]
},
"execution_count": 18,
@ -707,16 +714,17 @@
{
"data": {
"image/svg+xml": [
"<svg height=\"210\" version=\"1.1\" width=\"220\" xmlns=\"http://www.w3.org/2000/svg\">\n",
"<polygon fill=\"cyan\" opacity=\".2\" points=\"20,0 200,120 200,210 20,210\"/>\n",
"<polygon fill=\"cyan\" opacity=\".2\" points=\"20,120 155,210 20,210\"/>\n",
"<polygon fill=\"magenta\" opacity=\".15\" points=\"200,0 20,120 20,210 200,210\"/>\n",
"<polygon fill=\"magenta\" opacity=\".15\" points=\"200,120 65,210 200,210\"/>\n",
"\n",
"<svg height=\"210\" width=\"220\" xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\">\n",
"<polygon points=\"20,0 200,120 200,210 20,210\" fill=\"cyan\" opacity=\".2\" />\n",
"<polygon points=\"20,120 155,210 20,210\" fill=\"cyan\" opacity=\".2\" />\n",
"<polygon points=\"200,0 20,120 20,210 200,210\" fill=\"magenta\" opacity=\".15\" />\n",
"<polygon points=\"200,120 65,210 200,210\" fill=\"magenta\" opacity=\".15\" />\n",
"<g transform=\"translate(40,80)\">\n",
" <line stroke=\"red\" stroke-width=\"5\" x1=\"-10\" x2=\"10\" y1=\"-10\" y2=\"10\"/>\n",
" <line stroke=\"red\" stroke-width=\"5\" x1=\"-10\" x2=\"10\" y1=\"10\" y2=\"-10\"/>\n",
" <line x1=\"-10\" y1=\"-10\" x2=\"10\" y2=\"10\" stroke=\"red\" stroke-width=\"5\" />\n",
" <line x1=\"-10\" y1=\"10\" x2=\"10\" y2=\"-10\" stroke=\"red\" stroke-width=\"5\" />\n",
" </g>\n",
"<g font-size=\"14\" text-anchor=\"middle\">\n",
"<g text-anchor=\"middle\" font-size=\"14\">\n",
"<text x=\"110\" y=\"20\">Reactivity</text>\n",
"<text x=\"60\" y=\"65\">Recurrence</text>\n",
"<text x=\"160\" y=\"65\">Persistence</text>\n",
@ -725,15 +733,15 @@
"<text x=\"160\" y=\"185\">Guarantee</text>\n",
"</g>\n",
"<g font-size=\"14\">\n",
"<text fill=\"gray\" text-anchor=\"begin\" transform=\"rotate(-90,18,210)\" x=\"18\" y=\"210\">Monitor</text>\n",
"<text fill=\"gray\" text-anchor=\"end\" transform=\"rotate(-90,18,0)\" x=\"18\" y=\"0\">Deterministic Büchi</text>\n",
"<text fill=\"gray\" text-anchor=\"begin\" transform=\"rotate(-90,214,210)\" x=\"214\" y=\"210\">Terminal Büchi</text>\n",
"<text fill=\"gray\" text-anchor=\"end\" transform=\"rotate(-90,214,0)\" x=\"214\" y=\"0\">Weak Büchi</text>\n",
"<text text-anchor=\"begin\" transform=\"rotate(-90,18,210)\" x=\"18\" y=\"210\" fill=\"gray\">Monitor</text>\n",
"<text text-anchor=\"end\" transform=\"rotate(-90,18,0)\" x=\"18\" y=\"0\" fill=\"gray\">Deterministic Büchi</text>\n",
"<text text-anchor=\"begin\" transform=\"rotate(-90,214,210)\" x=\"214\" y=\"210\" fill=\"gray\">Terminal Büchi</text>\n",
"<text text-anchor=\"end\" transform=\"rotate(-90,214,0)\" x=\"214\" y=\"0\" fill=\"gray\">Weak Büchi</text>\n",
"</g>\n",
"</svg>"
],
"text/plain": [
"<IPython.core.display.SVG object>"
"<spot.jupyter.SVG object>"
]
},
"execution_count": 19,
@ -965,7 +973,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.3"
"version": "3.7.5"
}
},
"nbformat": 4,