(************** 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,