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
starLinearEquivfor 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 Sand have an instanceIsOp R Rfor commutativeR. - Also note that such a definition involving
Rᵐᵒᵖoris_op R Swould require adding the appropriateRingHomInvPairinstances to be able to define the semilinear equivalence.
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) ⋯ ⋯
Instances For
Alias of the reverse direction of IsIdempotentElem.star_iff.