# Documentation

Mathlib.Algebra.Lie.Classical

# Classical Lie algebras #

This file is the place to find definitions and basic properties of the classical Lie algebras:

• Aₗ = sl(l+1)
• Bₗ ≃ so(l+1, l) ≃ so(2l+1)
• Cₗ = sp(l)
• Dₗ ≃ so(l, l) ≃ so(2l)

## Main definitions #

• LieAlgebra.SpecialLinear.sl
• LieAlgebra.Symplectic.sp
• LieAlgebra.Orthogonal.so
• LieAlgebra.Orthogonal.so'
• LieAlgebra.Orthogonal.soIndefiniteEquiv
• LieAlgebra.Orthogonal.typeD
• LieAlgebra.Orthogonal.typeB
• LieAlgebra.Orthogonal.typeDEquivSo'
• LieAlgebra.Orthogonal.typeBEquivSo'

## Implementation notes #

### Matrices or endomorphisms #

Given a finite type and a commutative ring, the corresponding square matrices are equivalent to the endomorphisms of the corresponding finite-rank free module as Lie algebras, see lieEquivMatrix'. We can thus define the classical Lie algebras as Lie subalgebras either of matrices or of endomorphisms. We have opted for the former. At the time of writing (August 2020) it is unclear which approach should be preferred so the choice should be assumed to be somewhat arbitrary.

### Diagonal quadratic form or diagonal Cartan subalgebra #

For the algebras of type B and D, there are two natural definitions. For example since the 2l × 2l matrix: $$J = \left[\begin{array}{cc} 0_l & 1_l\ 1_l & 0_l \end{array}\right]$$ defines a symmetric bilinear form equivalent to that defined by the identity matrix I, we can define the algebras of type D to be the Lie subalgebra of skew-adjoint matrices either for J or for I. Both definitions have their advantages (in particular the J-skew-adjoint matrices define a Lie algebra for which the diagonal matrices form a Cartan subalgebra) and so we provide both. We thus also provide equivalences typeDEquivSo', soIndefiniteEquiv which show the two definitions are equivalent. Similarly for the algebras of type B.

## Tags #

classical lie algebra, special linear, symplectic, orthogonal

@[simp]
theorem LieAlgebra.matrix_trace_commutator_zero (n : Type u_1) (R : Type u₂) [] [] [] (X : Matrix n n R) (Y : Matrix n n R) :
= 0
def LieAlgebra.SpecialLinear.sl (n : Type u_1) (R : Type u₂) [] [] [] :

The special linear Lie algebra: square matrices of trace zero.

