The star operation, bundled as a star-linear equiv #
We define starLinearEquiv
, which is the star operation bundled as a star-linear map.
It is defined on a star algebra A
over the base ring R
.
This file also provides some lemmas that need Algebra.Module.Basic
imported to prove.
TODO #
- Define
starLinearEquiv
for noncommutativeR
. We only the commutative case for now since, in the noncommutative case, the ring hom needs to reverse the order of multiplication. This requires a ring hom of typeR →+* Rᵐᵒᵖ
, which is very undesirable in the commutative case. One way out would be to define a new typeclassIsOp R S
and have an instanceIsOp R R
for commutativeR
. - Also note that such a definition involving
Rᵐᵒᵖ
oris_op R S
would require adding the appropriateRingHomInvPair
instances to be able to define the semilinear equivalence.
Alias of star_natCast_smul
.
Alias of star_intCast_smul
.
Alias of star_inv_natCast_smul
.
Alias of star_inv_intCast_smul
.
Alias of star_ratCast_smul
.
Per the naming convention, these two lemmas call (q • ·)
nnrat_smul
and rat_smul
respectively,
rather than nnqsmul
and qsmul
because the latter are reserved to the actions coming from
DivisionSemiring
and DivisionRing
. We provide aliases with nnqsmul
and qsmul
for
discoverability.
Note that this lemma holds for an arbitrary ℚ≥0
-action, rather than merely one coming from a
DivisionSemiring
. We keep both the nnqsmul
and nnrat_smul
naming conventions for
discoverability. See star_nnqsmul
.
Note that this lemma holds for an arbitrary ℚ
-action, rather than merely one coming from a
DivisionRing
. We keep both the qsmul
and rat_smul
naming conventions for discoverability.
See star_qsmul
.
Note that this lemma holds for an arbitrary ℚ≥0
-action, rather than merely one coming from a
DivisionSemiring
. We keep both the nnqsmul
and nnrat_smul
naming conventions for
discoverability. See star_nnrat_smul
.
Note that this lemma holds for an arbitrary ℚ
-action, rather than merely one coming from a
DivisionRing
. We keep both the qsmul
and rat_smul
naming conventions for
discoverability. See star_rat_smul
.
If A
is a module over a commutative R
with compatible actions,
then star
is a semilinear equivalence.
Equations
- starLinearEquiv R = { toFun := star, map_add' := ⋯, map_smul' := ⋯, invFun := starAddEquiv.invFun, left_inv := ⋯, right_inv := ⋯ }
Instances For
The self-adjoint elements of a star module, as a submodule.
Equations
- selfAdjoint.submodule R A = { toAddSubmonoid := (selfAdjoint A).toAddSubmonoid, smul_mem' := ⋯ }
Instances For
The skew-adjoint elements of a star module, as a submodule.
Equations
- skewAdjoint.submodule R A = { toAddSubmonoid := (skewAdjoint A).toAddSubmonoid, smul_mem' := ⋯ }
Instances For
The self-adjoint part of an element of a star module, as a linear map.
Equations
Instances For
The skew-adjoint part of an element of a star module, as a linear map.
Equations
Instances For
The decomposition of elements of a star module into their self- and skew-adjoint parts, as a linear equivalence.
Equations
- StarModule.decomposeProdAdjoint R A = LinearEquiv.ofLinear ((selfAdjointPart R).prod (skewAdjointPart R)) ((selfAdjoint.submodule R A).subtype.coprod (skewAdjoint.submodule R A).subtype) ⋯ ⋯