Unitary elements of a star monoid #
This file defines unitary R, where R is a star monoid, as the submonoid made of the elements
that satisfy star U * U = 1 and U * star U = 1, and these form a group.
This includes, for instance, unitary operators on Hilbert spaces.
See also Matrix.UnitaryGroup for specializations to unitary (Matrix n n R).
Tags #
unitary
@[implicit_reducible]
instance
Unitary.instInvolutiveStarSubtypeMemSubmonoidUnitary
{R : Type u_1}
[Monoid R]
[StarMul R]
:
InvolutiveStar ↥(unitary R)
instance
Unitary.coe_isStarNormal
{R : Type u_1}
[Monoid R]
[StarMul R]
(u : ↥(unitary R))
:
IsStarNormal ↑u
@[simp]
@[simp]
theorem
Unitary.smul_mem_of_mem
{R : Type u_1}
{A : Type u_2}
[Monoid R]
[Monoid A]
[MulAction R A]
[SMulCommClass R A A]
[IsScalarTower R A A]
[StarMul R]
[StarMul A]
[StarModule R A]
{r : R}
{a : A}
(hr : r ∈ unitary R)
(ha : a ∈ unitary A)
:
theorem
Unitary.smul_mem
{R : Type u_1}
{A : Type u_2}
[Monoid R]
[Monoid A]
[MulAction R A]
[SMulCommClass R A A]
[IsScalarTower R A A]
[StarMul R]
[StarMul A]
[StarModule R A]
(r : ↥(unitary R))
{a : A}
(ha : a ∈ unitary A)
:
@[implicit_reducible]
instance
Unitary.instSMulSubtypeMemSubmonoidUnitary
{R : Type u_1}
{A : Type u_2}
[Monoid R]
[Monoid A]
[MulAction R A]
[SMulCommClass R A A]
[IsScalarTower R A A]
[StarMul R]
[StarMul A]
[StarModule R A]
:
@[simp]
theorem
Unitary.coe_smul
{R : Type u_1}
{A : Type u_2}
[Monoid R]
[Monoid A]
[MulAction R A]
[SMulCommClass R A A]
[IsScalarTower R A A]
[StarMul R]
[StarMul A]
[StarModule R A]
(r : ↥(unitary R))
(a : ↥(unitary A))
:
@[implicit_reducible]
instance
Unitary.instMulActionSubtypeMemSubmonoidUnitary
{R : Type u_1}
{A : Type u_2}
[Monoid R]
[Monoid A]
[MulAction R A]
[SMulCommClass R A A]
[IsScalarTower R A A]
[StarMul R]
[StarMul A]
[StarModule R A]
:
instance
Unitary.instStarModuleSubtypeMemSubmonoidUnitary
{R : Type u_1}
{A : Type u_2}
[Monoid R]
[Monoid A]
[MulAction R A]
[SMulCommClass R A A]
[IsScalarTower R A A]
[StarMul R]
[StarMul A]
[StarModule R A]
:
StarModule ↥(unitary R) ↥(unitary A)
instance
Unitary.instSMulCommClassSubtypeMemSubmonoidUnitary
{R : Type u_1}
{S : Type u_2}
{A : Type u_3}
[Monoid R]
[Monoid S]
[Monoid A]
[StarMul R]
[StarMul S]
[StarMul A]
[MulAction R A]
[MulAction S A]
[StarModule R A]
[StarModule S A]
[IsScalarTower R A A]
[IsScalarTower S A A]
[SMulCommClass R A A]
[SMulCommClass S A A]
[SMulCommClass R S A]
:
SMulCommClass ↥(unitary R) ↥(unitary S) ↥(unitary A)
instance
Unitary.instIsScalarTowerSubtypeMemSubmonoidUnitary
{R : Type u_1}
{S : Type u_2}
{A : Type u_3}
[Monoid R]
[Monoid S]
[Monoid A]
[StarMul R]
[StarMul S]
[StarMul A]
[MulAction R S]
[MulAction R A]
[MulAction S A]
[StarModule R S]
[StarModule R A]
[StarModule S A]
[IsScalarTower R A A]
[IsScalarTower S A A]
[SMulCommClass R A A]
[SMulCommClass S A A]
[IsScalarTower R S S]
[SMulCommClass R S S]
[IsScalarTower R S A]
:
IsScalarTower ↥(unitary R) ↥(unitary S) ↥(unitary A)
@[simp]
@[simp]
theorem
Unitary.map_injective
{R : Type u_2}
{S : Type u_3}
[Monoid R]
[StarMul R]
[Monoid S]
[StarMul S]
{f : R →⋆* S}
(hf : Function.Injective ⇑f)
:
Function.Injective ⇑(map f)
@[simp]
The unitary subgroup of the units is equivalent to the unitary elements of the monoid.
Instances For
@[simp]
theorem
val_unitarySubgroupUnitsEquiv_symm_apply_coe
{M : Type u_5}
[Monoid M]
[StarMul M]
(x : ↥(unitary M))
:
@[simp]
theorem
unitarySubgroupUnitsEquiv_apply_coe
{M : Type u_5}
[Monoid M]
[StarMul M]
(x : ↥(unitarySubgroup Mˣ))
:
@[implicit_reducible]
instance
Unitary.instCommGroupSubtypeMemSubmonoidUnitary
{R : Type u_1}
[CommMonoid R]
[StarMul R]
:
@[implicit_reducible]
instance
Unitary.instHasDistribNegSubtypeMemSubmonoidUnitary
{R : Type u_1}
[Ring R]
[StarRing R]
:
HasDistribNeg ↥(unitary R)
theorem
IsStarProjection.two_mul_sub_one_mem_unitary
{R : Type u_2}
[Ring R]
[StarRing R]
{p : R}
(hp : IsStarProjection p)
: