{ "cells": [ { "cell_type": "markdown", "id": "d3fcdf06", "metadata": {}, "source": [ "# The 5th Roots of Unity\n", "\n", "Let $\\zeta=\\exp(2\\pi i/5)$. The primitive fifth roots satisfy\n", "\n", "$$\n", "\\Phi_5(x)=x^4+x^3+x^2+x+1=0.\n", "$$\n", "\n", "In particular,\n", "\n", "$$\n", "\\cos\\frac{2\\pi}{5}=\\frac{\\sqrt5-1}{4}.\n", "$$\n", "\n", "We recover this radical expression by organizing powers of\n", "$\\zeta$ into orbits rather than asking a black-box polynomial\n", "solver for four roots at once.\n" ] }, { "cell_type": "markdown", "id": "1a99d81b", "metadata": {}, "source": [ "## Pair conjugate powers\n", "\n", "Complex conjugation pairs $\\zeta$ with $\\zeta^4$ and $\\zeta^2$\n", "with $\\zeta^3$. Their symmetric sums are real. Adding the two\n", "pairs gives $-1$, the sum of all primitive fifth roots.\n" ] }, { "cell_type": "code", "execution_count": 1, "id": "135603da", "metadata": {}, "outputs": [], "source": [ "def z : MathValue := rtu 5\n", "\n", "def a11 : MathValue := z ^ 1 + z ^ 4\n", "def a12 : MathValue := z ^ 2 + z ^ 3\n", "\n", "def b10 : MathValue := a11 + a12\n", "def b11 : MathValue := a11 - a12\n", "def b12 : MathValue := a12 - a11\n" ] }, { "cell_type": "code", "execution_count": 2, "id": "dfd4fa16", "metadata": {}, "outputs": [ { "data": { "text/html": [ "$(-1, -2 rtu(5)^{3} - 2 rtu(5)^{2} - 1, 2 rtu(5)^{3} + 2 rtu(5)^{2} + 1)$" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "(b10, b11, b12)\n" ] }, { "cell_type": "markdown", "id": "886e1b22", "metadata": {}, "source": [ "## Invert the first two-point transform\n", "\n", "The sum is already $b_{10}=-1$. Squaring the difference removes\n", "its sign ambiguity; choosing a square-root branch and applying the\n", "inverse transform reconstructs the two real periods.\n" ] }, { "cell_type": "code", "execution_count": 3, "id": "d87f029a", "metadata": {}, "outputs": [], "source": [ "def b10' : MathValue := b10\n", "def b11' : MathValue := sqrt (b11 ^ 2)\n", "\n", "def a11' : MathValue := (b10' + b11') / 2\n", "def a12' : MathValue := (b10' - b11') / 2\n" ] }, { "cell_type": "code", "execution_count": 4, "id": "4e6d75ed", "metadata": {}, "outputs": [ { "data": { "text/html": [ "$(\\frac{1}{2} \\sqrt{5} + \\frac{-1}{2}, \\frac{-1}{2} \\sqrt{5} + \\frac{-1}{2})$" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "(a11', a12')\n" ] }, { "cell_type": "markdown", "id": "33337db7", "metadata": {}, "source": [ "## Recover the imaginary parts\n", "\n", "The antisymmetric pairs\n", "$\\zeta-\\zeta^{-1}$ and $\\zeta^2-\\zeta^{-2}$ carry the imaginary\n", "parts. A second two-point transform reduces them to square roots\n", "whose radicands depend only on the real periods above.\n" ] }, { "cell_type": "code", "execution_count": 5, "id": "d92e73c6", "metadata": {}, "outputs": [], "source": [ "def a21 : MathValue := z ^ 1 - z ^ 4\n", "def a22 : MathValue := z ^ 2 - z ^ 3\n", "\n", "def b20 : MathValue := a21 + a22\n", "def b21 : MathValue := a21 - a22\n", "def b22 : MathValue := a22 - a21\n", "\n", "def b20' : MathValue := sqrt ((-3) + 4 * a12')\n", "def b21' : MathValue := sqrt ((-3) + 4 * a11')\n", "\n", "def a21' : MathValue := (b20' + b21') / 2\n", "def a22' : MathValue := (b20' - b21') / 2\n", "\n", "def z1' : MathValue := (a11' + a21') / 2\n" ] }, { "cell_type": "code", "execution_count": 6, "id": "1b8998bb", "metadata": {}, "outputs": [ { "data": { "text/html": [ "$\\frac{1}{4} \\sqrt{2 \\sqrt{5} + 5} i + \\frac{1}{4} \\sqrt{-2 \\sqrt{5} + 5} i + \\frac{1}{4} \\sqrt{5} + \\frac{-1}{4}$" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "z1'\n" ] }, { "cell_type": "markdown", "id": "480967c9", "metadata": {}, "source": [ "## Verify the radical relation\n", "\n", "Nested square roots introduce branch atoms that are algebraically\n", "related. The following ideal records their defining relations.\n", "Reducing $(z_1')^5-1$ modulo that ideal gives an exact symbolic\n", "check, rather than a floating-point approximation.\n" ] }, { "cell_type": "code", "execution_count": 7, "id": "7e6b81b5", "metadata": {}, "outputs": [], "source": [ "def radicalRels : [MathValue] :=\n", " [ '((sqrt (5 + 2 * sqrt 5)) ^ 2 - 5 - 2 * sqrt 5)\n", " , '((sqrt (5 - 2 * sqrt 5)) ^ 2 - 5 + 2 * sqrt 5)\n", " , '((sqrt (5 + 2 * sqrt 5))\n", " * (sqrt (5 - 2 * sqrt 5))\n", " - sqrt 5)\n", " , '((sqrt 5) ^ 2 - 5)\n", " , '(i ^ 2 + 1) ]\n" ] }, { "cell_type": "code", "execution_count": 8, "id": "16e08df0", "metadata": {}, "outputs": [ { "data": { "text/html": [ "$0$" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "idealNF radicalRels (z1' ^ 5 - 1)\n" ] }, { "cell_type": "markdown", "id": "b138b53c", "metadata": {}, "source": [ "## Takeaway\n", "\n", "The familiar golden-ratio square root appears because the Galois\n", "group of $\\Phi_5$ can be resolved by two successive two-point\n", "transforms. Egison keeps the orbit sums and the exact radical\n", "verification in the same symbolic calculation.\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 }