Monoid representations #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
This file introduces monoid representations and their characters and defines a few ways to construct representations.
Main definitions #
- representation.representation
- representation.character
- representation.tprod
- representation.lin_hom
- represensation.dual
Implementation notes #
Representations of a monoid G on a k-module V are implemented as
homomorphisms G →* (V →ₗ[k] V).
A representation of G on the k-module V is an homomorphism G →* (V →ₗ[k] V).
The trivial representation of G on a k-module V.
Equations
A k-linear representation of G on V can be thought of as
an algebra map from monoid_algebra k G into the k-linear endomorphisms of V.
Equations
- ρ.as_algebra_hom = ⇑(monoid_algebra.lift k G (V →ₗ[k] V)) ρ
If ρ : representation k G V, then ρ.as_module is a type synonym for V,
which we equip with an instance module (monoid_algebra k G) ρ.as_module.
You should use as_module_equiv : ρ.as_module ≃+ V to translate terms.
Equations
A k-linear representation of G on V can be thought of as
a module over monoid_algebra k G.
Equations
The additive equivalence from the module (monoid_algebra 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
Build a representation k G M from a [module (monoid_algebra k G) M].
This version is not always what we want, as it relies on an existing [module k M]
instance, along with a [is_scalar_tower k (monoid_algebra k G) M] instance.
We remedy this below in of_module
(with the tradeoff that the representation is defined
only on a type synonym of the original module.)
Equations
- representation.of_module' M = ⇑((monoid_algebra.lift k G (M →ₗ[k] M)).symm) (algebra.lsmul k M)
Build a representation from a [module (monoid_algebra k G) M].
Note that the representation is built on restrict_scalars k (monoid_algebra k G) M,
rather than on M itself.
Equations
- representation.of_module k G M = ⇑((monoid_algebra.lift k G (restrict_scalars k (monoid_algebra k G) M →ₗ[k] restrict_scalars k (monoid_algebra k G) M)).symm) (restrict_scalars.lsmul k (monoid_algebra k G) M)
of_module and as_module are inverses. #
This requires a little care in both directions: this is a categorical equivalence, not an isomorphism.
See Rep.equivalence_Module_monoid_algebra for the full statement.
Starting with ρ : representation k G V, converting to a module and back again
we have a representation k G (restrict_scalars k (monoid_algebra k G) ρ.as_module).
To compare these, we use the composition of restrict_scalars_add_equiv and ρ.as_module_equiv.
Similarly, starting with module (monoid_algebra k G) M,
after we convert to a representation and back to a module,
we have module (monoid_algebra k G) (restrict_scalars k (monoid_algebra k G) M).
Equations
A G-action on H induces a representation G →* End(k[H]) in the natural way.
Equations
- representation.of_mul_action k G H = {to_fun := λ (g : G), finsupp.lmap_domain k k (has_smul.smul g), map_one' := _, map_mul' := _}
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
- representation.of_mul_action_self_as_module_equiv = {to_fun := (representation.of_mul_action k G G).as_module_equiv.to_fun, map_add' := _, map_smul' := _, inv_fun := (representation.of_mul_action k G G).as_module_equiv.inv_fun, left_inv := _, right_inv := _}
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
Given representations of G on V and W, there is a natural representation of G on their
tensor product V ⊗[k] W.
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.
The dual of a representation ρ of G on a module V, given by (dual ρ) g f = f ∘ₗ (ρ g⁻¹),
where f : module.dual k V.
Given $k$-modules $V, W$, there is a homomorphism $φ : V^* ⊗ W → Hom_k(V, W)$
(implemented by linear_algebra.contraction.dual_tensor_hom).
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.