The circle #
This file defines circle
to be the metric sphere (Metric.sphere
) in ℂ
centred at 0
of
radius 1
. We equip it with the following structure:
- a submonoid of
ℂ
- a group
- a topological group
We furthermore define expMapCircle
to be the natural map fun t ↦ exp (t * I)
from ℝ
to
circle
, and show that this map is a group homomorphism.
Implementation notes #
Because later (in Geometry.Manifold.Instances.Sphere
) one wants to equip the circle with a smooth
manifold structure borrowed from Metric.sphere
, the underlying set is
{z : ℂ | abs (z - 0) = 1}
. This prevents certain algebraic facts from working definitionally --
for example, the circle is not defeq to {z : ℂ | abs z = 1}
, which is the kernel of Complex.abs
considered as a homomorphism from ℂ
to ℝ
, nor is it defeq to {z : ℂ | normSq z = 1}
, which
is the kernel of the homomorphism Complex.normSq
from ℂ
to ℝ
.
The elements of the circle embed into the units.
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
If z
is a nonzero complex number, then conj z / z
belongs to the unit circle.
Equations
- circle.ofConjDivSelf z hz = { val := (starRingEnd ℂ) z / z, property := (_ : (starRingEnd ℂ) z / z ∈ circle) }
Instances For
The map fun t => exp (t * I)
from ℝ
to the unit circle in ℂ
.
Equations
- expMapCircle = ContinuousMap.mk fun (t : ℝ) => { val := Complex.exp (↑t * Complex.I), property := (_ : Complex.exp (↑t * Complex.I) ∈ circle) }
Instances For
The map fun t => exp (t * I)
from ℝ
to the unit circle in ℂ
,
considered as a homomorphism of groups.
Equations
- expMapCircleHom = { toZeroHom := { toFun := ⇑Additive.ofMul ∘ ⇑expMapCircle, map_zero' := expMapCircle_zero }, map_add' := expMapCircle_add }