Lie algebra cohomology in degree two (for central extensions) #
(WARNING: This file needs cleaning up. It was not the main goal and it was the first time I tried to use multilinear maps in Lean.)
This file defines Lie algebra 2-cocycles and 2-coboundaries and constructs the Lie algebra cohomology in degree two, with coefficients in a vector space (an Abelian Lie algebra).
Main definitions #
LieOneCochain: The set C¹(𝓰,𝓪) of 1-cochains of a Lie algebra 𝓰 with coefficients in a vector space 𝓪.LieTwoCocycle: The set Z²(𝓰,𝓪) of 2-cocycles of a Lie algebra 𝓰 with coefficients in a vector space 𝓪.LieTwoCoboundary: The subspace B²(𝓰,𝓪) ⊆ Z²(𝓰,𝓪) of 2-coboundaries.LieTwoCohomology: The 2-cohomology H²(𝓰,𝓪) := Z²(𝓰,𝓪) ⧸ B²(𝓰,𝓪) of a Lie algebra 𝓰 with coefficients in a vector space 𝓪.
Main statements #
LieTwoCocycle.toLieTwoCohomologyEquiv: If 𝓰 is abelian, then the canonical projection from 2-cocycles to 2-cohomologies is a linear isomorphism.
Implementation notes #
This file needs some clean-up! (But it works for the purposes of concrete calculations of central extensions etc.)
A reasonable thing to do would be to define Lie algebra cohomology in general degrees. But for concrete applications, the special case of degree two probably deserves its own API. Once a general definition is made, the API for the degree 2 case (especially central extensions) could be refactored.
Tags #
Lie algebra, cohomology
Lie algebra 1-cochains #
Lie algebra 1-cochains.
The underlying linear map of a Lie algebra 1-cochain.
Instances For
Equations
- VirasoroProject.instAddLieOneCochain 𝕜 𝓰 𝓪 = { add := fun (β β' : VirasoroProject.LieOneCochain 𝕜 𝓰 𝓪) => { toLinearMap := β.toLinearMap + β'.toLinearMap } }
Equations
- VirasoroProject.instSMulLieOneCochain 𝕜 𝓰 𝓪 = { smul := fun (c : 𝕜) (β : VirasoroProject.LieOneCochain 𝕜 𝓰 𝓪) => { toLinearMap := c • β.toLinearMap } }
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Equations
- VirasoroProject.LieOneCochain.instFunLike = { coe := fun (β : VirasoroProject.LieOneCochain 𝕜 𝓰 𝓪) (X : 𝓰) => β.toLinearMap X, coe_injective := ⋯ }
Lie algebra 2-cocycles #
Lie algebra 2-cocycles.
The underlying bilinear map of a Lie algebra 2-cocycle.
Instances For
Equations
- VirasoroProject.LieTwoCocycle.instFunLikeLinearMapId 𝕜 𝓰 𝓪 = { coe := fun (γ : VirasoroProject.LieTwoCocycle 𝕜 𝓰 𝓪) (X : 𝓰) => γ.toBilin X, coe_injective := ⋯ }
Equations
- VirasoroProject.LieTwoCocycle.instAdd = { add := fun (γ γ' : VirasoroProject.LieTwoCocycle 𝕜 𝓰 𝓪) => { toBilin := γ.toBilin + γ'.toBilin, self' := ⋯, leibniz' := ⋯ } }
Equations
- VirasoroProject.LieTwoCocycle.instSMul = { smul := fun (c : 𝕜) (γ : VirasoroProject.LieTwoCocycle 𝕜 𝓰 𝓪) => { toBilin := c • γ.toBilin, self' := ⋯, leibniz' := ⋯ } }
Equations
- One or more equations did not get rendered due to their size.
Equations
- VirasoroProject.LieTwoCocycle.instModule = { toSMul := VirasoroProject.LieTwoCocycle.instSMul, mul_smul := ⋯, one_smul := ⋯, smul_zero := ⋯, smul_add := ⋯, add_smul := ⋯, zero_smul := ⋯ }
Equations
- One or more equations did not get rendered due to their size.
Lie algebra 2-coboundaries #
A Lie algebra 1-cochain determines a bilinear map via the differential.
Equations
Instances For
A Lie algebra 1-cochain linearly determines a bilinear map via the differential.
Equations
- VirasoroProject.LieOneCochain.bdryHom' = { toFun := fun (β : VirasoroProject.LieOneCochain 𝕜 𝓰 𝓪) => β.bdry', map_add' := ⋯, map_smul' := ⋯ }
Instances For
The ∂ of a Lie algebra 1-cochain as a Lie algebra 2-cocycle.
Equations
- β.bdry = { toBilin := VirasoroProject.LieOneCochain.bdryHom' β, self' := ⋯, leibniz' := ⋯ }
Instances For
The ∂ as a linear map from Lie algebra 1-cochains to Lie algebra 2-cocycles.
Equations
- VirasoroProject.LieOneCochainBdryHom 𝕜 𝓰 𝓪 = { toFun := fun (β : VirasoroProject.LieOneCochain 𝕜 𝓰 𝓪) => β.bdry, map_add' := ⋯, map_smul' := ⋯ }
Instances For
Lie algebra 2-coboundaries as a vector space.
Equations
Instances For
Lie algebra 2-cohomology #
The 2-cohomology H²(𝓰,𝓪) of a Lie algebra 𝓰 with coefficients in 𝓪.
Equations
- VirasoroProject.LieTwoCohomology 𝕜 𝓰 𝓪 = (VirasoroProject.LieTwoCocycle 𝕜 𝓰 𝓪 ⧸ VirasoroProject.LieTwoCoboundary 𝕜 𝓰 𝓪)
Instances For
The 2-cohomology H²(𝓰,𝓪) is an additive commutative group.
The 2-cohomology H²(𝓰,𝓪) is a module over the scalar ring 𝕜.
Equations
The linear map from 2-cocycles to 2-cohomologies of a Lie algebra 𝓰 with coefficients
in 𝓪.
Equations
Instances For
The projection to 2-cohomologies from 2-cocycles of a Lie algebra 𝓰 with coefficients
in 𝓪. (This definition is to enable dot notation, while the linear map version doesn't.)
Equations
Instances For
Adding a coboundary does not change the cohomology class.
A cocycle representing a trivial cohomology class is a coboundary.
For abelian Lie algebras, a 2-coboundary is necessarily zero.
For abelian Lie algebras, the space of 2-coboundaries is the zero vector space.
For abelian Lie algebras, the map from 2-cocycles to their cohomology classes has trivial kernel.
For abelian Lie algebras, the map from 2-cocycles to their cohomology classes is a linear equivalence.