(************** Content-type: application/mathematica ************** CreatedBy='Mathematica 5.0' Mathematica-Compatible Notebook This notebook can be used with any Mathematica-compatible application, such as Mathematica, MathReader or Publicon. The data for the notebook starts with the line containing stars above. To get the notebook into a Mathematica-compatible application, do one of the following: * Save the data starting with the line of stars above into a file with a name ending in .nb, then open the file inside the application; * Copy the data starting with the line of stars above to the clipboard, then use the Paste menu command inside the application. Data for notebooks contains only printable 7-bit ASCII and can be sent directly in email or through ftp in text mode. Newlines can be CR, LF or CRLF (Unix, Macintosh or MS-DOS style). NOTE: If you modify the data for this notebook not in a Mathematica- compatible application, you must delete the line below containing the word CacheID, otherwise Mathematica-compatible applications may try to use invalid cache data. For more information on notebooks and Mathematica-compatible applications, contact Wolfram Research: web: http://www.wolfram.com email: info@wolfram.com phone: +1-217-398-0700 (U.S.) Notebook reader applications are available free of charge from Wolfram Research. *******************************************************************) (*CacheID: 232*) (*NotebookFileLineBreakTest NotebookFileLineBreakTest*) (*NotebookOptionsPosition[ 135281, 4727]*) (*NotebookOutlinePosition[ 136014, 4752]*) (* CellTagsIndexPosition[ 135970, 4748]*) (*WindowFrame->Normal*) Notebook[{ Cell[CellGroupData[{ Cell["Sample Output of AlgFields: Mathematica", "Subsubtitle"], Cell["\<\ This notebook contains examples of the functions described on the functions \ page. \ \>", "Text"], Cell[CellGroupData[{ Cell["Getting Started", "Subsubsection"], Cell["\<\ We first set the directory appropriately and load in the AlgFields package.\ \>", "Text"], Cell[BoxData[ \(\(SetDirectory["\"];\)\)], "Input"], Cell[BoxData[ \(<< AlgFields.txt\)], "Input"] }, Open ]], Cell[CellGroupData[{ Cell["FApprox", "Subsubsection"], Cell[TextData[{ "Before we can use the functions, we will need to declare a field. We set \ the field ", StyleBox["K", FontSlant->"Italic"], " to be the field of rationals Q with a third root of 3 adjoined. Note \ that by default the \"first\" root of ", Cell[BoxData[ \(TraditionalForm\`x\^3\)]], "-3 is the one lying in the real numbers. We use a polynomial with \ indeterminate ", StyleBox["a", FontSlant->"Italic"], " in order that the algebraic number may be referred to by ", StyleBox["a", FontSlant->"Italic"], "." }], "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(FDeclareField[K, {a^3 - 3}]\)], "Input"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"----Details of field \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["K", ShowStringCharacters->True, NumberMarks->True], InputForm[ K], Editable->True, AutoDelete->True], "\[InvisibleSpace]", "\<\"----\"\>"}], SequenceForm[ "----Details of field ", InputForm[ K], "----"], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Algebraic Numbers: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({a}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ {a}], Editable->True, AutoDelete->True]}], SequenceForm[ " Algebraic Numbers: ", InputForm[ {a}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Dimension over Q: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["3", ShowStringCharacters->True, NumberMarks->True], InputForm[ 3], Editable->True, AutoDelete->True]}], SequenceForm[ " Dimension over Q: ", InputForm[ 3]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Minimal Polynomials: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({\(-3\)\ + \ a^3}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ { Plus[ -3, Power[ a, 3]]}], Editable->True, AutoDelete->True]}], SequenceForm[ " Minimal Polynomials: ", InputForm[ { Plus[ -3, Power[ a, 3]]}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[\(" Root Approximations: \ "\[InvisibleSpace]{1.44224957030740838232163831078010508975`20. }\), SequenceForm[ " Root Approximations: ", {1.4422495703074083823`20.}], Editable->False]], "Print"], Cell[BoxData[ \("----"\)], "Print"] }, Open ]], Cell[TextData[{ "Now we can begin to proceed through the functions alphabetically. We \ approximate ", Cell[BoxData[ \(TraditionalForm\`a\^2\)]], "+ ", StyleBox["a ", FontSlant->"Italic"], "in the complex numbers. " }], "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(FApprox[a^2 + a, K]\)], "Input"], Cell[BoxData[ \(3.5223333933593124969`10. \)], "Output"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell["FClearField", "Subsubsection"], Cell[TextData[{ "Next we clear our field ", StyleBox["K", FontSlant->"Italic"], ". While this is unnecessary in general, it may be used as a safety \ feature; if fields are cleared after they are used, it is less likely that ", StyleBox["Mathematica", FontSlant->"Italic"], " will be erroneously asked to perform a computation which may involve a \ great deal of time." }], "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(FClearField[K]\)], "Input"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"----Details of field \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["K", ShowStringCharacters->True, NumberMarks->True], InputForm[ K], Editable->True, AutoDelete->True], "\[InvisibleSpace]", "\<\"----\"\>"}], SequenceForm[ "----Details of field ", InputForm[ K], "----"], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Algebraic Numbers: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ {}], Editable->True, AutoDelete->True]}], SequenceForm[ " Algebraic Numbers: ", InputForm[ {}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Dimension over Q: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["1", ShowStringCharacters->True, NumberMarks->True], InputForm[ 1], Editable->True, AutoDelete->True]}], SequenceForm[ " Dimension over Q: ", InputForm[ 1]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Minimal Polynomials: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ {}], Editable->True, AutoDelete->True]}], SequenceForm[ " Minimal Polynomials: ", InputForm[ {}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[\(" Root Approximations: "\[InvisibleSpace]{}\), SequenceForm[ " Root Approximations: ", {}], Editable->False]], "Print"], Cell[BoxData[ \("----"\)], "Print"] }, Open ]], Cell[TextData[{ "We declare", StyleBox[" K", FontSlant->"Italic"], " again, this time specifying a particular root of ", Cell[BoxData[ \(TraditionalForm\`x\^3\)]], "-3, namely the \"second\":" }], "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(FDeclareField[K, {a^3 - 3}, {2}]\)], "Input"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"----Details of field \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["K", ShowStringCharacters->True, NumberMarks->True], InputForm[ K], Editable->True, AutoDelete->True], "\[InvisibleSpace]", "\<\"----\"\>"}], SequenceForm[ "----Details of field ", InputForm[ K], "----"], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Algebraic Numbers: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({a}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ {a}], Editable->True, AutoDelete->True]}], SequenceForm[ " Algebraic Numbers: ", InputForm[ {a}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Dimension over Q: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["3", ShowStringCharacters->True, NumberMarks->True], InputForm[ 3], Editable->True, AutoDelete->True]}], SequenceForm[ " Dimension over Q: ", InputForm[ 3]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Minimal Polynomials: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({\(-3\)\ + \ a^3}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ { Plus[ -3, Power[ a, 3]]}], Editable->True, AutoDelete->True]}], SequenceForm[ " Minimal Polynomials: ", InputForm[ { Plus[ -3, Power[ a, 3]]}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[\(" Root Approximations: \ "\[InvisibleSpace]{\(-0.72112478515370419116081915539005275891`19.\ 84948500216801\) - 1.24902476648340647941317954376325214377`20.088045629527844\ \ \[ImaginaryI]}\), SequenceForm[ " Root Approximations: ", { Complex[ -0.7211247851537041912`19.84948500216801, \ -1.2490247664834064794`20.088045629527844]}], Editable->False]], "Print"], Cell[BoxData[ \("----"\)], "Print"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell["FCompletelyReducibleQ", "Subsubsection"], Cell["First we declare a field as follows.", "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(FDeclareField[K, {a^3 - 3}, {2}]\)], "Input"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"----Details of field \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["K", ShowStringCharacters->True, NumberMarks->True], InputForm[ K], Editable->True, AutoDelete->True], "\[InvisibleSpace]", "\<\"----\"\>"}], SequenceForm[ "----Details of field ", InputForm[ K], "----"], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Algebraic Numbers: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({a}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ {a}], Editable->True, AutoDelete->True]}], SequenceForm[ " Algebraic Numbers: ", InputForm[ {a}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Dimension over Q: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["3", ShowStringCharacters->True, NumberMarks->True], InputForm[ 3], Editable->True, AutoDelete->True]}], SequenceForm[ " Dimension over Q: ", InputForm[ 3]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Minimal Polynomials: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({\(-3\)\ + \ a^3}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ { Plus[ -3, Power[ a, 3]]}], Editable->True, AutoDelete->True]}], SequenceForm[ " Minimal Polynomials: ", InputForm[ { Plus[ -3, Power[ a, 3]]}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[\(" Root Approximations: \ "\[InvisibleSpace]{\(-0.72112478515370419116081915539005275891`19.\ 84948500216801\) - 1.24902476648340647941317954376325214377`20.088045629527844\ \ \[ImaginaryI]}\), SequenceForm[ " Root Approximations: ", { Complex[ -0.7211247851537041912`19.84948500216801, \ -1.2490247664834064794`20.088045629527844]}], Editable->False]], "Print"], Cell[BoxData[ \("----"\)], "Print"] }, Open ]], Cell[TextData[{ "We ask whether or not ", Cell[BoxData[ \(TraditionalForm\`x\^3\)]], "-3 factors completely over ", StyleBox["K", FontSlant->"Italic"], ". When we learn that it does not, we ask for a complete factorization." }], "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(FCompletelyReducibleQ[x^3 - 3, K]\)], "Input"], Cell[BoxData[ \(False\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(FFactor[x^3 - 3, K]\)], "Input"], Cell[BoxData[ \(\(-\((a - x)\)\)\ \((a\^2 + a\ x + x\^2)\)\)], "Output"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell["FDeclaredExtensionFieldQ", "Subsubsection"], Cell["First we declare two fields.", "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(FDeclareField[K, {a^3 - 3}, {2}]\)], "Input"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"----Details of field \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["K", ShowStringCharacters->True, NumberMarks->True], InputForm[ K], Editable->True, AutoDelete->True], "\[InvisibleSpace]", "\<\"----\"\>"}], SequenceForm[ "----Details of field ", InputForm[ K], "----"], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Algebraic Numbers: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({a}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ {a}], Editable->True, AutoDelete->True]}], SequenceForm[ " Algebraic Numbers: ", InputForm[ {a}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Dimension over Q: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["3", ShowStringCharacters->True, NumberMarks->True], InputForm[ 3], Editable->True, AutoDelete->True]}], SequenceForm[ " Dimension over Q: ", InputForm[ 3]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Minimal Polynomials: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({\(-3\)\ + \ a^3}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ { Plus[ -3, Power[ a, 3]]}], Editable->True, AutoDelete->True]}], SequenceForm[ " Minimal Polynomials: ", InputForm[ { Plus[ -3, Power[ a, 3]]}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[\(" Root Approximations: \ "\[InvisibleSpace]{\(-0.72112478515370419116081915539005275891`19.\ 84948500216801\) - 1.24902476648340647941317954376325214377`20.088045629527844\ \ \[ImaginaryI]}\), SequenceForm[ " Root Approximations: ", { Complex[ -0.7211247851537041912`19.84948500216801, \ -1.2490247664834064794`20.088045629527844]}], Editable->False]], "Print"], Cell[BoxData[ \("----"\)], "Print"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(FDeclareSplittingField[M, x^3 - 3]\)], "Input"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"----Details of field \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["M", ShowStringCharacters->True, NumberMarks->True], InputForm[ M], Editable->True, AutoDelete->True], "\[InvisibleSpace]", "\<\"----\"\>"}], SequenceForm[ "----Details of field ", InputForm[ M], "----"], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Algebraic Numbers: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({r1, \ r2, \ r3}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ {r1, r2, r3}], Editable->True, AutoDelete->True]}], SequenceForm[ " Algebraic Numbers: ", InputForm[ {r1, r2, r3}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Dimension over Q: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["6", ShowStringCharacters->True, NumberMarks->True], InputForm[ 6], Editable->True, AutoDelete->True]}], SequenceForm[ " Dimension over Q: ", InputForm[ 6]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Minimal Polynomials: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({\(-3\)\ + \ r1^3, \ r1^2\ + \ r1*r2\ + \ r2^2, \ r1\ + \ r2\ + \ r3}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ { Plus[ -3, Power[ r1, 3]], Plus[ Power[ r1, 2], Times[ r1, r2], Power[ r2, 2]], Plus[ r1, r2, r3]}], Editable->True, AutoDelete->True]}], SequenceForm[ " Minimal Polynomials: ", InputForm[ { Plus[ -3, Power[ r1, 3]], Plus[ Power[ r1, 2], Times[ r1, r2], Power[ r2, 2]], Plus[ r1, r2, r3]}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[\(" Root Approximations: \ "\[InvisibleSpace]{1.44224957030740838232163831078010508975`20. , \ \(-0.72112478515370419116081915539005275891`19.84948500216801\) - 1.24902476648340647941317954376325214377`20.088045629527844\ \ \[ImaginaryI], \ \(-0.72112478515370419116081915539005275891`19.84948500216801\) + 1.24902476648340647941317954376325214377`20.088045629527844\ \ \[ImaginaryI]}\), SequenceForm[ " Root Approximations: ", {1.4422495703074083823`20., Complex[ -0.7211247851537041912`19.84948500216801, \ -1.2490247664834064794`20.088045629527844], Complex[ -0.7211247851537041912`19.84948500216801, 1.2490247664834064794`20.088045629527844]}], Editable->False]], "Print"], Cell[BoxData[ \("----"\)], "Print"] }, Open ]], Cell[TextData[{ "We ask whether ", StyleBox["M", FontSlant->"Italic"], " is ", StyleBox["declared", FontSlant->"Italic"], " as an extension field of ", StyleBox["K", FontSlant->"Italic"], ". " }], "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(FDeclaredExtensionFieldQ[M, K]\)], "Input"], Cell[BoxData[ \(False\)], "Output"] }, Open ]], Cell[TextData[{ "However, we determine that ", StyleBox["M", FontSlant->"Italic"], " is an extension field of ", StyleBox["K", FontSlant->"Italic"], " as follows. We ask whether the minimal polynomial of ", StyleBox["a", FontSlant->"Italic"], " in ", StyleBox["K", FontSlant->"Italic"], " is completely reducible in ", StyleBox["M", FontSlant->"Italic"], "." }], "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(FCompletelyReducibleQ[x^3 - 3, M]\)], "Input"], Cell[BoxData[ \(True\)], "Output"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell["FDeclareExtensionField", "Subsubsection"], Cell["First we declare a field as follows.", "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(FDeclareField[K, {a^3 - 3}, {2}]\)], "Input"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"----Details of field \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["K", ShowStringCharacters->True, NumberMarks->True], InputForm[ K], Editable->True, AutoDelete->True], "\[InvisibleSpace]", "\<\"----\"\>"}], SequenceForm[ "----Details of field ", InputForm[ K], "----"], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Algebraic Numbers: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({a}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ {a}], Editable->True, AutoDelete->True]}], SequenceForm[ " Algebraic Numbers: ", InputForm[ {a}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Dimension over Q: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["3", ShowStringCharacters->True, NumberMarks->True], InputForm[ 3], Editable->True, AutoDelete->True]}], SequenceForm[ " Dimension over Q: ", InputForm[ 3]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Minimal Polynomials: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({\(-3\)\ + \ a^3}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ { Plus[ -3, Power[ a, 3]]}], Editable->True, AutoDelete->True]}], SequenceForm[ " Minimal Polynomials: ", InputForm[ { Plus[ -3, Power[ a, 3]]}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[\(" Root Approximations: \ "\[InvisibleSpace]{\(-0.72112478515370419116081915539005275891`19.\ 84948500216801\) - 1.24902476648340647941317954376325214377`20.088045629527844\ \ \[ImaginaryI]}\), SequenceForm[ " Root Approximations: ", { Complex[ -0.7211247851537041912`19.84948500216801, \ -1.2490247664834064794`20.088045629527844]}], Editable->False]], "Print"], Cell[BoxData[ \("----"\)], "Print"] }, Open ]], Cell[TextData[{ "Now we declare an extension field ", StyleBox["L", FontSlant->"Italic"], " of ", StyleBox["K", FontSlant->"Italic"], " by adjoining a square root of the algebraic number ", StyleBox["a", FontSlant->"Italic"], ". We call this number ", StyleBox["b", FontSlant->"Italic"], "." }], "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(FDeclareExtensionField[L, K, {b^2 - a}]\)], "Input"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"----Details of field \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["L", ShowStringCharacters->True, NumberMarks->True], InputForm[ L], Editable->True, AutoDelete->True], "\[InvisibleSpace]", "\<\"----\"\>"}], SequenceForm[ "----Details of field ", InputForm[ L], "----"], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Algebraic Numbers: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({a, \ b}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ {a, b}], Editable->True, AutoDelete->True]}], SequenceForm[ " Algebraic Numbers: ", InputForm[ {a, b}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Dimension over Q: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["6", ShowStringCharacters->True, NumberMarks->True], InputForm[ 6], Editable->True, AutoDelete->True]}], SequenceForm[ " Dimension over Q: ", InputForm[ 6]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Minimal Polynomials: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({\(-3\)\ + \ a^3, \ \(-a\)\ + \ b^2}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ { Plus[ -3, Power[ a, 3]], Plus[ Times[ -1, a], Power[ b, 2]]}], Editable->True, AutoDelete->True]}], SequenceForm[ " Minimal Polynomials: ", InputForm[ { Plus[ -3, Power[ a, 3]], Plus[ Times[ -1, a], Power[ b, 2]]}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[\(" Root Approximations: \ "\[InvisibleSpace]{\(-0.72112478515370419116081915539005275891`19.\ 84948500216801\) - 1.24902476648340647941317954376325214377`20.088045629527844\ \ \[ImaginaryI], \ \(-0.60046847758800136333773269367477142315`19.84948500216801\) + 1.04004191152595205726502841217894269317`20.088045629527844\ \ \[ImaginaryI]}\), SequenceForm[ " Root Approximations: ", { Complex[ -0.7211247851537041912`19.84948500216801, \ -1.2490247664834064794`20.088045629527844], Complex[ -0.60046847758800136334`19.84948500216801, 1.04004191152595205727`20.088045629527844]}], Editable->False]], "Print"], Cell[BoxData[ \("----"\)], "Print"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell["FDeclareField", "Subsubsection"], Cell[TextData[{ "We declare ", StyleBox["L2", FontSlant->"Italic"], " to be a field obtained by adjoining to the rationals a sixth root of 3. \ " }], "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(FDeclareField[L2, {c^6 - 3}]\)], "Input"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"----Details of field \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["L2", ShowStringCharacters->True, NumberMarks->True], InputForm[ L2], Editable->True, AutoDelete->True], "\[InvisibleSpace]", "\<\"----\"\>"}], SequenceForm[ "----Details of field ", InputForm[ L2], "----"], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Algebraic Numbers: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({c}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ {c}], Editable->True, AutoDelete->True]}], SequenceForm[ " Algebraic Numbers: ", InputForm[ {c}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Dimension over Q: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["6", ShowStringCharacters->True, NumberMarks->True], InputForm[ 6], Editable->True, AutoDelete->True]}], SequenceForm[ " Dimension over Q: ", InputForm[ 6]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Minimal Polynomials: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({\(-3\)\ + \ c^6}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ { Plus[ -3, Power[ c, 6]]}], Editable->True, AutoDelete->True]}], SequenceForm[ " Minimal Polynomials: ", InputForm[ { Plus[ -3, Power[ c, 6]]}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[\(" Root Approximations: \ "\[InvisibleSpace]{\(-1.20093695517600272667546538734954244347`20. \)}\), SequenceForm[ " Root Approximations: ", {-1.2009369551760027267`20.}], Editable->False]], "Print"], Cell[BoxData[ \("----"\)], "Print"] }, Open ]], Cell[TextData[{ "Notice that the selected root is real. In order to make ", StyleBox["L2", FontSlant->"Italic"], " identical to the field ", StyleBox["L", FontSlant->"Italic"], " defined under FDeclareExtensionField and, moreover, to make ", StyleBox["c", FontSlant->"Italic"], " equal to ", StyleBox["b, ", FontSlant->"Italic"], "we choose the \"fourth\" root:" }], "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(FDeclareField[L2, {c^6 - 3}, {4}]\)], "Input"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"----Details of field \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["L2", ShowStringCharacters->True, NumberMarks->True], InputForm[ L2], Editable->True, AutoDelete->True], "\[InvisibleSpace]", "\<\"----\"\>"}], SequenceForm[ "----Details of field ", InputForm[ L2], "----"], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Algebraic Numbers: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({c}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ {c}], Editable->True, AutoDelete->True]}], SequenceForm[ " Algebraic Numbers: ", InputForm[ {c}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Dimension over Q: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["6", ShowStringCharacters->True, NumberMarks->True], InputForm[ 6], Editable->True, AutoDelete->True]}], SequenceForm[ " Dimension over Q: ", InputForm[ 6]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Minimal Polynomials: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({\(-3\)\ + \ c^6}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ { Plus[ -3, Power[ c, 6]]}], Editable->True, AutoDelete->True]}], SequenceForm[ " Minimal Polynomials: ", InputForm[ { Plus[ -3, Power[ c, 6]]}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[\(" Root Approximations: \ "\[InvisibleSpace]{\(-0.60046847758800136333773269367477142315`19.\ 84948500216801\) + 1.04004191152595205726502841217894269317`20.088045629527844\ \ \[ImaginaryI]}\), SequenceForm[ " Root Approximations: ", { Complex[ -0.60046847758800136334`19.84948500216801, 1.04004191152595205727`20.088045629527844]}], Editable->False]], "Print"], Cell[BoxData[ \("----"\)], "Print"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell["FDeclarePrimeField", "Subsubsection"], Cell["\<\ We may build finite fields by declaring them as extension over their prime \ field. To declare a prime field, we use FDeclarePrimeField. \ \>", "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(FDeclarePrimeField[K, 5]\)], "Input"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"----Details of finite field \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["K", ShowStringCharacters->True, NumberMarks->True], InputForm[ K], Editable->True, AutoDelete->True], "\[InvisibleSpace]", "\<\"----\"\>"}], SequenceForm[ "----Details of finite field ", InputForm[ K], "----"], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[\(" Prime subfield: GF("\[InvisibleSpace]5\ \[InvisibleSpace]")"\), SequenceForm[ " Prime subfield: GF(", 5, ")"], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Algebraic Elements: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ {}], Editable->True, AutoDelete->True]}], SequenceForm[ " Algebraic Elements: ", InputForm[ {}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Dimension over GF(\"\>", "\[InvisibleSpace]", "5", "\[InvisibleSpace]", "\<\"): \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["1", ShowStringCharacters->True, NumberMarks->True], InputForm[ 1], Editable->True, AutoDelete->True]}], SequenceForm[ " Dimension over GF(", 5, "): ", InputForm[ 1]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Minimal Polynomials: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ {}], Editable->True, AutoDelete->True]}], SequenceForm[ " Minimal Polynomials: ", InputForm[ {}]], Editable->False]], "Print"], Cell[BoxData[ \("----"\)], "Print"] }, Open ]], Cell["\<\ Now we obtain a finite field of order 25 via a quadratic extension:\ \>", "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(FDeclareExtensionField[L, K, {a^2 + a + 2}]\)], "Input"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"----Details of finite field \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["L", ShowStringCharacters->True, NumberMarks->True], InputForm[ L], Editable->True, AutoDelete->True], "\[InvisibleSpace]", "\<\"----\"\>"}], SequenceForm[ "----Details of finite field ", InputForm[ L], "----"], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[\(" Prime subfield: GF("\[InvisibleSpace]5\ \[InvisibleSpace]")"\), SequenceForm[ " Prime subfield: GF(", 5, ")"], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Algebraic Elements: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({a}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ {a}], Editable->True, AutoDelete->True]}], SequenceForm[ " Algebraic Elements: ", InputForm[ {a}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Dimension over GF(\"\>", "\[InvisibleSpace]", "5", "\[InvisibleSpace]", "\<\"): \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["2", ShowStringCharacters->True, NumberMarks->True], InputForm[ 2], Editable->True, AutoDelete->True]}], SequenceForm[ " Dimension over GF(", 5, "): ", InputForm[ 2]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Minimal Polynomials: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({2\ + \ a\ + \ a^2}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ { Plus[ 2, a, Power[ a, 2]]}], Editable->True, AutoDelete->True]}], SequenceForm[ " Minimal Polynomials: ", InputForm[ { Plus[ 2, a, Power[ a, 2]]}]], Editable->False]], "Print"], Cell[BoxData[ \("----"\)], "Print"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell["FDeclareSplittingExtensionField", "Subsubsection"], Cell["First we declare a field as follows.", "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(FDeclareField[K, {a^3 - 3}, {2}]\)], "Input"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"----Details of field \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["K", ShowStringCharacters->True, NumberMarks->True], InputForm[ K], Editable->True, AutoDelete->True], "\[InvisibleSpace]", "\<\"----\"\>"}], SequenceForm[ "----Details of field ", InputForm[ K], "----"], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Algebraic Numbers: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({a}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ {a}], Editable->True, AutoDelete->True]}], SequenceForm[ " Algebraic Numbers: ", InputForm[ {a}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Dimension over Q: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["3", ShowStringCharacters->True, NumberMarks->True], InputForm[ 3], Editable->True, AutoDelete->True]}], SequenceForm[ " Dimension over Q: ", InputForm[ 3]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Minimal Polynomials: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({\(-3\)\ + \ a^3}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ { Plus[ -3, Power[ a, 3]]}], Editable->True, AutoDelete->True]}], SequenceForm[ " Minimal Polynomials: ", InputForm[ { Plus[ -3, Power[ a, 3]]}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[\(" Root Approximations: \ "\[InvisibleSpace]{\(-0.72112478515370419116081915539005275891`19.\ 84948500216801\) - 1.24902476648340647941317954376325214377`20.088045629527844\ \ \[ImaginaryI]}\), SequenceForm[ " Root Approximations: ", { Complex[ -0.7211247851537041912`19.84948500216801, \ -1.2490247664834064794`20.088045629527844]}], Editable->False]], "Print"], Cell[BoxData[ \("----"\)], "Print"] }, Open ]], Cell[TextData[{ "Now we declare an extension field ", StyleBox["L", FontSlant->"Italic"], " of ", StyleBox["K", FontSlant->"Italic"], " by adjoining a square root of the algebraic number ", StyleBox["a", FontSlant->"Italic"], ". We call this number ", StyleBox["b", FontSlant->"Italic"], "." }], "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(FDeclareExtensionField[L, K, {b^2 - a}]\)], "Input"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"----Details of field \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["L", ShowStringCharacters->True, NumberMarks->True], InputForm[ L], Editable->True, AutoDelete->True], "\[InvisibleSpace]", "\<\"----\"\>"}], SequenceForm[ "----Details of field ", InputForm[ L], "----"], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Algebraic Numbers: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({a, \ b}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ {a, b}], Editable->True, AutoDelete->True]}], SequenceForm[ " Algebraic Numbers: ", InputForm[ {a, b}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Dimension over Q: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["6", ShowStringCharacters->True, NumberMarks->True], InputForm[ 6], Editable->True, AutoDelete->True]}], SequenceForm[ " Dimension over Q: ", InputForm[ 6]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Minimal Polynomials: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({\(-3\)\ + \ a^3, \ \(-a\)\ + \ b^2}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ { Plus[ -3, Power[ a, 3]], Plus[ Times[ -1, a], Power[ b, 2]]}], Editable->True, AutoDelete->True]}], SequenceForm[ " Minimal Polynomials: ", InputForm[ { Plus[ -3, Power[ a, 3]], Plus[ Times[ -1, a], Power[ b, 2]]}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[\(" Root Approximations: \ "\[InvisibleSpace]{\(-0.72112478515370419116081915539005275891`19.\ 84948500216801\) - 1.24902476648340647941317954376325214377`20.088045629527844\ \ \[ImaginaryI], \ \(-0.60046847758800136333773269367477142315`19.84948500216801\) + 1.04004191152595205726502841217894269317`20.088045629527844\ \ \[ImaginaryI]}\), SequenceForm[ " Root Approximations: ", { Complex[ -0.7211247851537041912`19.84948500216801, \ -1.2490247664834064794`20.088045629527844], Complex[ -0.60046847758800136334`19.84948500216801, 1.04004191152595205727`20.088045629527844]}], Editable->False]], "Print"], Cell[BoxData[ \("----"\)], "Print"] }, Open ]], Cell[TextData[{ "Now ", StyleBox["L", FontSlant->"Italic"], " is a splitting field extension of ", StyleBox["K", FontSlant->"Italic"], "; it is a degree 2 extension given by a square root. We check that this \ is true using FNormalQ. However, AlgFields will not compute its Galois group \ since it was not declared as a splitting extension field. We do so and \ compute the Galois group." }], "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(FNormalQ[L, K]\)], "Input"], Cell[BoxData[ \(True\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(FGaloisGroup[L, K]\)], "Input"], Cell[BoxData[ \(FGaloisGroup::"incorrectinput" \(\(:\)\(\ \)\) "Incorrect input to FGaloisGroup: not declared splitting field"\)], \ "Message"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(FDeclareSplittingExtensionField[L, K, x^2 - a, {b, bb}]\)], "Input"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"----Details of field \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["L", ShowStringCharacters->True, NumberMarks->True], InputForm[ L], Editable->True, AutoDelete->True], "\[InvisibleSpace]", "\<\"----\"\>"}], SequenceForm[ "----Details of field ", InputForm[ L], "----"], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Algebraic Numbers: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({a, \ b, \ bb}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ {a, b, bb}], Editable->True, AutoDelete->True]}], SequenceForm[ " Algebraic Numbers: ", InputForm[ {a, b, bb}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Dimension over Q: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["6", ShowStringCharacters->True, NumberMarks->True], InputForm[ 6], Editable->True, AutoDelete->True]}], SequenceForm[ " Dimension over Q: ", InputForm[ 6]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Minimal Polynomials: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({\(-3\)\ + \ a^3, \ \(-a\)\ + \ b^2, \ b\ + \ bb}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ { Plus[ -3, Power[ a, 3]], Plus[ Times[ -1, a], Power[ b, 2]], Plus[ b, bb]}], Editable->True, AutoDelete->True]}], SequenceForm[ " Minimal Polynomials: ", InputForm[ { Plus[ -3, Power[ a, 3]], Plus[ Times[ -1, a], Power[ b, 2]], Plus[ b, bb]}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[\(" Root Approximations: \ "\[InvisibleSpace]{\(-0.72112478515370419116081915539005275891`19.\ 84948500216801\) - 1.24902476648340647941317954376325214377`20.088045629527844\ \ \[ImaginaryI], \ \(-0.60046847758800136333773269367477142315`19.84948500216801\) + 1.04004191152595205726502841217894269317`20.088045629527844\ \ \[ImaginaryI], 0.60046847758800136333773269367477182282`19.84948500216801 - 1.04004191152595205726502841217894269499`20.088045629527844\ \ \[ImaginaryI]}\), SequenceForm[ " Root Approximations: ", { Complex[ -0.7211247851537041912`19.84948500216801, \ -1.2490247664834064794`20.088045629527844], Complex[ -0.60046847758800136334`19.84948500216801, 1.04004191152595205727`20.088045629527844], Complex[ 0.60046847758800136334`19.84948500216801, \ -1.04004191152595205727`20.088045629527844]}], Editable->False]], "Print"], Cell[BoxData[ \("----"\)], "Print"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(FGaloisGroup[L, K]\)], "Input"], Cell[BoxData[ \({{{b, bb}, {b, bb}}, {{b, bb}, {bb, b}}}\)], "Output"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell["FDeclareSplittingField", "Subsubsection"], Cell[TextData[{ "We declare the splitting field ", StyleBox["M", FontSlant->"Italic"], " of ", Cell[BoxData[ \(TraditionalForm\`x\^3\)]], "- 3 over the rationals and determine its Galois group." }], "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(FDeclareSplittingField[M, x^3 - 3]\)], "Input"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"----Details of field \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["M", ShowStringCharacters->True, NumberMarks->True], InputForm[ M], Editable->True, AutoDelete->True], "\[InvisibleSpace]", "\<\"----\"\>"}], SequenceForm[ "----Details of field ", InputForm[ M], "----"], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Algebraic Numbers: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({r4, \ r5, \ r6}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ {r4, r5, r6}], Editable->True, AutoDelete->True]}], SequenceForm[ " Algebraic Numbers: ", InputForm[ {r4, r5, r6}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Dimension over Q: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["6", ShowStringCharacters->True, NumberMarks->True], InputForm[ 6], Editable->True, AutoDelete->True]}], SequenceForm[ " Dimension over Q: ", InputForm[ 6]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Minimal Polynomials: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({\(-3\)\ + \ r4^3, \ r4^2\ + \ r4*r5\ + \ r5^2, \ r4\ + \ r5\ + \ r6}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ { Plus[ -3, Power[ r4, 3]], Plus[ Power[ r4, 2], Times[ r4, r5], Power[ r5, 2]], Plus[ r4, r5, r6]}], Editable->True, AutoDelete->True]}], SequenceForm[ " Minimal Polynomials: ", InputForm[ { Plus[ -3, Power[ r4, 3]], Plus[ Power[ r4, 2], Times[ r4, r5], Power[ r5, 2]], Plus[ r4, r5, r6]}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[\(" Root Approximations: \ "\[InvisibleSpace]{1.44224957030740838232163831078010508975`20. , \ \(-0.72112478515370419116081915539005275891`19.84948500216801\) - 1.24902476648340647941317954376325214377`20.088045629527844\ \ \[ImaginaryI], \ \(-0.72112478515370419116081915539005275891`19.84948500216801\) + 1.24902476648340647941317954376325214377`20.088045629527844\ \ \[ImaginaryI]}\), SequenceForm[ " Root Approximations: ", {1.4422495703074083823`20., Complex[ -0.7211247851537041912`19.84948500216801, \ -1.2490247664834064794`20.088045629527844], Complex[ -0.7211247851537041912`19.84948500216801, 1.2490247664834064794`20.088045629527844]}], Editable->False]], "Print"], Cell[BoxData[ \("----"\)], "Print"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(FGaloisGroup[M]\)], "Input"], Cell[BoxData[ \({{{r4, r5, r6}, {r4, r5, r6}}, {{r4, r5, r6}, {r4, r6, r5}}, {{r4, r5, r6}, {r5, r4, r6}}, {{r4, r5, r6}, {r5, r6, r4}}, {{r4, r5, r6}, {r6, r4, r5}}, {{r4, r5, r6}, {r6, r5, r4}}}\)], "Output"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell["FFactor, FFactorList", "Subsubsection"], Cell["We start with a splitting field.", "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(FDeclareSplittingField[M, x^3 - 3]\)], "Input"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"----Details of field \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["M", ShowStringCharacters->True, NumberMarks->True], InputForm[ M], Editable->True, AutoDelete->True], "\[InvisibleSpace]", "\<\"----\"\>"}], SequenceForm[ "----Details of field ", InputForm[ M], "----"], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Algebraic Numbers: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({r7, \ r8, \ r9}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ {r7, r8, r9}], Editable->True, AutoDelete->True]}], SequenceForm[ " Algebraic Numbers: ", InputForm[ {r7, r8, r9}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Dimension over Q: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["6", ShowStringCharacters->True, NumberMarks->True], InputForm[ 6], Editable->True, AutoDelete->True]}], SequenceForm[ " Dimension over Q: ", InputForm[ 6]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Minimal Polynomials: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({\(-3\)\ + \ r7^3, \ r7^2\ + \ r7*r8\ + \ r8^2, \ r7\ + \ r8\ + \ r9}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ { Plus[ -3, Power[ r7, 3]], Plus[ Power[ r7, 2], Times[ r7, r8], Power[ r8, 2]], Plus[ r7, r8, r9]}], Editable->True, AutoDelete->True]}], SequenceForm[ " Minimal Polynomials: ", InputForm[ { Plus[ -3, Power[ r7, 3]], Plus[ Power[ r7, 2], Times[ r7, r8], Power[ r8, 2]], Plus[ r7, r8, r9]}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[\(" Root Approximations: \ "\[InvisibleSpace]{1.44224957030740838232163831078010508975`20. , \ \(-0.72112478515370419116081915539005275891`19.84948500216801\) - 1.24902476648340647941317954376325214377`20.088045629527844\ \ \[ImaginaryI], \ \(-0.72112478515370419116081915539005275891`19.84948500216801\) + 1.24902476648340647941317954376325214377`20.088045629527844\ \ \[ImaginaryI]}\), SequenceForm[ " Root Approximations: ", {1.4422495703074083823`20., Complex[ -0.7211247851537041912`19.84948500216801, \ -1.2490247664834064794`20.088045629527844], Complex[ -0.7211247851537041912`19.84948500216801, 1.2490247664834064794`20.088045629527844]}], Editable->False]], "Print"], Cell[BoxData[ \("----"\)], "Print"] }, Open ]], Cell[TextData[{ "We factor ", Cell[BoxData[ \(TraditionalForm\`x\^3\)]], "- 3 in two different ways over ", StyleBox["M", FontSlant->"Italic"], "." }], "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(FFactor[x^3 - 3, M]\)], "Input"], Cell[BoxData[ \(\((r7 - x)\)\ \((r8 - x)\)\ \((r7 + r8 + x)\)\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(FFactorList[x^3 - 3, M]\)], "Input"], Cell[BoxData[ \({{1, 1}, {r7 - x, 1}, {r8 - x, 1}, {r7 + r8 + x, 1}}\)], "Output"] }, Open ]], Cell["\<\ The exponent of each factor is 1, and the constant multipliying the entire \ polynomial may be taken to be 1. To see a more interesting case, we do the \ following.\ \>", "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(FFactorList[ 6\ r8 + \((\(-6\) - 6\ r7\^2\ r8)\)\ x + \((6\ r7\^2 + 6\ r7\ r8)\)\ x\^2 + \((\(-6\)\ r7 - 2\ r8)\)\ x\^3 + 2\ x\^4, M]\)], "Input"], Cell[BoxData[ \({{2, 1}, {r7 - x, 3}, {r8 - x, 1}}\)], "Output"] }, Open ]], Cell[TextData[{ "Hence the polynomial factors as 2 * (", StyleBox["r7 - ", FontSlant->"Italic"], Cell[BoxData[ \(TraditionalForm\`\(\(x\)\()\)\)\^3\)]], " * (", StyleBox["r8 - x", FontSlant->"Italic"], ")." }], "Text"] }, Open ]], Cell[CellGroupData[{ Cell["FFindFactor", "Subsubsection"], Cell[TextData[{ "We begin with a splitting field ", StyleBox["M", FontSlant->"Italic"], ". ", " " }], "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(FDeclareSplittingField[M, x^3 - 3]\)], "Input"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"----Details of field \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["M", ShowStringCharacters->True, NumberMarks->True], InputForm[ M], Editable->True, AutoDelete->True], "\[InvisibleSpace]", "\<\"----\"\>"}], SequenceForm[ "----Details of field ", InputForm[ M], "----"], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Algebraic Numbers: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({r10, \ r11, \ r12}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ {r10, r11, r12}], Editable->True, AutoDelete->True]}], SequenceForm[ " Algebraic Numbers: ", InputForm[ {r10, r11, r12}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Dimension over Q: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["6", ShowStringCharacters->True, NumberMarks->True], InputForm[ 6], Editable->True, AutoDelete->True]}], SequenceForm[ " Dimension over Q: ", InputForm[ 6]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Minimal Polynomials: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({\(-3\)\ + \ r10^3, \ r10^2\ + \ r10*r11\ + \ r11^2, \ r10\ + \ r11\ + \ r12}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ { Plus[ -3, Power[ r10, 3]], Plus[ Power[ r10, 2], Times[ r10, r11], Power[ r11, 2]], Plus[ r10, r11, r12]}], Editable->True, AutoDelete->True]}], SequenceForm[ " Minimal Polynomials: ", InputForm[ { Plus[ -3, Power[ r10, 3]], Plus[ Power[ r10, 2], Times[ r10, r11], Power[ r11, 2]], Plus[ r10, r11, r12]}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[\(" Root Approximations: \ "\[InvisibleSpace]{1.44224957030740838232163831078010508975`20. , \ \(-0.72112478515370419116081915539005275891`19.84948500216801\) - 1.24902476648340647941317954376325214377`20.088045629527844\ \ \[ImaginaryI], \ \(-0.72112478515370419116081915539005275891`19.84948500216801\) + 1.24902476648340647941317954376325214377`20.088045629527844\ \ \[ImaginaryI]}\), SequenceForm[ " Root Approximations: ", {1.4422495703074083823`20., Complex[ -0.7211247851537041912`19.84948500216801, \ -1.2490247664834064794`20.088045629527844], Complex[ -0.7211247851537041912`19.84948500216801, 1.2490247664834064794`20.088045629527844]}], Editable->False]], "Print"], Cell[BoxData[ \("----"\)], "Print"] }, Open ]], Cell[TextData[{ "Now we seek the factor of our original polynomial ", Cell[BoxData[ \(TraditionalForm\`x\^3\)]], "- 3 which has ", StyleBox["r11", FontSlant->"Italic"], " as a root. Since we are factoring over ", StyleBox["M", FontSlant->"Italic"], ", this factor must be ", StyleBox["x - r11", FontSlant->"Italic"], ". " }], "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(FFindFactor[x^3 - 3, r11, M]\)], "Input"], Cell[BoxData[ \(r11 - x\)], "Output"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell["FFindFactorRt", "Subsubsection"], Cell["First we declare two fields.", "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(FDeclareField[K, {a^3 - 3}, {2}]\)], "Input"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"----Details of field \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["K", ShowStringCharacters->True, NumberMarks->True], InputForm[ K], Editable->True, AutoDelete->True], "\[InvisibleSpace]", "\<\"----\"\>"}], SequenceForm[ "----Details of field ", InputForm[ K], "----"], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Algebraic Numbers: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({a}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ {a}], Editable->True, AutoDelete->True]}], SequenceForm[ " Algebraic Numbers: ", InputForm[ {a}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Dimension over Q: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["3", ShowStringCharacters->True, NumberMarks->True], InputForm[ 3], Editable->True, AutoDelete->True]}], SequenceForm[ " Dimension over Q: ", InputForm[ 3]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Minimal Polynomials: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({\(-3\)\ + \ a^3}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ { Plus[ -3, Power[ a, 3]]}], Editable->True, AutoDelete->True]}], SequenceForm[ " Minimal Polynomials: ", InputForm[ { Plus[ -3, Power[ a, 3]]}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[\(" Root Approximations: \ "\[InvisibleSpace]{\(-0.72112478515370419116081915539005275891`19.\ 84948500216801\) - 1.24902476648340647941317954376325214377`20.088045629527844\ \ \[ImaginaryI]}\), SequenceForm[ " Root Approximations: ", { Complex[ -0.7211247851537041912`19.84948500216801, \ -1.2490247664834064794`20.088045629527844]}], Editable->False]], "Print"], Cell[BoxData[ \("----"\)], "Print"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(FDeclareSplittingField[M, x^3 - 3]\)], "Input"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"----Details of field \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["M", ShowStringCharacters->True, NumberMarks->True], InputForm[ M], Editable->True, AutoDelete->True], "\[InvisibleSpace]", "\<\"----\"\>"}], SequenceForm[ "----Details of field ", InputForm[ M], "----"], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Algebraic Numbers: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({r13, \ r14, \ r15}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ {r13, r14, r15}], Editable->True, AutoDelete->True]}], SequenceForm[ " Algebraic Numbers: ", InputForm[ {r13, r14, r15}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Dimension over Q: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["6", ShowStringCharacters->True, NumberMarks->True], InputForm[ 6], Editable->True, AutoDelete->True]}], SequenceForm[ " Dimension over Q: ", InputForm[ 6]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Minimal Polynomials: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({\(-3\)\ + \ r13^3, \ r13^2\ + \ r13*r14\ + \ r14^2, \ r13\ + \ r14\ + \ r15}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ { Plus[ -3, Power[ r13, 3]], Plus[ Power[ r13, 2], Times[ r13, r14], Power[ r14, 2]], Plus[ r13, r14, r15]}], Editable->True, AutoDelete->True]}], SequenceForm[ " Minimal Polynomials: ", InputForm[ { Plus[ -3, Power[ r13, 3]], Plus[ Power[ r13, 2], Times[ r13, r14], Power[ r14, 2]], Plus[ r13, r14, r15]}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[\(" Root Approximations: \ "\[InvisibleSpace]{1.44224957030740838232163831078010508975`20. , \ \(-0.72112478515370419116081915539005275891`19.84948500216801\) - 1.24902476648340647941317954376325214377`20.088045629527844\ \ \[ImaginaryI], \ \(-0.72112478515370419116081915539005275891`19.84948500216801\) + 1.24902476648340647941317954376325214377`20.088045629527844\ \ \[ImaginaryI]}\), SequenceForm[ " Root Approximations: ", {1.4422495703074083823`20., Complex[ -0.7211247851537041912`19.84948500216801, \ -1.2490247664834064794`20.088045629527844], Complex[ -0.7211247851537041912`19.84948500216801, 1.2490247664834064794`20.088045629527844]}], Editable->False]], "Print"], Cell[BoxData[ \("----"\)], "Print"] }, Open ]], Cell[TextData[{ "We seek the appropriate factor of ", Cell[BoxData[ \(TraditionalForm\`x\^3 - \ 3\)]], "over ", StyleBox["M", FontSlant->"Italic"], " which is equal to ", StyleBox["a. ", FontSlant->"Italic"], "Now by examining the complex approximations, we see that ", StyleBox["a = r14", FontSlant->"Italic"], ". However, we may still find the appropriate factor with root ", StyleBox["a", FontSlant->"Italic"], " without this knowledge, as follows. We first find the internal root \ number corresponding to ", StyleBox["a", FontSlant->"Italic"], ". (In fact, we used this number when we originally declared the field.)" }], "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(FRootNumber[x^3 - 3, a, K]\)], "Input"], Cell[BoxData[ \(2\)], "Output"] }, Open ]], Cell[TextData[{ "Now we ask for the factor giving a root with the correct number; in this \ way we refer to ", StyleBox["a", FontSlant->"Italic"], " without using an expression in ", StyleBox["a", FontSlant->"Italic"], ". " }], "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(FFindFactorRt[x^3 - 3, Root[x^3 - 3, 2], M]\)], "Input"], Cell[BoxData[ \(r14 - x\)], "Output"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell["FGaloisGroup", "Subsubsection"], Cell[TextData[{ "We declare the splitting field ", StyleBox["M", FontSlant->"Italic"], " of ", Cell[BoxData[ \(TraditionalForm\`x\^3\)]], "- 3 over the rationals and determine its Galois group." }], "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(FDeclareSplittingField[M, x^3 - 3]\)], "Input"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"----Details of field \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["M", ShowStringCharacters->True, NumberMarks->True], InputForm[ M], Editable->True, AutoDelete->True], "\[InvisibleSpace]", "\<\"----\"\>"}], SequenceForm[ "----Details of field ", InputForm[ M], "----"], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Algebraic Numbers: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({r16, \ r17, \ r18}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ {r16, r17, r18}], Editable->True, AutoDelete->True]}], SequenceForm[ " Algebraic Numbers: ", InputForm[ {r16, r17, r18}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Dimension over Q: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["6", ShowStringCharacters->True, NumberMarks->True], InputForm[ 6], Editable->True, AutoDelete->True]}], SequenceForm[ " Dimension over Q: ", InputForm[ 6]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Minimal Polynomials: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({\(-3\)\ + \ r16^3, \ r16^2\ + \ r16*r17\ + \ r17^2, \ r16\ + \ r17\ + \ r18}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ { Plus[ -3, Power[ r16, 3]], Plus[ Power[ r16, 2], Times[ r16, r17], Power[ r17, 2]], Plus[ r16, r17, r18]}], Editable->True, AutoDelete->True]}], SequenceForm[ " Minimal Polynomials: ", InputForm[ { Plus[ -3, Power[ r16, 3]], Plus[ Power[ r16, 2], Times[ r16, r17], Power[ r17, 2]], Plus[ r16, r17, r18]}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[\(" Root Approximations: \ "\[InvisibleSpace]{1.44224957030740838232163831078010508975`20. , \ \(-0.72112478515370419116081915539005275891`19.84948500216801\) - 1.24902476648340647941317954376325214377`20.088045629527844\ \ \[ImaginaryI], \ \(-0.72112478515370419116081915539005275891`19.84948500216801\) + 1.24902476648340647941317954376325214377`20.088045629527844\ \ \[ImaginaryI]}\), SequenceForm[ " Root Approximations: ", {1.4422495703074083823`20., Complex[ -0.7211247851537041912`19.84948500216801, \ -1.2490247664834064794`20.088045629527844], Complex[ -0.7211247851537041912`19.84948500216801, 1.2490247664834064794`20.088045629527844]}], Editable->False]], "Print"], Cell[BoxData[ \("----"\)], "Print"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(grpM\ = \ FGaloisGroup[M]\)], "Input"], Cell[BoxData[ \({{{r16, r17, r18}, {r16, r17, r18}}, {{r16, r17, r18}, {r16, r18, r17}}, {{r16, r17, r18}, {r17, r16, r18}}, {{r16, r17, r18}, {r17, r18, r16}}, {{r16, r17, r18}, {r18, r16, r17}}, {{r16, r17, r18}, {r18, r17, r16}}}\)], "Output"] }, Open ]], Cell[TextData[{ "Notice that the first pair of lists is simply ", StyleBox["r16, r17, r18", FontSlant->"Italic"], " twice, indicating the automorphism induced by ", StyleBox["r16->r16", FontSlant->"Italic"], ", ", StyleBox["r17->r17", FontSlant->"Italic"], ", ", StyleBox["r18->r18", FontSlant->"Italic"], ". The second and third are transpositions (exchanging ", StyleBox["r17 ", FontSlant->"Italic"], "and ", StyleBox["r18", FontSlant->"Italic"], ", and exchanging ", StyleBox["r16 ", FontSlant->"Italic"], "and ", StyleBox["r17", FontSlant->"Italic"], ", respectively). The fourth is induced by a three-cycle ", StyleBox["r16->r17->r18->r16", FontSlant->"Italic"], ". We'll check that this map is an automorphism, which it must be since it \ is an element of the Galois group. " }], "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(FMapIsIsoQ[M, grpM[\([4]\)]]\)], "Input"], Cell[BoxData[ \(True\)], "Output"] }, Open ]], Cell[TextData[{ "Now let's use this pair to apply the corresponding automorphism to ", StyleBox["r16*r17", FontSlant->"Italic"], "." }], "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(FMap[r16*r17, M, grpM[\([4]\)]]\)], "Input"], Cell[BoxData[ \(r16\^2\)], "Output"] }, Open ]], Cell[TextData[{ "At first glance this may seem incorrect, but notice that ", StyleBox["r17*r18", FontSlant->"Italic"], " = ", Cell[BoxData[ \(TraditionalForm\`r16\^2\)]], " in ", StyleBox["M", FontSlant->"Italic"], ":" }], "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(FSimplifyE[r16^2 - r17*r18, M]\)], "Input"], Cell[BoxData[ \(0\)], "Output"] }, Open ]], Cell[TextData[{ "FMap simply returned the reduced form of ", StyleBox["r17*r18 ", FontSlant->"Italic"], "in ", StyleBox["M", FontSlant->"Italic"], "." }], "Text"] }, Open ]], Cell[CellGroupData[{ Cell["FGaloisResolvent", "Subsubsection"], Cell["\<\ We find the Galois resolvent associated to the alternating group on three \ letters inside the symmetric group on three letters. It is a degree 2 \ polynomial.\ \>", "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(a3ins3 = FGaloisResolvent[\((x1 - x2)\)*\((x1 - x3)\)*\((x2 - x3)\), {x1, x2, x3}, X]\)], "Input"], Cell[BoxData[ \(X\^2 - \[Sigma]1\^2\ \[Sigma]2\^2 + 4\ \[Sigma]2\^3 + 4\ \[Sigma]1\^3\ \[Sigma]3 - 18\ \[Sigma]1\ \[Sigma]2\ \[Sigma]3 + 27\ \[Sigma]3\^2\)], "Output"] }, Open ]], Cell[TextData[{ "We can evaluate this resolvent for the polynomial ", Cell[BoxData[ \(TraditionalForm\`x\^3\)]], "-3." }], "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(FSubstituteInGaloisResolvent[a3ins3, x^3 - 3]\)], "Input"], Cell[BoxData[ \(243 + X\^2\)], "Output"] }, Open ]], Cell[TextData[{ "Alternatively, we can perform these operations at once, saving the \ resolvent as ", StyleBox["myresolv", FontSlant->"Italic"], ". " }], "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(FGaloisResolvent[\((x1 - x2)\)*\((x1 - x3)\)*\((x2 - x3)\), {x1, x2, x3}, X, x^3 - 3, \ myresolv]\)], "Input"], Cell[BoxData[ \(243 + X\^2\)], "Output"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell["FInvert", "Subsubsection"], Cell["First we declare a field as follows.", "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(FDeclareField[K, {a^3 - 3}, {2}]\)], "Input"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"----Details of field \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["K", ShowStringCharacters->True, NumberMarks->True], InputForm[ K], Editable->True, AutoDelete->True], "\[InvisibleSpace]", "\<\"----\"\>"}], SequenceForm[ "----Details of field ", InputForm[ K], "----"], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Algebraic Numbers: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({a}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ {a}], Editable->True, AutoDelete->True]}], SequenceForm[ " Algebraic Numbers: ", InputForm[ {a}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Dimension over Q: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["3", ShowStringCharacters->True, NumberMarks->True], InputForm[ 3], Editable->True, AutoDelete->True]}], SequenceForm[ " Dimension over Q: ", InputForm[ 3]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Minimal Polynomials: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({\(-3\)\ + \ a^3}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ { Plus[ -3, Power[ a, 3]]}], Editable->True, AutoDelete->True]}], SequenceForm[ " Minimal Polynomials: ", InputForm[ { Plus[ -3, Power[ a, 3]]}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[\(" Root Approximations: \ "\[InvisibleSpace]{\(-0.72112478515370419116081915539005275891`19.\ 84948500216801\) - 1.24902476648340647941317954376325214377`20.088045629527844\ \ \[ImaginaryI]}\), SequenceForm[ " Root Approximations: ", { Complex[ -0.7211247851537041912`19.84948500216801, \ -1.2490247664834064794`20.088045629527844]}], Editable->False]], "Print"], Cell[BoxData[ \("----"\)], "Print"] }, Open ]], Cell[TextData[{ "We find the reduced form for the expression ", Cell[BoxData[ \(TraditionalForm\`1/\((a\^2\)\)]], "+ ", StyleBox["a", FontSlant->"Italic"], ") in ", StyleBox["K.", FontSlant->"Italic"] }], "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(FInvert[a^2 + a, K]\)], "Input"], Cell[BoxData[ \(\(-\(1\/4\)\) + a\/4 + a\^2\/12\)], "Output"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell["FIrreducibleQ", "Subsubsection"], Cell["First we declare a field as follows.", "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(FDeclareField[K, {a^3 - 3}, {2}]\)], "Input"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"----Details of field \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["K", ShowStringCharacters->True, NumberMarks->True], InputForm[ K], Editable->True, AutoDelete->True], "\[InvisibleSpace]", "\<\"----\"\>"}], SequenceForm[ "----Details of field ", InputForm[ K], "----"], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Algebraic Numbers: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({a}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ {a}], Editable->True, AutoDelete->True]}], SequenceForm[ " Algebraic Numbers: ", InputForm[ {a}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Dimension over Q: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["3", ShowStringCharacters->True, NumberMarks->True], InputForm[ 3], Editable->True, AutoDelete->True]}], SequenceForm[ " Dimension over Q: ", InputForm[ 3]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Minimal Polynomials: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({\(-3\)\ + \ a^3}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ { Plus[ -3, Power[ a, 3]]}], Editable->True, AutoDelete->True]}], SequenceForm[ " Minimal Polynomials: ", InputForm[ { Plus[ -3, Power[ a, 3]]}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[\(" Root Approximations: \ "\[InvisibleSpace]{\(-0.72112478515370419116081915539005275891`19.\ 84948500216801\) - 1.24902476648340647941317954376325214377`20.088045629527844\ \ \[ImaginaryI]}\), SequenceForm[ " Root Approximations: ", { Complex[ -0.7211247851537041912`19.84948500216801, \ -1.2490247664834064794`20.088045629527844]}], Editable->False]], "Print"], Cell[BoxData[ \("----"\)], "Print"] }, Open ]], Cell[TextData[{ "We determine whether certain polynomials are irreducible over ", StyleBox["K", FontSlant->"Italic"], "." }], "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(FIrreducibleQ[a\^2 + a\ x + x\^2, K]\)], "Input"], Cell[BoxData[ \(True\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(FIrreducibleQ[a\^2 - x\^2, K]\)], "Input"], Cell[BoxData[ \(False\)], "Output"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell["FMakeTower", "Subsubsection"], Cell[TextData[{ "FMakeTower is used to redeclare a field so that algebraic numbers are \ adjoined in a different order than before. In this way reduced forms with \ respect to other sequences of algebraic numbers may be computed. We declare \ ", StyleBox["K1", FontSlant->"Italic"], " to be the rationals with the square root of 3 adjoined and ", StyleBox["K2", FontSlant->"Italic"], " to be ", StyleBox["K1", FontSlant->"Italic"], " with the square root of 5 adjoined. Then we build a tower from the \ rationals by first adjoining the square root of 15--the product of the first \ two algebraic numbers--and then adjoining the square root of 3 and the square \ root of 5." }], "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(FDeclareField[K1, {a^2 - 3}, {2}]\)], "Input"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"----Details of field \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["K1", ShowStringCharacters->True, NumberMarks->True], InputForm[ K1], Editable->True, AutoDelete->True], "\[InvisibleSpace]", "\<\"----\"\>"}], SequenceForm[ "----Details of field ", InputForm[ K1], "----"], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Algebraic Numbers: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({a}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ {a}], Editable->True, AutoDelete->True]}], SequenceForm[ " Algebraic Numbers: ", InputForm[ {a}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Dimension over Q: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["2", ShowStringCharacters->True, NumberMarks->True], InputForm[ 2], Editable->True, AutoDelete->True]}], SequenceForm[ " Dimension over Q: ", InputForm[ 2]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Minimal Polynomials: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({\(-3\)\ + \ a^2}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ { Plus[ -3, Power[ a, 2]]}], Editable->True, AutoDelete->True]}], SequenceForm[ " Minimal Polynomials: ", InputForm[ { Plus[ -3, Power[ a, 2]]}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[\(" Root Approximations: \ "\[InvisibleSpace]{1.73205080756887729352744634150587236694`20. }\), SequenceForm[ " Root Approximations: ", {1.7320508075688772935`20.}], Editable->False]], "Print"], Cell[BoxData[ \("----"\)], "Print"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(FDeclareExtensionField[K2, K1, {b^2 - 5}]\)], "Input"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"----Details of field \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["K2", ShowStringCharacters->True, NumberMarks->True], InputForm[ K2], Editable->True, AutoDelete->True], "\[InvisibleSpace]", "\<\"----\"\>"}], SequenceForm[ "----Details of field ", InputForm[ K2], "----"], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Algebraic Numbers: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({a, \ b}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ {a, b}], Editable->True, AutoDelete->True]}], SequenceForm[ " Algebraic Numbers: ", InputForm[ {a, b}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Dimension over Q: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["4", ShowStringCharacters->True, NumberMarks->True], InputForm[ 4], Editable->True, AutoDelete->True]}], SequenceForm[ " Dimension over Q: ", InputForm[ 4]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Minimal Polynomials: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({\(-3\)\ + \ a^2, \ \(-5\)\ + \ b^2}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ { Plus[ -3, Power[ a, 2]], Plus[ -5, Power[ b, 2]]}], Editable->True, AutoDelete->True]}], SequenceForm[ " Minimal Polynomials: ", InputForm[ { Plus[ -3, Power[ a, 2]], Plus[ -5, Power[ b, 2]]}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[\(" Root Approximations: \ "\[InvisibleSpace]{1.73205080756887729352744634150587236694`20. , \ \(-2.23606797749978969640917366873127623544`20. \)}\), SequenceForm[ " Root Approximations: ", { 1.7320508075688772935`20., -2.2360679774997896964`20.}], Editable->False]], "Print"], Cell[BoxData[ \("----"\)], "Print"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(FMinPoly[a*b, x, K2]\)], "Input"], Cell[BoxData[ \(\(-15\) + x\^2\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(FMakeTower[K3, KI, K2, c, a*b]\)], "Input"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"----Details of field \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["KI", ShowStringCharacters->True, NumberMarks->True], InputForm[ KI], Editable->True, AutoDelete->True], "\[InvisibleSpace]", "\<\"----\"\>"}], SequenceForm[ "----Details of field ", InputForm[ KI], "----"], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Algebraic Numbers: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({c}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ {c}], Editable->True, AutoDelete->True]}], SequenceForm[ " Algebraic Numbers: ", InputForm[ {c}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Dimension over Q: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["2", ShowStringCharacters->True, NumberMarks->True], InputForm[ 2], Editable->True, AutoDelete->True]}], SequenceForm[ " Dimension over Q: ", InputForm[ 2]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Minimal Polynomials: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({\(-15\)\ + \ c^2}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ { Plus[ -15, Power[ c, 2]]}], Editable->True, AutoDelete->True]}], SequenceForm[ " Minimal Polynomials: ", InputForm[ { Plus[ -15, Power[ c, 2]]}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[\(" Root Approximations: \ "\[InvisibleSpace]{\(-3.87298334620741688517926539978239961083`20. \)}\), SequenceForm[ " Root Approximations: ", {-3.8729833462074168852`20.}], Editable->False]], "Print"], Cell[BoxData[ \("----"\)], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"----Details of field \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["K3", ShowStringCharacters->True, NumberMarks->True], InputForm[ K3], Editable->True, AutoDelete->True], "\[InvisibleSpace]", "\<\"----\"\>"}], SequenceForm[ "----Details of field ", InputForm[ K3], "----"], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Algebraic Numbers: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({c, \ a, \ b}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ {c, a, b}], Editable->True, AutoDelete->True]}], SequenceForm[ " Algebraic Numbers: ", InputForm[ {c, a, b}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Dimension over Q: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["4", ShowStringCharacters->True, NumberMarks->True], InputForm[ 4], Editable->True, AutoDelete->True]}], SequenceForm[ " Dimension over Q: ", InputForm[ 4]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Minimal Polynomials: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({\(-15\)\ + \ c^2, \ \(-3\)\ + \ a^2, \ b\ - \ \((a*c)\)/3}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ { Plus[ -15, Power[ c, 2]], Plus[ -3, Power[ a, 2]], Plus[ b, Times[ Rational[ -1, 3], a, c]]}], Editable->True, AutoDelete->True]}], SequenceForm[ " Minimal Polynomials: ", InputForm[ { Plus[ -15, Power[ c, 2]], Plus[ -3, Power[ a, 2]], Plus[ b, Times[ Rational[ -1, 3], a, c]]}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[\(" Root Approximations: \ "\[InvisibleSpace]{\(-3.87298334620741688517926539978239961083`20. \), 1.73205080756887729352744634150587236694`20. , \ \(-2.23606797749978969640917366873127623544`20. \)}\), SequenceForm[ " Root Approximations: ", {-3.8729833462074168852`20., 1.7320508075688772935`20., -2.2360679774997896964`20.}], Editable->False]], "Print"], Cell[BoxData[ \("----"\)], "Print"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell["FMap, FMapIsIsoQ", "Subsubsection"], Cell[TextData[{ "We declare the splitting field ", StyleBox["M", FontSlant->"Italic"], " of ", Cell[BoxData[ \(TraditionalForm\`x\^3\)]], "- 3 over the rationals and determine its Galois group." }], "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(FDeclareSplittingField[M, x^3 - 3]\)], "Input"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"----Details of field \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["M", ShowStringCharacters->True, NumberMarks->True], InputForm[ M], Editable->True, AutoDelete->True], "\[InvisibleSpace]", "\<\"----\"\>"}], SequenceForm[ "----Details of field ", InputForm[ M], "----"], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Algebraic Numbers: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({r19, \ r20, \ r21}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ {r19, r20, r21}], Editable->True, AutoDelete->True]}], SequenceForm[ " Algebraic Numbers: ", InputForm[ {r19, r20, r21}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Dimension over Q: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["6", ShowStringCharacters->True, NumberMarks->True], InputForm[ 6], Editable->True, AutoDelete->True]}], SequenceForm[ " Dimension over Q: ", InputForm[ 6]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Minimal Polynomials: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({\(-3\)\ + \ r19^3, \ r19^2\ + \ r19*r20\ + \ r20^2, \ r19\ + \ r20\ + \ r21}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ { Plus[ -3, Power[ r19, 3]], Plus[ Power[ r19, 2], Times[ r19, r20], Power[ r20, 2]], Plus[ r19, r20, r21]}], Editable->True, AutoDelete->True]}], SequenceForm[ " Minimal Polynomials: ", InputForm[ { Plus[ -3, Power[ r19, 3]], Plus[ Power[ r19, 2], Times[ r19, r20], Power[ r20, 2]], Plus[ r19, r20, r21]}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[\(" Root Approximations: \ "\[InvisibleSpace]{1.44224957030740838232163831078010508975`20. , \ \(-0.72112478515370419116081915539005275891`19.84948500216801\) - 1.24902476648340647941317954376325214377`20.088045629527844\ \ \[ImaginaryI], \ \(-0.72112478515370419116081915539005275891`19.84948500216801\) + 1.24902476648340647941317954376325214377`20.088045629527844\ \ \[ImaginaryI]}\), SequenceForm[ " Root Approximations: ", {1.4422495703074083823`20., Complex[ -0.7211247851537041912`19.84948500216801, \ -1.2490247664834064794`20.088045629527844], Complex[ -0.7211247851537041912`19.84948500216801, 1.2490247664834064794`20.088045629527844]}], Editable->False]], "Print"], Cell[BoxData[ \("----"\)], "Print"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(grpM\ = \ FGaloisGroup[M]\)], "Input"], Cell[BoxData[ \({{{r19, r20, r21}, {r19, r20, r21}}, {{r19, r20, r21}, {r19, r21, r20}}, {{r19, r20, r21}, {r20, r19, r21}}, {{r19, r20, r21}, {r20, r21, r19}}, {{r19, r20, r21}, {r21, r19, r20}}, {{r19, r20, r21}, {r21, r20, r19}}}\)], "Output"] }, Open ]], Cell[TextData[{ "Notice that the first pair of lists is simply ", StyleBox["r19, r20, r21", FontSlant->"Italic"], " twice, indicating the automorphism induced by ", StyleBox["r19->r19", FontSlant->"Italic"], ", ", StyleBox["r20->r20", FontSlant->"Italic"], ", ", StyleBox["r21->r21", FontSlant->"Italic"], ". The second and third are transpositions (exchanging ", StyleBox["r20 ", FontSlant->"Italic"], "and ", StyleBox["r21", FontSlant->"Italic"], ", and exchanging ", StyleBox["r19 ", FontSlant->"Italic"], "and ", StyleBox["r20", FontSlant->"Italic"], ", respectively). The fourth is induced by a three-cycle ", StyleBox["r19->r20->r21->r19", FontSlant->"Italic"], ". We'll check that this map is an automorphism, which it must be since it \ is an element of the Galois group. " }], "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(FMapIsIsoQ[M, grpM[\([4]\)]]\)], "Input"], Cell[BoxData[ \(True\)], "Output"] }, Open ]], Cell[TextData[{ "Now l", "et's use this pair to apply the corresponding automorphism to ", StyleBox["r19*r20", FontSlant->"Italic"], "." }], "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(FMap[r19*r20, M, grpM[\([4]\)]]\)], "Input"], Cell[BoxData[ \(r19\^2\)], "Output"] }, Open ]], Cell[TextData[{ "At first glance this may seem incorrect, but notice that ", StyleBox["r20*r21", FontSlant->"Italic"], " = ", Cell[BoxData[ FormBox[ SuperscriptBox[ StyleBox["r19", FontSlant->"Italic"], "2"], TraditionalForm]]], " in ", StyleBox["M", FontSlant->"Italic"], ":" }], "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(FSimplifyE[r19^2 - r20*r21, M]\)], "Input"], Cell[BoxData[ \(0\)], "Output"] }, Open ]], Cell[TextData[{ "FMap simply returned the reduced form of ", StyleBox["r20*r21 ", FontSlant->"Italic"], "in ", StyleBox["M", FontSlant->"Italic"], "." }], "Text"], Cell["\<\ Now we examine an extension which has Galois group the alternating group of \ degree 3, checking that there is a permutation of the roots, transposing two \ roots, which is not an automorphism.\ \>", "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(FDeclareSplittingField[MM, x^3 - 3*x + 1]\)], "Input"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"----Details of field \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["MM", ShowStringCharacters->True, NumberMarks->True], InputForm[ MM], Editable->True, AutoDelete->True], "\[InvisibleSpace]", "\<\"----\"\>"}], SequenceForm[ "----Details of field ", InputForm[ MM], "----"], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Algebraic Numbers: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({r22, \ r23, \ r24}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ {r22, r23, r24}], Editable->True, AutoDelete->True]}], SequenceForm[ " Algebraic Numbers: ", InputForm[ {r22, r23, r24}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Dimension over Q: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["3", ShowStringCharacters->True, NumberMarks->True], InputForm[ 3], Editable->True, AutoDelete->True]}], SequenceForm[ " Dimension over Q: ", InputForm[ 3]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Minimal Polynomials: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({1\ - \ 3*r22\ + \ r22^3, \ \(-2\)\ + \ r22\ + \ r22^2\ + \ r23, \ 2\ - \ r22^2\ + \ r24}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ { Plus[ 1, Times[ -3, r22], Power[ r22, 3]], Plus[ -2, r22, Power[ r22, 2], r23], Plus[ 2, Times[ -1, Power[ r22, 2]], r24]}], Editable->True, AutoDelete->True]}], SequenceForm[ " Minimal Polynomials: ", InputForm[ { Plus[ 1, Times[ -3, r22], Power[ r22, 3]], Plus[ -2, r22, Power[ r22, 2], r23], Plus[ 2, Times[ -1, Power[ r22, 2]], r24]}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[\(" Root Approximations: \ "\[InvisibleSpace]{\(-1.87938524157181676810821855464945723094`20. \), 0.34729635533386069770343325353862975285`20. , 1.53208888623795607040478530111083119594`20. }\), SequenceForm[ " Root Approximations: ", {-1.8793852415718167681`20., 0.3472963553338606977`20., 1.5320888862379560704`20.}], Editable->False]], "Print"], Cell[BoxData[ \("----"\)], "Print"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(FGaloisGroup[MM]\)], "Input"], Cell[BoxData[ \({{{r22, r23, r24}, {r22, r23, r24}}, {{r22, r23, r24}, {r23, r24, r22}}, {{r22, r23, r24}, {r24, r22, r23}}}\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(FMapIsIsoQ[MM, {{r22, r23, r24}, {r22, r24, r23}}]\)], "Input"], Cell[BoxData[ \(False\)], "Output"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell["FMinPoly", "Subsubsection"], Cell[TextData[{ "We declare the splitting field ", StyleBox["M", FontSlant->"Italic"], " of ", Cell[BoxData[ \(TraditionalForm\`x\^3\)]], "- 3 and determine the minimal polynomials of two elements." }], "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(FDeclareSplittingField[M, x^3 - 3]\)], "Input"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"----Details of field \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["M", ShowStringCharacters->True, NumberMarks->True], InputForm[ M], Editable->True, AutoDelete->True], "\[InvisibleSpace]", "\<\"----\"\>"}], SequenceForm[ "----Details of field ", InputForm[ M], "----"], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Algebraic Numbers: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({r25, \ r26, \ r27}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ {r25, r26, r27}], Editable->True, AutoDelete->True]}], SequenceForm[ " Algebraic Numbers: ", InputForm[ {r25, r26, r27}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Dimension over Q: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["6", ShowStringCharacters->True, NumberMarks->True], InputForm[ 6], Editable->True, AutoDelete->True]}], SequenceForm[ " Dimension over Q: ", InputForm[ 6]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Minimal Polynomials: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({\(-3\)\ + \ r25^3, \ r25^2\ + \ r25*r26\ + \ r26^2, \ r25\ + \ r26\ + \ r27}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ { Plus[ -3, Power[ r25, 3]], Plus[ Power[ r25, 2], Times[ r25, r26], Power[ r26, 2]], Plus[ r25, r26, r27]}], Editable->True, AutoDelete->True]}], SequenceForm[ " Minimal Polynomials: ", InputForm[ { Plus[ -3, Power[ r25, 3]], Plus[ Power[ r25, 2], Times[ r25, r26], Power[ r26, 2]], Plus[ r25, r26, r27]}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[\(" Root Approximations: \ "\[InvisibleSpace]{1.44224957030740838232163831078010508975`20. , \ \(-0.72112478515370419116081915539005275891`19.84948500216801\) - 1.24902476648340647941317954376325214377`20.088045629527844\ \ \[ImaginaryI], \ \(-0.72112478515370419116081915539005275891`19.84948500216801\) + 1.24902476648340647941317954376325214377`20.088045629527844\ \ \[ImaginaryI]}\), SequenceForm[ " Root Approximations: ", {1.4422495703074083823`20., Complex[ -0.7211247851537041912`19.84948500216801, \ -1.2490247664834064794`20.088045629527844], Complex[ -0.7211247851537041912`19.84948500216801, 1.2490247664834064794`20.088045629527844]}], Editable->False]], "Print"], Cell[BoxData[ \("----"\)], "Print"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(FMinPoly[r25 + r26*r27, x, M]\)], "Input"], Cell[BoxData[ \(\(-12\) - 9\ x + x\^3\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(FMinPoly[r25 + r26^2, x, M]\)], "Input"], Cell[BoxData[ \(144 - 108\ x + 81\ x\^2 - 24\ x\^3 + 9\ x\^4 + x\^6\)], "Output"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell["FNormalQ", "Subsubsection"], Cell["First we declare a field as follows.", "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(FDeclareField[K, {a^3 - 3}, {2}]\)], "Input"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"----Details of field \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["K", ShowStringCharacters->True, NumberMarks->True], InputForm[ K], Editable->True, AutoDelete->True], "\[InvisibleSpace]", "\<\"----\"\>"}], SequenceForm[ "----Details of field ", InputForm[ K], "----"], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Algebraic Numbers: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({a}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ {a}], Editable->True, AutoDelete->True]}], SequenceForm[ " Algebraic Numbers: ", InputForm[ {a}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Dimension over Q: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["3", ShowStringCharacters->True, NumberMarks->True], InputForm[ 3], Editable->True, AutoDelete->True]}], SequenceForm[ " Dimension over Q: ", InputForm[ 3]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Minimal Polynomials: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({\(-3\)\ + \ a^3}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ { Plus[ -3, Power[ a, 3]]}], Editable->True, AutoDelete->True]}], SequenceForm[ " Minimal Polynomials: ", InputForm[ { Plus[ -3, Power[ a, 3]]}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[\(" Root Approximations: \ "\[InvisibleSpace]{\(-0.72112478515370419116081915539005275891`19.\ 84948500216801\) - 1.24902476648340647941317954376325214377`20.088045629527844\ \ \[ImaginaryI]}\), SequenceForm[ " Root Approximations: ", { Complex[ -0.7211247851537041912`19.84948500216801, \ -1.2490247664834064794`20.088045629527844]}], Editable->False]], "Print"], Cell[BoxData[ \("----"\)], "Print"] }, Open ]], Cell[TextData[{ "Now we declare an extension field ", StyleBox["L", FontSlant->"Italic"], " of ", StyleBox["K", FontSlant->"Italic"], " by adjoining a square root of the algebraic number ", StyleBox["a", FontSlant->"Italic"], ". We call this number ", StyleBox["b", FontSlant->"Italic"], "." }], "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(FDeclareExtensionField[L, K, {b^2 - a}]\)], "Input"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"----Details of field \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["L", ShowStringCharacters->True, NumberMarks->True], InputForm[ L], Editable->True, AutoDelete->True], "\[InvisibleSpace]", "\<\"----\"\>"}], SequenceForm[ "----Details of field ", InputForm[ L], "----"], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Algebraic Numbers: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({a, \ b}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ {a, b}], Editable->True, AutoDelete->True]}], SequenceForm[ " Algebraic Numbers: ", InputForm[ {a, b}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Dimension over Q: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["6", ShowStringCharacters->True, NumberMarks->True], InputForm[ 6], Editable->True, AutoDelete->True]}], SequenceForm[ " Dimension over Q: ", InputForm[ 6]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Minimal Polynomials: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({\(-3\)\ + \ a^3, \ \(-a\)\ + \ b^2}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ { Plus[ -3, Power[ a, 3]], Plus[ Times[ -1, a], Power[ b, 2]]}], Editable->True, AutoDelete->True]}], SequenceForm[ " Minimal Polynomials: ", InputForm[ { Plus[ -3, Power[ a, 3]], Plus[ Times[ -1, a], Power[ b, 2]]}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[\(" Root Approximations: \ "\[InvisibleSpace]{\(-0.72112478515370419116081915539005275891`19.\ 84948500216801\) - 1.24902476648340647941317954376325214377`20.088045629527844\ \ \[ImaginaryI], \ \(-0.60046847758800136333773269367477142315`19.84948500216801\) + 1.04004191152595205726502841217894269317`20.088045629527844\ \ \[ImaginaryI]}\), SequenceForm[ " Root Approximations: ", { Complex[ -0.7211247851537041912`19.84948500216801, \ -1.2490247664834064794`20.088045629527844], Complex[ -0.60046847758800136334`19.84948500216801, 1.04004191152595205727`20.088045629527844]}], Editable->False]], "Print"], Cell[BoxData[ \("----"\)], "Print"] }, Open ]], Cell[TextData[{ "Now ", StyleBox["L", FontSlant->"Italic"], " is a splitting field extension of ", StyleBox["K", FontSlant->"Italic"], "; it is a degree 2 extension given by a square root. We check that this \ is true using FNormalQ. (However, AlgFields will not compute its Galois \ group since it was not declared as a splitting extension field. See \ FDeclareSplittingExtensionField for information on declaring ", StyleBox["L", FontSlant->"Italic"], " as a splitting field.)" }], "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(FNormalQ[L, K]\)], "Input"], Cell[BoxData[ \(True\)], "Output"] }, Open ]], Cell[TextData[{ "We can check that ", StyleBox["L", FontSlant->"Italic"], " is not normal over the the rationals Q." }], "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(FNormalQ[L]\)], "Input"], Cell[BoxData[ \(False\)], "Output"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell["FPolynomialExtendedGCD, FPolynomialGCD", "Subsubsection"], Cell["We declare a field and then compute polynomial GCDs.", "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(FDeclareField[K, {a^3 - 3}, {2}]\)], "Input"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"----Details of field \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["K", ShowStringCharacters->True, NumberMarks->True], InputForm[ K], Editable->True, AutoDelete->True], "\[InvisibleSpace]", "\<\"----\"\>"}], SequenceForm[ "----Details of field ", InputForm[ K], "----"], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Algebraic Numbers: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({a}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ {a}], Editable->True, AutoDelete->True]}], SequenceForm[ " Algebraic Numbers: ", InputForm[ {a}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Dimension over Q: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["3", ShowStringCharacters->True, NumberMarks->True], InputForm[ 3], Editable->True, AutoDelete->True]}], SequenceForm[ " Dimension over Q: ", InputForm[ 3]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Minimal Polynomials: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({\(-3\)\ + \ a^3}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ { Plus[ -3, Power[ a, 3]]}], Editable->True, AutoDelete->True]}], SequenceForm[ " Minimal Polynomials: ", InputForm[ { Plus[ -3, Power[ a, 3]]}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[\(" Root Approximations: \ "\[InvisibleSpace]{\(-0.72112478515370419116081915539005275891`19.\ 84948500216801\) - 1.24902476648340647941317954376325214377`20.088045629527844\ \ \[ImaginaryI]}\), SequenceForm[ " Root Approximations: ", { Complex[ -0.7211247851537041912`19.84948500216801, \ -1.2490247664834064794`20.088045629527844]}], Editable->False]], "Print"], Cell[BoxData[ \("----"\)], "Print"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(FPolynomialGCD[x^3 + x^2*\((\(-2\) a - 1)\) + x*\((a^2 + a)\), \ x^2 + \((\(-2\) a - 2)\)*x + a^2 + 2 a, x, K]\)], "Input"], Cell[BoxData[ \(\(-a\) + x\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(FPolynomialExtendedGCD[ x^3 + x^2*\((\(-2\) a - 1)\) + x*\((a^2 + a)\), \ x^2 + \((\(-2\) a - 2)\)*x + a^2 + 2 a, x, K]\)], "Input"], Cell[BoxData[ \({\(-a\) + x, {4\/11 - \(2\ a\)\/11 + a\^2\/11, \(-\(4\/11\)\) + \(2\ a\)\/11 - a\^2\/11 + \((\(-\(4\/11\)\) + \(2\ a\)\/11 - a\^2\/11)\)\ x}}\)], "Output"] }, Open ]], Cell[TextData[{ "Hence we can form a ", StyleBox["K", FontSlant->"Italic"], "[X]-linear combination of the two polynomials to achieve the GCD." }], "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(FSimplifyP[\((4\/11 - \(2\ a\)\/11 + a\^2\/11)\)*\((x^3 + x^2*\((\(-2\) a - 1)\) + x*\((a^2 + a)\))\)\ + \ \((\(-\(4\/11\)\) + \(2\ a\)\/11 - a\^2\/11 + \((\(-\(4\/11\)\) + \(2\ a\)\/11 - a\^2\/11)\)\ x)\)*\((x^2 + \((\(-2\) a - 2)\)*x + a^2 + 2 a)\), x, K]\)], "Input"], Cell[BoxData[ \(\(-a\) + x\)], "Output"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell["FPolynomialOrbit", "Subsubsection"], Cell[TextData[{ "We find the polynomial orbit associated to (", StyleBox["x1", FontSlant->"Italic"], "-", StyleBox["x2", FontSlant->"Italic"], ")*(", StyleBox["x1-x3", FontSlant->"Italic"], ")*(", StyleBox["x2-x3", FontSlant->"Italic"], ")", " acted upon by the symmetric group on three letters. The orbit contains \ two elements, the second the negative of the first." }], "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(FPolynomialOrbit[\((x1 - x2)\)*\((x1 - x3)\)*\((x2 - x3)\), {x1, x2, x3}]\)], "Input"], Cell[BoxData[ \({\((x1 - x2)\)\ \((x1 - x3)\)\ \((x2 - x3)\), \((x1 - x2)\)\ \((x1 - x3)\)\ \((\(-x2\) + x3)\)}\)], "Output"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell["FPolynomialQuotient, FPolynomialRemainder", "Subsubsection"], Cell["\<\ We declare a field and then compute polynomial quotients and remainders over \ that field.\ \>", "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(FDeclareField[K, {a^3 - 3}, {2}]\)], "Input"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"----Details of field \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["K", ShowStringCharacters->True, NumberMarks->True], InputForm[ K], Editable->True, AutoDelete->True], "\[InvisibleSpace]", "\<\"----\"\>"}], SequenceForm[ "----Details of field ", InputForm[ K], "----"], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Algebraic Numbers: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({a}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ {a}], Editable->True, AutoDelete->True]}], SequenceForm[ " Algebraic Numbers: ", InputForm[ {a}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Dimension over Q: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["3", ShowStringCharacters->True, NumberMarks->True], InputForm[ 3], Editable->True, AutoDelete->True]}], SequenceForm[ " Dimension over Q: ", InputForm[ 3]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Minimal Polynomials: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({\(-3\)\ + \ a^3}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ { Plus[ -3, Power[ a, 3]]}], Editable->True, AutoDelete->True]}], SequenceForm[ " Minimal Polynomials: ", InputForm[ { Plus[ -3, Power[ a, 3]]}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[\(" Root Approximations: \ "\[InvisibleSpace]{\(-0.72112478515370419116081915539005275891`19.\ 84948500216801\) - 1.24902476648340647941317954376325214377`20.088045629527844\ \ \[ImaginaryI]}\), SequenceForm[ " Root Approximations: ", { Complex[ -0.7211247851537041912`19.84948500216801, \ -1.2490247664834064794`20.088045629527844]}], Editable->False]], "Print"], Cell[BoxData[ \("----"\)], "Print"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(FPolynomialQuotient[x^3 + a*x + 2, \((a^2 + 3)\)*x^2 + a^2, x, K]\)], "Input"], Cell[BoxData[ \(\((1\/4 + a\/12 - a\^2\/12)\)\ x\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(FPolynomialRemainder[x^3 + a*x + 2, \((a^2 + 3)\)*x^2 + a^2, x, K]\)], "Input"], Cell[BoxData[ \(2 + \((\(-\(1\/4\)\) + \(5\ a\)\/4 - a\^2\/4)\)\ x\)], "Output"] }, Open ]], Cell["As a check:", "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(FSimplifyP[\((\((a^2 + 3)\)*x^2 + a^2)\)*\((1\/4 + a\/12 - a\^2\/12)\)\ x\ + \ 2 + \((\(-\(1\/4\)\) + \(5 a\)\/4 - a\^2\/4)\)\ x, x, K]\)], "Input"], Cell[BoxData[ \(2 + a\ x + x\^3\)], "Output"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell["FRootNumber", "Subsubsection"], Cell["\<\ We declare a field and then compute the minimal polynomials and root numbers \ of two elements.\ \>", "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(FDeclareField[K, {a^3 - 3}, {2}]\)], "Input"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"----Details of field \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["K", ShowStringCharacters->True, NumberMarks->True], InputForm[ K], Editable->True, AutoDelete->True], "\[InvisibleSpace]", "\<\"----\"\>"}], SequenceForm[ "----Details of field ", InputForm[ K], "----"], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Algebraic Numbers: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({a}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ {a}], Editable->True, AutoDelete->True]}], SequenceForm[ " Algebraic Numbers: ", InputForm[ {a}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Dimension over Q: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["3", ShowStringCharacters->True, NumberMarks->True], InputForm[ 3], Editable->True, AutoDelete->True]}], SequenceForm[ " Dimension over Q: ", InputForm[ 3]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Minimal Polynomials: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({\(-3\)\ + \ a^3}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ { Plus[ -3, Power[ a, 3]]}], Editable->True, AutoDelete->True]}], SequenceForm[ " Minimal Polynomials: ", InputForm[ { Plus[ -3, Power[ a, 3]]}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[\(" Root Approximations: \ "\[InvisibleSpace]{\(-0.72112478515370419116081915539005275891`19.\ 84948500216801\) - 1.24902476648340647941317954376325214377`20.088045629527844\ \ \[ImaginaryI]}\), SequenceForm[ " Root Approximations: ", { Complex[ -0.7211247851537041912`19.84948500216801, \ -1.2490247664834064794`20.088045629527844]}], Editable->False]], "Print"], Cell[BoxData[ \("----"\)], "Print"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(FMinPoly[a + a^2, x, K]\)], "Input"], Cell[BoxData[ \(\(-12\) - 9\ x + x\^3\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(FRootNumber[\(-12\) - 9\ x + x\^3, a + a^2, K]\)], "Input"], Cell[BoxData[ \(3\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(FMinPoly[a - 2, x, K]\)], "Input"], Cell[BoxData[ \(5 + 12\ x + 6\ x\^2 + x\^3\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(FRootNumber[5 + 12\ x + 6\ x\^2 + x\^3, a - 2, K]\)], "Input"], Cell[BoxData[ \(2\)], "Output"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell["FSetField", "Subsubsection"], Cell["We set the default field to a field we define, as follows.", "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(FDeclareField[K, {a^3 - 3}, {2}]\)], "Input"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"----Details of field \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["K", ShowStringCharacters->True, NumberMarks->True], InputForm[ K], Editable->True, AutoDelete->True], "\[InvisibleSpace]", "\<\"----\"\>"}], SequenceForm[ "----Details of field ", InputForm[ K], "----"], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Algebraic Numbers: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({a}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ {a}], Editable->True, AutoDelete->True]}], SequenceForm[ " Algebraic Numbers: ", InputForm[ {a}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Dimension over Q: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["3", ShowStringCharacters->True, NumberMarks->True], InputForm[ 3], Editable->True, AutoDelete->True]}], SequenceForm[ " Dimension over Q: ", InputForm[ 3]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Minimal Polynomials: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({\(-3\)\ + \ a^3}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ { Plus[ -3, Power[ a, 3]]}], Editable->True, AutoDelete->True]}], SequenceForm[ " Minimal Polynomials: ", InputForm[ { Plus[ -3, Power[ a, 3]]}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[\(" Root Approximations: \ "\[InvisibleSpace]{\(-0.72112478515370419116081915539005275891`19.\ 84948500216801\) - 1.24902476648340647941317954376325214377`20.088045629527844\ \ \[ImaginaryI]}\), SequenceForm[ " Root Approximations: ", { Complex[ -0.7211247851537041912`19.84948500216801, \ -1.2490247664834064794`20.088045629527844]}], Editable->False]], "Print"], Cell[BoxData[ \("----"\)], "Print"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(FSetField[K]\)], "Input"], Cell[BoxData[ InterpretationBox[\("Default field set to "\[InvisibleSpace]K\ \[InvisibleSpace]"."\), SequenceForm[ "Default field set to ", K, "."], Editable->False]], "Print"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(FShowField[]\)], "Input"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"----Details of field \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["Fdefaultfield", ShowStringCharacters->True, NumberMarks->True], InputForm[ Fdefaultfield], Editable->True, AutoDelete->True], "\[InvisibleSpace]", "\<\"----\"\>"}], SequenceForm[ "----Details of field ", InputForm[ Fdefaultfield], "----"], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Algebraic Numbers: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({a}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ {a}], Editable->True, AutoDelete->True]}], SequenceForm[ " Algebraic Numbers: ", InputForm[ {a}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Dimension over Q: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["3", ShowStringCharacters->True, NumberMarks->True], InputForm[ 3], Editable->True, AutoDelete->True]}], SequenceForm[ " Dimension over Q: ", InputForm[ 3]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Minimal Polynomials: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({\(-3\)\ + \ a^3}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ { Plus[ -3, Power[ a, 3]]}], Editable->True, AutoDelete->True]}], SequenceForm[ " Minimal Polynomials: ", InputForm[ { Plus[ -3, Power[ a, 3]]}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[\(" Root Approximations: \ "\[InvisibleSpace]{\(-0.72112478515370419116081915539005275891`19.\ 84948500216801\) - 1.24902476648340647941317954376325214377`20.088045629527844\ \ \[ImaginaryI]}\), SequenceForm[ " Root Approximations: ", { Complex[ -0.7211247851537041912`19.84948500216801, \ -1.2490247664834064794`20.088045629527844]}], Editable->False]], "Print"], Cell[BoxData[ \("----"\)], "Print"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell["FShowField", "Subsubsection"], Cell["\<\ FShowField simply repeats the data provided when the field was declared.\ \>", "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(FDeclareField[K, {a^3 - 3}, {2}]\)], "Input"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"----Details of field \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["K", ShowStringCharacters->True, NumberMarks->True], InputForm[ K], Editable->True, AutoDelete->True], "\[InvisibleSpace]", "\<\"----\"\>"}], SequenceForm[ "----Details of field ", InputForm[ K], "----"], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Algebraic Numbers: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({a}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ {a}], Editable->True, AutoDelete->True]}], SequenceForm[ " Algebraic Numbers: ", InputForm[ {a}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Dimension over Q: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["3", ShowStringCharacters->True, NumberMarks->True], InputForm[ 3], Editable->True, AutoDelete->True]}], SequenceForm[ " Dimension over Q: ", InputForm[ 3]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Minimal Polynomials: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({\(-3\)\ + \ a^3}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ { Plus[ -3, Power[ a, 3]]}], Editable->True, AutoDelete->True]}], SequenceForm[ " Minimal Polynomials: ", InputForm[ { Plus[ -3, Power[ a, 3]]}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[\(" Root Approximations: \ "\[InvisibleSpace]{\(-0.72112478515370419116081915539005275891`19.\ 84948500216801\) - 1.24902476648340647941317954376325214377`20.088045629527844\ \ \[ImaginaryI]}\), SequenceForm[ " Root Approximations: ", { Complex[ -0.7211247851537041912`19.84948500216801, \ -1.2490247664834064794`20.088045629527844]}], Editable->False]], "Print"], Cell[BoxData[ \("----"\)], "Print"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(FShowField[K]\)], "Input"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"----Details of field \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["K", ShowStringCharacters->True, NumberMarks->True], InputForm[ K], Editable->True, AutoDelete->True], "\[InvisibleSpace]", "\<\"----\"\>"}], SequenceForm[ "----Details of field ", InputForm[ K], "----"], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Algebraic Numbers: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({a}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ {a}], Editable->True, AutoDelete->True]}], SequenceForm[ " Algebraic Numbers: ", InputForm[ {a}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Dimension over Q: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["3", ShowStringCharacters->True, NumberMarks->True], InputForm[ 3], Editable->True, AutoDelete->True]}], SequenceForm[ " Dimension over Q: ", InputForm[ 3]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Minimal Polynomials: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({\(-3\)\ + \ a^3}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ { Plus[ -3, Power[ a, 3]]}], Editable->True, AutoDelete->True]}], SequenceForm[ " Minimal Polynomials: ", InputForm[ { Plus[ -3, Power[ a, 3]]}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[\(" Root Approximations: \ "\[InvisibleSpace]{\(-0.72112478515370419116081915539005275891`19.\ 84948500216801\) - 1.24902476648340647941317954376325214377`20.088045629527844\ \ \[ImaginaryI]}\), SequenceForm[ " Root Approximations: ", { Complex[ -0.7211247851537041912`19.84948500216801, \ -1.2490247664834064794`20.088045629527844]}], Editable->False]], "Print"], Cell[BoxData[ \("----"\)], "Print"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell["FSimplifyE, FSimplifyP", "Subsubsection"], Cell["\<\ We declare a field and then find reduced forms for some expressions and for \ the coefficients of a polynomial over the field.\ \>", "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(FDeclareField[K, {a^3 - 3}, {2}]\)], "Input"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"----Details of field \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["K", ShowStringCharacters->True, NumberMarks->True], InputForm[ K], Editable->True, AutoDelete->True], "\[InvisibleSpace]", "\<\"----\"\>"}], SequenceForm[ "----Details of field ", InputForm[ K], "----"], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Algebraic Numbers: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({a}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ {a}], Editable->True, AutoDelete->True]}], SequenceForm[ " Algebraic Numbers: ", InputForm[ {a}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Dimension over Q: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox["3", ShowStringCharacters->True, NumberMarks->True], InputForm[ 3], Editable->True, AutoDelete->True]}], SequenceForm[ " Dimension over Q: ", InputForm[ 3]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Minimal Polynomials: \"\>", "\[InvisibleSpace]", InterpretationBox[ StyleBox[\({\(-3\)\ + \ a^3}\), ShowStringCharacters->True, NumberMarks->True], InputForm[ { Plus[ -3, Power[ a, 3]]}], Editable->True, AutoDelete->True]}], SequenceForm[ " Minimal Polynomials: ", InputForm[ { Plus[ -3, Power[ a, 3]]}]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[\(" Root Approximations: \ "\[InvisibleSpace]{\(-0.72112478515370419116081915539005275891`19.\ 84948500216801\) - 1.24902476648340647941317954376325214377`20.088045629527844\ \ \[ImaginaryI]}\), SequenceForm[ " Root Approximations: ", { Complex[ -0.7211247851537041912`19.84948500216801, \ -1.2490247664834064794`20.088045629527844]}], Editable->False]], "Print"], Cell[BoxData[ \("----"\)], "Print"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(FSimplifyE[a^2 + 2*\((a^4 + a^3)\), K]\)], "Input"], Cell[BoxData[ \(6 + 6\ a + a\^2\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(FSimplifyE[\((6 + 6\ a + a\^2)\)*FInvert[a, K], K]\)], "Input"], Cell[BoxData[ \(6 + a + 2\ a\^2\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(FSimplifyE[a^3, K]\)], "Input"], Cell[BoxData[ \(3\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(FSimplifyP[\((x - a)\)^10, x, K]\)], "Input"], Cell[BoxData[ \(27\ a - 270\ x + 405\ a\^2\ x\^2 - 1080\ a\ x\^3 + 1890\ x\^4 - 756\ a\^2\ x\^5 + 630\ a\ x\^6 - 360\ x\^7 + 45\ a\^2\ x\^8 - 10\ a\ x\^9 + x\^10\)], "Output"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell["FSubstituteInGaloisResolvent", "Subsubsection"], Cell["\<\ We find the Galois resolvent associated to the alternating group on three \ letters inside the symmetric group on three letters and then evaluate this \ resolvent for two polynomials.\ \>", "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(a3ins3 = FGaloisResolvent[\((x1 - x2)\)*\((x1 - x3)\)*\((x2 - x3)\), {x1, x2, x3}, X]\)], "Input"], Cell[BoxData[ \(X\^2 - \[Sigma]1\^2\ \[Sigma]2\^2 + 4\ \[Sigma]2\^3 + 4\ \[Sigma]1\^3\ \[Sigma]3 - 18\ \[Sigma]1\ \[Sigma]2\ \[Sigma]3 + 27\ \[Sigma]3\^2\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(FSubstituteInGaloisResolvent[a3ins3, x^3 - 3]\)], "Input"], Cell[BoxData[ \(243 + X\^2\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(FSubstituteInGaloisResolvent[a3ins3, x^3 + x^2 + 1]\)], "Input"], Cell[BoxData[ \(31 + X\^2\)], "Output"] }, Open ]] }, Open ]] }, Open ]] }, FrontEndVersion->"5.0 for Microsoft Windows", ScreenRectangle->{{0, 1024}, {0, 655}}, WindowSize->{675, 451}, WindowMargins->{{Automatic, 41}, {Automatic, 4}}, PrintingCopies->1, PrintingPageRange->{Automatic, Automatic}, CellLabelAutoDelete->True ] (******************************************************************* Cached data follows. If you edit this Notebook file directly, not using Mathematica, you must remove the line containing CacheID at the top of the file. The cache data will then be recreated when you save this file from within Mathematica. *******************************************************************) (*CellTagsOutline CellTagsIndex->{} *) (*CellTagsIndex CellTagsIndex->{} *) (*NotebookFileOutline Notebook[{ Cell[CellGroupData[{ Cell[1776, 53, 62, 0, 30, "Subsubtitle"], Cell[1841, 55, 109, 3, 33, "Text"], Cell[CellGroupData[{ Cell[1975, 62, 40, 0, 29, "Subsubsection"], Cell[2018, 64, 99, 2, 33, "Text"], Cell[2120, 68, 104, 2, 30, "Input"], Cell[2227, 72, 49, 1, 30, "Input"] }, Open ]], Cell[CellGroupData[{ Cell[2313, 78, 32, 0, 29, "Subsubsection"], Cell[2348, 80, 572, 17, 71, "Text"], Cell[CellGroupData[{ Cell[2945, 101, 60, 1, 30, "Input"], Cell[3008, 104, 459, 12, 25, "Print"], Cell[3470, 118, 422, 12, 25, "Print"], Cell[3895, 132, 412, 12, 25, "Print"], Cell[4310, 146, 537, 16, 25, "Print"], Cell[4850, 164, 243, 4, 25, "Print"], Cell[5096, 170, 39, 1, 25, "Print"] }, Open ]], Cell[5150, 174, 249, 9, 52, "Text"], Cell[CellGroupData[{ Cell[5424, 187, 52, 1, 30, "Input"], Cell[5479, 190, 60, 1, 29, "Output"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[5588, 197, 36, 0, 29, "Subsubsection"], Cell[5627, 199, 400, 10, 71, "Text"], Cell[CellGroupData[{ Cell[6052, 213, 47, 1, 30, "Input"], Cell[6102, 216, 459, 12, 25, "Print"], Cell[6564, 230, 419, 12, 25, "Print"], Cell[6986, 244, 412, 12, 25, "Print"], Cell[7401, 258, 423, 12, 25, "Print"], Cell[7827, 272, 171, 3, 25, "Print"], Cell[8001, 277, 39, 1, 25, "Print"] }, Open ]], Cell[8055, 281, 224, 8, 33, "Text"], Cell[CellGroupData[{ Cell[8304, 293, 65, 1, 30, "Input"], Cell[8372, 296, 459, 12, 25, "Print"], Cell[8834, 310, 422, 12, 25, "Print"], Cell[9259, 324, 412, 12, 25, "Print"], Cell[9674, 338, 537, 16, 25, "Print"], Cell[10214, 356, 434, 9, 25, "Print"], Cell[10651, 367, 39, 1, 25, "Print"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[10739, 374, 46, 0, 29, "Subsubsection"], Cell[10788, 376, 52, 0, 33, "Text"], Cell[CellGroupData[{ Cell[10865, 380, 65, 1, 30, "Input"], Cell[10933, 383, 459, 12, 25, "Print"], Cell[11395, 397, 422, 12, 25, "Print"], Cell[11820, 411, 412, 12, 25, "Print"], Cell[12235, 425, 537, 16, 25, "Print"], Cell[12775, 443, 434, 9, 25, "Print"], Cell[13212, 454, 39, 1, 25, "Print"] }, Open ]], Cell[13266, 458, 257, 8, 52, "Text"], Cell[CellGroupData[{ Cell[13548, 470, 66, 1, 30, "Input"], Cell[13617, 473, 39, 1, 29, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[13693, 479, 52, 1, 30, "Input"], Cell[13748, 482, 76, 1, 29, "Output"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[13873, 489, 49, 0, 29, "Subsubsection"], Cell[13925, 491, 44, 0, 33, "Text"], Cell[CellGroupData[{ Cell[13994, 495, 65, 1, 30, "Input"], Cell[14062, 498, 459, 12, 25, "Print"], Cell[14524, 512, 422, 12, 25, "Print"], Cell[14949, 526, 412, 12, 25, "Print"], Cell[15364, 540, 537, 16, 25, "Print"], Cell[15904, 558, 434, 9, 25, "Print"], Cell[16341, 569, 39, 1, 25, "Print"] }, Open ]], Cell[CellGroupData[{ Cell[16417, 575, 67, 1, 30, "Input"], Cell[16487, 578, 459, 12, 25, "Print"], Cell[16949, 592, 453, 12, 25, "Print"], Cell[17405, 606, 412, 12, 25, "Print"], Cell[17820, 620, 897, 28, 25, "Print"], Cell[18720, 650, 781, 14, 63, "Print"], Cell[19504, 666, 39, 1, 25, "Print"] }, Open ]], Cell[19558, 670, 230, 11, 33, "Text"], Cell[CellGroupData[{ Cell[19813, 685, 63, 1, 30, "Input"], Cell[19879, 688, 39, 1, 29, "Output"] }, Open ]], Cell[19933, 692, 413, 17, 52, "Text"], Cell[CellGroupData[{ Cell[20371, 713, 66, 1, 30, "Input"], Cell[20440, 716, 38, 1, 29, "Output"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[20527, 723, 47, 0, 29, "Subsubsection"], Cell[20577, 725, 52, 0, 33, "Text"], Cell[CellGroupData[{ Cell[20654, 729, 65, 1, 30, "Input"], Cell[20722, 732, 459, 12, 25, "Print"], Cell[21184, 746, 422, 12, 25, "Print"], Cell[21609, 760, 412, 12, 25, "Print"], Cell[22024, 774, 537, 16, 25, "Print"], Cell[22564, 792, 434, 9, 25, "Print"], Cell[23001, 803, 39, 1, 25, "Print"] }, Open ]], Cell[23055, 807, 338, 14, 33, "Text"], Cell[CellGroupData[{ Cell[23418, 825, 72, 1, 30, "Input"], Cell[23493, 828, 459, 12, 25, "Print"], Cell[23955, 842, 433, 12, 25, "Print"], Cell[24391, 856, 412, 12, 25, "Print"], Cell[24806, 870, 709, 22, 25, "Print"], Cell[25518, 894, 709, 14, 44, "Print"], Cell[26230, 910, 39, 1, 25, "Print"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[26318, 917, 38, 0, 29, "Subsubsection"], Cell[26359, 919, 168, 6, 33, "Text"], Cell[CellGroupData[{ Cell[26552, 929, 61, 1, 30, "Input"], Cell[26616, 932, 462, 12, 25, "Print"], Cell[27081, 946, 422, 12, 25, "Print"], Cell[27506, 960, 412, 12, 25, "Print"], Cell[27921, 974, 537, 16, 25, "Print"], Cell[28461, 992, 249, 4, 25, "Print"], Cell[28713, 998, 39, 1, 25, "Print"] }, Open ]], Cell[28767, 1002, 409, 14, 52, "Text"], Cell[CellGroupData[{ Cell[29201, 1020, 66, 1, 30, "Input"], Cell[29270, 1023, 462, 12, 25, "Print"], Cell[29735, 1037, 422, 12, 25, "Print"], Cell[30160, 1051, 412, 12, 25, "Print"], Cell[30575, 1065, 537, 16, 25, "Print"], Cell[31115, 1083, 444, 9, 25, "Print"], Cell[31562, 1094, 39, 1, 25, "Print"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[31650, 1101, 43, 0, 29, "Subsubsection"], Cell[31696, 1103, 163, 3, 52, "Text"], Cell[CellGroupData[{ Cell[31884, 1110, 57, 1, 30, "Input"], Cell[31944, 1113, 473, 12, 25, "Print"], Cell[32420, 1127, 192, 4, 25, "Print"], Cell[32615, 1133, 421, 12, 25, "Print"], Cell[33039, 1147, 493, 13, 25, "Print"], Cell[33535, 1162, 423, 12, 25, "Print"], Cell[33961, 1176, 39, 1, 25, "Print"] }, Open ]], Cell[34015, 1180, 91, 2, 33, "Text"], Cell[CellGroupData[{ Cell[34131, 1186, 76, 1, 30, "Input"], Cell[34210, 1189, 473, 12, 25, "Print"], Cell[34686, 1203, 192, 4, 25, "Print"], Cell[34881, 1209, 424, 12, 25, "Print"], Cell[35308, 1223, 493, 13, 25, "Print"], Cell[35804, 1238, 544, 16, 25, "Print"], Cell[36351, 1256, 39, 1, 25, "Print"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[36439, 1263, 56, 0, 29, "Subsubsection"], Cell[36498, 1265, 52, 0, 33, "Text"], Cell[CellGroupData[{ Cell[36575, 1269, 65, 1, 30, "Input"], Cell[36643, 1272, 459, 12, 25, "Print"], Cell[37105, 1286, 422, 12, 25, "Print"], Cell[37530, 1300, 412, 12, 25, "Print"], Cell[37945, 1314, 537, 16, 25, "Print"], Cell[38485, 1332, 434, 9, 25, "Print"], Cell[38922, 1343, 39, 1, 25, "Print"] }, Open ]], Cell[38976, 1347, 338, 14, 33, "Text"], Cell[CellGroupData[{ Cell[39339, 1365, 72, 1, 30, "Input"], Cell[39414, 1368, 459, 12, 25, "Print"], Cell[39876, 1382, 433, 12, 25, "Print"], Cell[40312, 1396, 412, 12, 25, "Print"], Cell[40727, 1410, 709, 22, 25, "Print"], Cell[41439, 1434, 709, 14, 44, "Print"], Cell[42151, 1450, 39, 1, 25, "Print"] }, Open ]], Cell[42205, 1454, 420, 11, 71, "Text"], Cell[CellGroupData[{ Cell[42650, 1469, 47, 1, 30, "Input"], Cell[42700, 1472, 38, 1, 29, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[42775, 1478, 51, 1, 30, "Input"], Cell[42829, 1481, 154, 3, 22, "Message"] }, Open ]], Cell[CellGroupData[{ Cell[43020, 1489, 88, 1, 30, "Input"], Cell[43111, 1492, 459, 12, 25, "Print"], Cell[43573, 1506, 447, 12, 25, "Print"], Cell[44023, 1520, 412, 12, 25, "Print"], Cell[44438, 1534, 775, 24, 25, "Print"], Cell[45216, 1560, 988, 20, 63, "Print"], Cell[46207, 1582, 39, 1, 25, "Print"] }, Open ]], Cell[CellGroupData[{ Cell[46283, 1588, 51, 1, 30, "Input"], Cell[46337, 1591, 74, 1, 29, "Output"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[46460, 1598, 47, 0, 29, "Subsubsection"], Cell[46510, 1600, 226, 8, 33, "Text"], Cell[CellGroupData[{ Cell[46761, 1612, 67, 1, 30, "Input"], Cell[46831, 1615, 459, 12, 25, "Print"], Cell[47293, 1629, 453, 12, 25, "Print"], Cell[47749, 1643, 412, 12, 25, "Print"], Cell[48164, 1657, 897, 28, 25, "Print"], Cell[49064, 1687, 781, 14, 63, "Print"], Cell[49848, 1703, 39, 1, 25, "Print"] }, Open ]], Cell[CellGroupData[{ Cell[49924, 1709, 48, 1, 30, "Input"], Cell[49975, 1712, 236, 3, 67, "Output"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[50260, 1721, 45, 0, 29, "Subsubsection"], Cell[50308, 1723, 48, 0, 33, "Text"], Cell[CellGroupData[{ Cell[50381, 1727, 67, 1, 30, "Input"], Cell[50451, 1730, 459, 12, 25, "Print"], Cell[50913, 1744, 453, 12, 25, "Print"], Cell[51369, 1758, 412, 12, 25, "Print"], Cell[51784, 1772, 897, 28, 25, "Print"], Cell[52684, 1802, 781, 14, 63, "Print"], Cell[53468, 1818, 39, 1, 25, "Print"] }, Open ]], Cell[53522, 1822, 179, 8, 33, "Text"], Cell[CellGroupData[{ Cell[53726, 1834, 52, 1, 30, "Input"], Cell[53781, 1837, 79, 1, 29, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[53897, 1843, 56, 1, 30, "Input"], Cell[53956, 1846, 86, 1, 29, "Output"] }, Open ]], Cell[54057, 1850, 189, 4, 52, "Text"], Cell[CellGroupData[{ Cell[54271, 1858, 194, 4, 52, "Input"], Cell[54468, 1864, 68, 1, 29, "Output"] }, Open ]], Cell[54551, 1868, 244, 10, 33, "Text"] }, Open ]], Cell[CellGroupData[{ Cell[54832, 1883, 36, 0, 29, "Subsubsection"], Cell[54871, 1885, 121, 6, 33, "Text"], Cell[CellGroupData[{ Cell[55017, 1895, 67, 1, 30, "Input"], Cell[55087, 1898, 459, 12, 25, "Print"], Cell[55549, 1912, 462, 12, 25, "Print"], Cell[56014, 1926, 412, 12, 25, "Print"], Cell[56429, 1940, 921, 28, 25, "Print"], Cell[57353, 1970, 781, 14, 63, "Print"], Cell[58137, 1986, 39, 1, 25, "Print"] }, Open ]], Cell[58191, 1990, 371, 14, 52, "Text"], Cell[CellGroupData[{ Cell[58587, 2008, 61, 1, 30, "Input"], Cell[58651, 2011, 41, 1, 29, "Output"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[58741, 2018, 38, 0, 29, "Subsubsection"], Cell[58782, 2020, 44, 0, 33, "Text"], Cell[CellGroupData[{ Cell[58851, 2024, 65, 1, 30, "Input"], Cell[58919, 2027, 459, 12, 25, "Print"], Cell[59381, 2041, 422, 12, 25, "Print"], Cell[59806, 2055, 412, 12, 25, "Print"], Cell[60221, 2069, 537, 16, 25, "Print"], Cell[60761, 2087, 434, 9, 25, "Print"], Cell[61198, 2098, 39, 1, 25, "Print"] }, Open ]], Cell[CellGroupData[{ Cell[61274, 2104, 67, 1, 30, "Input"], Cell[61344, 2107, 459, 12, 25, "Print"], Cell[61806, 2121, 462, 12, 25, "Print"], Cell[62271, 2135, 412, 12, 25, "Print"], Cell[62686, 2149, 921, 28, 25, "Print"], Cell[63610, 2179, 781, 14, 63, "Print"], Cell[64394, 2195, 39, 1, 25, "Print"] }, Open ]], Cell[64448, 2199, 690, 21, 90, "Text"], Cell[CellGroupData[{ Cell[65163, 2224, 59, 1, 30, "Input"], Cell[65225, 2227, 35, 1, 29, "Output"] }, Open ]], Cell[65275, 2231, 254, 9, 52, "Text"], Cell[CellGroupData[{ Cell[65554, 2244, 76, 1, 30, "Input"], Cell[65633, 2247, 41, 1, 29, "Output"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[65723, 2254, 37, 0, 29, "Subsubsection"], Cell[65763, 2256, 226, 8, 33, "Text"], Cell[CellGroupData[{ Cell[66014, 2268, 67, 1, 30, "Input"], Cell[66084, 2271, 459, 12, 25, "Print"], Cell[66546, 2285, 462, 12, 25, "Print"], Cell[67011, 2299, 412, 12, 25, "Print"], Cell[67426, 2313, 921, 28, 25, "Print"], Cell[68350, 2343, 781, 14, 63, "Print"], Cell[69134, 2359, 39, 1, 25, "Print"] }, Open ]], Cell[CellGroupData[{ Cell[69210, 2365, 59, 1, 30, "Input"], Cell[69272, 2368, 283, 4, 67, "Output"] }, Open ]], Cell[69570, 2375, 870, 30, 90, "Text"], Cell[CellGroupData[{ Cell[70465, 2409, 61, 1, 30, "Input"], Cell[70529, 2412, 38, 1, 29, "Output"] }, Open ]], Cell[70582, 2416, 154, 5, 33, "Text"], Cell[CellGroupData[{ Cell[70761, 2425, 64, 1, 30, "Input"], Cell[70828, 2428, 40, 1, 29, "Output"] }, Open ]], Cell[70883, 2432, 258, 11, 33, "Text"], Cell[CellGroupData[{ Cell[71166, 2447, 63, 1, 30, "Input"], Cell[71232, 2450, 35, 1, 29, "Output"] }, Open ]], Cell[71282, 2454, 180, 8, 33, "Text"] }, Open ]], Cell[CellGroupData[{ Cell[71499, 2467, 41, 0, 29, "Subsubsection"], Cell[71543, 2469, 184, 4, 52, "Text"], Cell[CellGroupData[{ Cell[71752, 2477, 136, 3, 30, "Input"], Cell[71891, 2482, 185, 3, 29, "Output"] }, Open ]], Cell[72091, 2488, 142, 5, 33, "Text"], Cell[CellGroupData[{ Cell[72258, 2497, 78, 1, 30, "Input"], Cell[72339, 2500, 44, 1, 29, "Output"] }, Open ]], Cell[72398, 2504, 171, 6, 33, "Text"], Cell[CellGroupData[{ Cell[72594, 2514, 139, 2, 50, "Input"], Cell[72736, 2518, 44, 1, 29, "Output"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[72829, 2525, 32, 0, 29, "Subsubsection"], Cell[72864, 2527, 52, 0, 33, "Text"], Cell[CellGroupData[{ Cell[72941, 2531, 65, 1, 30, "Input"], Cell[73009, 2534, 459, 12, 25, "Print"], Cell[73471, 2548, 422, 12, 25, "Print"], Cell[73896, 2562, 412, 12, 25, "Print"], Cell[74311, 2576, 537, 16, 25, "Print"], Cell[74851, 2594, 434, 9, 25, "Print"], Cell[75288, 2605, 39, 1, 25, "Print"] }, Open ]], Cell[75342, 2609, 238, 10, 33, "Text"], Cell[CellGroupData[{ Cell[75605, 2623, 52, 1, 30, "Input"], Cell[75660, 2626, 65, 1, 45, "Output"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[75774, 2633, 38, 0, 29, "Subsubsection"], Cell[75815, 2635, 52, 0, 33, "Text"], Cell[CellGroupData[{ Cell[75892, 2639, 65, 1, 30, "Input"], Cell[75960, 2642, 459, 12, 25, "Print"], Cell[76422, 2656, 422, 12, 25, "Print"], Cell[76847, 2670, 412, 12, 25, "Print"], Cell[77262, 2684, 537, 16, 25, "Print"], Cell[77802, 2702, 434, 9, 25, "Print"], Cell[78239, 2713, 39, 1, 25, "Print"] }, Open ]], Cell[78293, 2717, 143, 5, 33, "Text"], Cell[CellGroupData[{ Cell[78461, 2726, 69, 1, 31, "Input"], Cell[78533, 2729, 38, 1, 29, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[78608, 2735, 62, 1, 31, "Input"], Cell[78673, 2738, 39, 1, 29, "Output"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[78761, 2745, 35, 0, 29, "Subsubsection"], Cell[78799, 2747, 714, 17, 109, "Text"], Cell[CellGroupData[{ Cell[79538, 2768, 66, 1, 30, "Input"], Cell[79607, 2771, 462, 12, 25, "Print"], Cell[80072, 2785, 422, 12, 25, "Print"], Cell[80497, 2799, 412, 12, 25, "Print"], Cell[80912, 2813, 537, 16, 25, "Print"], Cell[81452, 2831, 243, 4, 25, "Print"], Cell[81698, 2837, 39, 1, 25, "Print"] }, Open ]], Cell[CellGroupData[{ Cell[81774, 2843, 74, 1, 30, "Input"], Cell[81851, 2846, 462, 12, 25, "Print"], Cell[82316, 2860, 433, 12, 25, "Print"], Cell[82752, 2874, 412, 12, 25, "Print"], Cell[83167, 2888, 659, 20, 25, "Print"], Cell[83829, 2910, 341, 7, 25, "Print"], Cell[84173, 2919, 39, 1, 25, "Print"] }, Open ]], Cell[CellGroupData[{ Cell[84249, 2925, 53, 1, 30, "Input"], Cell[84305, 2928, 48, 1, 29, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[84390, 2934, 63, 1, 30, "Input"], Cell[84456, 2937, 462, 12, 25, "Print"], Cell[84921, 2951, 422, 12, 25, "Print"], Cell[85346, 2965, 412, 12, 25, "Print"], Cell[85761, 2979, 540, 16, 25, "Print"], Cell[86304, 2997, 249, 4, 25, "Print"], Cell[86556, 3003, 39, 1, 25, "Print"], Cell[86598, 3006, 462, 12, 25, "Print"], Cell[87063, 3020, 444, 12, 25, "Print"], Cell[87510, 3034, 412, 12, 25, "Print"], Cell[87925, 3048, 879, 28, 25, "Print"], Cell[88807, 3078, 432, 8, 44, "Print"], Cell[89242, 3088, 39, 1, 25, "Print"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[89330, 3095, 41, 0, 29, "Subsubsection"], Cell[89374, 3097, 226, 8, 33, "Text"], Cell[CellGroupData[{ Cell[89625, 3109, 67, 1, 30, "Input"], Cell[89695, 3112, 459, 12, 25, "Print"], Cell[90157, 3126, 462, 12, 25, "Print"], Cell[90622, 3140, 412, 12, 25, "Print"], Cell[91037, 3154, 921, 28, 25, "Print"], Cell[91961, 3184, 781, 14, 63, "Print"], Cell[92745, 3200, 39, 1, 25, "Print"] }, Open ]], Cell[CellGroupData[{ Cell[92821, 3206, 59, 1, 30, "Input"], Cell[92883, 3209, 283, 4, 67, "Output"] }, Open ]], Cell[93181, 3216, 870, 30, 90, "Text"], Cell[CellGroupData[{ Cell[94076, 3250, 61, 1, 30, "Input"], Cell[94140, 3253, 38, 1, 29, "Output"] }, Open ]], Cell[94193, 3257, 160, 6, 33, "Text"], Cell[CellGroupData[{ Cell[94378, 3267, 64, 1, 30, "Input"], Cell[94445, 3270, 40, 1, 29, "Output"] }, Open ]], Cell[94500, 3274, 346, 14, 33, "Text"], Cell[CellGroupData[{ Cell[94871, 3292, 63, 1, 30, "Input"], Cell[94937, 3295, 35, 1, 29, "Output"] }, Open ]], Cell[94987, 3299, 180, 8, 33, "Text"], Cell[95170, 3309, 217, 4, 52, "Text"], Cell[CellGroupData[{ Cell[95412, 3317, 74, 1, 30, "Input"], Cell[95489, 3320, 462, 12, 25, "Print"], Cell[95954, 3334, 462, 12, 25, "Print"], Cell[96419, 3348, 412, 12, 25, "Print"], Cell[96834, 3362, 1003, 30, 44, "Print"], Cell[97840, 3394, 435, 8, 44, "Print"], Cell[98278, 3404, 39, 1, 25, "Print"] }, Open ]], Cell[CellGroupData[{ Cell[98354, 3410, 49, 1, 30, "Input"], Cell[98406, 3413, 153, 2, 48, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[98596, 3420, 83, 1, 30, "Input"], Cell[98682, 3423, 39, 1, 29, "Output"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[98770, 3430, 33, 0, 29, "Subsubsection"], Cell[98806, 3432, 230, 8, 33, "Text"], Cell[CellGroupData[{ Cell[99061, 3444, 67, 1, 30, "Input"], Cell[99131, 3447, 459, 12, 25, "Print"], Cell[99593, 3461, 462, 12, 25, "Print"], Cell[100058, 3475, 412, 12, 25, "Print"], Cell[100473, 3489, 921, 28, 25, "Print"], Cell[101397, 3519, 781, 14, 63, "Print"], Cell[102181, 3535, 39, 1, 25, "Print"] }, Open ]], Cell[CellGroupData[{ Cell[102257, 3541, 62, 1, 30, "Input"], Cell[102322, 3544, 55, 1, 29, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[102414, 3550, 60, 1, 30, "Input"], Cell[102477, 3553, 85, 1, 29, "Output"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[102611, 3560, 33, 0, 29, "Subsubsection"], Cell[102647, 3562, 52, 0, 33, "Text"], Cell[CellGroupData[{ Cell[102724, 3566, 65, 1, 30, "Input"], Cell[102792, 3569, 459, 12, 25, "Print"], Cell[103254, 3583, 422, 12, 25, "Print"], Cell[103679, 3597, 412, 12, 25, "Print"], Cell[104094, 3611, 537, 16, 25, "Print"], Cell[104634, 3629, 434, 9, 25, "Print"], Cell[105071, 3640, 39, 1, 25, "Print"] }, Open ]], Cell[105125, 3644, 338, 14, 33, "Text"], Cell[CellGroupData[{ Cell[105488, 3662, 72, 1, 30, "Input"], Cell[105563, 3665, 459, 12, 25, "Print"], Cell[106025, 3679, 433, 12, 25, "Print"], Cell[106461, 3693, 412, 12, 25, "Print"], Cell[106876, 3707, 709, 22, 25, "Print"], Cell[107588, 3731, 709, 14, 44, "Print"], Cell[108300, 3747, 39, 1, 25, "Print"] }, Open ]], Cell[108354, 3751, 520, 14, 71, "Text"], Cell[CellGroupData[{ Cell[108899, 3769, 47, 1, 30, "Input"], Cell[108949, 3772, 38, 1, 29, "Output"] }, Open ]], Cell[109002, 3776, 138, 5, 33, "Text"], Cell[CellGroupData[{ Cell[109165, 3785, 44, 1, 30, "Input"], Cell[109212, 3788, 39, 1, 29, "Output"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[109300, 3795, 63, 0, 29, "Subsubsection"], Cell[109366, 3797, 68, 0, 33, "Text"], Cell[CellGroupData[{ Cell[109459, 3801, 65, 1, 30, "Input"], Cell[109527, 3804, 459, 12, 25, "Print"], Cell[109989, 3818, 422, 12, 25, "Print"], Cell[110414, 3832, 412, 12, 25, "Print"], Cell[110829, 3846, 537, 16, 25, "Print"], Cell[111369, 3864, 434, 9, 25, "Print"], Cell[111806, 3875, 39, 1, 25, "Print"] }, Open ]], Cell[CellGroupData[{ Cell[111882, 3881, 151, 2, 50, "Input"], Cell[112036, 3885, 44, 1, 29, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[112117, 3891, 166, 3, 50, "Input"], Cell[112286, 3896, 212, 4, 45, "Output"] }, Open ]], Cell[112513, 3903, 165, 5, 33, "Text"], Cell[CellGroupData[{ Cell[112703, 3912, 373, 6, 106, "Input"], Cell[113079, 3920, 44, 1, 29, "Output"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[113172, 3927, 41, 0, 29, "Subsubsection"], Cell[113216, 3929, 418, 16, 52, "Text"], Cell[CellGroupData[{ Cell[113659, 3949, 115, 2, 30, "Input"], Cell[113777, 3953, 142, 2, 29, "Output"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[113968, 3961, 66, 0, 29, "Subsubsection"], Cell[114037, 3963, 114, 3, 33, "Text"], Cell[CellGroupData[{ Cell[114176, 3970, 65, 1, 30, "Input"], Cell[114244, 3973, 459, 12, 25, "Print"], Cell[114706, 3987, 422, 12, 25, "Print"], Cell[115131, 4001, 412, 12, 25, "Print"], Cell[115546, 4015, 537, 16, 25, "Print"], Cell[116086, 4033, 434, 9, 25, "Print"], Cell[116523, 4044, 39, 1, 25, "Print"] }, Open ]], Cell[CellGroupData[{ Cell[116599, 4050, 105, 2, 30, "Input"], Cell[116707, 4054, 66, 1, 45, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[116810, 4060, 106, 2, 30, "Input"], Cell[116919, 4064, 84, 1, 45, "Output"] }, Open ]], Cell[117018, 4068, 27, 0, 33, "Text"], Cell[CellGroupData[{ Cell[117070, 4072, 194, 3, 68, "Input"], Cell[117267, 4077, 49, 1, 29, "Output"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[117365, 4084, 36, 0, 29, "Subsubsection"], Cell[117404, 4086, 119, 3, 33, "Text"], Cell[CellGroupData[{ Cell[117548, 4093, 65, 1, 30, "Input"], Cell[117616, 4096, 459, 12, 25, "Print"], Cell[118078, 4110, 422, 12, 25, "Print"], Cell[118503, 4124, 412, 12, 25, "Print"], Cell[118918, 4138, 537, 16, 25, "Print"], Cell[119458, 4156, 434, 9, 25, "Print"], Cell[119895, 4167, 39, 1, 25, "Print"] }, Open ]], Cell[CellGroupData[{ Cell[119971, 4173, 56, 1, 30, "Input"], Cell[120030, 4176, 55, 1, 29, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[120122, 4182, 79, 1, 31, "Input"], Cell[120204, 4185, 35, 1, 29, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[120276, 4191, 54, 1, 30, "Input"], Cell[120333, 4194, 60, 1, 29, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[120430, 4200, 82, 1, 31, "Input"], Cell[120515, 4203, 35, 1, 29, "Output"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[120599, 4210, 34, 0, 29, "Subsubsection"], Cell[120636, 4212, 74, 0, 33, "Text"], Cell[CellGroupData[{ Cell[120735, 4216, 65, 1, 30, "Input"], Cell[120803, 4219, 459, 12, 25, "Print"], Cell[121265, 4233, 422, 12, 25, "Print"], Cell[121690, 4247, 412, 12, 25, "Print"], Cell[122105, 4261, 537, 16, 25, "Print"], Cell[122645, 4279, 434, 9, 25, "Print"], Cell[123082, 4290, 39, 1, 25, "Print"] }, Open ]], Cell[CellGroupData[{ Cell[123158, 4296, 45, 1, 30, "Input"], Cell[123206, 4299, 192, 4, 25, "Print"] }, Open ]], Cell[CellGroupData[{ Cell[123435, 4308, 45, 1, 30, "Input"], Cell[123483, 4311, 495, 12, 25, "Print"], Cell[123981, 4325, 422, 12, 25, "Print"], Cell[124406, 4339, 412, 12, 25, "Print"], Cell[124821, 4353, 537, 16, 25, "Print"], Cell[125361, 4371, 434, 9, 25, "Print"], Cell[125798, 4382, 39, 1, 25, "Print"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[125886, 4389, 35, 0, 29, "Subsubsection"], Cell[125924, 4391, 96, 2, 33, "Text"], Cell[CellGroupData[{ Cell[126045, 4397, 65, 1, 30, "Input"], Cell[126113, 4400, 459, 12, 25, "Print"], Cell[126575, 4414, 422, 12, 25, "Print"], Cell[127000, 4428, 412, 12, 25, "Print"], Cell[127415, 4442, 537, 16, 25, "Print"], Cell[127955, 4460, 434, 9, 25, "Print"], Cell[128392, 4471, 39, 1, 25, "Print"] }, Open ]], Cell[CellGroupData[{ Cell[128468, 4477, 46, 1, 30, "Input"], Cell[128517, 4480, 459, 12, 25, "Print"], Cell[128979, 4494, 422, 12, 25, "Print"], Cell[129404, 4508, 412, 12, 25, "Print"], Cell[129819, 4522, 537, 16, 25, "Print"], Cell[130359, 4540, 434, 9, 25, "Print"], Cell[130796, 4551, 39, 1, 25, "Print"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[130884, 4558, 47, 0, 29, "Subsubsection"], Cell[130934, 4560, 150, 3, 52, "Text"], Cell[CellGroupData[{ Cell[131109, 4567, 65, 1, 30, "Input"], Cell[131177, 4570, 459, 12, 25, "Print"], Cell[131639, 4584, 422, 12, 25, "Print"], Cell[132064, 4598, 412, 12, 25, "Print"], Cell[132479, 4612, 537, 16, 25, "Print"], Cell[133019, 4630, 434, 9, 25, "Print"], Cell[133456, 4641, 39, 1, 25, "Print"] }, Open ]], Cell[CellGroupData[{ Cell[133532, 4647, 71, 1, 30, "Input"], Cell[133606, 4650, 49, 1, 29, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[133692, 4656, 83, 1, 31, "Input"], Cell[133778, 4659, 49, 1, 29, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[133864, 4665, 51, 1, 30, "Input"], Cell[133918, 4668, 35, 1, 29, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[133990, 4674, 65, 1, 30, "Input"], Cell[134058, 4677, 193, 3, 48, "Output"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[134300, 4686, 53, 0, 29, "Subsubsection"], Cell[134356, 4688, 207, 4, 52, "Text"], Cell[CellGroupData[{ Cell[134588, 4696, 136, 3, 30, "Input"], Cell[134727, 4701, 185, 3, 29, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[134949, 4709, 78, 1, 30, "Input"], Cell[135030, 4712, 44, 1, 29, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[135111, 4718, 84, 1, 30, "Input"], Cell[135198, 4721, 43, 1, 29, "Output"] }, Open ]] }, Open ]] }, Open ]] } ] *) (******************************************************************* End of Mathematica Notebook file. *******************************************************************)