Continuous symmetry
The rotations of space form a group: do one rotation and then another, and the result is a rotation. Unlike the symmetries of a crystal, they form a continuum — a three-dimensional manifold — and the group operations are smooth. Such Lie groups are everywhere: the rotations of a satellite, the Lorentz transformations of special relativity, the unitary groups , , of the Standard Model, the symplectic groups of classical mechanics, the groups and of hyperbolic geometry and number theory.
Sophus Lie's discovery, in the 1870s, was that a Lie group is almost completely determined by its infinitesimal elements — its tangent space at the identity — together with one algebraic operation, the bracket that measures how far infinitesimal motions fail to commute. This turns hard nonlinear questions about curved groups into linear algebra. The trade is not perfect, and the lesson is partly about what is lost: the exponential map need not be onto, and different groups ( and ) can share a Lie algebra. But the gains are enormous: the representations of — the spins of quantum mechanics — come from a short algebraic argument about three matrices .
This lesson builds on smooth manifolds and on matrix groups (the matrix exponential, quaternions and ). It leads to representation theory and, through root systems and dual groups, towards the Langlands programme.
Infinitesimal rotations and their commutators
A rotation by a small angle about the axis moves a point by approximately . So the infinitesimal rotations are the maps , given by skew-symmetric matrices ; the rotation itself is recovered by "integrating", .
Rotations do not commute, and the bracket measures the failure at second order. Rotate by a small angle about , then , then back about , then back about : you do not return home. You have rotated, approximately, by about the -axis. In general,
and for rotations . The vector space of infinitesimal elements, with this bracket, is the Lie algebra. Most of the group's structure is encoded in it: whether the group is commutative near the identity, which subgroups it has, how it can act linearly.
Lie groups, Lie algebras and the exponential map
Definition— Lie group
A Lie group is a group that is also a smooth manifold, such that multiplication and inversion are smooth. A Lie group homomorphism is a smooth group homomorphism.
Definition— Lie algebra
A Lie algebra over a field is a vector space with a bilinear bracket that is alternating () and satisfies the Jacobi identity . Every associative algebra is a Lie algebra under the commutator ; for example . A representation of on a vector space is a Lie algebra homomorphism .
Definition— the Lie algebra of a Lie group
A vector field on is left-invariant if for all , where . The map identifies left-invariant vector fields with , and the Lie bracket of vector fields preserves left-invariance. So inherits a bracket: the Lie algebra of , of dimension . A homomorphism has a differential , which is a Lie algebra homomorphism.
Definition— exponential map, adjoint representation
For the integral curve of the left-invariant field through is a one-parameter subgroup , , and . For matrix groups, . The adjoint representation is , the differential at of conjugation ; for matrix groups , and its differential is .
For a matrix group — a closed subgroup — all this becomes concrete: with the commutator bracket (Theorem 1). Throughout the lesson, and mean the matrix exponential.
The classical groups and their Lie algebras
Example— The classical Lie algebras
Using and , :
| group | Lie algebra | dimension |
|---|---|---|
| all of | ||
| : | ||
| , | : | |
| : | ||
| : , | ||
For instance gives . Conversely, if is orthogonal for all , differentiating at gives .
Example— so(3), su(2) and the cross product
Let . Then , , : the map is an isomorphism from to . In , the matrices built from the Pauli matrices
satisfy the same relations and cyclically. So (Lean checks both sets of relations below). Complexifying, both become , with basis
Example— More Lie groups, and some non-examples
- under addition, the circle , tori (abelian, with zero bracket); every countable discrete group (dimension ).
- The Heisenberg group of upper unitriangular real matrices; its Lie algebra has with central — the commutation relation of position and momentum.
- The group of affine maps , : two-dimensional, non-abelian, with .
- The irrational line on the torus: is an injective homomorphism from whose image is dense. The image is a Lie subgroup (an immersed submanifold) that is not closed, illustrating why the Lie correspondence (Theorem 4) speaks of immersed subgroups.
- Not Lie groups: the -adic integers (compact, but totally disconnected and uncountable, so not a manifold of any dimension); with the topology from (not locally Euclidean). By the work of Gleason, Montgomery–Zippin and Yamabe (1952–53) on Hilbert's fifth problem, a locally compact group is a Lie group exactly when some neighbourhood of the identity contains no non-trivial subgroup.
The Lie algebra and the exponential map
Theorem— Theorem 1 (the Lie algebra of a matrix group)
Let be a closed subgroup and . Then (a) is a linear subspace; (b) for , ; (c) for . So is a Lie algebra under the commutator.
Proof
(a) Clearly is closed under scalar multiples. For sums, use the Lie product formula : indeed , so for large it equals (the matrix logarithm is defined near ), and its -th power is . Each lies in , and is closed, so .
(b) , by applying conjugation term by term to the exponential series.
(c) By (b), the curve lies in , a linear (hence closed) subspace of , so its derivative at does too: . ∎
∎
Cartan's closed subgroup theorem says more: every closed subgroup of a Lie group is an embedded Lie subgroup, and its Lie algebra (the tangent space at ) is exactly this . That the commutator satisfies the Jacobi identity is a direct expansion (checked in Lean below).
Theorem— Theorem 2 (one-parameter subgroups)
If is a differentiable homomorphism, then with . (Every continuous homomorphism is automatically smooth; Hall, Theorem 2.14.)
Proof
From we get . Let . Then , so . ∎
∎
Conversely is a homomorphism, because and commute (formalised below). The exponential map is a local diffeomorphism at (), and:
Theorem— Theorem 3 (homomorphisms are determined by their differentials)
Let be a Lie group homomorphism. Then for all . If is connected, it is generated by for any neighbourhood of , so is determined by .
Proof
is a one-parameter subgroup of with velocity at , so by uniqueness of one-parameter subgroups (Theorem 2 for matrix groups; integral curves in general) it equals . For the second claim, let , a neighbourhood of , and let be the subgroup generated by . It is open: it contains the neighbourhood of each of its elements . Its complement is a union of cosets , each open, so is also closed. As is connected, . ∎
∎
Theorem— Theorem 4 (the Lie correspondence; stated)
(a) For a Lie group with Lie algebra , is a bijection between connected Lie subgroups (immersed) and Lie subalgebras of . (b) Lie's third theorem: every finite-dimensional real Lie algebra is the Lie algebra of a simply connected Lie group , unique up to isomorphism. (c) If is simply connected, every Lie algebra homomorphism is the differential of a unique homomorphism . (d) The connected Lie groups with Lie algebra are exactly the quotients by discrete central subgroups .
(a) follows from the Frobenius theorem applied to the left-invariant distribution spanned by ; (b) from Ado's theorem (every finite-dimensional Lie algebra is a matrix Lie algebra) and (a). See Hall, Chapter 5, or Warner, Chapter 3.
What the Lie algebra does not see
Theorem— Theorem 5 (SU(2) and SO(3))
, but . In fact is a surjective homomorphism with kernel , is diffeomorphic to and simply connected, and has .
Proof
The Lie algebras are isomorphic by the matching relations above. is the unit sphere , simply connected. preserves the inner product on , so it lies in , and in since is connected. Its kernel consists of the commuting with all of , hence with all of (which spans over ): the scalars in , namely . Its differential is injective (since has trivial centre), so is a local diffeomorphism, its image is an open — hence closed — subgroup of the connected , i.e. all of it. Finally the centre of is while the centre of is trivial, so the groups are not isomorphic. ∎
∎
So is the simply connected group of Theorem 4(b) for , and . Physically: a rotation by is the identity in but in , which is why the wave function of an electron changes sign under a full turn.
Theorem— Theorem 6 (exp is not onto SL(2, ℝ))
Every with has trace , with equality only for . Consequently is not the exponential of any .
Proof
For a trace-zero matrix, Cayley–Hamilton gives with . Splitting the exponential series into even and odd powers,
If this is , of trace . If it is , of trace . If it is , of trace ; equality forces , so and . Since , is not an exponential. ∎
∎
is nevertheless a product of two exponentials: , as Theorem 3 guarantees for the connected group . On the other hand, for a compact connected Lie group the exponential map is onto: a bi-invariant Riemannian metric exists (average any inner product on over ), its geodesics through are the one-parameter subgroups, and the Hopf–Rinow theorem of Riemannian geometry joins to every point by a geodesic.
Compact groups, Haar measure and complete reducibility
Theorem— Theorem 7 (Haar, 1933; stated)
Every locally compact group has a non-zero left-invariant regular Borel measure, unique up to a positive scalar. If is compact, it is finite (and also right-invariant), and can be normalised to total mass .
Theorem— Theorem 8 (complete reducibility)
Every finite-dimensional continuous representation of a compact group on a real or complex vector space is a direct sum of irreducible representations.
Proof
Let be any inner product on and the normalised Haar measure. Define
It is an inner product (positivity: the integrand is positive and continuous when ), and it is -invariant: by right invariance of . If is invariant, so is : for , , . Hence as representations, and induction on finishes the proof. ∎
∎
For finite groups the integral is the average , and this is Maschke's theorem. The theorem fails for non-compact groups: the representation of by has the invariant line but no invariant complement. Weyl's unitarian trick transfers complete reducibility from to , whose complex representations are the same as those of (complexification). The Peter–Weyl theorem goes further: the matrix coefficients of irreducible representations are dense in , generalising Fourier series (the case ).
The representations of sl(2, ℂ)
For each , let have basis and define
Theorem— Theorem 9 (classification)
is an irreducible representation of of dimension , and every finite-dimensional irreducible complex representation of is isomorphic to exactly one .
Proof
Key identity. In any representation (indeed in any ring with and ),
For it is . Inductively, , and by ; so it equals .
Highest weight vectors. Let be finite-dimensional and irreducible. Since is algebraically closed, has an eigenvector , . From , each is either or an eigenvector with eigenvalue ; these eigenvalues are distinct, and has finitely many, so for some , and . Write .
The string. Let . As above, , so the non-zero are linearly independent; let be largest with , so . By the key identity applied to , .
The weight is an integer. , and , so .
Irreducibility gives the rest. is non-zero and invariant under , , , so it is ; in this basis , , act by the formulas defining . Hence , and is determined by .
Existence. The formulas define a representation: and are clear, and . It is irreducible: an invariant subspace contains an eigenvector of , i.e. some ; applying repeatedly gives (the coefficients are non-zero for ), and applying gives all . ∎
∎
Concretely, , the homogeneous polynomials of degree in , with , , ; is the defining representation and is the adjoint representation. The Casimir element commutes with and acts on by . Since is simply connected, every integrates to a representation of (Theorem 4(c)); it descends to exactly when acts trivially, i.e. when is even. In physics is the spin- representation; the "half-integer spins" are the representations of that are not representations of .
Tensor products decompose by Clebsch–Gordan: the weights of are the sums of weights, and peeling off highest weights gives
A first look at root systems: sl(3, ℂ)
Example— The roots of sl(3, ℂ)
Let be the diagonal trace-zero matrices , a maximal abelian subalgebra of semisimple elements (a Cartan subalgebra). The elementary matrices () are simultaneous eigenvectors of :
So (dimensions ), and the six linear functionals on are the roots. In the plane they form a regular hexagon, all of the same length; the simple roots , make an angle of , every root is , or , and the Cartan matrix is . The Weyl group, generated by the reflections in the roots, is permuting the coordinates.
Each pair gives an -triple (, , ), so every representation of restricts to representations of three copies of — and Theorem 9 forces the weights to be integral on the coroots. This is the start of the general theory: Killing (1888–90) and Cartan (1894) classified the complex simple Lie algebras by their root systems — the four infinite families (), (), (), () and five exceptional algebras — and the irreducible representations by their highest weights (Cartan, Weyl).
Lie groups in Lean and Mathlib
Mathlib defines a Lie group as a group with a manifold structure for which multiplication and inversion are smooth, and provides the basic examples. We cite two: the units of a complete normed algebra (such as ) and the circle.
/-- **`GL` is a Lie group.** The group of units `Rˣ` of a complete normed algebra `R` is a Lie
group, modelled on `R` itself (it is an open subset of `R`). For `R = Mₙ(ℝ)` with an operator
norm, this is `GL(n, ℝ)`. Mathlib's instance from `UnitsOfNormedAlgebra`. -/
theorem units_lie_group {𝕜 : Type*} [NontriviallyNormedField 𝕜] {R : Type*} [NormedRing R]
[CompleteSpace R] [NormedAlgebra 𝕜 R] (n : WithTop ℕ∞) :
LieGroup (modelWithCornersSelf 𝕜 R) n Rˣ :=
inferInstance/-- **The circle group `U(1)` is a Lie group** (indeed analytic, `ω`), with the charts of the
`1`-sphere. Mathlib's instance in `Instances.Sphere`. -/
theorem circle_lie_group : LieGroup (𝓡 1) ω Circle :=
inferInstanceMathlib also equips the tangent space at the identity of any Lie group with the bracket of left-invariant vector fields (GroupLieAlgebra, an instance of LieAlgebra), exactly as in our definition. On the algebraic side, the commutator makes every associative ring a Lie ring; the Jacobi identity is an expansion of twelve products, which we prove directly and also cite in Mathlib's form:
/-- **The commutator satisfies the Jacobi identity.** In any associative ring, with
`[X, Y] = XY - YX`: `[X, [Y, Z]] + [Y, [Z, X]] + [Z, [X, Y]] = 0` — expand the twelve products and
they cancel in pairs. So every associative algebra, in particular `Mₙ(ℝ)`, is a Lie algebra. -/
theorem commutator_jacobi {A : Type*} [Ring A] (X Y Z : A) :
X * (Y * Z - Z * Y) - (Y * Z - Z * Y) * X + (Y * (Z * X - X * Z) - (Z * X - X * Z) * Y) +
(Z * (X * Y - Y * X) - (X * Y - Y * X) * Z) = 0 := by
noncomm_ring/-- The same identity for Mathlib's Lie bracket on a ring (`⁅X, Y⁆ = XY - YX`, `Ring.lie_def`):
Mathlib's `lie_jacobi`, valid in every Lie ring. -/
theorem lie_jacobi_library {A : Type*} [Ring A] (X Y Z : A) :
⁅X, ⁅Y, Z⁆⁆ + ⁅Y, ⁅Z, X⁆⁆ + ⁅Z, ⁅X, Y⁆⁆ = 0 :=
lie_jacobi X Y ZThe matrix exponential is NormedSpace.exp. Two independent results from Theorems 1 and 2: is a one-parameter subgroup, and the exponential of a skew-symmetric matrix is orthogonal:
/-- **`t ↦ exp(tX)` is a one-parameter subgroup**: `exp((s + t)X) = exp(sX) exp(tX)`. The two
exponents commute (both are multiples of `X`), so Mathlib's `Matrix.exp_add_of_commute` applies. -/
theorem exp_one_parameter (X : Matrix n n ℝ) (s t : ℝ) :
NormedSpace.exp ((s + t) • X) = NormedSpace.exp (s • X) * NormedSpace.exp (t • X) := by
rw [add_smul]
exact Matrix.exp_add_of_commute _ _ (((Commute.refl X).smul_left s).smul_right t)/-- **The exponential of a skew-symmetric matrix is orthogonal**: if `Aᵀ = -A` then
`(exp A)ᵀ exp A = exp(Aᵀ) exp(A) = exp(-A) exp(A) = exp(0) = I`. So `exp` maps `so(n)` into
`O(n)` (indeed into `SO(n)`, by connectedness). -/
theorem exp_skew_orthogonal {A : Matrix n n ℝ} (hA : Aᵀ = -A) :
(NormedSpace.exp A)ᵀ * NormedSpace.exp A = 1 := by
rw [← Matrix.exp_transpose, hA,
← Matrix.exp_add_of_commute _ _ ((Commute.refl A).neg_left), neg_add_cancel,
NormedSpace.exp_zero]Theorem 5's Lie algebra half: is with the cross product, and the basis of has the same structure constants. The group half begins with , a non-trivial central element of :
/-- The **hat map** `ℝ³ → so(3)`: `â` is the skew-symmetric matrix with `â v = a × v`. -/
def hat (a : Fin 3 → ℝ) : Matrix (Fin 3) (Fin 3) ℝ :=
!![0, -a 2, a 1; a 2, 0, -a 0; -a 1, a 0, 0]/-- **`so(3)` is `ℝ³` with the cross product**: `[â, b̂] = (a × b)^`. With the basis
`Lᵢ = êᵢ` this reads `[L₁, L₂] = L₃`, `[L₂, L₃] = L₁`, `[L₃, L₁] = L₂`. -/
theorem hat_bracket (a b : Fin 3 → ℝ) :
hat a * hat b - hat b * hat a = hat (crossProduct a b) := by
ext i j
fin_cases i <;> fin_cases j <;>
simp [hat, cross_apply] <;> ring/-- A basis of `su(2)`, the trace-zero skew-Hermitian `2 × 2` matrices: `Xₖ = -(i/2) σₖ` for the
Pauli matrices `σ₁, σ₂, σ₃`. -/
noncomputable def su2Basis : Fin 3 → Matrix (Fin 2) (Fin 2) ℂ :=
![!![0, -Complex.I / 2; -Complex.I / 2, 0],
!![0, -1 / 2; 1 / 2, 0],
!![-Complex.I / 2, 0; 0, Complex.I / 2]]/-- **`su(2)` has the same structure constants as `so(3)`**: `[X₁, X₂] = X₃`, `[X₂, X₃] = X₁`,
`[X₃, X₁] = X₂`. Hence `Xₖ ↦ Lₖ` is a Lie algebra isomorphism `su(2) ≅ so(3)`, although the
groups `SU(2)` and `SO(3)` are not isomorphic. -/
theorem su2_brackets :
su2Basis 0 * su2Basis 1 - su2Basis 1 * su2Basis 0 = su2Basis 2 ∧
su2Basis 1 * su2Basis 2 - su2Basis 2 * su2Basis 1 = su2Basis 0 ∧
su2Basis 2 * su2Basis 0 - su2Basis 0 * su2Basis 2 = su2Basis 1 := by
refine ⟨?_, ?_, ?_⟩ <;>
· ext i j
fin_cases i <;> fin_cases j <;>
simp [su2Basis] <;> ring_nf <;>
simp [Complex.ext_iff] <;> norm_num/-- `-I` lies in `SU(2)` (it is unitary with determinant `(-1)² = 1`) and is central but not the
identity; so the centre of `SU(2)` is non-trivial, whereas that of `SO(3)` is trivial — one way to
see that the two groups are not isomorphic. -/
theorem neg_one_mem_su2 :
(-1 : Matrix (Fin 2) (Fin 2) ℂ) ∈ Matrix.specialUnitaryGroup (Fin 2) ℂ ∧
(-1 : Matrix (Fin 2) (Fin 2) ℂ) ≠ 1 := by
refine ⟨?_, ?_⟩
· rw [Matrix.mem_specialUnitaryGroup_iff, Matrix.mem_unitaryGroup_iff]
simp [Matrix.det_neg]
· intro h
have := congrFun (congrFun h 0) 0
norm_num at thisThe matrices form an -triple in Mathlib's sense:
/-- The standard basis of `sl(2)`: `e = [[0, 1], [0, 0]]`. -/
def sl2E : Matrix (Fin 2) (Fin 2) ℚ := !![0, 1; 0, 0]/-- `f = [[0, 0], [1, 0]]`. -/
def sl2F : Matrix (Fin 2) (Fin 2) ℚ := !![0, 0; 1, 0]/-- `h = [[1, 0], [0, -1]]`. -/
def sl2H : Matrix (Fin 2) (Fin 2) ℚ := !![1, 0; 0, -1]/-- **The relations of `sl(2)`**: `[h, e] = 2e`, `[h, f] = -2f`, `[e, f] = h`. In Mathlib's language,
`(h, e, f)` is an `sl₂`-triple in the Lie algebra of `2 × 2` matrices. -/
theorem sl2_triple : IsSl2Triple sl2H sl2E sl2F where
h_ne_zero := by
intro h
have := congrFun (congrFun h 0) 0
simp [sl2H] at this
lie_e_f := by
rw [Ring.lie_def]
ext i j
fin_cases i <;> fin_cases j <;> simp [sl2E, sl2F, sl2H]
lie_h_e_nsmul := by
rw [Ring.lie_def]
ext i j
fin_cases i <;> fin_cases j <;> norm_num [sl2E, sl2H]
lie_h_f_nsmul := by
rw [Ring.lie_def]
ext i j
fin_cases i <;> fin_cases j <;> norm_num [sl2F, sl2H]The heart of Theorem 9 — the key identity, proved by induction in an arbitrary ring, and the step "the highest weight is the length of the string" for operators on a complex vector space — and Mathlib's own, more general version for finite-dimensional representations:
/-- **The key identity for `sl(2)`-representations.** In any ring (for instance the operators on a
representation) in which `hf - fh = -2f` and `ef - fe = h`,
`e fᵏ⁺¹ - fᵏ⁺¹ e = (k + 1) fᵏ (h - k)`. Induction on `k`: commute `e` past one `f` at a time, and
use `(h - k) f = f (h - k - 2)`. -/
theorem e_f_pow {A : Type*} [Ring A] {e f h : A} (hhf : h * f - f * h = -2 * f)
(hef : e * f - f * e = h) (k : ℕ) :
e * f ^ (k + 1) - f ^ (k + 1) * e = ((k : A) + 1) * f ^ k * (h - k) := by
have hcomm : ∀ m : ℕ, (m : A) * f = f * m := fun m => (Nat.cast_commute m f)
have h2 : (2 : A) * f = f * 2 := by
rw [show (2 : A) = ((2 : ℕ) : A) by norm_num]
exact hcomm 2
have h1 : h * f = f * h + -2 * f := by rw [← hhf]; abel
have hshift : ∀ m : ℕ, (h - m) * f = f * (h - m - 2) := by
intro m
calc (h - m) * f = h * f - m * f := sub_mul _ _ _
_ = (f * h + -2 * f) - f * m := by rw [h1, hcomm]
_ = f * (h - m - 2) := by rw [neg_mul, h2]; noncomm_ring
induction k with
| zero => simpa using hef
| succ k ih =>
calc e * f ^ (k + 1 + 1) - f ^ (k + 1 + 1) * e
= (e * f ^ (k + 1) - f ^ (k + 1) * e) * f + f ^ (k + 1) * (e * f - f * e) := by
rw [pow_succ f (k + 1)]
noncomm_ring
_ = ((k : A) + 1) * f ^ k * ((h - k) * f) + f ^ (k + 1) * h := by
rw [ih, hef]
noncomm_ring
_ = ((k : A) + 1) * (f ^ k * f) * (h - k - 2) + f ^ (k + 1) * h := by
rw [hshift k]
noncomm_ring
_ = f ^ (k + 1) * (((k : A) + 1) * (h - k - 2) + h) := by
rw [← pow_succ]
have hc : ((k : A) + 1) * f ^ (k + 1) = f ^ (k + 1) * ((k : A) + 1) :=
((Nat.cast_commute k _).add_left (Commute.one_left _))
rw [mul_add, ← mul_assoc, hc, mul_assoc]
_ = (((k + 1 : ℕ) : A) + 1) * f ^ (k + 1) * (h - ((k + 1 : ℕ) : A)) := by
have hc : (((k + 1 : ℕ) : A) + 1) * f ^ (k + 1) =
f ^ (k + 1) * (((k + 1 : ℕ) : A) + 1) :=
((Nat.cast_commute (k + 1) _).add_left (Commute.one_left _))
rw [hc, mul_assoc]
congr 1
push_cast
noncomm_ring/-- **Highest weights are natural numbers.** Let `E, F, H` act on a complex vector space with the
`sl(2)` relations, and let `v` be a highest weight vector: `E v = 0`, `H v = λ v`. If the string
`v, Fv, F²v, …` stops after `Fⁿ v ≠ 0` (that is, `Fⁿ⁺¹ v = 0`), then `λ = n`. Apply `e_f_pow` to
`v`: `0 = E Fⁿ⁺¹ v - Fⁿ⁺¹ E v = (n + 1)(λ - n) Fⁿ v`. -/
theorem highest_weight_nat {M : Type*} [AddCommGroup M] [Module ℂ M]
{E F H : Module.End ℂ M} (hhf : H * F - F * H = -2 * F) (hef : E * F - F * E = H)
{v : M} {μ : ℂ} (hE : E v = 0) (hH : H v = μ • v) {n : ℕ}
(hn : (F ^ n) v ≠ 0) (hn1 : (F ^ (n + 1)) v = 0) : μ = n := by
have key := LinearMap.congr_fun (e_f_pow hhf hef n) v
have hl : (E * F ^ (n + 1) - F ^ (n + 1) * E) v = 0 := by
rw [LinearMap.sub_apply, Module.End.mul_apply, Module.End.mul_apply, hn1, hE, map_zero,
map_zero, sub_zero]
have hv : (H - (n : Module.End ℂ M)) v = (μ - n) • v := by
rw [LinearMap.sub_apply, hH, Module.End.natCast_apply, sub_smul, Nat.cast_smul_eq_nsmul]
have hr : (((n : Module.End ℂ M) + 1) * F ^ n * (H - n)) v =
(((n : ℂ) + 1) * (μ - n)) • (F ^ n) v := by
rw [Module.End.mul_apply, Module.End.mul_apply, hv, map_smul, LinearMap.add_apply,
Module.End.natCast_apply, Module.End.one_apply, ← Nat.cast_smul_eq_nsmul ℂ, smul_smul,
← add_smul]
congr 1
ring
rw [hl, hr] at key
have hscalar : ((n : ℂ) + 1) * (μ - n) = 0 := by
by_contra hne
exact hn (smul_eq_zero.mp key.symm |>.resolve_left hne)
rcases mul_eq_zero.mp hscalar with h | h
· exfalso
have : ((n + 1 : ℕ) : ℂ) = 0 := by push_cast; exact h
exact Nat.succ_ne_zero n (Nat.cast_eq_zero.mp this)
· exact sub_eq_zero.mp h/-- Mathlib's version, for any finite-dimensional (Noetherian, torsion-free) representation of a
Lie algebra over a field of characteristic `0` with an `sl₂`-triple: the eigenvalue of a primitive
vector is a natural number. Mathlib's `IsSl2Triple.HasPrimitiveVectorWith.exists_nat`. -/
theorem primitive_vector_nat {K L M : Type*} [Field K] [CharZero K] [LieRing L] [LieAlgebra K L]
[AddCommGroup M] [Module K M] [LieRingModule L M] [LieModule K L M]
[IsNoetherian K M] [Module.IsTorsionFree K M] {h e f : L} {t : IsSl2Triple h e f} {m : M} {μ : K}
(P : t.HasPrimitiveVectorWith m μ) : ∃ n : ℕ, μ = n :=
P.exists_natThe algebraic core of Theorem 6, Cayley–Hamilton on :
/-- **On `sl(2)`, `X² = -det(X) I`** (Cayley–Hamilton for trace-zero `2 × 2` matrices). This is
the algebraic core of the computation `exp X = cosh(√δ) I + (sinh √δ / √δ) X` with `δ = -det X`,
which shows `tr(exp X) ≥ -2` for `X ∈ sl(2, ℝ)`, so that `diag(-2, -1/2) ∈ SL(2, ℝ)` is not an
exponential. -/
theorem sl2_sq_scalar {X : Matrix (Fin 2) (Fin 2) ℝ} (hX : X.trace = 0) :
X * X = -X.det • (1 : Matrix (Fin 2) (Fin 2) ℝ) := by
rw [Matrix.trace_fin_two] at hX
have hd : X 1 1 = -X 0 0 := by linarith
ext i j
fin_cases i <;> fin_cases j <;>
simp [Matrix.mul_apply, Fin.sum_univ_two, Matrix.det_fin_two, hd] <;> ringAnd the existence of Haar measure, with its finiteness on compact groups, from Mathlib's measure theory (Theorem 7):
/-- **Haar measure exists.** Every locally compact topological group carries a left-invariant
Haar measure (finite on compact sets, positive on open sets). For a compact group it is finite,
and averaging an inner product against it produces an invariant one — the key to complete
reducibility. Mathlib's `MeasureTheory.Measure.haar` and its `IsHaarMeasure` instance. -/
theorem haar_measure {G : Type*} [Group G] [TopologicalSpace G] [IsTopologicalGroup G]
[LocallyCompactSpace G] [MeasurableSpace G] [BorelSpace G] :
(MeasureTheory.Measure.haar : MeasureTheory.Measure G).IsHaarMeasure :=
inferInstance/-- On a **compact** group the Haar measure is finite, so it can be normalised to a probability
measure and used to average. A Mathlib instance (compact sets have finite Haar measure). -/
theorem haar_finite_compact {G : Type*} [Group G] [TopologicalSpace G] [IsTopologicalGroup G]
[CompactSpace G] [MeasurableSpace G] [BorelSpace G] :
MeasureTheory.IsFiniteMeasure (MeasureTheory.Measure.haar : MeasureTheory.Measure G) :=
inferInstanceWhat is and is not formalised. Proved here: the Jacobi identity for commutators, the one-parameter subgroup property, , the brackets of and , , the relations, the key identity and the integrality of highest weights (the decisive steps of Theorem 9), and on . Cited from Mathlib: the Lie group structures on and , the Jacobi identity in Lie rings, Mathlib's theorem on primitive vectors, and Haar measure. Not formalised: Theorems 1 and 4 in general, the isomorphism and the triviality of the centre of , the series computation and conclusion of Theorem 6, Theorem 8 (Mathlib lacks the integral of a representation against Haar measure in this form), and root systems (Mathlib has a theory of root pairings, not used here). Mathlib lists as future work.
Exponentials and representations, computed
The first program computes matrix exponentials by scaling and squaring: the exponential of a skew-symmetric matrix is a rotation matching Rodrigues' formula; ; the group commutator differs from by ; and thousands of random elements of never have trace below .
"""The matrix exponential: rotations, determinants, commutators and SL(2, R).
1. exp of a skew-symmetric 3 x 3 matrix is a rotation (orthogonal, det 1),
agrees with Rodrigues' formula and fixes the axis.
2. det(exp X) = e^(tr X), checked on random 4 x 4 matrices.
3. The group commutator exp(tX) exp(tY) exp(-tX) exp(-tY) equals
I + t^2 [X, Y] up to an error of order t^3: the Lie bracket measures how
far the flows fail to commute.
4. In SL(2, R) every exponential exp(X) (X of trace 0) has trace >= -2, so
diag(-2, -1/2), of trace -5/2, is not an exponential.
The exponential is computed by scaling and squaring a Taylor series.
"""
import math
import numpy as np
def expm(a, terms=20):
"""Matrix exponential by scaling, a Taylor polynomial, and squaring."""
a = np.asarray(a, dtype=float)
norm = np.linalg.norm(a, 1)
s = max(0, int(math.ceil(math.log2(norm))) + 1) if norm > 0 else 0
b = a / 2**s
result = np.eye(len(a))
term = np.eye(len(a))
for k in range(1, terms):
term = term @ b / k
result = result + term
for _ in range(s):
result = result @ result
return result
def hat(v):
"""The skew-symmetric matrix of the cross product with v."""
x, y, z = v
return np.array([[0.0, -z, y], [z, 0.0, -x], [-y, x, 0.0]])
def rodrigues(v):
"""Rotation by angle |v| about the axis v: I + sin(t)/t K + (1-cos t)/t^2 K^2."""
t = np.linalg.norm(v)
k = hat(v)
return np.eye(3) + math.sin(t) / t * k + (1 - math.cos(t)) / t**2 * k @ k
def group_commutator_error(x, y, t):
"""|| exp(tX) exp(tY) exp(-tX) exp(-tY) - I - t^2 [X, Y] || (max norm)."""
g = expm(t * x) @ expm(t * y) @ expm(-t * x) @ expm(-t * y)
return np.abs(g - np.eye(len(x)) - t**2 * (x @ y - y @ x)).max()
def min_trace_of_sl2_exponentials(samples, scale, seed=2024):
"""Smallest trace of exp(X) over random trace-zero 2 x 2 matrices X."""
rng = np.random.default_rng(seed)
best = math.inf
for _ in range(samples):
a, b, c = rng.normal(0, scale, 3)
best = min(best, np.trace(expm([[a, b], [c, -a]])))
return best
def main():
v = np.array([0.3, -1.2, 0.8])
r = expm(hat(v))
print("1. exp of a skew-symmetric matrix (axis v = (0.3, -1.2, 0.8))")
print(f" |R^T R - I| = {np.abs(r.T @ r - np.eye(3)).max():.1e},"
f" det R = {np.linalg.det(r):.12f}")
print(f" |R - Rodrigues| = {np.abs(r - rodrigues(v)).max():.1e},"
f" |R v - v| = {np.abs(r @ v - v).max():.1e}")
rng = np.random.default_rng(7)
worst = 0.0
for _ in range(5):
x = rng.normal(0, 0.7, (4, 4))
lhs, rhs = np.linalg.det(expm(x)), math.exp(np.trace(x))
worst = max(worst, abs(lhs - rhs) / rhs)
print(f"2. det(exp X) = e^(tr X): largest relative error {worst:.1e}"
" (5 random X)")
x = np.array([[0.0, 1.0], [0.0, 0.0]])
y = np.array([[0.0, 0.0], [1.0, 0.0]])
print("3. Group commutator of e = [[0,1],[0,0]], f = [[0,0],[1,0]]:")
for t in [0.1, 0.01, 0.001]:
err = group_commutator_error(x, y, t)
print(f" t = {t:<6} error = {err:.2e} error / t^3 = {err / t**3:.3f}")
m = min_trace_of_sl2_exponentials(3000, 2.0)
print("4. SL(2, R): smallest trace of exp(X) over 3000 random X in sl(2, R):")
print(f" {m:.6f} (never below -2)")
rot = expm([[0.0, -math.pi], [math.pi, 0.0]])
print(f" exp([[0, -pi], [pi, 0]]) has trace {np.trace(rot):.6f} (it is -I)")
print(" diag(-2, -1/2) has det 1 and trace -2.5 < -2: not an exponential.")
print()
print("Epistemic status: floating-point computation and random sampling.")
print("Part 4 is evidence, not proof, that tr exp(X) >= -2 on sl(2, R); the")
print("lesson proves it from X^2 = -det(X) I. Parts 1-3 illustrate theorems")
print("proved in the lesson (orthogonality in part 1 also in Lean).")
if __name__ == "__main__":
main()For and the ratio error is at every scale, so the commutator really is a second-order effect with a definite third-order correction. Part 4 is sampling: it cannot prove Theorem 6, but it would quickly reveal a counterexample if the theorem were false.
The second program builds the representations with exact integers, checks the relations and the Casimir, decomposes tensor products by peeling off highest weights, and computes the roots of as eigenvalues of .
"""The irreducible representations of sl(2, C), and the roots of sl(3, C).
For each n, the (n+1)-dimensional representation V_n has a basis
v_0, ..., v_n with h v_k = (n - 2k) v_k, f v_k = v_(k+1),
e v_k = k (n - k + 1) v_(k-1). We build these matrices with exact integers,
check the relations [h, e] = 2e, [h, f] = -2f, [e, f] = h, compute the
Casimir element ef + fe + h^2/2 (a scalar, n(n+2)/2, by Schur's lemma) and
decompose tensor products by peeling off highest weights (Clebsch-Gordan).
Finally it computes the eigenvalues of ad(H) on sl(3) for diagonal H: the six
roots, which form a regular hexagon (the root system A2). All exact.
"""
import itertools
import math
from fractions import Fraction
def zeros(d):
"""A d x d zero matrix (lists of Fractions)."""
return [[Fraction(0)] * d for _ in range(d)]
def mat_mul(a, b):
"""Product of square matrices given as lists of lists."""
d = len(a)
return [[sum(a[i][k] * b[k][j] for k in range(d)) for j in range(d)]
for i in range(d)]
def bracket(a, b):
"""The commutator ab - ba."""
ab, ba = mat_mul(a, b), mat_mul(b, a)
return [[x - y for x, y in zip(r, s)] for r, s in zip(ab, ba)]
def scale(c, a):
"""The matrix c * a."""
return [[c * x for x in row] for row in a]
def irrep(n):
"""Matrices (e, f, h) of V_n in the basis v_0, ..., v_n (column k = image of v_k)."""
d = n + 1
e, f, h = zeros(d), zeros(d), zeros(d)
for k in range(d):
h[k][k] = Fraction(n - 2 * k)
if k + 1 < d:
f[k + 1][k] = Fraction(1)
if k >= 1:
e[k - 1][k] = Fraction(k * (n - k + 1))
return e, f, h
def relations_hold(n):
"""Check [h, e] = 2e, [h, f] = -2f, [e, f] = h in V_n."""
e, f, h = irrep(n)
return (bracket(h, e) == scale(2, e) and bracket(h, f) == scale(-2, f)
and bracket(e, f) == h)
def casimir(n):
"""The matrix ef + fe + h^2 / 2 on V_n."""
e, f, h = irrep(n)
ef, fe, hh = mat_mul(e, f), mat_mul(f, e), mat_mul(h, h)
return [[ef[i][j] + fe[i][j] + hh[i][j] / 2 for j in range(n + 1)]
for i in range(n + 1)]
def decompose(weights):
"""Split a multiset of h-weights into irreducibles: list of highest weights."""
remaining = sorted(weights, reverse=True)
parts = []
while remaining:
top = remaining[0]
parts.append(top)
for w in range(top, -top - 1, -2):
remaining.remove(w)
return parts
def tensor_weights(m, n):
"""Weights of V_m (x) V_n: all sums of a weight of V_m and one of V_n."""
return [a + b for a in range(-m, m + 1, 2) for b in range(-n, n + 1, 2)]
def sl3_roots():
"""Roots of sl(3): ad(H) E_ij = (h_i - h_j) E_ij; return the pairs (i, j)."""
return [(i, j) for i, j in itertools.permutations(range(3), 2)]
def ad_check(diag):
"""Verify [H, E_ij] = (h_i - h_j) E_ij with matrices, for H = diag(diag)."""
hmat = zeros(3)
for k in range(3):
hmat[k][k] = Fraction(diag[k])
for i, j in sl3_roots():
eij = zeros(3)
eij[i][j] = Fraction(1)
if bracket(hmat, eij) != scale(Fraction(diag[i] - diag[j]), eij):
return False
return True
def root_vector(i, j):
"""The root e_i - e_j, in an orthonormal basis of the plane x + y + z = 0."""
v = [0.0, 0.0, 0.0]
v[i], v[j] = 1.0, -1.0
u1 = (1 / math.sqrt(2), -1 / math.sqrt(2), 0.0)
u2 = (1 / math.sqrt(6), 1 / math.sqrt(6), -2 / math.sqrt(6))
return (sum(a * b for a, b in zip(v, u1)), sum(a * b for a, b in zip(v, u2)))
def cartan_matrix(simple):
"""Cartan integers 2 (a, b) / (b, b) for simple roots given as 2D vectors."""
def dot(a, b):
return a[0] * b[0] + a[1] * b[1]
return [[round(2 * dot(a, b) / dot(b, b)) for b in simple] for a in simple]
def main():
ok = all(relations_hold(n) for n in range(9))
print(f"1. V_n for n = 0..8: [h,e] = 2e, [h,f] = -2f, [e,f] = h hold: {ok}")
for n in range(5):
c = casimir(n)
scalar = all(c[i][j] == (c[0][0] if i == j else 0)
for i in range(n + 1) for j in range(n + 1))
weights = " ".join(str(n - 2 * k) for k in range(n + 1))
print(f" V_{n}: weights {weights:<14} Casimir = {c[0][0]}"
f" (scalar: {scalar})")
print("2. Clebsch-Gordan, by peeling off highest weights:")
for m, n in [(1, 1), (2, 1), (2, 2), (3, 2)]:
parts = " + ".join(f"V_{p}" for p in decompose(tensor_weights(m, n)))
print(f" V_{m} (x) V_{n} = {parts}")
print("3. Roots of sl(3): ad(diag(h1, h2, h3)) E_ij = (h_i - h_j) E_ij")
print(f" (checked with matrices for H = diag(3, 1, -4): "
f"{ad_check((3, 1, -4))})")
for i, j in sl3_roots():
x, y = root_vector(i, j)
angle = math.degrees(math.atan2(y, x)) % 360
print(f" e{i + 1} - e{j + 1}: angle {angle:6.1f} deg, length "
f"{math.hypot(x, y):.4f}")
simple = [root_vector(0, 1), root_vector(1, 2)]
print(f" simple roots e1 - e2, e2 - e3: Cartan matrix "
f"{cartan_matrix(simple)}")
print()
print("Epistemic status: exact integer and rational computation for n <= 8")
print("and for sl(3). It checks the classification for small n; the proof")
print("that every irreducible representation is some V_n is in the lesson.")
if __name__ == "__main__":
main()Explore: one-parameter subgroups of SL(2, ℝ)
A matrix generates the flow on the plane, whose trajectories are the orbits of the one-parameter subgroup. Theorem 6 sorts them by . For () the flow is elliptic: closed orbits, a centre, and is a rotation with . For () it is hyperbolic: a saddle, . Change the equations to , (, ) to see the parabolic shear flow. In the trace–determinant diagram, every trace-zero matrix sits on the vertical axis.
Elliptic: X = f − e
exp(tX) is rotation by t; orbits are circles.
x′ = −y, y′ = x
Click the plane to start a trajectory, or type a start point below.
Trajectories: 0. They are numerical approximations (fourth-order Runge–Kutta), not exact formulas.
Linear systemA = [0−110]
T = 0, D = 1, T² − 4D = −4; λ = 0 ± 1i
Equilibrium at (0, 0): centre: closed orbits around it
Hyperbolic: X = h
exp(tX) = diag(eᵗ, e⁻ᵗ); orbits are hyperbolas xy = const.
x′ = x, y′ = −y
Click the plane to start a trajectory, or type a start point below.
Trajectories: 0. They are numerical approximations (fourth-order Runge–Kutta), not exact formulas.
Linear systemA = [100−1]
T = 0, D = −1, T² − 4D = 4; λ = −1, 1
Equilibrium at (0, 0): saddle (unstable)
Non-commutativity in the group: compose a rotation and a shear in both orders.
AB ≠ BA in SL(2, ℝ)
Rotation by 90° and a shear: both have determinant 1, and their two composites differ.
- image of the grid
- image of the unit square
- image of the flag
- before the transformation
- after the first step
AB ≠ BA: the order matters.
BA means “apply A first, then B”: products of transformations are read from right to left.
det(AB) = det(BA) = det A · det B = 1 · 1 = 1 The area scale factor is the same in either order.
Exercises
1. Lie groups and Lie algebras
Warm-upHumanWhat is the dimension of as a real Lie group?
2. Lie groups and Lie algebras
Warm-upHumanWhich of these matrices belong to the Lie algebra ? (Choose all that apply.)
3. Lie groups and Lie algebras
CoreHumanWhich element of is not of the form with ?
4. Lie groups and Lie algebras
CoreHumanand have isomorphic Lie algebras. Which property distinguishes the two groups?
5. Lie groups and Lie algebras
CoreHumanIn the classification of irreducible -representations, why must the string eventually reach ?
6. Lie groups and Lie algebras
CoreHumanIn the representation of , what is the dimension of the eigenspace of for the eigenvalue (weight) ?
7. Lie groups and Lie algebras
CoreHumanDecompose into irreducible representations . List the values of that occur, separated by commas.
8. Lie groups and Lie algebras
StretchFormalFor real matrices, with exp the matrix exponential, which of these Lean statements is false in general (so it could not be proved)?
9. Lie groups and Lie algebras
StretchComputationalWrite exp_sl2(a, b, c) returning the matrix exponential of as a nested list, using with : , where , if ; , if ; and if .
Common misconceptions
Misconception
"The exponential map is always surjective." It is onto for compact connected groups and for , but not in general. In every exponential has trace , so is not an exponential (Theorem 6), even though is connected. What is true is that the image of generates any connected Lie group (Theorem 3).
Misconception
"A Lie algebra determines its Lie group." It determines the simply connected group and, through it, the group up to a discrete central quotient. and have isomorphic Lie algebras but different centres ( versus trivial) and different fundamental groups ( versus ). Likewise and share the Lie algebra .
Misconception
"." Only when and commute. In general (the Baker–Campbell–Hausdorff formula), whose correction terms are all brackets — one more sign that the bracket carries the group's multiplication.
Misconception
"Every Lie subgroup is closed." The image of the line of irrational slope in the torus is a one-dimensional Lie subgroup whose closure is the whole torus. The Lie correspondence matches subalgebras with immersed connected subgroups; closed subgroups are automatically embedded (Cartan's theorem), but not every Lie subgroup is closed.
Misconception
"Representations of a Lie algebra are the same as representations of the group." They are for simply connected groups. For , only the with even integrate; the spin- representation of is a representation of but only a "projective representation" of .
Many ways of seeing
Geometry— Homogeneous spaces and Klein's programme
Klein's Erlangen programme (1872) defines a geometry by its group of symmetries, and Lie groups make this precise: a homogeneous space (with closed) is a manifold on which acts transitively, and the geometry is the study of -invariants. The sphere is , hyperbolic space is , and the hyperbolic plane is — the upper half-plane, on which acts by Möbius transformations , isometries of the metric . The elliptic, parabolic and hyperbolic one-parameter subgroups of the visualization are rotations about a point, horocyclic translations and translations along a geodesic. Cartan's symmetric spaces are the homogeneous spaces whose geodesic symmetries are isometries; he classified them using Lie theory.
Topology— The topology of groups
A Lie group is a very special manifold. Its fundamental group is abelian; its tangent bundle is trivial (left translation of a basis of ), so by Poincaré–Hopf its Euler characteristic, if it is compact, is — hence is not a Lie group, while and are (they are the only spheres of positive dimension that are). Hopf (1941) showed that the real cohomology of a compact connected Lie group is an exterior algebra on generators of odd degree: for one generator in degree , for generators in degrees . Every connected Lie group deformation retracts onto a maximal compact subgroup ( onto , so ), and Bott periodicity computes the homotopy groups of and in a stable range. See algebraic topology.
Algebra— Structure theory of Lie algebras
The algebraist studies on its own. Engel's and Lie's theorems describe nilpotent and solvable Lie algebras (strictly upper triangular and upper triangular matrices); the Levi decomposition writes every finite-dimensional real Lie algebra as a solvable ideal plus a semisimple subalgebra. Cartan's criterion characterises semisimplicity by the non-degeneracy of the Killing form , and semisimple complex Lie algebras are classified by root systems and Dynkin diagrams. Mathlib formalises much of this: Engel's theorem, the Killing form, Cartan subalgebras and root pairings. Representation theory continues through the universal enveloping algebra, Verma modules and the Weyl character formula.
Analysis— Harmonic analysis on groups
Haar measure makes analysis on groups possible. For , the Peter–Weyl theorem is the completeness of Fourier series ; for compact , decomposes as over the irreducible representations. For non-compact groups the story becomes the subject of Harish-Chandra's work: the Plancherel formula for involves both a discrete series and a continuous series of infinite-dimensional unitary representations. The Laplacian of a Riemannian symmetric space is built from the Casimir operator, so its spectral theory is representation theory. See harmonic analysis.
Physics— Spin, angular momentum and gauge symmetry
In quantum mechanics a symmetry group acts by unitary operators on a Hilbert space of states, so states come in representations. The components of angular momentum satisfy — up to a factor , the relations of — and the raising and lowering operators play the roles of and . Theorem 9 is the quantisation of angular momentum: a spin- particle has states, with . Gell-Mann and Ne'eman's "eightfold way" (1961) arranged hadrons in representations of , the octet being the adjoint representation, whose weight diagram is the hexagon of roots above plus two weights at the centre. The Standard Model is a gauge theory with group . These are physical models whose success is empirical; the mathematics of their representations is exact. See gauge theory.
Number theory— Arithmetic groups and the Langlands dual
Number theory meets Lie groups through arithmetic subgroups such as . Modular forms are functions on with prescribed behaviour, and the Laplacian on has a continuous spectrum, described by Eisenstein series whose constant terms involve the Riemann zeta function, and a discrete spectrum (Maass forms) related to the lengths of closed geodesics by the Selberg trace formula. In the Langlands programme, each reductive group has a dual group whose root system exchanges roots and coroots — so (type ) is dual to (type ), is its own dual and is dual to — and automorphic representations of are conjecturally parametrised by representations of the Galois group into . See the Langlands programme.
History and global context
- Lie's continuous groups. Sophus Lie, in Christiania (Oslo) and later Leipzig, developed "continuous transformation groups" from the 1870s to solve differential equations by symmetry, working closely with Felix Klein, whose Erlangen programme (1872) put groups at the centre of geometry. Lie and Friedrich Engel's Theorie der Transformationsgruppen (1888–93) set out the infinitesimal theory.
- Classification. Wilhelm Killing classified the complex simple Lie algebras (1888–90), discovering the exceptional algebras, with some gaps; Élie Cartan's thesis (1894) completed and corrected the classification, and he later classified the real forms (1914) and the symmetric spaces (1926). Eugene Dynkin's diagrams (1946–47) gave the classification its modern combinatorial form.
- Representations and compact groups. Hermann Weyl's papers of 1925–26 created the representation theory of compact Lie groups, with the character formula and the unitarian trick; the Peter–Weyl theorem followed in 1927. Alfréd Haar constructed invariant measures in 1933, and John von Neumann proved their uniqueness. Claude Chevalley's Theory of Lie Groups (1946) gave the global, manifold-theoretic foundations.
- Hilbert's fifth problem and beyond. Andrew Gleason, Deane Montgomery and Leo Zippin (1952), with Hidehiko Yamabe's extension (1953), characterised Lie groups among topological groups. Harish-Chandra, working in the United States after training in India and Cambridge, developed the harmonic analysis of semisimple Lie groups from the 1950s to the 1970s. Robert Langlands's letter to André Weil (1967) began the programme that bears his name.
Further reading
- Brian C. Hall, Lie Groups, Lie Algebras, and Representations: An Elementary Introduction (2nd edition, 2015) — matrix Lie groups first, with complete proofs; the model for this lesson.
- James E. Humphreys, Introduction to Lie Algebras and Representation Theory (1972) — the standard algebraic treatment: , root systems, classification, highest weights.
- William Fulton and Joe Harris, Representation Theory: A First Course (1991) — , and the classical groups through examples.
- John Stillwell, Naive Lie Theory (2008) — a gentle undergraduate route through the classical groups and their Lie algebras.
- Theodor Bröcker and Tammo tom Dieck, Representations of Compact Lie Groups (1985) — Haar measure, Peter–Weyl, maximal tori.
- Frank W. Warner, Foundations of Differentiable Manifolds and Lie Groups (1971) — the manifold-theoretic foundations, including the Lie correspondence.