Instances For
theorem LieAlgebra.SpecialLinear.sl_bracket (n : Type u_1) (R : Type u₂) [] [] [] (A : { x // }) (B : { x // }) :
A, B = A * B - B * A
def LieAlgebra.SpecialLinear.Eb {n : Type u_1} (R : Type u₂) [] [] [] (i : n) (j : n) (h : j i) :
{ x // }

When j ≠ i, the elementary matrices are elements of sl n R, in fact they are part of a natural basis of sl n R.

Instances For
@[simp]
theorem LieAlgebra.SpecialLinear.eb_val {n : Type u_1} (R : Type u₂) [] [] [] (i : n) (j : n) (h : j i) :
↑() =
theorem LieAlgebra.SpecialLinear.sl_non_abelian (n : Type u_1) (R : Type u₂) [] [] [] [] (h : ) :
def LieAlgebra.Symplectic.sp (l : Type u_4) (R : Type u₂) [] [] [] :
LieSubalgebra R (Matrix (l l) (l l) R)

The symplectic Lie algebra: skew-adjoint matrices with respect to the canonical skew-symmetric bilinear form.

Instances For
def LieAlgebra.Orthogonal.so (n : Type u_1) (R : Type u₂) [] [] [] :

The definite orthogonal Lie subalgebra: skew-adjoint matrices with respect to the symmetric bilinear form defined by the identity matrix.

Instances For
@[simp]
theorem LieAlgebra.Orthogonal.mem_so (n : Type u_1) (R : Type u₂) [] [] [] (A : Matrix n n R) :
def LieAlgebra.Orthogonal.indefiniteDiagonal (p : Type u_2) (q : Type u_3) (R : Type u₂) [] [] [] :
Matrix (p q) (p q) R

The indefinite diagonal matrix with p 1s and q -1s.

Instances For
def LieAlgebra.Orthogonal.so' (p : Type u_2) (q : Type u_3) (R : Type u₂) [] [] [] [] [] :
LieSubalgebra R (Matrix (p q) (p q) R)

The indefinite orthogonal Lie subalgebra: skew-adjoint matrices with respect to the symmetric bilinear form defined by the indefinite diagonal matrix.

Instances For
def LieAlgebra.Orthogonal.Pso (p : Type u_2) (q : Type u_3) (R : Type u₂) [] [] [] (i : R) :
Matrix (p q) (p q) R

A matrix for transforming the indefinite diagonal bilinear form into the definite one, provided the parameter i is a square root of -1.

Instances For
theorem LieAlgebra.Orthogonal.pso_inv (p : Type u_2) (q : Type u_3) (R : Type u₂) [] [] [] [] [] {i : R} (hi : i * i = -1) :
* = 1
def LieAlgebra.Orthogonal.invertiblePso (p : Type u_2) (q : Type u_3) (R : Type u₂) [] [] [] [] [] {i : R} (hi : i * i = -1) :

There is a constructive inverse of Pso p q R i.

Instances For
theorem LieAlgebra.Orthogonal.indefiniteDiagonal_transform (p : Type u_2) (q : Type u_3) (R : Type u₂) [] [] [] [] [] {i : R} (hi : i * i = -1) :
* = 1
def LieAlgebra.Orthogonal.soIndefiniteEquiv (p : Type u_2) (q : Type u_3) (R : Type u₂) [] [] [] [] [] {i : R} (hi : i * i = -1) :
{ x // x } ≃ₗ⁅R { x // x LieAlgebra.Orthogonal.so (p q) R }

An equivalence between the indefinite and definite orthogonal Lie algebras, over a ring containing a square root of -1.

Instances For
theorem LieAlgebra.Orthogonal.soIndefiniteEquiv_apply (p : Type u_2) (q : Type u_3) (R : Type u₂) [] [] [] [] [] {i : R} (hi : i * i = -1) (A : { x // x }) :
↑(↑() A) = ()⁻¹ * A *
def LieAlgebra.Orthogonal.JD (l : Type u_4) (R : Type u₂) [] [] :
Matrix (l l) (l l) R

A matrix defining a canonical even-rank symmetric bilinear form.

It looks like this as a 2l x 2l matrix of l x l blocks:

[ 0 1 ] [ 1 0 ]

Instances For
def LieAlgebra.Orthogonal.typeD (l : Type u_4) (R : Type u₂) [] [] [] :
LieSubalgebra R (Matrix (l l) (l l) R)

The classical Lie algebra of type D as a Lie subalgebra of matrices associated to the matrix JD.

Instances For
def LieAlgebra.Orthogonal.PD (l : Type u_4) (R : Type u₂) [] [] :
Matrix (l l) (l l) R

A matrix transforming the bilinear form defined by the matrix JD into a split-signature diagonal matrix.

It looks like this as a 2l x 2l matrix of l x l blocks:

[ 1 -1 ] [ 1 1 ]

Instances For
def LieAlgebra.Orthogonal.S (l : Type u_4) (R : Type u₂) [] [] :
Matrix (l l) (l l) R

The split-signature diagonal matrix.

Instances For
theorem LieAlgebra.Orthogonal.s_as_blocks (l : Type u_4) (R : Type u₂) [] [] :
theorem LieAlgebra.Orthogonal.jd_transform (l : Type u_4) (R : Type u₂) [] [] [] :
theorem LieAlgebra.Orthogonal.pd_inv (l : Type u_4) (R : Type u₂) [] [] [] [] :
= 1
instance LieAlgebra.Orthogonal.invertiblePD (l : Type u_4) (R : Type u₂) [] [] [] [] :
def LieAlgebra.Orthogonal.typeDEquivSo' (l : Type u_4) (R : Type u₂) [] [] [] [] :
{ x // } ≃ₗ⁅R { x // x }

An equivalence between two possible definitions of the classical Lie algebra of type D.

Instances For
def LieAlgebra.Orthogonal.JB (l : Type u_4) (R : Type u₂) [] [] :
Matrix (Unit l l) (Unit l l) R

A matrix defining a canonical odd-rank symmetric bilinear form.

It looks like this as a (2l+1) x (2l+1) matrix of blocks:

[ 2 0 0 ] [ 0 0 1 ] [ 0 1 0 ]

where sizes of the blocks are:

[1 x 1 1 x l 1 x l] [l x 1 l x l l x l] [l x 1 l x l l x l]

Instances For
def LieAlgebra.Orthogonal.typeB (l : Type u_4) (R : Type u₂) [] [] [] :

The classical Lie algebra of type B as a Lie subalgebra of matrices associated to the matrix JB.

Instances For
def LieAlgebra.Orthogonal.PB (l : Type u_4) (R : Type u₂) [] [] :
Matrix (Unit l l) (Unit l l) R

A matrix transforming the bilinear form defined by the matrix JB into an almost-split-signature diagonal matrix.

It looks like this as a (2l+1) x (2l+1) matrix of blocks:

[ 1 0 0 ] [ 0 1 -1 ] [ 0 1 1 ]

where sizes of the blocks are:

[1 x 1 1 x l 1 x l] [l x 1 l x l l x l] [l x 1 l x l l x l]

Instances For
theorem LieAlgebra.Orthogonal.pb_inv (l : Type u_4) (R : Type u₂) [] [] [] [] :
* = 1
instance LieAlgebra.Orthogonal.invertiblePB (l : Type u_4) (R : Type u₂) [] [] [] [] :
theorem LieAlgebra.Orthogonal.jb_transform (l : Type u_4) (R : Type u₂) [] [] [] :
= 2
theorem LieAlgebra.Orthogonal.indefiniteDiagonal_assoc (l : Type u_4) (R : Type u₂) [] [] [] :
= ↑(Matrix.reindexLieEquiv ().symm) ()
def LieAlgebra.Orthogonal.typeBEquivSo' (l : Type u_4) (R : Type u₂) [] [] [] [] :
{ x // } ≃ₗ⁅R { x // x }

An equivalence between two possible definitions of the classical Lie algebra of type B.

Instances For