Monoid representations #
This file introduces monoid representations and their characters and defines a few ways to construct representations.
Main definitions #
Implementation notes #
Representations of a monoid G on a k-module V are implemented as
homomorphisms G →* (V →ₗ[k] V). We use the abbreviation Representation for this hom space.
The theorem asAlgebraHom_def constructs a module over the group k-algebra of G (implemented
as MonoidAlgebra k G) corresponding to a representation. If ρ : Representation k G V, this
module can be accessed via ρ.asModule. Conversely, given a MonoidAlgebra k G-module M,
M.ofModule is the associociated representation seen as a homomorphism.
A representation of G on the k-module V is a homomorphism G →* (V →ₗ[k] V).
Equations
- Representation k G V = (G →* V →ₗ[k] V)
Instances For
The trivial representation of G on a k-module V.
Equations
- Representation.trivial k G V = 1
Instances For
A predicate for representations that fix every element.
Instances
A k-linear representation of G on V can be thought of as
an algebra map from MonoidAlgebra k G into the k-linear endomorphisms of V.
Equations
- ρ.asAlgebraHom = (MonoidAlgebra.lift k G (Module.End k V)) ρ
Instances For
If ρ : Representation k G V, then ρ.asModule is a type synonym for V,
which we equip with an instance Module (MonoidAlgebra k G) ρ.asModule.
You should use asModuleEquiv : ρ.asModule ≃+ V to translate terms.
Instances For
Equations
Equations
- ρ.instInhabitedAsModule = { default := 0 }
A k-linear representation of G on V can be thought of as
a module over MonoidAlgebra k G.
Equations
Equations
- ρ.instModuleAsModule_1 = inferInstanceAs (Module k V)
The additive equivalence from the Module (MonoidAlgebra k G) to the original vector space
of the representative.
This is just the identity, but it is helpful for typechecking and keeping track of instances.
Equations
Instances For
Build a Representation k G M from a [Module (MonoidAlgebra k G) M].
This version is not always what we want, as it relies on an existing [Module k M]
instance, along with a [IsScalarTower k (MonoidAlgebra k G) M] instance.
We remedy this below in ofModule
(with the tradeoff that the representation is defined
only on a type synonym of the original module.)
Equations
- Representation.ofModule' M = (MonoidAlgebra.lift k G (M →ₗ[k] M)).symm (Algebra.lsmul k k M)
Instances For
Build a Representation from a [Module (MonoidAlgebra k G) M].
Note that the representation is built on restrictScalars k (MonoidAlgebra k G) M,
rather than on M itself.
Equations
- Representation.ofModule M = (MonoidAlgebra.lift k G (RestrictScalars k (MonoidAlgebra k G) M →ₗ[k] RestrictScalars k (MonoidAlgebra k G) M)).symm (RestrictScalars.lsmul k (MonoidAlgebra k G) M)
Instances For
ofModule and asModule are inverses. #
This requires a little care in both directions: this is a categorical equivalence, not an isomorphism.
See Rep.equivalenceModuleMonoidAlgebra for the full statement.
Starting with ρ : Representation k G V, converting to a module and back again
we have a Representation k G (restrictScalars k (MonoidAlgebra k G) ρ.asModule).
To compare these, we use the composition of restrictScalarsAddEquiv and ρ.asModuleEquiv.
Similarly, starting with Module (MonoidAlgebra k G) M,
after we convert to a representation and back to a module,
we have Module (MonoidAlgebra k G) (restrictScalars k (MonoidAlgebra k G) M).
Given a k-linear G-representation (V, ρ), this is the representation defined by
restricting ρ to a G-invariant k-submodule of V.
Equations
- ρ.subrepresentation W le_comap = { toFun := fun (g : G) => (ρ g).restrict ⋯, map_one' := ⋯, map_mul' := ⋯ }
Instances For
Given a k-linear G-representation (V, ρ) and a G-invariant k-submodule W ≤ V, this
is the representation induced on V ⧸ W by ρ.
Equations
Instances For
Given a normal subgroup S ≤ G, a G-representation ρ which is trivial on S factors
through G ⧸ S.
Equations
- ρ.ofQuotient S = (QuotientGroup.con S).lift ρ ⋯
Instances For
Equations
A G-action on H induces a representation G →* End(k[H]) in the natural way.
Equations
- Representation.ofMulAction k G H = { toFun := fun (g : G) => Finsupp.lmapDomain k k fun (x : H) => g • x, map_one' := ⋯, map_mul' := ⋯ }
Instances For
The natural k-linear G-representation on k[G] induced by left multiplication in G.
Equations
Instances For
The natural k-linear G-representation on k[Gⁿ] induced by left multiplication in G.
Equations
- Representation.diagonal k G n = Representation.ofMulAction k G (Fin n → G)
Instances For
Turns a k-module A with a compatible DistribMulAction of a monoid G into a
k-linear G-representation on A.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Turns a CommGroup G with a MulDistribMulAction of a monoid M into a
ℤ-linear M-representation on Additive G.
Equations
- Representation.ofMulDistribMulAction M G = (↑(addMonoidEndRingEquivInt (Additive G))).comp ((↑(monoidEndToAdditive G)).comp (MulDistribMulAction.toMonoidEnd M G))
Instances For
Equations
If we equip k[G] with the k-linear G-representation induced by the left regular action of
G on itself, the resulting object is isomorphic as a k[G]-module to k[G] with its natural
k[G]-module structure.
Equations
- One or more equations did not get rendered due to their size.
Instances For
When G is a group, a k-linear representation of G on V can be thought of as
a group homomorphism from G into the invertible k-linear endomorphisms of V.
Equations
Instances For
Given representations of G on V and W, there is a natural representation of G on their
tensor product V ⊗[k] W.
Equations
- ρV.tprod ρW = { toFun := fun (g : G) => TensorProduct.map (ρV g) (ρW g), map_one' := ⋯, map_mul' := ⋯ }
Instances For
Given representations of G on V and W, there is a natural representation of G on the
module V →ₗ[k] W, where G acts by conjugation.
Equations
Instances For
The dual of a representation ρ of G on a module V, given by (dual ρ) g f = f ∘ₗ (ρ g⁻¹),
where f : Module.Dual k V.
Equations
Instances For
Given $k$-modules $V, W$, there is a homomorphism $φ : V^* ⊗ W → Hom_k(V, W)$
(implemented by dualTensorHom in Mathlib/LinearAlgebra/Contraction.lean).
Given representations of $G$ on $V$ and $W$,there are representations of $G$ on $V^* ⊗ W$ and on
$Hom_k(V, W)$.
This lemma says that $φ$ is $G$-linear.
The representation on α →₀ A defined pointwise by a representation on A.
Equations
- ρ.finsupp α = { toFun := fun (g : G) => (Finsupp.lsum k) fun (i : α) => Finsupp.lsingle i ∘ₗ ρ g, map_one' := ⋯, map_mul' := ⋯ }
Instances For
The representation on α →₀ k[G] defined pointwise by the left regular representation.
Equations
- Representation.free k G α = (Representation.leftRegular k G).finsupp α
Instances For
The free k[G]-module on a type α is isomorphic to the representation free k G α.
Equations
- One or more equations did not get rendered due to their size.
Instances For
α gives a k[G]-basis of the representation free k G α.
Equations
- Representation.freeAsModuleBasis k G α = { repr := (Representation.finsuppLEquivFreeAsModule k G α).symm }