The star operation, bundled as a star-linear equiv #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
We define star_linear_equiv, 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
star_linear_equivfor 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 typeclassis_op R Sand have an instanceis_op R Rfor commutativeR. - Also note that such a definition involving
Rᵐᵒᵖoris_op R Swould require adding the appropriatering_hom_inv_pairinstances to be able to define the semilinear equivalence.
If A is a module over a commutative R with compatible actions,
then star is a semilinear equivalence.
Equations
- star_linear_equiv R = {to_fun := has_star.star has_involutive_star.to_has_star, map_add' := _, map_smul' := _, inv_fun := star_add_equiv.inv_fun, left_inv := _, right_inv := _}
The self-adjoint elements of a star module, as a submodule.
Equations
- self_adjoint.submodule R A = {carrier := (self_adjoint A).carrier, add_mem' := _, zero_mem' := _, smul_mem' := _}
The skew-adjoint elements of a star module, as a submodule.
Equations
- skew_adjoint.submodule R A = {carrier := (skew_adjoint A).carrier, add_mem' := _, zero_mem' := _, smul_mem' := _}
The self-adjoint part of an element of a star module, as a linear map.
The skew-adjoint part of an element of a star module, as a linear map.
The decomposition of elements of a star module into their self- and skew-adjoint parts, as a linear equivalence.
Equations
- star_module.decompose_prod_adjoint R A = linear_equiv.of_linear ((self_adjoint_part R).prod (skew_adjoint_part R)) ((self_adjoint.submodule R A).subtype.coprod (skew_adjoint.submodule R A).subtype) _ _