Algebraic structures on unit balls and spheres #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
In this file we define algebraic structures (semigroup
, comm_semigroup
, monoid
, comm_monoid
,
group
, comm_group
) on metric.ball (0 : 𝕜) 1
, metric.closed_ball (0 : 𝕜) 1
, and
metric.sphere (0 : 𝕜) 1
. In each case we use the weakest possible typeclass assumption on 𝕜
,
from non_unital_semi_normed_ring
to normed_field
.
Unit ball in a non unital semi normed ring as a bundled subsemigroup
.
Equations
- subsemigroup.unit_ball 𝕜 = {carrier := metric.ball 0 1, mul_mem' := _}
Equations
- metric.ball.has_distrib_neg = function.injective.has_distrib_neg coe metric.ball.has_distrib_neg._proof_1 metric.ball.has_distrib_neg._proof_2 metric.ball.has_distrib_neg._proof_3
Closed unit ball in a non unital semi normed ring as a bundled subsemigroup
.
Equations
- subsemigroup.unit_closed_ball 𝕜 = {carrier := metric.closed_ball 0 1, mul_mem' := _}
Equations
- metric.closed_ball.has_distrib_neg = function.injective.has_distrib_neg coe metric.closed_ball.has_distrib_neg._proof_1 metric.closed_ball.has_distrib_neg._proof_2 metric.closed_ball.has_distrib_neg._proof_3
Closed unit ball in a semi normed ring as a bundled submonoid
.
Equations
- submonoid.unit_closed_ball 𝕜 = {carrier := metric.closed_ball 0 1, mul_mem' := _, one_mem' := _}
Unit sphere in a normed division ring as a bundled submonoid
.
Equations
- submonoid.unit_sphere 𝕜 = {carrier := metric.sphere 0 1, mul_mem' := _, one_mem' := _}
Equations
- metric.sphere.has_inv = {inv := λ (x : ↥(metric.sphere 0 1)), ⟨(↑x)⁻¹, _⟩}
Equations
- metric.sphere.has_div = {div := λ (x y : ↥(metric.sphere 0 1)), ⟨↑x / ↑y, _⟩}
Equations
- int.has_pow = {pow := λ (x : ↥(metric.sphere 0 1)) (n : ℤ), ⟨↑x ^ n, _⟩}
Equations
Monoid homomorphism from the unit sphere to the group of units.
Equations
- unit_sphere_to_units 𝕜 = units.lift_right (submonoid.unit_sphere 𝕜).subtype (λ (x : ↥(metric.sphere 0 1)), units.mk0 ↑x _) _
Equations
- metric.sphere.group = function.injective.group ⇑(unit_sphere_to_units 𝕜) unit_sphere_to_units_injective metric.sphere.group._proof_1 metric.sphere.group._proof_2 metric.sphere.group._proof_3 metric.sphere.group._proof_4 metric.sphere.group._proof_5 metric.sphere.group._proof_6
Equations
- metric.sphere.has_distrib_neg = function.injective.has_distrib_neg coe metric.sphere.has_distrib_neg._proof_1 metric.sphere.has_distrib_neg._proof_2 metric.sphere.has_distrib_neg._proof_3
Equations
- metric.sphere.comm_group = {mul := group.mul metric.sphere.group, mul_assoc := _, one := group.one metric.sphere.group, one_mul := _, mul_one := _, npow := group.npow metric.sphere.group, npow_zero' := _, npow_succ' := _, inv := group.inv metric.sphere.group, div := group.div metric.sphere.group, div_eq_mul_inv := _, zpow := group.zpow metric.sphere.group, zpow_zero' := _, zpow_succ' := _, zpow_neg' := _, mul_left_inv := _, mul_comm := _}