Introduce simplify_mealy

Convenience function dispatching to
minimize_mealy and reduce_mealy.
Change tests accordingly

* spot/twaalgos/mealy_machine.cc,
  spot/twaalgos/mealy_machine.hh: Here
* bin/ltlsynt.cc: Use simplify
* spot/twaalgos/synthesis.cc,
  spot/twaalgos/synthesis.hh: Remove
 minimization, Update options
* tests/core/ltlsynt.test,
  tests/python/synthesis.ipynb,
  tests/python/_synthesis.ipynb: Adapt
This commit is contained in:
Philipp Schlehuber-Caissier 2022-03-18 15:27:46 +01:00
parent 86de4d4052
commit 97fc3f6c0b
8 changed files with 901 additions and 327 deletions

View file

@ -3,6 +3,7 @@
{
"cell_type": "code",
"execution_count": 1,
"id": "c54c43ba",
"metadata": {},
"outputs": [],
"source": [
@ -12,6 +13,7 @@
},
{
"cell_type": "markdown",
"id": "0576f64a",
"metadata": {},
"source": [
"Additional testing for synthesis"
@ -19,6 +21,7 @@
},
{
"cell_type": "markdown",
"id": "e25b7989",
"metadata": {},
"source": [
"Testing the different methods to solve"
@ -27,6 +30,7 @@
{
"cell_type": "code",
"execution_count": 2,
"id": "007107a6",
"metadata": {},
"outputs": [
{
@ -50,6 +54,7 @@
{
"cell_type": "code",
"execution_count": 3,
"id": "a7859f19",
"metadata": {},
"outputs": [
{
@ -57,43 +62,72 @@
"output_type": "stream",
"text": [
"HOA: v1\n",
"States: 7\n",
"States: 21\n",
"Start: 0\n",
"AP: 3 \"i1\" \"i0\" \"o0\"\n",
"acc-name: all\n",
"Acceptance: 0 t\n",
"properties: trans-labels explicit-labels state-acc deterministic\n",
"spot-state-player: 0 0 1 0 1 0 1 0 1 0 1 1 1 1 0 1 1 1 1 1 1\n",
"controllable-AP: 2\n",
"--BODY--\n",
"State: 0\n",
"[!0&!1] 1\n",
"[!0&1] 2\n",
"[0&!1] 3\n",
"[0&1] 4\n",
"[!0&!1] 2\n",
"[!0&1] 4\n",
"[0&!1] 6\n",
"[0&1] 8\n",
"State: 1\n",
"[0&1&!2] 4\n",
"[0&!1&!2] 3\n",
"[!0&1&!2] 2\n",
"[!0&!1&!2] 1\n",
"[0&1] 13\n",
"[0&!1] 18\n",
"[!0&1] 19\n",
"[!0&!1] 20\n",
"State: 2\n",
"[0&!2] 4\n",
"[!0&!2] 2\n",
"[t] 1\n",
"State: 3\n",
"[!0&1&2] 5\n",
"[0&1&2] 4\n",
"[!0&!1&2] 6\n",
"[0&!1&2] 3\n",
"[0] 13\n",
"[!0] 19\n",
"State: 4\n",
"[!0&2] 5\n",
"[0&2] 4\n",
"[t] 3\n",
"State: 5\n",
"[!0&!2] 5\n",
"[0&!2] 4\n",
"[!0&1] 10\n",
"[0&1] 11\n",
"[!0&!1] 15\n",
"[0&!1] 16\n",
"State: 6\n",
"[!0&1&!2] 5\n",
"[0&1&!2] 4\n",
"[!0&!1&!2] 6\n",
"[0&!1&!2] 3\n",
"[t] 5\n",
"State: 7\n",
"[!0] 10\n",
"[0] 11\n",
"State: 8\n",
"[t] 7\n",
"State: 9\n",
"[!0] 12\n",
"[0] 13\n",
"State: 10\n",
"[2] 9\n",
"State: 11\n",
"[2] 7\n",
"State: 12\n",
"[!2] 9\n",
"State: 13\n",
"[!2] 7\n",
"State: 14\n",
"[!0&1] 12\n",
"[0&1] 13\n",
"[!0&!1] 17\n",
"[0&!1] 18\n",
"State: 15\n",
"[2] 14\n",
"State: 16\n",
"[2] 5\n",
"State: 17\n",
"[!2] 14\n",
"State: 18\n",
"[!2] 5\n",
"State: 19\n",
"[!2] 3\n",
"State: 20\n",
"[!2] 1\n",
"--END--\n",
"HOA: v1\n",
"States: 7\n",
@ -141,163 +175,137 @@
"acc-name: all\n",
"Acceptance: 0 t\n",
"properties: trans-labels explicit-labels state-acc deterministic\n",
"spot-state-player: 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1\n",
"spot-state-player: 0 0 1 0 1 0 1 0 1 0 1 1 1 1 0 1 1 1 1 1 1\n",
"controllable-AP: 2\n",
"--BODY--\n",
"State: 0\n",
"[!0&!1] 7\n",
"[!0&1] 8\n",
"[0&!1] 9\n",
"[0&1] 10\n",
"[!0&!1] 2\n",
"[!0&1] 4\n",
"[0&!1] 6\n",
"[0&1] 8\n",
"State: 1\n",
"[0&1] 11\n",
"[0&!1] 12\n",
"[!0&1] 13\n",
"[!0&!1] 14\n",
"[0&1] 13\n",
"[0&!1] 18\n",
"[!0&1] 19\n",
"[!0&!1] 20\n",
"State: 2\n",
"[0] 11\n",
"[!0] 13\n",
"[t] 1\n",
"State: 3\n",
"[!0&1] 15\n",
"[0&1] 16\n",
"[0] 13\n",
"[!0] 19\n",
"State: 4\n",
"[t] 3\n",
"State: 5\n",
"[!0&1] 10\n",
"[0&1] 11\n",
"[!0&!1] 15\n",
"[0&!1] 16\n",
"State: 6\n",
"[t] 5\n",
"State: 7\n",
"[!0] 10\n",
"[0] 11\n",
"State: 8\n",
"[t] 7\n",
"State: 9\n",
"[!0] 12\n",
"[0] 13\n",
"State: 10\n",
"[2] 9\n",
"State: 11\n",
"[2] 7\n",
"State: 12\n",
"[!2] 9\n",
"State: 13\n",
"[!2] 7\n",
"State: 14\n",
"[!0&1] 12\n",
"[0&1] 13\n",
"[!0&!1] 17\n",
"[0&!1] 18\n",
"State: 4\n",
"[!0] 15\n",
"[0] 16\n",
"State: 5\n",
"[!0] 19\n",
"[0] 11\n",
"State: 6\n",
"[!0&1] 19\n",
"[0&1] 11\n",
"[!0&!1] 20\n",
"[0&!1] 12\n",
"State: 7\n",
"[t] 1\n",
"State: 8\n",
"[t] 2\n",
"State: 9\n",
"[t] 3\n",
"State: 10\n",
"[t] 4\n",
"State: 11\n",
"[!2] 4\n",
"State: 12\n",
"[!2] 3\n",
"State: 13\n",
"[!2] 2\n",
"State: 14\n",
"[!2] 1\n",
"State: 15\n",
"[2] 5\n",
"[2] 14\n",
"State: 16\n",
"[2] 4\n",
"[2] 5\n",
"State: 17\n",
"[2] 6\n",
"[!2] 14\n",
"State: 18\n",
"[2] 3\n",
"State: 19\n",
"[!2] 5\n",
"State: 19\n",
"[!2] 3\n",
"State: 20\n",
"[!2] 6\n",
"[!2] 1\n",
"--END--\n",
"HOA: v1\n",
"States: 2\n",
"Start: 1\n",
"States: 21\n",
"Start: 0\n",
"AP: 3 \"i1\" \"i0\" \"o0\"\n",
"acc-name: all\n",
"Acceptance: 0 t\n",
"properties: trans-labels explicit-labels state-acc deterministic\n",
"spot-state-player: 0 0 1 0 1 0 1 0 1 0 1 1 1 1 0 1 1 1 1 1 1\n",
"controllable-AP: 2\n",
"--BODY--\n",
"State: 0\n",
"[0&1&!2] 1\n",
"[0&!1&!2] 1\n",
"[!0&1&!2] 0\n",
"[!0&!1&!2] 0\n",
"State: 1\n",
"[!0&1&2] 0\n",
"[0&1&2] 1\n",
"[!0&!1&2] 0\n",
"[0&!1&2] 1\n",
"--END--\n",
"HOA: v1\n",
"States: 2\n",
"Start: 1\n",
"AP: 3 \"i1\" \"i0\" \"o0\"\n",
"acc-name: all\n",
"Acceptance: 0 t\n",
"properties: trans-labels explicit-labels state-acc deterministic\n",
"controllable-AP: 2\n",
"--BODY--\n",
"State: 0\n",
"[0&1&!2] 1\n",
"[0&!1&!2] 1\n",
"[!0&1&!2] 0\n",
"[!0&!1&!2] 0\n",
"State: 1\n",
"[!0&1&2] 0\n",
"[0&1&2] 1\n",
"[!0&!1&2] 0\n",
"[0&!1&2] 1\n",
"--END--\n",
"HOA: v1\n",
"States: 6\n",
"Start: 1\n",
"AP: 3 \"i1\" \"i0\" \"o0\"\n",
"acc-name: all\n",
"Acceptance: 0 t\n",
"properties: trans-labels explicit-labels state-acc deterministic\n",
"spot-state-player: 0 0 1 1 1 1\n",
"controllable-AP: 2\n",
"--BODY--\n",
"State: 0\n",
"[0&1] 2\n",
"[0&!1] 2\n",
"[!0&1] 3\n",
"[!0&!1] 3\n",
"State: 1\n",
"[!0&!1] 2\n",
"[!0&1] 4\n",
"[0&1] 5\n",
"[!0&!1] 4\n",
"[0&!1] 5\n",
"State: 2\n",
"[!2] 1\n",
"State: 3\n",
"[!2] 0\n",
"State: 4\n",
"[2] 0\n",
"State: 5\n",
"[2] 1\n",
"--END--\n",
"HOA: v1\n",
"States: 6\n",
"Start: 1\n",
"AP: 3 \"i1\" \"i0\" \"o0\"\n",
"acc-name: all\n",
"Acceptance: 0 t\n",
"properties: trans-labels explicit-labels state-acc deterministic\n",
"spot-state-player: 0 0 1 1 1 1\n",
"controllable-AP: 2\n",
"--BODY--\n",
"State: 0\n",
"[0] 2\n",
"[!0] 3\n",
"[0&!1] 6\n",
"[0&1] 8\n",
"State: 1\n",
"[0] 4\n",
"[!0] 5\n",
"[0&1] 13\n",
"[0&!1] 18\n",
"[!0&1] 19\n",
"[!0&!1] 20\n",
"State: 2\n",
"[!2] 1\n",
"[t] 1\n",
"State: 3\n",
"[!2] 0\n",
"[0] 13\n",
"[!0] 19\n",
"State: 4\n",
"[2] 1\n",
"[t] 3\n",
"State: 5\n",
"[2] 0\n",
"[!0&1] 10\n",
"[0&1] 11\n",
"[!0&!1] 15\n",
"[0&!1] 16\n",
"State: 6\n",
"[t] 5\n",
"State: 7\n",
"[!0] 10\n",
"[0] 11\n",
"State: 8\n",
"[t] 7\n",
"State: 9\n",
"[!0] 12\n",
"[0] 13\n",
"State: 10\n",
"[2] 9\n",
"State: 11\n",
"[2] 7\n",
"State: 12\n",
"[!2] 9\n",
"State: 13\n",
"[!2] 7\n",
"State: 14\n",
"[!0&1] 12\n",
"[0&1] 13\n",
"[!0&!1] 17\n",
"[0&!1] 18\n",
"State: 15\n",
"[2] 14\n",
"State: 16\n",
"[2] 5\n",
"State: 17\n",
"[!2] 14\n",
"State: 18\n",
"[!2] 5\n",
"State: 19\n",
"[!2] 3\n",
"State: 20\n",
"[!2] 1\n",
"--END--\n",
"HOA: v1\n",
"States: 2\n",
"States: 7\n",
"Start: 0\n",
"AP: 3 \"i1\" \"i0\" \"o0\"\n",
"acc-name: all\n",
@ -306,36 +314,277 @@
"controllable-AP: 2\n",
"--BODY--\n",
"State: 0\n",
"[0&2] 0\n",
"[!0&2] 1\n",
"[!0&!1] 1\n",
"[!0&1] 2\n",
"[0&!1] 3\n",
"[0&1] 4\n",
"State: 1\n",
"[0&!2] 0\n",
"[!0&!2] 1\n",
"[0&1&!2] 4\n",
"[0&!1&!2] 3\n",
"[!0&1&!2] 2\n",
"[!0&!1&!2] 1\n",
"State: 2\n",
"[0&!2] 4\n",
"[!0&!2] 2\n",
"State: 3\n",
"[!0&1&2] 5\n",
"[0&1&2] 4\n",
"[!0&!1&2] 6\n",
"[0&!1&2] 3\n",
"State: 4\n",
"[!0&2] 5\n",
"[0&2] 4\n",
"State: 5\n",
"[!0&!2] 5\n",
"[0&!2] 4\n",
"State: 6\n",
"[!0&1&!2] 5\n",
"[0&1&!2] 4\n",
"[!0&!1&!2] 6\n",
"[0&!1&!2] 3\n",
"--END--\n",
"HOA: v1\n",
"States: 6\n",
"Start: 1\n",
"States: 21\n",
"Start: 0\n",
"AP: 3 \"i1\" \"i0\" \"o0\"\n",
"acc-name: all\n",
"Acceptance: 0 t\n",
"properties: trans-labels explicit-labels state-acc deterministic\n",
"spot-state-player: 0 0 1 1 1 1\n",
"spot-state-player: 0 0 1 0 1 0 1 0 1 0 1 1 1 1 0 1 1 1 1 1 1\n",
"controllable-AP: 2\n",
"--BODY--\n",
"State: 0\n",
"[0] 2\n",
"[!0] 3\n",
"[!0&!1] 2\n",
"[!0&1] 4\n",
"[0&!1] 6\n",
"[0&1] 8\n",
"State: 1\n",
"[0] 4\n",
"[!0] 5\n",
"[0&1] 13\n",
"[0&!1] 18\n",
"[!0&1] 19\n",
"[!0&!1] 20\n",
"State: 2\n",
"[!2] 1\n",
"[t] 1\n",
"State: 3\n",
"[!2] 0\n",
"[0] 13\n",
"[!0] 19\n",
"State: 4\n",
"[2] 1\n",
"[t] 3\n",
"State: 5\n",
"[2] 0\n",
"[!0&1] 10\n",
"[0&1] 11\n",
"[!0&!1] 15\n",
"[0&!1] 16\n",
"State: 6\n",
"[t] 5\n",
"State: 7\n",
"[!0] 10\n",
"[0] 11\n",
"State: 8\n",
"[t] 7\n",
"State: 9\n",
"[!0] 12\n",
"[0] 13\n",
"State: 10\n",
"[2] 9\n",
"State: 11\n",
"[2] 7\n",
"State: 12\n",
"[!2] 9\n",
"State: 13\n",
"[!2] 7\n",
"State: 14\n",
"[!0&1] 12\n",
"[0&1] 13\n",
"[!0&!1] 17\n",
"[0&!1] 18\n",
"State: 15\n",
"[2] 14\n",
"State: 16\n",
"[2] 5\n",
"State: 17\n",
"[!2] 14\n",
"State: 18\n",
"[!2] 5\n",
"State: 19\n",
"[!2] 3\n",
"State: 20\n",
"[!2] 1\n",
"--END--\n",
"HOA: v1\n",
"States: 21\n",
"Start: 0\n",
"AP: 3 \"i1\" \"i0\" \"o0\"\n",
"acc-name: all\n",
"Acceptance: 0 t\n",
"properties: trans-labels explicit-labels state-acc deterministic\n",
"spot-state-player: 0 0 1 0 1 0 1 0 1 0 1 1 1 1 0 1 1 1 1 1 1\n",
"controllable-AP: 2\n",
"--BODY--\n",
"State: 0\n",
"[!0&!1] 2\n",
"[!0&1] 4\n",
"[0&!1] 6\n",
"[0&1] 8\n",
"State: 1\n",
"[0&1] 13\n",
"[0&!1] 18\n",
"[!0&1] 19\n",
"[!0&!1] 20\n",
"State: 2\n",
"[t] 1\n",
"State: 3\n",
"[0] 13\n",
"[!0] 19\n",
"State: 4\n",
"[t] 3\n",
"State: 5\n",
"[!0&1] 10\n",
"[0&1] 11\n",
"[!0&!1] 15\n",
"[0&!1] 16\n",
"State: 6\n",
"[t] 5\n",
"State: 7\n",
"[!0] 10\n",
"[0] 11\n",
"State: 8\n",
"[t] 7\n",
"State: 9\n",
"[!0] 12\n",
"[0] 13\n",
"State: 10\n",
"[2] 9\n",
"State: 11\n",
"[2] 7\n",
"State: 12\n",
"[!2] 9\n",
"State: 13\n",
"[!2] 7\n",
"State: 14\n",
"[!0&1] 12\n",
"[0&1] 13\n",
"[!0&!1] 17\n",
"[0&!1] 18\n",
"State: 15\n",
"[2] 14\n",
"State: 16\n",
"[2] 5\n",
"State: 17\n",
"[!2] 14\n",
"State: 18\n",
"[!2] 5\n",
"State: 19\n",
"[!2] 3\n",
"State: 20\n",
"[!2] 1\n",
"--END--\n",
"HOA: v1\n",
"States: 7\n",
"Start: 0\n",
"AP: 3 \"i1\" \"i0\" \"o0\"\n",
"acc-name: all\n",
"Acceptance: 0 t\n",
"properties: trans-labels explicit-labels state-acc deterministic\n",
"controllable-AP: 2\n",
"--BODY--\n",
"State: 0\n",
"[!0&!1] 1\n",
"[!0&1] 2\n",
"[0&!1] 3\n",
"[0&1] 4\n",
"State: 1\n",
"[0&1&!2] 4\n",
"[0&!1&!2] 3\n",
"[!0&1&!2] 2\n",
"[!0&!1&!2] 1\n",
"State: 2\n",
"[0&!2] 4\n",
"[!0&!2] 2\n",
"State: 3\n",
"[!0&1&2] 5\n",
"[0&1&2] 4\n",
"[!0&!1&2] 6\n",
"[0&!1&2] 3\n",
"State: 4\n",
"[!0&2] 5\n",
"[0&2] 4\n",
"State: 5\n",
"[!0&!2] 5\n",
"[0&!2] 4\n",
"State: 6\n",
"[!0&1&!2] 5\n",
"[0&1&!2] 4\n",
"[!0&!1&!2] 6\n",
"[0&!1&!2] 3\n",
"--END--\n",
"HOA: v1\n",
"States: 21\n",
"Start: 0\n",
"AP: 3 \"i1\" \"i0\" \"o0\"\n",
"acc-name: all\n",
"Acceptance: 0 t\n",
"properties: trans-labels explicit-labels state-acc deterministic\n",
"spot-state-player: 0 0 1 0 1 0 1 0 1 0 1 1 1 1 0 1 1 1 1 1 1\n",
"controllable-AP: 2\n",
"--BODY--\n",
"State: 0\n",
"[!0&!1] 2\n",
"[!0&1] 4\n",
"[0&!1] 6\n",
"[0&1] 8\n",
"State: 1\n",
"[0&1] 13\n",
"[0&!1] 18\n",
"[!0&1] 19\n",
"[!0&!1] 20\n",
"State: 2\n",
"[t] 1\n",
"State: 3\n",
"[0] 13\n",
"[!0] 19\n",
"State: 4\n",
"[t] 3\n",
"State: 5\n",
"[!0&1] 10\n",
"[0&1] 11\n",
"[!0&!1] 15\n",
"[0&!1] 16\n",
"State: 6\n",
"[t] 5\n",
"State: 7\n",
"[!0] 10\n",
"[0] 11\n",
"State: 8\n",
"[t] 7\n",
"State: 9\n",
"[!0] 12\n",
"[0] 13\n",
"State: 10\n",
"[2] 9\n",
"State: 11\n",
"[2] 7\n",
"State: 12\n",
"[!2] 9\n",
"State: 13\n",
"[!2] 7\n",
"State: 14\n",
"[!0&1] 12\n",
"[0&1] 13\n",
"[!0&!1] 17\n",
"[0&!1] 18\n",
"State: 15\n",
"[2] 14\n",
"State: 16\n",
"[2] 5\n",
"State: 17\n",
"[!2] 14\n",
"State: 18\n",
"[!2] 5\n",
"State: 19\n",
"[!2] 3\n",
"State: 20\n",
"[!2] 1\n",
"--END--\n"
]
}
@ -345,7 +594,7 @@
"mm0 = spot.solved_game_to_mealy(game, si)\n",
"msep0 = spot.solved_game_to_separated_mealy(game, si)\n",
"msplit0 = spot.solved_game_to_split_mealy(game, si)\n",
"assert(spot.is_separated_mealy(mm0)) #Not imposed by the functions pre or post, but results of current impl, change if necessary\n",
"assert(spot.is_mealy(mm0))\n",
"assert(spot.is_separated_mealy(msep0))\n",
"assert(spot.is_split_mealy(msplit0))\n",
"print(mm0.to_str(\"hoa\"))\n",
@ -355,7 +604,7 @@
"mm2 = spot.solved_game_to_mealy(game, si)\n",
"msep2 = spot.solved_game_to_separated_mealy(game, si)\n",
"msplit2 = spot.solved_game_to_split_mealy(game, si)\n",
"assert(spot.is_separated_mealy(mm2)) #Not imposed by the functions pre or post, but results of current impl, change if necessary\n",
"assert(spot.is_mealy(mm2))\n",
"assert(spot.is_separated_mealy(msep2))\n",
"assert(spot.is_split_mealy(msplit2))\n",
"print(mm2.to_str(\"hoa\"))\n",
@ -365,7 +614,7 @@
"mm3 = spot.solved_game_to_mealy(game, si)\n",
"msep3 = spot.solved_game_to_separated_mealy(game, si)\n",
"msplit3 = spot.solved_game_to_split_mealy(game, si)\n",
"assert(spot.is_split_mealy(mm3)) #Not imposed by the functions pre or post, but results of current impl, change if necessary\n",
"assert(spot.is_mealy(mm3))\n",
"assert(spot.is_separated_mealy(msep3))\n",
"assert(spot.is_split_mealy(msplit3))\n",
"print(mm3.to_str(\"hoa\"))\n",
@ -376,31 +625,48 @@
{
"cell_type": "code",
"execution_count": 4,
"id": "fb57ac53",
"metadata": {},
"outputs": [],
"source": [
"mus0 = spot.unsplit_mealy(msplit0)\n",
"mus2 = spot.unsplit_mealy(msplit2)\n",
"mus3 = spot.unsplit_mealy(msplit3)\n",
"mmus3 = spot.unsplit_mealy(mm3)"
"mus3 = spot.unsplit_mealy(msplit3)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "40fc65b5",
"metadata": {},
"outputs": [],
"source": [
"assert(mm0.equivalent_to(msep0))\n",
"assert(mm0.equivalent_to(mus0))\n",
"assert(mm2.equivalent_to(msep2))\n",
"assert(mm2.equivalent_to(mus2))\n",
"assert(mmus3.equivalent_to(msep3))\n",
"assert(mmus3.equivalent_to(mus3))"
"assert(mus0.equivalent_to(msep0))"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "f6d8b29c",
"metadata": {},
"outputs": [],
"source": [
"assert(mus2.equivalent_to(msep2))"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "db8d47f2",
"metadata": {},
"outputs": [],
"source": [
"assert(mus3.equivalent_to(msep3))"
]
},
{
"cell_type": "markdown",
"id": "c19beeb0",
"metadata": {},
"source": [
"Testing related to #495"
@ -408,7 +674,8 @@
},
{
"cell_type": "code",
"execution_count": 6,
"execution_count": 8,
"id": "3736cd1b",
"metadata": {},
"outputs": [
{
@ -470,10 +737,10 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fee3716f7b0> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f7458055570> >"
]
},
"execution_count": 6,
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
@ -486,7 +753,8 @@
},
{
"cell_type": "code",
"execution_count": 7,
"execution_count": 9,
"id": "da6a7802",
"metadata": {},
"outputs": [
{
@ -552,10 +820,10 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fee3716f7b0> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f7458055570> >"
]
},
"execution_count": 7,
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
@ -567,7 +835,8 @@
},
{
"cell_type": "code",
"execution_count": 8,
"execution_count": 10,
"id": "987219a4",
"metadata": {},
"outputs": [
{
@ -675,10 +944,10 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fee3716f630> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f74580553c0> >"
]
},
"execution_count": 8,
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
@ -691,7 +960,8 @@
},
{
"cell_type": "code",
"execution_count": 9,
"execution_count": 11,
"id": "958d81f2",
"metadata": {},
"outputs": [
{
@ -772,10 +1042,10 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fee36703f60> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f743a5ca6c0> >"
]
},
"execution_count": 9,
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
@ -798,7 +1068,8 @@
},
{
"cell_type": "code",
"execution_count": 10,
"execution_count": 12,
"id": "078bb43e",
"metadata": {},
"outputs": [
{
@ -939,10 +1210,10 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fee3716f930> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f7458059f90> >"
]
},
"execution_count": 10,
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
@ -955,7 +1226,8 @@
},
{
"cell_type": "code",
"execution_count": 11,
"execution_count": 13,
"id": "05b4a138",
"metadata": {},
"outputs": [
{
@ -1147,10 +1419,10 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fee3716fa20> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f7458055870> >"
]
},
"execution_count": 11,
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
@ -1164,7 +1436,7 @@
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},