{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "Test the optimization of `product()` for weak arguments." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import spot\n", "spot.setup()\n", "from spot.jupyter import display_inline" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "auts = list(spot.automata(\"\"\"\n", "HOA: v1\n", "name: \"a\"\n", "States: 2\n", "Start: 1\n", "AP: 1 \"a\"\n", "acc-name: all\n", "Acceptance: 0 t\n", "properties: trans-labels explicit-labels state-acc deterministic\n", "properties: stutter-invariant terminal\n", "--BODY--\n", "State: 0\n", "[t] 0\n", "State: 1\n", "[0] 0\n", "--END--\n", "HOA: v1\n", "name: \"Fb\"\n", "States: 2\n", "Start: 1\n", "AP: 1 \"b\"\n", "acc-name: Buchi\n", "Acceptance: 1 Inf(0)\n", "properties: trans-labels explicit-labels state-acc complete\n", "properties: deterministic stutter-invariant terminal\n", "--BODY--\n", "State: 0 {0}\n", "[t] 0\n", "State: 1\n", "[0] 0\n", "[!0] 1\n", "--END--\n", "HOA: v1\n", "name: \"Fb\"\n", "States: 2\n", "Start: 1\n", "AP: 1 \"b\"\n", "acc-name: co-Buchi\n", "Acceptance: 1 Fin(0)\n", "properties: trans-labels explicit-labels state-acc complete\n", "properties: deterministic stutter-invariant terminal\n", "--BODY--\n", "State: 0 \n", "[t] 0\n", "State: 1 {0}\n", "[0] 0\n", "[!0] 1\n", "--END--\n", "HOA: v1\n", "name: \"GFc\"\n", "States: 1\n", "Start: 0\n", "AP: 1 \"c\"\n", "acc-name: Buchi\n", "Acceptance: 1 Inf(0)\n", "properties: trans-labels explicit-labels trans-acc complete\n", "properties: deterministic stutter-invariant\n", "--BODY--\n", "State: 0\n", "[!0] 0\n", "[0] 0 {0}\n", "--END--\n", "HOA: v1\n", "name: \"FGd\"\n", "States: 1\n", "Start: 0\n", "AP: 1 \"c\"\n", "acc-name: co-Buchi\n", "Acceptance: 1 Fin(0)\n", "properties: trans-labels explicit-labels trans-acc complete\n", "properties: deterministic stutter-invariant\n", "--BODY--\n", "State: 0\n", "[!0] 0 {0}\n", "[0] 0\n", "--END--\n", "HOA: v1\n", "States: 1\n", "Start: 0\n", "AP: 1 \"d\"\n", "Acceptance: 1 Inf(0)&Fin(0)\n", "--BODY--\n", "State: 0\n", "[!0] 0 {0}\n", "[0] 0\n", "--END--\n", "HOA: v1\n", "States: 1\n", "Start: 0\n", "AP: 1 \"d\"\n", "Acceptance: 1 Inf(0)|Fin(0)\n", "--BODY--\n", "State: 0 \n", "[!0] 0 {0}\n", "[0] 0\n", "--END--\n", "\"\"\"))" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "7" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(auts)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "scrolled": false }, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", "\n", "\n", "\n", "\n", "a\n", "\n", "t\n", "[all]\n", "\n", "\n", "\n", "1\n", "\n", "1\n", "\n", "\n", "\n", "I->1\n", "\n", "\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "1->0\n", "\n", "\n", "a\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "1\n", "\n", "\n", "\n" ], "text/html": [ "\n", "\n", "\n", "\n", "\n", "\n", "a\n", "\n", "t\n", "[all]\n", "\n", "\n", "\n", "1\n", "\n", "1\n", "\n", "\n", "\n", "I->1\n", "\n", "\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "1->0\n", "\n", "\n", "a\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "1\n", "\n", "\n", "\n" ], "text/plain": [ " *' at 0x7faa1c7666a0> >" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "a\n", "\n", "t\n", "[all]\n", "\n", "\n", "\n", "1\n", "\n", "1\n", "\n", "\n", "\n", "I->1\n", "\n", "\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "1->0\n", "\n", "\n", "a\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "1\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "t\n", "[all]\n", "\n", "\n", "\n", "0\n", "\n", "1,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "1\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "\n", "1,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "1\n", "\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a\n", "\n", "\n", "\n", "2\n", "\n", "2,2\n", "\n", "\n", "\n", "0->2\n", "\n", "\n", "!a\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "1\n", "\n", "\n", "\n", "2->2\n", "\n", "\n", "1\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "Fb\n", "\n", "[Büchi]\n", "\n", "\n", "\n", "1\n", "\n", "1\n", "\n", "\n", "\n", "I->1\n", "\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "0\n", "\n", "\n", "0\n", "\n", "\n", "\n", "1->0\n", "\n", "\n", "b\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "1\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "1,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "1\n", "\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & b\n", "\n", "\n", "\n", "2\n", "\n", "0,1\n", "\n", "\n", "\n", "0->2\n", "\n", "\n", "a & !b\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "1\n", "\n", "\n", "\n", "2->1\n", "\n", "\n", "b\n", "\n", "\n", "\n", "2->2\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "\n", "1,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "1\n", "\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & b\n", "\n", "\n", "\n", "2\n", "\n", "\n", "0,1\n", "\n", "\n", "\n", "0->2\n", "\n", "\n", "a & !b\n", "\n", "\n", "\n", "3\n", "\n", "\n", "2,0\n", "\n", "\n", "\n", "0->3\n", "\n", "\n", "!a & b\n", "\n", "\n", "\n", "4\n", "\n", "2,1\n", "\n", "\n", "\n", "0->4\n", "\n", "\n", "!a & !b\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "1\n", "\n", "\n", "\n", "2->1\n", "\n", "\n", "b\n", "\n", "\n", "\n", "2->2\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "3->3\n", "\n", "\n", "1\n", "\n", "\n", "\n", "4->3\n", "\n", "\n", "b\n", "\n", "\n", "\n", "4->4\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "Fb\n", "\n", "[co-Büchi]\n", "\n", "\n", "\n", "1\n", "\n", "\n", "1\n", "\n", "\n", "\n", "I->1\n", "\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "1->0\n", "\n", "\n", "b\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "1\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "[co-Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "\n", "1,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & b\n", "\n", "\n", "\n", "2\n", "\n", "\n", "0,1\n", "\n", "\n", "\n", "0->2\n", "\n", "\n", "a & !b\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "1\n", "\n", "\n", "\n", "2->1\n", "\n", "\n", "b\n", "\n", "\n", "\n", "2->2\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "\n", "1,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "1\n", "\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & b\n", "\n", "\n", "\n", "2\n", "\n", "\n", "0,1\n", "\n", "\n", "\n", "0->2\n", "\n", "\n", "a & !b\n", "\n", "\n", "\n", "3\n", "\n", "\n", "2,0\n", "\n", "\n", "\n", "0->3\n", "\n", "\n", "!a & b\n", "\n", "\n", "\n", "4\n", "\n", "2,1\n", "\n", "\n", "\n", "0->4\n", "\n", "\n", "!a & !b\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "1\n", "\n", "\n", "\n", "2->1\n", "\n", "\n", "b\n", "\n", "\n", "\n", "2->2\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "3->3\n", "\n", "\n", "1\n", "\n", "\n", "\n", "4->3\n", "\n", "\n", "b\n", "\n", "\n", "\n", "4->4\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "GFc\n", "\n", "Inf(\n", "\n", ")\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c\n", "\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ")\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "1,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & !c\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & c\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "c\n", "\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ")\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "1,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & !c\n", "\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & c\n", "\n", "\n", "\n", "\n", "2\n", "\n", "2,0\n", "\n", "\n", "\n", "0->2\n", "\n", "\n", "!a & !c\n", "\n", "\n", "\n", "\n", "0->2\n", "\n", "\n", "!a & c\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "c\n", "\n", "\n", "\n", "\n", "2->2\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "2->2\n", "\n", "\n", "c\n", "\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "FGd\n", "\n", "Fin(\n", "\n", ")\n", "[co-Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Fin(\n", "\n", ")\n", "[co-Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "1,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & !c\n", "\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & c\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "c\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Fin(\n", "\n", ")\n", "[co-Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "1,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & !c\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & c\n", "\n", "\n", "\n", "2\n", "\n", "2,0\n", "\n", "\n", "\n", "0->2\n", "\n", "\n", "!a & !c\n", "\n", "\n", "\n", "0->2\n", "\n", "\n", "!a & c\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "c\n", "\n", "\n", "\n", "2->2\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "\n", "2->2\n", "\n", "\n", "c\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ") & Fin(\n", "\n", ")\n", "[Rabin-like 1]\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "d\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ") & Fin(\n", "\n", ")\n", "[Rabin-like 1]\n", "\n", "\n", "\n", "0\n", "\n", "1,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & !d\n", "\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & d\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "d\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ")\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "1,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & !d\n", "\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & d\n", "\n", "\n", "\n", "\n", "2\n", "\n", "2,0\n", "\n", "\n", "\n", "0->2\n", "\n", "\n", "!a & !d\n", "\n", "\n", "\n", "\n", "0->2\n", "\n", "\n", "!a & d\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "d\n", "\n", "\n", "\n", "\n", "2->2\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "2->2\n", "\n", "\n", "d\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ") | Fin(\n", "\n", ")\n", "[Streett-like 1]\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "d\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ")\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "1,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & !d\n", "\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & d\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "d\n", "\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ") | Fin(\n", "\n", ")\n", "[Streett-like 1]\n", "\n", "\n", "\n", "0\n", "\n", "1,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & !d\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & d\n", "\n", "\n", "\n", "2\n", "\n", "2,0\n", "\n", "\n", "\n", "0->2\n", "\n", "\n", "!a & !d\n", "\n", "\n", "\n", "0->2\n", "\n", "\n", "!a & d\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "d\n", "\n", "\n", "\n", "2->2\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "2->2\n", "\n", "\n", "d\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "autslen = len(auts)\n", "# In a previous version we used to iterate over all possible left automata with \"for left in auts:\"\n", "# however we had trouble with Jupyter on i386, where running the full loop abort with some low-level \n", "# exceptions from Jupyter client. Halving the loop helped for some times, but then the timeout\n", "# came back. So we do one left automaton at a time.\n", "left = auts[0]\n", "display(left)\n", "for right in auts:\n", " display_inline(right, spot.product(left, right), spot.product_or(left, right))" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "scrolled": false }, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", "\n", "\n", "\n", "\n", "Fb\n", "\n", "[Büchi]\n", "\n", "\n", "\n", "1\n", "\n", "1\n", "\n", "\n", "\n", "I->1\n", "\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "0\n", "\n", "\n", "0\n", "\n", "\n", "\n", "1->0\n", "\n", "\n", "b\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "1\n", "\n", "\n", "\n" ], "text/html": [ "\n", "\n", "\n", "\n", "\n", "\n", "Fb\n", "\n", "[Büchi]\n", "\n", "\n", "\n", "1\n", "\n", "1\n", "\n", "\n", "\n", "I->1\n", "\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "0\n", "\n", "\n", "0\n", "\n", "\n", "\n", "1->0\n", "\n", "\n", "b\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "1\n", "\n", "\n", "\n" ], "text/plain": [ " *' at 0x7faa1c766670> >" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "a\n", "\n", "t\n", "[all]\n", "\n", "\n", "\n", "1\n", "\n", "1\n", "\n", "\n", "\n", "I->1\n", "\n", "\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "1->0\n", "\n", "\n", "a\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "1\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "1,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "1\n", "\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & b\n", "\n", "\n", "\n", "2\n", "\n", "1,0\n", "\n", "\n", "\n", "0->2\n", "\n", "\n", "a & !b\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "1\n", "\n", "\n", "\n", "2->1\n", "\n", "\n", "b\n", "\n", "\n", "\n", "2->2\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "\n", "1,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "1\n", "\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & b\n", "\n", "\n", "\n", "2\n", "\n", "\n", "0,2\n", "\n", "\n", "\n", "0->2\n", "\n", "\n", "!a & b\n", "\n", "\n", "\n", "3\n", "\n", "\n", "1,0\n", "\n", "\n", "\n", "0->3\n", "\n", "\n", "a & !b\n", "\n", "\n", "\n", "4\n", "\n", "1,2\n", "\n", "\n", "\n", "0->4\n", "\n", "\n", "!a & !b\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "1\n", "\n", "\n", "\n", "2->2\n", "\n", "\n", "1\n", "\n", "\n", "\n", "3->1\n", "\n", "\n", "b\n", "\n", "\n", "\n", "3->3\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "4->2\n", "\n", "\n", "b\n", "\n", "\n", "\n", "4->4\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "Fb\n", "\n", "[Büchi]\n", "\n", "\n", "\n", "1\n", "\n", "1\n", "\n", "\n", "\n", "I->1\n", "\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "0\n", "\n", "\n", "0\n", "\n", "\n", "\n", "1->0\n", "\n", "\n", "b\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "1\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "1,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "1\n", "\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "1\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "1,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "1\n", "\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "1\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "Fb\n", "\n", "[co-Büchi]\n", "\n", "\n", "\n", "1\n", "\n", "\n", "1\n", "\n", "\n", "\n", "I->1\n", "\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "1->0\n", "\n", "\n", "b\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "1\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "1,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "1\n", "\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "1\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "1,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "1\n", "\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "1\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "GFc\n", "\n", "Inf(\n", "\n", ")\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c\n", "\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ")\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "1,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & !c\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & c\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & !c\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & c\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "c\n", "\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ")\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "1,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & !c\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & c\n", "\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & !c\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & c\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "c\n", "\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "FGd\n", "\n", "Fin(\n", "\n", ")\n", "[co-Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Fin(\n", "\n", ")\n", "[co-Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "1,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & !c\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & c\n", "\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & !c\n", "\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & c\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "c\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Fin(\n", "\n", ")\n", "[co-Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "1,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & !c\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & c\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & !c\n", "\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & c\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "c\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ") & Fin(\n", "\n", ")\n", "[Rabin-like 1]\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "d\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ") & Fin(\n", "\n", ")\n", "[Rabin-like 1]\n", "\n", "\n", "\n", "0\n", "\n", "1,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & !d\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & d\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & !d\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & d\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "d\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ")\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "1,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & !d\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & d\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & !d\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & d\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "d\n", "\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ") | Fin(\n", "\n", ")\n", "[Streett-like 1]\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "d\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ")\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "1,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & !d\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & d\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & !d\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & d\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "d\n", "\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ") | Fin(\n", "\n", ")\n", "[Streett-like 1]\n", "\n", "\n", "\n", "0\n", "\n", "1,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & !d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & d\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & !d\n", "\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & d\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "d\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "left = auts[1]\n", "display(left)\n", "for right in auts:\n", " display_inline(right, spot.product(left, right), spot.product_or(left, right))" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "scrolled": false }, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", "\n", "\n", "\n", "\n", "Fb\n", "\n", "[co-Büchi]\n", "\n", "\n", "\n", "1\n", "\n", "\n", "1\n", "\n", "\n", "\n", "I->1\n", "\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "1->0\n", "\n", "\n", "b\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "1\n", "\n", "\n", "\n" ], "text/html": [ "\n", "\n", "\n", "\n", "\n", "\n", "Fb\n", "\n", "[co-Büchi]\n", "\n", "\n", "\n", "1\n", "\n", "\n", "1\n", "\n", "\n", "\n", "I->1\n", "\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "1->0\n", "\n", "\n", "b\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "1\n", "\n", "\n", "\n" ], "text/plain": [ " *' at 0x7faa1c766700> >" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "a\n", "\n", "t\n", "[all]\n", "\n", "\n", "\n", "1\n", "\n", "1\n", "\n", "\n", "\n", "I->1\n", "\n", "\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "1->0\n", "\n", "\n", "a\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "1\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "[co-Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "\n", "1,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & b\n", "\n", "\n", "\n", "2\n", "\n", "\n", "1,0\n", "\n", "\n", "\n", "0->2\n", "\n", "\n", "a & !b\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "1\n", "\n", "\n", "\n", "2->1\n", "\n", "\n", "b\n", "\n", "\n", "\n", "2->2\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "\n", "1,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "1\n", "\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & b\n", "\n", "\n", "\n", "2\n", "\n", "\n", "0,2\n", "\n", "\n", "\n", "0->2\n", "\n", "\n", "!a & b\n", "\n", "\n", "\n", "3\n", "\n", "\n", "1,0\n", "\n", "\n", "\n", "0->3\n", "\n", "\n", "a & !b\n", "\n", "\n", "\n", "4\n", "\n", "1,2\n", "\n", "\n", "\n", "0->4\n", "\n", "\n", "!a & !b\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "1\n", "\n", "\n", "\n", "2->2\n", "\n", "\n", "1\n", "\n", "\n", "\n", "3->1\n", "\n", "\n", "b\n", "\n", "\n", "\n", "3->3\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "4->2\n", "\n", "\n", "b\n", "\n", "\n", "\n", "4->4\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "Fb\n", "\n", "[Büchi]\n", "\n", "\n", "\n", "1\n", "\n", "1\n", "\n", "\n", "\n", "I->1\n", "\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "0\n", "\n", "\n", "0\n", "\n", "\n", "\n", "1->0\n", "\n", "\n", "b\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "1\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "1,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "1\n", "\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "1\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "1,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "1\n", "\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "1\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "Fb\n", "\n", "[co-Büchi]\n", "\n", "\n", "\n", "1\n", "\n", "\n", "1\n", "\n", "\n", "\n", "I->1\n", "\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "1->0\n", "\n", "\n", "b\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "1\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "[co-Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "\n", "1,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "1\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "[co-Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "\n", "1,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "1\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "GFc\n", "\n", "Inf(\n", "\n", ")\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c\n", "\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ")\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "1,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & !c\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & c\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & !c\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & c\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "c\n", "\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ")\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "1,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & !c\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & c\n", "\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & !c\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & c\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "c\n", "\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "FGd\n", "\n", "Fin(\n", "\n", ")\n", "[co-Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Fin(\n", "\n", ")\n", "[co-Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "1,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & !c\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & c\n", "\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & !c\n", "\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & c\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "c\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Fin(\n", "\n", ")\n", "[co-Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "1,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & !c\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & c\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & !c\n", "\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & c\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "c\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ") & Fin(\n", "\n", ")\n", "[Rabin-like 1]\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "d\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ") & Fin(\n", "\n", ")\n", "[Rabin-like 1]\n", "\n", "\n", "\n", "0\n", "\n", "1,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & !d\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & d\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & !d\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & d\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "d\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ")\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "1,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & !d\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & d\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & !d\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & d\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "d\n", "\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ") | Fin(\n", "\n", ")\n", "[Streett-like 1]\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "d\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ")\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "1,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & !d\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & d\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & !d\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & d\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "d\n", "\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ") | Fin(\n", "\n", ")\n", "[Streett-like 1]\n", "\n", "\n", "\n", "0\n", "\n", "1,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & !d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & d\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & !d\n", "\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & d\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "d\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "left = auts[2]\n", "display(left)\n", "for right in auts:\n", " display_inline(right, spot.product(left, right), spot.product_or(left, right))" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "scrolled": false }, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", "\n", "\n", "\n", "\n", "GFc\n", "\n", "Inf(\n", "\n", ")\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c\n", "\n", "\n", "\n", "\n" ], "text/html": [ "\n", "\n", "\n", "\n", "\n", "\n", "GFc\n", "\n", "Inf(\n", "\n", ")\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c\n", "\n", "\n", "\n", "\n" ], "text/plain": [ " *' at 0x7faa1c7663d0> >" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "a\n", "\n", "t\n", "[all]\n", "\n", "\n", "\n", "1\n", "\n", "1\n", "\n", "\n", "\n", "I->1\n", "\n", "\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "1->0\n", "\n", "\n", "a\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "1\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ")\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "0,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & !c\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & c\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "c\n", "\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ")\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "0,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & !c\n", "\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & c\n", "\n", "\n", "\n", "\n", "2\n", "\n", "0,2\n", "\n", "\n", "\n", "0->2\n", "\n", "\n", "!a & !c\n", "\n", "\n", "\n", "\n", "0->2\n", "\n", "\n", "!a & c\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "c\n", "\n", "\n", "\n", "\n", "2->2\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "2->2\n", "\n", "\n", "c\n", "\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "Fb\n", "\n", "[Büchi]\n", "\n", "\n", "\n", "1\n", "\n", "1\n", "\n", "\n", "\n", "I->1\n", "\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "0\n", "\n", "\n", "0\n", "\n", "\n", "\n", "1->0\n", "\n", "\n", "b\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "1\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ")\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "0,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & !c\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & c\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & !c\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & c\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "c\n", "\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ")\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "0,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & !c\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & c\n", "\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & !c\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & c\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "c\n", "\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "Fb\n", "\n", "[co-Büchi]\n", "\n", "\n", "\n", "1\n", "\n", "\n", "1\n", "\n", "\n", "\n", "I->1\n", "\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "1->0\n", "\n", "\n", "b\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "1\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ")\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "0,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & !c\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & c\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & !c\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & c\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "c\n", "\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ")\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "0,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & !c\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & c\n", "\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & !c\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & c\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "c\n", "\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "GFc\n", "\n", "Inf(\n", "\n", ")\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c\n", "\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ")&Inf(\n", "\n", ")\n", "[gen. Büchi 2]\n", "\n", "\n", "\n", "0\n", "\n", "0,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c\n", "\n", "\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ")\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "0,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c\n", "\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "FGd\n", "\n", "Fin(\n", "\n", ")\n", "[co-Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ") & Fin(\n", "\n", ")\n", "[Rabin-like 1]\n", "\n", "\n", "\n", "0\n", "\n", "0,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c\n", "\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ") | Fin(\n", "\n", ")\n", "[gen. Streett 1]\n", "\n", "\n", "\n", "0\n", "\n", "0,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c\n", "\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ") & Fin(\n", "\n", ")\n", "[Rabin-like 1]\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "d\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "(Inf(\n", "\n", ")&Inf(\n", "\n", ")) & Fin(\n", "\n", ")\n", "[Streett-like 3]\n", "\n", "\n", "\n", "0\n", "\n", "0,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c & !d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c & d\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c & !d\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c & d\n", "\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ") | (Inf(\n", "\n", ") & Fin(\n", "\n", "))\n", "[Rabin-like 2]\n", "\n", "\n", "\n", "0\n", "\n", "0,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c & !d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c & d\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c & !d\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c & d\n", "\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ") | Fin(\n", "\n", ")\n", "[Streett-like 1]\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "d\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ") & (Inf(\n", "\n", ") | Fin(\n", "\n", "))\n", "[Streett-like 2]\n", "\n", "\n", "\n", "0\n", "\n", "0,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c & !d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c & d\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c & !d\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c & d\n", "\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ") | Inf(\n", "\n", ") | Fin(\n", "\n", ")\n", "[Rabin-like 3]\n", "\n", "\n", "\n", "0\n", "\n", "0,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c & !d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c & d\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c & !d\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c & d\n", "\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "left = auts[3]\n", "display(left)\n", "for right in auts:\n", " display_inline(right, spot.product(left, right), spot.product_or(left, right))" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "scrolled": false }, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", "\n", "\n", "\n", "\n", "FGd\n", "\n", "Fin(\n", "\n", ")\n", "[co-Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c\n", "\n", "\n", "\n" ], "text/html": [ "\n", "\n", "\n", "\n", "\n", "\n", "FGd\n", "\n", "Fin(\n", "\n", ")\n", "[co-Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c\n", "\n", "\n", "\n" ], "text/plain": [ " *' at 0x7faa1c766400> >" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "a\n", "\n", "t\n", "[all]\n", "\n", "\n", "\n", "1\n", "\n", "1\n", "\n", "\n", "\n", "I->1\n", "\n", "\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "1->0\n", "\n", "\n", "a\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "1\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Fin(\n", "\n", ")\n", "[co-Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "0,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & !c\n", "\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & c\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "c\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Fin(\n", "\n", ")\n", "[co-Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "0,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & !c\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & c\n", "\n", "\n", "\n", "2\n", "\n", "0,2\n", "\n", "\n", "\n", "0->2\n", "\n", "\n", "!a & !c\n", "\n", "\n", "\n", "0->2\n", "\n", "\n", "!a & c\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "c\n", "\n", "\n", "\n", "2->2\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "\n", "2->2\n", "\n", "\n", "c\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "Fb\n", "\n", "[Büchi]\n", "\n", "\n", "\n", "1\n", "\n", "1\n", "\n", "\n", "\n", "I->1\n", "\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "0\n", "\n", "\n", "0\n", "\n", "\n", "\n", "1->0\n", "\n", "\n", "b\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "1\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Fin(\n", "\n", ")\n", "[co-Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "0,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & !c\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & c\n", "\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & !c\n", "\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & c\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "c\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Fin(\n", "\n", ")\n", "[co-Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "0,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & !c\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & c\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & !c\n", "\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & c\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "c\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "Fb\n", "\n", "[co-Büchi]\n", "\n", "\n", "\n", "1\n", "\n", "\n", "1\n", "\n", "\n", "\n", "I->1\n", "\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "1->0\n", "\n", "\n", "b\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "1\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Fin(\n", "\n", ")\n", "[co-Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "0,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & !c\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & c\n", "\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & !c\n", "\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & c\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "c\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Fin(\n", "\n", ")\n", "[co-Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "0,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & !c\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & c\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & !c\n", "\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & c\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "c\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "GFc\n", "\n", "Inf(\n", "\n", ")\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c\n", "\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Fin(\n", "\n", ") & Inf(\n", "\n", ")\n", "[Rabin 1]\n", "\n", "\n", "\n", "0\n", "\n", "0,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c\n", "\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Fin(\n", "\n", ") | Inf(\n", "\n", ")\n", "[Streett 1]\n", "\n", "\n", "\n", "0\n", "\n", "0,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c\n", "\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "FGd\n", "\n", "Fin(\n", "\n", ")\n", "[co-Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Fin(\n", "\n", ")\n", "[co-Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "0,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Fin(\n", "\n", ")|Fin(\n", "\n", ")\n", "[gen. co-Büchi 2]\n", "\n", "\n", "\n", "0\n", "\n", "0,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ") & Fin(\n", "\n", ")\n", "[Rabin-like 1]\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "d\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Fin(\n", "\n", ") & Inf(\n", "\n", ") & Fin(\n", "\n", ")\n", "[Streett-like 3]\n", "\n", "\n", "\n", "0\n", "\n", "0,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c & !d\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c & d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c & !d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c & d\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Fin(\n", "\n", ") | (Inf(\n", "\n", ") & Fin(\n", "\n", "))\n", "[Rabin-like 2]\n", "\n", "\n", "\n", "0\n", "\n", "0,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c & !d\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c & d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c & !d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c & d\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ") | Fin(\n", "\n", ")\n", "[Streett-like 1]\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "d\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Fin(\n", "\n", ") & (Inf(\n", "\n", ") | Fin(\n", "\n", "))\n", "[Streett-like 2]\n", "\n", "\n", "\n", "0\n", "\n", "0,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c & !d\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c & d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c & !d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c & d\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "(Fin(\n", "\n", ")|Fin(\n", "\n", ")) | Inf(\n", "\n", ")\n", "[Rabin-like 3]\n", "\n", "\n", "\n", "0\n", "\n", "0,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c & !d\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c & d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c & !d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c & d\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "left = auts[4]\n", "display(left)\n", "for right in auts:\n", " display_inline(right, spot.product(left, right), spot.product_or(left, right))" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "scrolled": false }, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ") & Fin(\n", "\n", ")\n", "[Rabin-like 1]\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "d\n", "\n", "\n", "\n" ], "text/html": [ "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ") & Fin(\n", "\n", ")\n", "[Rabin-like 1]\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "d\n", "\n", "\n", "\n" ], "text/plain": [ " *' at 0x7faa1c766550> >" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "a\n", "\n", "t\n", "[all]\n", "\n", "\n", "\n", "1\n", "\n", "1\n", "\n", "\n", "\n", "I->1\n", "\n", "\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "1->0\n", "\n", "\n", "a\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "1\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ") & Fin(\n", "\n", ")\n", "[Rabin-like 1]\n", "\n", "\n", "\n", "0\n", "\n", "0,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & !d\n", "\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & d\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "d\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ")\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "0,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & !d\n", "\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & d\n", "\n", "\n", "\n", "\n", "2\n", "\n", "0,2\n", "\n", "\n", "\n", "0->2\n", "\n", "\n", "!a & !d\n", "\n", "\n", "\n", "\n", "0->2\n", "\n", "\n", "!a & d\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "d\n", "\n", "\n", "\n", "\n", "2->2\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "2->2\n", "\n", "\n", "d\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "Fb\n", "\n", "[Büchi]\n", "\n", "\n", "\n", "1\n", "\n", "1\n", "\n", "\n", "\n", "I->1\n", "\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "0\n", "\n", "\n", "0\n", "\n", "\n", "\n", "1->0\n", "\n", "\n", "b\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "1\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ") & Fin(\n", "\n", ")\n", "[Rabin-like 1]\n", "\n", "\n", "\n", "0\n", "\n", "0,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & !d\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & d\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & !d\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & d\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "d\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ")\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "0,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & !d\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & d\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & !d\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & d\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "d\n", "\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "Fb\n", "\n", "[co-Büchi]\n", "\n", "\n", "\n", "1\n", "\n", "\n", "1\n", "\n", "\n", "\n", "I->1\n", "\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "1->0\n", "\n", "\n", "b\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "1\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ") & Fin(\n", "\n", ")\n", "[Rabin-like 1]\n", "\n", "\n", "\n", "0\n", "\n", "0,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & !d\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & d\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & !d\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & d\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "d\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ")\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "0,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & !d\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & d\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & !d\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & d\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "d\n", "\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "GFc\n", "\n", "Inf(\n", "\n", ")\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c\n", "\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "(Inf(\n", "\n", ")&Inf(\n", "\n", ")) & Fin(\n", "\n", ")\n", "[Streett-like 3]\n", "\n", "\n", "\n", "0\n", "\n", "0,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c & !d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c & !d\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c & d\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c & d\n", "\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "(Inf(\n", "\n", ") & Fin(\n", "\n", ")) | Inf(\n", "\n", ")\n", "[Rabin-like 2]\n", "\n", "\n", "\n", "0\n", "\n", "0,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c & !d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c & !d\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c & d\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c & d\n", "\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "FGd\n", "\n", "Fin(\n", "\n", ")\n", "[co-Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ") & Fin(\n", "\n", ") & Fin(\n", "\n", ")\n", "[Streett-like 3]\n", "\n", "\n", "\n", "0\n", "\n", "0,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c & !d\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c & !d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c & d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c & d\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "(Inf(\n", "\n", ") & Fin(\n", "\n", ")) | Fin(\n", "\n", ")\n", "[Rabin-like 2]\n", "\n", "\n", "\n", "0\n", "\n", "0,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c & !d\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c & !d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c & d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c & d\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ") & Fin(\n", "\n", ")\n", "[Rabin-like 1]\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "d\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "(Inf(\n", "\n", ")&Inf(\n", "\n", ")) & Fin(\n", "\n", ") & Fin(\n", "\n", ")\n", "[Streett-like 4]\n", "\n", "\n", "\n", "0\n", "\n", "0,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "d\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "(Inf(\n", "\n", ") & Fin(\n", "\n", ")) | (Inf(\n", "\n", ") & Fin(\n", "\n", "))\n", "[Rabin-like 2]\n", "\n", "\n", "\n", "0\n", "\n", "0,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "d\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ") | Fin(\n", "\n", ")\n", "[Streett-like 1]\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "d\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ") & Fin(\n", "\n", ") & (Inf(\n", "\n", ") | Fin(\n", "\n", "))\n", "[Streett-like 3]\n", "\n", "\n", "\n", "0\n", "\n", "0,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "d\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "(Inf(\n", "\n", ") & Fin(\n", "\n", ")) | Inf(\n", "\n", ") | Fin(\n", "\n", ")\n", "[Rabin-like 3]\n", "\n", "\n", "\n", "0\n", "\n", "0,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "d\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "left = auts[5]\n", "display(left)\n", "for right in auts:\n", " display_inline(right, spot.product(left, right), spot.product_or(left, right))" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "scrolled": false }, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", "\n", "\n", "\n", "\n", "a\n", "\n", "t\n", "[all]\n", "\n", "\n", "\n", "1\n", "\n", "1\n", "\n", "\n", "\n", "I->1\n", "\n", "\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "1->0\n", "\n", "\n", "a\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "1\n", "\n", "\n", "\n" ], "text/html": [ "\n", "\n", "\n", "\n", "\n", "\n", "a\n", "\n", "t\n", "[all]\n", "\n", "\n", "\n", "1\n", "\n", "1\n", "\n", "\n", "\n", "I->1\n", "\n", "\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "1->0\n", "\n", "\n", "a\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "1\n", "\n", "\n", "\n" ], "text/plain": [ " *' at 0x7faa1c7666a0> >" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "a\n", "\n", "t\n", "[all]\n", "\n", "\n", "\n", "1\n", "\n", "1\n", "\n", "\n", "\n", "I->1\n", "\n", "\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "1->0\n", "\n", "\n", "a\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "1\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "1,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a\n", "\n", "\n", "\n", "2\n", "\n", "2,2\n", "\n", "\n", "\n", "0->2\n", "\n", "\n", "!a\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "1\n", "\n", "\n", "\n", "2->2\n", "\n", "\n", "1\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "\n", "1,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "1\n", "\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a\n", "\n", "\n", "\n", "2\n", "\n", "\n", "2,2\n", "\n", "\n", "\n", "0->2\n", "\n", "\n", "!a\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "1\n", "\n", "\n", "\n", "2->2\n", "\n", "\n", "1\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "Fb\n", "\n", "[Büchi]\n", "\n", "\n", "\n", "1\n", "\n", "1\n", "\n", "\n", "\n", "I->1\n", "\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "0\n", "\n", "\n", "0\n", "\n", "\n", "\n", "1->0\n", "\n", "\n", "b\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "1\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "\n", "1,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & b\n", "\n", "\n", "\n", "2\n", "\n", "\n", "0,1\n", "\n", "\n", "\n", "0->2\n", "\n", "\n", "a & !b\n", "\n", "\n", "\n", "3\n", "\n", "\n", "2,0\n", "\n", "\n", "\n", "0->3\n", "\n", "\n", "!a & b\n", "\n", "\n", "\n", "4\n", "\n", "2,1\n", "\n", "\n", "\n", "0->4\n", "\n", "\n", "!a & !b\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "1\n", "\n", "\n", "\n", "2->1\n", "\n", "\n", "b\n", "\n", "\n", "\n", "2->2\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "3->3\n", "\n", "\n", "1\n", "\n", "\n", "\n", "4->3\n", "\n", "\n", "b\n", "\n", "\n", "\n", "4->4\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "1,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "1\n", "\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & b\n", "\n", "\n", "\n", "2\n", "\n", "0,1\n", "\n", "\n", "\n", "0->2\n", "\n", "\n", "a & !b\n", "\n", "\n", "\n", "3\n", "\n", "2,0\n", "\n", "\n", "\n", "0->3\n", "\n", "\n", "!a & b\n", "\n", "\n", "\n", "4\n", "\n", "\n", "2,1\n", "\n", "\n", "\n", "0->4\n", "\n", "\n", "!a & !b\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "1\n", "\n", "\n", "\n", "2->1\n", "\n", "\n", "b\n", "\n", "\n", "\n", "2->2\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "3->3\n", "\n", "\n", "1\n", "\n", "\n", "\n", "4->3\n", "\n", "\n", "b\n", "\n", "\n", "\n", "4->4\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "Fb\n", "\n", "[co-Büchi]\n", "\n", "\n", "\n", "1\n", "\n", "\n", "1\n", "\n", "\n", "\n", "I->1\n", "\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "1->0\n", "\n", "\n", "b\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "1\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "\n", "1,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & b\n", "\n", "\n", "\n", "2\n", "\n", "\n", "0,1\n", "\n", "\n", "\n", "0->2\n", "\n", "\n", "a & !b\n", "\n", "\n", "\n", "3\n", "\n", "\n", "2,0\n", "\n", "\n", "\n", "0->3\n", "\n", "\n", "!a & b\n", "\n", "\n", "\n", "4\n", "\n", "2,1\n", "\n", "\n", "\n", "0->4\n", "\n", "\n", "!a & !b\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "1\n", "\n", "\n", "\n", "2->1\n", "\n", "\n", "b\n", "\n", "\n", "\n", "2->2\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "3->3\n", "\n", "\n", "1\n", "\n", "\n", "\n", "4->3\n", "\n", "\n", "b\n", "\n", "\n", "\n", "4->4\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "1,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "1\n", "\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & b\n", "\n", "\n", "\n", "2\n", "\n", "0,1\n", "\n", "\n", "\n", "0->2\n", "\n", "\n", "a & !b\n", "\n", "\n", "\n", "3\n", "\n", "2,0\n", "\n", "\n", "\n", "0->3\n", "\n", "\n", "!a & b\n", "\n", "\n", "\n", "4\n", "\n", "\n", "2,1\n", "\n", "\n", "\n", "0->4\n", "\n", "\n", "!a & !b\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "1\n", "\n", "\n", "\n", "2->1\n", "\n", "\n", "b\n", "\n", "\n", "\n", "2->2\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "3->3\n", "\n", "\n", "1\n", "\n", "\n", "\n", "4->3\n", "\n", "\n", "b\n", "\n", "\n", "\n", "4->4\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "GFc\n", "\n", "Inf(\n", "\n", ")\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c\n", "\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "(Inf(\n", "\n", ") & Fin(\n", "\n", ")) | (Fin(\n", "\n", ") & Inf(\n", "\n", "))\n", "[Rabin-like 2]\n", "\n", "\n", "\n", "0\n", "\n", "1,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & !c\n", "\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & c\n", "\n", "\n", "\n", "\n", "\n", "2\n", "\n", "2,0\n", "\n", "\n", "\n", "0->2\n", "\n", "\n", "!a & !c\n", "\n", "\n", "\n", "\n", "0->2\n", "\n", "\n", "!a & c\n", "\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "c\n", "\n", "\n", "\n", "\n", "\n", "2->2\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "2->2\n", "\n", "\n", "c\n", "\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "(Inf(\n", "\n", ")&Inf(\n", "\n", ")) | (Fin(\n", "\n", ") & Fin(\n", "\n", "))\n", "\n", "\n", "\n", "0\n", "\n", "1,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & !c\n", "\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & c\n", "\n", "\n", "\n", "\n", "\n", "2\n", "\n", "2,0\n", "\n", "\n", "\n", "0->2\n", "\n", "\n", "!a & !c\n", "\n", "\n", "\n", "\n", "0->2\n", "\n", "\n", "!a & c\n", "\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "c\n", "\n", "\n", "\n", "\n", "\n", "2->2\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "2->2\n", "\n", "\n", "c\n", "\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "FGd\n", "\n", "Fin(\n", "\n", ")\n", "[co-Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "(Inf(\n", "\n", ")&Inf(\n", "\n", ")) | (Fin(\n", "\n", ") & Fin(\n", "\n", "))\n", "\n", "\n", "\n", "0\n", "\n", "1,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & !c\n", "\n", "\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & c\n", "\n", "\n", "\n", "\n", "2\n", "\n", "2,0\n", "\n", "\n", "\n", "0->2\n", "\n", "\n", "!a & !c\n", "\n", "\n", "\n", "\n", "\n", "0->2\n", "\n", "\n", "!a & c\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "c\n", "\n", "\n", "\n", "\n", "2->2\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "\n", "2->2\n", "\n", "\n", "c\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "(Inf(\n", "\n", ") & Fin(\n", "\n", ")) | (Fin(\n", "\n", ") & Inf(\n", "\n", "))\n", "[Rabin-like 2]\n", "\n", "\n", "\n", "0\n", "\n", "1,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & !c\n", "\n", "\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & c\n", "\n", "\n", "\n", "\n", "2\n", "\n", "2,0\n", "\n", "\n", "\n", "0->2\n", "\n", "\n", "!a & !c\n", "\n", "\n", "\n", "\n", "\n", "0->2\n", "\n", "\n", "!a & c\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "c\n", "\n", "\n", "\n", "\n", "2->2\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "\n", "2->2\n", "\n", "\n", "c\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ") & Fin(\n", "\n", ")\n", "[Rabin-like 1]\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "d\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ")\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "1,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & !d\n", "\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & d\n", "\n", "\n", "\n", "\n", "2\n", "\n", "2,0\n", "\n", "\n", "\n", "0->2\n", "\n", "\n", "!a & !d\n", "\n", "\n", "\n", "\n", "0->2\n", "\n", "\n", "!a & d\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "d\n", "\n", "\n", "\n", "\n", "2->2\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "2->2\n", "\n", "\n", "d\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ")\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "1,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & !d\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & d\n", "\n", "\n", "\n", "2\n", "\n", "2,0\n", "\n", "\n", "\n", "0->2\n", "\n", "\n", "!a & !d\n", "\n", "\n", "\n", "0->2\n", "\n", "\n", "!a & d\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "d\n", "\n", "\n", "\n", "2->2\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "2->2\n", "\n", "\n", "d\n", "\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ") | Fin(\n", "\n", ")\n", "[Streett-like 1]\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "d\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ")\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "1,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & !d\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & d\n", "\n", "\n", "\n", "2\n", "\n", "2,0\n", "\n", "\n", "\n", "0->2\n", "\n", "\n", "!a & !d\n", "\n", "\n", "\n", "0->2\n", "\n", "\n", "!a & d\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "d\n", "\n", "\n", "\n", "2->2\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "2->2\n", "\n", "\n", "d\n", "\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ")\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "1,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & !d\n", "\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & d\n", "\n", "\n", "\n", "\n", "2\n", "\n", "2,0\n", "\n", "\n", "\n", "0->2\n", "\n", "\n", "!a & !d\n", "\n", "\n", "\n", "\n", "0->2\n", "\n", "\n", "!a & d\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "d\n", "\n", "\n", "\n", "\n", "2->2\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "2->2\n", "\n", "\n", "d\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "left = auts[0]\n", "display(left)\n", "for right in auts:\n", " display_inline(right, spot.product_xor(left, right), spot.product_xnor(left, right))" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "scrolled": false }, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", "\n", "\n", "\n", "\n", "Fb\n", "\n", "[Büchi]\n", "\n", "\n", "\n", "1\n", "\n", "1\n", "\n", "\n", "\n", "I->1\n", "\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "0\n", "\n", "\n", "0\n", "\n", "\n", "\n", "1->0\n", "\n", "\n", "b\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "1\n", "\n", "\n", "\n" ], "text/html": [ "\n", "\n", "\n", "\n", "\n", "\n", "Fb\n", "\n", "[Büchi]\n", "\n", "\n", "\n", "1\n", "\n", "1\n", "\n", "\n", "\n", "I->1\n", "\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "0\n", "\n", "\n", "0\n", "\n", "\n", "\n", "1->0\n", "\n", "\n", "b\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "1\n", "\n", "\n", "\n" ], "text/plain": [ " *' at 0x7faa1c766670> >" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "a\n", "\n", "t\n", "[all]\n", "\n", "\n", "\n", "1\n", "\n", "1\n", "\n", "\n", "\n", "I->1\n", "\n", "\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "1->0\n", "\n", "\n", "a\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "1\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "\n", "1,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & b\n", "\n", "\n", "\n", "2\n", "\n", "\n", "0,2\n", "\n", "\n", "\n", "0->2\n", "\n", "\n", "!a & b\n", "\n", "\n", "\n", "3\n", "\n", "\n", "1,0\n", "\n", "\n", "\n", "0->3\n", "\n", "\n", "a & !b\n", "\n", "\n", "\n", "4\n", "\n", "1,2\n", "\n", "\n", "\n", "0->4\n", "\n", "\n", "!a & !b\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "1\n", "\n", "\n", "\n", "2->2\n", "\n", "\n", "1\n", "\n", "\n", "\n", "3->1\n", "\n", "\n", "b\n", "\n", "\n", "\n", "3->3\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "4->2\n", "\n", "\n", "b\n", "\n", "\n", "\n", "4->4\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "1,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "1\n", "\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & b\n", "\n", "\n", "\n", "2\n", "\n", "0,2\n", "\n", "\n", "\n", "0->2\n", "\n", "\n", "!a & b\n", "\n", "\n", "\n", "3\n", "\n", "1,0\n", "\n", "\n", "\n", "0->3\n", "\n", "\n", "a & !b\n", "\n", "\n", "\n", "4\n", "\n", "\n", "1,2\n", "\n", "\n", "\n", "0->4\n", "\n", "\n", "!a & !b\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "1\n", "\n", "\n", "\n", "2->2\n", "\n", "\n", "1\n", "\n", "\n", "\n", "3->1\n", "\n", "\n", "b\n", "\n", "\n", "\n", "3->3\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "4->2\n", "\n", "\n", "b\n", "\n", "\n", "\n", "4->4\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "Fb\n", "\n", "[Büchi]\n", "\n", "\n", "\n", "1\n", "\n", "1\n", "\n", "\n", "\n", "I->1\n", "\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "0\n", "\n", "\n", "0\n", "\n", "\n", "\n", "1->0\n", "\n", "\n", "b\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "1\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "1,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "1\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "\n", "1,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "1\n", "\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "1\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "Fb\n", "\n", "[co-Büchi]\n", "\n", "\n", "\n", "1\n", "\n", "\n", "1\n", "\n", "\n", "\n", "I->1\n", "\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "1->0\n", "\n", "\n", "b\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "1\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "1,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "1\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "\n", "1,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "1\n", "\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "1\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "GFc\n", "\n", "Inf(\n", "\n", ")\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c\n", "\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "(Inf(\n", "\n", ") & Fin(\n", "\n", ")) | (Fin(\n", "\n", ") & Inf(\n", "\n", "))\n", "[Rabin-like 2]\n", "\n", "\n", "\n", "0\n", "\n", "1,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & !c\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & c\n", "\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & !c\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & c\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "c\n", "\n", "\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "(Inf(\n", "\n", ")&Inf(\n", "\n", ")) | (Fin(\n", "\n", ") & Fin(\n", "\n", "))\n", "\n", "\n", "\n", "0\n", "\n", "1,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & !c\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & c\n", "\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & !c\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & c\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "c\n", "\n", "\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "FGd\n", "\n", "Fin(\n", "\n", ")\n", "[co-Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "(Inf(\n", "\n", ")&Inf(\n", "\n", ")) | (Fin(\n", "\n", ") & Fin(\n", "\n", "))\n", "\n", "\n", "\n", "0\n", "\n", "1,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & !c\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & c\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & !c\n", "\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & c\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "c\n", "\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "(Inf(\n", "\n", ") & Fin(\n", "\n", ")) | (Fin(\n", "\n", ") & Inf(\n", "\n", "))\n", "[Rabin-like 2]\n", "\n", "\n", "\n", "0\n", "\n", "1,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & !c\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & c\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & !c\n", "\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & c\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "c\n", "\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ") & Fin(\n", "\n", ")\n", "[Rabin-like 1]\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "d\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ")\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "1,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & !d\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & d\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & !d\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & d\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "d\n", "\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ")\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "1,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & !d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & d\n", "\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & !d\n", "\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & d\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "d\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ") | Fin(\n", "\n", ")\n", "[Streett-like 1]\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "d\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ")\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "1,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & !d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & d\n", "\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & !d\n", "\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & d\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "d\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ")\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "1,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & !d\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & d\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & !d\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & d\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "d\n", "\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "left = auts[1]\n", "display(left)\n", "for right in auts:\n", " display_inline(right, spot.product_xor(left, right), spot.product_xnor(left, right))" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "scrolled": false }, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", "\n", "\n", "\n", "\n", "Fb\n", "\n", "[co-Büchi]\n", "\n", "\n", "\n", "1\n", "\n", "\n", "1\n", "\n", "\n", "\n", "I->1\n", "\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "1->0\n", "\n", "\n", "b\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "1\n", "\n", "\n", "\n" ], "text/html": [ "\n", "\n", "\n", "\n", "\n", "\n", "Fb\n", "\n", "[co-Büchi]\n", "\n", "\n", "\n", "1\n", "\n", "\n", "1\n", "\n", "\n", "\n", "I->1\n", "\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "1->0\n", "\n", "\n", "b\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "1\n", "\n", "\n", "\n" ], "text/plain": [ " *' at 0x7faa1c766700> >" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "a\n", "\n", "t\n", "[all]\n", "\n", "\n", "\n", "1\n", "\n", "1\n", "\n", "\n", "\n", "I->1\n", "\n", "\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "1->0\n", "\n", "\n", "a\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "1\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "\n", "1,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & b\n", "\n", "\n", "\n", "2\n", "\n", "\n", "0,2\n", "\n", "\n", "\n", "0->2\n", "\n", "\n", "!a & b\n", "\n", "\n", "\n", "3\n", "\n", "\n", "1,0\n", "\n", "\n", "\n", "0->3\n", "\n", "\n", "a & !b\n", "\n", "\n", "\n", "4\n", "\n", "1,2\n", "\n", "\n", "\n", "0->4\n", "\n", "\n", "!a & !b\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "1\n", "\n", "\n", "\n", "2->2\n", "\n", "\n", "1\n", "\n", "\n", "\n", "3->1\n", "\n", "\n", "b\n", "\n", "\n", "\n", "3->3\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "4->2\n", "\n", "\n", "b\n", "\n", "\n", "\n", "4->4\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "1,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "1\n", "\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & b\n", "\n", "\n", "\n", "2\n", "\n", "0,2\n", "\n", "\n", "\n", "0->2\n", "\n", "\n", "!a & b\n", "\n", "\n", "\n", "3\n", "\n", "1,0\n", "\n", "\n", "\n", "0->3\n", "\n", "\n", "a & !b\n", "\n", "\n", "\n", "4\n", "\n", "\n", "1,2\n", "\n", "\n", "\n", "0->4\n", "\n", "\n", "!a & !b\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "1\n", "\n", "\n", "\n", "2->2\n", "\n", "\n", "1\n", "\n", "\n", "\n", "3->1\n", "\n", "\n", "b\n", "\n", "\n", "\n", "3->3\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "4->2\n", "\n", "\n", "b\n", "\n", "\n", "\n", "4->4\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "Fb\n", "\n", "[Büchi]\n", "\n", "\n", "\n", "1\n", "\n", "1\n", "\n", "\n", "\n", "I->1\n", "\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "0\n", "\n", "\n", "0\n", "\n", "\n", "\n", "1->0\n", "\n", "\n", "b\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "1\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "1,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "1\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "\n", "1,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "1\n", "\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "1\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "Fb\n", "\n", "[co-Büchi]\n", "\n", "\n", "\n", "1\n", "\n", "\n", "1\n", "\n", "\n", "\n", "I->1\n", "\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "1->0\n", "\n", "\n", "b\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "1\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "[co-Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "\n", "1,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "1\n", "\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "1\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "[co-Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "1,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "1\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "GFc\n", "\n", "Inf(\n", "\n", ")\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c\n", "\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "(Fin(\n", "\n", ") & Fin(\n", "\n", ")) | (Inf(\n", "\n", ")&Inf(\n", "\n", "))\n", "\n", "\n", "\n", "0\n", "\n", "1,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & !c\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & c\n", "\n", "\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & !c\n", "\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & c\n", "\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "c\n", "\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "(Fin(\n", "\n", ") & Inf(\n", "\n", ")) | (Inf(\n", "\n", ") & Fin(\n", "\n", "))\n", "[Rabin-like 2]\n", "\n", "\n", "\n", "0\n", "\n", "1,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & !c\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & c\n", "\n", "\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & !c\n", "\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & c\n", "\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "c\n", "\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "FGd\n", "\n", "Fin(\n", "\n", ")\n", "[co-Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "(Fin(\n", "\n", ") & Inf(\n", "\n", ")) | (Inf(\n", "\n", ") & Fin(\n", "\n", "))\n", "[Rabin-like 2]\n", "\n", "\n", "\n", "0\n", "\n", "1,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & !c\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & c\n", "\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & !c\n", "\n", "\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & c\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "c\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "(Fin(\n", "\n", ") & Fin(\n", "\n", ")) | (Inf(\n", "\n", ")&Inf(\n", "\n", "))\n", "\n", "\n", "\n", "0\n", "\n", "1,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & !c\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & c\n", "\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & !c\n", "\n", "\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & c\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "c\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ") & Fin(\n", "\n", ")\n", "[Rabin-like 1]\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "d\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ")\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "1,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & !d\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & d\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & !d\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & d\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "d\n", "\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ")\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "1,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & !d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & d\n", "\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & !d\n", "\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & d\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "d\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ") | Fin(\n", "\n", ")\n", "[Streett-like 1]\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "d\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ")\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "1,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & !d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & d\n", "\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & !d\n", "\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & d\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "d\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ")\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "1,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & !d\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & d\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & !d\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & d\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "d\n", "\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "left = auts[2]\n", "display(left)\n", "for right in auts:\n", " display_inline(right, spot.product_xor(left, right), spot.product_xnor(left, right))" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "scrolled": false }, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", "\n", "\n", "\n", "\n", "GFc\n", "\n", "Inf(\n", "\n", ")\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c\n", "\n", "\n", "\n", "\n" ], "text/html": [ "\n", "\n", "\n", "\n", "\n", "\n", "GFc\n", "\n", "Inf(\n", "\n", ")\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c\n", "\n", "\n", "\n", "\n" ], "text/plain": [ " *' at 0x7faa1c7663d0> >" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "a\n", "\n", "t\n", "[all]\n", "\n", "\n", "\n", "1\n", "\n", "1\n", "\n", "\n", "\n", "I->1\n", "\n", "\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "1->0\n", "\n", "\n", "a\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "1\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "(Inf(\n", "\n", ") & Fin(\n", "\n", ")) | (Fin(\n", "\n", ") & Inf(\n", "\n", "))\n", "[Rabin-like 2]\n", "\n", "\n", "\n", "0\n", "\n", "0,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & !c\n", "\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & c\n", "\n", "\n", "\n", "\n", "\n", "2\n", "\n", "0,2\n", "\n", "\n", "\n", "0->2\n", "\n", "\n", "!a & !c\n", "\n", "\n", "\n", "\n", "0->2\n", "\n", "\n", "!a & c\n", "\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "c\n", "\n", "\n", "\n", "\n", "\n", "2->2\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "2->2\n", "\n", "\n", "c\n", "\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "(Inf(\n", "\n", ")&Inf(\n", "\n", ")) | (Fin(\n", "\n", ") & Fin(\n", "\n", "))\n", "\n", "\n", "\n", "0\n", "\n", "0,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & !c\n", "\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & c\n", "\n", "\n", "\n", "\n", "\n", "2\n", "\n", "0,2\n", "\n", "\n", "\n", "0->2\n", "\n", "\n", "!a & !c\n", "\n", "\n", "\n", "\n", "0->2\n", "\n", "\n", "!a & c\n", "\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "c\n", "\n", "\n", "\n", "\n", "\n", "2->2\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "2->2\n", "\n", "\n", "c\n", "\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "Fb\n", "\n", "[Büchi]\n", "\n", "\n", "\n", "1\n", "\n", "1\n", "\n", "\n", "\n", "I->1\n", "\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "0\n", "\n", "\n", "0\n", "\n", "\n", "\n", "1->0\n", "\n", "\n", "b\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "1\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "(Inf(\n", "\n", ") & Fin(\n", "\n", ")) | (Fin(\n", "\n", ") & Inf(\n", "\n", "))\n", "[Rabin-like 2]\n", "\n", "\n", "\n", "0\n", "\n", "0,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & !c\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & c\n", "\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & !c\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & c\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "c\n", "\n", "\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "(Inf(\n", "\n", ")&Inf(\n", "\n", ")) | (Fin(\n", "\n", ") & Fin(\n", "\n", "))\n", "\n", "\n", "\n", "0\n", "\n", "0,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & !c\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & c\n", "\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & !c\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & c\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "c\n", "\n", "\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "Fb\n", "\n", "[co-Büchi]\n", "\n", "\n", "\n", "1\n", "\n", "\n", "1\n", "\n", "\n", "\n", "I->1\n", "\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "1->0\n", "\n", "\n", "b\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "1\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "(Inf(\n", "\n", ")&Inf(\n", "\n", ")) | (Fin(\n", "\n", ") & Fin(\n", "\n", "))\n", "\n", "\n", "\n", "0\n", "\n", "0,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & !c\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & c\n", "\n", "\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & !c\n", "\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & c\n", "\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "c\n", "\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "(Inf(\n", "\n", ") & Fin(\n", "\n", ")) | (Fin(\n", "\n", ") & Inf(\n", "\n", "))\n", "[Rabin-like 2]\n", "\n", "\n", "\n", "0\n", "\n", "0,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & !c\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & c\n", "\n", "\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & !c\n", "\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & c\n", "\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "c\n", "\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "GFc\n", "\n", "Inf(\n", "\n", ")\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c\n", "\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "(Inf(\n", "\n", ") & Fin(\n", "\n", ")) | (Fin(\n", "\n", ") & Inf(\n", "\n", "))\n", "[Rabin-like 2]\n", "\n", "\n", "\n", "0\n", "\n", "0,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c\n", "\n", "\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "(Inf(\n", "\n", ")&Inf(\n", "\n", ")) | (Fin(\n", "\n", ") & Fin(\n", "\n", "))\n", "\n", "\n", "\n", "0\n", "\n", "0,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c\n", "\n", "\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "FGd\n", "\n", "Fin(\n", "\n", ")\n", "[co-Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "(Inf(\n", "\n", ")&Inf(\n", "\n", ")) | (Fin(\n", "\n", ") & Fin(\n", "\n", "))\n", "\n", "\n", "\n", "0\n", "\n", "0,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c\n", "\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "(Inf(\n", "\n", ") & Fin(\n", "\n", ")) | (Fin(\n", "\n", ") & Inf(\n", "\n", "))\n", "[Rabin-like 2]\n", "\n", "\n", "\n", "0\n", "\n", "0,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c\n", "\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ") & Fin(\n", "\n", ")\n", "[Rabin-like 1]\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "d\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "(Inf(\n", "\n", ") & (Fin(\n", "\n", ") | Inf(\n", "\n", "))) | (Fin(\n", "\n", ") & Inf(\n", "\n", ") & Fin(\n", "\n", "))\n", "\n", "\n", "\n", "0\n", "\n", "0,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c & !d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c & d\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c & !d\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c & d\n", "\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "((Inf(\n", "\n", ")&Inf(\n", "\n", ")) & Fin(\n", "\n", ")) | (Fin(\n", "\n", ") & (Fin(\n", "\n", ") | Inf(\n", "\n", ")))\n", "\n", "\n", "\n", "0\n", "\n", "0,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c & !d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c & d\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c & !d\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c & d\n", "\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ") | Fin(\n", "\n", ")\n", "[Streett-like 1]\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "d\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "((Inf(\n", "\n", ")&Inf(\n", "\n", ")) & Fin(\n", "\n", ")) | (Fin(\n", "\n", ") & (Inf(\n", "\n", ") | Fin(\n", "\n", ")))\n", "\n", "\n", "\n", "0\n", "\n", "0,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c & !d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c & d\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c & !d\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c & d\n", "\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "(Inf(\n", "\n", ") & (Inf(\n", "\n", ") | Fin(\n", "\n", "))) | (Fin(\n", "\n", ") & Fin(\n", "\n", ") & Inf(\n", "\n", "))\n", "\n", "\n", "\n", "0\n", "\n", "0,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c & !d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c & d\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c & !d\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c & d\n", "\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "left = auts[3]\n", "display(left)\n", "for right in auts:\n", " display_inline(right, spot.product_xor(left, right), spot.product_xnor(left, right))" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "scrolled": false }, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", "\n", "\n", "\n", "\n", "FGd\n", "\n", "Fin(\n", "\n", ")\n", "[co-Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c\n", "\n", "\n", "\n" ], "text/html": [ "\n", "\n", "\n", "\n", "\n", "\n", "FGd\n", "\n", "Fin(\n", "\n", ")\n", "[co-Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c\n", "\n", "\n", "\n" ], "text/plain": [ " *' at 0x7faa1c766400> >" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "a\n", "\n", "t\n", "[all]\n", "\n", "\n", "\n", "1\n", "\n", "1\n", "\n", "\n", "\n", "I->1\n", "\n", "\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "1->0\n", "\n", "\n", "a\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "1\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "(Fin(\n", "\n", ") & Fin(\n", "\n", ")) | (Inf(\n", "\n", ")&Inf(\n", "\n", "))\n", "\n", "\n", "\n", "0\n", "\n", "0,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & !c\n", "\n", "\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & c\n", "\n", "\n", "\n", "\n", "2\n", "\n", "0,2\n", "\n", "\n", "\n", "0->2\n", "\n", "\n", "!a & !c\n", "\n", "\n", "\n", "\n", "\n", "0->2\n", "\n", "\n", "!a & c\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "c\n", "\n", "\n", "\n", "\n", "2->2\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "\n", "2->2\n", "\n", "\n", "c\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "(Fin(\n", "\n", ") & Inf(\n", "\n", ")) | (Inf(\n", "\n", ") & Fin(\n", "\n", "))\n", "[Rabin-like 2]\n", "\n", "\n", "\n", "0\n", "\n", "0,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & !c\n", "\n", "\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & c\n", "\n", "\n", "\n", "\n", "2\n", "\n", "0,2\n", "\n", "\n", "\n", "0->2\n", "\n", "\n", "!a & !c\n", "\n", "\n", "\n", "\n", "\n", "0->2\n", "\n", "\n", "!a & c\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "c\n", "\n", "\n", "\n", "\n", "2->2\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "\n", "2->2\n", "\n", "\n", "c\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "Fb\n", "\n", "[Büchi]\n", "\n", "\n", "\n", "1\n", "\n", "1\n", "\n", "\n", "\n", "I->1\n", "\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "0\n", "\n", "\n", "0\n", "\n", "\n", "\n", "1->0\n", "\n", "\n", "b\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "1\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "(Fin(\n", "\n", ") & Fin(\n", "\n", ")) | (Inf(\n", "\n", ")&Inf(\n", "\n", "))\n", "\n", "\n", "\n", "0\n", "\n", "0,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & !c\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & c\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & !c\n", "\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & c\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "c\n", "\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "(Fin(\n", "\n", ") & Inf(\n", "\n", ")) | (Inf(\n", "\n", ") & Fin(\n", "\n", "))\n", "[Rabin-like 2]\n", "\n", "\n", "\n", "0\n", "\n", "0,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & !c\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & c\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & !c\n", "\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & c\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "c\n", "\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "Fb\n", "\n", "[co-Büchi]\n", "\n", "\n", "\n", "1\n", "\n", "\n", "1\n", "\n", "\n", "\n", "I->1\n", "\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "1->0\n", "\n", "\n", "b\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "1\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "(Fin(\n", "\n", ") & Inf(\n", "\n", ")) | (Inf(\n", "\n", ") & Fin(\n", "\n", "))\n", "[Rabin-like 2]\n", "\n", "\n", "\n", "0\n", "\n", "0,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & !c\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & c\n", "\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & !c\n", "\n", "\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & c\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "c\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "(Fin(\n", "\n", ") & Fin(\n", "\n", ")) | (Inf(\n", "\n", ")&Inf(\n", "\n", "))\n", "\n", "\n", "\n", "0\n", "\n", "0,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & !c\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & c\n", "\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & !c\n", "\n", "\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & c\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "c\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "GFc\n", "\n", "Inf(\n", "\n", ")\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c\n", "\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "(Fin(\n", "\n", ") & Fin(\n", "\n", ")) | (Inf(\n", "\n", ")&Inf(\n", "\n", "))\n", "\n", "\n", "\n", "0\n", "\n", "0,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c\n", "\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "(Fin(\n", "\n", ") & Inf(\n", "\n", ")) | (Inf(\n", "\n", ") & Fin(\n", "\n", "))\n", "[Rabin-like 2]\n", "\n", "\n", "\n", "0\n", "\n", "0,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c\n", "\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "FGd\n", "\n", "Fin(\n", "\n", ")\n", "[co-Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "(Fin(\n", "\n", ") & Inf(\n", "\n", ")) | (Inf(\n", "\n", ") & Fin(\n", "\n", "))\n", "[Rabin-like 2]\n", "\n", "\n", "\n", "0\n", "\n", "0,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "(Fin(\n", "\n", ") & Fin(\n", "\n", ")) | (Inf(\n", "\n", ")&Inf(\n", "\n", "))\n", "\n", "\n", "\n", "0\n", "\n", "0,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ") & Fin(\n", "\n", ")\n", "[Rabin-like 1]\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "d\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "(Fin(\n", "\n", ") & (Fin(\n", "\n", ") | Inf(\n", "\n", "))) | ((Inf(\n", "\n", ")&Inf(\n", "\n", ")) & Fin(\n", "\n", "))\n", "\n", "\n", "\n", "0\n", "\n", "0,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c & !d\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c & d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c & !d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c & d\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "(Fin(\n", "\n", ") & Inf(\n", "\n", ") & Fin(\n", "\n", ")) | (Inf(\n", "\n", ") & (Fin(\n", "\n", ") | Inf(\n", "\n", ")))\n", "\n", "\n", "\n", "0\n", "\n", "0,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c & !d\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c & d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c & !d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c & d\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ") | Fin(\n", "\n", ")\n", "[Streett-like 1]\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "d\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "(Fin(\n", "\n", ") & Fin(\n", "\n", ") & Inf(\n", "\n", ")) | (Inf(\n", "\n", ") & (Inf(\n", "\n", ") | Fin(\n", "\n", ")))\n", "\n", "\n", "\n", "0\n", "\n", "0,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c & !d\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c & d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c & !d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c & d\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "(Fin(\n", "\n", ") & (Inf(\n", "\n", ") | Fin(\n", "\n", "))) | ((Inf(\n", "\n", ")&Inf(\n", "\n", ")) & Fin(\n", "\n", "))\n", "\n", "\n", "\n", "0\n", "\n", "0,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c & !d\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c & d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c & !d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c & d\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "left = auts[4]\n", "display(left)\n", "for right in auts:\n", " display_inline(right, spot.product_xor(left, right), spot.product_xnor(left, right))" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "scrolled": false }, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ") & Fin(\n", "\n", ")\n", "[Rabin-like 1]\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "d\n", "\n", "\n", "\n" ], "text/html": [ "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ") & Fin(\n", "\n", ")\n", "[Rabin-like 1]\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "d\n", "\n", "\n", "\n" ], "text/plain": [ " *' at 0x7faa1c766550> >" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "a\n", "\n", "t\n", "[all]\n", "\n", "\n", "\n", "1\n", "\n", "1\n", "\n", "\n", "\n", "I->1\n", "\n", "\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "1->0\n", "\n", "\n", "a\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "1\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ")\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "0,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & !d\n", "\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & d\n", "\n", "\n", "\n", "\n", "2\n", "\n", "0,2\n", "\n", "\n", "\n", "0->2\n", "\n", "\n", "!a & !d\n", "\n", "\n", "\n", "\n", "0->2\n", "\n", "\n", "!a & d\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "d\n", "\n", "\n", "\n", "\n", "2->2\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "2->2\n", "\n", "\n", "d\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ")\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "0,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & !d\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & d\n", "\n", "\n", "\n", "2\n", "\n", "0,2\n", "\n", "\n", "\n", "0->2\n", "\n", "\n", "!a & !d\n", "\n", "\n", "\n", "0->2\n", "\n", "\n", "!a & d\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "d\n", "\n", "\n", "\n", "2->2\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "2->2\n", "\n", "\n", "d\n", "\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "Fb\n", "\n", "[Büchi]\n", "\n", "\n", "\n", "1\n", "\n", "1\n", "\n", "\n", "\n", "I->1\n", "\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "0\n", "\n", "\n", "0\n", "\n", "\n", "\n", "1->0\n", "\n", "\n", "b\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "1\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ")\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "0,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & !d\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & d\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & !d\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & d\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "d\n", "\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ")\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "0,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & !d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & d\n", "\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & !d\n", "\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & d\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "d\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "Fb\n", "\n", "[co-Büchi]\n", "\n", "\n", "\n", "1\n", "\n", "\n", "1\n", "\n", "\n", "\n", "I->1\n", "\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "1->0\n", "\n", "\n", "b\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "1\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ")\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "0,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & !d\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & d\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & !d\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & d\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "d\n", "\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ")\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "0,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & !d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & d\n", "\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & !d\n", "\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & d\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "d\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "GFc\n", "\n", "Inf(\n", "\n", ")\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c\n", "\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "(Inf(\n", "\n", ") & Fin(\n", "\n", ") & Fin(\n", "\n", ")) | ((Fin(\n", "\n", ") | Inf(\n", "\n", ")) & Inf(\n", "\n", "))\n", "\n", "\n", "\n", "0\n", "\n", "0,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c & !d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c & !d\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c & d\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c & d\n", "\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "((Inf(\n", "\n", ")&Inf(\n", "\n", ")) & Fin(\n", "\n", ")) | ((Fin(\n", "\n", ") | Inf(\n", "\n", ")) & Fin(\n", "\n", "))\n", "\n", "\n", "\n", "0\n", "\n", "0,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c & !d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c & !d\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c & d\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c & d\n", "\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "FGd\n", "\n", "Fin(\n", "\n", ")\n", "[co-Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "((Inf(\n", "\n", ")&Inf(\n", "\n", ")) & Fin(\n", "\n", ")) | ((Fin(\n", "\n", ") | Inf(\n", "\n", ")) & Fin(\n", "\n", "))\n", "\n", "\n", "\n", "0\n", "\n", "0,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c & !d\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c & !d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c & d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c & d\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "(Inf(\n", "\n", ") & Fin(\n", "\n", ") & Fin(\n", "\n", ")) | ((Fin(\n", "\n", ") | Inf(\n", "\n", ")) & Inf(\n", "\n", "))\n", "\n", "\n", "\n", "0\n", "\n", "0,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c & !d\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c & !d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c & d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c & d\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ") & Fin(\n", "\n", ")\n", "[Rabin-like 1]\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "d\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "(Inf(\n", "\n", ") & Fin(\n", "\n", ") & (Fin(\n", "\n", ") | Inf(\n", "\n", "))) | ((Fin(\n", "\n", ") | Inf(\n", "\n", ")) & Inf(\n", "\n", ") & Fin(\n", "\n", "))\n", "\n", "\n", "\n", "0\n", "\n", "0,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "d\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "((Inf(\n", "\n", ")&Inf(\n", "\n", ")) & Fin(\n", "\n", ") & Fin(\n", "\n", ")) | ((Fin(\n", "\n", ") | Inf(\n", "\n", ")) & (Fin(\n", "\n", ") | Inf(\n", "\n", ")))\n", "\n", "\n", "\n", "0\n", "\n", "0,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "d\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ") | Fin(\n", "\n", ")\n", "[Streett-like 1]\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "d\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "((Inf(\n", "\n", ")&Inf(\n", "\n", ")) & Fin(\n", "\n", ") & Fin(\n", "\n", ")) | ((Fin(\n", "\n", ") | Inf(\n", "\n", ")) & (Inf(\n", "\n", ") | Fin(\n", "\n", ")))\n", "\n", "\n", "\n", "0\n", "\n", "0,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "d\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "(Inf(\n", "\n", ") & Fin(\n", "\n", ") & (Inf(\n", "\n", ") | Fin(\n", "\n", "))) | ((Fin(\n", "\n", ") | Inf(\n", "\n", ")) & Fin(\n", "\n", ") & Inf(\n", "\n", "))\n", "\n", "\n", "\n", "0\n", "\n", "0,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "d\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "left = auts[5]\n", "display(left)\n", "for right in auts:\n", " display_inline(right, spot.product_xor(left, right), spot.product_xnor(left, right))" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "scrolled": false }, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ") | Fin(\n", "\n", ")\n", "[Streett-like 1]\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "d\n", "\n", "\n", "\n" ], "text/html": [ "\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ") | Fin(\n", "\n", ")\n", "[Streett-like 1]\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "d\n", "\n", "\n", "\n" ], "text/plain": [ " *' at 0x7faa1c766730> >" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "a\n", "\n", "t\n", "[all]\n", "\n", "\n", "\n", "1\n", "\n", "1\n", "\n", "\n", "\n", "I->1\n", "\n", "\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "1->0\n", "\n", "\n", "a\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "1\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ")\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "0,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & !d\n", "\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & d\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "d\n", "\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ") | Fin(\n", "\n", ")\n", "[Streett-like 1]\n", "\n", "\n", "\n", "0\n", "\n", "0,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & !d\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "a & d\n", "\n", "\n", "\n", "2\n", "\n", "0,2\n", "\n", "\n", "\n", "0->2\n", "\n", "\n", "!a & !d\n", "\n", "\n", "\n", "0->2\n", "\n", "\n", "!a & d\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "d\n", "\n", "\n", "\n", "2->2\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "2->2\n", "\n", "\n", "d\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "Fb\n", "\n", "[Büchi]\n", "\n", "\n", "\n", "1\n", "\n", "1\n", "\n", "\n", "\n", "I->1\n", "\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "0\n", "\n", "\n", "0\n", "\n", "\n", "\n", "1->0\n", "\n", "\n", "b\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "1\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ")\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "0,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & !d\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & d\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & !d\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & d\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "d\n", "\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ") | Fin(\n", "\n", ")\n", "[Streett-like 1]\n", "\n", "\n", "\n", "0\n", "\n", "0,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & !d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & d\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & !d\n", "\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & d\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "d\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "Fb\n", "\n", "[co-Büchi]\n", "\n", "\n", "\n", "1\n", "\n", "\n", "1\n", "\n", "\n", "\n", "I->1\n", "\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!b\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "1->0\n", "\n", "\n", "b\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "1\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ")\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "0,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & !d\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & d\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & !d\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & d\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "d\n", "\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ") | Fin(\n", "\n", ")\n", "[Streett-like 1]\n", "\n", "\n", "\n", "0\n", "\n", "0,1\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & !d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!b & d\n", "\n", "\n", "\n", "1\n", "\n", "0,0\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & !d\n", "\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "b & d\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "1->1\n", "\n", "\n", "d\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "GFc\n", "\n", "Inf(\n", "\n", ")\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c\n", "\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "(Inf(\n", "\n", ") | Fin(\n", "\n", ")) & Inf(\n", "\n", ")\n", "[Streett-like 2]\n", "\n", "\n", "\n", "0\n", "\n", "0,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c & !d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c & !d\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c & d\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c & d\n", "\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ") | Fin(\n", "\n", ") | Inf(\n", "\n", ")\n", "[Rabin-like 3]\n", "\n", "\n", "\n", "0\n", "\n", "0,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c & !d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c & !d\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c & d\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c & d\n", "\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "FGd\n", "\n", "Fin(\n", "\n", ")\n", "[co-Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "(Inf(\n", "\n", ") | Fin(\n", "\n", ")) & Fin(\n", "\n", ")\n", "[Streett-like 2]\n", "\n", "\n", "\n", "0\n", "\n", "0,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c & !d\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c & !d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c & d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c & d\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ") | (Fin(\n", "\n", ")|Fin(\n", "\n", "))\n", "[Rabin-like 3]\n", "\n", "\n", "\n", "0\n", "\n", "0,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c & !d\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c & !d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!c & d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "c & d\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ") & Fin(\n", "\n", ")\n", "[Rabin-like 1]\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "d\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "(Inf(\n", "\n", ") | Fin(\n", "\n", ")) & Inf(\n", "\n", ") & Fin(\n", "\n", ")\n", "[Streett-like 3]\n", "\n", "\n", "\n", "0\n", "\n", "0,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "d\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ") | Fin(\n", "\n", ") | (Inf(\n", "\n", ") & Fin(\n", "\n", "))\n", "[Rabin-like 3]\n", "\n", "\n", "\n", "0\n", "\n", "0,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "d\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ") | Fin(\n", "\n", ")\n", "[Streett-like 1]\n", "\n", "\n", "\n", "0\n", "\n", "0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "d\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "(Inf(\n", "\n", ") | Fin(\n", "\n", ")) & (Inf(\n", "\n", ") | Fin(\n", "\n", "))\n", "[Streett-like 2]\n", "\n", "\n", "\n", "0\n", "\n", "0,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "d\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ") | (Fin(\n", "\n", ")|Fin(\n", "\n", ")) | Inf(\n", "\n", ")\n", "[Rabin-like 4]\n", "\n", "\n", "\n", "0\n", "\n", "0,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!d\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "d\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "left = auts[6]\n", "display(left)\n", "for right in auts:\n", " display_inline(right, spot.product(left, right), spot.product_or(left, right))" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ")&Inf(\n", "\n", ")\n", "[gen. Büchi 2]\n", "\n", "\n", "\n", "0\n", "\n", "0,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!a & !b\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!a & b\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "a & !b\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "a & b\n", "\n", "\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Inf(\n", "\n", ")\n", "[Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "0,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!a & !b\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!a & b\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "a & !b\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "a & b\n", "\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "a1 = spot.translate('GFa')\n", "a2 = spot.translate('GFb')\n", "display_inline(spot.product(a1,a2), spot.product_or(a1, a2))" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Fin(\n", "\n", ")\n", "[co-Büchi]\n", "\n", "\n", "\n", "0\n", "\n", "0,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!a & !b\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!a & b\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "a & !b\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "a & b\n", "\n", "\n", "\n", "\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "Fin(\n", "\n", ")|Fin(\n", "\n", ")\n", "[gen. co-Büchi 2]\n", "\n", "\n", "\n", "0\n", "\n", "0,0\n", "\n", "\n", "\n", "I->0\n", "\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!a & !b\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "!a & b\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "a & !b\n", "\n", "\n", "\n", "\n", "0->0\n", "\n", "\n", "a & b\n", "\n", "\n", "\n", "\n", "\n", "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "a1 = spot.dualize(a1)\n", "a2 = spot.dualize(a2)\n", "display_inline(spot.product(a1,a2), spot.product_or(a1, a2))" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.7" } }, "nbformat": 4, "nbformat_minor": 2 }