diff --git a/wrap/python/tests/automata.ipynb b/wrap/python/tests/automata.ipynb index 8c6c82c6a..3cca8794b 100644 --- a/wrap/python/tests/automata.ipynb +++ b/wrap/python/tests/automata.ipynb @@ -1,7 +1,7 @@ { "metadata": { "name": "", - "signature": "sha256:46e5472540261241876badd1678f26f98c6708247f2b22d92e76ec7d15136f5c" + "signature": "sha256:9b116e5c61ed241183bd5fb9cd5e35010cceb5043c2fab2be81473f829bc528e" }, "nbformat": 3, "nbformat_minor": 0, @@ -12,10 +12,14 @@ "cell_type": "code", "collapsed": false, "input": [ - "import spot\n", "import os\n", - "os.environ['SPOT_DOTEXTRA'] = 'node[style=filled,fillcolor=\"#ffffaa\"]'\n", - "os.environ['SPOT_DOTDEFAULT'] = 'rbc'" + "# Note that Spot (loaded by the kernel) will cache a \n", + "# pointer to the environment variable the first time it\n", + "# reads them. The Kernel may crash if you attempt to\n", + "# modify the variables afterwards. See issue #63.\n", + "os.environ['SPOT_DOTEXTRA'] = 'size=\"11,5\" node[style=filled,fillcolor=\"#ffffaa\"]'\n", + "os.environ['SPOT_DOTDEFAULT'] = 'rbcf(Lato)'\n", + "import spot" ], "language": "python", "metadata": {}, @@ -34,7 +38,7 @@ { "metadata": {}, "output_type": "pyout", - "prompt_number": 3, + "prompt_number": 2, "svg": [ "\n", "\n", "\n", - "\n", + "\n", "\n", "G\n", - "\n", + "\n", "\n", "\n", "0\n", "\n", - "0\n", + "0\n", "\n", "\n", "I->0\n", @@ -62,104 +66,104 @@ "0->0\n", "\n", "\n", - "a & !b\n", + "a & !b\n", "\n", "\n", "1\n", "\n", "\n", - "1\n", + "1\n", "\n", "\n", "0->1\n", "\n", "\n", - "b\n", + "b\n", "\n", "\n", "4\n", "\n", - "4\n", + "4\n", "\n", "\n", "0->4\n", "\n", "\n", - "!a & !b\n", + "!a & !b\n", "\n", "\n", "1->1\n", "\n", "\n", - "c & d\n", + "c & d\n", "\n", "\n", "2\n", - "\n", - "2\n", + "\n", + "2\n", "\n", "\n", "1->2\n", - "\n", - "\n", - "!c & d\n", + "\n", + "\n", + "!c & d\n", "\n", "\n", "3\n", - "\n", - "3\n", + "\n", + "3\n", "\n", "\n", "1->3\n", - "\n", - "\n", - "!d\n", + "\n", + "\n", + "!d\n", "\n", "\n", "4->4\n", "\n", "\n", - "1\n", + "1\n", "\n", "\n", "2->1\n", - "\n", - "\n", - "c\n", + "\n", + "\n", + "c\n", "\n", "\n", "2->2\n", - "\n", - "\n", - "!c\n", + "\n", + "\n", + "!c\n", "\n", "\n", "3->1\n", - "\n", + "\n", "\n", - "c & d\n", + "c & d\n", "\n", "\n", "3->2\n", - "\n", - "\n", - "!c & d\n", + "\n", + "\n", + "!c & d\n", "\n", "\n", "3->3\n", - "\n", - "\n", - "!d\n", + "\n", + "\n", + "!d\n", "\n", "\n", "\n" ], "text": [ - " *' at 0x7f7be0d392d0> >" + " *' at 0x7f17fc124150> >" ] } ], - "prompt_number": 3 + "prompt_number": 2 }, { "cell_type": "code", @@ -173,7 +177,7 @@ { "metadata": {}, "output_type": "pyout", - "prompt_number": 4, + "prompt_number": 3, "svg": [ "\n", "\n", @@ -287,11 +291,11 @@ "" ], "text": [ - "" + "" ] } ], - "prompt_number": 4 + "prompt_number": 3 }, { "cell_type": "code", @@ -305,17 +309,17 @@ { "metadata": {}, "output_type": "pyout", - "prompt_number": 5, + "prompt_number": 4, "svg": [ - "\n", + "\n", "\n", "G\n", - "\n", - "Inf(\n", - "\u24ff\n", - ")\n", + "\n", + "Inf(\n", + "\u24ff\n", + ")\n", "cluster_0\n", - "\n", + "\n", "\n", "cluster_1\n", "\n", @@ -327,7 +331,7 @@ "\n", "0\n", "\n", - "0\n", + "0\n", "\n", "\n", "I->0\n", @@ -338,106 +342,106 @@ "0->0\n", "\n", "\n", - "a & !b\n", + "a & !b\n", "\n", "\n", "1\n", "\n", - "1\n", + "1\n", "\n", "\n", "0->1\n", "\n", "\n", - "b\n", + "b\n", "\n", "\n", "4\n", "\n", - "4\n", + "4\n", "\n", "\n", "0->4\n", "\n", "\n", - "!a & !b\n", + "!a & !b\n", "\n", "\n", "1->1\n", "\n", "\n", - "c & d\n", - "\u24ff\n", + "c & d\n", + "\u24ff\n", "\n", "\n", "3\n", - "\n", - "3\n", + "\n", + "3\n", "\n", "\n", "1->3\n", - "\n", - "\n", - "!d\n", - "\u24ff\n", + "\n", + "\n", + "!d\n", + "\u24ff\n", "\n", "\n", "2\n", - "\n", - "2\n", + "\n", + "2\n", "\n", "\n", "1->2\n", - "\n", - "\n", - "!c & d\n", - "\u24ff\n", + "\n", + "\n", + "!c & d\n", + "\u24ff\n", "\n", "\n", "3->1\n", - "\n", - "\n", - "c & d\n", + "\n", + "\n", + "c & d\n", "\n", "\n", "3->3\n", - "\n", - "\n", - "!d\n", + "\n", + "\n", + "!d\n", "\n", "\n", "3->2\n", - "\n", - "\n", - "!c & d\n", + "\n", + "\n", + "!c & d\n", "\n", "\n", "2->1\n", - "\n", - "\n", - "c\n", + "\n", + "\n", + "c\n", "\n", "\n", "2->2\n", - "\n", - "\n", - "!c\n", + "\n", + "\n", + "!c\n", "\n", "\n", "4->4\n", "\n", "\n", - "1\n", + "1\n", "\n", "\n", "" ], "text": [ - "" + "" ] } ], - "prompt_number": 5 + "prompt_number": 4 }, { "cell_type": "code", @@ -454,19 +458,89 @@ ], "metadata": {}, "output_type": "pyout", - "prompt_number": 6, + "prompt_number": 5, "text": [ "a U b" ] } ], + "prompt_number": 5 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "spot.translate(f)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 6, + "svg": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "G\n", + "\n", + "\n", + "\n", + "1\n", + "\n", + "1\n", + "\n", + "\n", + "I->1\n", + "\n", + "\n", + "\n", + "\n", + "1->1\n", + "\n", + "\n", + "a & !b\n", + "\n", + "\n", + "0\n", + "\n", + "\n", + "0\n", + "\n", + "\n", + "1->0\n", + "\n", + "\n", + "b\n", + "\n", + "\n", + "0->0\n", + "\n", + "\n", + "1\n", + "\n", + "\n", + "\n" + ], + "text": [ + " *' at 0x7f17fc0fb930> >" + ] + } + ], "prompt_number": 6 }, { "cell_type": "code", "collapsed": false, "input": [ - "spot.translate(f)" + "f.translate()" ], "language": "python", "metadata": {}, @@ -482,16 +556,16 @@ "\n", "\n", - "\n", + "\n", "\n", "G\n", - "\n", + "\n", "\n", "\n", "1\n", "\n", - "1\n", + "1\n", "\n", "\n", "I->1\n", @@ -502,31 +576,31 @@ "1->1\n", "\n", "\n", - "a & !b\n", + "a & !b\n", "\n", "\n", "0\n", - "\n", - "\n", - "0\n", + "\n", + "\n", + "0\n", "\n", "\n", "1->0\n", - "\n", - "\n", - "b\n", + "\n", + "\n", + "b\n", "\n", "\n", "0->0\n", - "\n", - "\n", - "1\n", + "\n", + "\n", + "1\n", "\n", "\n", "\n" ], "text": [ - " *' at 0x7f7be0d10930> >" + " *' at 0x7f17fc0fbb70> >" ] } ], @@ -536,7 +610,7 @@ "cell_type": "code", "collapsed": false, "input": [ - "f.translate()" + "f.translate('mon')" ], "language": "python", "metadata": {}, @@ -552,86 +626,16 @@ "\n", "\n", - "\n", - "\n", - "G\n", - "\n", - "\n", - "\n", - "1\n", - "\n", - "1\n", - "\n", - "\n", - "I->1\n", - "\n", - "\n", - "\n", - "\n", - "1->1\n", - "\n", - "\n", - "a & !b\n", - "\n", - "\n", - "0\n", - "\n", - "\n", - "0\n", - "\n", - "\n", - "1->0\n", - "\n", - "\n", - "b\n", - "\n", - "\n", - "0->0\n", - "\n", - "\n", - "1\n", - "\n", - "\n", - "\n" - ], - "text": [ - " *' at 0x7f7be0d10b70> >" - ] - } - ], - "prompt_number": 8 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "f.translate('mon')" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 9, - "svg": [ - "\n", - "\n", - "\n", - "\n", - "\n", + "\n", "\n", "G\n", - "\n", + "\n", "\n", "\n", "1\n", "\n", - "1\n", + "1\n", "\n", "\n", "I->1\n", @@ -642,34 +646,34 @@ "1->1\n", "\n", "\n", - "a & !b\n", + "a & !b\n", "\n", "\n", "0\n", - "\n", - "0\n", + "\n", + "0\n", "\n", "\n", "1->0\n", - "\n", - "\n", - "b\n", + "\n", + "\n", + "b\n", "\n", "\n", "0->0\n", - "\n", - "\n", - "1\n", + "\n", + "\n", + "1\n", "\n", "\n", "\n" ], "text": [ - " *' at 0x7f7be0d10ae0> >" + " *' at 0x7f17fc0fb990> >" ] } ], - "prompt_number": 9 + "prompt_number": 8 }, { "cell_type": "code", @@ -686,13 +690,13 @@ ], "metadata": {}, "output_type": "pyout", - "prompt_number": 10, + "prompt_number": 9, "text": [ "Ga | Gb | Gc" ] } ], - "prompt_number": 10 + "prompt_number": 9 }, { "cell_type": "code", @@ -706,7 +710,7 @@ { "metadata": {}, "output_type": "pyout", - "prompt_number": 11, + "prompt_number": 10, "svg": [ "\n", "\n", @@ -781,11 +785,11 @@ "" ], "text": [ - "" + "" ] } ], - "prompt_number": 11 + "prompt_number": 10 }, { "cell_type": "code", @@ -799,179 +803,272 @@ { "metadata": {}, "output_type": "pyout", - "prompt_number": 12, + "prompt_number": 11, "svg": [ - "\n", + "\n", "\n", "G\n", - "\n", + "\n", "\n", "\n", "6\n", - "\n", - "\n", - "6\n", + "\n", + "\n", + "6\n", "\n", "\n", "I->6\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", "6->6\n", - "\n", - "\n", - "a & b & c\n", + "\n", + "\n", + "a & b & c\n", "\n", "\n", "0\n", - "\n", - "\n", - "0\n", + "\n", + "\n", + "0\n", "\n", "\n", "6->0\n", - "\n", - "\n", - "!a & !b & c\n", + "\n", + "\n", + "!a & !b & c\n", "\n", "\n", "1\n", - "\n", - "\n", - "1\n", + "\n", + "\n", + "1\n", "\n", "\n", "6->1\n", - "\n", - "\n", - "!a & b & !c\n", + "\n", + "\n", + "!a & b & !c\n", "\n", "\n", "2\n", - "\n", - "\n", - "2\n", + "\n", + "\n", + "2\n", "\n", "\n", "6->2\n", - "\n", - "\n", - "a & !b & !c\n", + "\n", + "\n", + "a & !b & !c\n", "\n", "\n", "3\n", - "\n", - "\n", - "3\n", + "\n", + "\n", + "3\n", "\n", "\n", "6->3\n", - "\n", - "\n", - "!a & b & c\n", + "\n", + "\n", + "!a & b & c\n", "\n", "\n", "4\n", - "\n", - "\n", - "4\n", + "\n", + "\n", + "4\n", "\n", "\n", "6->4\n", - "\n", - "\n", - "a & b & !c\n", + "\n", + "\n", + "a & b & !c\n", "\n", "\n", "5\n", - "\n", - "\n", - "5\n", + "\n", + "\n", + "5\n", "\n", "\n", "6->5\n", - "\n", - "\n", - "a & !b & c\n", + "\n", + "\n", + "a & !b & c\n", "\n", "\n", "0->0\n", - "\n", - "\n", - "c\n", + "\n", + "\n", + "c\n", "\n", "\n", "1->1\n", - "\n", - "\n", - "b\n", + "\n", + "\n", + "b\n", "\n", "\n", "2->2\n", - "\n", - "\n", - "a\n", + "\n", + "\n", + "a\n", "\n", "\n", "3->0\n", - "\n", - "\n", - "!b & c\n", + "\n", + "\n", + "!b & c\n", "\n", "\n", "3->1\n", - "\n", - "\n", - "b & !c\n", + "\n", + "\n", + "b & !c\n", "\n", "\n", "3->3\n", - "\n", - "\n", - "b & c\n", + "\n", + "\n", + "b & c\n", "\n", "\n", "4->1\n", - "\n", - "\n", - "!a & b\n", + "\n", + "\n", + "!a & b\n", "\n", "\n", "4->2\n", - "\n", - "\n", - "a & !b\n", + "\n", + "\n", + "a & !b\n", "\n", "\n", "4->4\n", - "\n", - "\n", - "a & b\n", + "\n", + "\n", + "a & b\n", "\n", "\n", "5->0\n", - "\n", - "\n", - "!a & c\n", + "\n", + "\n", + "!a & c\n", "\n", "\n", "5->2\n", - "\n", - "\n", - "a & !c\n", + "\n", + "\n", + "a & !c\n", "\n", "\n", "5->5\n", - "\n", - "\n", - "a & c\n", + "\n", + "\n", + "a & c\n", "\n", "\n", "" ], "text": [ - "" + "" + ] + } + ], + "prompt_number": 11 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "a = spot.translate('F(a & X(!a &Xb))', pref=\"any\"); a" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 12, + "svg": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "G\n", + "\n", + "\n", + "\n", + "0\n", + "\n", + "0\n", + "\n", + "\n", + "I->0\n", + "\n", + "\n", + "\n", + "\n", + "0->0\n", + "\n", + "\n", + "1\n", + "\n", + "\n", + "1\n", + "\n", + "1\n", + "\n", + "\n", + "0->1\n", + "\n", + "\n", + "a\n", + "\n", + "\n", + "2\n", + "\n", + "2\n", + "\n", + "\n", + "1->2\n", + "\n", + "\n", + "!a\n", + "\n", + "\n", + "3\n", + "\n", + "3\n", + "\n", + "\n", + "2->3\n", + "\n", + "\n", + "b\n", + "\u24ff\n", + "\n", + "\n", + "3->3\n", + "\n", + "\n", + "1\n", + "\u24ff\n", + "\n", + "\n", + "\n" + ], + "text": [ + " *' at 0x7f17fc0fbb40> >" ] } ], @@ -980,10 +1077,476 @@ { "cell_type": "code", "collapsed": false, - "input": [], + "input": [ + "spot.sl(a)" + ], "language": "python", "metadata": {}, - "outputs": [] + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 15, + "svg": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "G\n", + "\n", + "\n", + "\n", + "0\n", + "\n", + "0\n", + "\n", + "\n", + "I->0\n", + "\n", + "\n", + "\n", + "\n", + "1\n", + "\n", + "1\n", + "\n", + "\n", + "0->1\n", + "\n", + "\n", + "a & b\n", + "\n", + "\n", + "2\n", + "\n", + "2\n", + "\n", + "\n", + "0->2\n", + "\n", + "\n", + "!a & b\n", + "\n", + "\n", + "3\n", + "\n", + "3\n", + "\n", + "\n", + "0->3\n", + "\n", + "\n", + "a & !b\n", + "\n", + "\n", + "4\n", + "\n", + "4\n", + "\n", + "\n", + "0->4\n", + "\n", + "\n", + "!a & !b\n", + "\n", + "\n", + "5\n", + "\n", + "5\n", + "\n", + "\n", + "0->5\n", + "\n", + "\n", + "a & b\n", + "\n", + "\n", + "6\n", + "\n", + "6\n", + "\n", + "\n", + "0->6\n", + "\n", + "\n", + "a & !b\n", + "\n", + "\n", + "1->1\n", + "\n", + "\n", + "a & b\n", + "\n", + "\n", + "1->2\n", + "\n", + "\n", + "!a & b\n", + "\n", + "\n", + "1->3\n", + "\n", + "\n", + "a & !b\n", + "\n", + "\n", + "1->4\n", + "\n", + "\n", + "!a & !b\n", + "\n", + "\n", + "1->5\n", + "\n", + "\n", + "a & b\n", + "\n", + "\n", + "1->6\n", + "\n", + "\n", + "a & !b\n", + "\n", + "\n", + "2->1\n", + "\n", + "\n", + "a & b\n", + "\n", + "\n", + "2->2\n", + "\n", + "\n", + "!a & b\n", + "\n", + "\n", + "2->3\n", + "\n", + "\n", + "a & !b\n", + "\n", + "\n", + "2->4\n", + "\n", + "\n", + "!a & !b\n", + "\n", + "\n", + "2->5\n", + "\n", + "\n", + "a & b\n", + "\n", + "\n", + "2->6\n", + "\n", + "\n", + "a & !b\n", + "\n", + "\n", + "3->1\n", + "\n", + "\n", + "a & b\n", + "\n", + "\n", + "3->2\n", + "\n", + "\n", + "!a & b\n", + "\n", + "\n", + "3->3\n", + "\n", + "\n", + "a & !b\n", + "\n", + "\n", + "3->4\n", + "\n", + "\n", + "!a & !b\n", + "\n", + "\n", + "3->5\n", + "\n", + "\n", + "a & b\n", + "\n", + "\n", + "3->6\n", + "\n", + "\n", + "a & !b\n", + "\n", + "\n", + "4->1\n", + "\n", + "\n", + "a & b\n", + "\n", + "\n", + "4->2\n", + "\n", + "\n", + "!a & b\n", + "\n", + "\n", + "4->3\n", + "\n", + "\n", + "a & !b\n", + "\n", + "\n", + "4->4\n", + "\n", + "\n", + "!a & !b\n", + "\n", + "\n", + "4->5\n", + "\n", + "\n", + "a & b\n", + "\n", + "\n", + "4->6\n", + "\n", + "\n", + "a & !b\n", + "\n", + "\n", + "5->5\n", + "\n", + "\n", + "a & b\n", + "\n", + "\n", + "7\n", + "\n", + "7\n", + "\n", + "\n", + "5->7\n", + "\n", + "\n", + "!a & b\n", + "\n", + "\n", + "8\n", + "\n", + "8\n", + "\n", + "\n", + "5->8\n", + "\n", + "\n", + "!a & !b\n", + "\n", + "\n", + "6->6\n", + "\n", + "\n", + "a & !b\n", + "\n", + "\n", + "6->7\n", + "\n", + "\n", + "!a & b\n", + "\n", + "\n", + "6->8\n", + "\n", + "\n", + "!a & !b\n", + "\n", + "\n", + "7->7\n", + "\n", + "\n", + "!a & b\n", + "\n", + "\n", + "9\n", + "\n", + "9\n", + "\n", + "\n", + "7->9\n", + "\n", + "\n", + "a & b\n", + "\u24ff\n", + "\n", + "\n", + "10\n", + "\n", + "10\n", + "\n", + "\n", + "7->10\n", + "\n", + "\n", + "!a & b\n", + "\u24ff\n", + "\n", + "\n", + "8->8\n", + "\n", + "\n", + "!a & !b\n", + "\n", + "\n", + "8->9\n", + "\n", + "\n", + "a & b\n", + "\u24ff\n", + "\n", + "\n", + "8->10\n", + "\n", + "\n", + "!a & b\n", + "\u24ff\n", + "\n", + "\n", + "9->9\n", + "\n", + "\n", + "a & b\n", + "\u24ff\n", + "\n", + "\n", + "9->10\n", + "\n", + "\n", + "!a & b\n", + "\u24ff\n", + "\n", + "\n", + "11\n", + "\n", + "11\n", + "\n", + "\n", + "9->11\n", + "\n", + "\n", + "a & !b\n", + "\u24ff\n", + "\n", + "\n", + "12\n", + "\n", + "12\n", + "\n", + "\n", + "9->12\n", + "\n", + "\n", + "!a & !b\n", + "\u24ff\n", + "\n", + "\n", + "10->9\n", + "\n", + "\n", + "a & b\n", + "\u24ff\n", + "\n", + "\n", + "10->10\n", + "\n", + "\n", + "!a & b\n", + "\u24ff\n", + "\n", + "\n", + "10->11\n", + "\n", + "\n", + "a & !b\n", + "\u24ff\n", + "\n", + "\n", + "10->12\n", + "\n", + "\n", + "!a & !b\n", + "\u24ff\n", + "\n", + "\n", + "11->9\n", + "\n", + "\n", + "a & b\n", + "\u24ff\n", + "\n", + "\n", + "11->10\n", + "\n", + "\n", + "!a & b\n", + "\u24ff\n", + "\n", + "\n", + "11->11\n", + "\n", + "\n", + "a & !b\n", + "\u24ff\n", + "\n", + "\n", + "11->12\n", + "\n", + "\n", + "!a & !b\n", + "\u24ff\n", + "\n", + "\n", + "12->9\n", + "\n", + "\n", + "a & b\n", + "\u24ff\n", + "\n", + "\n", + "12->10\n", + "\n", + "\n", + "!a & b\n", + "\u24ff\n", + "\n", + "\n", + "12->11\n", + "\n", + "\n", + "a & !b\n", + "\u24ff\n", + "\n", + "\n", + "12->12\n", + "\n", + "\n", + "!a & !b\n", + "\u24ff\n", + "\n", + "\n", + "\n" + ], + "text": [ + " *' at 0x7f17fc0fb9c0> >" + ] + } + ], + "prompt_number": 15 } ], "metadata": {}