(* Content-type: application/mathematica *) (*** Wolfram Notebook File ***) (* http://www.wolfram.com/nb *) (* CreatedBy='Mathematica 7.0' *) (*CacheID: 234*) (* Internal cache information: NotebookFileLineBreakTest NotebookFileLineBreakTest NotebookDataPosition[ 145, 7] NotebookDataLength[ 37186, 1125] NotebookOptionsPosition[ 34336, 1028] NotebookOutlinePosition[ 34721, 1045] CellTagsIndexPosition[ 34678, 1042] WindowFrame->Normal*) (* Beginning of Notebook Content *) Notebook[{ Cell[CellGroupData[{ Cell[BoxData[{ RowBox[{ RowBox[{"FusionAtlasPaths", "=", RowBox[{"{", "\"\<~/projects/fusionatlas/code/package/\>\"", "}"}]}], ";"}], "\n", RowBox[{ RowBox[{"$Path", "=", RowBox[{"$Path", "~", "Join", "~", "FusionAtlasPaths"}]}], ";"}], "\[IndentingNewLine]", RowBox[{"<<", "FusionAtlas`"}]}], "Input", CellChangeTimes->{{3.4619815107488956`*^9, 3.4619815110119467`*^9}}], Cell[CellGroupData[{ Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"Loading FusionAtlas` version 0\\n\"\>", "\[InvisibleSpace]", "\<\"Read more at \ http://tqft.net/wiki/Atlas_of_subfactors\"\>"}], SequenceForm[ "Loading FusionAtlas` version 0\n", "Read more at http://tqft.net/wiki/Atlas_of_subfactors"], Editable->False]], "Print", CellChangeTimes->{3.464808722135706*^9}], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"Found precomputed data in \"\>", "\[InvisibleSpace]", \ "\<\"/Users/scott/projects/fusionatlas/code/data\"\>"}], SequenceForm[ "Found precomputed data in ", "/Users/scott/projects/fusionatlas/code/data"], Editable->False]], "Print", CellChangeTimes->{3.464808722358367*^9}] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"g2221", "=", RowBox[{ "GraphFromString", "[", "\"\\"", "]"}]}]], "Input"], Cell[BoxData[ RowBox[{"GradedBigraph", "[", RowBox[{ RowBox[{"{", RowBox[{"{", "1", "}"}], "}"}], ",", RowBox[{"{", RowBox[{"{", "1", "}"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"{", "1", "}"}], ",", RowBox[{"{", "1", "}"}], ",", RowBox[{"{", "1", "}"}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"1", ",", "0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "1", ",", "0"}], "}"}]}], "}"}]}], "]"}]], "Output", CellChangeTimes->{3.464808728086803*^9}] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"even", "=", RowBox[{"EvenPart", "[", "g2221", "]"}]}]], "Input", CellChangeTimes->{{3.464808729006978*^9, 3.464808731827106*^9}, { 3.464808781011201*^9, 3.46480878208108*^9}}], Cell[BoxData[ RowBox[{"GradedGraph", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"{", "0", "}"}], "}"}], ",", RowBox[{"{", RowBox[{"{", "3", "}"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "0"}], "}"}]}], "}"}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"{", "1", "}"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"{", "1", "}"}], ",", RowBox[{"{", "1", "}"}]}], "}"}]}], "}"}]}], "]"}]], "Output", CellChangeTimes->{3.464808732485362*^9, 3.464808782804906*^9}] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"FindFusionAlgebras", "[", "even", "]"}]], "Input", CellChangeTimes->{{3.4648087705958138`*^9, 3.4648087863285522`*^9}}], Cell[BoxData[ RowBox[{"{", RowBox[{"FusionAlgebra", "[", RowBox[{ RowBox[{"GradedGraph", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"{", "0", "}"}], "}"}], ",", RowBox[{"{", RowBox[{"{", "3", "}"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "0"}], "}"}]}], "}"}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"{", "1", "}"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"{", "1", "}"}], ",", RowBox[{"{", "1", "}"}]}], "}"}]}], "}"}]}], "]"}], ",", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"1", ",", "0", ",", "0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "1", ",", "0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "0", ",", "1", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "0", ",", "0", ",", "1"}], "}"}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"0", ",", "1", ",", "0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"1", ",", "3", ",", "1", ",", "1"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "1", ",", "0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "1", ",", "0", ",", "0"}], "}"}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"0", ",", "0", ",", "1", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "1", ",", "0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "0", ",", "0", ",", "1"}], "}"}], ",", RowBox[{"{", RowBox[{"1", ",", "0", ",", "0", ",", "0"}], "}"}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"0", ",", "0", ",", "0", ",", "1"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "1", ",", "0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"1", ",", "0", ",", "0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "0", ",", "1", ",", "0"}], "}"}]}], "}"}]}], "}"}]}], "]"}], "}"}]], "Output", CellChangeTimes->{{3.464808778710326*^9, 3.46480878678376*^9}}] }, Open ]], Cell[BoxData[ RowBox[{ RowBox[{"names", "=", RowBox[{"{", RowBox[{"1", ",", "X", ",", "G", ",", "G2"}], "}"}]}], ";"}]], "Input", CellChangeTimes->{{3.460304099972025*^9, 3.460304106916527*^9}, { 3.464808852336335*^9, 3.464808855868766*^9}}], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"(", RowBox[{"fusion", "=", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"1", ",", "0", ",", "0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "1", ",", "0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "0", ",", "1", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "0", ",", "0", ",", "1"}], "}"}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"0", ",", "1", ",", "0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"1", ",", "3", ",", "1", ",", "1"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "1", ",", "0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "1", ",", "0", ",", "0"}], "}"}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"0", ",", "0", ",", "1", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "1", ",", "0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "0", ",", "0", ",", "1"}], "}"}], ",", RowBox[{"{", RowBox[{"1", ",", "0", ",", "0", ",", "0"}], "}"}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"0", ",", "0", ",", "0", ",", "1"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "1", ",", "0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"1", ",", "0", ",", "0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "0", ",", "1", ",", "0"}], "}"}]}], "}"}]}], "}"}]}], ")"}], "/.", RowBox[{ RowBox[{"v", ":", RowBox[{"{", "__Integer", "}"}]}], "\[RuleDelayed]", RowBox[{"(", RowBox[{"v", ".", RowBox[{"{", RowBox[{"1", ",", "X", ",", "G", ",", "G2"}], "}"}]}], ")"}]}]}], "//", "MatrixForm"}]], "Input", CellChangeTimes->{ 3.46030264227243*^9, {3.460304088300668*^9, 3.460304097358685*^9}, 3.46031035593041*^9, {3.460310417593597*^9, 3.460310419356762*^9}, { 3.464808839010215*^9, 3.464808861891637*^9}}], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"1", "X", "G", "G2"}, {"X", RowBox[{"1", "+", "G", "+", "G2", "+", RowBox[{"3", " ", "X"}]}], "X", "X"}, {"G", "X", "G2", "1"}, {"G2", "X", "1", "G"} }, GridBoxAlignment->{ "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, "Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, GridBoxSpacings->{"Columns" -> { Offset[0.27999999999999997`], { Offset[0.7]}, Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { Offset[0.2], { Offset[0.4]}, Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}], Function[BoxForm`e$, MatrixForm[BoxForm`e$]]]], "Output", CellChangeTimes->{ 3.460304171137581*^9, {3.460310407809927*^9, 3.460310419745564*^9}, 3.464808866666757*^9}] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"TrivalentMaps", "=", RowBox[{"Flatten", "[", RowBox[{"Table", "[", RowBox[{ RowBox[{"map", "[", RowBox[{ RowBox[{ "names", "\[LeftDoubleBracket]", "i", "\[RightDoubleBracket]"}], ",", RowBox[{ "names", "\[LeftDoubleBracket]", "j", "\[RightDoubleBracket]"}], ",", RowBox[{ "names", "\[LeftDoubleBracket]", "k", "\[RightDoubleBracket]"}], ",", "l"}], "]"}], ",", RowBox[{"{", RowBox[{"i", ",", "1", ",", RowBox[{"Length", "[", "names", "]"}]}], "}"}], ",", RowBox[{"{", RowBox[{"j", ",", "1", ",", RowBox[{"Length", "[", "names", "]"}]}], "}"}], ",", RowBox[{"{", RowBox[{"k", ",", "1", ",", RowBox[{"Length", "[", "names", "]"}]}], "}"}], ",", RowBox[{"{", RowBox[{"l", ",", "1", ",", RowBox[{"fusion", "\[LeftDoubleBracket]", RowBox[{"i", ",", "j", ",", "k"}], "\[RightDoubleBracket]"}]}], "}"}]}], "]"}], "]"}]}]], "Input", CellChangeTimes->{{3.4603040707321463`*^9, 3.4603041671553392`*^9}, { 3.460304200851323*^9, 3.46030420217137*^9}, {3.4648088842896976`*^9, 3.464808893047085*^9}, {3.464809005286241*^9, 3.464809009658663*^9}}], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{"map", "[", RowBox[{"1", ",", "1", ",", "1", ",", "1"}], "]"}], ",", RowBox[{"map", "[", RowBox[{"1", ",", "X", ",", "X", ",", "1"}], "]"}], ",", RowBox[{"map", "[", RowBox[{"1", ",", "G", ",", "G", ",", "1"}], "]"}], ",", RowBox[{"map", "[", RowBox[{"1", ",", "G2", ",", "G2", ",", "1"}], "]"}], ",", RowBox[{"map", "[", RowBox[{"X", ",", "1", ",", "X", ",", "1"}], "]"}], ",", RowBox[{"map", "[", RowBox[{"X", ",", "X", ",", "1", ",", "1"}], "]"}], ",", RowBox[{"map", "[", RowBox[{"X", ",", "X", ",", "X", ",", "1"}], "]"}], ",", RowBox[{"map", "[", RowBox[{"X", ",", "X", ",", "X", ",", "2"}], "]"}], ",", RowBox[{"map", "[", RowBox[{"X", ",", "X", ",", "X", ",", "3"}], "]"}], ",", RowBox[{"map", "[", RowBox[{"X", ",", "X", ",", "G", ",", "1"}], "]"}], ",", RowBox[{"map", "[", RowBox[{"X", ",", "X", ",", "G2", ",", "1"}], "]"}], ",", RowBox[{"map", "[", RowBox[{"X", ",", "G", ",", "X", ",", "1"}], "]"}], ",", RowBox[{"map", "[", RowBox[{"X", ",", "G2", ",", "X", ",", "1"}], "]"}], ",", RowBox[{"map", "[", RowBox[{"G", ",", "1", ",", "G", ",", "1"}], "]"}], ",", RowBox[{"map", "[", RowBox[{"G", ",", "X", ",", "X", ",", "1"}], "]"}], ",", RowBox[{"map", "[", RowBox[{"G", ",", "G", ",", "G2", ",", "1"}], "]"}], ",", RowBox[{"map", "[", RowBox[{"G", ",", "G2", ",", "1", ",", "1"}], "]"}], ",", RowBox[{"map", "[", RowBox[{"G2", ",", "1", ",", "G2", ",", "1"}], "]"}], ",", RowBox[{"map", "[", RowBox[{"G2", ",", "X", ",", "X", ",", "1"}], "]"}], ",", RowBox[{"map", "[", RowBox[{"G2", ",", "G", ",", "1", ",", "1"}], "]"}], ",", RowBox[{"map", "[", RowBox[{"G2", ",", "G2", ",", "G", ",", "1"}], "]"}]}], "}"}]], "Output", CellChangeTimes->{3.4648088941422777`*^9, 3.464809010154566*^9}] }, Open ]], Cell[BoxData[{ RowBox[{"Clear", "[", "multiplicity", "]"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"multiplicity", "[", RowBox[{"a_", ",", "b_", ",", "c_"}], "]"}], ":=", RowBox[{ RowBox[{"multiplicity", "[", RowBox[{"a", ",", "b", ",", "c"}], "]"}], "=", RowBox[{"Max", "[", RowBox[{ RowBox[{"Cases", "[", RowBox[{"TrivalentMaps", ",", RowBox[{ RowBox[{"map", "[", RowBox[{"a", ",", "b", ",", "c", ",", "z_"}], "]"}], "\[RuleDelayed]", "z"}]}], "]"}], "~", "Join", "~", RowBox[{"{", "0", "}"}]}], "]"}]}]}]}], "Input", CellChangeTimes->{{3.4603045990380774`*^9, 3.460304673904325*^9}}], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"multiplicity", "[", RowBox[{"X", ",", "X", ",", "X"}], "]"}]], "Input", CellChangeTimes->{{3.464809510928831*^9, 3.4648095158354483`*^9}}], Cell[BoxData["3"], "Output", CellChangeTimes->{3.464809516286057*^9}] }, Open ]], Cell[BoxData[ RowBox[{ RowBox[{"Unprotect", "[", StyleBox["NonCommutativeMultiply", "MT"], StyleBox["]", "MT"]}], StyleBox[";", "MT"]}]], "Input", CellChangeTimes->{{3.4603043274378223`*^9, 3.460304333991569*^9}}], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{ RowBox[{"map", "[", RowBox[{"a_", ",", "_", ",", "_", ",", "_"}], "]"}], "**", RowBox[{"(", RowBox[{ RowBox[{"map", "[", RowBox[{"_", ",", "_", ",", "aa_", ",", "_"}], "]"}], "\[CircleTimes]", "1"}], ")"}]}], "/;", RowBox[{"a", "\[NotEqual]", "aa"}]}], ":=", "0"}]], "Input", CellChangeTimes->{{3.460304218909997*^9, 3.4603042348114443`*^9}, { 3.460304302828796*^9, 3.460304322021365*^9}, {3.4603044990049047`*^9, 3.460304524827351*^9}}], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{ RowBox[{"map", "[", RowBox[{"_", ",", "b_", ",", "_", ",", "_"}], "]"}], "**", RowBox[{"(", RowBox[{"1", "\[CircleTimes]", RowBox[{"map", "[", RowBox[{"_", ",", "_", ",", "bb_", ",", "_"}], "]"}], "\[CircleTimes]", "1"}], ")"}]}], "/;", RowBox[{"b", "\[NotEqual]", "bb"}]}], ":=", "0"}]], "Input", CellChangeTimes->{{3.4603043421353703`*^9, 3.4603043535488367`*^9}, { 3.460304506764422*^9, 3.460304532412678*^9}}], Cell[BoxData[ RowBox[{"SetAttributes", "[", RowBox[{"NonCommutativeMultiply", ",", "Flat"}], "]"}]], "Input", CellChangeTimes->{{3.4603052996530647`*^9, 3.460305307874461*^9}}], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"map", "[", RowBox[{"e_", ",", "c_", ",", "d_", ",", "y_"}], "]"}], "**", RowBox[{"(", RowBox[{ RowBox[{"map", "[", RowBox[{"a_", ",", "b_", ",", "e_", ",", "z_"}], "]"}], "\[CircleTimes]", "1"}], ")"}]}], ":=", RowBox[{"Sum", "[", RowBox[{ RowBox[{ RowBox[{"x", "[", RowBox[{"a", ",", "b", ",", "c", ",", "d", ",", "e", ",", RowBox[{ "names", "\[LeftDoubleBracket]", "f", "\[RightDoubleBracket]"}], ",", "y", ",", "z", ",", "q", ",", "r"}], "]"}], RowBox[{ RowBox[{"map", "[", RowBox[{"a", ",", RowBox[{ "names", "\[LeftDoubleBracket]", "f", "\[RightDoubleBracket]"}], ",", "d", ",", "q"}], "]"}], "**", RowBox[{"(", RowBox[{"1", "\[CircleTimes]", RowBox[{"map", "[", RowBox[{"b", ",", "c", ",", RowBox[{ "names", "\[LeftDoubleBracket]", "f", "\[RightDoubleBracket]"}], ",", "r"}], "]"}]}], ")"}]}]}], ",", RowBox[{"{", RowBox[{"f", ",", "1", ",", RowBox[{"Length", "[", "names", "]"}]}], "}"}], ",", RowBox[{"{", RowBox[{"q", ",", "1", ",", RowBox[{"multiplicity", "[", RowBox[{"a", ",", RowBox[{ "names", "\[LeftDoubleBracket]", "f", "\[RightDoubleBracket]"}], ",", "d"}], "]"}]}], "}"}], ",", RowBox[{"{", RowBox[{"r", ",", RowBox[{"multiplicity", "[", RowBox[{"b", ",", "c", ",", RowBox[{ "names", "\[LeftDoubleBracket]", "f", "\[RightDoubleBracket]"}]}], "]"}]}], "}"}]}], "]"}]}]], "Input", CellChangeTimes->{{3.460304356066079*^9, 3.460304492415306*^9}, { 3.460304538253849*^9, 3.460304590037166*^9}, {3.460304681396689*^9, 3.4603047197634907`*^9}, {3.464808994030151*^9, 3.4648089984326963`*^9}}], Cell[BoxData[{ RowBox[{ RowBox[{"A_Plus", "\[CircleTimes]", "B_"}], ":=", RowBox[{ RowBox[{ RowBox[{"#", "\[CircleTimes]", "B"}], "&"}], "/@", "A"}]}], "\[IndentingNewLine]", RowBox[{ RowBox[{"A_", "\[CircleTimes]", "B_Plus"}], ":=", RowBox[{ RowBox[{ RowBox[{"A", "\[CircleTimes]", "#"}], "&"}], "/@", "B"}]}], "\[IndentingNewLine]", RowBox[{ RowBox[{"A_Plus", "**", "B_"}], ":=", RowBox[{ RowBox[{ RowBox[{"#", "**", "B"}], "&"}], "/@", "A"}]}], "\[IndentingNewLine]", RowBox[{ RowBox[{"A_", "**", "B_Plus"}], ":=", RowBox[{ RowBox[{ RowBox[{"A", "**", "#"}], "&"}], "/@", "B"}]}]}], "Input", CellChangeTimes->{{3.460306447214756*^9, 3.460306459666831*^9}, { 3.460306517541703*^9, 3.46030652769317*^9}, {3.4603065578993692`*^9, 3.460306578234817*^9}}], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"(", RowBox[{"1", "\[CircleTimes]", "n_map"}], ")"}], "**", RowBox[{"(", RowBox[{"m_map", "\[CircleTimes]", "1", "\[CircleTimes]", "1"}], ")"}]}], ":=", RowBox[{ RowBox[{"(", RowBox[{"m", "\[CircleTimes]", "1"}], ")"}], "**", RowBox[{"(", RowBox[{"1", "\[CircleTimes]", "1", "\[CircleTimes]", "n"}], ")"}]}]}]], "Input", CellChangeTimes->{{3.460305741680379*^9, 3.4603057827110863`*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"CircleTimes", "[", "f_", "]"}], ":=", "f"}]], "Input", CellChangeTimes->{{3.4603055797226057`*^9, 3.4603055844804497`*^9}, { 3.460305805579273*^9, 3.460305808127317*^9}}], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"(", RowBox[{"1", "\[CircleTimes]", RowBox[{"map", "[", RowBox[{"1", ",", "1", ",", "1", ",", "1"}], "]"}]}], ")"}], "**", RowBox[{"(", RowBox[{"1", "\[CircleTimes]", RowBox[{"map", "[", RowBox[{"1", ",", "1", ",", "1", ",", "1"}], "]"}], "\[CircleTimes]", "1"}], ")"}]}], "//", "FullForm"}]], "Input", CellChangeTimes->{{3.460305419336398*^9, 3.460305420690816*^9}, { 3.4603055254572277`*^9, 3.4603055262337523`*^9}}], Cell[BoxData[ TagBox[ StyleBox[ RowBox[{"NonCommutativeMultiply", "[", RowBox[{ RowBox[{"CircleTimes", "[", RowBox[{"1", ",", RowBox[{"map", "[", RowBox[{"1", ",", "1", ",", "1", ",", "1"}], "]"}]}], "]"}], ",", RowBox[{"CircleTimes", "[", RowBox[{"1", ",", RowBox[{"map", "[", RowBox[{"1", ",", "1", ",", "1", ",", "1"}], "]"}], ",", "1"}], "]"}]}], "]"}], ShowSpecialCharacters->False, ShowStringCharacters->True, NumberMarks->True], FullForm]], "Output", CellChangeTimes->{ 3.46030542099214*^9, 3.460305462624034*^9, {3.4603055265666523`*^9, 3.460305541642838*^9}, 3.464809657968112*^9}] }, Open ]], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"(", RowBox[{"1", "\[CircleTimes]", "A__"}], ")"}], "**", RowBox[{"(", RowBox[{"1", "\[CircleTimes]", "B__"}], ")"}]}], ":=", RowBox[{"1", "\[CircleTimes]", RowBox[{"(", RowBox[{ RowBox[{"CircleTimes", "[", "A", "]"}], "**", RowBox[{"CircleTimes", "[", "B", "]"}]}], ")"}]}]}]], "Input", CellChangeTimes->{{3.460305475675042*^9, 3.460305501281309*^9}, { 3.460305537224695*^9, 3.460305567721908*^9}}], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"(", RowBox[{"m_map", "**", RowBox[{"(", RowBox[{"1", "\[CircleTimes]", "n_map"}], ")"}]}], ")"}], "\[CircleTimes]", "1"}], ":=", RowBox[{ RowBox[{"(", RowBox[{"m", "\[CircleTimes]", "1"}], ")"}], "**", RowBox[{"(", RowBox[{"1", "\[CircleTimes]", "n", "\[CircleTimes]", "1"}], ")"}]}]}]], "Input", CellChangeTimes->{{3.4603052222400208`*^9, 3.46030529209231*^9}, { 3.460305362893962*^9, 3.460305364084818*^9}}], Cell[BoxData[{ RowBox[{ RowBox[{ RowBox[{"(", RowBox[{"A_", " ", "X_x"}], ")"}], "\[CircleTimes]", "B_"}], ":=", RowBox[{"X", RowBox[{"(", RowBox[{"A", "\[CircleTimes]", "B"}], ")"}]}]}], "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"(", "A_", ")"}], "\[CircleTimes]", RowBox[{"(", RowBox[{"X_x", " ", "B_"}], ")"}]}], ":=", RowBox[{"X", RowBox[{"(", RowBox[{"A", "\[CircleTimes]", "B"}], ")"}]}]}]}], "Input", CellChangeTimes->{{3.4603051405792513`*^9, 3.460305162271914*^9}, { 3.460305606967301*^9, 3.460305615492963*^9}}], Cell[BoxData[{ RowBox[{ RowBox[{"A_", "**", RowBox[{"(", RowBox[{"X_x", " ", "B_"}], ")"}]}], ":=", RowBox[{"X", RowBox[{"(", RowBox[{"A", "**", "B"}], ")"}]}]}], "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"(", RowBox[{"X_x", " ", "A_"}], ")"}], "**", RowBox[{"(", "B_", ")"}]}], ":=", RowBox[{"X", RowBox[{"(", RowBox[{"A", "**", "B"}], ")"}]}]}]}], "Input", CellChangeTimes->{{3.4603050955550137`*^9, 3.4603051123065157`*^9}, { 3.460305146616988*^9, 3.460305150281095*^9}, {3.4603054466914053`*^9, 3.460305455528487*^9}}], Cell[BoxData[ RowBox[{"Clear", "[", "associativity", "]"}]], "Input", CellChangeTimes->{{3.4603063476041327`*^9, 3.460306352025549*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"associativityTest", "[", RowBox[{ "a_", ",", "b_", ",", "c_", ",", "d_", ",", "e_", ",", "f_", ",", "g_", ",", "z1_", ",", "z2_", ",", "z3_"}], "]"}], ":=", RowBox[{"Collect", "[", RowBox[{ RowBox[{ RowBox[{ RowBox[{"map", "[", RowBox[{"g", ",", "d", ",", "e", ",", "z3"}], "]"}], "**", RowBox[{"(", RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"map", "[", RowBox[{"f", ",", "c", ",", "g", ",", "z2"}], "]"}], "**", RowBox[{"(", RowBox[{ RowBox[{"map", "[", RowBox[{"a", ",", "b", ",", "f", ",", "z1"}], "]"}], "\[CircleTimes]", "1"}], ")"}]}], ")"}], "\[CircleTimes]", "1"}], ")"}]}], "-", RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"map", "[", RowBox[{"g", ",", "d", ",", "e", ",", "z3"}], "]"}], "**", RowBox[{"(", RowBox[{ RowBox[{"map", "[", RowBox[{"f", ",", "c", ",", "g", ",", "z2"}], "]"}], "\[CircleTimes]", "1"}], ")"}]}], ")"}], "**", RowBox[{"(", RowBox[{ RowBox[{"map", "[", RowBox[{"a", ",", "b", ",", "f", ",", "z3"}], "]"}], "\[CircleTimes]", "1", "\[CircleTimes]", "1"}], ")"}]}]}], ",", "_NonCommutativeMultiply"}], "]"}]}]], "Input", CellChangeTimes->{{3.46480956910261*^9, 3.464809583130258*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"associativity", "[", RowBox[{ "a_", ",", "b_", ",", "c_", ",", "d_", ",", "e_", ",", "f_", ",", "g_", ",", "z1_", ",", "z2_", ",", "z3_"}], "]"}], ":=", RowBox[{ RowBox[{"associativity", "[", RowBox[{ "a", ",", "b", ",", "c", ",", "d", ",", "e", ",", "f", ",", "g", ",", "z1", ",", "z2", ",", "z3"}], "]"}], "=", RowBox[{ RowBox[{"Reap", "[", RowBox[{"Collect", "[", RowBox[{ RowBox[{ RowBox[{ RowBox[{"map", "[", RowBox[{"g", ",", "d", ",", "e", ",", "z3"}], "]"}], "**", RowBox[{"(", RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"map", "[", RowBox[{"f", ",", "c", ",", "g", ",", "z2"}], "]"}], "**", RowBox[{"(", RowBox[{ RowBox[{"map", "[", RowBox[{"a", ",", "b", ",", "f", ",", "z1"}], "]"}], "\[CircleTimes]", "1"}], ")"}]}], ")"}], "\[CircleTimes]", "1"}], ")"}]}], "-", RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"map", "[", RowBox[{"g", ",", "d", ",", "e", ",", "z3"}], "]"}], "**", RowBox[{"(", RowBox[{ RowBox[{"map", "[", RowBox[{"f", ",", "c", ",", "g", ",", "z2"}], "]"}], "\[CircleTimes]", "1"}], ")"}]}], ")"}], "**", RowBox[{"(", RowBox[{ RowBox[{"map", "[", RowBox[{"a", ",", "b", ",", "f", ",", "z3"}], "]"}], "\[CircleTimes]", "1", "\[CircleTimes]", "1"}], ")"}]}]}], ",", "_NonCommutativeMultiply", ",", "Sow"}], "]"}], "]"}], "\[LeftDoubleBracket]", RowBox[{"2", ",", "1"}], "\[RightDoubleBracket]"}]}]}]], "Input", CellChangeTimes->{{3.460305832906147*^9, 3.4603060243591337`*^9}, { 3.460306158802149*^9, 3.460306166427908*^9}, {3.460306341445714*^9, 3.460306358650736*^9}, {3.460306728013225*^9, 3.46030673701618*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"associativity", "[", RowBox[{ "a_", ",", "b_", ",", "c_", ",", "d_", ",", "e_", ",", "f_", ",", "g_"}], "]"}], ":=", RowBox[{ RowBox[{"associativity", "[", RowBox[{"a", ",", "b", ",", "c", ",", "d", ",", "e", ",", "f", ",", "g"}], "]"}], "=", RowBox[{"Flatten", "[", RowBox[{"Table", "[", RowBox[{ RowBox[{"associativity", "[", RowBox[{ "a", ",", "b", ",", "c", ",", "d", ",", "e", ",", "f", ",", "g", ",", "z1", ",", "z2", ",", "z3"}], "]"}], ",", RowBox[{"{", RowBox[{"z1", ",", "1", ",", RowBox[{"multiplicity", "[", RowBox[{"a", ",", "b", ",", "f"}], "]"}]}], "}"}], ",", RowBox[{"{", RowBox[{"z2", ",", "1", ",", RowBox[{"multiplicity", "[", RowBox[{"f", ",", "c", ",", "g"}], "]"}]}], "}"}], ",", RowBox[{"{", RowBox[{"z3", ",", "1", ",", RowBox[{"multiplicity", "[", RowBox[{"g", ",", "d", ",", "e"}], "]"}]}], "}"}]}], "]"}], "]"}]}]}]], "Input", CellChangeTimes->{{3.460306036943761*^9, 3.460306112570245*^9}, { 3.460306170424328*^9, 3.460306176753109*^9}}], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"associativityTest", "[", RowBox[{ "1", ",", "1", ",", "1", ",", "1", ",", "1", ",", "1", ",", "1", ",", "1", ",", "1", ",", "1"}], "]"}]], "Input", CellChangeTimes->{{3.4648095863975477`*^9, 3.4648095867349586`*^9}}], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"map", "[", RowBox[{"1", ",", "1", ",", "1", ",", "1"}], "]"}], "**", RowBox[{"(", RowBox[{"1", "\[CircleTimes]", RowBox[{ RowBox[{"map", "[", RowBox[{"1", ",", "1", ",", "1", ",", "1"}], "]"}], "**", RowBox[{"(", RowBox[{"1", "\[CircleTimes]", RowBox[{"map", "[", RowBox[{"1", ",", "1", ",", "1", ",", "1"}], "]"}]}], ")"}]}]}], ")"}]}], " ", RowBox[{"(", RowBox[{ RowBox[{"-", SuperscriptBox[ RowBox[{"x", "[", RowBox[{ "1", ",", "1", ",", "1", ",", "1", ",", "1", ",", "1", ",", "1", ",", "1", ",", "1", ",", "1"}], "]"}], "2"]}], "+", SuperscriptBox[ RowBox[{"x", "[", RowBox[{ "1", ",", "1", ",", "1", ",", "1", ",", "1", ",", "1", ",", "1", ",", "1", ",", "1", ",", "1"}], "]"}], "3"]}], ")"}]}]], "Output", CellChangeTimes->{{3.464809418316896*^9, 3.464809428967374*^9}, 3.464809537553055*^9, 3.464809587143704*^9, 3.464809666452133*^9}] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"associativity", "[", RowBox[{"1", ",", "1", ",", "1", ",", "X", ",", "X", ",", "1", ",", "1"}], "]"}]], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{"-", SuperscriptBox[ RowBox[{"x", "[", RowBox[{ "1", ",", "1", ",", "X", ",", "X", ",", "1", ",", "X", ",", "1", ",", "1", ",", "1", ",", "1"}], "]"}], "2"]}], "+", RowBox[{ RowBox[{"x", "[", RowBox[{ "1", ",", "1", ",", "1", ",", "1", ",", "1", ",", "1", ",", "1", ",", "1", ",", "1", ",", "1"}], "]"}], " ", SuperscriptBox[ RowBox[{"x", "[", RowBox[{ "1", ",", "1", ",", "X", ",", "X", ",", "1", ",", "X", ",", "1", ",", "1", ",", "1", ",", "1"}], "]"}], "2"]}]}], "}"}]], "Output", CellChangeTimes->{{3.464809074898744*^9, 3.46480908171583*^9}, 3.464809149397094*^9, {3.464809238360545*^9, 3.464809259912834*^9}, 3.464809681000964*^9}] }, Open ]], Cell[BoxData[ RowBox[{ RowBox[{"eq", "[", "k_", "]"}], ":=", RowBox[{ RowBox[{"eq", "[", "k", "]"}], "=", RowBox[{"Union", "[", RowBox[{"Flatten", "[", RowBox[{"Outer", "[", RowBox[{"associativity", ",", RowBox[{"Evaluate", "[", RowBox[{"Sequence", "@@", RowBox[{"(", RowBox[{"Table", "[", RowBox[{ RowBox[{"Take", "[", RowBox[{"names", ",", "k"}], "]"}], ",", RowBox[{"{", "7", "}"}]}], "]"}], ")"}]}], "]"}]}], "]"}], "]"}], "]"}]}]}]], "Input", CellChangeTimes->{{3.460306219250574*^9, 3.4603063052684317`*^9}, { 3.460306593349585*^9, 3.460306629522843*^9}, {3.460306689241811*^9, 3.4603067191048193`*^9}, {3.464808950631847*^9, 3.464808974206428*^9}, { 3.464809731798009*^9, 3.464809733279409*^9}}], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"Length", "[", RowBox[{"eq", "[", "4", "]"}], "]"}], "//", "AbsoluteTiming"}]], "Input", CellChangeTimes->{{3.464808960686648*^9, 3.464808961282621*^9}, { 3.464809027361278*^9, 3.464809043249442*^9}, {3.4648096850565987`*^9, 3.46480968517953*^9}, {3.464809736819018*^9, 3.464809754180451*^9}}], Cell[BoxData[ RowBox[{"{", RowBox[{"14.974889`7.626908605400978", ",", "5346"}], "}"}]], "Output", CellChangeTimes->{{3.464808964711747*^9, 3.464808977814299*^9}, { 3.464809024923214*^9, 3.464809043769537*^9}, 3.46480927124378*^9, { 3.464809718396626*^9, 3.464809731993808*^9}, 3.464809769786168*^9}] }, Open ]], Cell[BoxData[ RowBox[{ RowBox[{"SolveX", "[", "foo_", "]"}], ":=", RowBox[{ RowBox[{"SolveX", "[", "foo", "]"}], "=", RowBox[{"Union", "[", RowBox[{"Solve", "[", RowBox[{ RowBox[{"foo", "\[Equal]", "0"}], ",", RowBox[{"Cases", "[", RowBox[{"foo", ",", "_x", ",", "\[Infinity]"}], "]"}]}], "]"}], "]"}]}]}]], "Input", CellChangeTimes->{{3.4603067752198277`*^9, 3.4603067902130203`*^9}, { 3.460309460929266*^9, 3.460309462237303*^9}, {3.460310106739875*^9, 3.4603101098497477`*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"CountX", "=", RowBox[{ RowBox[{"Length", "[", RowBox[{"Union", "[", RowBox[{"Cases", "[", RowBox[{"#", ",", "_x", ",", "\[Infinity]"}], "]"}], "]"}], "]"}], "&"}]}], ";"}]], "Input", CellChangeTimes->{{3.460309516525928*^9, 3.460309522295218*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"vars", "=", RowBox[{"Union", "[", RowBox[{"Cases", "[", RowBox[{ RowBox[{"eq", "[", "4", "]"}], ",", "_x", ",", "\[Infinity]"}], "]"}], "]"}]}], ";"}]], "Input", CellChangeTimes->{{3.46030881865827*^9, 3.460308826888032*^9}, 3.460308899915761*^9, {3.460308958430624*^9, 3.460308960258987*^9}, { 3.464809961793622*^9, 3.464809964508787*^9}}], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"Length", "[", "vars", "]"}]], "Input", CellChangeTimes->{{3.46030892594009*^9, 3.460308929410412*^9}}], Cell[BoxData["567"], "Output", CellChangeTimes->{3.464809967331482*^9}] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"SolveX", "[", RowBox[{"eq", "[", "4", "]"}], "]"}]], "Input", CellChangeTimes->{{3.4603094497114563`*^9, 3.4603094514047613`*^9}, { 3.4603095638443737`*^9, 3.460309616055711*^9}, {3.4648099774055443`*^9, 3.4648100085146008`*^9}}], Cell[BoxData["$Aborted"], "Output", CellChangeTimes->{{3.464810006040947*^9, 3.4648100328229723`*^9}}] }, Open ]], Cell[BoxData[ RowBox[{ RowBox[{"RecursiveSolve1", "[", RowBox[{"{", RowBox[{"others___", ",", "eq0_"}], "}"}], "]"}], ":=", RowBox[{ RowBox[{"RecursiveSolve1", "[", RowBox[{"{", RowBox[{"others", ",", "eq0"}], "}"}], "]"}], "=", RowBox[{"Flatten", "[", RowBox[{ RowBox[{ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"Function", "[", RowBox[{ RowBox[{"{", "sol", "}"}], ",", RowBox[{"Union", "[", RowBox[{"#", "~", "Join", "~", "sol"}], "]"}]}], "]"}], "/@", RowBox[{"SolveX", "[", RowBox[{"eq0", "/.", "#"}], "]"}]}], ")"}], "&"}], "/@", RowBox[{"RecursiveSolve1", "[", RowBox[{"{", "others", "}"}], "]"}]}], ",", "1"}], "]"}]}]}]], "Input",\ CellChangeTimes->{{3.46030972486744*^9, 3.46030983969619*^9}, { 3.4603098721994057`*^9, 3.460309900583191*^9}, {3.460309959292267*^9, 3.460310001343975*^9}, {3.460310089870947*^9, 3.460310093396591*^9}, { 3.460310705655485*^9, 3.460310707986669*^9}, {3.460310951633109*^9, 3.46031095489395*^9}, {3.460311838603507*^9, 3.460312008089095*^9}, { 3.460312071051202*^9, 3.4603120972018423`*^9}, {3.460312133065268*^9, 3.460312135394603*^9}, {3.460312219370715*^9, 3.460312227379726*^9}}], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"RecursiveSolve1", "[", RowBox[{"{", "}"}], "]"}], "=", RowBox[{"{", RowBox[{"{", "}"}], "}"}]}], ";"}]], "Input", CellChangeTimes->{{3.460312165386994*^9, 3.4603121792567263`*^9}}], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"RecursiveSolve1", "[", RowBox[{"eq", "[", "4", "]"}], "]"}]], "Input", CellChangeTimes->{{3.464810047755476*^9, 3.464810048882495*^9}}], Cell[BoxData[ RowBox[{"RecursiveSolve1", "[", RowBox[{"eq", "[", "4", "]"}], "]"}]], "Output", CellChangeTimes->{3.464810090861586*^9}] }, Open ]] }, Evaluator->"Local (2)", WindowSize->{889, 645}, WindowMargins->{{Automatic, 51}, {Automatic, 24}}, ShowSelection->True, FrontEndVersion->"7.0 for Mac OS X x86 (32-bit) (February 18, 2009)", StyleDefinitions->"Default.nb" ] (* End of Notebook Content *) (* Internal cache information *) (*CellTagsOutline CellTagsIndex->{} *) (*CellTagsIndex CellTagsIndex->{} *) (*NotebookFileOutline Notebook[{ Cell[CellGroupData[{ Cell[567, 22, 395, 10, 70, "Input"], Cell[CellGroupData[{ Cell[987, 36, 370, 9, 36, "Print"], Cell[1360, 47, 333, 8, 20, "Print"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[1742, 61, 133, 4, 39, "Input"], Cell[1878, 67, 562, 18, 39, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[2477, 90, 205, 4, 39, "Input"], Cell[2685, 96, 695, 23, 39, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[3417, 124, 144, 2, 39, "Input"], Cell[3564, 128, 2489, 69, 70, "Output"] }, Open ]], Cell[6068, 200, 256, 6, 39, "Input"], Cell[CellGroupData[{ Cell[6349, 210, 2258, 59, 85, "Input"], Cell[8610, 271, 855, 24, 89, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[9502, 300, 1239, 30, 70, "Input"], Cell[10744, 332, 1937, 45, 85, "Output"] }, Open ]], Cell[12696, 380, 670, 17, 55, "Input"], Cell[CellGroupData[{ Cell[13391, 401, 166, 3, 39, "Input"], Cell[13560, 406, 70, 1, 39, "Output"] }, Open ]], Cell[13645, 410, 228, 6, 39, "Input"], Cell[13876, 418, 536, 14, 39, "Input"], Cell[14415, 434, 510, 13, 39, "Input"], Cell[14928, 449, 181, 3, 39, "Input"], Cell[15112, 454, 1868, 50, 70, "Input"], Cell[16983, 506, 822, 25, 85, "Input"], Cell[17808, 533, 476, 14, 39, "Input"], Cell[18287, 549, 208, 4, 39, "Input"], Cell[CellGroupData[{ Cell[18520, 557, 513, 13, 39, "Input"], Cell[19036, 572, 685, 20, 39, "Output"] }, Open ]], Cell[19736, 595, 485, 13, 39, "Input"], Cell[20224, 610, 506, 15, 39, "Input"], Cell[20733, 627, 582, 17, 55, "Input"], Cell[21318, 646, 587, 18, 55, "Input"], Cell[21908, 666, 138, 2, 39, "Input"], Cell[22049, 670, 1447, 40, 70, "Input"], Cell[23499, 712, 2018, 51, 85, "Input"], Cell[25520, 765, 1183, 31, 85, "Input"], Cell[CellGroupData[{ Cell[26728, 800, 250, 5, 39, "Input"], Cell[26981, 807, 1046, 29, 60, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[28064, 841, 142, 3, 39, "Input"], Cell[28209, 846, 786, 21, 45, "Output"] }, Open ]], Cell[29010, 870, 835, 21, 39, "Input"], Cell[CellGroupData[{ Cell[29870, 895, 337, 6, 39, "Input"], Cell[30210, 903, 311, 5, 39, "Output"] }, Open ]], Cell[30536, 911, 536, 14, 39, "Input"], Cell[31075, 927, 317, 9, 27, "Input"], Cell[31395, 938, 409, 10, 39, "Input"], Cell[CellGroupData[{ Cell[31829, 952, 127, 2, 39, "Input"], Cell[31959, 956, 72, 1, 39, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[32068, 962, 262, 5, 39, "Input"], Cell[32333, 969, 103, 1, 39, "Output"] }, Open ]], Cell[32451, 973, 1293, 31, 70, "Input"], Cell[33747, 1006, 242, 7, 39, "Input"], Cell[CellGroupData[{ Cell[34014, 1017, 163, 3, 39, "Input"], Cell[34180, 1022, 140, 3, 39, "Output"] }, Open ]] } ] *) (* End of internal cache information *)