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.
Algebraic structures on Metric.ball 0 1 #
Unit ball in a non-unital seminormed ring as a bundled Subsemigroup.
Equations
- Subsemigroup.unitBall ๐ = { carrier := Metric.ball 0 1, mul_mem' := โฏ }
Instances For
Equations
instance
Metric.unitBall.instContinuousMul
{๐ : Type u_1}
[NonUnitalSeminormedRing ๐]
:
ContinuousMul โ(ball 0 1)
instance
Metric.unitBall.instCommSemigroup
{๐ : Type u_1}
[SeminormedCommRing ๐]
:
CommSemigroup โ(ball 0 1)
instance
Metric.unitBall.instHasDistribNeg
{๐ : Type u_1}
[NonUnitalSeminormedRing ๐]
:
HasDistribNeg โ(ball 0 1)
Equations
@[simp]
theorem
Metric.unitBall.coe_mul
{๐ : Type u_1}
[NonUnitalSeminormedRing ๐]
(x y : โ(ball 0 1))
:
@[simp]
@[simp]
theorem
Metric.unitBall.coe_eq_zero
{๐ : Type u_1}
[Zero ๐]
[PseudoMetricSpace ๐]
{a : โ(ball 0 1)}
:
instance
Metric.unitBall.instSemigroupWithZero
{๐ : Type u_1}
[NonUnitalSeminormedRing ๐]
:
SemigroupWithZero โ(ball 0 1)
Equations
- Metric.unitBall.instSemigroupWithZero = { toSemigroup := Metric.unitBall.instSemigroup, toZero := Metric.unitBall.instZero, zero_mul := โฏ, mul_zero := โฏ }
instance
Metric.unitBall.instIsLeftCancelMulZero
{๐ : Type u_1}
[NonUnitalSeminormedRing ๐]
[IsLeftCancelMulZero ๐]
:
IsLeftCancelMulZero โ(ball 0 1)
instance
Metric.unitBall.instIsRightCancelMulZero
{๐ : Type u_1}
[NonUnitalSeminormedRing ๐]
[IsRightCancelMulZero ๐]
:
IsRightCancelMulZero โ(ball 0 1)
instance
Metric.unitBall.instIsCancelMulZero
{๐ : Type u_1}
[NonUnitalSeminormedRing ๐]
[IsCancelMulZero ๐]
:
IsCancelMulZero โ(ball 0 1)
Algebraic instances for Metric.closedBall 0 1 #
Closed unit ball in a non-unital seminormed ring as a bundled Subsemigroup.
Equations
- Subsemigroup.unitClosedBall ๐ = { carrier := Metric.closedBall 0 1, mul_mem' := โฏ }
Instances For
instance
Metric.unitClosedBall.instSemigroup
{๐ : Type u_1}
[NonUnitalSeminormedRing ๐]
:
Semigroup โ(closedBall 0 1)
instance
Metric.unitClosedBall.instHasDistribNeg
{๐ : Type u_1}
[NonUnitalSeminormedRing ๐]
:
HasDistribNeg โ(closedBall 0 1)
Equations
instance
Metric.unitClosedBall.instContinuousMul
{๐ : Type u_1}
[NonUnitalSeminormedRing ๐]
:
ContinuousMul โ(closedBall 0 1)
@[simp]
theorem
Metric.unitClosedBall.coe_mul
{๐ : Type u_1}
[NonUnitalSeminormedRing ๐]
(x y : โ(closedBall 0 1))
:
instance
Metric.unitClosedBall.instZero
{๐ : Type u_1}
[Zero ๐]
[PseudoMetricSpace ๐]
:
Zero โ(closedBall 0 1)
@[simp]
@[simp]
theorem
Metric.unitClosedBall.coe_eq_zero
{๐ : Type u_1}
[Zero ๐]
[PseudoMetricSpace ๐]
{a : โ(closedBall 0 1)}
:
instance
Metric.unitClosedBall.instSemigroupWithZero
{๐ : Type u_1}
[NonUnitalSeminormedRing ๐]
:
SemigroupWithZero โ(closedBall 0 1)
Equations
- Metric.unitClosedBall.instSemigroupWithZero = { toSemigroup := Metric.unitClosedBall.instSemigroup, toZero := Metric.unitClosedBall.instZero, zero_mul := โฏ, mul_zero := โฏ }
def
Submonoid.unitClosedBall
(๐ : Type u_2)
[SeminormedRing ๐]
[NormOneClass ๐]
:
Submonoid ๐
Closed unit ball in a seminormed ring as a bundled Submonoid.
Equations
- Submonoid.unitClosedBall ๐ = { carrier := Metric.closedBall 0 1, mul_mem' := โฏ, one_mem' := โฏ }
Instances For
instance
Metric.unitClosedBall.instMonoid
{๐ : Type u_1}
[SeminormedRing ๐]
[NormOneClass ๐]
:
Monoid โ(closedBall 0 1)
instance
Metric.unitClosedBall.instCommMonoid
{๐ : Type u_1}
[SeminormedCommRing ๐]
[NormOneClass ๐]
:
CommMonoid โ(closedBall 0 1)
@[simp]
@[simp]
theorem
Metric.unitClosedBall.coe_eq_one
{๐ : Type u_1}
[SeminormedRing ๐]
[NormOneClass ๐]
{a : โ(closedBall 0 1)}
:
@[simp]
theorem
Metric.unitClosedBall.coe_pow
{๐ : Type u_1}
[SeminormedRing ๐]
[NormOneClass ๐]
(x : โ(closedBall 0 1))
(n : โ)
:
instance
Metric.unitClosedBall.instMonoidWithZero
{๐ : Type u_1}
[SeminormedRing ๐]
[NormOneClass ๐]
:
MonoidWithZero โ(closedBall 0 1)
Equations
- Metric.unitClosedBall.instMonoidWithZero = { toMonoid := Metric.unitClosedBall.instMonoid, toZero := Metric.unitClosedBall.instSemigroupWithZero.toZero, zero_mul := โฏ, mul_zero := โฏ }
instance
Metric.unitClosedBall.instCancelMonoidWithZero
{๐ : Type u_1}
[SeminormedRing ๐]
[IsCancelMulZero ๐]
[NormOneClass ๐]
:
CancelMonoidWithZero โ(closedBall 0 1)
Equations
- Metric.unitClosedBall.instCancelMonoidWithZero = { toMonoidWithZero := Metric.unitClosedBall.instMonoidWithZero, toIsCancelMulZero := โฏ }
Algebraic instances on the unit sphere #
def
Submonoid.unitSphere
(๐ : Type u_2)
[SeminormedRing ๐]
[NormMulClass ๐]
[NormOneClass ๐]
:
Submonoid ๐
Unit sphere in a seminormed ring (with strictly multiplicative norm) 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)
[SeminormedRing ๐]
[NormMulClass ๐]
[NormOneClass ๐]
:
Equations
- Metric.unitSphere.instInv = { inv := fun (x : โ(Metric.sphere 0 1)) => โจ(โx)โปยน, โฏโฉ }
@[simp]
theorem
Metric.unitSphere.coe_inv
{๐ : Type u_1}
[NormedDivisionRing ๐]
(x : โ(sphere 0 1))
:
Equations
- Metric.unitSphere.instDiv = { div := fun (x y : โ(Metric.sphere 0 1)) => โจโx / โy, โฏโฉ }
@[simp]
theorem
Metric.unitSphere.coe_div
{๐ : Type u_1}
[NormedDivisionRing ๐]
(x y : โ(sphere 0 1))
:
Equations
- Metric.unitSphere.instZPow = { pow := fun (x : โ(Metric.sphere 0 1)) (n : โค) => โจโx ^ n, โฏโฉ }
@[simp]
theorem
Metric.unitSphere.coe_zpow
{๐ : Type u_1}
[NormedDivisionRing ๐]
(x : โ(sphere 0 1))
(n : โค)
:
instance
Metric.unitSphere.instMonoid
{๐ : Type u_1}
[SeminormedRing ๐]
[NormMulClass ๐]
[NormOneClass ๐]
:
Equations
instance
Metric.unitSphere.instCommMonoid
{๐ : Type u_1}
[SeminormedCommRing ๐]
[NormMulClass ๐]
[NormOneClass ๐]
:
CommMonoid โ(sphere 0 1)
@[simp]
theorem
Metric.unitSphere.coe_one
{๐ : Type u_1}
[SeminormedRing ๐]
[NormMulClass ๐]
[NormOneClass ๐]
:
@[simp]
theorem
Metric.unitSphere.coe_mul
{๐ : Type u_1}
[SeminormedRing ๐]
[NormMulClass ๐]
[NormOneClass ๐]
(x y : โ(sphere 0 1))
:
@[simp]
theorem
Metric.unitSphere.coe_pow
{๐ : Type u_1}
[SeminormedRing ๐]
[NormMulClass ๐]
[NormOneClass ๐]
(x : โ(sphere 0 1))
(n : โ)
:
Monoid homomorphism from the unit sphere in a normed division ring 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))
:
theorem
unitSphereToUnits_injective
{๐ : Type u_1}
[NormedDivisionRing ๐]
:
Function.Injective โ(unitSphereToUnits ๐)
Equations
- Metric.unitSphere.instGroup = Function.Injective.group โ(unitSphereToUnits ๐) โฏ โฏ โฏ โฏ โฏ โฏ โฏ
instance
Metric.sphere.instHasDistribNeg
{๐ : Type u_1}
[SeminormedRing ๐]
[NormMulClass ๐]
[NormOneClass ๐]
:
HasDistribNeg โ(sphere 0 1)
Equations
instance
Metric.sphere.instContinuousMul
{๐ : Type u_1}
[SeminormedRing ๐]
[NormMulClass ๐]
[NormOneClass ๐]
:
ContinuousMul โ(sphere 0 1)
instance
Metric.sphere.instIsTopologicalGroup
{๐ : Type u_1}
[NormedDivisionRing ๐]
:
IsTopologicalGroup โ(sphere 0 1)
Equations
- Metric.sphere.instCommGroup = { toGroup := Metric.unitSphere.instGroup, mul_comm := โฏ }