︠dcd8e42c-017d-4d52-8cf6-b81ee9171e8bi︠
%html
Będziemy zajmować się kompleksami simplicjalnymi.
Kompleksy takie złożone są z punktów i krawędzi miedzy nimi.
Najprostsza definicja kompleksu polega na podaniu polecenia jak poniżej:
︡4727e765-13f8-481b-8681-2ce198f16b63︡{"html": "B\u0119dziemy zajmowa\u0107 si\u0119 kompleksami simplicjalnymi.
\nKompleksy takie z\u0142o\u017cone s\u0105 z punktów i kraw\u0119dzi miedzy nimi.
\nNajprostsza definicja kompleksu polega na podaniu polecenia jak poni\u017cej:
"}︡
︠9d7fb738-e2ce-451a-b57a-aa555481b69es︠
Z=SimplicialComplex([[0,1,2,3]]);Z
︡ea9973a7-0148-45ea-8218-380f3c3c8ec8︡{"stdout":"Simplicial complex with vertex set (0, 1, 2, 3) and facets {(0, 1, 2, 3)}\n"}︡{"done":true}︡
︠b38066b2-883c-4399-b1bf-fe4c1699c6e5i︠
%html
Ponieważ nie wykonaliśmy żadnych "wycinanek" powstał kopmpleks simplicjalny złozony z wszystkich możliwych krawędzi pomiedzy wszystkimi wymienionymi wierzchołkami.
Zostały dodane nie tylko krawedzie szkielet) ale także wszystkie podzbiory zbioru generującego, czyli pojawiły się trójkąty, a nawet jeden czworościan, obejmujący cały zbiór wierzchołków).
Ponizsze polecenie pokazuje jakie mamy "ściany" w naszym kompleksie.
Warto zwrócić uwagę, że wydruk pokazuje ściany pogrupowane wg. wymiaru.
︡bc39df0a-feca-4c7c-8936-04d45de1a293︡{"html": "Poniewa\u017c nie wykonali\u015bmy \u017cadnych \"wycinanek\" powsta\u0142 kopmpleks simplicjalny z\u0142ozony z wszystkich mo\u017cliwych kraw\u0119dzi pomiedzy wszystkimi wymienionymi wierzcho\u0142kami.
\nZosta\u0142y dodane nie tylko krawedzie szkielet) ale tak\u017ce wszystkie podzbiory zbioru generuj\u0105cego, czyli pojawi\u0142y si\u0119 trójk\u0105ty, a nawet jeden czworo\u015bcian, obejmuj\u0105cy ca\u0142y zbiór wierzcho\u0142ków).
\nPonizsze polecenie pokazuje jakie mamy \"\u015bciany\" w naszym kompleksie.
\nWarto zwróci\u0107 uwag\u0119, \u017ce wydruk pokazuje \u015bciany pogrupowane wg. wymiaru.
"}︡
︠db6fe923-2166-4577-9e62-beab24d09451s︠
Z.faces()
︡9d9e17cf-c144-4346-bfb7-f5b8d3fcdfad︡{"stdout":"{0: set([(3,), (0,), (1,), (2,)]), 1: set([(2, 3), (0, 2), (1, 3), (1, 2), (0, 3), (0, 1)]), 2: set([(0, 2, 3), (0, 1, 2), (1, 2, 3), (0, 1, 3)]), 3: set([(0, 1, 2, 3)]), -1: set([()])}\n"}︡{"done":true}︡
︠aeeb0b01-7285-4030-8c5d-a80438932daci︠
%html
Możemy narysowac nasz kompleks.
Patrząc uważnie, mozna dostzec że otrzymaliśmy czworoscian.
︡bdbcaaaf-d813-4315-8042-d5636ff964d0︡{"html": "Mo\u017cemy narysowac nasz kompleks.
\nPatrz\u0105c uwa\u017cnie, mozna dostzec \u017ce otrzymali\u015bmy czworoscian.
"}︡
︠146e14a6-7511-49e8-bd53-389a1e5a6120s︠
Z.graph()
︡63db86a3-70dd-4a37-aa38-6b98435f3c11︡{"d3":{"data":{"charge":-120,"directed":false,"edge_labels":false,"edge_thickness":2,"gravity":0.04,"height":null,"link_distance":50,"link_strength":1,"links":[{"color":"#aaa","curve":0,"name":"","source":0,"strength":0,"target":1},{"color":"#aaa","curve":0,"name":"","source":0,"strength":0,"target":2},{"color":"#aaa","curve":0,"name":"","source":0,"strength":0,"target":3},{"color":"#aaa","curve":0,"name":"","source":1,"strength":0,"target":2},{"color":"#aaa","curve":0,"name":"","source":1,"strength":0,"target":3},{"color":"#aaa","curve":0,"name":"","source":2,"strength":0,"target":3}],"loops":[],"nodes":[{"group":"0","name":"0"},{"group":"0","name":"1"},{"group":"0","name":"2"},{"group":"0","name":"3"}],"pos":[],"vertex_labels":true,"vertex_size":7,"width":null},"viewer":"graph"}}︡{"done":true}︡
︠e38bff64-d5d3-471d-9d0f-3be0810b5fb9i︠
%html
Będziemy bawić się kompleksami dla 3, 4-rech i 5 punktów.
Dla porzadku zacznijmy od 3: [0,1,2]
Zamaist startować z poleceniem SimplicialComplex([0,1,2]), możemy wystartować od prostrszego polecenia Simplex(3) kt©óe generuje 3-simplex, ale nasz kompleks bedzie dodatkow zawierał wszystkei jego ściany, aż do dna.
Robimy tak, gdyż jes tak oszczędniej: Simplex(10) jest krótsze niż SimoplicialComplex([0,1,2,3,4,5,6,7,8,9,10]).
Dodajemy wszystkei ściany gdyż obiekt Simplex(n) w Sage ma tylko n-1 wymiarowe ściany ( które mają swoje ściany, ale to zbyt niewygodne w operowaniu ścianami, prościej dodac je wszystkie i wygenerować kompleks)
︡ecb61227-398a-4ec5-9771-a8a73c129357︡{"html": "B\u0119dziemy bawi\u0107 si\u0119 kompleksami dla 3, 4-rech i 5 punktów.
\nDla porzadku zacznijmy od 3: [0,1,2]
\nZamaist startowa\u0107 z poleceniem SimplicialComplex([0,1,2]), mo\u017cemy wystartowa\u0107 od prostrszego polecenia Simplex(3) kt©óe generuje 3-simplex, ale nasz kompleks bedzie dodatkow zawiera\u0142 wszystkei jego \u015bciany, a\u017c do dna.
\nRobimy tak, gdy\u017c jes tak oszcz\u0119dniej: Simplex(10) jest krótsze ni\u017c SimoplicialComplex([0,1,2,3,4,5,6,7,8,9,10]).
\nDodajemy wszystkei \u015bciany gdy\u017c obiekt Simplex(n) w Sage ma tylko n-1 wymiarowe \u015bciany ( które maj\u0105 swoje \u015bciany, ale to zbyt niewygodne w operowaniu \u015bcianami, pro\u015bciej dodac je wszystkie i wygenerowa\u0107 kompleks)
"}︡
︠6f5b0891-37e7-410d-b1fa-5d114cde9db6s︠
X3=SimplicialComplex(Simplex(3).faces());X3
︡3933e96c-55eb-4896-873f-59bc3d9ff32d︡{"stdout":"Simplicial complex with vertex set (0, 1, 2, 3) and facets {(0, 2, 3), (0, 1, 2), (1, 2, 3), (0, 1, 3)}\n"}︡{"done":true}︡
︠d5e9a1e4-a874-4c0c-a187-50bdd13eefcci︠
%html
Zerknijmy jakie to ścainy ma nasz kompleks:
︡01bc3332-6da3-4fba-93f2-e5263024c235︡{"html": "Zerknijmy jakie to \u015bcainy ma nasz kompleks:
"}︡
︠bfde5466-2e58-4154-9ad5-12f17968e26bs︠
X3.faces()
︡fb29d037-04e1-45f0-b147-fb7d7a9286bc︡{"stdout":"{0: set([(3,), (0,), (1,), (2,)]), 1: set([(2, 3), (0, 2), (1, 3), (1, 2), (0, 3), (0, 1)]), 2: set([(0, 2, 3), (0, 1, 2), (1, 2, 3), (0, 1, 3)]), -1: set([()])}\n"}︡{"done":true}︡
︠b6f25067-e779-4049-9497-245302fbf1ddi︠
%html
Wykonamy teraz nastepującą operację na simpleksie $X^3$: usuniemy ścianę 0 ( czyli wierzchołek) i zobaczymy co nam zostanie.
Powstały obiekt nazwijmy $X^3_0$
︡9db32795-9356-48a1-bc4d-80321e868891︡{"html": "Wykonamy teraz nastepuj\u0105c\u0105 operacj\u0119 na simpleksie $X^3$: usuniemy \u015bcian\u0119 0 ( czyli wierzcho\u0142ek) i zobaczymy co nam zostanie.
\nPowsta\u0142y obiekt nazwijmy $X^3_0$
"}︡
︠76884f5e-931e-4744-aa10-ac7befc3e9b6s︠
X3_0=X3.remove_face([0]);X3_0
︡253e511f-16d3-4046-8ad8-57d3f1c46685︡{"stdout":"Simplicial complex with vertex set (1, 2, 3) and facets {(1, 2, 3)}\n"}︡{"done":true}︡
︠9adda88a-e34d-40f2-b237-4f495e9031c0i︠
%html
Jak widać powyżej dostaliśmy kompleks simplicjalny złozony z punktów (1,2,3), który posiada tylko jedna ścanę o maksymalnym wymiarze: mianowicie (1,2,3), wraz z wszystkimi jego "ścanami".
Wyświetlimy sobie wszystkei śiany obiektu $X^3_0$ kóry otrzymalismy.
︡093cb745-6362-4227-a615-2f494e2b848a︡{"html": "Jak wida\u0107 powy\u017cej dostali\u015bmy kompleks simplicjalny z\u0142ozony z punktów (1,2,3), który posiada tylko jedna \u015bcan\u0119 o maksymalnym wymiarze: mianowicie (1,2,3), wraz z wszystkimi jego \"\u015bcanami\".
\nWy\u015bwietlimy sobie wszystkei \u015biany obiektu $X^3_0$ kóry otrzymalismy.
"}︡
︠456afcb3-7849-4eea-99a6-cee39c6846bcs︠
X3_0.faces()
︡fcfee95f-987e-4cbd-90cd-b702809192e7︡{"stdout":"{0: set([(2,), (3,), (1,)]), 1: set([(1, 3), (1, 2), (2, 3)]), 2: set([(1, 2, 3)]), -1: set([()])}\n"}︡{"done":true}︡
︠5dbea009-3cda-4fa9-93db-ad80b3b9f202i︠
%html
Sage niestety usuwa ściany z oryginalnego kompleksu $X^3$ ( po opercji usunięcia ściany 0, $X^3$ zostal zmodyfikowany).
Aby wykonać kolejne operacje, odnawiamy $X^3$ do jego oryginalnej postaci.
︡dc76a047-e3de-4fed-af12-52931cb18722︡{"html": "Sage niestety usuwa \u015bciany z oryginalnego kompleksu $X^3$ ( po opercji usuni\u0119cia \u015bciany 0, $X^3$ zostal zmodyfikowany).
\nAby wykona\u0107 kolejne operacje, odnawiamy $X^3$ do jego oryginalnej postaci.
"}︡
︠abbe174f-0fbd-4d31-9d79-f921a2672223s︠
X3=SimplicialComplex(Simplex(3).faces());X3
︡abc6765d-30cf-4d2c-9bfa-e276b1701e07︡{"stdout":"Simplicial complex with vertex set (0, 1, 2, 3) and facets {(0, 2, 3), (0, 1, 2), (1, 2, 3), (0, 1, 3)}\n"}︡{"done":true}︡
︠1554e625-d03a-4aad-ba66-8d4b7fd49a97i︠
%html
Powyżej usuwaliśmy ścianę ( wierzchołek) "0".
Teraz usuniemy z pełnego $X^3$ wszystkei inne ściany poza 0.
Wynikowy obiekt operacji oznaczymy $X^3_{123}$
︡fac1bce5-944f-4126-b5f5-0cfaf85fe27f︡{"html": "Powy\u017cej usuwali\u015bmy \u015bcian\u0119 ( wierzcho\u0142ek) \"0\".
\nTeraz usuniemy z pe\u0142nego $X^3$ wszystkei inne \u015bciany poza 0.
\nWynikowy obiekt operacji oznaczymy $X^3_{123}$
"}︡
︠a7e26fb5-ab41-4ac9-ad9a-cffc07bfe90bs︠
X3_123=X3.remove_face([1]).remove_face([2]).remove_face([3]);X3_123
︡6abf8387-bd61-402a-b7e1-11e4a6ed6696︡{"stdout":"Simplicial complex with vertex set (0,) and facets {(0,)}\n"}︡{"done":true}︡
︠d27220ba-efb3-44fc-a110-69e45300707fi︠
%html
Zgodnie z oczekiwaniami wynik to pojedynczy wierzchołek 0, co można sprawdzić wyświetlając ściany $X^3_{123}$
︡09d09e98-f592-4926-8130-26f49e5e95bb︡{"html": "Zgodnie z oczekiwaniami wynik to pojedynczy wierzcho\u0142ek 0, co mo\u017cna sprawdzi\u0107 wy\u015bwietlaj\u0105c \u015bciany $X^3_{123}$
"}︡
︠f16ccede-c1db-429b-bd4b-e80153929403s︠
X3_123.faces()
︡487e372e-4553-4e38-ae21-667858bd95b6︡{"stdout":"{0: set([(0,)]), -1: set([()])}\n"}︡{"done":true}︡
︠832beddd-2d48-4a59-af88-e45bd3976d02i︠
%html
Mamy zatem nastepującą sytuację. Niech $D_i$ oznacza usunięcie ściany $i$
Operacje które wykonalismy były zatem takie:
$$D_0 X^3 = X^3_0$$
oraz
$$D_1 D_2 D_3 X^3 = X^3_{123}$$
Z prostego rachunku kombinatorycznego wynika, że jest tyle samo wierzchołków $n$ co podzbiorów $(n-1)$ eleemntowych ( wybór wierzchołka to to samo co wybór pozostałych $n-1$ wierzchołków.
Oznacza to że mamy jednoznaczne odwzorowanie zbioru powstałego przez działanie "operatora" $D_i$ i zbioru powstałego przez działanie $n-1$ pozostałych operatorów $D_{i_1} D_{i_2} ...D_{i_{n-1}}$ gdzie $i \notin \{ i_{1} \dots i_{n-1} \}$
︡7d280e6e-59fc-4401-949b-53350020ea07︡{"html": "Mamy zatem nastepuj\u0105c\u0105 sytuacj\u0119. Niech $D_i$ oznacza usuni\u0119cie \u015bciany $i$
\nOperacje które wykonalismy by\u0142y zatem takie:
\n$$D_0 X^3 = X^3_0$$
\noraz
\n$$D_1 D_2 D_3 X^3 = X^3_{123}$$
\n
\nZ prostego rachunku kombinatorycznego wynika, \u017ce jest tyle samo wierzcho\u0142ków $n$ co podzbiorów $(n-1)$ eleemntowych ( wybór wierzcho\u0142ka to to samo co wybór pozosta\u0142ych $n-1$ wierzcho\u0142ków.
\nOznacza to \u017ce mamy jednoznaczne odwzorowanie zbioru powsta\u0142ego przez dzia\u0142anie \"operatora\" $D_i$ i zbioru powsta\u0142ego przez dzia\u0142anie $n-1$ pozosta\u0142ych operatorów $D_{i_1} D_{i_2} ...D_{i_{n-1}}$ gdzie $i \\notin \\{ i_{1} \\dots i_{n-1} \\}$
"}︡
︠e318b044-85fc-45ca-b4f6-00aea669d833s︠
X3=SimplicialComplex(Simplex(3).faces());X3
︡cdcc3752-f4fc-43ac-8095-08cb4d8afb7c︡{"stdout":"Simplicial complex with vertex set (0, 1, 2, 3) and facets {(0, 2, 3), (0, 1, 2), (1, 2, 3), (0, 1, 3)}\n"}︡{"done":true}︡
︠c470d6e1-44fd-45b8-b54e-31411ef7983bi︠
%html
W szczególności oznacza to, że zbudowaliśmy odwzorowanie pomiędzy wierzchołkami ( simpleksami 0-wymairowymi) i ścianmi ( simpleksami) $n-1$ wymiarowymi.
Sprawdźmy że jest ich tyle samo:
︡403d13c3-5edb-448f-9a23-b48136bd5cf2︡{"html": "W szczególno\u015bci oznacza to, \u017ce zbudowali\u015bmy odwzorowanie pomi\u0119dzy wierzcho\u0142kami ( simpleksami 0-wymairowymi) i \u015bcianmi ( simpleksami) $n-1$ wymiarowymi.
\nSprawd\u017amy \u017ce jest ich tyle samo:
"}︡
︠9c8822b5-b670-4251-95d8-33d718580396s︠
X3.faces()
︡e6fee54f-b739-494d-abb6-754e0a040d9e︡{"stdout":"{0: set([(3,), (0,), (1,), (2,)]), 1: set([(2, 3), (0, 2), (1, 3), (1, 2), (0, 3), (0, 1)]), 2: set([(0, 2, 3), (0, 1, 2), (1, 2, 3), (0, 1, 3)]), -1: set([()])}\n"}︡{"done":true}︡
︠8a7c9302-3bdf-41a2-b589-c91e961610a5i︠
%html
Oznaczmy tak zdefiniowane odwzorowanie litera $L$
mamy wówczas ( na razie tylko dla pojedyńczych wystapień operatora $D_i$:
$$D_i X^n = L D_{i_1} D_{i_2} ...D_{i_{n-1}} X^n$$ gdzie $i \notin \{ i_{1} \dots i_{n-1} \}$
W dalszej kolejności sprawdzimy jak pod działaneuim operatora $D_i$ zachowuja się simpleksy, kiedy operatory działają parami.
$X^3_{01}=D_0 D_1 X^3$ itd.
︡ab42e4d5-a809-4270-9052-503d84eea18c︡{"html": "Oznaczmy tak zdefiniowane odwzorowanie litera $L$
\nmamy wówczas ( na razie tylko dla pojedy\u0144czych wystapie\u0144 operatora $D_i$:
\n$$D_i X^n = L D_{i_1} D_{i_2} ...D_{i_{n-1}} X^n$$ gdzie $i \\notin \\{ i_{1} \\dots i_{n-1} \\}$
\nW dalszej kolejno\u015bci sprawdzimy jak pod dzia\u0142aneuim operatora $D_i$ zachowuja si\u0119 simpleksy, kiedy operatory dzia\u0142aj\u0105 parami.
\n$X^3_{01}=D_0 D_1 X^3$ itd.
"}︡
︠a520e390-fd62-4735-8cbd-2ef649e199ecs︠
X3_01=X3.remove_face([0]).remove_face([1]);X3_01
︡d8034dbb-338c-4bbf-be11-5aea4acce4b1︡{"stdout":"Simplicial complex with vertex set (2, 3) and facets {(2, 3)}\n"}︡{"done":true}︡
︠eda2ae35-b15b-4caa-8634-c242fb5cc4f2s︠
X3=SimplicialComplex(Simplex(3).faces());X3
︡e557e79b-39ca-4940-b731-97ff389f3e20︡{"stdout":"Simplicial complex with vertex set (0, 1, 2, 3) and facets {(0, 2, 3), (0, 1, 2), (1, 2, 3), (0, 1, 3)}\n"}︡{"done":true}︡
︠6db1c777-c118-48e1-bbce-3cd89bdcae78i︠
%html
A teraz operacja komplementarna:
$X^3_{23}=D_2 D_3 X^3$
︡db5b900c-80e9-469a-9c43-19212cd35691︡{"html": "A teraz operacja komplementarna:
\n$X^3_{23}=D_2 D_3 X^3$
"}︡
︠0147e64f-536f-43de-92f4-c7702f8c99e1s︠
X3_23=X3.remove_face([2]).remove_face([3]);X3_23
︡be458980-c333-4eb4-8a3e-7ae478dcbba3︡{"stdout":"Simplicial complex with vertex set (0, 1) and facets {(0, 1)}\n"}︡{"done":true}︡
︠45e0f711-94bb-4659-ac0b-ced332fccb7fi︠
%html
Porównajmy ściany wyników $X^3_{01}$ oraz $X^3_{23}$
︡2a0a928e-042f-4447-b6c6-c8073f7dd39c︡{"html": "Porównajmy \u015bciany wyników $X^3_{01}$ oraz $X^3_{23}$
"}︡
︠8e54ba80-9673-4f43-aba3-e6d10a0fa3e8s︠
X3_01.faces()
︡40e49b6f-cc21-491d-b064-9ca77cd90272︡{"stdout":"{0: set([(2,), (3,)]), 1: set([(2, 3)]), -1: set([()])}\n"}︡{"done":true}︡
︠0f7ec9ba-3844-47ce-9810-458b42a2ac38s︠
X3_23.faces()
︡566e3fcd-74f5-42c0-9651-84f0009eec27︡{"stdout":"{0: set([(0,), (1,)]), 1: set([(0, 1)]), -1: set([()])}\n"}︡{"done":true}︡
︠88337d1e-244f-4e45-bc73-5a97cb52b5b4i︠
%html
Jak widac powyżej mamy taka samą liczbę ścian 2 wymiarowych, konketnie jest to w obu wypadkach jedna ściana.
Możemy uważać, że jest to definicja działanai odwzorowanie $L$ w ogólniejszym przypadku par operatorów $D_i D_k$:
$$D_{p_1} D_{p_2} \dots D_{p_k} X^n = L D_{i_1} \dots D_{i_{n-k}} X^n$$
gdzie $p_{1}, \dots ,p_{k} \notin \{ {i_1}, i_{2}, \dots ,i_{n-k} \}$
To samo dla simplexu $X^4$ .
︡00df33c1-6c0c-43c3-99aa-c9d87d613a9c︡{"html": "Jak widac powy\u017cej mamy taka sam\u0105 liczb\u0119 \u015bcian 2 wymiarowych, konketnie jest to w obu wypadkach jedna \u015bciana.
\nMo\u017cemy uwa\u017ca\u0107, \u017ce jest to definicja dzia\u0142anai odwzorowanie $L$ w ogólniejszym przypadku par operatorów $D_i D_k$:
\n$$D_{p_1} D_{p_2} \\dots D_{p_k} X^n = L D_{i_1} \\dots D_{i_{n-k}} X^n$$
\ngdzie $p_{1}, \\dots ,p_{k} \\notin \\{ {i_1}, i_{2}, \\dots ,i_{n-k} \\}$
\n\nTo samo dla simplexu $X^4$ .
"}︡
︠9cb130fb-6288-4cd5-9c51-feb6d9fba617s︠
X4=SimplicialComplex(Simplex(4).faces());X4
︡d0c805bc-8b62-437c-bccc-37b654d45118︡{"stdout":"Simplicial complex with vertex set (0, 1, 2, 3, 4) and 5 facets\n"}︡{"done":true}︡
︠2ea594e8-f1ef-4cda-a761-1b17eef9443bs︠
X4_0=X4.remove_face([4]);X4_0;
︡c28324f1-ee53-4d39-8eab-94c739a636cc︡{"stdout":"Simplicial complex with vertex set (0, 1, 2, 3) and facets {(0, 1, 2, 3)}\n"}︡{"done":true}︡
︠deb028e9-0284-4346-bfc1-ba2dd9015122s︠
X4_0.facets()
︡9f3dcf53-2957-4c51-b29e-4e578722f7be︡{"html":"$\\left\\{\\left(0, 1, 2, 3\\right)\\right\\}$
"}︡{"done":true}︡
︠4b6039ce-c09c-4cac-9af0-658465cb9d56s︠
X4_0.faces()
︡f9d54a54-c05f-4e89-a906-26a0e071a181︡{"stdout":"{0: set([(3,), (0,), (1,), (2,)]), 1: set([(2, 3), (0, 2), (1, 3), (1, 2), (0, 3), (0, 1)]), 2: set([(0, 2, 3), (0, 1, 2), (1, 2, 3), (0, 1, 3)]), 3: set([(0, 1, 2, 3)]), -1: set([()])}\n"}︡{"done":true}︡
︠5df8bfb6-a203-4326-a23d-9b13f2760917s︠
X4=SimplicialComplex(Simplex(4).faces());X4
︡086d0e0b-6b66-45c6-bb62-c58ea3e5e31d︡{"stdout":"Simplicial complex with vertex set (0, 1, 2, 3, 4) and 5 facets\n"}︡{"done":true}︡
︠ce406e26-2dd5-4a6e-8610-ec29ea573a5es︠
X4_1234=X4.remove_face([1]).remove_face([2]).remove_face([3]).remove_face([4]);X4_1234;
︡033c6b30-3532-4774-882c-4be21f58891a︡{"stdout":"Simplicial complex with vertex set (0,) and facets {(0,)}\n"}︡{"done":true}︡
︠16da9535-3f12-4552-b97a-34d901d94342i︠
%html
Jak widać mamy poniższą odpowiedniość pomiędzy ścianami simpleksów którym pousuwaliśmy wierzchołki.
Identycznie dla wszystkich kombinacji pojedyńczych wierzchołków.
︡5f14602d-1432-4e75-a56d-1f058f445d45︡{"html": "Jak wida\u0107 mamy poni\u017csz\u0105 odpowiednio\u015b\u0107 pomi\u0119dzy \u015bcianami simpleksów którym pousuwali\u015bmy wierzcho\u0142ki.
\nIdentycznie dla wszystkich kombinacji pojedy\u0144czych wierzcho\u0142ków.
"}︡
︠8a67dd7f-ed01-45c6-88f4-7f185a846eees︠
X4_0.facets()
︡3a3fd25e-022d-40ba-9b1e-a3283ff908cf︡{"html":"$\\left\\{\\left(0, 1, 2, 3\\right)\\right\\}$
"}︡{"done":true}︡
︠2f902f9a-eef2-46e5-b066-2b553ce35063s︠
X4_1234.facets()
︡6efb4bb5-d79b-4e73-8e4f-f3944f37a56d︡{"html":"$\\left\\{\\left(0\\right)\\right\\}$
"}︡{"done":true}︡
︠1c575dcf-a585-4042-b174-8c3971146452i︠
%html
Teraz dla par wierczhołków $X^4$
︡d86aac0e-99c5-486b-9745-5a54c991a112︡{"html": "Teraz dla par wierczho\u0142ków $X^4$
"}︡
︠e8444b1c-ac75-43a9-aa05-6f859b0725a7s︠
X4=SimplicialComplex(Simplex(4).faces());X4
︡2e3712b3-b2d4-4103-8d5c-cb2c0a08c104︡{"stdout":"Simplicial complex with vertex set (0, 1, 2, 3, 4) and 5 facets\n"}︡{"done":true}︡
︠bc5a1749-7e55-484c-afe5-25a10d6315b4s︠
X4_01=X4.remove_face([0]).remove_face([1]);X4_01
︡d5508cfc-f660-4b62-8acd-63c6ef205ce9︡{"stdout":"Simplicial complex with vertex set (2, 3, 4) and facets {(2, 3, 4)}\n"}︡{"done":true}︡
︠1e880b09-0a09-43cd-a3a5-398eabcd9b2es︠
X4_01.facets()
︡f0b21352-474b-4f9d-be79-c17e8575e6a7︡{"html":"$\\left\\{\\left(2, 3, 4\\right)\\right\\}$
"}︡{"done":true}︡
︠cf034cea-86a6-49af-864d-b821a778b698s︠
X4=SimplicialComplex(Simplex(4).faces());X4
︡3b35c0b8-116e-471b-a324-df0e2eb77b40︡{"stdout":"Simplicial complex with vertex set (0, 1, 2, 3, 4) and 5 facets\n"}︡{"done":true}︡
︠7cc898c3-0755-448d-af96-b8ca944334cas︠
X4_234=X4.remove_face([2]).remove_face([3]).remove_face([4]);X4_234
︡424cbd25-7921-4755-868d-21c1d05b38f6︡{"stdout":"Simplicial complex with vertex set (0, 1) and facets {(0, 1)}\n"}︡{"done":true}︡
︠56f393f6-c0ce-48c0-8f0f-5eb0ca021445s︠
X4_01.facets()
︡e0f39ed3-9228-4724-9b99-51d9b8ac3f5b︡{"html":"$\\left\\{\\left(2, 3, 4\\right)\\right\\}$
"}︡{"done":true}︡
︠8c52cc46-49c2-4738-8be1-1a82c0f1c8c8s︠
X4_234.facets()
︡66fc0bbb-6f99-495d-97bf-fc3426defc61︡{"html":"$\\left\\{\\left(0, 1\\right)\\right\\}$
"}︡{"done":true}︡
︠e50efe36-a851-4a07-98b1-10b007ae72fes︠
X4=SimplicialComplex(Simplex(4).faces());X4
︡1e5411a1-8eb3-4882-8195-1653612f7b0c︡{"stdout":"Simplicial complex with vertex set (0, 1, 2, 3, 4) and 5 facets\n"}︡{"done":true}︡
︠ce308a75-7e21-41b5-9e85-2af119b06580s︠
X4.faces()
︡bdd645e5-6d5e-4d0c-a40a-cbeaf2e32c34︡{"stdout":"{0: set([(4,), (3,), (0,), (1,), (2,)]), 1: set([(2, 4), (1, 2), (0, 4), (1, 4), (3, 4), (2, 3), (0, 2), (1, 3), (0, 3), (0, 1)]), 2: set([(0, 2, 3), (0, 3, 4), (0, 1, 3), (2, 3, 4), (0, 2, 4), (1, 2, 4), (1, 3, 4), (0, 1, 4), (0, 1, 2), (1, 2, 3)]), 3: set([(1, 2, 3, 4), (0, 1, 3, 4), (0, 1, 2, 3), (0, 2, 3, 4), (0, 1, 2, 4)]), -1: set([()])}\n"}︡{"done":true}︡
︠d6a6e765-0c47-4eb5-806e-afb5adeaa2eas︠
X5=SimplicialComplex(Simplex(5).faces());X5
︡e6056fee-12f5-4c64-8d2c-404092073414︡{"stdout":"Simplicial complex with vertex set (0, 1, 2, 3, 4, 5) and 6 facets\n"}︡{"done":true}︡
︠22b2fe13-6e60-40db-a44a-8a59a54473d7s︠
X5.faces()
︡5cb05dc3-173f-470b-8f2c-d7902b141f50︡{"stdout":"{0: set([(4,), (5,), (3,), (0,), (1,), (2,)]), 1: set([(2, 4), (0, 5), (1, 2), (1, 5), (1, 4), (3, 5), (3, 4), (2, 3), (0, 2), (2, 5), (1, 3), (0, 1), (0, 4), (0, 3), (4, 5)]), 2: set([(0, 2, 3), (1, 3, 4), (3, 4, 5), (0, 2, 5), (1, 4, 5), (0, 3, 5), (0, 3, 4), (1, 2, 5), (1, 2, 4), (0, 1, 2), (1, 3, 5), (0, 1, 5), (0, 4, 5), (0, 1, 3), (2, 3, 5), (2, 3, 4), (0, 2, 4), (0, 1, 4), (2, 4, 5), (1, 2, 3)]), 3: set([(0, 1, 3, 5), (0, 3, 4, 5), (1, 2, 3, 4), (2, 3, 4, 5), (0, 2, 3, 4), (0, 1, 2, 5), (0, 1, 2, 4), (0, 1, 4, 5), (0, 2, 3, 5), (0, 1, 3, 4), (1, 3, 4, 5), (1, 2, 3, 5), (1, 2, 4, 5), (0, 2, 4, 5), (0, 1, 2, 3)]), 4: set([(0, 1, 3, 4, 5), (0, 1, 2, 3, 4), (0, 1, 2, 3, 5), (0, 1, 2, 4, 5), (0, 2, 3, 4, 5), (1, 2, 3, 4, 5)]), -1: set([()])}\n"}︡{"done":true}︡
︠6b061bcc-bd7d-4be7-a18c-74d762850598s︠
X5_012=X5.remove_face([0]).remove_face([1]).remove_face([2]);X5_012
︡60b9c9c2-98f9-49a7-91d5-38cca6f98413︡{"stdout":"Simplicial complex with vertex set (3, 4, 5) and facets {(3, 4, 5)}\n"}︡{"done":true}︡
︠0b99ac8b-f409-48ce-9af0-77d95066e80ds︠
X5=SimplicialComplex(Simplex(5).faces());X5
︡2d792e6f-1315-4a33-b50f-60887587d448︡{"stdout":"Simplicial complex with vertex set (0, 1, 2, 3, 4, 5) and 6 facets\n"}︡{"done":true}︡
︠c83c0e76-984d-45db-94cb-ae8bf4d7240es︠
X5_345=X5.remove_face([3]).remove_face([4]).remove_face([5]);X5_345
︡288fc77b-f582-4849-b043-7b228df6bb70︡{"stdout":"Simplicial complex with vertex set (0, 1, 2) and facets {(0, 1, 2)}\n"}︡{"done":true}︡
︠ec5dec2a-9ea6-4167-a33e-4f072c2cc327s︠
X5_012.facets()
︡79288a5c-a170-4729-83d5-4dcb7de2f8ce︡{"html":"$\\displaystyle \\left\\{\\left(3, 4, 5\\right)\\right\\}$
"}︡{"done":true}︡
︠2119167b-85b4-4e78-8953-783a0b32168bs︠
X5_345.facets()
︡14c44fd6-46a9-44a1-b4c8-114e82b6718b︡{"html":"$\\displaystyle \\left\\{\\left(0, 1, 2\\right)\\right\\}$
"}︡{"done":true}︡
︠4d523cc5-e31f-4164-9e9b-5e72ca5728eei︠
%html
Jak widać za każdym razem daje się zdeiniować odwzorowanie $L$ w postaci jak napisałem powyzej.
Warto zwrócić uwagę, że poprawność definicji wynika także z symetrii trójkąta Pascala ( --> https://en.wikipedia.org/wiki/Pascal%27s_triangle ) , podającego liczby podzbiorów k oraz n-k elementów, oraz z tego, że kiedy trojką Pascala ma w rzędzie nieparzysta liczbę wyrazów, wyraz środkowy jest liczbą parzystą.
︡b0bd7ee1-98ee-40f5-9a50-5794e71a8953︡{"html": "Jak wida\u0107 za ka\u017cdym razem daje si\u0119 zdeiniowa\u0107 odwzorowanie $L$ w postaci jak napisa\u0142em powyzej.
\nWarto zwróci\u0107 uwag\u0119, \u017ce poprawno\u015b\u0107 definicji wynika tak\u017ce z symetrii trójk\u0105ta Pascala ( --> https://en.wikipedia.org/wiki/Pascal%27s_triangle ) , podaj\u0105cego liczby podzbiorów k oraz n-k elementów, oraz z tego, \u017ce kiedy trojk\u0105 Pascala ma w rz\u0119dzie nieparzysta liczb\u0119 wyrazów, wyraz \u015brodkowy jest liczb\u0105 parzyst\u0105.
"}︡
︠fac9c284-89ad-4ae0-ad99-42f52a4649dds︠
S = SimplicialComplex([[0,1], [1,2], [0,2]]) # circle
︡0c40bf2f-e70a-47e1-a5d1-aca51c1b9176︡{"done":true}
︠04eff0a0-9ab8-4af7-b702-7651c24b0272s︠
S;
︡cd29c742-45d7-457e-ae42-20f2e4c63bbc︡{"stdout":"Simplicial complex with vertex set (0, 1, 2) and facets {(0, 1), (0, 2), (1, 2)}\n"}︡{"done":true}
︠144006ad-ba81-4195-9a49-8dcc454276da︠
︡724873f9-f2ec-4f08-b4e6-057f9ec28981︡
︠55bfd18a-4f5b-4012-88ed-36798c406bafs︠
G = SimplicialComplex([(1,0), (2,1), (2,0)]) # circle
︡d4abe89b-6027-4543-88b9-4774cfd48639︡{"done":true}
︠366a034a-0a18-4e71-9359-0604d9f96ac2s︠
G;
︡c4adac0f-1ade-4a38-85f4-e422e9616d40︡{"stdout":"Simplicial complex with vertex set (0, 1, 2) and facets {(0, 1), (0, 2), (1, 2)}\n"}︡{"done":true}
︠722cd04c-394d-4b29-aca3-4cc888d99d7ds︠
G == S;
︡12b3e32c-9a71-41e7-9b14-bd0cacee1ea7︡{"stdout":"True\n"}︡{"done":true}
︠f993fa16-dc34-42a2-8409-ef7e2566e063s︠
A,B,C,D = var('A,B,C,D')
︡05b82b31-ff30-47bc-842b-5be6d94d7ed2︡{"done":true}
︠5ee80e01-7bd8-4f55-a9d0-a2823ce562ed︠
︡e9046de6-0a6e-45b2-84af-fddd931520bd︡
︠5852ad9e-da31-47ae-90b8-922654634162s︠
eq1 = ( A+B -C == 0)
︡2db082a2-c5db-4dee-ba5e-664447fa14f6︡{"done":true}
︠75f7ee06-7d22-4efd-a569-b0343cd88765s︠
eq2 = ( B+C -D == 0)
︡38878a27-2bb6-473a-986f-2cb18257844b︡{"done":true}
︠c00e0774-f22f-4410-829b-bcb7a132abf5s︠
eq3 = (A+B -D == 0)
︡0d2fc491-b0ec-4e09-b766-08dfbb03e740︡{"done":true}
︠d83e6c9d-3258-4bbe-b99a-0c772b981a39s︠
eq4 = ( A+C -D == 0)
︡24665e54-0e50-4efc-82a1-c97cddc28b49︡{"done":true}
︠cf173097-ba1e-4507-9bf0-93f1a0951aa9s︠
print(solve( [eq1, eq2, eq3, eq4],A,B, C,D));
︡d1eabf6f-b8c5-4900-9cbc-e892cf343522︡{"stdout":"[\n[A == 0, B == 0, C == 0, D == 0]\n]\n"}︡{"done":true}
︠671be2cd-d510-467b-8df0-0576e2fd5d4c︠
R - relacja ( symetryczna, antysymeryczna, równowazności, porzadku, inna)
︡67a2e052-003b-4f7b-9419-a5b6e35bcb16︡
︠9afbf6bc-b67c-4dfa-81a8-485add0f96d1︠
F - funkcja ( dowolna?)
︡9e46d3b1-dca1-4964-8d7a-ba885ea21c56︡
︠8814319d-9deb-4561-96c6-f515c4cbafd0︠
R(F(A,B),C) - wynik F(A,B) jest w relacji z C ( dla a,b,c róznych F(a,b) = C )
︡c5609efd-a39a-4a7f-83fe-2f6bdde32957︡{"stderr":"Error in lines 1-1\nTraceback (most recent call last):\n File \"/cocalc/lib/python2.7/site-packages/smc_sagews/sage_server.py\", line 1191, in execute\n flags=compile_flags), namespace, locals)\n File \"\", line 1, in \nNameError: name 'F' is not defined\n"}︡{"done":true}
︠a92cbc22-8ec9-4912-b6cc-f1120aba4c56︠
Rozwazamy równania jak powyzej dla wieloscianów ( powyzsza jest dla trójkąta)
Dla czworokonta relacja R jest podzbiorem iloczynu kartezjanskiego 4-rech elementów
︡26bed0fd-6e9f-49d7-9757-9a21d148f06a︡
︠696eca04-e7af-4b35-a392-4591e8632915s︠
S1 = ['A', 'B','C','D']
R = cartesian_product([S1, S1])
︡524433e5-1829-442d-9b32-9fef844fe90b︡{"done":true}
︠a02dc344-8c9d-48ef-aef3-04324654873c︠
︡4ae5a052-3ccc-4e1c-b1e9-46d391fe8470︡
︠370a0a81-96da-4824-91af-1a1f2c1937f6s︠
print(R).list()
︡504f99a3-709e-4a32-91a7-08e22dc5282d︡{"stdout":"[('A', 'A'), ('A', 'B'), ('A', 'C'), ('A', 'D'), ('B', 'A'), ('B', 'B'), ('B', 'C'), ('B', 'D'), ('C', 'A'), ('C', 'B'), ('C', 'C'), ('C', 'D'), ('D', 'A'), ('D', 'B'), ('D', 'C'), ('D', 'D')]\n"}︡{"done":true}
︠f41f2756-2624-408c-898a-ce878ec8ba1as︠
PR = Subsets([('A', 'A'), ('A', 'B'), ('A', 'C'), ('A', 'D'), ('B', 'A'), ('B', 'B'), ('B', 'C'), ('B', 'D'), ('C', 'A'), ('C', 'B'), ('C', 'C'), ('C', 'D'), ('D', 'A'), ('D', 'B'), ('D', 'C'), ('D', 'D')]);
︡469bbde2-dedf-41fe-8050-9cf26bd64920︡{"done":true}
︠4e2ff4c8-7bcf-4aa2-a42a-acd5a1207850︠
I jak widać poniżej daje to 65536 mozliwości
︡f67c2fc5-cbe6-423c-8d60-a05d02aac101︡
︠07a36032-7c9c-4d35-9f96-f160f436541cs︠
PR.cardinality()
︡ff1b2a16-1289-4d1f-ba78-ce3e4e241ff4︡{"stdout":"65536\n"}︡{"done":true}
︠50dd707f-899a-43d8-a213-0927243c7fa7︠
Przykładowo dla 3 elementow ( trójkąt) mamy:
︡cc3ad169-576a-4078-89c4-5feded5a0d94︡
︠08d44cc5-f69b-415d-a189-172ea99affb7s︠
S2 = ['A','B','C']
︡7715164a-63b1-4342-87d6-ebdc274a0479︡{"done":true}
︠11b657a9-c0b2-4235-bfc3-d76bf5d5b4c7s︠
R1=cartesian_product([S2,S2])
︡4da9f8d0-ac51-41b9-b7f1-645a31d40481︡{"done":true}
︠a9d0809c-1e4f-4943-8238-0c8ab6ef954as︠
print(R1).list()
︡43750fea-e235-445d-98ea-50c23a49dc42︡{"stdout":"[('A', 'A'), ('A', 'B'), ('A', 'C'), ('B', 'A'), ('B', 'B'), ('B', 'C'), ('C', 'A'), ('C', 'B'), ('C', 'C')]\n"}︡{"done":true}
︠6d849ce4-0995-4dcf-b000-d4fe64416f83s︠
PR1 = Subsets([('A', 'A'), ('A', 'B'), ('A', 'C'), ('B', 'A'), ('B', 'B'), ('B', 'C'), ('C', 'A'), ('C', 'B'), ('C', 'C')])
︡9e43abef-99fd-404c-838c-6f65574d00d7︡{"done":true}
︠7d9ec9e5-e9cd-443b-8c8b-59a9f87dc1d7︠
Czyli 512 elementów
︡25204382-8118-4fe4-a96d-653174533f7a︡
︠653d039e-d754-437e-9942-4f95df3e2f30s︠
PR1.cardinality()
︡bc8b2b41-12e1-4b41-b652-c45b416028f3︡{"stdout":"512\n"}︡{"done":true}
︠2f454d9e-71d1-4e0e-93a1-dc248d0331af︠
Przykładowo 120 element ma postać
︡9ea8e52b-95e0-4012-8d6c-3386615ae389︡
︠14ffa508-6bf1-4e7e-8853-6909a232160as︠
PR1.list()[120]
︡143351ac-a4f4-4dcd-85e1-3f546cb8177d︡{"stdout":"{('C', 'A'), ('B', 'C'), ('B', 'B')}\n"}︡{"done":true}
︠b88cdae5-5a1f-43af-b930-9c8fbe252ab4︠
Co oznacza że nie reprezentuje żadnej relacji na trójkącie
︡79657507-724e-43f4-aadf-deff4c12cf25︡
︠844c72a6-b2e2-4856-b648-37dbe9cbdd2fs︠
PR1.list()[500]
︡79e4c262-ecc4-4142-8281-1e0e83234d03︡{"stdout":"{('B', 'C'), ('B', 'B'), ('B', 'A'), ('C', 'A'), ('C', 'B'), ('C', 'C'), ('A', 'B')}\n"}︡{"done":true}
︠931d238f-6cf3-41fb-869b-1c3779de4cf8s︠
for i in range (PR1.cardinality()):
PR1.list()[i]
︡15002f20-f870-4596-a7d8-f6c88ecbb56f︡{"stdout":"{}\n{('A', 'A')}\n{('A', 'B')}\n{('A', 'C')}\n{('B', 'A')}\n{('B', 'B')}\n{('B', 'C')}\n{('C', 'A')}\n{('C', 'B')}\n{('C', 'C')}\n{('A', 'B'), ('A', 'A')}\n{('A', 'A'), ('A', 'C')}\n{('B', 'A'), ('A', 'A')}\n{('A', 'A'), ('B', 'B')}\n{('B', 'C'), ('A', 'A')}\n{('C', 'A'), ('A', 'A')}\n{('A', 'A'), ('C', 'B')}\n{('A', 'A'), ('C', 'C')}\n{('A', 'B'), ('A', 'C')}\n{('B', 'A'), ('A', 'B')}\n{('A', 'B'), ('B', 'B')}\n{('A', 'B'), ('B', 'C')}\n{('C', 'A'), ('A', 'B')}\n{('A', 'B'), ('C', 'B')}\n{('A', 'B'), ('C', 'C')}\n{('B', 'A'), ('A', 'C')}\n{('A', 'C'), ('B', 'B')}\n{('B', 'C'), ('A', 'C')}\n{('C', 'A'), ('A', 'C')}\n{('C', 'B'), ('A', 'C')}\n{('A', 'C'), ('C', 'C')}\n{('B', 'A'), ('B', 'B')}\n{('B', 'A'), ('B', 'C')}\n{('B', 'A'), ('C', 'A')}\n{('B', 'A'), ('C', 'B')}\n{('B', 'A'), ('C', 'C')}\n{('B', 'C'), ('B', 'B')}\n{('C', 'A'), ('B', 'B')}\n{('C', 'B'), ('B', 'B')}\n{('B', 'B'), ('C', 'C')}\n{('C', 'A'), ('B', 'C')}\n{('B', 'C'), ('C', 'B')}\n{('B', 'C'), ('C', 'C')}\n{('C', 'A'), ('C', 'B')}\n{('C', 'A'), ('C', 'C')}\n{('C', 'B'), ('C', 'C')}\n{('A', 'B'), ('A', 'A'), ('A', 'C')}\n{('B', 'A'), ('A', 'B'), ('A', 'A')}\n{('A', 'B'), ('A', 'A'), ('B', 'B')}\n{('A', 'B'), ('A', 'A'), ('B', 'C')}\n{('C', 'A'), ('A', 'B'), ('A', 'A')}\n{('A', 'B'), ('A', 'A'), ('C', 'B')}\n{('A', 'B'), ('A', 'A'), ('C', 'C')}\n{('B', 'A'), ('A', 'A'), ('A', 'C')}\n{('A', 'A'), ('A', 'C'), ('B', 'B')}\n{('B', 'C'), ('A', 'A'), ('A', 'C')}\n{('C', 'A'), ('A', 'A'), ('A', 'C')}\n{('A', 'A'), ('C', 'B'), ('A', 'C')}\n{('A', 'A'), ('A', 'C'), ('C', 'C')}\n{('B', 'A'), ('A', 'A'), ('B', 'B')}\n{('B', 'A'), ('B', 'C'), ('A', 'A')}\n{('B', 'A'), ('C', 'A'), ('A', 'A')}\n{('B', 'A'), ('A', 'A'), ('C', 'B')}\n{('B', 'A'), ('A', 'A'), ('C', 'C')}\n{('B', 'C'), ('A', 'A'), ('B', 'B')}\n{('C', 'A'), ('A', 'A'), ('B', 'B')}\n{('A', 'A'), ('C', 'B'), ('B', 'B')}\n{('A', 'A'), ('B', 'B'), ('C', 'C')}\n{('C', 'A'), ('B', 'C'), ('A', 'A')}\n{('B', 'C'), ('A', 'A'), ('C', 'B')}\n{('B', 'C'), ('A', 'A'), ('C', 'C')}\n{('C', 'A'), ('A', 'A'), ('C', 'B')}\n{('C', 'A'), ('A', 'A'), ('C', 'C')}\n{('A', 'A'), ('C', 'B'), ('C', 'C')}\n{('B', 'A'), ('A', 'B'), ('A', 'C')}\n{('A', 'B'), ('A', 'C'), ('B', 'B')}\n{('B', 'C'), ('A', 'B'), ('A', 'C')}\n{('C', 'A'), ('A', 'B'), ('A', 'C')}\n{('A', 'B'), ('C', 'B'), ('A', 'C')}\n{('A', 'B'), ('A', 'C'), ('C', 'C')}\n{('B', 'A'), ('A', 'B'), ('B', 'B')}\n{('B', 'A'), ('A', 'B'), ('B', 'C')}\n{('B', 'A'), ('C', 'A'), ('A', 'B')}\n{('B', 'A'), ('A', 'B'), ('C', 'B')}\n{('B', 'A'), ('A', 'B'), ('C', 'C')}\n{('B', 'C'), ('A', 'B'), ('B', 'B')}\n{('C', 'A'), ('A', 'B'), ('B', 'B')}\n{('A', 'B'), ('C', 'B'), ('B', 'B')}\n{('A', 'B'), ('B', 'B'), ('C', 'C')}\n{('C', 'A'), ('A', 'B'), ('B', 'C')}\n{('A', 'B'), ('C', 'B'), ('B', 'C')}\n{('A', 'B'), ('B', 'C'), ('C', 'C')}\n{('C', 'A'), ('A', 'B'), ('C', 'B')}\n{('C', 'A'), ('A', 'B'), ('C', 'C')}\n{('A', 'B'), ('C', 'B'), ('C', 'C')}\n{('B', 'A'), ('A', 'C'), ('B', 'B')}\n{('B', 'A'), ('B', 'C'), ('A', 'C')}\n{('B', 'A'), ('C', 'A'), ('A', 'C')}\n{('B', 'A'), ('C', 'B'), ('A', 'C')}\n{('B', 'A'), ('A', 'C'), ('C', 'C')}\n{('B', 'C'), ('A', 'C'), ('B', 'B')}\n{('C', 'A'), ('A', 'C'), ('B', 'B')}\n{('C', 'B'), ('A', 'C'), ('B', 'B')}\n{('C', 'C'), ('A', 'C'), ('B', 'B')}\n{('C', 'A'), ('B', 'C'), ('A', 'C')}\n{('B', 'C'), ('C', 'B'), ('A', 'C')}\n{('B', 'C'), ('A', 'C'), ('C', 'C')}\n{('C', 'A'), ('C', 'B'), ('A', 'C')}\n{('C', 'A'), ('A', 'C'), ('C', 'C')}\n{('C', 'B'), ('A', 'C'), ('C', 'C')}\n{('B', 'A'), ('B', 'C'), ('B', 'B')}\n{('B', 'A'), ('C', 'A'), ('B', 'B')}\n{('B', 'A'), ('C', 'B'), ('B', 'B')}\n{('B', 'A'), ('B', 'B'), ('C', 'C')}\n{('B', 'A'), ('C', 'A'), ('B', 'C')}\n{('B', 'A'), ('B', 'C'), ('C', 'B')}\n{('B', 'A'), ('B', 'C'), ('C', 'C')}\n{('B', 'A'), ('C', 'A'), ('C', 'B')}\n{('B', 'A'), ('C', 'A'), ('C', 'C')}\n{('B', 'A'), ('C', 'B'), ('C', 'C')}\n{('C', 'A'), ('B', 'C'), ('B', 'B')}\n{('B', 'C'), ('C', 'B'), ('B', 'B')}\n{('B', 'C'), ('B', 'B'), ('C', 'C')}\n{('C', 'A'), ('C', 'B'), ('B', 'B')}\n{('C', 'A'), ('B', 'B'), ('C', 'C')}\n{('C', 'B'), ('B', 'B'), ('C', 'C')}\n{('C', 'A'), ('B', 'C'), ('C', 'B')}\n{('C', 'A'), ('B', 'C'), ('C', 'C')}\n{('B', 'C'), ('C', 'B'), ('C', 'C')}\n{('C', 'A'), ('C', 'B'), ('C', 'C')}"}︡{"stdout":"\n{('B', 'A'), ('A', 'B'), ('A', 'A'), ('A', 'C')}\n{('A', 'B'), ('A', 'A'), ('A', 'C'), ('B', 'B')}\n{('B', 'C'), ('A', 'B'), ('A', 'A'), ('A', 'C')}\n{('C', 'A'), ('A', 'B'), ('A', 'A'), ('A', 'C')}\n{('A', 'B'), ('A', 'A'), ('C', 'B'), ('A', 'C')}\n{('A', 'B'), ('A', 'A'), ('A', 'C'), ('C', 'C')}\n{('B', 'A'), ('A', 'B'), ('A', 'A'), ('B', 'B')}\n{('B', 'A'), ('A', 'B'), ('A', 'A'), ('B', 'C')}\n{('B', 'A'), ('C', 'A'), ('A', 'B'), ('A', 'A')}\n{('B', 'A'), ('A', 'B'), ('A', 'A'), ('C', 'B')}\n{('B', 'A'), ('A', 'B'), ('A', 'A'), ('C', 'C')}\n{('B', 'C'), ('A', 'B'), ('A', 'A'), ('B', 'B')}\n{('C', 'A'), ('A', 'B'), ('A', 'A'), ('B', 'B')}\n{('A', 'B'), ('A', 'A'), ('C', 'B'), ('B', 'B')}\n{('A', 'B'), ('A', 'A'), ('B', 'B'), ('C', 'C')}\n{('C', 'A'), ('A', 'B'), ('A', 'A'), ('B', 'C')}\n{('A', 'B'), ('A', 'A'), ('C', 'B'), ('B', 'C')}\n{('A', 'B'), ('A', 'A'), ('B', 'C'), ('C', 'C')}\n{('C', 'A'), ('A', 'B'), ('A', 'A'), ('C', 'B')}\n{('C', 'A'), ('A', 'B'), ('A', 'A'), ('C', 'C')}\n{('A', 'B'), ('A', 'A'), ('C', 'B'), ('C', 'C')}\n{('B', 'A'), ('A', 'A'), ('A', 'C'), ('B', 'B')}\n{('B', 'A'), ('B', 'C'), ('A', 'A'), ('A', 'C')}\n{('B', 'A'), ('C', 'A'), ('A', 'A'), ('A', 'C')}\n{('B', 'A'), ('A', 'A'), ('C', 'B'), ('A', 'C')}\n{('B', 'A'), ('A', 'A'), ('A', 'C'), ('C', 'C')}\n{('B', 'C'), ('A', 'A'), ('A', 'C'), ('B', 'B')}\n{('C', 'A'), ('A', 'A'), ('A', 'C'), ('B', 'B')}\n{('A', 'A'), ('C', 'B'), ('A', 'C'), ('B', 'B')}\n{('C', 'C'), ('A', 'A'), ('A', 'C'), ('B', 'B')}\n{('C', 'A'), ('B', 'C'), ('A', 'A'), ('A', 'C')}\n{('B', 'C'), ('A', 'A'), ('C', 'B'), ('A', 'C')}\n{('B', 'C'), ('A', 'A'), ('A', 'C'), ('C', 'C')}\n{('C', 'A'), ('A', 'A'), ('C', 'B'), ('A', 'C')}\n{('C', 'A'), ('A', 'A'), ('A', 'C'), ('C', 'C')}\n{('A', 'A'), ('C', 'B'), ('A', 'C'), ('C', 'C')}\n{('B', 'A'), ('B', 'C'), ('A', 'A'), ('B', 'B')}\n{('B', 'A'), ('C', 'A'), ('A', 'A'), ('B', 'B')}\n{('B', 'A'), ('A', 'A'), ('C', 'B'), ('B', 'B')}\n{('B', 'A'), ('A', 'A'), ('B', 'B'), ('C', 'C')}\n{('B', 'A'), ('C', 'A'), ('B', 'C'), ('A', 'A')}\n{('B', 'A'), ('B', 'C'), ('A', 'A'), ('C', 'B')}\n{('B', 'A'), ('B', 'C'), ('A', 'A'), ('C', 'C')}\n{('B', 'A'), ('C', 'A'), ('A', 'A'), ('C', 'B')}\n{('B', 'A'), ('C', 'A'), ('A', 'A'), ('C', 'C')}\n{('B', 'A'), ('A', 'A'), ('C', 'B'), ('C', 'C')}\n{('C', 'A'), ('B', 'C'), ('A', 'A'), ('B', 'B')}\n{('B', 'C'), ('A', 'A'), ('C', 'B'), ('B', 'B')}\n{('B', 'C'), ('A', 'A'), ('B', 'B'), ('C', 'C')}\n{('C', 'A'), ('A', 'A'), ('C', 'B'), ('B', 'B')}\n{('C', 'A'), ('A', 'A'), ('B', 'B'), ('C', 'C')}\n{('A', 'A'), ('C', 'B'), ('B', 'B'), ('C', 'C')}\n{('C', 'A'), ('B', 'C'), ('A', 'A'), ('C', 'B')}\n{('C', 'A'), ('B', 'C'), ('A', 'A'), ('C', 'C')}\n{('B', 'C'), ('A', 'A'), ('C', 'B'), ('C', 'C')}\n{('C', 'A'), ('A', 'A'), ('C', 'B'), ('C', 'C')}\n{('B', 'A'), ('A', 'B'), ('A', 'C'), ('B', 'B')}\n{('B', 'A'), ('A', 'B'), ('A', 'C'), ('B', 'C')}\n{('B', 'A'), ('C', 'A'), ('A', 'B'), ('A', 'C')}\n{('B', 'A'), ('A', 'B'), ('C', 'B'), ('A', 'C')}\n{('B', 'A'), ('A', 'B'), ('A', 'C'), ('C', 'C')}\n{('B', 'C'), ('A', 'B'), ('A', 'C'), ('B', 'B')}\n{('C', 'A'), ('A', 'B'), ('A', 'C'), ('B', 'B')}\n{('A', 'B'), ('C', 'B'), ('A', 'C'), ('B', 'B')}\n{('A', 'B'), ('C', 'C'), ('A', 'C'), ('B', 'B')}\n{('B', 'C'), ('C', 'A'), ('A', 'B'), ('A', 'C')}\n{('B', 'C'), ('A', 'B'), ('C', 'B'), ('A', 'C')}\n{('B', 'C'), ('A', 'B'), ('A', 'C'), ('C', 'C')}\n{('C', 'A'), ('A', 'B'), ('C', 'B'), ('A', 'C')}\n{('C', 'A'), ('A', 'B'), ('A', 'C'), ('C', 'C')}\n{('A', 'B'), ('C', 'B'), ('A', 'C'), ('C', 'C')}\n{('B', 'A'), ('A', 'B'), ('B', 'B'), ('B', 'C')}\n{('B', 'A'), ('C', 'A'), ('A', 'B'), ('B', 'B')}\n{('B', 'A'), ('A', 'B'), ('C', 'B'), ('B', 'B')}\n{('B', 'A'), ('A', 'B'), ('B', 'B'), ('C', 'C')}\n{('B', 'A'), ('C', 'A'), ('A', 'B'), ('B', 'C')}\n{('B', 'A'), ('A', 'B'), ('C', 'B'), ('B', 'C')}\n{('B', 'A'), ('A', 'B'), ('B', 'C'), ('C', 'C')}\n{('B', 'A'), ('C', 'A'), ('A', 'B'), ('C', 'B')}\n{('B', 'A'), ('C', 'A'), ('A', 'B'), ('C', 'C')}\n{('B', 'A'), ('A', 'B'), ('C', 'B'), ('C', 'C')}\n{('B', 'C'), ('C', 'A'), ('A', 'B'), ('B', 'B')}\n{('B', 'C'), ('A', 'B'), ('C', 'B'), ('B', 'B')}\n{('B', 'C'), ('A', 'B'), ('B', 'B'), ('C', 'C')}"}︡{"stdout":"\n{('C', 'A'), ('A', 'B'), ('C', 'B'), ('B', 'B')}\n{('C', 'A'), ('A', 'B'), ('B', 'B'), ('C', 'C')}\n{('A', 'B'), ('C', 'B'), ('B', 'B'), ('C', 'C')}\n{('C', 'A'), ('A', 'B'), ('C', 'B'), ('B', 'C')}\n{('C', 'A'), ('A', 'B'), ('B', 'C'), ('C', 'C')}\n{('A', 'B'), ('C', 'B'), ('B', 'C'), ('C', 'C')}\n{('C', 'A'), ('A', 'B'), ('C', 'B'), ('C', 'C')}\n{('B', 'A'), ('B', 'C'), ('A', 'C'), ('B', 'B')}\n{('B', 'A'), ('C', 'A'), ('A', 'C'), ('B', 'B')}\n{('B', 'A'), ('C', 'B'), ('A', 'C'), ('B', 'B')}\n{('B', 'A'), ('C', 'C'), ('A', 'C'), ('B', 'B')}\n{('B', 'A'), ('C', 'A'), ('B', 'C'), ('A', 'C')}\n{('B', 'A'), ('B', 'C'), ('C', 'B'), ('A', 'C')}\n{('B', 'A'), ('B', 'C'), ('A', 'C'), ('C', 'C')}\n{('B', 'A'), ('C', 'A'), ('C', 'B'), ('A', 'C')}\n{('B', 'A'), ('C', 'A'), ('A', 'C'), ('C', 'C')}\n{('B', 'A'), ('C', 'B'), ('A', 'C'), ('C', 'C')}\n{('C', 'A'), ('B', 'C'), ('A', 'C'), ('B', 'B')}\n{('B', 'C'), ('C', 'B'), ('A', 'C'), ('B', 'B')}\n{('B', 'C'), ('C', 'C'), ('A', 'C'), ('B', 'B')}\n{('C', 'A'), ('C', 'B'), ('A', 'C'), ('B', 'B')}\n{('C', 'A'), ('C', 'C'), ('A', 'C'), ('B', 'B')}\n{('C', 'C'), ('C', 'B'), ('A', 'C'), ('B', 'B')}\n{('C', 'A'), ('B', 'C'), ('C', 'B'), ('A', 'C')}\n{('C', 'A'), ('B', 'C'), ('A', 'C'), ('C', 'C')}\n{('B', 'C'), ('C', 'B'), ('A', 'C'), ('C', 'C')}\n{('C', 'A'), ('C', 'B'), ('A', 'C'), ('C', 'C')}\n{('B', 'A'), ('C', 'A'), ('B', 'C'), ('B', 'B')}\n{('B', 'A'), ('B', 'C'), ('C', 'B'), ('B', 'B')}\n{('B', 'A'), ('B', 'C'), ('B', 'B'), ('C', 'C')}\n{('B', 'A'), ('C', 'A'), ('C', 'B'), ('B', 'B')}\n{('B', 'A'), ('C', 'A'), ('B', 'B'), ('C', 'C')}\n{('B', 'A'), ('C', 'B'), ('B', 'B'), ('C', 'C')}\n{('B', 'A'), ('C', 'A'), ('B', 'C'), ('C', 'B')}\n{('B', 'A'), ('C', 'A'), ('B', 'C'), ('C', 'C')}\n{('B', 'A'), ('B', 'C'), ('C', 'B'), ('C', 'C')}\n{('B', 'A'), ('C', 'A'), ('C', 'B'), ('C', 'C')}\n{('C', 'A'), ('B', 'C'), ('C', 'B'), ('B', 'B')}\n{('C', 'A'), ('B', 'C'), ('B', 'B'), ('C', 'C')}\n{('B', 'C'), ('C', 'B'), ('B', 'B'), ('C', 'C')}\n{('C', 'A'), ('C', 'B'), ('B', 'B'), ('C', 'C')}\n{('C', 'A'), ('B', 'C'), ('C', 'B'), ('C', 'C')}\n{('B', 'A'), ('A', 'B'), ('A', 'A'), ('A', 'C'), ('B', 'B')}\n{('B', 'A'), ('A', 'B'), ('A', 'A'), ('A', 'C'), ('B', 'C')}\n{('B', 'A'), ('C', 'A'), ('A', 'B'), ('A', 'A'), ('A', 'C')}\n{('B', 'A'), ('A', 'B'), ('A', 'A'), ('C', 'B'), ('A', 'C')}\n{('B', 'A'), ('A', 'B'), ('A', 'A'), ('A', 'C'), ('C', 'C')}\n{('B', 'C'), ('A', 'B'), ('A', 'A'), ('A', 'C'), ('B', 'B')}\n{('C', 'A'), ('A', 'B'), ('A', 'A'), ('A', 'C'), ('B', 'B')}\n{('A', 'B'), ('A', 'A'), ('C', 'B'), ('A', 'C'), ('B', 'B')}\n{('C', 'C'), ('A', 'B'), ('A', 'A'), ('A', 'C'), ('B', 'B')}\n{('B', 'C'), ('C', 'A'), ('A', 'B'), ('A', 'A'), ('A', 'C')}\n{('B', 'C'), ('A', 'B'), ('A', 'A'), ('C', 'B'), ('A', 'C')}\n{('B', 'C'), ('A', 'B'), ('A', 'A'), ('A', 'C'), ('C', 'C')}\n{('C', 'A'), ('A', 'B'), ('A', 'A'), ('C', 'B'), ('A', 'C')}\n{('C', 'A'), ('A', 'B'), ('A', 'A'), ('A', 'C'), ('C', 'C')}\n{('A', 'B'), ('A', 'A'), ('C', 'B'), ('A', 'C'), ('C', 'C')}\n{('B', 'A'), ('A', 'B'), ('A', 'A'), ('B', 'B'), ('B', 'C')}\n{('B', 'A'), ('C', 'A'), ('A', 'B'), ('A', 'A'), ('B', 'B')}\n{('B', 'A'), ('A', 'B'), ('A', 'A'), ('C', 'B'), ('B', 'B')}\n{('B', 'A'), ('A', 'B'), ('A', 'A'), ('B', 'B'), ('C', 'C')}\n{('B', 'A'), ('C', 'A'), ('A', 'B'), ('A', 'A'), ('B', 'C')}\n{('B', 'A'), ('A', 'B'), ('A', 'A'), ('C', 'B'), ('B', 'C')}\n{('B', 'A'), ('A', 'B'), ('A', 'A'), ('B', 'C'), ('C', 'C')}\n{('B', 'A'), ('C', 'A'), ('A', 'B'), ('A', 'A'), ('C', 'B')}\n{('B', 'A'), ('C', 'A'), ('A', 'B'), ('A', 'A'), ('C', 'C')}\n{('B', 'A'), ('A', 'B'), ('A', 'A'), ('C', 'B'), ('C', 'C')}\n{('B', 'C'), ('C', 'A'), ('A', 'B'), ('A', 'A'), ('B', 'B')}\n{('B', 'C'), ('A', 'B'), ('A', 'A'), ('C', 'B'), ('B', 'B')}\n{('B', 'C'), ('A', 'B'), ('A', 'A'), ('B', 'B'), ('C', 'C')}\n{('C', 'A'), ('A', 'B'), ('A', 'A'), ('C', 'B'), ('B', 'B')}\n{('C', 'A'), ('A', 'B'), ('A', 'A'), ('B', 'B'), ('C', 'C')}\n{('A', 'B'), ('A', 'A'), ('C', 'B'), ('B', 'B'), ('C', 'C')}\n{('C', 'A'), ('A', 'B'), ('A', 'A'), ('C', 'B'), ('B', 'C')}\n{('C', 'A'), ('A', 'B'), ('A', 'A'), ('B', 'C'), ('C', 'C')}\n{('A', 'B'), ('A', 'A'), ('C', 'B'), ('B', 'C'), ('C', 'C')}"}︡{"stdout":"\n{('C', 'A'), ('A', 'B'), ('A', 'A'), ('C', 'B'), ('C', 'C')}\n{('B', 'A'), ('B', 'C'), ('A', 'A'), ('A', 'C'), ('B', 'B')}\n{('B', 'A'), ('C', 'A'), ('A', 'A'), ('A', 'C'), ('B', 'B')}\n{('B', 'A'), ('A', 'A'), ('C', 'B'), ('A', 'C'), ('B', 'B')}\n{('B', 'A'), ('C', 'C'), ('A', 'A'), ('A', 'C'), ('B', 'B')}\n{('B', 'A'), ('C', 'A'), ('B', 'C'), ('A', 'A'), ('A', 'C')}\n{('B', 'A'), ('B', 'C'), ('A', 'A'), ('C', 'B'), ('A', 'C')}\n{('B', 'A'), ('B', 'C'), ('A', 'A'), ('A', 'C'), ('C', 'C')}\n{('B', 'A'), ('C', 'A'), ('A', 'A'), ('C', 'B'), ('A', 'C')}\n{('B', 'A'), ('C', 'A'), ('A', 'A'), ('A', 'C'), ('C', 'C')}\n{('B', 'A'), ('A', 'A'), ('C', 'B'), ('A', 'C'), ('C', 'C')}\n{('C', 'A'), ('B', 'C'), ('A', 'A'), ('A', 'C'), ('B', 'B')}\n{('B', 'C'), ('A', 'A'), ('C', 'B'), ('A', 'C'), ('B', 'B')}\n{('C', 'C'), ('B', 'C'), ('A', 'A'), ('A', 'C'), ('B', 'B')}\n{('C', 'A'), ('A', 'A'), ('C', 'B'), ('A', 'C'), ('B', 'B')}\n{('C', 'C'), ('C', 'A'), ('A', 'A'), ('A', 'C'), ('B', 'B')}\n{('C', 'C'), ('A', 'A'), ('C', 'B'), ('A', 'C'), ('B', 'B')}\n{('C', 'A'), ('B', 'C'), ('A', 'A'), ('C', 'B'), ('A', 'C')}\n{('C', 'A'), ('B', 'C'), ('A', 'A'), ('A', 'C'), ('C', 'C')}\n{('B', 'C'), ('A', 'A'), ('C', 'B'), ('A', 'C'), ('C', 'C')}\n{('C', 'A'), ('A', 'A'), ('C', 'B'), ('A', 'C'), ('C', 'C')}\n{('B', 'A'), ('C', 'A'), ('B', 'C'), ('A', 'A'), ('B', 'B')}\n{('B', 'A'), ('B', 'C'), ('A', 'A'), ('C', 'B'), ('B', 'B')}\n{('B', 'A'), ('B', 'C'), ('A', 'A'), ('B', 'B'), ('C', 'C')}\n{('B', 'A'), ('C', 'A'), ('A', 'A'), ('C', 'B'), ('B', 'B')}\n{('B', 'A'), ('C', 'A'), ('A', 'A'), ('B', 'B'), ('C', 'C')}\n{('B', 'A'), ('A', 'A'), ('C', 'B'), ('B', 'B'), ('C', 'C')}\n{('B', 'A'), ('C', 'A'), ('B', 'C'), ('A', 'A'), ('C', 'B')}\n{('B', 'A'), ('C', 'A'), ('B', 'C'), ('A', 'A'), ('C', 'C')}\n{('B', 'A'), ('B', 'C'), ('A', 'A'), ('C', 'B'), ('C', 'C')}\n{('B', 'A'), ('C', 'A'), ('A', 'A'), ('C', 'B'), ('C', 'C')}\n{('C', 'A'), ('B', 'C'), ('A', 'A'), ('C', 'B'), ('B', 'B')}\n{('C', 'A'), ('B', 'C'), ('A', 'A'), ('B', 'B'), ('C', 'C')}\n{('B', 'C'), ('A', 'A'), ('C', 'B'), ('B', 'B'), ('C', 'C')}\n{('C', 'A'), ('A', 'A'), ('C', 'B'), ('B', 'B'), ('C', 'C')}\n{('C', 'A'), ('B', 'C'), ('A', 'A'), ('C', 'B'), ('C', 'C')}\n{('B', 'A'), ('A', 'B'), ('A', 'C'), ('B', 'C'), ('B', 'B')}\n{('B', 'A'), ('C', 'A'), ('A', 'B'), ('A', 'C'), ('B', 'B')}\n{('B', 'A'), ('A', 'B'), ('C', 'B'), ('A', 'C'), ('B', 'B')}\n{('B', 'A'), ('A', 'B'), ('C', 'C'), ('A', 'C'), ('B', 'B')}\n{('B', 'A'), ('C', 'A'), ('A', 'B'), ('A', 'C'), ('B', 'C')}\n{('B', 'A'), ('A', 'B'), ('C', 'B'), ('A', 'C'), ('B', 'C')}\n{('B', 'A'), ('A', 'B'), ('A', 'C'), ('B', 'C'), ('C', 'C')}\n{('B', 'A'), ('C', 'A'), ('A', 'B'), ('C', 'B'), ('A', 'C')}\n{('B', 'A'), ('C', 'A'), ('A', 'B'), ('A', 'C'), ('C', 'C')}\n{('B', 'A'), ('A', 'B'), ('C', 'B'), ('A', 'C'), ('C', 'C')}\n{('B', 'C'), ('C', 'A'), ('A', 'B'), ('A', 'C'), ('B', 'B')}\n{('B', 'C'), ('A', 'B'), ('C', 'B'), ('A', 'C'), ('B', 'B')}\n{('B', 'C'), ('A', 'B'), ('C', 'C'), ('A', 'C'), ('B', 'B')}\n{('C', 'A'), ('A', 'B'), ('C', 'B'), ('A', 'C'), ('B', 'B')}\n{('C', 'A'), ('A', 'B'), ('C', 'C'), ('A', 'C'), ('B', 'B')}\n{('A', 'B'), ('C', 'C'), ('C', 'B'), ('A', 'C'), ('B', 'B')}\n{('B', 'C'), ('C', 'A'), ('A', 'B'), ('C', 'B'), ('A', 'C')}\n{('B', 'C'), ('C', 'A'), ('A', 'B'), ('A', 'C'), ('C', 'C')}\n{('B', 'C'), ('A', 'B'), ('C', 'B'), ('A', 'C'), ('C', 'C')}\n{('C', 'A'), ('A', 'B'), ('C', 'B'), ('A', 'C'), ('C', 'C')}\n{('B', 'A'), ('C', 'A'), ('A', 'B'), ('B', 'B'), ('B', 'C')}\n{('B', 'A'), ('A', 'B'), ('C', 'B'), ('B', 'B'), ('B', 'C')}\n{('B', 'A'), ('A', 'B'), ('B', 'B'), ('B', 'C'), ('C', 'C')}\n{('B', 'A'), ('C', 'A'), ('A', 'B'), ('C', 'B'), ('B', 'B')}\n{('B', 'A'), ('C', 'A'), ('A', 'B'), ('B', 'B'), ('C', 'C')}\n{('B', 'A'), ('A', 'B'), ('C', 'B'), ('B', 'B'), ('C', 'C')}\n{('B', 'A'), ('C', 'A'), ('A', 'B'), ('C', 'B'), ('B', 'C')}\n{('B', 'A'), ('C', 'A'), ('A', 'B'), ('B', 'C'), ('C', 'C')}\n{('B', 'A'), ('A', 'B'), ('C', 'B'), ('B', 'C'), ('C', 'C')}\n{('B', 'A'), ('C', 'A'), ('A', 'B'), ('C', 'B'), ('C', 'C')}\n{('B', 'C'), ('C', 'A'), ('A', 'B'), ('C', 'B'), ('B', 'B')}\n{('B', 'C'), ('C', 'A'), ('A', 'B'), ('B', 'B'), ('C', 'C')}"}︡{"stdout":"\n{('B', 'C'), ('A', 'B'), ('C', 'B'), ('B', 'B'), ('C', 'C')}\n{('C', 'A'), ('A', 'B'), ('C', 'B'), ('B', 'B'), ('C', 'C')}\n{('C', 'A'), ('A', 'B'), ('C', 'B'), ('B', 'C'), ('C', 'C')}\n{('B', 'A'), ('C', 'A'), ('B', 'C'), ('A', 'C'), ('B', 'B')}\n{('B', 'A'), ('B', 'C'), ('C', 'B'), ('A', 'C'), ('B', 'B')}\n{('B', 'A'), ('B', 'C'), ('C', 'C'), ('A', 'C'), ('B', 'B')}\n{('B', 'A'), ('C', 'A'), ('C', 'B'), ('A', 'C'), ('B', 'B')}\n{('B', 'A'), ('C', 'A'), ('C', 'C'), ('A', 'C'), ('B', 'B')}\n{('B', 'A'), ('C', 'C'), ('C', 'B'), ('A', 'C'), ('B', 'B')}\n{('B', 'A'), ('C', 'A'), ('B', 'C'), ('C', 'B'), ('A', 'C')}\n{('B', 'A'), ('C', 'A'), ('B', 'C'), ('A', 'C'), ('C', 'C')}\n{('B', 'A'), ('B', 'C'), ('C', 'B'), ('A', 'C'), ('C', 'C')}\n{('B', 'A'), ('C', 'A'), ('C', 'B'), ('A', 'C'), ('C', 'C')}\n{('C', 'A'), ('B', 'C'), ('C', 'B'), ('A', 'C'), ('B', 'B')}\n{('C', 'A'), ('B', 'C'), ('C', 'C'), ('A', 'C'), ('B', 'B')}\n{('B', 'C'), ('C', 'C'), ('C', 'B'), ('A', 'C'), ('B', 'B')}\n{('C', 'A'), ('C', 'C'), ('C', 'B'), ('A', 'C'), ('B', 'B')}\n{('C', 'A'), ('B', 'C'), ('C', 'B'), ('A', 'C'), ('C', 'C')}\n{('B', 'A'), ('C', 'A'), ('B', 'C'), ('C', 'B'), ('B', 'B')}\n{('B', 'A'), ('C', 'A'), ('B', 'C'), ('B', 'B'), ('C', 'C')}\n{('B', 'A'), ('B', 'C'), ('C', 'B'), ('B', 'B'), ('C', 'C')}\n{('B', 'A'), ('C', 'A'), ('C', 'B'), ('B', 'B'), ('C', 'C')}\n{('B', 'A'), ('C', 'A'), ('B', 'C'), ('C', 'B'), ('C', 'C')}\n{('C', 'A'), ('B', 'C'), ('C', 'B'), ('B', 'B'), ('C', 'C')}\n{('B', 'C'), ('A', 'A'), ('B', 'B'), ('B', 'A'), ('A', 'B'), ('A', 'C')}\n{('A', 'A'), ('B', 'B'), ('B', 'A'), ('C', 'A'), ('A', 'B'), ('A', 'C')}\n{('A', 'A'), ('B', 'B'), ('B', 'A'), ('C', 'B'), ('A', 'B'), ('A', 'C')}\n{('A', 'A'), ('B', 'B'), ('B', 'A'), ('C', 'C'), ('A', 'B'), ('A', 'C')}\n{('B', 'C'), ('A', 'A'), ('B', 'A'), ('C', 'A'), ('A', 'B'), ('A', 'C')}\n{('B', 'C'), ('A', 'A'), ('B', 'A'), ('C', 'B'), ('A', 'B'), ('A', 'C')}\n{('B', 'C'), ('A', 'A'), ('B', 'A'), ('C', 'C'), ('A', 'B'), ('A', 'C')}\n{('A', 'A'), ('B', 'A'), ('C', 'A'), ('C', 'B'), ('A', 'B'), ('A', 'C')}\n{('A', 'A'), ('B', 'A'), ('C', 'A'), ('C', 'C'), ('A', 'B'), ('A', 'C')}\n{('A', 'A'), ('B', 'A'), ('C', 'B'), ('C', 'C'), ('A', 'B'), ('A', 'C')}\n{('B', 'C'), ('A', 'A'), ('B', 'B'), ('C', 'A'), ('A', 'B'), ('A', 'C')}\n{('B', 'C'), ('A', 'A'), ('B', 'B'), ('C', 'B'), ('A', 'B'), ('A', 'C')}\n{('B', 'C'), ('A', 'A'), ('B', 'B'), ('C', 'C'), ('A', 'B'), ('A', 'C')}\n{('A', 'A'), ('B', 'B'), ('C', 'A'), ('C', 'B'), ('A', 'B'), ('A', 'C')}\n{('A', 'A'), ('B', 'B'), ('C', 'A'), ('C', 'C'), ('A', 'B'), ('A', 'C')}\n{('A', 'A'), ('B', 'B'), ('C', 'B'), ('C', 'C'), ('A', 'B'), ('A', 'C')}\n{('B', 'C'), ('A', 'A'), ('C', 'A'), ('C', 'B'), ('A', 'B'), ('A', 'C')}\n{('B', 'C'), ('A', 'A'), ('C', 'A'), ('C', 'C'), ('A', 'B'), ('A', 'C')}\n{('B', 'C'), ('A', 'A'), ('C', 'B'), ('C', 'C'), ('A', 'B'), ('A', 'C')}\n{('A', 'A'), ('C', 'A'), ('C', 'B'), ('C', 'C'), ('A', 'B'), ('A', 'C')}\n{('B', 'C'), ('A', 'A'), ('B', 'B'), ('B', 'A'), ('C', 'A'), ('A', 'B')}\n{('B', 'C'), ('A', 'A'), ('B', 'B'), ('B', 'A'), ('C', 'B'), ('A', 'B')}\n{('B', 'C'), ('A', 'A'), ('B', 'B'), ('B', 'A'), ('C', 'C'), ('A', 'B')}\n{('A', 'A'), ('B', 'B'), ('B', 'A'), ('C', 'A'), ('C', 'B'), ('A', 'B')}\n{('A', 'A'), ('B', 'B'), ('B', 'A'), ('C', 'A'), ('C', 'C'), ('A', 'B')}\n{('A', 'A'), ('B', 'B'), ('B', 'A'), ('C', 'B'), ('C', 'C'), ('A', 'B')}\n{('B', 'C'), ('A', 'A'), ('B', 'A'), ('C', 'A'), ('C', 'B'), ('A', 'B')}\n{('B', 'C'), ('A', 'A'), ('B', 'A'), ('C', 'A'), ('C', 'C'), ('A', 'B')}\n{('B', 'C'), ('A', 'A'), ('B', 'A'), ('C', 'B'), ('C', 'C'), ('A', 'B')}\n{('A', 'A'), ('B', 'A'), ('C', 'A'), ('C', 'B'), ('C', 'C'), ('A', 'B')}\n{('B', 'C'), ('A', 'A'), ('B', 'B'), ('C', 'A'), ('C', 'B'), ('A', 'B')}\n{('B', 'C'), ('A', 'A'), ('B', 'B'), ('C', 'A'), ('C', 'C'), ('A', 'B')}\n{('B', 'C'), ('A', 'A'), ('B', 'B'), ('C', 'B'), ('C', 'C'), ('A', 'B')}\n{('A', 'A'), ('B', 'B'), ('C', 'A'), ('C', 'B'), ('C', 'C'), ('A', 'B')}\n{('B', 'C'), ('A', 'A'), ('C', 'A'), ('C', 'B'), ('C', 'C'), ('A', 'B')}\n{('B', 'C'), ('A', 'A'), ('B', 'B'), ('B', 'A'), ('C', 'A'), ('A', 'C')}\n{('B', 'C'), ('A', 'A'), ('B', 'B'), ('B', 'A'), ('C', 'B'), ('A', 'C')}"}︡{"stdout":"\n{('B', 'C'), ('A', 'A'), ('B', 'B'), ('B', 'A'), ('C', 'C'), ('A', 'C')}\n{('A', 'A'), ('B', 'B'), ('B', 'A'), ('C', 'A'), ('C', 'B'), ('A', 'C')}\n{('A', 'A'), ('B', 'B'), ('B', 'A'), ('C', 'A'), ('C', 'C'), ('A', 'C')}\n{('A', 'A'), ('B', 'B'), ('B', 'A'), ('C', 'B'), ('C', 'C'), ('A', 'C')}\n{('B', 'C'), ('A', 'A'), ('B', 'A'), ('C', 'A'), ('C', 'B'), ('A', 'C')}\n{('B', 'C'), ('A', 'A'), ('B', 'A'), ('C', 'A'), ('C', 'C'), ('A', 'C')}\n{('B', 'C'), ('A', 'A'), ('B', 'A'), ('C', 'B'), ('C', 'C'), ('A', 'C')}\n{('A', 'A'), ('B', 'A'), ('C', 'A'), ('C', 'B'), ('C', 'C'), ('A', 'C')}\n{('B', 'C'), ('A', 'A'), ('B', 'B'), ('C', 'A'), ('C', 'B'), ('A', 'C')}\n{('B', 'C'), ('A', 'A'), ('B', 'B'), ('C', 'A'), ('C', 'C'), ('A', 'C')}\n{('B', 'C'), ('A', 'A'), ('B', 'B'), ('C', 'B'), ('C', 'C'), ('A', 'C')}\n{('A', 'A'), ('B', 'B'), ('C', 'A'), ('C', 'B'), ('C', 'C'), ('A', 'C')}\n{('B', 'C'), ('A', 'A'), ('C', 'A'), ('C', 'B'), ('C', 'C'), ('A', 'C')}\n{('B', 'C'), ('A', 'A'), ('B', 'B'), ('B', 'A'), ('C', 'A'), ('C', 'B')}\n{('B', 'C'), ('A', 'A'), ('B', 'B'), ('B', 'A'), ('C', 'A'), ('C', 'C')}\n{('B', 'C'), ('A', 'A'), ('B', 'B'), ('B', 'A'), ('C', 'B'), ('C', 'C')}\n{('A', 'A'), ('B', 'B'), ('B', 'A'), ('C', 'A'), ('C', 'B'), ('C', 'C')}\n{('B', 'C'), ('A', 'A'), ('B', 'A'), ('C', 'A'), ('C', 'B'), ('C', 'C')}\n{('B', 'C'), ('A', 'A'), ('B', 'B'), ('C', 'A'), ('C', 'B'), ('C', 'C')}\n{('B', 'C'), ('B', 'B'), ('B', 'A'), ('C', 'A'), ('A', 'B'), ('A', 'C')}\n{('B', 'C'), ('B', 'B'), ('B', 'A'), ('C', 'B'), ('A', 'B'), ('A', 'C')}\n{('B', 'C'), ('B', 'B'), ('B', 'A'), ('C', 'C'), ('A', 'B'), ('A', 'C')}\n{('B', 'B'), ('B', 'A'), ('C', 'A'), ('C', 'B'), ('A', 'B'), ('A', 'C')}\n{('B', 'B'), ('B', 'A'), ('C', 'A'), ('C', 'C'), ('A', 'B'), ('A', 'C')}\n{('B', 'B'), ('B', 'A'), ('C', 'B'), ('C', 'C'), ('A', 'B'), ('A', 'C')}\n{('B', 'C'), ('B', 'A'), ('C', 'A'), ('C', 'B'), ('A', 'B'), ('A', 'C')}\n{('B', 'C'), ('B', 'A'), ('C', 'A'), ('C', 'C'), ('A', 'B'), ('A', 'C')}\n{('B', 'C'), ('B', 'A'), ('C', 'B'), ('C', 'C'), ('A', 'B'), ('A', 'C')}\n{('B', 'A'), ('C', 'A'), ('C', 'B'), ('C', 'C'), ('A', 'B'), ('A', 'C')}\n{('B', 'C'), ('B', 'B'), ('C', 'A'), ('C', 'B'), ('A', 'B'), ('A', 'C')}\n{('B', 'C'), ('B', 'B'), ('C', 'A'), ('C', 'C'), ('A', 'B'), ('A', 'C')}\n{('B', 'C'), ('B', 'B'), ('C', 'B'), ('C', 'C'), ('A', 'B'), ('A', 'C')}\n{('B', 'B'), ('C', 'A'), ('C', 'B'), ('C', 'C'), ('A', 'B'), ('A', 'C')}\n{('B', 'C'), ('C', 'A'), ('C', 'B'), ('C', 'C'), ('A', 'B'), ('A', 'C')}\n{('B', 'C'), ('B', 'B'), ('B', 'A'), ('C', 'A'), ('C', 'B'), ('A', 'B')}\n{('B', 'C'), ('B', 'B'), ('B', 'A'), ('C', 'A'), ('C', 'C'), ('A', 'B')}\n{('B', 'C'), ('B', 'B'), ('B', 'A'), ('C', 'B'), ('C', 'C'), ('A', 'B')}\n{('B', 'B'), ('B', 'A'), ('C', 'A'), ('C', 'B'), ('C', 'C'), ('A', 'B')}\n{('B', 'C'), ('B', 'A'), ('C', 'A'), ('C', 'B'), ('C', 'C'), ('A', 'B')}\n{('B', 'C'), ('B', 'B'), ('C', 'A'), ('C', 'B'), ('C', 'C'), ('A', 'B')}\n{('B', 'C'), ('B', 'B'), ('B', 'A'), ('C', 'A'), ('C', 'B'), ('A', 'C')}\n{('B', 'C'), ('B', 'B'), ('B', 'A'), ('C', 'A'), ('C', 'C'), ('A', 'C')}\n{('B', 'C'), ('B', 'B'), ('B', 'A'), ('C', 'B'), ('C', 'C'), ('A', 'C')}\n{('B', 'B'), ('B', 'A'), ('C', 'A'), ('C', 'B'), ('C', 'C'), ('A', 'C')}\n{('B', 'C'), ('B', 'A'), ('C', 'A'), ('C', 'B'), ('C', 'C'), ('A', 'C')}\n{('B', 'C'), ('B', 'B'), ('C', 'A'), ('C', 'B'), ('C', 'C'), ('A', 'C')}\n{('B', 'C'), ('B', 'B'), ('B', 'A'), ('C', 'A'), ('C', 'B'), ('C', 'C')}\n{('B', 'C'), ('A', 'A'), ('B', 'B'), ('B', 'A'), ('C', 'A'), ('A', 'B'), ('A', 'C')}\n{('B', 'C'), ('A', 'A'), ('B', 'B'), ('B', 'A'), ('C', 'B'), ('A', 'B'), ('A', 'C')}\n{('B', 'C'), ('A', 'A'), ('B', 'B'), ('B', 'A'), ('C', 'C'), ('A', 'B'), ('A', 'C')}\n{('A', 'A'), ('B', 'B'), ('B', 'A'), ('C', 'A'), ('C', 'B'), ('A', 'B'), ('A', 'C')}\n{('A', 'A'), ('B', 'B'), ('B', 'A'), ('C', 'A'), ('C', 'C'), ('A', 'B'), ('A', 'C')}\n{('A', 'A'), ('B', 'B'), ('B', 'A'), ('C', 'B'), ('C', 'C'), ('A', 'B'), ('A', 'C')}\n{('B', 'C'), ('A', 'A'), ('B', 'A'), ('C', 'A'), ('C', 'B'), ('A', 'B'), ('A', 'C')}\n{('B', 'C'), ('A', 'A'), ('B', 'A'), ('C', 'A'), ('C', 'C'), ('A', 'B'), ('A', 'C')}"}︡{"stdout":"\n{('B', 'C'), ('A', 'A'), ('B', 'A'), ('C', 'B'), ('C', 'C'), ('A', 'B'), ('A', 'C')}\n{('A', 'A'), ('B', 'A'), ('C', 'A'), ('C', 'B'), ('C', 'C'), ('A', 'B'), ('A', 'C')}\n{('B', 'C'), ('A', 'A'), ('B', 'B'), ('C', 'A'), ('C', 'B'), ('A', 'B'), ('A', 'C')}\n{('B', 'C'), ('A', 'A'), ('B', 'B'), ('C', 'A'), ('C', 'C'), ('A', 'B'), ('A', 'C')}\n{('B', 'C'), ('A', 'A'), ('B', 'B'), ('C', 'B'), ('C', 'C'), ('A', 'B'), ('A', 'C')}\n{('A', 'A'), ('B', 'B'), ('C', 'A'), ('C', 'B'), ('C', 'C'), ('A', 'B'), ('A', 'C')}\n{('B', 'C'), ('A', 'A'), ('C', 'A'), ('C', 'B'), ('C', 'C'), ('A', 'B'), ('A', 'C')}\n{('B', 'C'), ('A', 'A'), ('B', 'B'), ('B', 'A'), ('C', 'A'), ('C', 'B'), ('A', 'B')}\n{('B', 'C'), ('A', 'A'), ('B', 'B'), ('B', 'A'), ('C', 'A'), ('C', 'C'), ('A', 'B')}\n{('B', 'C'), ('A', 'A'), ('B', 'B'), ('B', 'A'), ('C', 'B'), ('C', 'C'), ('A', 'B')}\n{('A', 'A'), ('B', 'B'), ('B', 'A'), ('C', 'A'), ('C', 'B'), ('C', 'C'), ('A', 'B')}\n{('B', 'C'), ('A', 'A'), ('B', 'A'), ('C', 'A'), ('C', 'B'), ('C', 'C'), ('A', 'B')}\n{('B', 'C'), ('A', 'A'), ('B', 'B'), ('C', 'A'), ('C', 'B'), ('C', 'C'), ('A', 'B')}\n{('B', 'C'), ('A', 'A'), ('B', 'B'), ('B', 'A'), ('C', 'A'), ('C', 'B'), ('A', 'C')}\n{('B', 'C'), ('A', 'A'), ('B', 'B'), ('B', 'A'), ('C', 'A'), ('C', 'C'), ('A', 'C')}\n{('B', 'C'), ('A', 'A'), ('B', 'B'), ('B', 'A'), ('C', 'B'), ('C', 'C'), ('A', 'C')}\n{('A', 'A'), ('B', 'B'), ('B', 'A'), ('C', 'A'), ('C', 'B'), ('C', 'C'), ('A', 'C')}\n{('B', 'C'), ('A', 'A'), ('B', 'A'), ('C', 'A'), ('C', 'B'), ('C', 'C'), ('A', 'C')}\n{('B', 'C'), ('A', 'A'), ('B', 'B'), ('C', 'A'), ('C', 'B'), ('C', 'C'), ('A', 'C')}\n{('B', 'C'), ('A', 'A'), ('B', 'B'), ('B', 'A'), ('C', 'A'), ('C', 'B'), ('C', 'C')}\n{('B', 'C'), ('B', 'B'), ('B', 'A'), ('C', 'A'), ('C', 'B'), ('A', 'B'), ('A', 'C')}\n{('B', 'C'), ('B', 'B'), ('B', 'A'), ('C', 'A'), ('C', 'C'), ('A', 'B'), ('A', 'C')}\n{('B', 'C'), ('B', 'B'), ('B', 'A'), ('C', 'B'), ('C', 'C'), ('A', 'B'), ('A', 'C')}\n{('B', 'B'), ('B', 'A'), ('C', 'A'), ('C', 'B'), ('C', 'C'), ('A', 'B'), ('A', 'C')}\n{('B', 'C'), ('B', 'A'), ('C', 'A'), ('C', 'B'), ('C', 'C'), ('A', 'B'), ('A', 'C')}\n{('B', 'C'), ('B', 'B'), ('C', 'A'), ('C', 'B'), ('C', 'C'), ('A', 'B'), ('A', 'C')}\n{('B', 'C'), ('B', 'B'), ('B', 'A'), ('C', 'A'), ('C', 'B'), ('C', 'C'), ('A', 'B')}\n{('B', 'C'), ('B', 'B'), ('B', 'A'), ('C', 'A'), ('C', 'B'), ('C', 'C'), ('A', 'C')}\n{('B', 'C'), ('A', 'A'), ('B', 'B'), ('B', 'A'), ('C', 'A'), ('C', 'B'), ('A', 'B'), ('A', 'C')}\n{('B', 'C'), ('A', 'A'), ('B', 'B'), ('B', 'A'), ('C', 'A'), ('C', 'C'), ('A', 'B'), ('A', 'C')}\n{('B', 'C'), ('A', 'A'), ('B', 'B'), ('B', 'A'), ('C', 'B'), ('C', 'C'), ('A', 'B'), ('A', 'C')}\n{('A', 'A'), ('B', 'B'), ('B', 'A'), ('C', 'A'), ('C', 'B'), ('C', 'C'), ('A', 'B'), ('A', 'C')}\n{('B', 'C'), ('A', 'A'), ('B', 'A'), ('C', 'A'), ('C', 'B'), ('C', 'C'), ('A', 'B'), ('A', 'C')}\n{('B', 'C'), ('A', 'A'), ('B', 'B'), ('C', 'A'), ('C', 'B'), ('C', 'C'), ('A', 'B'), ('A', 'C')}\n{('B', 'C'), ('A', 'A'), ('B', 'B'), ('B', 'A'), ('C', 'A'), ('C', 'B'), ('C', 'C'), ('A', 'B')}\n{('B', 'C'), ('A', 'A'), ('B', 'B'), ('B', 'A'), ('C', 'A'), ('C', 'B'), ('C', 'C'), ('A', 'C')}\n{('B', 'C'), ('B', 'B'), ('B', 'A'), ('C', 'A'), ('C', 'B'), ('C', 'C'), ('A', 'B'), ('A', 'C')}\n{('B', 'C'), ('A', 'A'), ('B', 'B'), ('B', 'A'), ('C', 'A'), ('C', 'B'), ('C', 'C'), ('A', 'B'), ('A', 'C')}\n"}︡{"done":true}
︠fdec6251-3841-4b8f-9977-09f48121c176︠