(* Content-type: application/mathematica *) (*** Wolfram Notebook File ***) (* http://www.wolfram.com/nb *) (* CreatedBy='Mathematica 6.0' *) (*CacheID: 234*) (* Internal cache information: NotebookFileLineBreakTest NotebookFileLineBreakTest NotebookDataPosition[ 145, 7] NotebookDataLength[ 156901, 4412] NotebookOptionsPosition[ 118737, 3531] NotebookOutlinePosition[ 150876, 4244] CellTagsIndexPosition[ 150833, 4241] WindowFrame->Normal*) (* Beginning of Notebook Content *) Notebook[{ Cell[CellGroupData[{ Cell["\<\ Lie Algebra Simplification Rules \ \>", "Subtitle", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[{ StyleBox["Mathematica", FontSlant->"Italic"], " scripts copyright Stephen Low 2008. Retain any commercial rights. \ Licence granted for use provided that 1) no commercial use 2) improvements \ made available to author 3) this licence is recursive" }], "Text", CellChangeTimes->{{3.425408583933507*^9, 3.4254086444004545`*^9}}], Cell["\<\ This notebook provides the rules to manipulate Lie algebras.\ \>", "Text"], Cell[BoxData[ RowBox[{"SetAttributes", "[", RowBox[{"CenterDot", ",", "Listable"}], "]"}]], "Input"], Cell[CellGroupData[{ Cell["Initialization", "Section", AspectRatioFixed->True], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"<<", "Notation`"}]], "Input", CellChangeTimes->{3.4020915175293427`*^9}], Cell[BoxData[ RowBox[{ RowBox[{"ClearAll", "::", "\<\"wrsym\"\>"}], RowBox[{ ":", " "}], "\<\"\\!\\(\\*StyleBox[\\\"\\\\\\\"Symbol \\\\\\\"\\\", \ \\\"MT\\\"]\\)\[NoBreak]\\!\\(\\*StyleBox[\\!\\(Notation`Private`protected\\),\ \\\"MT\\\"]\\)\[NoBreak]\\!\\(\\*StyleBox[\\\"\\\\\\\" is Protected.\\\\\\\"\ \\\", \\\"MT\\\"]\\) \\!\\(\\*ButtonBox[\\\"\[RightSkeleton]\\\", \ ButtonStyle->\\\"Link\\\", ButtonFrame->None, \ ButtonData:>\\\"paclet:ref/message/General/wrsym\\\", ButtonNote -> \ \\\"ClearAll::wrsym\\\"]\\)\"\>"}]], "Message", "MSG", CellChangeTimes->{3.4535541077555275`*^9, 3.4535541892086725`*^9, 3.463329970186965*^9}] }, Open ]], Cell["\<\ If you are using a version of Mathematica earlier than V6, comment out the \ above line and uncomment the following << Utilities`Notation`\ \>", "Text", CellChangeTimes->{{3.4490558760679183`*^9, 3.4490559369855137`*^9}}], Cell[BoxData[ RowBox[{"Notation", "[", RowBox[{ TagBox[ TagBox[ RowBox[{" ", SuperscriptBox["x_", RowBox[{"y_", " "}]]}], NotationBoxTag, Editable->True], NotationBoxTag, Editable->True], " ", "\[DoubleLongLeftRightArrow]", " ", TagBox[ RowBox[{" ", RowBox[{"superscript", "[", RowBox[{"x_", ",", "y_"}], "]"}]}], NotationBoxTag, Editable->True]}], "]"}]], "Input"], Cell[BoxData[ RowBox[{"Notation", "[", RowBox[{ TagBox[ RowBox[{" ", SuperscriptBox["x_", RowBox[{ RowBox[{"y_", " ", ",", "z___"}], " "}]]}], NotationBoxTag, Editable->True], " ", "\[DoubleLongLeftRightArrow]", " ", TagBox[ RowBox[{" ", RowBox[{"superscript", "[", RowBox[{"x_", ",", "y_", ",", "z___"}], "]"}], " "}], NotationBoxTag, Editable->True]}], "]"}]], "Input"], Cell[BoxData[{ RowBox[{"Notation", "[", RowBox[{ TagBox[ RowBox[{" ", SuperscriptBox["x_", "+"], " "}], NotationBoxTag, Editable->True], " ", "\[DoubleLongLeftRightArrow]", " ", TagBox[ RowBox[{" ", RowBox[{"superplus", "[", "x_", "]"}], " "}], NotationBoxTag, Editable->True]}], "]"}], "\n", RowBox[{"Notation", "[", RowBox[{ TagBox[ RowBox[{" ", SuperscriptBox["x_", "-"], " "}], NotationBoxTag, Editable->True], " ", "\[DoubleLongLeftRightArrow]", " ", TagBox[ RowBox[{" ", RowBox[{"superminus", "[", "x_", "]"}], " "}], NotationBoxTag, Editable->True]}], "]"}]}], "Input"], Cell[BoxData[ RowBox[{"Off", "[", RowBox[{"General", "::", "spell"}], "]"}]], "Input"] }, Open ]], Cell[CellGroupData[{ Cell["General manipulation Rules", "Section"], Cell[CellGroupData[{ Cell["General Rules", "Subsection"], Cell["\<\ These functions define what is considered to be a Lie algebra generator\ \>", "Text", CellChangeTimes->{{3.4490559631230974`*^9, 3.44905598987156*^9}}], Cell[BoxData[ RowBox[{"\n", RowBox[{ RowBox[{"characterNumber", "[", "a_", "]"}], ":=", RowBox[{"Part", "[", RowBox[{ RowBox[{"ToCharacterCode", "[", RowBox[{"ToString", "[", "a", "]"}], "]"}], ",", "1"}], "]"}]}]}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{"CapitalLatinQ", "[", "a_", "]"}], ":=", RowBox[{ RowBox[{ RowBox[{"characterNumber", "[", "a", "]"}], ">", "64"}], "&&", RowBox[{ RowBox[{"characterNumber", "[", "a", "]"}], "<", "91"}], "&&", RowBox[{ RowBox[{"characterNumber", "[", "a", "]"}], "!=", "73"}]}]}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{"SmallLatinQ", "[", "a_", "]"}], ":=", RowBox[{ RowBox[{ RowBox[{"characterNumber", "[", "a", "]"}], ">", "96"}], " ", "&&", RowBox[{ RowBox[{"characterNumber", "[", "a", "]"}], "<", "123"}]}]}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{"ThreeLatinQ", "[", "a_", "]"}], ":=", RowBox[{ RowBox[{ RowBox[{"characterNumber", "[", "a", "]"}], ">", "103"}], " ", "&&", RowBox[{ RowBox[{"characterNumber", "[", "a", "]"}], "<", "111"}]}]}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{"FourLatinQ", "[", "a_", "]"}], ":=", RowBox[{ RowBox[{ RowBox[{"characterNumber", "[", "a", "]"}], ">", "96"}], " ", "&&", RowBox[{ RowBox[{"characterNumber", "[", "a", "]"}], "<", "104"}]}]}]], "Input"], Cell[BoxData[{ RowBox[{ RowBox[{ RowBox[{"LieGeneratorQ", "[", "A_", "]"}], " ", ":=", RowBox[{"If", "[", RowBox[{ RowBox[{"AtomQ", "[", "A", "]"}], ",", " ", RowBox[{"CapitalLatinQ", "[", "A", "]"}], ",", "True"}], "]"}]}], ";"}], "\n", RowBox[{ RowBox[{ RowBox[{"LieGeneratorQ", "[", SubscriptBox[ RowBox[{"A_", " "}], "a__"], "]"}], " ", ":=", RowBox[{ RowBox[{"AtomQ", "[", "A", "]"}], "&&", " ", RowBox[{"CapitalLatinQ", "[", "A", "]"}]}]}], ";"}], "\n", RowBox[{ RowBox[{ RowBox[{"LieGeneratorQ", "[", SubscriptBox[ RowBox[{ SuperscriptBox["A_", "+"], " "}], "a__"], "]"}], " ", ":=", RowBox[{ RowBox[{"AtomQ", "[", "A", "]"}], "&&", " ", RowBox[{"CapitalLatinQ", "[", "A", "]"}]}]}], ";"}], "\n", RowBox[{ RowBox[{ RowBox[{"LieGeneratorQ", "[", SubscriptBox[ RowBox[{ SuperscriptBox["A_", "-"], " "}], "a__"], "]"}], " ", ":=", RowBox[{ RowBox[{"AtomQ", "[", "A", "]"}], "&&", " ", RowBox[{"CapitalLatinQ", "[", "A", "]"}]}]}], ";"}], "\n", RowBox[{ RowBox[{ RowBox[{"LieGeneratorQ", "[", SubscriptBox["\[Eta]", RowBox[{"a_", ",", "b_"}]], "]"}], " ", ":=", "False"}], ";"}], "\n", RowBox[{ RowBox[{ RowBox[{"LieGeneratorQ", "[", SuperscriptBox["\[Eta]", RowBox[{"a_", ",", "b_"}]], "]"}], " ", ":=", "False"}], ";"}], "\n", RowBox[{ RowBox[{ RowBox[{"LieGeneratorQ", "[", SubscriptBox["\[Delta]", RowBox[{"a_", ",", "b_"}]], "]"}], " ", ":=", "False"}], ";"}], "\n", RowBox[{ RowBox[{ RowBox[{"LieGeneratorQ", "[", SuperscriptBox["\[Delta]", RowBox[{"a_", ",", "b_"}]], "]"}], " ", ":=", "False"}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"LieGeneratorQ", "[", SuperscriptBox[ RowBox[{"A_", " "}], "n_"], "]"}], " ", ":=", RowBox[{ RowBox[{"AtomQ", "[", "A", "]"}], "&&", " ", RowBox[{"CapitalLatinQ", "[", "A", "]"}]}]}], ";"}], "\n", RowBox[{ RowBox[{ RowBox[{"LieGeneratorQ", "[", SqrtBox["A_"], " ", "]"}], " ", ":=", RowBox[{ RowBox[{"AtomQ", "[", "A", "]"}], "&&", " ", RowBox[{"CapitalLatinQ", "[", "A", "]"}]}]}], ";"}], "\n", RowBox[{ RowBox[{ RowBox[{"LieGeneratorQ", "[", RowBox[{"1", "/", "A_"}], " ", "]"}], " ", ":=", RowBox[{ RowBox[{"AtomQ", "[", "A", "]"}], "&&", " ", RowBox[{"CapitalLatinQ", "[", "A", "]"}]}]}], ";"}], "\n", RowBox[{ RowBox[{ RowBox[{"LieGeneratorQ", "[", RowBox[{"1", "/", SqrtBox["A_"]}], " ", "]"}], " ", ":=", RowBox[{ RowBox[{"AtomQ", "[", "A", "]"}], "&&", " ", RowBox[{"CapitalLatinQ", "[", "A", "]"}]}]}], ";"}], "\n", RowBox[{ RowBox[{ RowBox[{"LieGeneratorQ", "[", "\[CapitalIota]", " ", "]"}], " ", ":=", "True"}], ";"}], "\n", RowBox[{ RowBox[{ RowBox[{"LieGeneratorQ", "[", "\[CapitalEpsilon]", "]"}], " ", ":=", "True"}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{ RowBox[{"LieGeneratorQ", "[", SubsuperscriptBox["\[CapitalEpsilon]", "a_", "b_"], "]"}], " ", ":=", "True"}], ";"}], "\[IndentingNewLine]"}], "\[IndentingNewLine]"}], "Input",\ CellChangeTimes->{{3.4522057266593823`*^9, 3.452205761479451*^9}, { 3.463329957170664*^9, 3.4633299632362704`*^9}}], Cell["b_", "TextNoIndent", CellChangeTimes->{{3.4522057563520784`*^9, 3.4522057571031585`*^9}}], Cell[BoxData[ RowBox[{"\n", RowBox[{ RowBox[{ RowBox[{"NotLieGeneratorQ", "[", "a_", "]"}], ":=", RowBox[{"!", " ", RowBox[{"LieGeneratorQ", "[", "a", "]"}]}]}], ";"}]}]], "Input"] }, Open ]], Cell[CellGroupData[{ Cell["Lie Bracket Rules", "Subsection"], Cell["\<\ Basic properties of a Lie bracket\ \>", "Text", CellChangeTimes->{{3.4490560035312014`*^9, 3.449056017761664*^9}}], Cell[BoxData[ RowBox[{"SetAttributes", "[", RowBox[{"l", ",", "Listable"}], "]"}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{"lbNum", "=", "\n", RowBox[{"{", "\n", " \t", RowBox[{ RowBox[{ RowBox[{"l", "[", RowBox[{ RowBox[{"-", "c_"}], ",", "b__"}], "]"}], ":>", RowBox[{"-", " ", RowBox[{"l", "[", RowBox[{"c", ",", "b"}], "]"}]}]}], ",", "\n", " ", RowBox[{ RowBox[{"l", "[", RowBox[{"c__", ",", RowBox[{"-", "b_"}]}], "]"}], ":>", RowBox[{"-", " ", RowBox[{"l", "[", RowBox[{"c", ",", "b"}], "]"}]}]}], ",", "\n", "\t\t", RowBox[{ RowBox[{"l", "[", RowBox[{ RowBox[{"a_", " ", "c_"}], ",", "b__"}], "]"}], ":>", RowBox[{ RowBox[{"a", " ", RowBox[{"l", "[", RowBox[{ RowBox[{"CenterDot", "[", "c", "]"}], ",", "b"}], "]"}]}], "/;", RowBox[{"NotLieGeneratorQ", "[", "a", "]"}]}]}], ",", "\n", "\t ", RowBox[{ RowBox[{"l", "[", RowBox[{"c_", ",", RowBox[{"a_", " ", "b__"}]}], "]"}], ":>", RowBox[{ RowBox[{"a", " ", RowBox[{"l", "[", RowBox[{"c", ",", RowBox[{"CenterDot", "[", "b", "]"}]}], "]"}]}], "/;", RowBox[{"NotLieGeneratorQ", "[", "a", "]"}]}]}], ",", "\n", "\t", "\n", "\t\t", RowBox[{ RowBox[{"l", "[", RowBox[{"a_", ",", "b__"}], "]"}], ":>", RowBox[{"0", "/;", RowBox[{"NotLieGeneratorQ", "[", "a", "]"}]}]}], ",", "\n", "\t ", RowBox[{ RowBox[{"l", "[", RowBox[{"a__", ",", "b_"}], "]"}], ":>", RowBox[{"0", "/;", RowBox[{"NotLieGeneratorQ", "[", "b", "]"}]}]}], ",", "\n", "\t\t", "\n", "\t\t", RowBox[{ RowBox[{"l", "[", " ", RowBox[{ RowBox[{"c_", "/", "a_"}], ",", "b__"}], "]"}], ":>", RowBox[{ RowBox[{ RowBox[{"l", "[", RowBox[{ RowBox[{"CenterDot", "[", "c", "]"}], ",", "b"}], "]"}], "/", "a"}], "/;", RowBox[{"NotLieGeneratorQ", "[", "a", "]"}]}]}], ",", "\n", "\t ", RowBox[{ RowBox[{"l", "[", RowBox[{"c_", ",", " ", RowBox[{"b__", "/", "a_"}]}], " ", "]"}], ":>", " ", RowBox[{ RowBox[{ RowBox[{"l", "[", RowBox[{"c", ",", RowBox[{"CenterDot", "[", "b", "]"}]}], "]"}], "/", "a"}], "/;", RowBox[{"NotLieGeneratorQ", "[", "a", "]"}]}]}], ",", "\n", "\t\t", "\n", "\t\t", RowBox[{ RowBox[{"d___", "\[CenterDot]", RowBox[{"l", "[", RowBox[{ RowBox[{"-", "c_"}], ",", "b__"}], "]"}], "\[CenterDot]", "e___"}], ":>", RowBox[{ RowBox[{"-", " ", "d"}], "\[CenterDot]", " ", RowBox[{"l", "[", RowBox[{"c", ",", "b"}], "]"}], "\[CenterDot]", "e"}]}], ",", "\n", "\t ", RowBox[{ RowBox[{"d___", "\[CenterDot]", RowBox[{"l", "[", RowBox[{"c_", ",", RowBox[{"-", "b__"}]}], "]"}], "\[CenterDot]", "e___"}], ":>", RowBox[{ RowBox[{"-", " ", "d"}], "\[CenterDot]", " ", RowBox[{"l", "[", RowBox[{"c", ",", "b"}], "]"}], "\[CenterDot]", "e"}]}], ",", "\n", "\t\t", RowBox[{ RowBox[{"d___", "\[CenterDot]", RowBox[{"l", "[", RowBox[{ RowBox[{"a_", " ", "c_"}], ",", "b__"}], "]"}], "\[CenterDot]", "e___"}], ":>", RowBox[{ RowBox[{"a", " ", RowBox[{"d", "\[CenterDot]", " ", RowBox[{"l", "[", RowBox[{ RowBox[{"CenterDot", "[", "c", "]"}], ",", "b"}], "]"}], "\[CenterDot]", "e"}]}], "/;", RowBox[{"NotLieGeneratorQ", "[", "a", "]"}]}]}], ",", "\n", "\t ", RowBox[{ RowBox[{"d___", "\[CenterDot]", RowBox[{"l", "[", RowBox[{"c_", ",", RowBox[{"a_", " ", "b__"}]}], "]"}], "\[CenterDot]", "e___"}], ":>", RowBox[{ RowBox[{"a", " ", RowBox[{"d", "\[CenterDot]", " ", RowBox[{"l", "[", RowBox[{"c", ",", RowBox[{"CenterDot", "[", "b", "]"}]}], "]"}], "\[CenterDot]", "e"}]}], "/;", RowBox[{"NotLieGeneratorQ", "[", "a", "]"}]}]}], ",", "\n", "\t\t", RowBox[{ RowBox[{"d___", "\[CenterDot]", RowBox[{"l", "[", RowBox[{"a_", ",", "b__"}], "]"}], "\[CenterDot]", "c___"}], ":>", RowBox[{"0", "/;", RowBox[{"NotLieGeneratorQ", "[", "a", "]"}]}]}], ",", "\n", "\t ", RowBox[{ RowBox[{"d___", "\[CenterDot]", RowBox[{"l", "[", RowBox[{"a__", ",", "b_"}], "]"}], "\[CenterDot]", "c___"}], ":>", RowBox[{"0", "/;", RowBox[{"NotLieGeneratorQ", "[", "b", "]"}]}]}], ",", "\n", "\t\t", "\n", "\t\t", RowBox[{ RowBox[{"d___", "\[CenterDot]", RowBox[{"l", "[", " ", RowBox[{ RowBox[{"c_", "/", "a_"}], ",", "b__"}], "]"}], "\[CenterDot]", "e___"}], ":>", RowBox[{ RowBox[{"d", "\[CenterDot]", RowBox[{"l", "[", RowBox[{ RowBox[{"CenterDot", "[", "c", "]"}], ",", "b"}], "]"}], "\[CenterDot]", RowBox[{"e", "/", "a"}]}], "/;", RowBox[{"NotLieGeneratorQ", "[", "a", "]"}]}]}], ",", "\n", "\t\t", RowBox[{ RowBox[{"d___", "\[CenterDot]", RowBox[{"l", "[", RowBox[{"c_", ",", " ", RowBox[{"b__", "/", "a_"}]}], " ", "]"}], "\[CenterDot]", "e___"}], ":>", " ", RowBox[{ RowBox[{"d", "\[CenterDot]", RowBox[{"l", "[", RowBox[{"c", ",", RowBox[{"CenterDot", "[", "b", "]"}]}], "]"}], "\[CenterDot]", RowBox[{"e", "/", "a"}]}], "/;", RowBox[{"NotLieGeneratorQ", "[", "a", "]"}]}]}]}], "\n", "}"}]}], ";"}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{"lbProd", "=", "\n", RowBox[{"{", "\n", "\t\t", RowBox[{ RowBox[{ RowBox[{"CenterDot", "[", "x_", "]"}], " ", ":>", "x"}], ",", "\n", "\t\t", RowBox[{ RowBox[{"l", "[", RowBox[{ RowBox[{"x__", " ", "\[CenterDot]", "y_"}], ",", RowBox[{"z__", "\[CenterDot]", "w_"}]}], "]"}], ":>", RowBox[{ RowBox[{ RowBox[{"CenterDot", "[", "x", " ", "]"}], "\[CenterDot]", RowBox[{"l", "[", RowBox[{"y", ",", RowBox[{"CenterDot", "[", "z", "]"}]}], "]"}], "\[CenterDot]", "w"}], "+", "\n", "\t\t", RowBox[{ RowBox[{"l", "[", RowBox[{ RowBox[{"CenterDot", "[", "x", "]"}], ",", RowBox[{"CenterDot", "[", "z", "]"}]}], "]"}], " ", "\[CenterDot]", "y", "\[CenterDot]", "w"}], "+", RowBox[{ RowBox[{"CenterDot", "[", "x", "]"}], "\[CenterDot]", RowBox[{"CenterDot", "[", "z", "]"}], "\[CenterDot]", RowBox[{"l", "[", RowBox[{"y", ",", "w"}], "]"}]}], "+", RowBox[{ RowBox[{"CenterDot", "[", "z", "]"}], "\[CenterDot]", RowBox[{"l", "[", RowBox[{ RowBox[{"CenterDot", "[", "x", "]"}], ",", "w"}], "]"}], "\[CenterDot]", "y"}]}]}], ",", "\n", "\t\t", RowBox[{ RowBox[{"l", "[", RowBox[{ RowBox[{"x__", " ", "\[CenterDot]", " ", "y_"}], ",", "z_"}], "]"}], ":>", RowBox[{ RowBox[{ RowBox[{"CenterDot", "[", "x", "]"}], "\[CenterDot]", RowBox[{"l", "[", RowBox[{"y", ",", "z"}], "]"}]}], "+", RowBox[{ RowBox[{"l", "[", RowBox[{ RowBox[{"CenterDot", "[", "x", "]"}], ",", "z"}], "]"}], " ", "\[CenterDot]", "y"}]}]}], ",", "\n", "\t\t", RowBox[{ RowBox[{"l", "[", RowBox[{"z_", ",", RowBox[{"x__", "\[CenterDot]", " ", "y_"}]}], "]"}], ":>", RowBox[{ RowBox[{ RowBox[{"CenterDot", "[", "x", "]"}], "\[CenterDot]", RowBox[{"l", "[", RowBox[{"z", ",", "y"}], "]"}]}], "+", RowBox[{ RowBox[{"l", "[", RowBox[{"z", ",", RowBox[{"CenterDot", "[", "x", "]"}]}], "]"}], "\[CenterDot]", "y"}]}]}], ",", "\n", "\t\t", RowBox[{ RowBox[{"l", "[", RowBox[{"x_", ",", "x_"}], "]"}], " ", ":>", "0"}], ",", "\n", "\t\t", "\n", "\t\t", RowBox[{ RowBox[{"a___", "\[CenterDot]", RowBox[{"l", "[", RowBox[{ RowBox[{"x__", " ", "\[CenterDot]", "y_"}], ",", RowBox[{"z__", "\[CenterDot]", "w_"}]}], "]"}], "\[CenterDot]", "b___"}], ":>", RowBox[{ RowBox[{"a", "\[CenterDot]", RowBox[{"CenterDot", "[", "x", " ", "]"}], " ", "\[CenterDot]", RowBox[{"l", "[", RowBox[{"y", ",", RowBox[{"CenterDot", "[", "z", "]"}]}], "]"}], "\[CenterDot]", "w", "\[CenterDot]", "b"}], "+", "\n", "\t\t", RowBox[{"a", "\[CenterDot]", RowBox[{"l", "[", RowBox[{ RowBox[{"CenterDot", "[", "x", "]"}], ",", RowBox[{"CenterDot", "[", "z", "]"}]}], "]"}], " ", "\[CenterDot]", "y", "\[CenterDot]", "w", "\[CenterDot]", "b"}], "+", RowBox[{"a", "\[CenterDot]", RowBox[{"CenterDot", "[", "x", " ", "]"}], "\[CenterDot]", RowBox[{"CenterDot", "[", "z", "]"}], "\[CenterDot]", RowBox[{"l", "[", RowBox[{"y", ",", "w"}], "]"}], "\[CenterDot]", "b"}], "+", RowBox[{"a", "\[CenterDot]", RowBox[{"CenterDot", "[", "z", "]"}], "\[CenterDot]", RowBox[{"l", "[", RowBox[{ RowBox[{"CenterDot", "[", "x", "]"}], ",", "w"}], "]"}], "\[CenterDot]", "y", "\[CenterDot]", "b"}]}]}], ",", "\n", "\t\t", RowBox[{ RowBox[{"a___", "\[CenterDot]", RowBox[{"l", "[", RowBox[{ RowBox[{"x__", " ", "\[CenterDot]", " ", "y_"}], ",", "z_"}], "]"}], "\[CenterDot]", "b___"}], ":>", RowBox[{ RowBox[{"a", "\[CenterDot]", RowBox[{"CenterDot", "[", "x", " ", "]"}], "\[CenterDot]", RowBox[{"l", "[", RowBox[{"y", ",", "z"}], "]"}], "\[CenterDot]", "b"}], "+", RowBox[{"a", "\[CenterDot]", RowBox[{"l", "[", RowBox[{ RowBox[{"CenterDot", "[", "x", "]"}], ",", "z"}], "]"}], " ", "\[CenterDot]", "y", "\[CenterDot]", "b"}]}]}], ",", "\n", "\t\t", RowBox[{ RowBox[{"a___", "\[CenterDot]", RowBox[{"l", "[", RowBox[{"z_", ",", RowBox[{"x__", "\[CenterDot]", " ", "y_"}]}], "]"}], "\[CenterDot]", "b___"}], ":>", RowBox[{ RowBox[{"a", "\[CenterDot]", RowBox[{"CenterDot", "[", "x", " ", "]"}], "\[CenterDot]", RowBox[{"l", "[", RowBox[{"z", ",", "y"}], "]"}], "\[CenterDot]", "b"}], "+", RowBox[{"a", "\[CenterDot]", RowBox[{"l", "[", RowBox[{"z", ",", RowBox[{"CenterDot", "[", "x", "]"}]}], "]"}], "\[CenterDot]", "y", "\[CenterDot]", "b"}]}]}], ",", "\n", "\t\t", RowBox[{ RowBox[{"a___", "\[CenterDot]", RowBox[{"l", "[", RowBox[{"x_", ",", "x_"}], "]"}], " ", "\[CenterDot]", "b___"}], ":>", "0"}]}], "\n", "\t", "\n", "}"}]}], ";"}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{"lbPlus", "=", "\n", RowBox[{"{", "\n", " \t", RowBox[{ RowBox[{ RowBox[{"l", "[", RowBox[{ RowBox[{"x_", "+", "y_"}], ",", "z_"}], "]"}], ":>", RowBox[{ RowBox[{"l", "[", RowBox[{"x", ",", "z"}], "]"}], "+", RowBox[{"l", "[", RowBox[{"y", ",", "z"}], "]"}]}]}], ",", "\n", "\t\t", RowBox[{ RowBox[{"l", "[", RowBox[{"x_", ",", RowBox[{"y_", "+", "z_"}]}], "]"}], ":>", RowBox[{ RowBox[{"l", "[", RowBox[{"x", ",", "y"}], "]"}], "+", RowBox[{"l", "[", RowBox[{"x", ",", "z"}], "]"}]}]}]}], "\n", "}"}]}], ";"}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{"lbNeg", "=", "\n", RowBox[{"{", "\n", "\t\t", RowBox[{ RowBox[{ RowBox[{"l", "[", RowBox[{"a_", ",", RowBox[{"-", "b_"}]}], "]"}], " ", ":>", " ", RowBox[{ RowBox[{"(", RowBox[{"-", "1"}], ")"}], " ", RowBox[{"l", "[", RowBox[{"a", ",", "b"}], "]"}]}]}], ",", "\n", "\t\t", RowBox[{ RowBox[{"l", "[", RowBox[{ RowBox[{"-", "a_"}], ",", "b_"}], "]"}], " ", ":>", " ", RowBox[{ RowBox[{"(", RowBox[{"-", "1"}], " ", ")"}], RowBox[{"l", "[", RowBox[{"a", ",", "b"}], "]"}]}]}], ",", "\n", "\t\t", RowBox[{ RowBox[{"l", "[", RowBox[{"a_", ",", RowBox[{"b_", "\[CenterDot]", " ", RowBox[{"-", "c_"}]}]}], "]"}], " ", ":>", " ", RowBox[{ RowBox[{"(", RowBox[{"-", "1"}], " ", ")"}], RowBox[{"l", "[", RowBox[{"a", ",", RowBox[{"b", "\[CenterDot]", "c"}]}], "]"}]}]}], ",", "\n", "\t\t", RowBox[{ RowBox[{"l", "[", RowBox[{ RowBox[{"b_", "\[CenterDot]", " ", RowBox[{"-", "c_"}]}], ",", "a_"}], "]"}], " ", ":>", " ", RowBox[{ RowBox[{"(", RowBox[{"-", "1"}], ")"}], RowBox[{"l", "[", RowBox[{ RowBox[{"b", "\[CenterDot]", "c"}], ",", "a"}], "]"}]}]}], ",", "\n", "\t\t", RowBox[{ RowBox[{"c_", " ", "-", RowBox[{"l", "[", RowBox[{"b_", ",", "a_"}], "]"}]}], " ", ":>", " ", RowBox[{ RowBox[{"(", RowBox[{"-", "1"}], ")"}], "c", " ", RowBox[{"l", "[", RowBox[{"b", ",", "a"}], "]"}]}]}], ",", "\n", "\t\t", RowBox[{ RowBox[{"-", RowBox[{ RowBox[{"(", RowBox[{"-", "l"}], ")"}], "[", RowBox[{"b_", ",", "a_"}], "]"}]}], " ", ":>", " ", RowBox[{"l", "[", RowBox[{"b", ",", "a"}], "]"}]}]}], "\n", "}"}]}], ";"}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{"commutatorRules", "=", "\n", RowBox[{"{", "\n", "\t", RowBox[{ RowBox[{ RowBox[{"a___", " ", RowBox[{"b_", "\[CenterDot]", "c_"}]}], " ", ":>", " ", RowBox[{ RowBox[{ RowBox[{"a", " ", RowBox[{"c", "\[CenterDot]", "b"}]}], " ", "+", " ", RowBox[{"a", " ", RowBox[{"l", "[", RowBox[{"b", ",", "c"}], "]"}]}]}], " ", "/;", RowBox[{"!", RowBox[{"OrderedQ", "[", RowBox[{"{", RowBox[{"b", ",", "c"}], "}"}], "]"}]}]}]}], ",", "\n", "\t", RowBox[{ RowBox[{"b_", "\[CenterDot]", "c_"}], " ", ":>", " ", RowBox[{ RowBox[{ RowBox[{"c", "\[CenterDot]", "b"}], " ", "+", " ", RowBox[{"l", "[", RowBox[{"b", ",", "c"}], "]"}]}], " ", "/;", RowBox[{"!", RowBox[{"OrderedQ", "[", RowBox[{"{", RowBox[{"b", ",", "c"}], "}"}], "]"}]}]}]}], ",", "\n", "\t\t", "\n", "\t", RowBox[{ RowBox[{"a___", " ", RowBox[{ "d___", "\[CenterDot]", " ", "b_", "\[CenterDot]", "c_", " ", "\[CenterDot]", "e___"}]}], ":>", " ", RowBox[{ RowBox[{ RowBox[{"a", " ", RowBox[{ "d", "\[CenterDot]", "c", "\[CenterDot]", "b", "\[CenterDot]", "e"}]}], " ", "+", " ", RowBox[{"a", " ", RowBox[{"d", "\[CenterDot]", RowBox[{"l", "[", RowBox[{"b", ",", "c"}], "]"}], " ", "\[CenterDot]", "e"}]}]}], "/;", RowBox[{"!", RowBox[{"OrderedQ", "[", RowBox[{"{", RowBox[{"b", ",", "c"}], "}"}], "]"}]}]}]}], ",", "\n", "\t", RowBox[{ RowBox[{ "d___", "\[CenterDot]", "b_", "\[CenterDot]", "c_", " ", "\[CenterDot]", "e___"}], ":>", " ", RowBox[{ RowBox[{ RowBox[{ "d", "\[CenterDot]", "c", "\[CenterDot]", "b", "\[CenterDot]", "e"}], " ", "+", " ", RowBox[{"d", "\[CenterDot]", RowBox[{"l", "[", RowBox[{"b", ",", "c"}], "]"}], "\[CenterDot]", "e"}]}], " ", "/;", RowBox[{"!", RowBox[{"OrderedQ", "[", RowBox[{"{", RowBox[{"b", ",", "c"}], "}"}], "]"}]}]}]}]}], "\n", "}"}]}], ";"}]], "Input"] }, Open ]], Cell[CellGroupData[{ Cell["Dot Reduction Rules", "Subsection"], Cell["\<\ Simplification rules for non commutative multiplication and distribution\ \>", "Text", CellChangeTimes->{{3.4490560487462177`*^9, 3.4490560696062126`*^9}}], Cell[BoxData[ RowBox[{"\n", RowBox[{"Clear", "[", "CenterDot", "]"}]}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"dotnum", "=", "\n", RowBox[{"{", "\n", "\t \t", RowBox[{ RowBox[{ RowBox[{"a___", "\[CenterDot]", "b_", "\[CenterDot]", "c___"}], " ", ":>", RowBox[{ RowBox[{"b", " ", RowBox[{"(", RowBox[{"a", "\[CenterDot]", "c"}], ")"}]}], " ", "/;", RowBox[{"NotLieGeneratorQ", "[", "b", "]"}]}]}], ",", "\n", "\t\t", RowBox[{ RowBox[{"a__", "\[CenterDot]", RowBox[{"(", " ", RowBox[{"c__", " ", "b_"}], " ", ")"}]}], " ", ":>", " ", RowBox[{ RowBox[{"b", " ", RowBox[{"(", RowBox[{"a", "\[CenterDot]", "c"}], ")"}]}], " ", "/;", " ", RowBox[{"NotLieGeneratorQ", "[", "b", "]"}]}]}], ",", "\n", "\t\t\t", RowBox[{ RowBox[{"a__", "\[CenterDot]", RowBox[{"(", RowBox[{"b_", " ", "c__"}], ")"}]}], " ", ":>", " ", RowBox[{ RowBox[{"b", " ", RowBox[{"(", RowBox[{"a", "\[CenterDot]", "c"}], ")"}]}], " ", "/;", " ", RowBox[{"NotLieGeneratorQ", "[", "b", "]"}]}]}], ",", "\n", "\t\t", RowBox[{ RowBox[{ RowBox[{"(", RowBox[{"a__", " ", "b_"}], ")"}], "\[CenterDot]", "c__"}], " ", ":>", " ", RowBox[{ RowBox[{"b", " ", RowBox[{"(", RowBox[{"a", "\[CenterDot]", "c"}], ")"}]}], " ", "/;", RowBox[{"NotLieGeneratorQ", "[", "b", "]"}]}]}], ",", "\n", "\t\t", RowBox[{ RowBox[{ RowBox[{"(", RowBox[{"b_", " ", "a__"}], ")"}], "\[CenterDot]", "c__"}], " ", ":>", " ", RowBox[{ RowBox[{"b", " ", RowBox[{"(", RowBox[{"a", "\[CenterDot]", "c"}], ")"}]}], " ", "/;", RowBox[{"NotLieGeneratorQ", "[", "b", "]"}]}]}], ",", "\n", "\t\t", RowBox[{ RowBox[{"a__", "\[CenterDot]", RowBox[{"(", RowBox[{"b_", " ", "c__"}], ")"}], "\[CenterDot]", "d___"}], " ", ":>", " ", RowBox[{ RowBox[{"b", " ", RowBox[{"(", RowBox[{"a", "\[CenterDot]", "c", "\[CenterDot]", "d"}], ")"}]}], " ", "/;", " ", RowBox[{"NotLieGeneratorQ", "[", "b", "]"}]}]}], ",", "\n", "\t\t\t", RowBox[{ RowBox[{"a__", "\[CenterDot]", RowBox[{"(", RowBox[{"c__", " ", "b_"}], " ", ")"}], "\[CenterDot]", "d___"}], " ", ":>", " ", RowBox[{ RowBox[{"b", " ", RowBox[{"(", RowBox[{"a", "\[CenterDot]", "c", "\[CenterDot]", "d"}], ")"}]}], " ", "/;", " ", RowBox[{"NotLieGeneratorQ", "[", "b", "]"}]}]}], ",", "\n", "\t", "\n", "\t\t", RowBox[{ RowBox[{"a___", "\[CenterDot]", " ", RowBox[{"-", "b_"}], " ", "\[CenterDot]", "c___"}], ":>", " ", RowBox[{ RowBox[{"(", RowBox[{"-", "1"}], ")"}], RowBox[{"(", RowBox[{"a", "\[CenterDot]", "b", "\[CenterDot]", "c"}], ")"}]}]}], ",", "\n", "\t\t", RowBox[{ RowBox[{"0", "\[CenterDot]", " ", "a__"}], " ", ":>", " ", "0"}], ",", " ", "\n", "\t\t ", RowBox[{ RowBox[{"a__", "\[CenterDot]", "0"}], ":>", "0"}], ",", "\n", "\t\t", RowBox[{ RowBox[{"CenterDot", "[", "a_", "]"}], " ", ":>", "a"}], ",", "\[IndentingNewLine]", "\t ", RowBox[{ RowBox[{"CenterDot", "[", "]"}], " ", ":>", " ", "1"}], ",", "\n", "\t\t", RowBox[{ RowBox[{"CenterDot", "[", RowBox[{ RowBox[{"CenterDot", "[", "a__", "]"}], ",", "b__"}], "]"}], ":>", RowBox[{"CenterDot", "[", RowBox[{"a", ",", "b"}], "]"}]}], ",", "\n", "\t\t", RowBox[{ RowBox[{"CenterDot", "[", RowBox[{"b__", ",", RowBox[{"CenterDot", "[", "a__", "]"}]}], "]"}], ":>", RowBox[{"CenterDot", "[", RowBox[{"b", ",", "a"}], "]"}]}]}], "\n", "}"}]}], ";"}], " "}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{"dotdistribute", "=", "\n", RowBox[{"{", "\n", "\t\t", RowBox[{ RowBox[{ RowBox[{"a__", "\[CenterDot]", RowBox[{"(", RowBox[{"b_", "+", "c_"}], ")"}], "\[CenterDot]", "d___"}], " ", ":>", " ", RowBox[{ RowBox[{"a", "\[CenterDot]", "b", "\[CenterDot]", "d"}], " ", "+", RowBox[{"a", "\[CenterDot]", "c", "\[CenterDot]", "d"}]}]}], ",", "\n", "\t\t", RowBox[{ RowBox[{"a___", "\[CenterDot]", RowBox[{"(", RowBox[{"b_", "+", "c_"}], ")"}], "\[CenterDot]", "d__"}], " ", ":>", " ", RowBox[{ RowBox[{"a", "\[CenterDot]", "b", "\[CenterDot]", "d"}], " ", "+", RowBox[{"a", "\[CenterDot]", "c", "\[CenterDot]", "d"}]}]}]}], "\t\t\t", "\n", "}"}]}], ";"}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{"dotflat", "=", " ", "\n", RowBox[{"{", "\n", "\t\t", RowBox[{ RowBox[{ SubscriptBox[ RowBox[{"(", SuperscriptBox[ RowBox[{"A_", " "}], "+"], ")"}], "a__"], " ", ":>", SubscriptBox[ RowBox[{"(", SuperscriptBox["A", "+"], ")"}], "a"]}], ",", "\n", "\t\t", RowBox[{ SubscriptBox[ RowBox[{"(", SuperscriptBox[ RowBox[{"A_", " "}], "-"], ")"}], "a__"], " ", ":>", SubscriptBox[ RowBox[{"(", SuperscriptBox["A", "-"], ")"}], "a"]}], ",", "\n", "\t\t", RowBox[{ SubscriptBox[ RowBox[{"(", "A_", " ", ")"}], "a__"], " ", ":>", SubscriptBox["A", "a"]}], ",", "\n", "\t\t", "\n", "\t\t", RowBox[{ RowBox[{"d___", " ", RowBox[{"c___", "\[CenterDot]", SubscriptBox[ RowBox[{"(", SuperscriptBox[ RowBox[{"A_", " "}], "+"], ")"}], "a__"], "\[CenterDot]", "b___"}]}], " ", ":>", RowBox[{"d", " ", RowBox[{"c", "\[CenterDot]", SubscriptBox[ SuperscriptBox["A", "+"], "a"], "\[CenterDot]", "b"}]}]}], ",", "\n", "\t\t", RowBox[{ RowBox[{"d___", " ", RowBox[{"c___", "\[CenterDot]", SubscriptBox[ RowBox[{"(", SuperscriptBox[ RowBox[{"A_", " "}], "-"], ")"}], "a__"], "\[CenterDot]", "b___"}]}], " ", ":>", RowBox[{"d", " ", RowBox[{"c", "\[CenterDot]", SubscriptBox[ SuperscriptBox["A", "-"], "a"], "\[CenterDot]", "b"}]}]}], ",", "\n", "\t\t", RowBox[{ RowBox[{"c___", "\[CenterDot]", SubscriptBox[ RowBox[{"(", "A_", " ", ")"}], "a__"], "\[CenterDot]", "b___"}], " ", ":>", RowBox[{"c", "\[CenterDot]", SubscriptBox["A", "a"], "\[CenterDot]", "b"}]}]}], "\n", "}"}]}], ";"}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{"numdistribute", "=", "\n", RowBox[{"{", "\n", "\t\t", RowBox[{ RowBox[{ RowBox[{"a__", RowBox[{"(", RowBox[{"b_", "+", "c_"}], ")"}], "d___"}], " ", ":>", " ", RowBox[{ RowBox[{"a", " ", "b", " ", "d"}], " ", "+", RowBox[{"a", " ", "c", " ", "d"}]}]}], ",", "\n", "\t\t", RowBox[{ RowBox[{"a___", " ", RowBox[{"(", RowBox[{"b_", "+", "c_"}], ")"}], " ", "d__"}], " ", ":>", " ", RowBox[{ RowBox[{"a", " ", "b", " ", "d"}], " ", "+", RowBox[{"a", " ", "c", " ", "d"}]}]}]}], "\n", "}"}]}], ";"}]], "Input"] }, Open ]], Cell[CellGroupData[{ Cell[TextData[{ Cell[BoxData[ FormBox[ SubscriptBox["\[Delta]", RowBox[{"\[Mu]", " ", "\[Nu]"}]], TraditionalForm]]], " and ", Cell[BoxData[ FormBox[ SubscriptBox["\[Eta]", RowBox[{"\[Mu]", " ", "\[Nu]"}]], TraditionalForm]]], " Rules" }], "Subsection"], Cell[BoxData[ RowBox[{ RowBox[{"etarules", "=", "\n", RowBox[{"{", "\n", "\t\t", RowBox[{ RowBox[{ RowBox[{ SubscriptBox["\[Eta]", RowBox[{"\[Sigma]_", " ", ",", "\[Beta]_", " "}]], SuperscriptBox["\[Eta]", RowBox[{"\[Alpha]_", " ", ",", "\[Beta]_", " "}]]}], ":>", " ", SubsuperscriptBox["\[Delta]", "\[Sigma]", "\[Alpha]"]}], " ", ",", "\n", "\t\t", RowBox[{ RowBox[{ SubscriptBox["\[Eta]", RowBox[{"\[Sigma]_", " ", ",", "\[Beta]_", " "}]], SuperscriptBox["\[Eta]", RowBox[{"\[Beta]_", " ", ",", "\[Alpha]_", " "}]]}], ":>", " ", SubsuperscriptBox["\[Delta]", "\[Sigma]", "\[Alpha]"]}], " ", ",", "\n", "\t\t", RowBox[{ RowBox[{ SubscriptBox["\[Eta]", RowBox[{"\[Beta]_", " ", ",", "\[Sigma]_", " "}]], SuperscriptBox["\[Eta]", RowBox[{"\[Alpha]_", " ", ",", "\[Beta]_", " "}]]}], ":>", " ", SubsuperscriptBox["\[Delta]", "\[Sigma]", "\[Alpha]"]}], " ", ",", "\n", "\t\t", RowBox[{ RowBox[{ SubscriptBox["\[Eta]", RowBox[{"\[Beta]_", " ", ",", "\[Sigma]_", " "}]], SuperscriptBox["\[Eta]", RowBox[{"\[Beta]_", " ", ",", "\[Alpha]_", " "}]]}], ":>", " ", SubsuperscriptBox["\[Delta]", "\[Sigma]", "\[Alpha]"]}], " ", ",", " ", "\[IndentingNewLine]", RowBox[{ SubscriptBox["\[Eta]", RowBox[{"\[Alpha]_", " ", ",", "\[Beta]_", " "}]], " ", ":>", " ", RowBox[{ SubscriptBox["\[Eta]", RowBox[{"\[Beta]", " ", ",", "\[Alpha]", " "}]], " ", "/;", " ", RowBox[{"!", RowBox[{"OrderedQ", "[", RowBox[{"{", RowBox[{"\[Alpha]", ",", "\[Beta]"}], "}"}], "]"}]}]}]}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{ SubscriptBox["\[Eta]", RowBox[{"\[Alpha]_", " ", ",", "\[Beta]_", " "}]], " ", "A___"}], ":>", \ " ", RowBox[{ RowBox[{ SubscriptBox["\[Eta]", RowBox[{"\[Beta]", " ", ",", "\[Alpha]", " "}]], " ", "A"}], "/;", " ", RowBox[{"!", RowBox[{"OrderedQ", "[", RowBox[{"{", RowBox[{"\[Alpha]", ",", "\[Beta]"}], "}"}], "]"}]}]}]}]}], "\[IndentingNewLine]", "}"}]}], ";"}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{"etaRemoveRules", "=", "\n", RowBox[{"{", "\n", "\t\t", RowBox[{ RowBox[{ RowBox[{ SubscriptBox["\[Eta]", RowBox[{"\[Alpha]_", " ", ",", "\[Beta]_", " "}]], SubscriptBox["a", "\[Beta]_"]}], ":>", " ", RowBox[{ SubscriptBox["a", "\[Alpha]"], "/;", RowBox[{"!", RowBox[{"NumberQ", "[", "\[Beta]", "]"}]}]}]}], ",", "\n", "\t\t", RowBox[{ RowBox[{ SubscriptBox["\[Eta]", RowBox[{"\[Beta]_", " ", ",", "\[Alpha]_", " "}]], SubscriptBox["a", "\[Beta]_"]}], ":>", " ", RowBox[{ SubscriptBox["a", "\[Alpha]"], " ", "/;", RowBox[{"!", RowBox[{"NumberQ", "[", "\[Beta]", "]"}]}]}]}], ",", "\n", "\t ", RowBox[{ RowBox[{ SubscriptBox["\[Eta]", RowBox[{"\[Alpha]_", " ", ",", "\[Beta]_", " "}]], " ", SubscriptBox[ RowBox[{"a_", " "}], RowBox[{ "\[Sigma]___", ",", "\[Alpha]_", ",", "\[Gamma]___", "\[NonBreakingSpace]"}]]}], ":>", " ", RowBox[{ SubscriptBox["a", RowBox[{"\[Sigma]", ",", "\[Beta]", ",", "\[Gamma]", " "}]], "/;", RowBox[{"!", RowBox[{"NumberQ", "[", "\[Alpha]", "]"}]}]}]}], ",", "\n", "\t\t", RowBox[{ RowBox[{ SubscriptBox["\[Eta]", RowBox[{"\[Beta]_", " ", ",", "\[Alpha]_", " "}]], " ", SubscriptBox[ RowBox[{"a_", " "}], RowBox[{ "\[Sigma]___", ",", "\[Alpha]_", ",", "\[Gamma]___", "\[NonBreakingSpace]"}]]}], ":>", " ", RowBox[{ SubscriptBox["a", RowBox[{"\[Sigma]", ",", "\[Beta]", ",", "\[Gamma]", " "}]], "/;", RowBox[{"!", RowBox[{"NumberQ", "[", "\[Alpha]", "]"}]}]}]}], ",", "\n", "\n", "\t ", RowBox[{ RowBox[{ SubscriptBox["\[Eta]", RowBox[{"\[Alpha]_", " ", ",", "\[Beta]_", " "}]], RowBox[{"b___", "\[CenterDot]", SubscriptBox["a", "\[Beta]_"], "\[CenterDot]", "c___"}]}], ":>", " ", RowBox[{ RowBox[{"b", "\[CenterDot]", SubscriptBox["a", "\[Alpha]"], "\[CenterDot]", "c"}], "/;", RowBox[{"!", RowBox[{"NumberQ", "[", "\[Beta]", "]"}]}]}]}], ",", "\n", "\t\t", RowBox[{ RowBox[{ SubscriptBox["\[Eta]", RowBox[{"\[Beta]_", " ", ",", "\[Alpha]_", " "}]], RowBox[{"b___", "\[CenterDot]", SubscriptBox["a", "\[Beta]_"], "\[CenterDot]", "c___"}]}], ":>", " ", RowBox[{ RowBox[{"b", "\[CenterDot]", SubscriptBox["a", "\[Alpha]"], "\[CenterDot]", "c"}], "/;", RowBox[{"!", RowBox[{"NumberQ", "[", "\[Beta]", "]"}]}]}]}], ",", "\n", "\t ", RowBox[{ RowBox[{ SubscriptBox["\[Eta]", RowBox[{"\[Alpha]_", " ", ",", "\[Beta]_", " "}]], " ", RowBox[{"b___", "\[CenterDot]", SubscriptBox[ RowBox[{"a_", " "}], RowBox[{ "\[Sigma]___", ",", "\[Alpha]_", ",", "\[Gamma]___", "\[NonBreakingSpace]"}]], "\[CenterDot]", "c___"}]}], ":>", " ", RowBox[{ RowBox[{"b", "\[CenterDot]", SubscriptBox["a", RowBox[{"\[Sigma]", ",", "\[Beta]", ",", "\[Gamma]", " "}]], "\[CenterDot]", "c"}], "/;", RowBox[{"!", RowBox[{"NumberQ", "[", "\[Alpha]", "]"}]}]}]}], ",", "\n", "\t ", RowBox[{ RowBox[{ SubscriptBox["\[Eta]", RowBox[{"\[Beta]_", " ", ",", "\[Alpha]_", " "}]], " ", RowBox[{"b___", "\[CenterDot]", SubscriptBox[ RowBox[{"a_", " "}], RowBox[{ "\[Sigma]___", ",", "\[Alpha]_", ",", "\[Gamma]___", "\[NonBreakingSpace]"}]], "\[CenterDot]", "c___"}]}], ":>", " ", RowBox[{ RowBox[{"b", "\[CenterDot]", SubscriptBox["a", RowBox[{"\[Sigma]", ",", "\[Beta]", ",", "\[Gamma]", " "}]], "\[CenterDot]", "c"}], "/;", RowBox[{"!", RowBox[{"NumberQ", "[", "\[Alpha]", "]"}]}]}]}]}], "\t", "\n", "}"}]}], ";"}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"deltaRules", " ", "=", " ", "\n", RowBox[{"{", "\[IndentingNewLine]", "\t\t", RowBox[{ RowBox[{ SubscriptBox["\[Delta]", RowBox[{"\[Alpha]_", " ", ",", "\[Beta]_", " "}]], " ", ":>", " ", RowBox[{ SubscriptBox["\[Delta]", RowBox[{"\[Beta]", " ", ",", "\[Alpha]", " "}]], " ", "/;", " ", RowBox[{"!", RowBox[{"OrderedQ", "[", RowBox[{"{", RowBox[{"\[Alpha]", ",", "\[Beta]"}], "}"}], "]"}]}]}]}], ",", "\n", "\t\t\t", RowBox[{ RowBox[{ SubsuperscriptBox["\[Delta]", "\[Beta]_", "\[Alpha]_"], " ", SubscriptBox[ RowBox[{"a_", " "}], RowBox[{ "\[Sigma]___", ",", "\[Alpha]_", ",", "\[Gamma]___", "\[NonBreakingSpace]"}]]}], ":>", " ", SubscriptBox["a", RowBox[{"\[Sigma]", ",", "\[Beta]", ",", "\[Gamma]", " "}]]}], ",", "\n", "\t\t\t", RowBox[{ RowBox[{ SubsuperscriptBox["\[Delta]", "\[Beta]_", "\[Alpha]_"], " ", SubscriptBox[ RowBox[{"a_", " "}], RowBox[{" ", "\[Alpha]_", " "}]]}], ":>", SubscriptBox["a", "\[Beta]"]}], ",", "\n", "\n", "\t\t\t", RowBox[{ RowBox[{ SubsuperscriptBox["\[Delta]", "\[Beta]_", "\[Alpha]_"], " ", RowBox[{"b___", "\[CenterDot]", SubscriptBox["a_", RowBox[{" ", RowBox[{ "\[Sigma]___", ",", "\[Alpha]_", ",", "\[Gamma]___", "\[NonBreakingSpace]"}]}]], "\[CenterDot]", "c___", "\[CenterDot]", "e___"}]}], ":>", RowBox[{"b", "\[CenterDot]", " ", SubscriptBox["a", RowBox[{"\[Sigma]", ",", "\[Beta]", ",", "\[Gamma]", " "}]], "\[CenterDot]", "c", "\[CenterDot]", "e"}]}], ",", "\n", "\t\t\t", RowBox[{ RowBox[{ SubsuperscriptBox["\[Delta]", "\[Beta]_", "\[Alpha]_"], " ", RowBox[{"b___", "\[CenterDot]", " ", SubscriptBox[ RowBox[{"a_", " "}], RowBox[{"\[Alpha]_", " "}]], "\[CenterDot]", "c___", "\[CenterDot]", "e___"}]}], ":>", RowBox[{"b", "\[CenterDot]", " ", SubscriptBox["a", RowBox[{" ", "\[Beta]", " "}]], "\[CenterDot]", "c", "\[CenterDot]", "e"}]}], ",", "\[IndentingNewLine]", "\t\t", "\[IndentingNewLine]", "\t\t", RowBox[{ RowBox[{ SubsuperscriptBox["\[Delta]", "\[Beta]_", "\[Alpha]_"], " ", SubsuperscriptBox["\[Delta]", "\[Kappa]_", "\[Beta]_"]}], " ", ":>", SubsuperscriptBox["\[Delta]", "\[Kappa]", "\[Alpha]"]}], " ", ",", "\[IndentingNewLine]", "\t\t", RowBox[{ SubsuperscriptBox["\[Delta]", "\[Alpha]_", "\[Alpha]_"], " ", ":>", " ", "n\[Delta]"}]}], "\n", "}"}]}], ";"}], "\t"}]], "Input", CellChangeTimes->{{3.403127293933199*^9, 3.4031272963767614`*^9}, { 3.453554057822241*^9, 3.453554101947947*^9}, {3.45355416968972*^9, 3.4535541856723185`*^9}, {3.4535547033090773`*^9, 3.453554714566203*^9}, 3.4535547588286285`*^9}], Cell[BoxData[ RowBox[{ RowBox[{"deltaRemoveRules", "=", "\n", RowBox[{"{", "\n", "\t\t", RowBox[{ RowBox[{ RowBox[{ SubscriptBox["\[Delta]", RowBox[{"\[Alpha]_", " ", ",", "\[Beta]_", " "}]], SubscriptBox["a", "\[Beta]_"]}], ":>", " ", RowBox[{ SubscriptBox["a", "\[Alpha]"], "/;", RowBox[{"!", RowBox[{"NumberQ", "[", "\[Beta]", "]"}]}]}]}], ",", "\n", "\t\t", RowBox[{ RowBox[{ SubscriptBox["\[Delta]", RowBox[{"\[Beta]_", " ", ",", "\[Alpha]_", " "}]], SubscriptBox["a", "\[Beta]_"]}], ":>", " ", RowBox[{ SubscriptBox["a", "\[Alpha]"], " ", "/;", RowBox[{"!", RowBox[{"NumberQ", "[", "\[Beta]", "]"}]}]}]}], ",", "\n", "\t ", RowBox[{ RowBox[{ SubscriptBox["\[Delta]", RowBox[{"\[Alpha]_", " ", ",", "\[Beta]_", " "}]], " ", SubscriptBox[ RowBox[{"a_", " "}], RowBox[{ "\[Sigma]___", ",", "\[Alpha]_", ",", "\[Gamma]___", "\[NonBreakingSpace]"}]]}], ":>", " ", RowBox[{ SubscriptBox["a", RowBox[{"\[Sigma]", ",", "\[Beta]", ",", "\[Gamma]", " "}]], "/;", RowBox[{"!", RowBox[{"NumberQ", "[", "\[Alpha]", "]"}]}]}]}], ",", "\n", "\t\t", RowBox[{ RowBox[{ SubscriptBox["\[Delta]", RowBox[{"\[Beta]_", " ", ",", "\[Alpha]_", " "}]], " ", SubscriptBox[ RowBox[{"a_", " "}], RowBox[{ "\[Sigma]___", ",", "\[Alpha]_", ",", "\[Gamma]___", "\[NonBreakingSpace]"}]]}], ":>", " ", RowBox[{ SubscriptBox["a", RowBox[{"\[Sigma]", ",", "\[Beta]", ",", "\[Gamma]", " "}]], "/;", RowBox[{"!", RowBox[{"NumberQ", "[", "\[Alpha]", "]"}]}]}]}], ",", "\n", "\n", "\t ", RowBox[{ RowBox[{ SubscriptBox["\[Delta]", RowBox[{"\[Alpha]_", " ", ",", "\[Beta]_", " "}]], RowBox[{"b___", "\[CenterDot]", SubscriptBox["a", "\[Beta]_"], "\[CenterDot]", "c___"}]}], ":>", " ", RowBox[{ RowBox[{"b", "\[CenterDot]", SubscriptBox["a", "\[Alpha]"], "\[CenterDot]", "c"}], "/;", RowBox[{"!", RowBox[{"NumberQ", "[", "\[Beta]", "]"}]}]}]}], ",", "\n", "\t\t", RowBox[{ RowBox[{ SubscriptBox["\[Delta]", RowBox[{"\[Beta]_", " ", ",", "\[Alpha]_", " "}]], RowBox[{"b___", "\[CenterDot]", SubscriptBox["a", "\[Beta]_"], "\[CenterDot]", "c___"}]}], ":>", " ", RowBox[{ RowBox[{"b", "\[CenterDot]", SubscriptBox["a", "\[Alpha]"], "\[CenterDot]", "c"}], "/;", RowBox[{"!", RowBox[{"NumberQ", "[", "\[Beta]", "]"}]}]}]}], ",", "\n", "\t ", RowBox[{ RowBox[{ SubscriptBox["\[Delta]", RowBox[{"\[Alpha]_", " ", ",", "\[Beta]_", " "}]], " ", RowBox[{"b___", "\[CenterDot]", SubscriptBox[ RowBox[{"a_", " "}], RowBox[{ "\[Sigma]___", ",", "\[Alpha]_", ",", "\[Gamma]___", "\[NonBreakingSpace]"}]], "\[CenterDot]", "c___"}]}], ":>", " ", RowBox[{ RowBox[{"b", "\[CenterDot]", SubscriptBox["a", RowBox[{"\[Sigma]", ",", "\[Beta]", ",", "\[Gamma]", " "}]], "\[CenterDot]", "c"}], "/;", RowBox[{"!", RowBox[{"NumberQ", "[", "\[Alpha]", "]"}]}]}]}], ",", "\n", "\t ", RowBox[{ RowBox[{ SubscriptBox["\[Delta]", RowBox[{"\[Beta]_", " ", ",", "\[Alpha]_", " "}]], " ", RowBox[{"b___", "\[CenterDot]", SubscriptBox[ RowBox[{"a_", " "}], RowBox[{ "\[Sigma]___", ",", "\[Alpha]_", ",", "\[Gamma]___", "\[NonBreakingSpace]"}]], "\[CenterDot]", "c___"}]}], ":>", " ", RowBox[{ RowBox[{"b", "\[CenterDot]", SubscriptBox["a", RowBox[{"\[Sigma]", ",", "\[Beta]", ",", "\[Gamma]", " "}]], "\[CenterDot]", "c"}], "/;", RowBox[{"!", RowBox[{"NumberQ", "[", "\[Alpha]", "]"}]}]}]}]}], "\t", "\n", "}"}]}], ";"}]], "Input"], Cell[BoxData[{ RowBox[{ RowBox[{ RowBox[{"etacontract", "=", "\n", RowBox[{"{", "\n", "\t\t\t", RowBox[{ RowBox[{ RowBox[{ RowBox[{ RowBox[{"-", RowBox[{"(", RowBox[{ SubscriptBox[ RowBox[{"a_", " "}], RowBox[{"\[Mu]___", " ", "\[Nu]_", " ", "\[Kappa]___", " "}]], "\[CenterDot]", SubscriptBox[ RowBox[{"b_", " "}], RowBox[{ "\[Sigma]___", ",", "\[Rho]_", " ", ",", "\[Gamma]___"}]]}], ")"}]}], SuperscriptBox["\[Eta]", RowBox[{"\[Nu]_", ",", "\[Rho]_"}]]}], " ", "+", RowBox[{ RowBox[{ SubscriptBox[ RowBox[{"a_", " "}], RowBox[{"\[Mu]___", ",", "\[Alpha]_", ",", "\[Kappa]___", " "}]], "\[CenterDot]", SubscriptBox[ RowBox[{"b_", " "}], RowBox[{ "\[Sigma]___", ",", "\[Beta]_", ",", "\[Gamma]___", " "}]]}], SuperscriptBox["\[Eta]", RowBox[{"\[Alpha]_", ",", "\[Beta]_"}]]}]}], ":>", "0"}], ",", "\n", "\t\t\t", RowBox[{ RowBox[{ RowBox[{ RowBox[{"-", RowBox[{"(", RowBox[{ SubscriptBox[ RowBox[{"a_", " "}], RowBox[{"\[Nu]_", " "}]], "\[CenterDot]", SubscriptBox[ RowBox[{"b_", " "}], RowBox[{ "\[Sigma]___", ",", "\[Rho]_", " ", ",", "\[Gamma]___"}]]}], ")"}]}], SuperscriptBox["\[Eta]", RowBox[{"\[Nu]_", ",", "\[Rho]_"}]]}], " ", "+", RowBox[{ RowBox[{ SubscriptBox[ RowBox[{"a_", " "}], RowBox[{" ", "\[Alpha]_", " "}]], "\[CenterDot]", SubscriptBox[ RowBox[{"b_", " "}], RowBox[{ "\[Sigma]___", ",", "\[Beta]_", ",", "\[Gamma]___", " "}]]}], SuperscriptBox["\[Eta]", RowBox[{"\[Alpha]_", ",", "\[Beta]_"}]]}]}], ":>", "0"}], ",", "\n", "\t\t\t", RowBox[{ RowBox[{ RowBox[{ RowBox[{"-", RowBox[{"(", RowBox[{ SubscriptBox[ RowBox[{"a_", " "}], RowBox[{ "\[Mu]___", " ", ",", "\[Nu]_", ",", "\[Kappa]___", " "}]], "\[CenterDot]", SubscriptBox[ RowBox[{"b_", " "}], RowBox[{" ", "\[Rho]_", " "}]]}], ")"}]}], SuperscriptBox["\[Eta]", RowBox[{"\[Nu]_", ",", "\[Rho]_"}]]}], " ", "+", RowBox[{ RowBox[{ SubscriptBox[ RowBox[{"a_", " "}], RowBox[{"\[Mu]___", ",", "\[Alpha]_", ",", "\[Kappa]___", " "}]], "\[CenterDot]", SubscriptBox[ RowBox[{"b_", " "}], RowBox[{" ", "\[Beta]_", " "}]]}], SuperscriptBox["\[Eta]", RowBox[{"\[Alpha]_", ",", "\[Beta]_"}]]}]}], ":>", "0"}], ",", "\n", "\t\t\t", RowBox[{ RowBox[{ RowBox[{ RowBox[{"-", RowBox[{"(", RowBox[{"c___", "\[CenterDot]", SubscriptBox[ RowBox[{"a_", " "}], RowBox[{ "\[Mu]___", " ", ",", "\[Nu]_", ",", "\[Kappa]___", " "}]], "\[CenterDot]", "b___", "\[CenterDot]", SubscriptBox[ RowBox[{"e_", " "}], RowBox[{ "\[Sigma]___", ",", "\[Rho]_", " ", ",", "\[Gamma]___"}]], "\[CenterDot]", "d___"}], ")"}]}], SuperscriptBox["\[Eta]", RowBox[{"\[Nu]_", ",", "\[Rho]_"}]]}], " ", "+", RowBox[{ RowBox[{"c___", "\[CenterDot]", SubscriptBox[ RowBox[{"a_", " "}], RowBox[{"\[Mu]___", ",", "\[Alpha]_", ",", "\[Kappa]___", " "}]], "\[CenterDot]", "b___", "\[CenterDot]", SubscriptBox[ RowBox[{"e_", " "}], RowBox[{"\[Sigma]___", ",", "\[Beta]_", ",", "\[Gamma]___", " "}]], "\[CenterDot]", "d___"}], " ", SuperscriptBox["\[Eta]", RowBox[{"\[Alpha]_", ",", "\[Beta]_"}]]}]}], ":>", "0"}], ",", "\n", "\t\t\t", RowBox[{ RowBox[{ RowBox[{ RowBox[{"-", RowBox[{"(", RowBox[{"c___", "\[CenterDot]", SubscriptBox[ RowBox[{"a_", " "}], RowBox[{"\[Nu]_", " "}]], "\[CenterDot]", "b___", "\[CenterDot]", SubscriptBox[ RowBox[{"e_", " "}], RowBox[{ "\[Sigma]___", ",", "\[Rho]_", " ", ",", "\[Gamma]___"}]], "\[CenterDot]", "d___"}], ")"}]}], SuperscriptBox["\[Eta]", RowBox[{"\[Nu]_", ",", "\[Rho]_"}]]}], " ", "+", RowBox[{ RowBox[{"c___", "\[CenterDot]", SubscriptBox[ RowBox[{"a_", " "}], RowBox[{"\[Alpha]_", " "}]], "\[CenterDot]", "b___", "\[CenterDot]", SubscriptBox[ RowBox[{"e_", " "}], RowBox[{"\[Sigma]___", ",", "\[Beta]_", ",", "\[Gamma]___", " "}]], "\[CenterDot]", "d___"}], " ", SuperscriptBox["\[Eta]", RowBox[{"\[Alpha]_", ",", "\[Beta]_"}]]}]}], ":>", "0"}], ",", "\n", "\t\t\t", RowBox[{ RowBox[{ RowBox[{ RowBox[{"-", RowBox[{"(", RowBox[{"c___", "\[CenterDot]", SubscriptBox[ RowBox[{"a_", " "}], RowBox[{ "\[Mu]___", " ", ",", "\[Nu]_", ",", "\[Kappa]___", " "}]], "\[CenterDot]", "b___", "\[CenterDot]", SubscriptBox[ RowBox[{"e_", " "}], RowBox[{"\[Rho]_", " "}]], "\[CenterDot]", "d___"}], ")"}]}], SuperscriptBox["\[Eta]", RowBox[{"\[Nu]_", ",", "\[Rho]_"}]]}], " ", "+", RowBox[{ RowBox[{"c___", "\[CenterDot]", SubscriptBox[ RowBox[{"a_", " "}], RowBox[{"\[Mu]___", ",", "\[Alpha]_", ",", "\[Kappa]___", " "}]], "\[CenterDot]", "b___", "\[CenterDot]", SubscriptBox[ RowBox[{"e_", " "}], RowBox[{" ", "\[Beta]_", " "}]], "\[CenterDot]", "d___"}], " ", SuperscriptBox["\[Eta]", RowBox[{"\[Alpha]_", ",", "\[Beta]_"}]]}]}], ":>", "0"}]}], "\t\t\t\t\t\t\t\t\t\t\t", "\n", "}"}]}], ";"}], "\n"}], "\n", RowBox[{"\t\t\t\t\t\t"}]}], "Input"], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"etadistribute", " ", "=", RowBox[{"{", "\n", "\t", RowBox[{ RowBox[{ RowBox[{"(", RowBox[{"A__", "+", "B_"}], ")"}], SubscriptBox["\[Eta]", RowBox[{"i_", ",", "j_"}]]}], ":>", RowBox[{ RowBox[{"A", " ", SubscriptBox["\[Eta]", RowBox[{"i", ",", "j"}]]}], "+", RowBox[{"B", " ", SubscriptBox["\[Eta]", RowBox[{"i", ",", "j"}]]}]}]}], "}"}]}], ";"}], "\n"}]], "Input"], Cell[BoxData[ RowBox[{"\n", RowBox[{"ClearAll", "[", "\[Eta]", "]"}]}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{"etaevaluate", " ", "=", "\n", RowBox[{"{", "\n", "\t\t", RowBox[{ RowBox[{ SubscriptBox["\[Eta]", RowBox[{"i_Integer", ",", "j_Integer"}]], ":>", " ", RowBox[{"If", "[", RowBox[{ RowBox[{"i", "==", "j"}], ",", RowBox[{"If", "[", RowBox[{ RowBox[{"i", "==", "0"}], ",", "1", ",", RowBox[{"-", "1"}]}], "]"}], ",", "0"}], "]"}]}], ",", "\n", "\t\t", RowBox[{ SuperscriptBox["\[Eta]", RowBox[{"i_Integer", ",", "j_Integer"}]], ":>", " ", RowBox[{"If", "[", RowBox[{ RowBox[{"i", "==", "j"}], ",", RowBox[{"If", "[", RowBox[{ RowBox[{"i", "==", "0"}], ",", "1", ",", RowBox[{"-", "1"}]}], "]"}], ",", "0"}], "]"}]}], ",", "\n", "\t ", RowBox[{ SubscriptBox["\[Eta]", RowBox[{"0", ",", "j_"}]], " ", ":>", RowBox[{"0", " ", "/;", " ", RowBox[{"ThreeLatinQ", "[", "j", "]"}]}]}], ",", "\n", "\t\t", RowBox[{ SubscriptBox["\[Eta]", RowBox[{"j_", ",", "0"}]], " ", ":>", RowBox[{"0", " ", "/;", " ", RowBox[{"ThreeLatinQ", "[", "j", "]"}]}]}], ",", "\n", "\t\t", RowBox[{ SubscriptBox["\[Eta]", RowBox[{"j_", ",", "j_"}]], " ", ":>", RowBox[{"n3\[Eta]", " ", "/;", " ", RowBox[{"ThreeLatinQ", "[", "j", "]"}]}]}], ",", "\n", "\t\t", RowBox[{ SubscriptBox["\[Eta]", RowBox[{"a_", ",", "a_"}]], " ", ":>", RowBox[{"n4\[Eta]", "/;", " ", RowBox[{"FourLatinQ", "[", "a", "]"}]}]}], ",", "\n", "\t\t", RowBox[{ RowBox[{ SubscriptBox["\[Eta]", RowBox[{"a_", ",", "b_"}]], " ", SubscriptBox["\[Eta]", RowBox[{"a_", ",", "b_"}]]}], ":>", RowBox[{"n4\[Eta]", "/;", RowBox[{ RowBox[{"FourLatinQ", "[", "a", "]"}], "&&", RowBox[{"FourLatinQ", "[", "b", "]"}]}]}]}], ",", "\n", "\t\t", RowBox[{ SuperscriptBox["\[Epsilon]", "i_Integer"], ":>", " ", RowBox[{"If", "[", RowBox[{ RowBox[{"i", "==", "0"}], ",", RowBox[{"-", "1"}], ",", "1"}], "]"}]}]}], "\n", "}"}]}], ";"}]], "Input", CellChangeTimes->{{3.464181915398*^9, 3.464181924229*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"deltaevaluate", " ", "=", "\n", RowBox[{"{", "\n", "\t\t", RowBox[{ RowBox[{ SubscriptBox["\[Delta]", RowBox[{"i_Integer", ",", "j_Integer"}]], ":>", " ", RowBox[{"If", "[", RowBox[{ RowBox[{"i", "==", "j"}], ",", "1", ",", "0"}], "]"}]}], ",", "\n", "\t\t", RowBox[{ SuperscriptBox["\[Delta]", RowBox[{"i_Integer", ",", "j_Integer"}]], ":>", " ", RowBox[{"If", "[", RowBox[{ RowBox[{"i", "==", "j"}], ",", "1", ",", "0"}], "]"}]}], ",", "\n", "\t\t", RowBox[{ SubscriptBox["\[Delta]", RowBox[{"a_", ",", "a_"}]], " ", ":>", "n\[Delta]"}], ",", "\n", "\t\t", RowBox[{ RowBox[{ SubscriptBox["\[Delta]", RowBox[{"a_", ",", "b_"}]], " ", SubscriptBox["\[Delta]", RowBox[{"a_", ",", "b_"}]]}], ":>", "n\[Delta]"}]}], "\n", "}"}]}], ";"}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{"zetaRules", " ", "=", " ", RowBox[{"{", " ", "\[IndentingNewLine]", RowBox[{ SubscriptBox["\[Zeta]", RowBox[{"i_", ",", "j_", " "}]], "\[RuleDelayed]", RowBox[{ RowBox[{"-", SubscriptBox["\[Zeta]", RowBox[{"j", ",", "i"}]]}], "/;", " ", RowBox[{"!", RowBox[{"OrderedQ", "[", RowBox[{"{", RowBox[{"i", ",", "j"}], "}"}], "]"}]}]}]}], "\[IndentingNewLine]", "}"}]}], ";"}]], "Input", CellChangeTimes->{{3.4031273404309864`*^9, 3.4031273669997206`*^9}}] }, Open ]], Cell[CellGroupData[{ Cell["General Rules", "Subsection"], Cell["\<\ These rules colledt the above rules into a general set of evaluation rules\ \>", "Text", CellChangeTimes->{{3.4490561036752014`*^9, 3.4490561208899555`*^9}}], Cell[BoxData[ RowBox[{"\n", RowBox[{ RowBox[{"lieSimplify", "[", "a_", "]"}], " ", ":=", " ", "\n", RowBox[{"(", RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"(", "a", ")"}], "//.", "lbPlus"}], ")"}], "//.", "lbNum"}], ")"}], "//.", " ", "lbNum1"}], ")"}], "//.", "lbProd"}], ")"}], "//.", "dotnum"}], ")"}]}]}]], "Input"], Cell[BoxData[ RowBox[{"\n", RowBox[{ RowBox[{ RowBox[{"lieRules", "=", RowBox[{"Flatten", "[", RowBox[{"{", RowBox[{"lbPlus", ",", "lbNum", ",", " ", "lbProd"}], "}"}], "]"}]}], ";"}], "\n", RowBox[{ RowBox[{"dotRules", "=", RowBox[{"Flatten", "[", RowBox[{"{", RowBox[{"dotnum", ",", "dotdistribute"}], "}"}], "]"}]}], ";"}], "\n", RowBox[{ RowBox[{"etaRules", "=", RowBox[{"Flatten", "[", RowBox[{"{", RowBox[{ "etarules", ",", "deltaRules", ",", "etacontract", ",", "etaRemoveRules", ",", "deltaRemoveRules", ",", " ", "etadistribute", ",", "etaevaluate", ",", "deltaevaluate", ",", " ", "zetaRules"}], " ", "}"}], "]"}]}], ";"}], "\n", RowBox[{ RowBox[{"generalRules", " ", "=", " ", RowBox[{"Flatten", "[", RowBox[{"{", RowBox[{ "lieRules", ",", "dotRules", ",", "etaRules", ",", "numdistribute"}], "}"}], "]"}]}], ";"}]}]}]], "Input", CellChangeTimes->{{3.403127357215456*^9, 3.4031273713560715`*^9}}] }, Open ]], Cell[CellGroupData[{ Cell["Canonical Order Rules", "Subsection"], Cell["\<\ This rule puts a non commutative product into a standard order using the lie \ bracket \ \>", "Text", CellChangeTimes->{{3.4490561255967236`*^9, 3.4490561472778993`*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"orderedRules", "=", RowBox[{"Dispatch", "[", RowBox[{"{", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"A_", "\[CenterDot]", "B_"}], " ", ":>", " ", RowBox[{ RowBox[{ RowBox[{"B", "\[CenterDot]", "A"}], " ", "+", " ", RowBox[{"l", "[", RowBox[{"A", ",", "B"}], "]"}]}], " ", "/;", " ", RowBox[{"!", RowBox[{"OrderedQ", "[", RowBox[{"{", RowBox[{"A", ",", "B"}], "}"}], "]"}]}]}]}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{ "C___", "\[CenterDot]", "A_", "\[CenterDot]", "B_", " ", "\[CenterDot]", "D___"}], " ", ":>", " ", RowBox[{ RowBox[{ RowBox[{ "C", "\[CenterDot]", "B", "\[CenterDot]", "A", " ", "\[CenterDot]", "D"}], "+", " ", RowBox[{"C", "\[CenterDot]", RowBox[{"l", "[", RowBox[{"A", ",", "B"}], "]"}], "\[CenterDot]", "D"}]}], " ", "/;", " ", RowBox[{"!", RowBox[{"OrderedQ", "[", RowBox[{"{", RowBox[{"A", ",", "B"}], "}"}], "]"}]}]}]}]}], "\[IndentingNewLine]", "}"}], "]"}]}], ";"}]], "Input"], Cell[BoxData[""], "Input"], Cell["", "Text", CellChangeTimes->{3.403127172125619*^9}], Cell[TextData[{ StyleBox["Mathematica", FontSlant->"Italic"], " scripts copyright Stephen Low 2008. Retain any commercial rights. \ Licence granted for use provided that 1) no commercial use 2) improvements \ made available to author 3) this licence is recursive" }], "Text", CellChangeTimes->{{3.425408583933507*^9, 3.4254086444004545`*^9}}] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell["Print Utilities", "Section"], Cell[BoxData[ RowBox[{"\n", RowBox[{ RowBox[{ RowBox[{"PrintCommutators", "[", RowBox[{"lb_", ",", "basis1_", ",", "basis2_"}], "]"}], " ", ":=", " ", RowBox[{"Block", "[", RowBox[{ RowBox[{"{", RowBox[{"aa", ",", "bb", ",", "temp", ",", "ttemp"}], "}"}], ",", "\n", "\t\t", RowBox[{ RowBox[{"Do", "[", RowBox[{ RowBox[{"Do", "[", "\n", "\t\t\t\t", RowBox[{ RowBox[{ RowBox[{"If", "[", RowBox[{ RowBox[{ RowBox[{"(", RowBox[{"temp", "=", RowBox[{"lb", "[", RowBox[{ RowBox[{"basis1", "[", RowBox[{"[", "aa", "]"}], "]"}], ",", RowBox[{"basis2", "[", RowBox[{"[", "bb", "]"}], "]"}]}], "]"}]}], ")"}], "==", "0"}], ",", RowBox[{"ttemp", "=", "False"}], ",", RowBox[{"ttemp", "=", "True"}], ",", RowBox[{"ttemp", "=", "True"}]}], "]"}], ";", "\n", "\t\t\t\t", RowBox[{"If", "[", RowBox[{"ttemp", ",", RowBox[{"Print", "[", RowBox[{"\"\<[\>\"", ",", RowBox[{"basis1", "[", RowBox[{"[", "aa", "]"}], "]"}], ",", "\"\<,\>\"", ",", RowBox[{"basis2", "[", RowBox[{"[", "bb", "]"}], "]"}], ",", "\"\<] = \>\"", ",", "temp"}], "]"}]}], "]"}]}], ",", "\n", "\t\t", RowBox[{"{", RowBox[{"aa", ",", "bb"}], "}"}]}], "]"}], ",", RowBox[{"{", RowBox[{"bb", ",", RowBox[{"Length", "[", "basis2", "]"}]}], "}"}]}], "]"}], ";", " ", RowBox[{"Print", "[", "\"\\"", "]"}]}]}], "\n", "]"}]}], "\n", "\t\t"}]}]], "Input"], Cell[BoxData[ RowBox[{"\n", RowBox[{ RowBox[{ RowBox[{"PrintCommutatorsAll", "[", RowBox[{"lb_", ",", "basis1_", ",", "basis2_"}], "]"}], " ", ":=", " ", RowBox[{"Block", "[", RowBox[{ RowBox[{"{", RowBox[{"aa", ",", "bb", ",", "temp", ",", "ttemp"}], "}"}], ",", "\n", "\t\t", RowBox[{ RowBox[{"Do", "[", RowBox[{ RowBox[{"Do", "[", "\n", "\t\t\t\t", RowBox[{ RowBox[{ RowBox[{"If", "[", RowBox[{ RowBox[{ RowBox[{"(", RowBox[{"temp", "=", RowBox[{"lb", "[", RowBox[{ RowBox[{"basis1", "[", RowBox[{"[", "aa", "]"}], "]"}], ",", RowBox[{"basis2", "[", RowBox[{"[", "bb", "]"}], "]"}]}], "]"}]}], ")"}], "==", "0"}], ",", RowBox[{"ttemp", "=", "False"}], ",", RowBox[{"ttemp", "=", "True"}], ",", RowBox[{"ttemp", "=", "True"}]}], "]"}], ";", "\n", "\t\t\t\t", RowBox[{"If", "[", RowBox[{"ttemp", ",", RowBox[{"Print", "[", RowBox[{"\"\<[\>\"", ",", RowBox[{"basis1", "[", RowBox[{"[", "aa", "]"}], "]"}], ",", "\"\<,\>\"", ",", RowBox[{"basis2", "[", RowBox[{"[", "bb", "]"}], "]"}], ",", "\"\<] = \>\"", ",", "temp"}], "]"}]}], "]"}]}], ",", "\n", "\t\t", RowBox[{"{", RowBox[{"aa", ",", RowBox[{"Length", "[", "basis1", "]"}]}], "}"}]}], "]"}], ",", RowBox[{"{", RowBox[{"bb", ",", RowBox[{"Length", "[", "basis2", "]"}]}], "}"}]}], "]"}], ";", " ", RowBox[{"Print", "[", "\"\\"", "]"}]}]}], "\n", "]"}]}], "\n", "\t\t"}]}]], "Input"], Cell[BoxData[ RowBox[{"\n", RowBox[{ RowBox[{ RowBox[{"ListCommutators", "[", RowBox[{"lb_", ",", "basis1_", ",", "basis2_"}], "]"}], " ", ":=", " ", RowBox[{"Block", "[", RowBox[{ RowBox[{"{", RowBox[{"aa", ",", "bb", ",", "temp", ",", "ttemp", ",", "ttprint"}], "}"}], ",", "\[IndentingNewLine]", "\t\t", RowBox[{ RowBox[{"ttprint", "=", RowBox[{"{", "}"}]}], ";", "\n", "\t\t", RowBox[{"Do", "[", RowBox[{ RowBox[{"Do", "[", "\n", "\t\t\t\t", RowBox[{ RowBox[{ RowBox[{"If", "[", RowBox[{ RowBox[{ RowBox[{"(", RowBox[{"temp", "=", RowBox[{"lb", "[", RowBox[{ RowBox[{"basis1", "[", RowBox[{"[", "aa", "]"}], "]"}], ",", RowBox[{"basis2", "[", RowBox[{"[", "bb", "]"}], "]"}]}], "]"}]}], ")"}], "==", "0"}], ",", RowBox[{"ttemp", "=", "False"}], ",", RowBox[{"ttemp", "=", "True"}], ",", RowBox[{"ttemp", "=", "True"}]}], "]"}], ";", "\n", "\t\t\t\t", RowBox[{"If", "[", RowBox[{"ttemp", ",", RowBox[{"ttprint", "=", RowBox[{"Append", "[", RowBox[{"ttprint", ",", RowBox[{"f", "[", RowBox[{ RowBox[{"basis1", "[", RowBox[{"[", "aa", "]"}], "]"}], ",", RowBox[{"basis2", "[", RowBox[{"[", "bb", "]"}], "]"}], ",", "temp"}], "]"}]}], "]"}]}]}], "]"}]}], ",", "\n", "\t\t", RowBox[{"{", RowBox[{"aa", ",", "bb"}], "}"}]}], "]"}], ",", RowBox[{"{", RowBox[{"bb", ",", RowBox[{"Length", "[", "basis2", "]"}]}], "}"}]}], "]"}], ";", " ", RowBox[{ RowBox[{"Return", "[", "ttprint", "]"}], "//.", RowBox[{ RowBox[{"f", "[", RowBox[{"a_", ",", "b_", ",", "c_"}], "]"}], "\[RuleDelayed]", RowBox[{ RowBox[{"l", "[", RowBox[{"a", ",", "b"}], "]"}], "\[Equal]", "c"}]}]}]}]}], "\n", "]"}]}], "\n", "\t\t"}]}]], "Input", CellChangeTimes->{{3.413908837394533*^9, 3.413908911444253*^9}, { 3.4139092280758615`*^9, 3.4139092289771757`*^9}, {3.4139093602685814`*^9, 3.4139094316125917`*^9}}] }, Open ]], Cell[CellGroupData[{ Cell["Jacobi Relations Test", "Section", CellChangeTimes->{{3.4031271943980894`*^9, 3.403127205864806*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"jacobiRelations", "[", RowBox[{"lb_", ",", "hRules_", ",", "a_", ",", "b_", ",", "c_"}], "]"}], ":=", RowBox[{ RowBox[{"Simplify", "[", RowBox[{ RowBox[{ RowBox[{ RowBox[{ RowBox[{"lb", "[", RowBox[{"a", ",", RowBox[{"lb", "[", RowBox[{"b", ",", "c"}], "]"}]}], "]"}], "+", RowBox[{"lb", "[", RowBox[{"b", ",", RowBox[{"lb", "[", RowBox[{"c", ",", "a"}], "]"}]}], "]"}], "+", RowBox[{"lb", "[", RowBox[{"c", ",", RowBox[{"lb", "[", RowBox[{"a", ",", "b"}], "]"}]}], "]"}]}], "//.", "generalRules"}], "//.", "hRules"}], "//.", "generalRules"}], "]"}], "//.", "generalRules"}]}]], "Input", CellChangeTimes->{3.403129152212331*^9}], Cell[BoxData[ RowBox[{ RowBox[{"jacobi2Relations", "[", RowBox[{"lb_", ",", "h2_", ",", "a_", ",", "b_", ",", "c_"}], "]"}], ":=", RowBox[{ RowBox[{"Simplify", "[", RowBox[{"h2", "[", RowBox[{ RowBox[{"lb", "[", RowBox[{"a", ",", RowBox[{"lb", "[", RowBox[{"b", ",", "c"}], "]"}]}], "]"}], "+", RowBox[{"lb", "[", RowBox[{"b", ",", RowBox[{"lb", "[", RowBox[{"c", ",", "a"}], "]"}]}], "]"}], "+", RowBox[{"lb", "[", RowBox[{"c", ",", RowBox[{"lb", "[", RowBox[{"a", ",", "b"}], "]"}]}], "]"}]}], "]"}], "]"}], "//.", "generalRules"}]}]], "Input", CellChangeTimes->{ 3.403129152212331*^9, {3.403129227852605*^9, 3.4031292516773376`*^9}}], Cell[BoxData[ RowBox[{"\n", RowBox[{ RowBox[{ RowBox[{"TestJacobi", "[", RowBox[{ "lb_", ",", "hRules_", ",", "basis1_", ",", "basis2_", ",", "basis3_"}], "]"}], " ", ":=", " ", RowBox[{"Block", "[", RowBox[{ RowBox[{"{", RowBox[{"aa", ",", "bb", ",", "cc", ",", "temp", ",", "ttemp"}], "}"}], ",", "\n", "\t\t", RowBox[{ RowBox[{"Do", "[", RowBox[{ RowBox[{"Do", "[", RowBox[{ RowBox[{"Do", "[", "\n", "\t\t\t\t", RowBox[{ RowBox[{ RowBox[{"temp", "=", RowBox[{"jacobiRelations", "[", RowBox[{"lb", ",", "hRules", ",", RowBox[{"basis1", "[", RowBox[{"[", "aa", "]"}], "]"}], ",", RowBox[{"basis2", "[", RowBox[{"[", "bb", "]"}], "]"}], ",", RowBox[{"basis3", "[", RowBox[{"[", "cc", "]"}], "]"}]}], "]"}]}], ";", "\n", "\t\t\t\t", RowBox[{"If", "[", RowBox[{ RowBox[{ RowBox[{"(", RowBox[{"temp", "\[Equal]", RowBox[{"{", "0", "}"}]}], ")"}], "||", RowBox[{"(", RowBox[{"temp", "\[Equal]", "0"}], ")"}]}], ",", RowBox[{"ttemp", "=", "False"}], ",", RowBox[{"ttemp", "=", "True"}], ",", RowBox[{"ttemp", "=", "True"}]}], "]"}], ";", "\n", "\t\t\t\t", RowBox[{"If", "[", RowBox[{"ttemp", ",", RowBox[{"Print", "[", RowBox[{"\"\<{\>\"", ",", RowBox[{"basis1", "[", RowBox[{"[", "aa", "]"}], "]"}], ",", "\"\<,\>\"", ",", RowBox[{"basis2", "[", RowBox[{"[", "bb", "]"}], "]"}], ",", "\"\<,\>\"", ",", RowBox[{"basis3", "[", RowBox[{"[", "cc", "]"}], "]"}], ",", "\"\<} = \>\"", ",", "temp"}], "]"}]}], "]"}]}], ",", "\n", "\t\t", RowBox[{"{", RowBox[{"aa", ",", RowBox[{"Length", "[", "basis1", "]"}]}], "}"}]}], "]"}], ",", RowBox[{"{", RowBox[{"bb", ",", RowBox[{"Length", "[", "basis2", "]"}]}], "}"}]}], "]"}], ",", RowBox[{"{", RowBox[{"cc", ",", RowBox[{"Length", "[", "basis3", "]"}]}], "}"}]}], "]"}], ";", " ", RowBox[{"Print", "[", "\"\\"", "]"}]}]}], "\n", "]"}]}], "\n", "\t\t"}]}]], "Input", CellChangeTimes->{{3.4031292666792088`*^9, 3.403129269553399*^9}, { 3.4556255155888157`*^9, 3.455625520058263*^9}, 3.455637136785857*^9}], Cell[BoxData[ RowBox[{ RowBox[{"TestJacobi", "[", RowBox[{ "lb_", ",", "hRules_", ",", "basis1_", ",", "basis2_", ",", "basis3_"}], "]"}], " ", ":=", RowBox[{"TestJacobiReturn", "[", RowBox[{"lb", ",", "hRules", ",", "basis1", ",", "basis2", ",", "basis3"}], "]"}]}]], "Input", CellChangeTimes->{{3.4556373546536417`*^9, 3.4556373675479307`*^9}}], Cell[BoxData[ RowBox[{"\n", RowBox[{ RowBox[{ RowBox[{"TestJacobiReturn", "[", RowBox[{ "lb_", ",", "hRules_", ",", "basis1_", ",", "basis2_", ",", "basis3_"}], "]"}], " ", ":=", " ", RowBox[{"Block", "[", RowBox[{ RowBox[{"{", RowBox[{ "aa", ",", "bb", ",", "cc", ",", "temp", ",", "ttemp", ",", " ", "ret"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"ret", "=", RowBox[{"{", "}"}]}], ";", "\n", "\t\t", RowBox[{"Do", "[", RowBox[{ RowBox[{"Do", "[", RowBox[{ RowBox[{"Do", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"temp", "=", RowBox[{"jacobiRelations", "[", RowBox[{"lb", ",", "hRules", ",", RowBox[{"basis1", "[", RowBox[{"[", "aa", "]"}], "]"}], ",", RowBox[{"basis2", "[", RowBox[{"[", "bb", "]"}], "]"}], ",", RowBox[{"basis3", "[", RowBox[{"[", "cc", "]"}], "]"}]}], "]"}]}], ";", "\n", "\t\t\t\t", RowBox[{"If", "[", RowBox[{ RowBox[{ RowBox[{"(", RowBox[{"temp", "\[Equal]", RowBox[{"{", "0", "}"}]}], ")"}], "||", RowBox[{"(", RowBox[{"temp", "\[Equal]", "0"}], ")"}]}], ",", RowBox[{"ttemp", "=", "False"}], ",", RowBox[{"ttemp", "=", "True"}], ",", RowBox[{"ttemp", "=", "True"}]}], "]"}], ";", "\n", "\t\t\t\t", RowBox[{"If", "[", RowBox[{"ttemp", ",", RowBox[{"ret", "=", RowBox[{"Append", "[", RowBox[{"ret", ",", " ", RowBox[{"{", RowBox[{ RowBox[{"basis1", "[", RowBox[{"[", "aa", "]"}], "]"}], ",", RowBox[{"basis2", "[", RowBox[{"[", "bb", "]"}], "]"}], ",", RowBox[{"basis3", "[", RowBox[{"[", "cc", "]"}], "]"}], ",", "temp"}], "}"}]}], "]"}]}]}], "]"}]}], ",", "\n", "\t\t", RowBox[{"{", RowBox[{"aa", ",", RowBox[{"Length", "[", "basis1", "]"}]}], "}"}]}], "]"}], ",", RowBox[{"{", RowBox[{"bb", ",", RowBox[{"Length", "[", "basis2", "]"}]}], "}"}]}], "]"}], ",", RowBox[{"{", RowBox[{"cc", ",", RowBox[{"Length", "[", "basis3", "]"}]}], "}"}]}], "]"}], ";", " ", "\[IndentingNewLine]", RowBox[{"Return", "[", "ret", "]"}], ";"}]}], "\n", "]"}]}], "\n", "\t\t"}]}]], "Input", CellChangeTimes->{{3.455625575645821*^9, 3.455625587925049*^9}, { 3.455625618299086*^9, 3.4556256383520913`*^9}, {3.455625673017557*^9, 3.4556257585281076`*^9}, {3.4556367833585176`*^9, 3.455636839147096*^9}, { 3.455636893482529*^9, 3.4556369378119617`*^9}}] }, Open ]], Cell[CellGroupData[{ Cell["Number of Casimirs", "Section"], Cell[TextData[{ "This section computes the number of Casimirs using the rank of the algebra. \ Let ", Cell[BoxData[ FormBox[ RowBox[{ RowBox[{"[", RowBox[{ SubscriptBox["X", "a"], ",", SubscriptBox["X", "b"]}], "]"}], "=", RowBox[{ SubsuperscriptBox["C", RowBox[{"a", ",", "b"}], "c"], SubscriptBox["X", "c"]}]}], TraditionalForm]]], ". Then the adjoint representation is the matrix ", Cell[BoxData[ FormBox[ RowBox[{ StyleBox[ SubsuperscriptBox["adj", "a", "c"], FontSlant->"Italic"], "=", RowBox[{ SubsuperscriptBox["C", RowBox[{"a", ",", "b"}], "c"], SubscriptBox["X", "b"], " "}]}], TraditionalForm]]], " rank of the number of casimirs is ", Cell[BoxData[ FormBox[ RowBox[{"N", "-", RowBox[{"rank", "(", StyleBox["adj", FontSlant->"Italic"], ")"}]}], TraditionalForm]]], "where ", Cell[BoxData[ FormBox["N", TraditionalForm]]], " is the dimension of the algebra." }], "Text"], Cell[TextData[{ "In the code, ", Cell[BoxData[ FormBox[ StyleBox["nn", FontSlant->"Italic"], TraditionalForm]]], " is the dimension of the algebra, ", Cell[BoxData[ FormBox[ StyleBox["mm", FontSlant->"Italic"], TraditionalForm]]], " is the matrix ", Cell[BoxData[ FormBox[ RowBox[{ SubsuperscriptBox["C", RowBox[{"a", ",", "b"}], "c"], SubscriptBox["X", "c"]}], TraditionalForm]]], " , ", Cell[BoxData[ FormBox[ StyleBox["cc", FontSlant->"Italic"], TraditionalForm]]], " are the structure constants amd ", Cell[BoxData[ FormBox[ StyleBox["mm1", FontSlant->"Italic"], TraditionalForm]]], " is the adjoint" }], "Text"], Cell[BoxData[""], "Input"], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"nCasimir", "[", RowBox[{"l_", ",", "basis_"}], "]"}], ":=", RowBox[{"Module", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{"{", RowBox[{"nn", ",", "cc", ",", "mm"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"nn", "=", RowBox[{"Length", "[", "basis", "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"mm", "=", RowBox[{"Table", "[", RowBox[{ RowBox[{"l", "[", RowBox[{ RowBox[{"basis", "[", RowBox[{"[", "i", "]"}], "]"}], ",", RowBox[{"basis", "[", RowBox[{"[", "j", "]"}], " ", "]"}]}], "]"}], ",", RowBox[{"{", RowBox[{"i", ",", "1", ",", "nn"}], "}"}], ",", RowBox[{"{", RowBox[{"j", ",", "1", ",", "nn"}], "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"cc", "=", " ", RowBox[{"Table", "[", RowBox[{ RowBox[{"Coefficient", "[", RowBox[{ RowBox[{"mm", "[", RowBox[{"[", RowBox[{"i", ",", "j"}], "]"}], "]"}], ",", RowBox[{"basis", "[", RowBox[{"[", "k", "]"}], "]"}]}], "]"}], ",", RowBox[{"{", RowBox[{"i", ",", "1", ",", "nn"}], "}"}], ",", RowBox[{"{", RowBox[{"j", ",", "1", ",", "nn"}], "}"}], ",", RowBox[{"{", RowBox[{"k", ",", "1", ",", "nn"}], "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"mm1", "=", RowBox[{"Table", "[", RowBox[{ RowBox[{"Sum", "[", RowBox[{ RowBox[{ RowBox[{"cc", "[", RowBox[{"[", RowBox[{"i", ",", "j", ",", "k"}], "]"}], "]"}], RowBox[{"basis", "[", RowBox[{"[", "j", "]"}], "]"}]}], ",", RowBox[{"{", RowBox[{"j", ",", "1", ",", "nn"}], "}"}]}], "]"}], ",", RowBox[{"{", RowBox[{"i", ",", "1", ",", "nn"}], "}"}], ",", RowBox[{"{", RowBox[{"k", ",", "1", ",", "nn"}], "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"nn", "-", RowBox[{"MatrixRank", "[", "mm1", "]"}]}]}]}], "\[IndentingNewLine]", "]"}]}], ";"}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"nCasimir", "[", RowBox[{"l_", ",", "basis_"}], "]"}], ":=", RowBox[{"Module", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{"{", "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"nn", "=", RowBox[{"Length", "[", "basis", "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"mm", "=", RowBox[{"Table", "[", RowBox[{ RowBox[{"l", "[", RowBox[{ RowBox[{"basis", "[", RowBox[{"[", "i", "]"}], "]"}], ",", RowBox[{"basis", "[", RowBox[{"[", "j", "]"}], " ", "]"}]}], "]"}], ",", RowBox[{"{", RowBox[{"i", ",", "1", ",", "nn"}], "}"}], ",", RowBox[{"{", RowBox[{"j", ",", "1", ",", "nn"}], "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"cc", "=", " ", RowBox[{"Table", "[", RowBox[{ RowBox[{"Coefficient", "[", RowBox[{ RowBox[{"mm", "[", RowBox[{"[", RowBox[{"i", ",", "j"}], "]"}], "]"}], ",", RowBox[{"basis", "[", RowBox[{"[", "k", "]"}], "]"}]}], "]"}], ",", RowBox[{"{", RowBox[{"i", ",", "1", ",", "nn"}], "}"}], ",", RowBox[{"{", RowBox[{"j", ",", "1", ",", "nn"}], "}"}], ",", RowBox[{"{", RowBox[{"k", ",", "1", ",", "nn"}], "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"mm1", "=", RowBox[{"Table", "[", RowBox[{ RowBox[{"Sum", "[", RowBox[{ RowBox[{ RowBox[{"cc", "[", RowBox[{"[", RowBox[{"i", ",", "j", ",", "k"}], "]"}], "]"}], RowBox[{"basis", "[", RowBox[{"[", "j", "]"}], "]"}]}], ",", RowBox[{"{", RowBox[{"j", ",", "1", ",", "nn"}], "}"}]}], "]"}], ",", RowBox[{"{", RowBox[{"i", ",", "1", ",", "nn"}], "}"}], ",", RowBox[{"{", RowBox[{"k", ",", "1", ",", "nn"}], "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"nn", "-", RowBox[{"MatrixRank", "[", "mm1", "]"}]}]}]}], "\[IndentingNewLine]", "]"}]}], ";"}]], "Input"] }, Closed]], Cell[CellGroupData[{ Cell["Functions for general Casimir Search", "Section"], Cell[CellGroupData[{ Cell["Generate Monomial Basis", "Subsection"], Cell[BoxData[ RowBox[{ RowBox[{"cRules", " ", "=", "\n", RowBox[{"{", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"(", RowBox[{"a__", "\[CenterDot]", "b__"}], " ", ")"}], "\[RuleDelayed]", " ", RowBox[{"a", ".", "b"}]}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"(", RowBox[{"a__", "\[CenterDot]", "b__"}], " ", ")"}], ".", "c___"}], "\[RuleDelayed]", RowBox[{"a", ".", "b", ".", "c"}]}], ",", "\n", "\t", RowBox[{ RowBox[{"a___", "\[CenterDot]", RowBox[{"(", RowBox[{"b_", "\[CenterDot]", "c_"}], ")"}]}], ":>", RowBox[{ RowBox[{"(", RowBox[{"a", "\[CenterDot]", "b"}], ")"}], "\[CenterDot]", "c"}]}], ",", "\n", "\t", RowBox[{ RowBox[{"a_", "\[CenterDot]", RowBox[{"(", RowBox[{"b_", "\[CenterDot]", "c_"}], ")"}], "\[CenterDot]", "d_"}], ":>", RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"(", RowBox[{"a", "\[CenterDot]", "b"}], ")"}], "\[CenterDot]", "c"}], ")"}], "\[CenterDot]", "d"}]}], ",", "\n", "\t", RowBox[{ RowBox[{"a_", "\[CenterDot]", RowBox[{"(", RowBox[{"b_", "\[CenterDot]", "c_"}], ")"}], "\[CenterDot]", RowBox[{"(", RowBox[{"d_", "\[CenterDot]", "e_"}], ")"}], "\[CenterDot]", "f_"}], ":>", RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"(", RowBox[{"a", "\[CenterDot]", "b"}], ")"}], "\[CenterDot]", "c"}], ")"}], "\[CenterDot]", "d"}], ")"}], "\[CenterDot]", "e"}], ")"}], "\[CenterDot]", "f"}]}]}], "\n", "}"}]}], ";"}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{"orderedJMonomialRules", "=", RowBox[{"{", "\[IndentingNewLine]", RowBox[{ RowBox[{ SubscriptBox["J_", RowBox[{"a_", ",", "b_"}]], "\[RuleDelayed]", RowBox[{ SubscriptBox["J", RowBox[{"b", ",", "a"}]], "/;", " ", RowBox[{"!", RowBox[{"OrderedQ", "[", RowBox[{"{", RowBox[{"a", ",", "b"}], "}"}], "]"}]}]}]}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"A__", "\[CenterDot]", SubscriptBox["J_", RowBox[{"a_", ",", "b_"}]], "\[CenterDot]", "B__"}], "\[RuleDelayed]", RowBox[{ RowBox[{"A", "\[CenterDot]", SubscriptBox["J", RowBox[{"b", ",", "a"}]], "\[CenterDot]", "B"}], "/;", " ", RowBox[{"!", RowBox[{"OrderedQ", "[", RowBox[{"{", RowBox[{"a", ",", "b"}], "}"}], "]"}]}]}]}]}], "\[IndentingNewLine]", "}"}]}], ";"}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{"exponentRules", "=", RowBox[{"{", "\[IndentingNewLine]", RowBox[{ RowBox[{ SuperscriptBox["A_", RowBox[{" ", "2"}]], "\[RuleDelayed]", RowBox[{"A", "\[CenterDot]", "A"}]}], ",", "\[IndentingNewLine]", RowBox[{ SuperscriptBox["A_", RowBox[{" ", "n_"}]], " ", "\[RuleDelayed]", RowBox[{"A", "\[CenterDot]", SuperscriptBox["A", RowBox[{"n", "-", "1"}]]}]}]}], "\[IndentingNewLine]", "}"}]}], ";"}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{"sUnion", "[", "A_", "]"}], ":=", RowBox[{"Module", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{"{", "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"Return", "[", RowBox[{"Union", "[", RowBox[{"Simplify", "[", RowBox[{"Flatten", "[", "A", "]"}], "]"}], "]"}], "]"}], ";"}]}], "\[IndentingNewLine]", "]"}]}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"cDot", "[", "A_", "]"}], ":=", RowBox[{ RowBox[{ RowBox[{"A", "//.", " ", RowBox[{"{", RowBox[{"Times", "\[RuleDelayed]", "CenterDot"}], "}"}]}], "//.", "exponentRules"}], "//.", "cRules"}]}], ";"}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"basisMonomials", " ", "[", RowBox[{"bi0_", ",", "bi1_", ",", "bi2_"}], "]"}], " ", ":=", " ", RowBox[{"Module", " ", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{"{", "res", "}"}], ",", " ", "\[IndentingNewLine]", RowBox[{ RowBox[{"res", " ", "=", " ", RowBox[{"sUnion", "[", RowBox[{"{", RowBox[{ RowBox[{"Outer", "[", RowBox[{"Times", ",", "bi0", ",", "bi0"}], "]"}], ",", RowBox[{"Outer", "[", RowBox[{"Times", ",", "bi1", ",", "bi1"}], "]"}], ",", RowBox[{"Outer", "[", RowBox[{"Times", ",", "bi2", ",", "bi2"}], "]"}]}], "}"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"Return", "[", "res", "]"}], ";"}]}], "\[IndentingNewLine]", "]"}]}], ";"}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"b2Monomials", " ", "[", RowBox[{"bi0_", ",", "bi1_", ",", "bi2_"}], "]"}], " ", ":=", " ", RowBox[{"Module", " ", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{"{", "res", "}"}], ",", " ", "\[IndentingNewLine]", RowBox[{ RowBox[{"res1", " ", "=", RowBox[{"sUnion", "[", RowBox[{"{", RowBox[{"bi0", ",", RowBox[{"basisMonomials", "[", RowBox[{"bi0", ",", "bi1", ",", "bi2"}], "]"}]}], "}"}], "]"}]}], ";", " ", "\[IndentingNewLine]", RowBox[{"Return", "[", "res1", "]"}], ";"}]}], "\[IndentingNewLine]", "]"}]}], ";"}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"basis2Monomials", "[", RowBox[{"bi0_", ",", "bi1_", ",", "bi2_"}], "]"}], " ", ":=", " ", RowBox[{"Module", " ", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{"{", "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"Return", "[", RowBox[{"cDot", "[", RowBox[{"b2Monomials", "[", RowBox[{"bi0", ",", "bi1", ",", "bi2"}], "]"}], "]"}], "]"}], ";"}]}], "\[IndentingNewLine]", "]"}]}], ";"}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"b3Monomials", "[", RowBox[{"bi0_", ",", "bi1_", ",", "bi2_"}], "]"}], " ", ":=", " ", RowBox[{"Module", " ", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{"{", RowBox[{"bb2", ",", "bb3"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"bb2", "=", RowBox[{"b2Monomials", "[", RowBox[{"bi0", ",", "bi1", ",", "bi2"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"bb3", "=", RowBox[{"sUnion", "[", RowBox[{"{", RowBox[{"bi0", ",", "bb2", ",", RowBox[{"Outer", "[", RowBox[{"Times", ",", "bi0", ",", "bb2"}], "]"}], ",", " ", RowBox[{"Outer", "[", RowBox[{"Times", ",", RowBox[{"Outer", "[", RowBox[{"Times", ",", "bi2", ",", RowBox[{ RowBox[{"bi2", "/.", RowBox[{"{", RowBox[{"b", "\[RuleDelayed]", "c"}], "}"}]}], "/.", RowBox[{"{", RowBox[{"a", "\[RuleDelayed]", "b"}], "}"}]}]}], "]"}], ",", RowBox[{ RowBox[{"bi2", "/.", RowBox[{"{", RowBox[{"a", "\[RuleDelayed]", "c"}], "}"}]}], "/.", RowBox[{"{", RowBox[{"b", "\[RuleDelayed]", "a"}], "}"}]}]}], "]"}]}], "}"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"Return", "[", "bb3", "]"}], ";"}]}], "\[IndentingNewLine]", "]"}]}], ";"}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"basis3Monomials", "[", RowBox[{"bi0_", ",", "bi1_", ",", "bi2_"}], "]"}], " ", ":=", " ", RowBox[{"Module", " ", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{"{", "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"Return", "[", RowBox[{"cDot", "[", RowBox[{"b3Monomials", "[", RowBox[{"bi0", ",", "bi1", ",", "bi2"}], "]"}], "]"}], "]"}], ";"}]}], "\[IndentingNewLine]", "]"}]}], ";"}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"b4Monomials", "[", RowBox[{"bi0_", ",", "bi1_", ",", "bi2_"}], "]"}], " ", ":=", " ", RowBox[{"Module", " ", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{"{", RowBox[{"bb2", ",", "bb3", ",", "bb4"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"bb2", "=", RowBox[{"b2Monomials", "[", RowBox[{"bi0", ",", "bi1", ",", "bi2"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"bb3", "=", RowBox[{"b3Monomials", "[", RowBox[{"bi0", ",", "bi1", ",", "bi2"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"bb3", "=", RowBox[{"sUnion", "[", RowBox[{"{", RowBox[{"bi0", ",", "bb2", ",", "bb3", ",", " ", RowBox[{"Outer", "[", RowBox[{"Times", ",", "bi0", ",", "bb3"}], "]"}], ",", RowBox[{"Outer", "[", RowBox[{"Times", ",", "bb2", ",", RowBox[{"bb2", "/.", RowBox[{"{", RowBox[{ RowBox[{"a", "\[RuleDelayed]", "c"}], ",", RowBox[{"b", "\[RuleDelayed]", "d"}]}], "}"}]}]}], "]"}], ",", " ", RowBox[{"Outer", "[", RowBox[{"Times", ",", RowBox[{"Outer", "[", RowBox[{"Times", ",", RowBox[{"Outer", "[", RowBox[{"Times", ",", "bi2", ",", RowBox[{ RowBox[{"bi2", "/.", RowBox[{"{", RowBox[{"b", "\[RuleDelayed]", "c"}], "}"}]}], "/.", RowBox[{"{", RowBox[{"a", "\[RuleDelayed]", "b"}], "}"}]}]}], "]"}], ",", RowBox[{"bi2", "/.", RowBox[{"{", RowBox[{ RowBox[{"a", "\[RuleDelayed]", "c"}], ",", RowBox[{"b", "\[RuleDelayed]", "d"}]}], "}"}]}]}], "]"}], ",", RowBox[{ RowBox[{"bi2", "/.", RowBox[{"{", RowBox[{"a", "\[RuleDelayed]", "d"}], "}"}]}], "/.", RowBox[{"{", RowBox[{"b", "\[RuleDelayed]", "a"}], "}"}]}]}], "]"}]}], "}"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"Return", "[", "bb3", "]"}], ";"}]}], "\[IndentingNewLine]", "]"}]}], ";"}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"basis4Monomials", "[", RowBox[{"bi0_", ",", "bi1_", ",", "bi2_"}], "]"}], " ", ":=", " ", RowBox[{"cDot", "[", RowBox[{"b4Monomials", "[", RowBox[{"bi0", ",", "bi1", ",", "bi2"}], "]"}], "\[IndentingNewLine]", "]"}]}], ";"}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"b5Monomials", "[", RowBox[{"bi0_", ",", "bi1_", ",", "bi2_"}], "]"}], " ", ":=", " ", RowBox[{"Module", " ", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{"{", RowBox[{"bb2", ",", "bb3", ",", "bb4", ",", "bb5"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"bb2", "=", RowBox[{"b2Monomials", "[", RowBox[{"bi0", ",", "bi1", ",", "bi2"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"bb3", "=", RowBox[{"b3Monomials", "[", RowBox[{"bi0", ",", "bi1", ",", "bi2"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"bb4", "=", RowBox[{"b4Monomials", "[", RowBox[{"bi0", ",", "bi1", ",", "bi2"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"bb5", "=", RowBox[{"sUnion", "[", RowBox[{"{", RowBox[{"bi0", ",", "bb2", ",", "bb3", ",", "bb4", ",", " ", RowBox[{"Outer", "[", RowBox[{"Times", ",", "bi0", ",", "bb4"}], "]"}]}], "}"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"Return", "[", "bb5", "]"}], ";"}]}], "\[IndentingNewLine]", "]"}]}], ";"}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"b6Monomials", "[", RowBox[{"bi0_", ",", "bi1_", ",", "bi2_"}], "]"}], " ", ":=", " ", RowBox[{"Module", " ", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{"{", RowBox[{"bb2", ",", "bb3", ",", "bb4", ",", "bb5", ",", "bb6"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"bb2", "=", RowBox[{"b2Monomials", "[", RowBox[{"bi0", ",", "bi1", ",", "bi2"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"bb3", "=", RowBox[{"b3Monomials", "[", RowBox[{"bi0", ",", "bi1", ",", "bi2"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"bb4", "=", RowBox[{"b4Monomials", "[", RowBox[{"bi0", ",", "bi1", ",", "bi2"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"bb5", "=", RowBox[{"b4Monomials", "[", RowBox[{"bi0", ",", "bi1", ",", "bi2"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"bb6", "=", RowBox[{"sUnion", "[", RowBox[{"{", RowBox[{ "bi0", ",", "bb2", ",", "bb3", ",", "bb4", ",", "bb5", ",", " ", RowBox[{"Outer", "[", RowBox[{"Times", ",", "bi0", ",", "bb5"}], "]"}]}], "}"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"Return", "[", "bb6", "]"}], ";"}]}], "\[IndentingNewLine]", "]"}]}], ";"}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"b7Monomials", "[", RowBox[{"bi0_", ",", "bi1_", ",", "bi2_"}], "]"}], " ", ":=", " ", RowBox[{"Module", " ", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{"{", RowBox[{"bb2", ",", "bb3", ",", "bb4", ",", "bb5", ",", "bb6"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"bb2", "=", RowBox[{"b2Monomials", "[", RowBox[{"bi0", ",", "bi1", ",", "bi2"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"bb3", "=", RowBox[{"b3Monomials", "[", RowBox[{"bi0", ",", "bi1", ",", "bi2"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"bb4", "=", RowBox[{"b4Monomials", "[", RowBox[{"bi0", ",", "bi1", ",", "bi2"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"bb5", "=", RowBox[{"b4Monomials", "[", RowBox[{"bi0", ",", "bi1", ",", "bi2"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"bb6", "=", RowBox[{"b6Monomials", "[", RowBox[{"bi0", ",", "bi1", ",", "bi2"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"bb7", "=", RowBox[{"sUnion", "[", RowBox[{"{", RowBox[{ "bi0", ",", "bb2", ",", "bb3", ",", "bb4", ",", "bb5", ",", "bb6", ",", " ", RowBox[{"Outer", "[", RowBox[{"Times", ",", "bi0", ",", "bb6"}], "]"}]}], "}"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"Return", "[", "bb6", "]"}], ";"}]}], "\[IndentingNewLine]", "]"}]}], ";"}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"b8Monomials", "[", RowBox[{"bi0_", ",", "bi1_", ",", "bi2_"}], "]"}], " ", ":=", " ", RowBox[{"Module", " ", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{"{", RowBox[{"bb2", ",", "bb3", ",", "bb4", ",", "bb5", ",", "bb6"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"bb2", "=", RowBox[{"b2Monomials", "[", RowBox[{"bi0", ",", "bi1", ",", "bi2"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"bb3", "=", RowBox[{"b3Monomials", "[", RowBox[{"bi0", ",", "bi1", ",", "bi2"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"bb4", "=", RowBox[{"b4Monomials", "[", RowBox[{"bi0", ",", "bi1", ",", "bi2"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"bb5", "=", RowBox[{"b4Monomials", "[", RowBox[{"bi0", ",", "bi1", ",", "bi2"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"bb6", "=", RowBox[{"b6Monomials", "[", RowBox[{"bi0", ",", "bi1", ",", "bi2"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"bb7", "=", RowBox[{"b6Monomials", "[", RowBox[{"bi0", ",", "bi1", ",", "bi2"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"bb8", "=", RowBox[{"sUnion", "[", RowBox[{"{", RowBox[{ "bi0", ",", "bb2", ",", "bb3", ",", "bb4", ",", "bb5", ",", "bb6", ",", "bb7", ",", " ", RowBox[{"Outer", "[", RowBox[{"Times", ",", "bi0", ",", "bb7"}], "]"}]}], "}"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"Return", "[", "bb6", "]"}], ";"}]}], "\[IndentingNewLine]", "]"}]}], ";"}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"basis5Monomials", "[", RowBox[{"bi0_", ",", "bi1_", ",", "bi2_"}], "]"}], " ", ":=", " ", RowBox[{"cDot", "[", RowBox[{"b5Monomials", "[", RowBox[{"bi0", ",", "bi1", ",", "bi2"}], "]"}], "\[IndentingNewLine]", "]"}]}], ";"}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"basis6Monomials", "[", RowBox[{"bi0_", ",", "bi1_", ",", "bi2_"}], "]"}], " ", ":=", " ", RowBox[{"cDot", "[", RowBox[{"b6Monomials", "[", RowBox[{"bi0", ",", "bi1", ",", "bi2"}], "]"}], "\[IndentingNewLine]", "]"}]}], ";"}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"basis7Monomials", "[", RowBox[{"bi0_", ",", "bi1_", ",", "bi2_"}], "]"}], " ", ":=", " ", RowBox[{"cDot", "[", RowBox[{"b7Monomials", "[", RowBox[{"bi0", ",", "bi1", ",", "bi2"}], "]"}], "\[IndentingNewLine]", "]"}]}], ";"}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"basis8Monomials", "[", RowBox[{"bi0_", ",", "bi1_", ",", "bi2_"}], "]"}], " ", ":=", " ", RowBox[{"cDot", "[", RowBox[{"b8Monomials", "[", RowBox[{"bi0", ",", "bi1", ",", "bi2"}], "]"}], "\[IndentingNewLine]", "]"}]}], ";"}]], "Input"] }, Open ]], Cell[CellGroupData[{ Cell["Utiltities to Solve for the Casimirs", "Subsection"], Cell[TextData[{ "\n", StyleBox["parseGenerators", FontSlant->"Italic"], " takes an expression ", Cell[BoxData[ FormBox["C", TraditionalForm]]], " and parses it into a list of monomials that are a basis of the enveloping \ algebra" }], "Text"], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"parseGenerators", "[", "C_", "]"}], ":=", RowBox[{"Module", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{"{", RowBox[{"rtemp", ",", "i", ",", "j"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"rtemp", "=", RowBox[{"{", "}"}]}], ";", "\[IndentingNewLine]", RowBox[{"Do", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{"If", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"LieGeneratorQ", "[", " ", RowBox[{"C", "[", RowBox[{"[", RowBox[{"i", ",", "1"}], "]"}], "]"}], " ", "]"}], "&&", RowBox[{"LieGeneratorQ", "[", " ", RowBox[{"C", "[", RowBox[{"[", RowBox[{"i", ",", RowBox[{"Length", "[", RowBox[{"C", "[", RowBox[{"[", "i", "]"}], "]"}], " ", "]"}]}], " ", "]"}], "]"}], " ", "]"}]}], ")"}], ",", "\[IndentingNewLine]", " ", RowBox[{"rtemp", "=", RowBox[{"Append", "[", RowBox[{"rtemp", ",", RowBox[{"C", "[", RowBox[{"[", "i", "]"}], "]"}]}], "]"}]}], ",", "\[IndentingNewLine]", RowBox[{"Do", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{"If", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{"LieGeneratorQ", "[", RowBox[{"C", "[", RowBox[{"[", RowBox[{"i", ",", "j"}], "]"}], "]"}], "]"}], ",", RowBox[{"rtemp", "=", RowBox[{"Append", "[", RowBox[{"rtemp", ",", RowBox[{"C", "[", RowBox[{"[", RowBox[{"i", ",", "j"}], "]"}], "]"}]}], "]"}]}]}], "\[IndentingNewLine]", "]"}], ",", RowBox[{"{", RowBox[{"j", ",", "1", ",", RowBox[{"Length", "[", RowBox[{"C", "[", RowBox[{"[", "i", "]"}], "]"}], "]"}]}], "}"}]}], "\[IndentingNewLine]", "]"}]}], "\[IndentingNewLine]", "]"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"i", ",", "1", ",", RowBox[{"Length", "[", "C", "]"}]}], "}"}]}], "\[IndentingNewLine]", "]"}], ";", "\[IndentingNewLine]", RowBox[{"Return", "[", RowBox[{"Union", "[", "rtemp", "]"}], "]"}], ";"}]}], "\[IndentingNewLine]", "]"}]}], ";"}]], "Input"], Cell[TextData[{ "\n", StyleBox["\[Nu]", FontSlant->"Italic"], "a creates a list of elements ", Cell[BoxData[ FormBox[ RowBox[{"{", RowBox[{ SubscriptBox["\[Nu]", "1"], ",", SubscriptBox["\[Nu]", "2"], ",", RowBox[{ RowBox[{"...", "..."}], SubscriptBox["\[Nu]", "n"]}]}], "}"}], TraditionalForm]]], " where ", Cell[BoxData[ FormBox["n", TraditionalForm]]], " is the length of ", Cell[BoxData[ FormBox["B", TraditionalForm]]], ". " }], "Text"], Cell[BoxData[ RowBox[{ RowBox[{"\[Nu]a", "[", "B_", "]"}], ":=", RowBox[{"Table", "[", RowBox[{ SubscriptBox["\[Nu]", "i"], ",", RowBox[{"{", RowBox[{"i", ",", RowBox[{"Length", "[", "B", "]"}]}], "}"}]}], "]"}]}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{"mSimplifyFbh", "[", "A_", "]"}], ":=", RowBox[{"SimplifyFbh", "[", RowBox[{"oIndices", "[", RowBox[{"SimplifyFbh", "[", RowBox[{"oIndices", "[", RowBox[{"SimplifyFbh", "[", RowBox[{"oIndices", "[", RowBox[{"SimplifyFbh", "[", RowBox[{"oIndices", "[", RowBox[{"SimplifyFbh", "[", RowBox[{"oIndices", "[", RowBox[{"SimplifyFbh", "[", RowBox[{"oIndices", "[", "A", "]"}], "]"}], "]"}], "]"}], "]"}], "]"}], "]"}], "]"}], "]"}], "]"}], "]"}], "]"}]}]], "Input"], Cell[TextData[{ "\n", StyleBox["LieEqn", FontSlant->"Italic"], " computes and simplifies the lie brackets ", StyleBox["l", FontSlant->"Italic"], " on the set ", StyleBox["B ", FontSlant->"Italic"], "using generators ", StyleBox["X", FontSlant->"Italic"], " , ", Cell[BoxData[ FormBox[ RowBox[{"l", "[", RowBox[{"B", ",", "X"}], "]"}], TraditionalForm]]] }], "Text"], Cell[BoxData[ RowBox[{ RowBox[{"LieEqn", "[", RowBox[{"l_", ",", "B_", ",", "X_"}], "]"}], ":=", RowBox[{"Outer", "[", RowBox[{"l", ",", "B", ",", "X"}], "]"}]}]], "Input"], Cell[TextData[{ StyleBox["gDot", FontSlant->"Italic"], " computes and simplifies the dot product ", Cell[BoxData[ FormBox[ RowBox[{ RowBox[{ SuperscriptBox["\[InvisiblePrefixScriptBase]", "t"], "B"}], "\[CenterDot]", "\[Nu]"}], TraditionalForm]]], " " }], "Text"], Cell[BoxData[ RowBox[{ RowBox[{"gDot", "[", RowBox[{"B_", ",", "\[Nu]_"}], "]"}], ":=", RowBox[{"Expand", "[", RowBox[{"Complement", "[", RowBox[{ RowBox[{"Union", "[", RowBox[{"Flatten", "[", RowBox[{ RowBox[{"Transpose", "[", "B", "]"}], ".", "\[Nu]"}], "]"}], "]"}], ",", RowBox[{"{", "0", "}"}]}], "]"}], "]"}]}]], "Input"], Cell[TextData[{ StyleBox["\[Nu]SystemSolve", FontSlant->"Italic"], " determines the solution (in terms of the ", Cell[BoxData[ FormBox[ SubscriptBox["\[Nu]", "A"], TraditionalForm]]], ") that solved ", Cell[BoxData[ FormBox[ RowBox[{ RowBox[{"l", "[", RowBox[{ RowBox[{ SubscriptBox["\[Nu]", "A"], SubscriptBox["P", "A"]}], ",", " ", SubscriptBox["P", "B"]}], "]"}], "=", "0"}], TraditionalForm]]], " where ", Cell[BoxData[ FormBox[ RowBox[{"P", "=", RowBox[{"{", SubscriptBox["P", "A"], "}"}]}], TraditionalForm]]], " are the ordered monomial basis of the enveloping algebra to a given order. " }], "Text"], Cell[BoxData[ RowBox[{ RowBox[{"\[Nu]tSystemSolve", "[", RowBox[{"\[Nu]P_", ",", "P_", ",", "\[Nu]_"}], "]"}], ":=", RowBox[{"Union", "[", RowBox[{"Flatten", "[", RowBox[{"Table", "[", RowBox[{ RowBox[{"Solve", "[", RowBox[{ RowBox[{ RowBox[{"Coefficient", "[", RowBox[{ RowBox[{"\[Nu]P", "[", RowBox[{"[", "i", "]"}], "]"}], ",", RowBox[{"P", "[", RowBox[{"[", "i", "]"}], "]"}]}], "]"}], "\[Equal]", "0"}], ",", "\[Nu]"}], "]"}], ",", RowBox[{"{", RowBox[{"i", ",", "1", ",", RowBox[{"Length", "[", "\[Nu]P", "]"}]}], "}"}]}], "]"}], "]"}], "]"}]}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{"\[Nu]SystemSolve", "[", RowBox[{"\[Nu]P_", ",", "P_", ",", "\[Nu]_"}], "]"}], ":=", RowBox[{"Flatten", "[", RowBox[{"Solve", "[", RowBox[{ RowBox[{"Flatten", "[", RowBox[{"Table", "[", RowBox[{ RowBox[{"Thread", "[", RowBox[{ RowBox[{"Coefficient", "[", RowBox[{ RowBox[{ "\[Nu]P", "\[LeftDoubleBracket]", "ii", "\[RightDoubleBracket]"}], ",", RowBox[{ "P", "\[LeftDoubleBracket]", "ii", "\[RightDoubleBracket]"}]}], "]"}], "\[Equal]", "0"}], "]"}], ",", RowBox[{"{", RowBox[{"ii", ",", "1", ",", RowBox[{"Length", "[", "\[Nu]P", "]"}]}], "}"}]}], "]"}], "]"}], ",", "\[Nu]"}], "]"}], "]"}]}]], "Input"] }, Open ]], Cell[CellGroupData[{ Cell["Solve Casimirs Function", "Subsection"], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"solveCasimirs", "[", RowBox[{ "l_", " ", ",", " ", "B1_", " ", ",", "basis_", " ", ",", " ", "CasSimplify_"}], " ", "]"}], " ", ":=", " ", RowBox[{"Module", " ", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{"{", "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"B2", "=", RowBox[{"CasSimplify", "[", RowBox[{"LieEqn", "[", RowBox[{"l", ",", "B1", ",", "basis"}], "]"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"B3", "=", RowBox[{"gDot", "[", RowBox[{"B2", ",", RowBox[{"\[Nu]a", "[", "B1", "]"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"B4", "=", RowBox[{"Table", "[", RowBox[{ RowBox[{"parseGenerators", "[", RowBox[{"B3", "[", RowBox[{"[", "ii", "]"}], "]"}], "]"}], ",", RowBox[{"{", RowBox[{"ii", ",", "1", ",", RowBox[{"Length", "[", "B3", "]"}]}], "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"\[Nu]SysRules", "=", RowBox[{"\[Nu]SystemSolve", "[", RowBox[{"B3", ",", "B4", ",", RowBox[{"\[Nu]a", "[", "B1", "]"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"CList", "=", RowBox[{"Union", "[", RowBox[{"Coefficient", "[", RowBox[{ RowBox[{"Expand", "[", RowBox[{"B1", ".", RowBox[{"(", RowBox[{ RowBox[{"\[Nu]a", "[", "B1", "]"}], "//.", "\[Nu]SysRules"}], ")"}]}], "]"}], ",", RowBox[{"\[Nu]a", "[", "B1", "]"}]}], "]"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"Return", "[", "CList", "]"}], ";"}]}], "\[IndentingNewLine]", "]"}]}], ";"}]], "Input"] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell["Index normalization functions", "Section"], Cell[CellGroupData[{ Cell["Index Rule work", "Subsection"], Cell[BoxData[ RowBox[{"Clear", "[", RowBox[{"orI", ",", "oIndices"}], "]"}]], "Input"], Cell[BoxData[ RowBox[{"SetAttributes", "[", RowBox[{"oIndices", ",", "Listable"}], "]"}]], "Input"], Cell[BoxData[ RowBox[{"SetAttributes", "[", RowBox[{"orI", ",", "Listable"}], "]"}]], "Input"], Cell[BoxData[ RowBox[{"SetAttributes", "[", RowBox[{"orIa", ",", "Listable"}], "]"}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{"ttparseIRule", "=", RowBox[{"{", RowBox[{ RowBox[{"A_", "\[CenterDot]", "B__"}], " ", "\[RuleDelayed]", RowBox[{"List", "[", RowBox[{"A", ",", "B"}], "]"}]}], "}"}]}], ";"}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{"tt1parseIRule", "=", RowBox[{"{", RowBox[{ SubscriptBox["A__", "a__"], "\[RuleDelayed]", RowBox[{"List", "[", "a", "]"}]}], "}"}]}], ";"}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"ddRule", "[", "bt_", "]"}], "=", RowBox[{"{", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"List", "[", RowBox[{"a___", ",", RowBox[{"{", RowBox[{"b_", ",", "b_"}], "}"}], ",", "d___"}], "]"}], "\[RuleDelayed]", RowBox[{ RowBox[{"List", "[", RowBox[{"a", ",", RowBox[{"{", RowBox[{"bt", ",", "bt"}], "}"}], ",", "d"}], "]"}], "/;", RowBox[{"OrderedQ", "[", RowBox[{"{", RowBox[{"b", ",", "l"}], "}"}], "]"}]}]}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"List", "[", RowBox[{"a___", ",", "b_", ",", "c___", ",", "b_", ",", "d___"}], "]"}], "\[RuleDelayed]", RowBox[{ RowBox[{"List", "[", RowBox[{"a", ",", "bt", ",", "c", ",", "bt", ",", "d"}], "]"}], "/;", RowBox[{"OrderedQ", "[", RowBox[{"{", RowBox[{"b", ",", "l"}], "}"}], "]"}]}]}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"List", "[", RowBox[{"a___", ",", RowBox[{"{", RowBox[{"b1___", ",", "b_", ",", "b2___"}], "}"}], ",", "c___", ",", RowBox[{"{", RowBox[{"b3___", ",", "b_", ",", "b4___"}], "}"}], ",", "d___"}], "]"}], "\[RuleDelayed]", RowBox[{ RowBox[{"List", "[", RowBox[{"a", ",", RowBox[{"{", RowBox[{"b1", ",", "bt", ",", "b2"}], "}"}], ",", "c", ",", RowBox[{"{", RowBox[{"b3", ",", "bt", ",", "b4"}], "}"}], ",", "d"}], "]"}], "/;", RowBox[{"OrderedQ", "[", RowBox[{"{", RowBox[{"b", ",", "l"}], "}"}], "]"}]}]}]}], "\[IndentingNewLine]", "}"}]}], ";"}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{"removebracketRule", "=", RowBox[{"{", RowBox[{ SubscriptBox["A__", RowBox[{"{", "b__", "}"}]], "\[RuleDelayed]", SubscriptBox["A", "b"]}], "}"}]}], ";"}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"repI", "[", "A__CenterDot", "]"}], ":=", RowBox[{ RowBox[{ RowBox[{"{", "A", "}"}], "//.", "ttparseIRule"}], "//.", "tt1parseIRule"}]}], ";"}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{"rrr", "[", "B__", "]"}], ":=", RowBox[{ RowBox[{ RowBox[{ RowBox[{ RowBox[{ RowBox[{ RowBox[{ RowBox[{ RowBox[{"repI", "[", "B", "]"}], "/.", RowBox[{"ddRule", "[", "m", "]"}]}], "/.", RowBox[{"ddRule", "[", "n", "]"}]}], "/.", RowBox[{"ddRule", "[", "p", "]"}]}], "/.", RowBox[{"ddRule", "[", "q", "]"}]}], "/.", RowBox[{"ddRule", "[", "r", "]"}]}], "/.", RowBox[{"ddRule", "[", "s", "]"}]}], "/.", RowBox[{"ddRule", "[", "t", "]"}]}], "/.", RowBox[{"ddRule", "[", "u", "]"}]}]}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{"dumIRules", "[", "zz2_", "]"}], ":=", RowBox[{"Union", "[", RowBox[{ RowBox[{"Inner", "[", RowBox[{"ff", ",", RowBox[{"Flatten", "[", RowBox[{"repI", "[", "zz2", "]"}], "]"}], " ", ",", RowBox[{"Flatten", "[", RowBox[{"rrr", "[", "zz2", "]"}], "]"}], ",", "List"}], "]"}], "/.", RowBox[{"{", RowBox[{"ff", "\[RuleDelayed]", "RuleDelayed"}], "}"}]}], "]"}]}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{"oInRules", "=", "\n", RowBox[{"{", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"oIn", "[", RowBox[{"x_", "+", "y_"}], "]"}], "\[RuleDelayed]", RowBox[{ RowBox[{"oIn", "[", "x", "]"}], "+", RowBox[{"oIn", "[", "y", "]"}]}]}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"oIn", "[", RowBox[{"a__", " ", "x_"}], "]"}], "\[RuleDelayed]", RowBox[{ RowBox[{"a", " ", RowBox[{"oIn", "[", "x", "]"}]}], "/;", RowBox[{"NotLieGeneratorQ", "[", "a", "]"}]}]}]}], "\n", "}"}]}], ";"}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{"orIa", "[", "A_", "]"}], ":=", RowBox[{"A", "/.", RowBox[{"dumIRules", "[", "A", "]"}]}]}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{"orI", "[", "A_", "]"}], ":=", RowBox[{ RowBox[{ RowBox[{"oIn", "[", "A", "]"}], "//.", "oInRules"}], "//.", RowBox[{"{", RowBox[{"oIn", "\[RuleDelayed]", "orIa"}], "}"}]}]}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{"o10Rule", "=", RowBox[{"{", RowBox[{ RowBox[{"m", "\[RuleDelayed]", "a"}], ",", RowBox[{"n", "\[RuleDelayed]", "b"}], ",", RowBox[{"p", "\[RuleDelayed]", "c"}], ",", RowBox[{"q", "\[RuleDelayed]", "d"}], ",", RowBox[{"r", "\[RuleDelayed]", "e"}], ",", RowBox[{"s", "\[RuleDelayed]", "f"}], ",", RowBox[{"t", "\[RuleDelayed]", "g"}], ",", RowBox[{"u", "\[RuleDelayed]", "h"}]}], "}"}]}], ";"}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{"oIndices", "[", "A_", "]"}], " ", ":=", " ", RowBox[{ RowBox[{"orI", "[", "A", "]"}], "/.", " ", "o10Rule"}]}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"abcI", "[", RowBox[{"B_", ",", "A_"}], "]"}], " ", ":=", " ", RowBox[{"A", "/.", RowBox[{"{", RowBox[{ RowBox[{"m", "\[RuleDelayed]", RowBox[{"B", "[", RowBox[{"[", "1", "]"}], "]"}]}], ",", RowBox[{"n", "\[RuleDelayed]", RowBox[{"B", "[", RowBox[{"[", "2", "]"}], "]"}]}], ",", RowBox[{"p", "\[RuleDelayed]", RowBox[{"B", "[", RowBox[{"[", "3", "]"}], "]"}]}], ",", RowBox[{"q", "\[RuleDelayed]", RowBox[{"B", "[", RowBox[{"[", "4", "]"}], "]"}]}], ",", RowBox[{"r", "\[RuleDelayed]", RowBox[{"B", "[", RowBox[{"[", "5", "]"}], "]"}]}], ",", RowBox[{"s", "\[RuleDelayed]", RowBox[{"B", "[", RowBox[{"[", "6", "]"}], "]"}]}], ",", RowBox[{"t", "\[RuleDelayed]", RowBox[{"B", "[", RowBox[{"[", "7", "]"}], "]"}]}], ",", RowBox[{"u", "\[RuleDelayed]", RowBox[{"B", "[", RowBox[{"[", "8", "]"}], "]"}]}]}], "}"}]}]}], ";"}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{"orderIndices", "[", "A_", "]"}], " ", ":=", " ", RowBox[{ RowBox[{ RowBox[{"orI", "[", RowBox[{"A", "//.", RowBox[{"{", RowBox[{"Times", "\[RuleDelayed]", "CenterDot"}], "}"}]}], "]"}], "/.", " ", "o10Rule"}], "//.", RowBox[{"{", RowBox[{"CenterDot", "\[RuleDelayed]", "Times"}], "}"}]}]}]], "Input", CellChangeTimes->{{3.4270646844394646`*^9, 3.427064714793111*^9}}] }, Open ]] }, Open ]] }, Open ]] }, WindowToolbars->{}, CellGrouping->Automatic, WindowSize->{929, 756}, WindowMargins->{{Automatic, 62}, {Automatic, 8}}, Visible->True, DockedCells->(FrontEndExecute[{ FrontEnd`NotebookApply[ FrontEnd`InputNotebook[], #, Placeholder]}]& ), PrintingCopies->1, PrintingPageRange->{1, Automatic}, PrivateNotebookOptions->{"ColorPalette"->{RGBColor, 128}}, ShowCellLabel->True, ShowCellTags->False, InputAliases->{"notation" -> RowBox[{"Notation", "[", RowBox[{ TagBox["\[SelectionPlaceholder]", "NotationTemplateTag"], " ", "\[DoubleLongLeftRightArrow]", " ", TagBox["\[Placeholder]", "NotationTemplateTag"]}], "]"}], "notation>" -> RowBox[{"Notation", "[", RowBox[{ TagBox["\[SelectionPlaceholder]", "NotationTemplateTag"], " ", "\[DoubleLongRightArrow]", " ", TagBox["\[Placeholder]", "NotationTemplateTag"]}], "]"}], "notation<" -> RowBox[{"Notation", "[", RowBox[{ TagBox["\[SelectionPlaceholder]", "NotationTemplateTag"], " ", "\[DoubleLongLeftArrow]", " ", TagBox["\[Placeholder]", "NotationTemplateTag"]}], "]"}], "symb" -> RowBox[{"Symbolize", "[", TagBox["\[SelectionPlaceholder]", "NotationTemplateTag"], "]"}], "infixnotation" -> RowBox[{"InfixNotation", "[", RowBox[{ TagBox["\[SelectionPlaceholder]", "NotationTemplateTag"], ",", "\[Placeholder]"}], "]"}], "addia" -> RowBox[{"AddInputAlias", "[", RowBox[{"\"\[SelectionPlaceholder]\"", "\[Rule]", TagBox["\[Placeholder]", "NotationTemplateTag"]}], "]"}], "pattwraper" -> TagBox["\[SelectionPlaceholder]", "NotationPatternTag"], "madeboxeswraper" -> TagBox["\[SelectionPlaceholder]", "NotationMadeBoxesTag"]}, RenderingOptions->{"ObjectDithering"->True, "RasterDithering"->False}, Magnification->1.25, FrontEndVersion->"7.0 for Microsoft Windows (32-bit) (February 18, 2009)", StyleDefinitions->Notebook[{ Cell[ CellGroupData[{ Cell["Style Definitions", "Subtitle"], Cell[ "Modify the definitions below to change the default appearance of all \ cells in a given style. Make modifications to any definition using commands \ in the Format menu.", "Text"], Cell[ CellGroupData[{ Cell["Style Environment Names", "Section"], Cell[ StyleData[All, "Working"], PageWidth -> WindowWidth, ScriptMinSize -> 9], Cell[ StyleData[All, "Presentation"], PageWidth -> WindowWidth, ScriptMinSize -> 12, FontSize -> 16], Cell[ StyleData[All, "Condensed"], PageWidth -> WindowWidth, CellBracketOptions -> {"Margins" -> {1, 1}, "Widths" -> {0, 5}}, ScriptMinSize -> 8, FontSize -> 11], Cell[ StyleData[All, "Printout"], PageWidth -> PaperWidth, ScriptMinSize -> 5, FontSize -> 10, PrivateFontOptions -> {"FontType" -> "Outline"}]}, Closed]], Cell[ CellGroupData[{ Cell["Notebook Options", "Section"], Cell[ "The options defined for the style below will be used at the \ Notebook level.", "Text"], Cell[ StyleData["Notebook"], PageHeaders -> {{ Cell[ TextData[{ CounterBox["Page"]}], "PageNumber"], None, Cell[ TextData[{ ValueBox["FileName"]}], "Header"]}, { Cell[ TextData[{ ValueBox["FileName"]}], "Header"], None, Cell[ TextData[{ CounterBox["Page"]}], "PageNumber"]}}, CellFrameLabelMargins -> 6, StyleMenuListing -> None]}, Closed]], Cell[ CellGroupData[{ Cell["Styles for Headings", "Section"], Cell[ CellGroupData[{ Cell[ StyleData["Title"], CellMargins -> {{12, Inherited}, {20, 40}}, CellGroupingRules -> {"TitleGrouping", 0}, PageBreakBelow -> False, CounterIncrements -> "Title", CounterAssignments -> {{"Section", 0}, {"Equation", 0}, { "Figure", 0}, {"Subtitle", 0}, {"Subsubtitle", 0}}, FontFamily -> "Helvetica", FontSize -> 36, FontWeight -> "Bold"], Cell[ StyleData["Title", "Presentation"], CellMargins -> {{24, 10}, {20, 40}}, LineSpacing -> {1, 0}, FontSize -> 44], Cell[ StyleData["Title", "Condensed"], CellMargins -> {{8, 10}, {4, 8}}, FontSize -> 20], Cell[ StyleData["Title", "Printout"], CellMargins -> {{2, 10}, {15, 30}}, FontSize -> 24]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["Subtitle"], CellMargins -> {{12, Inherited}, {10, 15}}, CellGroupingRules -> {"TitleGrouping", 10}, PageBreakBelow -> False, CounterIncrements -> "Subtitle", CounterAssignments -> {{"Section", 0}, {"Equation", 0}, { "Figure", 0}, {"Subsubtitle", 0}}, FontFamily -> "Helvetica", FontSize -> 24], Cell[ StyleData["Subtitle", "Presentation"], CellMargins -> {{24, 10}, {15, 20}}, LineSpacing -> {1, 0}, FontSize -> 36], Cell[ StyleData["Subtitle", "Condensed"], CellMargins -> {{8, 10}, {4, 4}}, FontSize -> 14], Cell[ StyleData["Subtitle", "Printout"], CellMargins -> {{2, 10}, {10, 15}}, FontSize -> 18]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["Subsubtitle"], CellMargins -> {{12, Inherited}, {10, 20}}, CellGroupingRules -> {"TitleGrouping", 20}, PageBreakBelow -> False, CounterIncrements -> "Subsubtitle", CounterAssignments -> {{"Section", 0}, {"Equation", 0}, { "Figure", 0}}, FontFamily -> "Helvetica", FontSize -> 14, FontSlant -> "Italic"], Cell[ StyleData["Subsubtitle", "Presentation"], CellMargins -> {{24, 10}, {10, 20}}, LineSpacing -> {1, 0}, FontSize -> 24], Cell[ StyleData["Subsubtitle", "Condensed"], CellMargins -> {{8, 10}, {8, 12}}, FontSize -> 12], Cell[ StyleData["Subsubtitle", "Printout"], CellMargins -> {{2, 10}, {8, 10}}, FontSize -> 14]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["Section"], CellDingbat -> "\[FilledSquare]", CellMargins -> {{25, Inherited}, {8, 24}}, CellGroupingRules -> {"SectionGrouping", 30}, PageBreakBelow -> False, CounterIncrements -> "Section", CounterAssignments -> {{"Subsection", 0}, {"Subsubsection", 0}}, FontFamily -> "Helvetica", FontSize -> 16, FontWeight -> "Bold"], Cell[ StyleData["Section", "Presentation"], CellMargins -> {{40, 10}, {11, 32}}, LineSpacing -> {1, 0}, FontSize -> 24], Cell[ StyleData["Section", "Condensed"], CellMargins -> {{18, Inherited}, {6, 12}}, FontSize -> 12], Cell[ StyleData["Section", "Printout"], CellMargins -> {{13, 0}, {7, 22}}, FontSize -> 14]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["Subsection"], CellDingbat -> "\[FilledSmallSquare]", CellMargins -> {{22, Inherited}, {8, 20}}, CellGroupingRules -> {"SectionGrouping", 40}, PageBreakBelow -> False, CounterIncrements -> "Subsection", CounterAssignments -> {{"Subsubsection", 0}}, FontSize -> 14, FontWeight -> "Bold"], Cell[ StyleData["Subsection", "Presentation"], CellMargins -> {{36, 10}, {11, 32}}, LineSpacing -> {1, 0}, FontSize -> 22], Cell[ StyleData["Subsection", "Condensed"], CellMargins -> {{16, Inherited}, {6, 12}}, FontSize -> 12], Cell[ StyleData["Subsection", "Printout"], CellMargins -> {{9, 0}, {7, 22}}, FontSize -> 12]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["Subsubsection"], CellDingbat -> "\[FilledSmallSquare]", CellMargins -> {{22, Inherited}, {8, 18}}, CellGroupingRules -> {"SectionGrouping", 50}, PageBreakBelow -> False, CounterIncrements -> "Subsubsection", FontWeight -> "Bold"], Cell[ StyleData["Subsubsection", "Presentation"], CellMargins -> {{34, 10}, {11, 26}}, LineSpacing -> {1, 0}, FontSize -> 18], Cell[ StyleData["Subsubsection", "Condensed"], CellMargins -> {{17, Inherited}, {6, 12}}, FontSize -> 10], Cell[ StyleData["Subsubsection", "Printout"], CellMargins -> {{9, 0}, {7, 14}}, FontSize -> 11]}, Closed]]}, Open]], Cell[ CellGroupData[{ Cell["Styles for Body Text", "Section"], Cell[ CellGroupData[{ Cell[ StyleData["Text"], CellMargins -> {{12, 10}, {7, 7}}, LineSpacing -> {1, 3}, CounterIncrements -> "Text"], Cell[ StyleData["Text", "Presentation"], CellMargins -> {{24, 10}, {10, 10}}, LineSpacing -> {1, 5}], Cell[ StyleData["Text", "Condensed"], CellMargins -> {{8, 10}, {6, 6}}, LineSpacing -> {1, 1}], Cell[ StyleData["Text", "Printout"], CellMargins -> {{2, 2}, {6, 6}}]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["SmallText"], CellMargins -> {{12, 10}, {6, 6}}, LineSpacing -> {1, 3}, CounterIncrements -> "SmallText", FontFamily -> "Helvetica", FontSize -> 9], Cell[ StyleData["SmallText", "Presentation"], CellMargins -> {{24, 10}, {8, 8}}, LineSpacing -> {1, 5}, FontSize -> 12], Cell[ StyleData["SmallText", "Condensed"], CellMargins -> {{8, 10}, {5, 5}}, LineSpacing -> {1, 2}, FontSize -> 9], Cell[ StyleData["SmallText", "Printout"], CellMargins -> {{2, 2}, {5, 5}}, FontSize -> 7]}, Closed]]}, Closed]], Cell[ CellGroupData[{ Cell["Styles for Input/Output", "Section"], Cell[ "The cells in this section define styles used for input and output \ to the kernel. Be careful when modifying, renaming, or removing these \ styles, because the front end associates special meanings with these style \ names.", "Text"], Cell[ CellGroupData[{ Cell[ StyleData["Input"], CellMargins -> {{45, 10}, {5, 7}}, Evaluatable -> True, CellGroupingRules -> "InputGrouping", CellHorizontalScrolling -> True, PageBreakWithin -> False, GroupPageBreakWithin -> False, CellLabelMargins -> {{11, Inherited}, {Inherited, Inherited}}, DefaultFormatType -> DefaultInputFormatType, AutoItalicWords -> {}, FormatType -> InputForm, ShowStringCharacters -> True, NumberMarks -> True, CounterIncrements -> "Input", FontWeight -> "Bold"], Cell[ StyleData["Input", "Presentation"], CellMargins -> {{72, Inherited}, {8, 10}}, LineSpacing -> {1, 0}], Cell[ StyleData["Input", "Condensed"], CellMargins -> {{40, 10}, {2, 3}}], Cell[ StyleData["Input", "Printout"], CellMargins -> {{39, 0}, {4, 6}}, FontSize -> 9]}, Closed]], Cell[ StyleData["InputOnly"], Evaluatable -> True, CellGroupingRules -> "InputGrouping", CellHorizontalScrolling -> True, DefaultFormatType -> DefaultInputFormatType, AutoItalicWords -> {}, FormatType -> InputForm, ShowStringCharacters -> True, NumberMarks -> True, CounterIncrements -> "Input", StyleMenuListing -> None, FontWeight -> "Bold"], Cell[ CellGroupData[{ Cell[ StyleData["Output"], CellMargins -> {{47, 10}, {7, 5}}, CellEditDuplicate -> True, CellGroupingRules -> "OutputGrouping", CellHorizontalScrolling -> True, PageBreakWithin -> False, GroupPageBreakWithin -> False, GeneratedCell -> True, CellAutoOverwrite -> True, CellLabelMargins -> {{11, Inherited}, {Inherited, Inherited}}, DefaultFormatType -> DefaultOutputFormatType, AutoItalicWords -> {}, FormatType -> InputForm, CounterIncrements -> "Output"], Cell[ StyleData["Output", "Presentation"], CellMargins -> {{72, Inherited}, {10, 8}}, LineSpacing -> {1, 0}], Cell[ StyleData["Output", "Condensed"], CellMargins -> {{41, Inherited}, {3, 2}}], Cell[ StyleData["Output", "Printout"], CellMargins -> {{39, 0}, {6, 4}}, FontSize -> 9]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["Message"], CellMargins -> {{45, Inherited}, {Inherited, Inherited}}, CellGroupingRules -> "OutputGrouping", PageBreakWithin -> False, GroupPageBreakWithin -> False, GeneratedCell -> True, CellAutoOverwrite -> True, ShowCellLabel -> False, CellLabelMargins -> {{11, Inherited}, {Inherited, Inherited}}, DefaultFormatType -> DefaultOutputFormatType, AutoItalicWords -> {}, FormatType -> InputForm, CounterIncrements -> "Message", StyleMenuListing -> None, FontColor -> RGBColor[0, 0, 1]], Cell[ StyleData["Message", "Presentation"], CellMargins -> {{72, Inherited}, {Inherited, Inherited}}, LineSpacing -> {1, 0}], Cell[ StyleData["Message", "Condensed"], CellMargins -> {{41, Inherited}, {Inherited, Inherited}}], Cell[ StyleData["Message", "Printout"], CellMargins -> {{39, Inherited}, {Inherited, Inherited}}, FontSize -> 8, FontColor -> GrayLevel[0]]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["Print"], CellMargins -> {{45, Inherited}, {Inherited, Inherited}}, CellGroupingRules -> "OutputGrouping", CellHorizontalScrolling -> True, PageBreakWithin -> False, GroupPageBreakWithin -> False, GeneratedCell -> True, CellAutoOverwrite -> True, ShowCellLabel -> False, CellLabelMargins -> {{11, Inherited}, { Inherited, Inherited}}, DefaultFormatType -> DefaultOutputFormatType, AutoItalicWords -> {}, FormatType -> InputForm, CounterIncrements -> "Print", StyleMenuListing -> None], Cell[ StyleData["Print", "Presentation"], CellMargins -> {{72, Inherited}, {Inherited, Inherited}}, LineSpacing -> {1, 0}], Cell[ StyleData["Print", "Condensed"], CellMargins -> {{41, Inherited}, {Inherited, Inherited}}], Cell[ StyleData["Print", "Printout"], CellMargins -> {{39, Inherited}, {Inherited, Inherited}}, FontSize -> 8]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["Graphics"], CellMargins -> {{4, Inherited}, {Inherited, Inherited}}, CellGroupingRules -> "GraphicsGrouping", CellHorizontalScrolling -> True, PageBreakWithin -> False, GeneratedCell -> True, CellAutoOverwrite -> True, ShowCellLabel -> False, DefaultFormatType -> DefaultOutputFormatType, FormatType -> InputForm, CounterIncrements -> "Graphics", ImageMargins -> {{43, Inherited}, {Inherited, 0}}, StyleMenuListing -> None], Cell[ StyleData["Graphics", "Presentation"], ImageMargins -> {{62, Inherited}, {Inherited, 0}}], Cell[ StyleData["Graphics", "Condensed"], ImageSize -> {175, 175}, ImageMargins -> {{38, Inherited}, {Inherited, 0}}], Cell[ StyleData["Graphics", "Printout"], ImageSize -> {250, 250}, ImageMargins -> {{30, Inherited}, {Inherited, 0}}, FontSize -> 9]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["CellLabel"], StyleMenuListing -> None, FontFamily -> "Helvetica", FontSize -> 9, FontColor -> RGBColor[0, 0, 1]], Cell[ StyleData["CellLabel", "Presentation"], FontSize -> 12], Cell[ StyleData["CellLabel", "Condensed"], FontSize -> 9], Cell[ StyleData["CellLabel", "Printout"], FontFamily -> "Courier", FontSize -> 8, FontSlant -> "Italic", FontColor -> GrayLevel[0]]}, Closed]]}, Closed]], Cell[ CellGroupData[{ Cell["Formulas and Programming", "Section"], Cell[ CellGroupData[{ Cell[ StyleData["InlineFormula"], CellMargins -> {{10, 4}, {0, 8}}, CellHorizontalScrolling -> True, ScriptLevel -> 1, SingleLetterItalics -> True], Cell[ StyleData["InlineFormula", "Presentation"], CellMargins -> {{24, 10}, {10, 10}}, LineSpacing -> {1, 5}], Cell[ StyleData["InlineFormula", "Condensed"], CellMargins -> {{8, 10}, {6, 6}}, LineSpacing -> {1, 1}], Cell[ StyleData["InlineFormula", "Printout"], CellMargins -> {{2, 0}, {6, 6}}]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["DisplayFormula"], CellMargins -> {{42, Inherited}, {Inherited, Inherited}}, CellHorizontalScrolling -> True, ScriptLevel -> 0, SingleLetterItalics -> True, StyleMenuListing -> None, UnderoverscriptBoxOptions -> {LimitsPositioning -> True}], Cell[ StyleData["DisplayFormula", "Presentation"], LineSpacing -> {1, 5}], Cell[ StyleData["DisplayFormula", "Condensed"], LineSpacing -> {1, 1}], Cell[ StyleData["DisplayFormula", "Printout"]]}, Closed]]}, Closed]], Cell[ CellGroupData[{ Cell["Styles for Headers and Footers", "Section"], Cell[ StyleData["Header"], CellMargins -> {{0, 0}, {4, 1}}, StyleMenuListing -> None, FontSize -> 10, FontSlant -> "Italic"], Cell[ StyleData["Footer"], CellMargins -> {{0, 0}, {0, 4}}, StyleMenuListing -> None, FontSize -> 9, FontSlant -> "Italic"], Cell[ StyleData["PageNumber"], CellMargins -> {{0, 0}, {4, 1}}, StyleMenuListing -> None, FontFamily -> "Times", FontSize -> 10]}, Closed]], Cell[ CellGroupData[{ Cell["Palette Styles", "Section"], Cell[ "The cells below define styles that define standard ButtonFunctions, \ for use in palette buttons.", "Text"], Cell[ StyleData["Paste"], StyleMenuListing -> None, ButtonStyleMenuListing -> Automatic, ButtonBoxOptions -> {ButtonFunction :> (FrontEndExecute[{ FrontEnd`NotebookApply[ FrontEnd`InputNotebook[], #, After]}]& )}], Cell[ StyleData["Evaluate"], StyleMenuListing -> None, ButtonStyleMenuListing -> Automatic, ButtonBoxOptions -> {ButtonFunction :> (FrontEndExecute[{ FrontEnd`NotebookApply[ FrontEnd`InputNotebook[], #, All], SelectionEvaluate[ FrontEnd`InputNotebook[], All]}]& )}], Cell[ StyleData["EvaluateCell"], StyleMenuListing -> None, ButtonStyleMenuListing -> Automatic, ButtonBoxOptions -> {ButtonFunction :> (FrontEndExecute[{ FrontEnd`NotebookApply[ FrontEnd`InputNotebook[], #, All], FrontEnd`SelectionMove[ FrontEnd`InputNotebook[], All, Cell, 1], FrontEnd`SelectionEvaluateCreateCell[ FrontEnd`InputNotebook[], All]}]& )}], Cell[ StyleData["CopyEvaluate"], StyleMenuListing -> None, ButtonStyleMenuListing -> Automatic, ButtonBoxOptions -> {ButtonFunction :> (FrontEndExecute[{ FrontEnd`SelectionCreateCell[ FrontEnd`InputNotebook[], All], FrontEnd`NotebookApply[ FrontEnd`InputNotebook[], #, All], FrontEnd`SelectionEvaluate[ FrontEnd`InputNotebook[], All]}]& )}], Cell[ StyleData["CopyEvaluateCell"], StyleMenuListing -> None, ButtonStyleMenuListing -> Automatic, ButtonBoxOptions -> {ButtonFunction :> (FrontEndExecute[{ FrontEnd`SelectionCreateCell[ FrontEnd`InputNotebook[], All], FrontEnd`NotebookApply[ FrontEnd`InputNotebook[], #, All], FrontEnd`SelectionEvaluateCreateCell[ FrontEnd`InputNotebook[], All]}]& )}]}, Closed]], Cell[ CellGroupData[{ Cell["Hyperlink Styles", "Section"], Cell[ "The cells below define styles useful for making hypertext \ ButtonBoxes. The \"Hyperlink\" style is for links within the same Notebook, \ or between Notebooks.", "Text"], Cell[ CellGroupData[{ Cell[ StyleData["Hyperlink"], StyleMenuListing -> None, ButtonStyleMenuListing -> Automatic, FontVariations -> {"Underline" -> True}, FontColor -> RGBColor[0, 0, 1], ButtonBoxOptions -> { Active -> True, ButtonFunction :> (FrontEndExecute[{ FrontEnd`NotebookLocate[#2]}]& ), ButtonNote -> ButtonData}], Cell[ StyleData["Hyperlink", "Presentation"]], Cell[ StyleData["Hyperlink", "Condensed"]], Cell[ StyleData["Hyperlink", "Printout"], FontVariations -> {"Underline" -> False}, FontColor -> GrayLevel[0]]}, Closed]], Cell[ "The following styles are for linking automatically to the on-line \ help system.", "Text"], Cell[ CellGroupData[{ Cell[ StyleData["MainBookLink"], StyleMenuListing -> None, ButtonStyleMenuListing -> Automatic, FontVariations -> {"Underline" -> True}, FontColor -> RGBColor[0, 0, 1], ButtonBoxOptions -> { Active -> True, Appearance -> {Automatic, None}, ButtonFunction :> (FrontEndExecute[{ FrontEnd`HelpBrowserLookup["MainBook", #]}]& )}], Cell[ StyleData["MainBookLink", "Presentation"]], Cell[ StyleData["MainBookLink", "Condensed"]], Cell[ StyleData["MainBookLink", "Printout"], FontVariations -> {"Underline" -> False}, FontColor -> GrayLevel[0]]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["AddOnsLink"], StyleMenuListing -> None, ButtonStyleMenuListing -> Automatic, FontFamily -> "Courier", FontVariations -> {"Underline" -> True}, FontColor -> RGBColor[0, 0, 1], ButtonBoxOptions -> { Active -> True, Appearance -> {Automatic, None}, ButtonFunction :> (FrontEndExecute[{ FrontEnd`HelpBrowserLookup["AddOns", #]}]& )}], Cell[ StyleData["AddOnsLink", "Presentation"]], Cell[ StyleData["AddOnsLink", "Condensed"]], Cell[ StyleData["AddOnLink", "Printout"], FontVariations -> {"Underline" -> False}, FontColor -> GrayLevel[0]]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["RefGuideLink"], StyleMenuListing -> None, ButtonStyleMenuListing -> Automatic, FontFamily -> "Courier", FontVariations -> {"Underline" -> True}, FontColor -> RGBColor[0, 0, 1], ButtonBoxOptions -> { Active -> True, Appearance -> {Automatic, None}, ButtonFunction :> (FrontEndExecute[{ FrontEnd`HelpBrowserLookup["RefGuideLink", #]}]& )}], Cell[ StyleData["RefGuideLink", "Presentation"]], Cell[ StyleData["RefGuideLink", "Condensed"]], Cell[ StyleData["RefGuideLink", "Printout"], FontVariations -> {"Underline" -> False}, FontColor -> GrayLevel[0]]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["GettingStartedLink"], StyleMenuListing -> None, ButtonStyleMenuListing -> Automatic, FontVariations -> {"Underline" -> True}, FontColor -> RGBColor[0, 0, 1], ButtonBoxOptions -> { Active -> True, Appearance -> {Automatic, None}, ButtonFunction :> (FrontEndExecute[{ FrontEnd`HelpBrowserLookup["GettingStarted", #]}]& )}], Cell[ StyleData["GettingStartedLink", "Presentation"]], Cell[ StyleData["GettingStartedLink", "Condensed"]], Cell[ StyleData["GettingStartedLink", "Printout"], FontVariations -> {"Underline" -> False}, FontColor -> GrayLevel[0]]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["OtherInformationLink"], StyleMenuListing -> None, ButtonStyleMenuListing -> Automatic, FontVariations -> {"Underline" -> True}, FontColor -> RGBColor[0, 0, 1], ButtonBoxOptions -> { Active -> True, Appearance -> {Automatic, None}, ButtonFunction :> (FrontEndExecute[{ FrontEnd`HelpBrowserLookup["OtherInformation", #]}]& )}], Cell[ StyleData["OtherInformationLink", "Presentation"]], Cell[ StyleData["OtherInformationLink", "Condensed"]], Cell[ StyleData["OtherInformationLink", "Printout"], FontVariations -> {"Underline" -> False}, FontColor -> GrayLevel[0]]}, Closed]]}, Closed]], Cell[ CellGroupData[{ Cell["Placeholder Styles", "Section"], Cell[ "The cells below define styles useful for making placeholder objects \ in palette templates.", "Text"], Cell[ CellGroupData[{ Cell[ StyleData["Placeholder"], Editable -> False, Selectable -> False, StyleBoxAutoDelete -> True, Placeholder -> True, StyleMenuListing -> None], Cell[ StyleData["Placeholder", "Presentation"]], Cell[ StyleData["Placeholder", "Condensed"]], Cell[ StyleData["Placeholder", "Printout"]]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["SelectionPlaceholder"], Editable -> False, Selectable -> False, StyleBoxAutoDelete -> True, Placeholder -> PrimaryPlaceholder, StyleMenuListing -> None, DrawHighlighted -> True], Cell[ StyleData["SelectionPlaceholder", "Presentation"]], Cell[ StyleData["SelectionPlaceholder", "Condensed"]], Cell[ StyleData["SelectionPlaceholder", "Printout"]]}, Closed]]}, Closed]], Cell[ CellGroupData[{ Cell["FormatType Styles", "Section"], Cell[ "The cells below define styles that are mixed in with the styles of \ most cells. If a cell's FormatType matches the name of one of the styles \ defined below, then that style is applied between the cell's style and its \ own options.", "Text"], Cell[ StyleData["CellExpression"], PageWidth -> Infinity, CellMargins -> {{6, Inherited}, {Inherited, Inherited}}, ShowCellLabel -> False, ShowSpecialCharacters -> False, AllowInlineCells -> False, AutoItalicWords -> {}, StyleMenuListing -> None, FontFamily -> "Courier", Background -> GrayLevel[1]], Cell[ StyleData["InputForm"], AllowInlineCells -> False, StyleMenuListing -> None, FontFamily -> "Courier"], Cell[ StyleData["OutputForm"], PageWidth -> Infinity, TextAlignment -> Left, LineSpacing -> {1, -5}, StyleMenuListing -> None, FontFamily -> "Courier"], Cell[ StyleData["StandardForm"], LineSpacing -> {1.25, 0}, StyleMenuListing -> None, FontFamily -> "Courier"], Cell[ StyleData["TraditionalForm"], LineSpacing -> {1.25, 0}, SingleLetterItalics -> True, TraditionalFunctionNotation -> True, DelimiterMatching -> None, StyleMenuListing -> None], Cell[ "The style defined below is mixed in to any cell that is in an \ inline cell within another.", "Text"], Cell[ StyleData["InlineCell"], TextAlignment -> Left, ScriptLevel -> 1, StyleMenuListing -> None], Cell[ StyleData["InlineCellEditing"], StyleMenuListing -> None, Background -> RGBColor[1, 0.749996, 0.8]]}, Closed]]}, Open]], Cell[ CellGroupData[{ Cell[ "Notation Package Styles", "Section", GeneratedCell -> True, CellTags -> "NotationPackage"], Cell[ "The cells below define certain styles needed by the Notation package. \ These styles serve to make visible otherwise invisible tagboxes.", "Text", GeneratedCell -> True, CellTags -> "NotationPackage"], Cell[ StyleData["NotationTemplateStyle"], GeneratedCell -> True, StyleMenuListing -> None, Background -> RGBColor[1, 1, 0.850004], TagBoxOptions -> {SyntaxForm -> "symbol"}, CellTags -> "NotationPackage"], Cell[ StyleData["NotationPatternWrapperStyle"], GeneratedCell -> True, StyleMenuListing -> None, Background -> RGBColor[1, 0.900008, 0.979995], TagBoxOptions -> {SyntaxForm -> "symbol"}, CellTags -> "NotationPackage"], Cell[ StyleData["NotationMadeBoxesWrapperStyle"], GeneratedCell -> True, StyleMenuListing -> None, Background -> RGBColor[0.900008, 0.889998, 1], TagBoxOptions -> {SyntaxForm -> "symbol"}, CellTags -> "NotationPackage"]}, Closed]]}, Visible -> False, FrontEndVersion -> "7.0 for Microsoft Windows (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, 107, 5, 103, "Subtitle", Evaluatable->False], Cell[677, 29, 350, 7, 55, "Text"], Cell[1030, 38, 85, 3, 55, "Text"], Cell[1118, 43, 104, 2, 32, "Input"], Cell[CellGroupData[{ Cell[1247, 49, 58, 1, 64, "Section"], Cell[CellGroupData[{ Cell[1330, 54, 97, 2, 32, "Input"], Cell[1430, 58, 647, 12, 29, "Message"] }, Open ]], Cell[2092, 73, 235, 7, 97, "Text"], Cell[2330, 82, 443, 17, 32, "Input"], Cell[2776, 101, 440, 15, 32, "Input"], Cell[3219, 118, 671, 24, 55, "Input"], Cell[3893, 144, 90, 2, 32, "Input"] }, Open ]], Cell[CellGroupData[{ Cell[4020, 151, 46, 0, 64, "Section"], Cell[CellGroupData[{ Cell[4091, 155, 35, 0, 55, "Subsection"], Cell[4129, 157, 163, 4, 55, "Text"], Cell[4295, 163, 259, 8, 55, "Input"], Cell[4557, 173, 334, 9, 55, "Input"], Cell[4894, 184, 257, 7, 32, "Input"], Cell[5154, 193, 258, 7, 32, "Input"], Cell[5415, 202, 256, 7, 32, "Input"], Cell[5674, 211, 3311, 102, 451, "Input"], Cell[8988, 315, 96, 1, 27, "TextNoIndent"], Cell[9087, 318, 202, 6, 55, "Input"] }, Open ]], Cell[CellGroupData[{ Cell[9326, 329, 39, 0, 55, "Subsection"], Cell[9368, 331, 126, 4, 68, "Text"], Cell[9497, 337, 96, 2, 40, "Input"], Cell[9596, 341, 5766, 160, 661, "Input"], Cell[15365, 503, 5395, 136, 451, "Input"], Cell[20763, 641, 701, 22, 121, "Input"], Cell[21467, 665, 2006, 62, 209, "Input"], Cell[23476, 729, 2322, 67, 187, "Input"] }, Open ]], Cell[CellGroupData[{ Cell[25835, 801, 41, 0, 55, "Subsection"], Cell[25879, 803, 167, 4, 55, "Text"], Cell[26049, 809, 85, 2, 55, "Input"], Cell[26137, 813, 4013, 108, 407, "Input"], Cell[30153, 923, 827, 22, 151, "Input"], Cell[30983, 947, 1928, 58, 347, "Input"], Cell[32914, 1007, 650, 18, 151, "Input"] }, Open ]], Cell[CellGroupData[{ Cell[33601, 1030, 277, 11, 72, "Subsection"], Cell[33881, 1043, 2320, 62, 278, "Input"], Cell[36204, 1107, 4096, 110, 395, "Input"], Cell[40303, 1219, 3110, 74, 323, "Input"], Cell[43416, 1295, 4114, 110, 316, "Input"], Cell[47533, 1407, 6525, 180, 436, "Input"], Cell[54061, 1589, 522, 17, 82, "Input"], Cell[54586, 1608, 85, 2, 55, "Input"], Cell[54674, 1612, 2304, 63, 265, "Input"], Cell[56981, 1677, 960, 29, 173, "Input"], Cell[57944, 1708, 575, 16, 83, "Input"] }, Open ]], Cell[CellGroupData[{ Cell[58556, 1729, 35, 0, 55, "Subsection"], Cell[58594, 1731, 168, 3, 34, "Text"], Cell[58765, 1736, 502, 16, 77, "Input"], Cell[59270, 1754, 1084, 31, 143, "Input"] }, Open ]], Cell[CellGroupData[{ Cell[60391, 1790, 43, 0, 55, "Subsection"], Cell[60437, 1792, 181, 5, 55, "Text"], Cell[60621, 1799, 1240, 35, 99, "Input"], Cell[61864, 1836, 26, 0, 32, "Input"], Cell[61893, 1838, 58, 1, 34, "Text"], Cell[61954, 1841, 350, 7, 55, "Text"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[62353, 1854, 34, 0, 64, "Section"], Cell[62390, 1856, 1889, 48, 209, "Input"], Cell[64282, 1906, 1940, 49, 209, "Input"], Cell[66225, 1957, 2518, 63, 231, "Input"] }, Open ]], Cell[CellGroupData[{ Cell[68780, 2025, 108, 1, 64, "Section"], Cell[68891, 2028, 833, 24, 77, "Input"], Cell[69727, 2054, 771, 23, 55, "Input"], Cell[70501, 2079, 2812, 67, 253, "Input"], Cell[73316, 2148, 372, 9, 55, "Input"], Cell[73691, 2159, 3154, 76, 297, "Input"] }, Open ]], Cell[CellGroupData[{ Cell[76882, 2240, 37, 0, 64, "Section"], Cell[76922, 2242, 1008, 36, 4556, "Text"], Cell[77933, 2280, 685, 29, 2733, "Text"], Cell[78621, 2311, 26, 0, 2560, "Input"], Cell[78650, 2313, 2316, 63, 13951, "Input"], Cell[80969, 2378, 2271, 62, 13951, "Input"] }, Closed]], Cell[CellGroupData[{ Cell[83277, 2445, 55, 0, 38, "Section"], Cell[CellGroupData[{ Cell[83357, 2449, 45, 0, 3207, "Subsection"], Cell[83405, 2451, 1798, 51, 13951, "Input"], Cell[85206, 2504, 963, 28, 8071, "Input"], Cell[86172, 2534, 522, 15, 7691, "Input"], Cell[86697, 2551, 406, 11, 7468, "Input"], Cell[87106, 2564, 290, 9, 2560, "Input"], Cell[87399, 2575, 856, 21, 9113, "Input"], Cell[88258, 2598, 674, 17, 9113, "Input"], Cell[88935, 2617, 510, 13, 7468, "Input"], Cell[89448, 2632, 1524, 38, 12341, "Input"], Cell[90975, 2672, 510, 13, 7468, "Input"], Cell[91488, 2687, 2360, 59, 17200, "Input"], Cell[93851, 2748, 307, 8, 4227, "Input"], Cell[94161, 2758, 1216, 31, 13951, "Input"], Cell[95380, 2791, 1407, 36, 15596, "Input"], Cell[96790, 2829, 1587, 41, 17200, "Input"], Cell[98380, 2872, 1756, 45, 18838, "Input"], Cell[100139, 2919, 307, 8, 4227, "Input"], Cell[100449, 2929, 307, 8, 4227, "Input"], Cell[100759, 2939, 307, 8, 4227, "Input"], Cell[101069, 2949, 307, 8, 4227, "Input"] }, Open ]], Cell[CellGroupData[{ Cell[101413, 2962, 58, 0, 3207, "Subsection"], Cell[101474, 2964, 251, 9, 3943, "Text"], Cell[101728, 2975, 2600, 64, 28575, "Input"], Cell[104331, 3041, 496, 21, 3943, "Text"], Cell[104830, 3064, 256, 8, 2560, "Input"], Cell[105089, 3074, 604, 15, 13951, "Input"], Cell[105696, 3091, 393, 18, 3943, "Text"], Cell[106092, 3111, 186, 5, 2560, "Input"], Cell[106281, 3118, 288, 11, 2418, "Text"], Cell[106572, 3131, 386, 12, 2560, "Input"], Cell[106961, 3145, 681, 24, 3943, "Text"], Cell[107645, 3171, 714, 21, 4227, "Input"], Cell[108362, 3194, 824, 23, 5865, "Input"] }, Open ]], Cell[CellGroupData[{ Cell[109223, 3222, 45, 0, 3207, "Subsection"], Cell[109271, 3224, 1831, 49, 15596, "Input"] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell[111151, 3279, 48, 0, 38, "Section"], Cell[CellGroupData[{ Cell[111224, 3283, 37, 0, 55, "Subsection"], Cell[111264, 3285, 90, 2, 32, "Input"], Cell[111357, 3289, 103, 2, 32, "Input"], Cell[111463, 3293, 98, 2, 32, "Input"], Cell[111564, 3297, 99, 2, 32, "Input"], Cell[111666, 3301, 246, 7, 32, "Input"], Cell[111915, 3310, 204, 6, 42, "Input"], Cell[112122, 3318, 1789, 52, 143, "Input"], Cell[113914, 3372, 226, 7, 42, "Input"], Cell[114143, 3381, 218, 7, 32, "Input"], Cell[114364, 3390, 641, 19, 77, "Input"], Cell[115008, 3411, 465, 13, 55, "Input"], Cell[115476, 3426, 629, 18, 121, "Input"], Cell[116108, 3446, 143, 4, 32, "Input"], Cell[116254, 3452, 238, 7, 32, "Input"], Cell[116495, 3461, 494, 12, 32, "Input"], Cell[116992, 3475, 162, 4, 32, "Input"], Cell[117157, 3481, 1089, 31, 55, "Input"], Cell[118249, 3514, 448, 12, 32, "Input"] }, Open ]] }, Open ]] }, Open ]] } ] *) (* End of internal cache information *)