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.