Algebraic structures on unit balls and spheres #
In this file we define algebraic structures (Semigroup
, CommSemigroup
, Monoid
, CommMonoid
,
Group
, CommGroup
) on Metric.ball (0 : ๐) 1
, Metric.closedBall (0 : ๐) 1
, and
Metric.sphere (0 : ๐) 1
. In each case we use the weakest possible typeclass assumption on ๐
,
from NonUnitalSeminormedRing
to NormedField
.
Unit ball in a non unital semi normed ring as a bundled Subsemigroup
.
Equations
- Subsemigroup.unitBall ๐ = { carrier := Metric.ball 0 1, mul_mem' := โฏ }
Instances For
instance
Metric.unitBall.semigroup
{๐ : Type u_1}
[NonUnitalSeminormedRing ๐]
:
Semigroup โ(Metric.ball 0 1)
Equations
- Metric.unitBall.semigroup = MulMemClass.toSemigroup (Subsemigroup.unitBall ๐)
instance
Metric.unitBall.continuousMul
{๐ : Type u_1}
[NonUnitalSeminormedRing ๐]
:
ContinuousMul โ(Metric.ball 0 1)
Equations
- โฏ = โฏ
instance
Metric.unitBall.commSemigroup
{๐ : Type u_1}
[SeminormedCommRing ๐]
:
CommSemigroup โ(Metric.ball 0 1)
Equations
- Metric.unitBall.commSemigroup = MulMemClass.toCommSemigroup (Subsemigroup.unitBall ๐)
instance
Metric.unitBall.hasDistribNeg
{๐ : Type u_1}
[NonUnitalSeminormedRing ๐]
:
HasDistribNeg โ(Metric.ball 0 1)
Equations
- Metric.unitBall.hasDistribNeg = Function.Injective.hasDistribNeg Subtype.val โฏ โฏ โฏ
@[simp]
theorem
coe_mul_unitBall
{๐ : Type u_1}
[NonUnitalSeminormedRing ๐]
(x y : โ(Metric.ball 0 1))
:
Closed unit ball in a non unital semi normed ring as a bundled Subsemigroup
.
Equations
- Subsemigroup.unitClosedBall ๐ = { carrier := Metric.closedBall 0 1, mul_mem' := โฏ }
Instances For
instance
Metric.unitClosedBall.semigroup
{๐ : Type u_1}
[NonUnitalSeminormedRing ๐]
:
Semigroup โ(Metric.closedBall 0 1)
Equations
- Metric.unitClosedBall.semigroup = MulMemClass.toSemigroup (Subsemigroup.unitClosedBall ๐)
instance
Metric.unitClosedBall.hasDistribNeg
{๐ : Type u_1}
[NonUnitalSeminormedRing ๐]
:
HasDistribNeg โ(Metric.closedBall 0 1)
Equations
- Metric.unitClosedBall.hasDistribNeg = Function.Injective.hasDistribNeg Subtype.val โฏ โฏ โฏ
instance
Metric.unitClosedBall.continuousMul
{๐ : Type u_1}
[NonUnitalSeminormedRing ๐]
:
ContinuousMul โ(Metric.closedBall 0 1)
Equations
- โฏ = โฏ
@[simp]
theorem
coe_mul_unitClosedBall
{๐ : Type u_1}
[NonUnitalSeminormedRing ๐]
(x y : โ(Metric.closedBall 0 1))
:
def
Submonoid.unitClosedBall
(๐ : Type u_2)
[SeminormedRing ๐]
[NormOneClass ๐]
:
Submonoid ๐
Closed unit ball in a semi normed ring as a bundled Submonoid
.
Equations
- Submonoid.unitClosedBall ๐ = { carrier := Metric.closedBall 0 1, mul_mem' := โฏ, one_mem' := โฏ }
Instances For
instance
Metric.unitClosedBall.monoid
{๐ : Type u_1}
[SeminormedRing ๐]
[NormOneClass ๐]
:
Monoid โ(Metric.closedBall 0 1)
Equations
- Metric.unitClosedBall.monoid = SubmonoidClass.toMonoid (Submonoid.unitClosedBall ๐)
instance
Metric.unitClosedBall.commMonoid
{๐ : Type u_1}
[SeminormedCommRing ๐]
[NormOneClass ๐]
:
CommMonoid โ(Metric.closedBall 0 1)
Equations
- Metric.unitClosedBall.commMonoid = SubmonoidClass.toCommMonoid (Submonoid.unitClosedBall ๐)
@[simp]
theorem
coe_one_unitClosedBall
{๐ : Type u_1}
[SeminormedRing ๐]
[NormOneClass ๐]
:
โ1 = 1
@[simp]
theorem
coe_pow_unitClosedBall
{๐ : Type u_1}
[SeminormedRing ๐]
[NormOneClass ๐]
(x : โ(Metric.closedBall 0 1))
(n : โ)
:
Unit sphere in a normed division ring as a bundled Submonoid
.
Equations
- Submonoid.unitSphere ๐ = { carrier := Metric.sphere 0 1, mul_mem' := โฏ, one_mem' := โฏ }
Instances For
@[simp]
theorem
Submonoid.coe_unitSphere
(๐ : Type u_2)
[NormedDivisionRing ๐]
:
โ(Submonoid.unitSphere ๐) = Metric.sphere 0 1
instance
Metric.unitSphere.inv
{๐ : Type u_1}
[NormedDivisionRing ๐]
:
Inv โ(Metric.sphere 0 1)
Equations
- Metric.unitSphere.inv = { inv := fun (x : โ(Metric.sphere 0 1)) => โจ(โx)โปยน, โฏโฉ }
@[simp]
theorem
coe_inv_unitSphere
{๐ : Type u_1}
[NormedDivisionRing ๐]
(x : โ(Metric.sphere 0 1))
:
instance
Metric.unitSphere.div
{๐ : Type u_1}
[NormedDivisionRing ๐]
:
Div โ(Metric.sphere 0 1)
Equations
- Metric.unitSphere.div = { div := fun (x y : โ(Metric.sphere 0 1)) => โจโx / โy, โฏโฉ }
@[simp]
theorem
coe_div_unitSphere
{๐ : Type u_1}
[NormedDivisionRing ๐]
(x y : โ(Metric.sphere 0 1))
:
instance
Metric.unitSphere.pow
{๐ : Type u_1}
[NormedDivisionRing ๐]
:
Pow โ(Metric.sphere 0 1) โค
Equations
- Metric.unitSphere.pow = { pow := fun (x : โ(Metric.sphere 0 1)) (n : โค) => โจโx ^ n, โฏโฉ }
@[simp]
theorem
coe_zpow_unitSphere
{๐ : Type u_1}
[NormedDivisionRing ๐]
(x : โ(Metric.sphere 0 1))
(n : โค)
:
instance
Metric.unitSphere.monoid
{๐ : Type u_1}
[NormedDivisionRing ๐]
:
Monoid โ(Metric.sphere 0 1)
Equations
- Metric.unitSphere.monoid = SubmonoidClass.toMonoid (Submonoid.unitSphere ๐)
@[simp]
theorem
coe_mul_unitSphere
{๐ : Type u_1}
[NormedDivisionRing ๐]
(x y : โ(Metric.sphere 0 1))
:
@[simp]
theorem
coe_pow_unitSphere
{๐ : Type u_1}
[NormedDivisionRing ๐]
(x : โ(Metric.sphere 0 1))
(n : โ)
:
def
unitSphereToUnits
(๐ : Type u_2)
[NormedDivisionRing ๐]
:
โ(Metric.sphere 0 1) โ* ๐หฃ
Monoid homomorphism from the unit sphere to the group of units.
Equations
- unitSphereToUnits ๐ = Units.liftRight (Submonoid.unitSphere ๐).subtype (fun (x : โ(Metric.sphere 0 1)) => Units.mk0 โx โฏ) โฏ
Instances For
@[simp]
theorem
unitSphereToUnits_apply_coe
{๐ : Type u_1}
[NormedDivisionRing ๐]
(x : โ(Metric.sphere 0 1))
:
โ((unitSphereToUnits ๐) x) = โx
theorem
unitSphereToUnits_injective
{๐ : Type u_1}
[NormedDivisionRing ๐]
:
Function.Injective โ(unitSphereToUnits ๐)
instance
Metric.sphere.group
{๐ : Type u_1}
[NormedDivisionRing ๐]
:
Group โ(Metric.sphere 0 1)
Equations
- Metric.sphere.group = Function.Injective.group โ(unitSphereToUnits ๐) โฏ โฏ โฏ โฏ โฏ โฏ โฏ
instance
Metric.sphere.hasDistribNeg
{๐ : Type u_1}
[NormedDivisionRing ๐]
:
HasDistribNeg โ(Metric.sphere 0 1)
Equations
- Metric.sphere.hasDistribNeg = Function.Injective.hasDistribNeg Subtype.val โฏ โฏ โฏ
instance
Metric.sphere.topologicalGroup
{๐ : Type u_1}
[NormedDivisionRing ๐]
:
TopologicalGroup โ(Metric.sphere 0 1)
Equations
- โฏ = โฏ
instance
Metric.sphere.commGroup
{๐ : Type u_1}
[NormedField ๐]
:
CommGroup โ(Metric.sphere 0 1)
Equations
- Metric.sphere.commGroup = CommGroup.mk โฏ