{ "cells": [ { "cell_type": "markdown", "id": "e38ede7c", "metadata": {}, "source": [ "# The 7th Roots of Unity\n", "\n", "A primitive seventh root $\\zeta$ satisfies\n", "\n", "$$\n", "\\Phi_7(x)=x^6+x^5+x^4+x^3+x^2+x+1=0.\n", "$$\n", "\n", "The six primitive roots are permuted by\n", "$(\\mathbb Z/7\\mathbb Z)^\\times$. We first quotient by complex\n", "conjugation, leaving three real periods, and then use a\n", "three-point Fourier transform over the cube roots of unity.\n" ] }, { "cell_type": "markdown", "id": "046475f3", "metadata": {}, "source": [ "## Three conjugate periods\n", "\n", "Pairing exponents $k$ and $7-k$ gives\n", "$a_{11},a_{12},a_{13}$. Their sum is $-1$, because the sum of all\n", "nontrivial seventh roots is $-1$.\n" ] }, { "cell_type": "code", "execution_count": 1, "id": "236e73a5", "metadata": {}, "outputs": [], "source": [ "def z : MathValue := rtu 7\n", "\n", "def a11 : MathValue := z ^ 1 + z ^ 6\n", "def a12 : MathValue := z ^ 2 + z ^ 5\n", "def a13 : MathValue := z ^ 3 + z ^ 4\n", "\n", "def b10 : MathValue := a11 + a12 + a13\n", "\n", "def cyclotomic7 : MathValue :=\n", " '((rtu 7)^6 + (rtu 7)^5 + (rtu 7)^4\n", " + (rtu 7)^3 + (rtu 7)^2 + rtu 7 + 1)\n", "\n", "def reduce7 (v : MathValue) : MathValue :=\n", " idealNFWith [w] [cyclotomic7] v\n", "\n", "def b10' : MathValue := reduce7 b10\n" ] }, { "cell_type": "code", "execution_count": 2, "id": "fe6e5c71", "metadata": {}, "outputs": [ { "data": { "text/html": [ "$-1$" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "b10'\n" ] }, { "cell_type": "markdown", "id": "01802a37", "metadata": {}, "source": [ "## Fourier resolvents\n", "\n", "With $\\omega=(-1+i\\sqrt3)/2$, the two nontrivial characters of the\n", "three-cycle produce two conjugate triples. Multiplying each triple\n", "removes the cyclic ambiguity. We reduce those products modulo\n", "$\\Phi_7(\\zeta)$, leaving expressions in $\\omega$ alone, so one cube\n", "root recovers each Fourier component.\n" ] }, { "cell_type": "code", "execution_count": 3, "id": "7711c357", "metadata": {}, "outputs": [], "source": [ "def b11 : MathValue := a11 + w * a12 + w ^ 2 * a13\n", "def b12 : MathValue := a13 + w * a11 + w ^ 2 * a12\n", "def b13 : MathValue := a12 + w * a13 + w ^ 2 * a11\n", "\n", "def b14 : MathValue := a11 + w * a13 + w ^ 2 * a12\n", "def b15 : MathValue := a12 + w * a11 + w ^ 2 * a13\n", "def b16 : MathValue := a13 + w * a12 + w ^ 2 * a11\n", "\n", "def b11Cube : MathValue := reduce7 (b11 * b12 * b13)\n", "def b14Cube : MathValue := reduce7 (b14 * b15 * b16)\n" ] }, { "cell_type": "code", "execution_count": 4, "id": "82be293f", "metadata": {}, "outputs": [ { "data": { "text/html": [ "$(21 w + 14, -21 w - 7, 343)$" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "(b11Cube, b14Cube, b11Cube * b14Cube)\n" ] }, { "cell_type": "markdown", "id": "6a957768", "metadata": {}, "source": [ "## Invert the transform\n", "\n", "The two displayed radicands are conjugate and their product is\n", "$7^3$. We choose conjugate cube-root branches whose product is $7$\n", "and whose reconstructed real period is positive. Their inverse\n", "transform gives\n", "$a_{11}=\\zeta+\\zeta^{-1}=2\\cos(2\\pi/7)$.\n" ] }, { "cell_type": "code", "execution_count": 5, "id": "bc4cb22a", "metadata": {}, "outputs": [], "source": [ "def b11' : MathValue := rt 3 b11Cube\n", "def b14' : MathValue := rt 3 b14Cube\n", "\n", "def a11' : MathValue := (b10' + b11' + b14') / 3\n" ] }, { "cell_type": "code", "execution_count": 6, "id": "5f2b3629", "metadata": {}, "outputs": [ { "data": { "text/html": [ "$\\frac{1}{6} \\sqrt[3]{3 w + 2} \\sqrt[3]{7} + \\frac{1}{6} \\sqrt[3]{-3 w - 1} \\sqrt[3]{7} + \\frac{-1}{6}$" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "a11' / 2\n" ] }, { "cell_type": "markdown", "id": "31427058", "metadata": {}, "source": [ "## Recover a root itself\n", "\n", "Once $a_{11}'=\\zeta+\\zeta^{-1}$ is known, $\\zeta$ is a root of\n", "\n", "$$\n", "x^2-a_{11}'x+1=0.\n", "$$\n", "\n", "The selected radical branches determine which member of the\n", "conjugate pair appears first.\n" ] }, { "cell_type": "code", "execution_count": 7, "id": "a06ba7dc", "metadata": {}, "outputs": [], "source": [ "def quadraticRoots7\n", " (a : MathValue)\n", " (b : MathValue)\n", " (c : MathValue)\n", " : (MathValue, MathValue) :=\n", " ( ((- b) + sqrt (b ^ 2 - 4 * a * c)) / (2 * a)\n", " , ((- b) - sqrt (b ^ 2 - 4 * a * c)) / (2 * a) )\n", "\n", "def z1' : MathValue := fst (quadraticRoots7 1 (- a11') 1)\n" ] }, { "cell_type": "code", "execution_count": 8, "id": "8f249803", "metadata": {}, "outputs": [ { "data": { "text/html": [ "$\\frac{1}{6} \\sqrt[3]{3 w + 2} \\sqrt[3]{7} + \\frac{1}{6} \\sqrt[3]{-3 w - 1} \\sqrt[3]{7} + \\frac{1}{6} \\sqrt{\\sqrt[3]{3 w + 2}^{2} \\sqrt[3]{7}^{2} + \\sqrt[3]{-3 w - 1}^{2} \\sqrt[3]{7}^{2} + 2 \\sqrt[3]{-3 w - 1} \\sqrt[3]{3 w + 2} \\sqrt[3]{7}^{2} - 2 \\sqrt[3]{3 w + 2} \\sqrt[3]{7} - 2 \\sqrt[3]{-3 w - 1} \\sqrt[3]{7} - 35} + \\frac{-1}{6}$" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "z1'\n" ] }, { "cell_type": "markdown", "id": "359b8d41", "metadata": {}, "source": [ "Substitution into the final quadratic gives zero. This check is\n", "independent of how the nested square root is formatted.\n" ] }, { "cell_type": "code", "execution_count": 9, "id": "5e39bde5", "metadata": {}, "outputs": [ { "data": { "text/html": [ "$0$" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "z1' ^ 2 - a11' * z1' + 1\n" ] }, { "cell_type": "markdown", "id": "3c97d95e", "metadata": {}, "source": [ "## Takeaway\n", "\n", "A degree-six cyclotomic equation has been decomposed into one\n", "three-point transform, cube roots, and a final quadratic. The code\n", "follows the subgroup structure of the Galois group, making the\n", "origin of every radical visible.\n" ] } ], "metadata": { "kernelspec": { "display_name": "Egison", "language": "egison", "name": "egison" }, "language_info": { "codemirror_mode": "egison", "file_extension": ".egi", "mimetype": "text/x-egison", "name": "egison" } }, "nbformat": 4, "nbformat_minor": 5 }