{ "cells": [ { "cell_type": "markdown", "id": "3ab7f4fc", "metadata": {}, "source": [ "# Thurston例におけるWodzicki–Chern–Simons不変量\n", "\n", "このNotebookは、論文 *Diffeomorphism Groups of Circle Bundles over Integral\n", "Symplectic Manifolds* の第4節にある数式処理計算を再現します。計量、曲率、\n", "持ち上げた曲率テンソルを構成し、Wodzicki–Chern–Simons積分核をコンパクトな\n", "有理式へ簡約します。\n", "\n", "研究で使用した元のプログラムは\n", "[EMR-Paper-Computation](https://github.com/egisatoshi/EMR-Paper-Computation)\n", "で保守されています。\n" ] }, { "cell_type": "markdown", "id": "a1b172c6", "metadata": {}, "source": [ "## Thurston計量\n", "\n", "$\\beta=1+\\theta_2-\\theta_2^2$ とおきます。以下の計量と逆計量は、座標枠\n", "$(\\theta_1,\\theta_2,\\theta_3,\\theta_4)$ で表されています。繰り返し現れる\n", "2つの多項式をquoteすることで、テンソル計算の中間式をコンパクトに保ちます。\n" ] }, { "cell_type": "code", "execution_count": 1, "id": "e6d0a621", "metadata": {}, "outputs": [], "source": [ "declare symbol θ₁, θ₂, θ₃, θ₄, κ, p\n", "\n", "def x~i := [| θ₁, θ₂, θ₃, θ₄ |]~i\n", "def β := `(1 + θ₂ - θ₂^2)\n", "\n", "def g_i_j :=\n", " [|[| 1, 0, 0, 0 |],\n", " [| 0, 1, 0, 0 |],\n", " [| 0, 0, κ / sqrt β, (-1 * θ₂ * κ) / sqrt β |],\n", " [| 0, 0, (-1 * θ₂ * κ) / sqrt β, (`(1 + θ₂) * κ) / sqrt β |]|]\n", "\n", "def g~i~j :=\n", " [|[| 1, 0, 0, 0 |],\n", " [| 0, 1, 0, 0 |],\n", " [| 0, 0, `(1 + θ₂) / (κ * sqrt β), θ₂ / (sqrt β * κ) |],\n", " [| 0, 0, θ₂ / (sqrt β * κ), 1 / (sqrt β * κ) |]|]\n" ] }, { "cell_type": "code", "execution_count": 2, "id": "6b7aea4b", "metadata": {}, "outputs": [ { "data": { "text/html": [ "$\\begin{pmatrix} 1 & 0 & 0 & 0 \\\\ 0 & 1 & 0 & 0 \\\\ 0 & 0 & \\sqrt{(-θ₂^{2} + θ₂ + 1)}^{-1} κ & -\\sqrt{(-θ₂^{2} + θ₂ + 1)}^{-1} θ₂ κ \\\\ 0 & 0 & -\\sqrt{(-θ₂^{2} + θ₂ + 1)}^{-1} θ₂ κ & \\sqrt{(-θ₂^{2} + θ₂ + 1)}^{-1} (θ₂ + 1) κ \\\\ \\end{pmatrix}_{\\#\\#}^{\\;\\;}$" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "g_#_#\n" ] }, { "cell_type": "code", "execution_count": 3, "id": "0509336a", "metadata": {}, "outputs": [ { "data": { "text/html": [ "$\\begin{pmatrix} 1 & 0 & 0 & 0 \\\\ 0 & 1 & 0 & 0 \\\\ 0 & 0 & -(-θ₂^{2} + θ₂ + 1)^{-1} θ₂^{2} + (-θ₂^{2} + θ₂ + 1)^{-1} (θ₂ + 1) & 0 \\\\ 0 & 0 & 0 & -(-θ₂^{2} + θ₂ + 1)^{-1} θ₂^{2} + (-θ₂^{2} + θ₂ + 1)^{-1} (θ₂ + 1) \\\\ \\end{pmatrix}$" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "withSymbols [i, j, k] g_i_j . g~j~k\n" ] }, { "cell_type": "markdown", "id": "54a496ff", "metadata": {}, "source": [ "## Levi-Civita接続と曲率\n", "\n", "Egisonの記号的なテンソル添字を使って、通常の公式をそのまま記述します。\n", "\n", "$$\n", "\\Gamma^c{}_{ab}=\\frac12g^{ce}\n", " (\\partial_ag_{be}+\\partial_bg_{ae}-\\partial_eg_{ab}),\n", "$$\n", "\n", "続いて $R_{ijk}{}^l$ を計算します。上付きと下付きで繰り返す添字は `.` により\n", "縮約されます。\n" ] }, { "cell_type": "code", "execution_count": 4, "id": "fb955469", "metadata": {}, "outputs": [], "source": [ "def Γ~c_a_b := withSymbols [e]\n", " (1 / 2) * g~c~e . (∂/∂ g_b_e x~a + ∂/∂ g_a_e x~b - ∂/∂ g_a_b x~e)\n", "\n", "def R_i_j_k~l := withSymbols [a]\n", " ∂/∂ Γ~l_j_k x~i - ∂/∂ Γ~l_i_k x~j\n", " + Γ~l_i_a . Γ~a_j_k - Γ~l_j_a . Γ~a_i_k\n", "\n", "def R_i_j_k_l := withSymbols [a] R_i_j_k~a . g_a_l\n" ] }, { "cell_type": "code", "execution_count": 5, "id": "ea426b5f", "metadata": {}, "outputs": [ { "data": { "text/html": [ "$0$" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "Γ~1_1_1\n" ] }, { "cell_type": "markdown", "id": "cae61ba3", "metadata": {}, "source": [ "## 複素構造と持ち上げた曲率\n", "\n", "複素構造 $J$ とその共変微分から、円周束上の曲率 $R'$ が定まります。\n", "第1座標はファイバー方向で、残りの4座標はThurston底空間に属します。\n" ] }, { "cell_type": "code", "execution_count": 6, "id": "03fe8cda", "metadata": {}, "outputs": [], "source": [ "def J_a_b :=\n", " [|[| 0, 1, 0, 0 |],\n", " [| -1, 0, 0, 0 |],\n", " [| 0, 0, 0, κ |],\n", " [| 0, 0, -1 * κ, 0 |]|]\n", "\n", "def J_a~c := withSymbols [b] J_a_b . g~b~c\n", "\n", "def ∇J_m_a_b := withSymbols [n]\n", " ∂/∂ J_a_b x~m + Γ~n_m_a . J_n_b + Γ~n_m_b . J_a_n\n", "\n", "def ∇J~m_a_b := withSymbols [t] ∇J_t_a_b . g~t~m\n", "def ∇J_m~a_b := withSymbols [t] ∇J_m_t_b . g~t~a\n", "def ∇J_m_a~b := withSymbols [t] ∇J_m_a_t . g~t~b\n", "\n", "def δ :=\n", " generateTensor\n", " (\\match as list integer with\n", " | [$n, #n] -> 1\n", " | [_, _] -> 0)\n", " [5, 5]\n" ] }, { "cell_type": "code", "execution_count": 7, "id": "07c6aa2b", "metadata": {}, "outputs": [], "source": [ "def R'{_i_j}_k~l : Tensor MathValue :=\n", " generateTensor\n", " (\\match as list integer with\n", " | [#1, #1, _, _] -> 0\n", " | [_, _, #1, #1] -> 0\n", " | [#1, $b, #1, $d] -> -1 * p^2 * δ~(b - 1)_(d - 1)\n", " | [$a, #1, #1, $d] -> p^2 * δ~(a - 1)_(d - 1)\n", " | [#1, $b, $c, #1] -> p^2 * g_(b - 1)_(c - 1)\n", " | [$a, #1, $c, #1] -> -1 * p^2 * g_(a - 1)_(c - 1)\n", " | [#1, $b, $c, $d] -> -1 * p * ∇J_(b - 1)_(c - 1)~(d - 1)\n", " | [$a, #1, $c, $d] -> p * ∇J_(a - 1)_(c - 1)~(d - 1)\n", " | [$a, $b, #1, $d] -> -1 * p * ∇J~(d - 1)_(a - 1)_(b - 1)\n", " | [$a, $b, $c, #1] -> p * ∇J_(c - 1)_(a - 1)_(b - 1)\n", " | [$a, $b, $c, $d] -> R_(a - 1)_(b - 1)_(c - 1)~(d - 1)\n", " - p^2 * J_(b - 1)_(c - 1) * J_(a - 1)~(d - 1)\n", " + p^2 * J_(a - 1)_(c - 1) * J_(b - 1)~(d - 1)\n", " + 2 * p^2 * J_(a - 1)_(b - 1) * J_(c - 1)~(d - 1))\n", " [5, 5, 5, 5]\n" ] }, { "cell_type": "markdown", "id": "da3db121", "metadata": {}, "source": [ "## Wodzicki–Chern–Simons縮約\n", "\n", "交代縮約には $R'$ が3回現れます。生の結果にはquoteされた原子 $\\beta$ の\n", "負の冪が含まれます。$16\\beta^8$ を掛けてLaurent分母を払い、quoteの定義関係に\n", "対するGröbner基底を使って標準的な多項式正規形を求めたあと、分母を戻します。\n" ] }, { "cell_type": "code", "execution_count": 8, "id": "b8597a63", "metadata": {}, "outputs": [], "source": [ "def S := withSymbols [i, j, k]\n", " let (es, os) := evenAndOddPermutations 5 in\n", " sum (map (\\σ -> R'_(σ 1)_j_1~i . R'_(σ 2)_(σ 3)_k~j . R'_(σ 4)_(σ 5)_i~k) es) -\n", " sum (map (\\σ -> R'_(σ 1)_j_1~i . R'_(σ 2)_(σ 3)_k~j . R'_(σ 4)_(σ 5)_i~k) os)\n", "\n", "def quoteGb :=\n", " groebnerBasis ['(1 + θ₂ - θ₂^2 - β), '(1 + θ₂ - `(1 + θ₂))]\n", "\n", "def sSimplified := polyNF quoteGb (16 * β^8 * S) / (16 * β^8)\n" ] }, { "cell_type": "code", "execution_count": 9, "id": "06b1d092", "metadata": {}, "outputs": [ { "data": { "text/html": [ "$192 p^{6} κ - 40 (-θ₂^{2} + θ₂ + 1)^{-2} p^{4} κ + \\frac{-25}{16} (-θ₂^{2} + θ₂ + 1)^{-4} p^{2} κ$" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sSimplified\n" ] }, { "cell_type": "code", "execution_count": 10, "id": "14d481dd", "metadata": {}, "outputs": [ { "data": { "text/html": [ "$True$" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "def sClosedForm :=\n", " p^2 * κ * (-25 - 640 * p^2 * β^2 + 3072 * p^4 * β^4) / (16 * β^4)\n", "\n", "sSimplified = sClosedForm\n" ] }, { "cell_type": "markdown", "id": "b369a39c", "metadata": {}, "source": [ "## 結果\n", "\n", "Egisonは完全な縮約を次の形まで簡約します。\n", "\n", "$$\n", "S=192p^6\\kappa-\\frac{40p^4\\kappa}{\\beta^2}\n", " -\\frac{25p^2\\kappa}{16\\beta^4}\n", " =\\frac{p^2\\kappa(-25-640p^2\\beta^2+3072p^4\\beta^4)}\n", " {16\\beta^4}.\n", "$$\n", "\n", "以前は外部の数式処理システムで簡約していた式を、現在はEgisonだけで計算し、\n", "正規化できます。\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 }