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
In a *-monoid, unitary R
is the submonoid consisting of all the elements U
of
R
such that star U * U = 1
and U * star U = 1
.
Equations
Instances For
instance
unitary.instInvolutiveStarSubtypeMemSubmonoid
{R : Type u_1}
[Monoid R]
[StarMul R]
:
InvolutiveStar ↥(unitary R)
Equations
- unitary.instInvolutiveStarSubtypeMemSubmonoid = InvolutiveStar.mk ⋯
Equations
- unitary.instStarMulSubtypeMemSubmonoid = StarMul.mk ⋯
theorem
unitary.toUnits_injective
{R : Type u_1}
[Monoid R]
[StarMul R]
:
Function.Injective ⇑unitary.toUnits
instance
unitary.coe_isStarNormal
{R : Type u_1}
[Monoid R]
[StarMul R]
(u : ↥(unitary R))
:
IsStarNormal ↑u
Equations
- ⋯ = ⋯
@[simp]
theorem
unitary.map_apply
{F : Type u_2}
{R : Type u_3}
{S : Type u_4}
[Monoid R]
[StarMul R]
[Monoid S]
[StarMul S]
[FunLike F R S]
[StarHomClass F R S]
[MonoidHomClass F R S]
(f : F)
:
∀ (a : ↥(unitary R)), (unitary.map f) a = Subtype.map ⇑f ⋯ a
def
unitary.map
{F : Type u_2}
{R : Type u_3}
{S : Type u_4}
[Monoid R]
[StarMul R]
[Monoid S]
[StarMul S]
[FunLike F R S]
[StarHomClass F R S]
[MonoidHomClass F R S]
(f : F)
:
The group homomorphism between unitary subgroups of star monoids induced by a star homomorphism
Equations
- unitary.map f = { toFun := Subtype.map ⇑f ⋯, map_one' := ⋯, map_mul' := ⋯ }
Instances For
theorem
unitary.toUnits_comp_map
{F : Type u_2}
{R : Type u_3}
{S : Type u_4}
[Monoid R]
[StarMul R]
[Monoid S]
[StarMul S]
[FunLike F R S]
[StarHomClass F R S]
[MonoidHomClass F R S]
(f : F)
:
unitary.toUnits.comp (unitary.map f) = (Units.map ↑f).comp unitary.toUnits
Equations
- unitary.instCommGroupSubtypeMemSubmonoid = let __src := inferInstanceAs (Group ↥(unitary R)); let __src_1 := (unitary R).toCommMonoid; CommGroup.mk ⋯
theorem
unitary.coe_div
{R : Type u_1}
[GroupWithZero R]
[StarMul R]
(U₁ : ↥(unitary R))
(U₂ : ↥(unitary R))
:
instance
unitary.instHasDistribNegSubtypeMemSubmonoid
{R : Type u_1}
[Ring R]
[StarRing R]
:
HasDistribNeg ↥(unitary R)
Equations
- unitary.instHasDistribNegSubtypeMemSubmonoid = Function.Injective.hasDistribNeg (fun (a : ↥(unitary R)) => ↑a) ⋯ ⋯ ⋯