{ "cells": [ { "cell_type": "markdown", "id": "0", "metadata": {}, "source": [ "# From Pauli matrices to any SU(N): gauge representations with `feynlag`\n", "\n", "*A gentle tour for someone new to particle physics — you need only linear algebra\n", "and a little quantum mechanics.*\n", "\n", "Quarks come in **three colours**. The weak force acts on **doublets**. Grand unified\n", "theories pack a whole matter generation into a **$\\bar 5$ and a $10$** of SU(5). Every\n", "one of these statements is about a **representation of a Lie group** — the mathematical\n", "language of gauge symmetry.\n", "\n", "This notebook builds that language from the ground up, and shows how `feynlag` now\n", "constructs the generators of **any** SU($N$) representation *dynamically* — with no\n", "hard-coded matrices beyond the familiar Pauli and Gell-Mann ones.\n", "\n", "**Roadmap**\n", "\n", "1. Symmetries and generators\n", "2. The Lie algebra\n", "3. Representations: one symmetry, many sizes\n", "4. Labelling representations: dimension and Dynkin labels\n", "5. A peek inside: highest weights and ladder operators\n", "6. Conjugate representations: matter vs antimatter\n", "7. Anomalies: a consistency test the representations must pass\n", "8. Putting it to work: a model in a brand-new representation\n", "9. Recap" ] }, { "cell_type": "code", "execution_count": null, "id": "1", "metadata": {}, "outputs": [], "source": [ "import sympy as sp\n", "sp.init_printing() # pretty-print matrices as LaTeX\n", "\n", "from feynlag import (SU2, SU3, SUN, Scalar, WeylFermion, Model,\n", " ExternalParameter, Lagrangian, Dmu,\n", " structure_constants, check_anomaly_free)\n", "from feynlag.groups import sun" ] }, { "cell_type": "markdown", "id": "2", "metadata": {}, "source": [ "## 1. Symmetries and generators\n", "\n", "A **symmetry** in particle physics acts on a *multiplet* of fields — a column of $n$\n", "objects that the transformation mixes among themselves. Mixing $n$ things linearly is\n", "just multiplication by an $n\\times n$ matrix $U$.\n", "\n", "For a **continuous** symmetry we can turn the transformation on gently. Very close to\n", "\"doing nothing\" ($U = \\mathbb{1}$), any such transformation looks like\n", "\n", "$$U(\\alpha) \\;\\approx\\; \\mathbb{1} + i\\,\\alpha\\, T + \\dots$$\n", "\n", "The matrix $T$ that appears at first order is a **generator**: it *generates* the whole\n", "family of transformations. A group with several independent \"directions\" of\n", "transformation has several generators $T^a$ ($a = 1, 2, \\dots$).\n", "\n", "The smallest non-trivial example is **SU(2)**, acting on a 2-component doublet (think of\n", "the weak isospin of $(\\nu_e, e)_L$). Its three generators in this 2-dimensional\n", "(*fundamental*) representation are the **Pauli matrices divided by two**:" ] }, { "cell_type": "code", "execution_count": null, "id": "3", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAS0AAAAzCAYAAADCSF6xAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAK50lEQVR4Ae2d0bXUNhCGL5xbACEdJB3chAqADiBUQNJBOHnjjRM6ADpI6ICkAgIdhA4gdED+z1ez2F7tenctyWOtdI7WtmyNNP+MZ2dk2brx5cuXiznp6dOnt2L1Vf45Vr6GMm88eetPSRkG3m9r+6HfrjdMvPWnj9VS+7kwuTyEITX+Rtc90fZ95Pp3KvtuVP5Sx7+MytwcBjB/oo/a/yHSsT9Vdm9U/peO74/KSh2uDuOEwPwmWh+Vn49orlJGB+jeiM1VHx4so4AL1z/U/l6HZ9JoiQCE/tQ2ZrAM0fs6z03tPqmfV+qkGaRdXuLAOKnOz6rzcGHmVoNxSpyE/ZMYPZWvTkaH6F6M17WWHSMjXftZGVm/0/YHjnfxfXPXCcpVEYP1QVs8pyqSeHmvzL/2INyogrnGhGsEmu7tFw/46IrOcO27cqfREgG8i++0jf7T7SPazjUE5iIgvbun/Ksyf5wtnQkCkvdrsfp6n9yj4aEqMEb1u3JsvOdk+EQXmiTGKL5X/l1lzeMBkQSpFnzFB2H7lbbPlb9wrLwzXEgAXSMxQkB4L3avqm3Gz/9V/ll5K8rb5Wkx8P5MFZIZFNFiMPmttnSI8AwP7o32MZAtzUSgMnxvC46X4umBtgxPNIM1Uz+Oqe5El7APODX8gQ3SltHSRYSFPGIeP60ZVDzmINDk3xLXr0vaRxE5fnFd0n5PRaA2fMWPGSqeQDf9OFUxTqjnRZfUD2wDTpN5fBtutoxWuGjLJdvUOG2HJ2+xp49vVc7YxZY1Pa2Zs61VHb5BJ3jKi8fFE9+WyiDgSZfwtggRB9HYwGjp5K+6CAPyLDE+KN+nCE0LP20KQuSSVnQAAjXiC0886cUjdzvn7wDZrO0SN7ok2TONCmdn4G1djhBFORi5R1GSJNE6xItiDKNIUn+w2vCJcHg6CiAftU0WDoteseQN34SMo7CPxB9/pAOlTdhGUVLixbXuOdUlHCjmiW4exmyMlgpxwQE19SRKM0j7DOEhhi2JgolPvLuapnG4wjeJkEREckJfUutiqu6dRGcFuudRl2zSOmPtnWPRDw95XYJZqbGxp5OEdESlb4+4tl16PAIN3+MxazXiCBTVpfDnheHaDBFsPC0VEi6ZVYt397TS2FiWUTLLzryt7EkATL4drmtuZO9I2gZc4Cvc8Jb/Vj7Ga+Y9s8GfZKUyulgJXy50KXJ7MMH4hTBkOOdDZ7S0cxWUjflZSZNo471BM6bMVmYD8knbHhNTP9ZmkMYsbB17wZd+qHOzJyPXKCOEtga+kKEy3bX7kn1LVlbkXrVGw/YPbZn6gmP10sJDDkg5PC2jy3jZOJmnlavdcXu1HoNfw7dW6Zbly50uYUwFAbl7Sf4y4MEBVjaXFcW9iz0B4p/ZHmuHruTdiEf+MRi/I9mN/jgAc126vl83+KaArlIZXayEL6+69I90i4jwwjytH7VPYZYkYTFZ9ZO2vJbRpSBAvmn1OBSV2vBqAK8SkXk6RRzPK0arTeLDE74pcKxORgEU93w51iXGPjsn46Y6iedBzuVlBXl14x18EwrBMffmlfJd7Q8GYu3ijFtm2Fo4TDN4gAzwdVY8Y7u5SeO1esA3BZ+1ymgtfHnUpX9RLO5dwkMLkbrCFBoXo6HGiEk3jy1j1xQqow/ZvMpCPGw14wjfrb6dUFCljITDKvhyqkt2z171jVZuT+sE3U1fRQIZv1eJIvGCbmmPLz1zlVCsVUa18lVI7cw+fc+Ylj3Bs8JCfVi+GSkRISHjbLMf1S/PTZ09qFVGtfKVSwuFF5Ea6TZGi/EskhVeH1X+KxAIixnP2vs96sphcM1erTKqla9CynSL8PDb0BhP0c4iBaXh6WE37yMcX2h7dt6mV4EHmVQno1r5KqRHOFa3MVrmaRVqd9lmgtIwu5Ybwp4YMq5V00vUy4I8s/VaZVQrXzPFfUx1HKvO0+rGtATouYSHzMnCUA/mZol/DFc1SfzA49YipythsFYZ1cpXSbXqPK1iDYYbiQmluxZJzd4X9eGb7I34aIBZ/x+VV/edsFplVBtfS93PhIfdWBYdUM7mbYk2odg9ZRJeQEsZERDeLdzNiO+5k17wfv7E00MzVF2YmEsYYvKsFkkVv80w51KmRHSbjE4HcqH7GRv1GaNFCEFqN9k1DrN/w83wn7aMYRRNapOFQtoipxOoLymjia610/sR6L6nZZ7W/ksrOiuFtS9OYLCTLxor+vbFDELurGF3XyzhRlzFIqe5ZdDHJba/oIyy6l6M14rKcKy68NDmZ2UND70AJ2XF+8m+aKzawRiWHldChu4XOS0lgymdKy0jL3xP4eLxvLCzSLALD21CJTPEq05inI/j4/m8Nka1j6fJMXO3Uqc7gX5qulF6asv9IqfqY2kZRLHqFRaRkUO+exCsYtfs00c+TfM+dPkc3r8rthClcOWfwcYLi2lFaJentF4XOS0mgynQC8vIDd9TuDg9b0brw83QQbwtPgRYe+JmtnC4z6t5mzYlo3/u1H2+nbTEHCl4sK/BepwwW1IGU7IrKSNPfE/h4vG8Ga33l6F3eFuAmi3pBqZRbiLa4aN7DEgWWyQ1/Kuqyb0p2bjeQgYL5vjG9yO1726R09Iy2CtpnSwlI298T+FyyHnxVPp+vkO/1O71ajzaZxWeB4CrzBhP8kRjIlp6YLrPhxmkffwR0q06BfkRinhMZyGDCPDV8b3A/Yyz0y2AY+GhfRUwq7cVEaa3Ivvihbd+nVN/zlUG58r3pG7LQOLV4VB0SxxeUkOFNgbySIebJ2ucS5FE38MiqbGxLGPP/gmLD5xbB+ZunWA8xUbVMtjDvAu+pSPc+GtcUNecqc42dUYrgM2CiLzMnDwJrMUXSVUfPivDWywEtDIbkE+OQW6CHjCe4rF2Gezi3wvf9EN9nD1LYAFd47t3TOfp7k8LD8Gb9c4Y0zKrRlltyd1ClLUBfAA/5yqDc+X7AJWYvIRPom/mUW48LRmrv4IlYxC3G/CaJHXEBaKNN8PnUkjEqKTSi6R6XYjyGo2Zv04wnuKiahnsYb4qvkvpmtphMjJpsyBN39PiBNMQmLti4RJlqdLiC1WKr9oWNR3LZnGMxx0aH5+BDMYsd8cV8l1K15hx8Fr4Edp2aWC0ArCcNI8oXJZkgzHsh54YyCUWSSWmr2VR07FgvGA87tf4uGYZjHntH9fEd3ZdC/aCqGwwVWoTHvaQ5YIXqvBMeWPdeudP3WViqU2tOJXG7HqBJ48zxWfzJgIuMJ5ipHIZ7GS/Mr5L6Jp5WYMHZFtGS8DyzhodwtsaWLid0jjgBHRHl9FGWyR1BMqcw4bxHPRa3WMQyK1rok9URt76PPogPOx1+rH2cf9wzZIn0b0S0bZIanJkvxJsGH/Fou3lRSCTrvG08KFob0V7UaOlC3kX8ZkyFZMm0cYQMp7VFklNiuxXYg3jr1i0vbwI5NA10cQ+MOE9OtF9Kzw0FlXhuTLfGuqeElj5nK1oYbCqW4BzDiap6zaMUyPa6O1CIIeuiWYXFmq7cxLsTqNFR1UR9+ydMi9TR61eYIingLf6zOl44NbpGIOF5+Z+kdQxL+rzgLc+nwX3q8J4Lm5rldFcvr3UP+R+PlZGup5hI7ysu/v4jIaH/QoihMVjnUII7koYo/96mYbHic8cY0XZWmbcbGDcxpUWOmYi4BQ/pbtWG8Zz8VurjOby7aX+IffzwTKSHcAxeKV8d8om/A/xZDwRFch32gAAAABJRU5ErkJggg==", "text/latex": [ "$\\displaystyle \\left( \\left[\\begin{matrix}0 & \\frac{1}{2}\\\\\\frac{1}{2} & 0\\end{matrix}\\right], \\ \\left[\\begin{matrix}0 & - \\frac{i}{2}\\\\\\frac{i}{2} & 0\\end{matrix}\\right], \\ \\left[\\begin{matrix}\\frac{1}{2} & 0\\\\0 & - \\frac{1}{2}\\end{matrix}\\right]\\right)$" ], "text/plain": [ "⎛ ⎡ -ⅈ ⎤ ⎞\n", "⎜ ⎢0 ───⎥ ⎟\n", "⎜⎡ 0 1/2⎤ ⎢ 2 ⎥ ⎡1/2 0 ⎤⎟\n", "⎜⎢ ⎥, ⎢ ⎥, ⎢ ⎥⎟\n", "⎜⎣1/2 0 ⎦ ⎢ⅈ ⎥ ⎣ 0 -1/2⎦⎟\n", "⎜ ⎢─ 0 ⎥ ⎟\n", "⎝ ⎣2 ⎦ ⎠" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "SU2L = SU2('SU2L')\n", "T = SU2L.generators(2) # '2' = the 2-dimensional (fundamental) rep\n", "T[0], T[1], T[2]" ] }, { "cell_type": "markdown", "id": "4", "metadata": {}, "source": [ "Two facts you can read straight off these matrices, both *required* of any generator of\n", "a special-unitary group:\n", "\n", "- they are **Hermitian** ($T = T^\\dagger$) — so that $U = e^{i\\alpha T}$ is unitary\n", " (probability-preserving),\n", "- they are **traceless** — the \"S\" (for *special*) in SU($N$)." ] }, { "cell_type": "code", "execution_count": null, "id": "5", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(True, [0, 0, 0])" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "all(Ta == Ta.conjugate().T for Ta in T), [sp.trace(Ta) for Ta in T]" ] }, { "cell_type": "markdown", "id": "6", "metadata": {}, "source": [ "## 2. The Lie algebra: how generators multiply\n", "\n", "Generators do not commute — that is what makes the group *non-abelian* and the physics\n", "rich. The way they fail to commute is the single most important piece of data about the\n", "group:\n", "\n", "$$[T^a, T^b] \\;=\\; T^aT^b - T^bT^a \\;=\\; i\\, f^{abc}\\, T^c .$$\n", "\n", "The numbers $f^{abc}$ are the **structure constants**. They *are* the group, in the\n", "sense that everything else can be reconstructed from them.\n", "\n", "Let us verify the relation for SU(2). Taking $a=1, b=2$ (Python indices `0, 1`), the\n", "commutator should come out equal to $i\\,T^3$:" ] }, { "cell_type": "code", "execution_count": null, "id": "7", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAEsAAAAzCAYAAADfP/VGAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAENElEQVRoBe2a7VEbMRCGIUMBCenA6cBMKojpIE4HQAdh8gv+QgchJZAOQiogoYPQQUg6IO8Dt54z3Fmrk2Sfz9kZcbKk249Xq5VOy/bJycnLrQY6PT3929D80KQ+3tnV87ZtzDq3V/Y9M+GFWn6q/HlSzp6NnG/4pJ/v55sG9etS1jzF5HJbnvVLHUdC82pQ5mY0Rtgcit0Uz/pPTgR2nOMehgnhiSpjlbeqT2PeHcJYN1gCh6A+1vNc5Z7fKq2bwKrAkU4Wb39LhzcqZ2rLshHFLMNdCb6QYAL7bU+BYrO6lm7HKueqH6t8U32kZzK5wZJAA+hIUj8nS87MQPoRhPH2r8ZadTyf31n0dYOFAhLOUiRu4WHErj4RMfSmQaFrtU0q3Ru6/U1RYCFU5UaCmTE8rE+EbncNClm8oj+JYsHiLMZy/KinBdIkBXK87PQaYm4S7cS8XXlUH48MBsSi3ZkQkkSxnpUkbMUvv06VH/QsedN9SIjGbIfGFO5vilUm0ryOc1cSecBaNRBBAwkPKoxrWmrWZoE+yK9twJCWIZvPqMFQ86zki4KgZyFcs8bscC0DmUIHzOhjUy/+cq3StEPvqd2OO0mKej2L7ys+ISjshsQIPi16Q9LrQsrc6Tm7Z1OdSf6gcpBDUS9YhxI8qQlkBkdqG9fa+lDFi/alF5PLWfCLyjvVm0720fq6lqG4clr/Ec19yS8IFMJCsS8LF1hSAhevEwpxks8yY3XGfa57l+HMBgHE0iMu4PIbRVFgCaiR0CFe7anep51wKZPmWoZoUgHFbrhf+0178mFvKZZmEOICqwKKCzTAsh2QuMVN5MaQCyyhwZmKM8vc2UrAFdt5ljED0h+b3MliF1hi+moZyq9ABl8lfGBzXx8kF1hBLms6QE4QFUaidsM1xSSb2hvpWfKoiRBko4pKFrvBkgD7omeNZ01eZpt6ByPZQVDvlCx2LUMJYBcslrx02JhzyK6YdUoWB8ESUMWTlzmRCPGSPZ2TxUGwJLx48jJkYO7+aikSt6KSxR6wYNqUELDPHPrXjdDZbk/dB+uFYFUzEAKCGLBu1ClZvBOw0oBYdMPA7rJWJCfAnuhk8ULPciKQnLx0yln5sJBnNcUqU9q8jnNXUarCwXcJifHiqd6bu8nV76SE8UKwcFcVgGhS0tos0DOuCKGHGCffzIpPUsLYswyLJy+LIFyA6ULPquQVT14WsKuVpbyLFdEpYRz0LDEvnrxstaxMR+eEcRCsSt+iycsymLRy7Zww9izDLXkXAdZ90m1Vsx8d2NEpYewCqx825tGiCit1ZoDnShh7l2Gd+WDqAm4sY9wJ440FS0CNBFRUwnjjliHLogIqOmFsYPHvQ3Yihx8MCeqDowqohQnjp1gIhAdsDCxephhxthrK7mc22ZMrcoznOSMBVLeXg/hk1vlYufoHmwFy210Bds0AAAAASUVORK5CYII=", "text/latex": [ "$\\displaystyle \\left[\\begin{matrix}\\frac{i}{2} & 0\\\\0 & - \\frac{i}{2}\\end{matrix}\\right]$" ], "text/plain": [ "⎡ⅈ ⎤\n", "⎢─ 0 ⎥\n", "⎢2 ⎥\n", "⎢ ⎥\n", "⎢ -ⅈ ⎥\n", "⎢0 ───⎥\n", "⎣ 2 ⎦" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "comm = T[0] * T[1] - T[1] * T[0]\n", "comm" ] }, { "cell_type": "code", "execution_count": null, "id": "8", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAADUAAAAzCAYAAAA3v0BtAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACVElEQVRoBe1a0U3DMBCliAEq2CCMAExAR6BsAB2hn+lv2QBWKBvABhXdADagMALvqpxkWXeO8cWSU9mSZefi5L3nu6TXUyZt205PhLZarX4Fc1EmcBS5n4LlB/qP19dFsdfJbDzepGMzgac+MVlA9bt+7TjOQMMjmM7JU0fXzmIUYQc4HL+x/hJ9DdtXzLXWNSnYvZ7CTemZ22Jcoj9hvkR/w7yxEu67PhU7KAo3pRidYnxlApjTW5GOn9mWY7RgB0WB7Bx9J5DewjYDsPhKFdanmJKx+0TNwGYvMOLnic7nasnYqqhIL5znUGTFVkWBLBMOZRa5ws+EHRIV44SLmEWZ1qjYIVHSs8T8eCfpdytHM2GrohDXHHZSiLGNXxiDCrNiq6I6lpQPNgJj9lTOfDEZu08UZcHXgqgr2HbOjgpLzKZk7KAokH4BtT3GO6aIOYXePfoD23KMFuyYhJa8QgnsDUZ6MdB4i2Mp08CpQVsSdq8okKcXxmJQqpE3S8UOhl8kdnHLqqjiXKIQqp5SNqY4c/VUcS5RCFVPKRtTnPkoPdWbJpEbkK7UYuZQ8YjNTCqkBsMPN63FzKE81N2nFjPdDVXDD6HHxRV3vT/nWoVvNx1bsVVRYMWE6U+i1mKEa9eG7CbskKgQKJ9TC4q8IOOoYodEmQqKRjEmbFUU4prDTgoxttVi5j+9V4uZ7oap4UeLEIK1mOnu1kDzWszkjQyGHy8a21hFjcVj1VNj8RTXKBo/3XfSpGK1+JxB9JC+cfjRd0buh4xcaClWUEfM/4jxwPsPYQ0VhUUzypgAAAAASUVORK5CYII=", "text/latex": [ "$\\displaystyle \\left[\\begin{matrix}0 & 0\\\\0 & 0\\end{matrix}\\right]$" ], "text/plain": [ "⎡0 0⎤\n", "⎢ ⎥\n", "⎣0 0⎦" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sp.simplify(comm - sp.I * T[2]) # zero matrix => f^{123} = +1" ] }, { "cell_type": "markdown", "id": "9", "metadata": {}, "source": [ "For SU(2) the structure constants are just the Levi-Civita symbol,\n", "$f^{abc} = \\varepsilon^{abc}$. `feynlag` can hand them to us as a dictionary of the\n", "non-zero entries:" ] }, { "cell_type": "code", "execution_count": null, "id": "10", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/latex": [ "$\\displaystyle \\left\\{ \\left( 0, \\ 1, \\ 2\\right) : 1, \\ \\left( 0, \\ 2, \\ 1\\right) : -1, \\ \\left( 1, \\ 0, \\ 2\\right) : -1, \\ \\left( 1, \\ 2, \\ 0\\right) : 1, \\ \\left( 2, \\ 0, \\ 1\\right) : 1, \\ \\left( 2, \\ 1, \\ 0\\right) : -1\\right\\}$" ], "text/plain": [ "{(0, 1, 2): 1, (0, 2, 1): -1, (1, 0, 2): -1, (1, 2, 0): 1, (2, 0, 1): 1, (2, 1 ↪\n", "\n", "↪ , 0): -1}" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "structure_constants(SU2L)" ] }, { "cell_type": "markdown", "id": "11", "metadata": {}, "source": [ "One more standard convention: the generators are **normalised** so that\n", "\n", "$$\\mathrm{Tr}(T^a T^b) = \\tfrac{1}{2}\\,\\delta^{ab}.$$\n", "\n", "The matrix of all traces is therefore $\\tfrac12$ times the identity:" ] }, { "cell_type": "code", "execution_count": null, "id": "12", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/latex": [ "$\\displaystyle \\left[\\begin{matrix}\\frac{1}{2} & 0 & 0\\\\0 & \\frac{1}{2} & 0\\\\0 & 0 & \\frac{1}{2}\\end{matrix}\\right]$" ], "text/plain": [ "⎡1/2 0 0 ⎤\n", "⎢ ⎥\n", "⎢ 0 1/2 0 ⎥\n", "⎢ ⎥\n", "⎣ 0 0 1/2⎦" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sp.Matrix(3, 3, lambda a, b: sp.trace(T[a] * T[b]))" ] }, { "cell_type": "markdown", "id": "13", "metadata": {}, "source": [ "## 3. Representations: one symmetry, many sizes\n", "\n", "Here is the key idea. The *same* abstract symmetry can act on multiplets of **different\n", "sizes** — on a doublet, a triplet, an octet, .... Each such realisation is a\n", "**representation**: a set of matrices $T^a$ (of some common size) obeying the *same* Lie\n", "algebra, i.e. with the *same* structure constants $f^{abc}$.\n", "\n", "Three representations exist for every group and deserve names:\n", "\n", "- the **singlet** — a 1-dimensional field that does not transform at all ($T^a = 0$); it\n", " is *neutral* under the force.\n", "- the **fundamental** — the smallest faithful one ($N\\times N$ for SU($N$)); quarks live\n", " in the fundamental **3** of colour SU(3).\n", "- the **adjoint** — same dimension as the number of generators; it is built directly out\n", " of the structure constants, $(T^a)_{bc} = -i f^{abc}$. The force-carrying gauge bosons\n", " (gluons!) live here.\n", "\n", "Let us look at colour **SU(3)**. Its fundamental has eight $3\\times 3$ generators — the\n", "**Gell-Mann matrices over two**:" ] }, { "cell_type": "code", "execution_count": null, "id": "14", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/latex": [ "$\\displaystyle \\left( \\left[\\begin{matrix}0 & \\frac{1}{2} & 0\\\\\\frac{1}{2} & 0 & 0\\\\0 & 0 & 0\\end{matrix}\\right], \\ \\left[\\begin{matrix}\\frac{1}{2} & 0 & 0\\\\0 & - \\frac{1}{2} & 0\\\\0 & 0 & 0\\end{matrix}\\right], \\ \\left[\\begin{matrix}\\frac{\\sqrt{3}}{6} & 0 & 0\\\\0 & \\frac{\\sqrt{3}}{6} & 0\\\\0 & 0 & - \\frac{\\sqrt{3}}{3}\\end{matrix}\\right]\\right)$" ], "text/plain": [ "⎛ ⎡√3 ⎤⎞\n", "⎜ ⎢── 0 0 ⎥⎟\n", "⎜ ⎢6 ⎥⎟\n", "⎜⎡ 0 1/2 0⎤ ⎡1/2 0 0⎤ ⎢ ⎥⎟\n", "⎜⎢ ⎥ ⎢ ⎥ ⎢ √3 ⎥⎟\n", "⎜⎢1/2 0 0⎥, ⎢ 0 -1/2 0⎥, ⎢0 ── 0 ⎥⎟\n", "⎜⎢ ⎥ ⎢ ⎥ ⎢ 6 ⎥⎟\n", "⎜⎣ 0 0 0⎦ ⎣ 0 0 0⎦ ⎢ ⎥⎟\n", "⎜ ⎢ -√3 ⎥⎟\n", "⎜ ⎢0 0 ────⎥⎟\n", "⎝ ⎣ 3 ⎦⎠" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "SU3c = SU3('SU3c')\n", "lam = SU3c.generators(3) # 8 generators, each 3x3\n", "lam[0], lam[2], lam[7]" ] }, { "cell_type": "markdown", "id": "15", "metadata": {}, "source": [ "The adjoint (the **8**, home of the gluons) is eight $8\\times 8$ matrices; the singlet is\n", "trivial. Same group, three different sizes:" ] }, { "cell_type": "code", "execution_count": null, "id": "16", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "fundamental 3: (3, 3) adjoint 8: (8, 8) singlet 1: (1, 1)\n" ] } ], "source": [ "print('fundamental 3:', lam[0].shape,\n", " ' adjoint 8:', SU3c.generators(8)[0].shape,\n", " ' singlet 1:', SU3c.generators(1)[0].shape)" ] }, { "cell_type": "markdown", "id": "17", "metadata": {}, "source": [ "And — this is the whole point of the word *representation* — the octet obeys **the same\n", "algebra** as the triplet, with the very same $f^{abc}$:" ] }, { "cell_type": "code", "execution_count": null, "id": "18", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "f3 = structure_constants(SU3c)\n", "adj = SU3c.generators(8)\n", "comm = adj[0] * adj[1] - adj[1] * adj[0]\n", "rhs = sum((sp.I * f3.get((0, 1, c), 0) * adj[c] for c in range(8)), sp.zeros(8, 8))\n", "sp.simplify(comm - rhs) == sp.zeros(8, 8)" ] }, { "cell_type": "markdown", "id": "19", "metadata": {}, "source": [ "## 4. Labelling representations: dimension and Dynkin labels\n", "\n", "So far we used **dimension labels**: `1` (singlet), `3` (fundamental of SU(3)), `8`\n", "(adjoint). That is convenient but incomplete — for a general group there can be *several*\n", "representations of the same dimension, so dimension alone is ambiguous.\n", "\n", "`feynlag` therefore lets you build **any** SU($N$) with `SUN(N, name)`, and label a\n", "representation in three ways:\n", "\n", "- by its **integer dimension** (`1`, `N`, `N`$^2-1$, or any dimension that is\n", " unambiguous),\n", "- by an explicit **Dynkin label** — a tuple $(a_1, \\dots, a_{N-1})$ of non-negative\n", " integers that names *exactly one* representation,\n", "- by a **conjugate** label (Section 6).\n", "\n", "Here is SU(4), with its singlet, fundamental (**4**) and adjoint (**15**):" ] }, { "cell_type": "code", "execution_count": null, "id": "20", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAFEAAAAVCAYAAAA+RgJMAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACoUlEQVRYCe2Z0VHbQBCGRYYCPKQD6CAkHSQdxEMH0EF4tN+Y0AGkg5AOQipgoAPoIMEl8H2STuOLJc3ZliU9eGfWujvd7f733+3e2T6YzWbfsiy7QJXpfD5/Kor7zyYG4Cji7B0d36MXvDjZE1jQBg8f/ieQtgl6bDvPa/SE4i/06NDGNqGzBu/QU8qLtr5dvCv9uaghOrowG9lImNMf+kwYFKLSsnJaPOLPWhJLAz/o+g/9iOYrEA/dWc0FC+A7c7LmnJy34gZ6Qd1xV9io3URNJNp5imYMNP5XtrfvupbSV9dmc3slAalzeqJ/3jcFjDlxFAJoF8rFq13tUYBsADEaEsF3BpG3DThH3Vwbzn0jhjxTxk3fftv8gemc9xPU24tngjmxNlcPvhMBJsAFTxP4WETyfoLJq8wlZfWR8uc6gIOTCCivM6MKY/B8QavcTNkFvkdro2VQEgFnyNQCo31sIpHHYDZyIhmMxBKM3wLGFMYZeH6jjxFLccVQj2TIg8UV/QRgL9fL4lXHFbf9haf5qE/xy0W4bC/7PbICnpXDZWsSMepuqvLHste2MmPMMWoktL/ScM8zuuxS38hPZDytcouvuoXzUFnBq8mUcPaIV/KVKIrFpxOj9MqzbfsvD0kpazMKmR34aZwTvm/wF+Vp6l7BlGhhi6YsO+CnsO9UzAMRy9RDmLkCTsptbP6yb3WaUn6mTdnqBwrsCNwQ15/i99UH2q+tdOEHG6lzEkfYjW4ew/uS8QuelVDPuWskseqZUMDYV7oZgpGThKFrdenLTyqoQGJKOKfY9IDYKYEliL78pMy56rM1iZBnqP+tLO6o0JefTeBvTSJOz5lgnrc2AbDGmL78rAGp6BpyojlN2f/HUvDQ+smmCf+xeOhM3wC7Sfgjf5kfxQAAAABJRU5ErkJggg==", "text/latex": [ "$\\displaystyle \\left[ 1, \\ 4, \\ 15\\right]$" ], "text/plain": [ "[1, 4, 15]" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "SU4 = SUN(4, 'SU4')\n", "[SU4.rep_dim(1), SU4.rep_dim(4), SU4.rep_dim(15)]" ] }, { "cell_type": "markdown", "id": "21", "metadata": {}, "source": [ "The dimension of *any* representation follows from its Dynkin labels through the **Weyl\n", "dimension formula** (a piece of pure combinatorics — no matrices are built to evaluate\n", "it). Here is a small catalogue of SU(3) representations, each named by its Dynkin label:" ] }, { "cell_type": "code", "execution_count": null, "id": "22", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Dynkin (0, 0) -> dimension 1\n", "Dynkin (1, 0) -> dimension 3\n", "Dynkin (0, 1) -> dimension 3\n", "Dynkin (1, 1) -> dimension 8\n", "Dynkin (2, 0) -> dimension 6\n", "Dynkin (0, 2) -> dimension 6\n", "Dynkin (3, 0) -> dimension 10\n" ] } ], "source": [ "for dyn in [(0, 0), (1, 0), (0, 1), (1, 1), (2, 0), (0, 2), (3, 0)]:\n", " print(f'Dynkin {dyn} -> dimension {sun.weyl_dim(3, dyn)}')" ] }, { "cell_type": "markdown", "id": "23", "metadata": {}, "source": [ "Notice that $(1,0)$ and $(0,1)$ are *both* 3-dimensional: they are the quark and\n", "antiquark representations (Section 6). Notice too that dimension $15$ would be ambiguous.\n", "The resolver `resolve_rep` translates a friendly label into a canonical Dynkin tuple\n", "(plus a flag for whether it is conjugated), and it *refuses to guess* when a dimension is\n", "ambiguous:" ] }, { "cell_type": "code", "execution_count": null, "id": "24", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(((2, 0), False), ((1, 0), True), ((2, 0), False))" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sun.resolve_rep(3, 6), sun.resolve_rep(3, '3bar'), sun.resolve_rep(3, (2, 0))" ] }, { "cell_type": "code", "execution_count": null, "id": "25", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "ValueError: SU(3) dimension 15 is ambiguous ((4, 0), (2, 1)); pass an explicit Dynkin tuple\n" ] } ], "source": [ "try:\n", " sun.resolve_rep(3, 15) # dimension 15 is ambiguous in SU(3)\n", "except ValueError as e:\n", " print('ValueError:', e)" ] }, { "cell_type": "markdown", "id": "26", "metadata": {}, "source": [ "## 5. A peek inside: highest weights and ladder operators\n", "\n", "Where do the matrices for, say, the **6** of SU(3) actually *come from*? The construction\n", "is a direct generalisation of something you already know from quantum mechanics:\n", "**building an angular-momentum multiplet with raising and lowering operators**.\n", "\n", "Recall the spin-$j$ story. You start from the **highest-weight** state $|j, j\\rangle$ and\n", "apply the lowering operator $J_-$ again and again to sweep out the whole multiplet\n", "$|j, j-1\\rangle, |j, j-2\\rangle, \\dots$. The matrix elements are square roots,\n", "\n", "$$J_\\pm\\,|j, m\\rangle = \\sqrt{(j \\mp m)(j \\pm m + 1)}\\;|j, m\\pm 1\\rangle .$$\n", "\n", "A general SU($N$) irrep is built exactly this way — pick the highest-weight state, then\n", "lower with the group's ladder operators to fill in every state. (The systematic\n", "bookkeeping is the *Gelfand–Tsetlin* construction; `feynlag` does it for you.) The\n", "fingerprint is the same: the ladder matrix elements come out as **square roots of\n", "rationals**.\n", "\n", "Watch it appear. Here is the **6** of SU(3) — six $6\\times 6$ generators — and its\n", "raising combination $T^1 + iT^2$:" ] }, { "cell_type": "code", "execution_count": null, "id": "27", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/latex": [ "$\\displaystyle \\left[\\begin{matrix}0 & \\sqrt{2} & 0 & 0 & 0 & 0\\\\0 & 0 & \\sqrt{2} & 0 & 0 & 0\\\\0 & 0 & 0 & 0 & 0 & 0\\\\0 & 0 & 0 & 0 & 1 & 0\\\\0 & 0 & 0 & 0 & 0 & 0\\\\0 & 0 & 0 & 0 & 0 & 0\\end{matrix}\\right]$" ], "text/plain": [ "⎡0 √2 0 0 0 0⎤\n", "⎢ ⎥\n", "⎢0 0 √2 0 0 0⎥\n", "⎢ ⎥\n", "⎢0 0 0 0 0 0⎥\n", "⎢ ⎥\n", "⎢0 0 0 0 1 0⎥\n", "⎢ ⎥\n", "⎢0 0 0 0 0 0⎥\n", "⎢ ⎥\n", "⎣0 0 0 0 0 0⎦" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "six = sun.su_n_generators(3, (2, 0)) # the 6 of SU(3)\n", "raiser = six[0] + sp.I * six[1]\n", "raiser" ] }, { "cell_type": "markdown", "id": "28", "metadata": {}, "source": [ "There are the tell-tale $\\sqrt{2}$'s — the very same ladder structure as $J_+$ in the\n", "spin story, now inside a colour representation.\n", "\n", "And the pay-off that makes this a genuine *representation*: these six $6\\times 6$\n", "matrices, produced purely by the ladder algorithm, satisfy the **same** structure\n", "constants $f^{abc}$ as the $3\\times 3$ fundamental. The library shares one common basis\n", "across every representation precisely so this holds automatically:" ] }, { "cell_type": "code", "execution_count": null, "id": "29", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "def closes(T, f, dim, n=8):\n", " return all(\n", " sp.expand((T[a] * T[b] - T[b] * T[a])\n", " - sum((sp.I * f.get((a, b, c), 0) * T[c] for c in range(n)),\n", " sp.zeros(dim, dim))) == sp.zeros(dim, dim)\n", " for a in range(n) for b in range(n))\n", "\n", "closes(six, f3, 6) # the 6 obeys the SAME algebra as the 3" ] }, { "cell_type": "markdown", "id": "30", "metadata": {}, "source": [ "Finally, a representation carries an intrinsic number, its **quadratic Casimir**\n", "$C_2 = \\sum_a T^aT^a$, which is a multiple of the identity (a fact guaranteed by *Schur's\n", "lemma*). For the **6** of SU(3) it is $10/3$:" ] }, { "cell_type": "code", "execution_count": null, "id": "31", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(10/3, True)" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "C2 = sum((Ta * Ta for Ta in six), sp.zeros(6, 6))\n", "C2[0, 0], C2 == C2[0, 0] * sp.eye(6)" ] }, { "cell_type": "markdown", "id": "32", "metadata": {}, "source": [ "## 6. Conjugate representations: matter vs antimatter\n", "\n", "For every representation $R$ there is a **conjugate** representation $\\bar R$ —\n", "physically, the one the *antiparticles* live in. If quarks are a **3** of colour,\n", "antiquarks are a $\\bar{\\mathbf 3}$. The generators of the conjugate are\n", "\n", "$$\\bar T^{\\,a} = -\\,(T^a)^{*} .$$\n", "\n", "In `feynlag` you ask for a conjugate with a string like `'3bar'`, a negative integer, or\n", "the reversed Dynkin tuple. It really is $-(T^a)^*$:" ] }, { "cell_type": "code", "execution_count": null, "id": "33", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "three = SU3c.generators(3)\n", "threebar = SU3c.generators('3bar')\n", "all(tb == -t.conjugate() for tb, t in zip(threebar, three))" ] }, { "cell_type": "markdown", "id": "34", "metadata": {}, "source": [ "We already saw that the Dynkin label of $\\bar{\\mathbf 3}$ is $(0,1)$, the reverse of the\n", "fundamental's $(1,0)$:" ] }, { "cell_type": "code", "execution_count": null, "id": "35", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "((1, 0), True)" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sun.resolve_rep(3, '3bar') # -> ((1, 0), True): the conjugate of (1, 0)" ] }, { "cell_type": "markdown", "id": "36", "metadata": {}, "source": [ "This is exactly why a quark ($\\mathbf 3$) and an antiquark ($\\bar{\\mathbf 3}$) can bind\n", "into a colour-neutral **singlet** — a meson. Combining a representation with its conjugate\n", "always contains the singlet. (For a *real* representation, such as the SU(3) octet,\n", "$R = \\bar R$ and the distinction disappears.)" ] }, { "cell_type": "markdown", "id": "37", "metadata": {}, "source": [ "## 7. Anomalies: a consistency test the representations must pass\n", "\n", "Not every collection of representations gives a healthy theory. In a **chiral** gauge\n", "theory (one where left- and right-handed fermions transform differently — like the real\n", "world), a quantum effect called the **triangle anomaly** can spoil the gauge symmetry\n", "unless it **cancels** between the particles. This is a genuine constraint that *rules\n", "models in or out*.\n", "\n", "Each representation contributes an **anomaly coefficient** $A(R)$, fixed by a symmetric\n", "trace of three generators and normalised to $A(\\text{fundamental}) = 1$. Here it is,\n", "written out transparently:" ] }, { "cell_type": "code", "execution_count": null, "id": "38", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'A(3)': 1, 'A(3bar)': -1, 'A(6)': 7, 'A(8)': 0}" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "def anomaly_index(group, rep):\n", " T = group.generators(rep)\n", " TF = group.generators(group.N) # the fundamental, for normalisation\n", " n = len(TF)\n", " for a in range(n):\n", " for b in range(a, n):\n", " for c in range(b, n):\n", " tF = sp.nsimplify(sp.expand(\n", " sp.trace(TF[a] * (TF[b] * TF[c] + TF[c] * TF[b]))))\n", " if tF != 0:\n", " num = sp.nsimplify(sp.expand(\n", " sp.trace(T[a] * (T[b] * T[c] + T[c] * T[b]))))\n", " return sp.simplify(num / tF)\n", " return sp.S.Zero\n", "\n", "{'A(3)': anomaly_index(SU3c, 3), 'A(3bar)': anomaly_index(SU3c, '3bar'),\n", " 'A(6)': anomaly_index(SU3c, 6), 'A(8)': anomaly_index(SU3c, 8)}" ] }, { "cell_type": "markdown", "id": "39", "metadata": {}, "source": [ "A real ($R=\\bar R$) representation like the **8** has $A = 0$; a conjugate flips the sign,\n", "$A(\\bar R) = -A(R)$.\n", "\n", "Now the famous example. In the **SU(5)** grand unified theory, one whole generation of\n", "matter fits into a left-handed $\\bar{\\mathbf 5}$ **plus** a $\\mathbf{10}$. Individually\n", "each is anomalous — but their anomalies **cancel**,\n", "$A(\\bar{\\mathbf 5}) + A(\\mathbf{10}) = -1 + 1 = 0$. That near-miraculous cancellation is\n", "one of the reasons SU(5) was taken seriously as a unifying group:" ] }, { "cell_type": "code", "execution_count": null, "id": "40", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAEEAAAAVCAYAAAAZ6IOkAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAB90lEQVRYCeWY0VHCQBCGA2MBUTuIHYBUoHQAlCAd4CN51Q7UEihBKUE6gA5EOsD/Oy6ZgzkHAgeZSXZmc5u7y+7+m927XKL1eh25PB6PE/e+arIPXzNyKE3TkW5bTlcVxcTizLE1eNOQBnpqOmqfTUfgi/QS3Im4LXkVWP2Wun22NM7LXql950ETBN3Ekqdq23SGIqv3Q/qW4nsxgbhWf/AgFLWl+d/y5QFfriRAL+I3IwW8WLB9VEo+a6kdYQu84B5ma8JASkxq4HAdyOIFd9zUhbVgUQfgHozgHpAJXfGXZ0IdusDdJQgsWPM6IPZgBHdCENgZWL3rSOBO2B1uxN4ti0VDY1Mx7aHU13OzQyeXPI81Ic62SK8vAkNwgn47eA2V12kSgHIgJYq86fJcDm8Z3EuCQEok4fUX02hLr9hDp88mExYEgfrtnK5vr4ZbOwPDW2QD8KuWT9kQ9K+tHeWU+qyho2VLwkQO3O1MCHIrvRyaoEcx6UfQyb5PjeVfqZKzbfroA9ahtmTbkLU5NP8SFIg5wSj734F86InjS/ghO4l4ji3KATIHiY1Y6pWjPDvSJYhfBuDeBEGGSUt+NpS2QMo2pfKDU+cmixO8phyzTMAuR97gx+kCgJ7k1GuB+adMBecwV+DWn62TkdtXNVkYR+B0cf0BQl3MML0zvT0AAAAASUVORK5CYII=", "text/latex": [ "$\\displaystyle \\left( -1, \\ 1\\right)$" ], "text/plain": [ "(-1, 1)" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "SU5 = SUN(5, 'SU5')\n", "anomaly_index(SU5, '5bar'), anomaly_index(SU5, (0, 1, 0, 0)) # 10 = (0,1,0,0)" ] }, { "cell_type": "markdown", "id": "41", "metadata": {}, "source": [ "And we can let the library confirm the cancellation on a real model — two left-handed\n", "fermion multiplets making up one generation, checked by `check_anomaly_free`. Note the\n", "fields are declared directly in the higher representations, including the $\\mathbf{10}$ by\n", "its Dynkin tuple:" ] }, { "cell_type": "code", "execution_count": null, "id": "42", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "five_bar = WeylFermion('fbar', reps={SU5: '5bar'}, chirality='L',\n", " nflavors=1, component_names=[f'fb_{i}' for i in range(5)])\n", "ten = WeylFermion('ften', reps={SU5: (0, 1, 0, 0)}, chirality='L',\n", " nflavors=1, component_names=[f'ft_{i}' for i in range(10)])\n", "generation = Model('SU5generation', gauge_groups=[SU5], fields=[five_bar, ten])\n", "check_anomaly_free(generation).ok" ] }, { "cell_type": "markdown", "id": "43", "metadata": {}, "source": [ "## 8. Putting it to work: a model in a brand-new representation\n", "\n", "None of this would matter if you could not *use* the new representations to build a\n", "Lagrangian. You can. Let us give a scalar field the **fundamental of SU(4)** — a group\n", "`feynlag` never had built in — and form its **covariant derivative**\n", "$D_\\mu S = \\partial_\\mu S - i g\\,A^a_\\mu T^a S$. The covariant derivative automatically\n", "uses the SU(4) fundamental generators we met above:" ] }, { "cell_type": "code", "execution_count": null, "id": "44", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/latex": [ "$\\displaystyle - \\frac{i SU4c_{1} S_{1} g_{4}}{2} - \\frac{SU4c_{10} S_{3} g_{4}}{2} - \\frac{\\sqrt{6} i SU4c_{15} S_{0} g_{4}}{12} - \\frac{SU4c_{2} S_{1} g_{4}}{2} - \\frac{i SU4c_{3} S_{0} g_{4}}{2} - \\frac{i SU4c_{4} S_{2} g_{4}}{2} - \\frac{SU4c_{5} S_{2} g_{4}}{2} - \\frac{\\sqrt{3} i SU4c_{8} S_{0} g_{4}}{6} - \\frac{i SU4c_{9} S_{3} g_{4}}{2} + \\operatorname{PartialMu}{\\left(S_{0} \\right)}$" ], "text/plain": [ " ⅈ⋅SU4c₁⋅S₁⋅g₄ SU4c₁₀⋅S₃⋅g₄ √6⋅ⅈ⋅SU4c₁₅⋅S₀⋅g₄ SU4c₂⋅S₁⋅g₄ ⅈ⋅SU4c₃⋅S₀⋅ ↪\n", "- ───────────── - ──────────── - ───────────────── - ─────────── - ─────────── ↪\n", " 2 2 12 2 2 ↪\n", "\n", "↪ g₄ ⅈ⋅SU4c₄⋅S₂⋅g₄ SU4c₅⋅S₂⋅g₄ √3⋅ⅈ⋅SU4c₈⋅S₀⋅g₄ ⅈ⋅SU4c₉⋅S₃⋅g₄ ↪\n", "↪ ── - ───────────── - ─────────── - ──────────────── - ───────────── + Partia ↪\n", "↪ 2 2 6 2 ↪\n", "\n", "↪ \n", "↪ lMu(S₀)\n", "↪ " ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "g4 = ExternalParameter('g4', 0.9, positive=True)\n", "SU4c = SUN(4, 'SU4c', coupling=g4)\n", "S = Scalar('S', reps={SU4c: 4}, component_names=[f'S_{i}' for i in range(4)])\n", "DS = Dmu(S)\n", "DS[0] # first component of the covariant derivative" ] }, { "cell_type": "markdown", "id": "45", "metadata": {}, "source": [ "Finally, the acid test of a gauge theory: the Lagrangian must be **gauge invariant**.\n", "`feynlag` checks this end-to-end. Here we confirm that the mass term $S^\\dagger S$ is\n", "invariant under the full SU(4) — the machinery transforms the field with the GT-built\n", "generators and verifies the variation vanishes:" ] }, { "cell_type": "code", "execution_count": null, "id": "46", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "L = Lagrangian().add((S.dag() * S.mat)[0], sector='potential')\n", "model = Model('SU4-scalar', gauge_groups=[SU4c], fields=[S],\n", " parameters=[g4], lagrangian=L)\n", "model.check_invariance().ok" ] }, { "cell_type": "markdown", "id": "47", "metadata": {}, "source": [ "## 9. Recap\n", "\n", "You have gone from \"what is a generator?\" to building a gauge-invariant term in an SU(4)\n", "theory. The through-line:\n", "\n", "- A **generator** is the first-order piece of a continuous symmetry; the **Lie algebra**\n", " $[T^a,T^b]=if^{abc}T^c$ packages how they combine.\n", "- A **representation** realises that algebra at a chosen size; every one shares the same\n", " structure constants $f^{abc}$.\n", "- `feynlag` builds the generators of **any** SU($N$) representation on demand, by the\n", " highest-weight / ladder construction — no hard-coded matrices beyond Pauli and\n", " Gell-Mann.\n", "\n", "**Labelling cheat-sheet** for `SUN(N, name).generators(label)`:\n", "\n", "| Label | Meaning |\n", "|---|---|\n", "| `1` | singlet (trivial) |\n", "| `N` | fundamental |\n", "| `N**2 - 1` | adjoint |\n", "| other int `d` | the unique dimension-`d` rep (error if ambiguous) |\n", "| `-d` or `'dbar'` | the conjugate of dimension `d` |\n", "| Dynkin tuple `(a_1, ..., a_{N-1})` | that exact irrep (fully general) |\n", "\n", "To go deeper: `tests/test_sun.py` pins all of this physics (the SU(4)/SU(5) algebra, the\n", "**6** of SU(3), conjugates, the SU(5) $\\bar 5 + 10$ anomaly cancellation), and the\n", "`groups/sun.py` module docstring explains the Gelfand–Tsetlin construction and why the\n", "normalisation is fixed by the shared basis." ] } ], "metadata": { "kernelspec": { "display_name": "Python (lagrangian)", "language": "python", "name": "lagrangian" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.12.13" } }, "nbformat": 4, "nbformat_minor": 5 }