Subarcs, open arcs, and the subarc basis #
A subarc is the arc restricted to a subinterval of the parameter interval — but an arc is
carried by a map on [0, 1], so the restriction has to be reparametrised back onto it.
That reparametrisation is reparam a b : t ↦ a + t * (b - a): pure arithmetic, with no
inverse to construct and no choice to make. With it a subarc is a composition, and the two
things an arc must be — continuous and injective — are the two things a composition inherits.
Injectivity is required only on uIcc a b, the parameter interval actually traversed, not on
all of [0, 1]. That is what lets the two arcs of a Jordan curve be cut out of a loop, whose
parametrisation is injective on [0, 1) only.
The substance of the file is the last two sections. A parametrisation is an open map onto
its arc: the image of a relatively open piece of the parameter interval is relatively open
in the arc. This is where the continuity of the inverse earns its keep, and it is proved
without ever constructing that inverse — a continuous injection on a compact set is a closed
map onto its image, and a closed injective map is open onto its image, by complements.
Together with basic_piece_inside_ball, which puts such a piece inside any prescribed ball,
these images are a basis of the arc's subspace topology.
Relative openness is stated in the ambient form ∃ V, IsOpen V ∧ W = V ∩ A rather than
through the subtype ↥A, since every consumer here works with subsets of the plane.
Blueprint #
The blueprint uses subarcs throughout §1 without a numbered statement of their own; they are
the tool behind, among others, the model-curve parametrization (lem:jordan-circle), where
"the relatively open subarcs of C" are exactly the images produced by image_isRelOpen, and
the density arguments of lem:accessible-dense, which need basic_piece_inside_ball.
subarc,isArcBetween_subarc— a piece of an arc is again an arc.IsArc.exists_isArcBetween_subset— the set-level reading: two points of an arc bound a subarc of it.openArc— the blueprint'sP°, an arc without its two endpoints.image_isRelOpen— a parametrisation is an open map onto its arc;openArc_isRelOpenandopenArc_subarc_isRelOpenare the "relatively open subarcs" oflem:jordan-circle.basic_piece_inside_ball— the subarc basis.
Reparametrising [0, 1] onto a subinterval #
The affine map carrying [0, 1] onto the parameter interval between a and b,
running from a to b.
Equations
- Schoenflies.reparam a b t = a + t * (b - a)
Instances For
The reparametrisation is injective as soon as it is not constant.
reparam a b carries the unit interval exactly onto uIcc a b. This is segment_eq_image'
read through the identification of a real segment with an unordered closed interval.
A subinterval of the unit interval stays inside it: uIcc is the convex hull of its two
endpoints, and the unit interval is convex.
Subarcs #
The subarc of f between the parameters a and b: the arc traversed from f a to
f b, reparametrised so that it is again a map on [0, 1].
Equations
- Schoenflies.subarc f a b t = f (Schoenflies.reparam a b t)
Instances For
A subarc between two distinct parameters is an arc between the two values there. The injectivity hypothesis is confined to the traversed interval, so this applies to a piece of a Jordan curve as well as to a piece of an arc.
The version for an arc, whose parametrisation is injective everywhere.
Any two distinct points of an arc are the endpoints of a subarc of it. The set-level form, for the consumers that never see a parametrisation.
The arc without its endpoints #
The open arc — the blueprint's P°: an arc with its two endpoints removed.
Taken on the parameter side, as the image of the open unit interval, because that is the form
the subarc basis argument needs: an open subarc is the image of an open subinterval.
Injectivity then says it is also the arc minus the two endpoint values, which is how the
blueprint reads it (openArc_eq_diff).
Equations
- Schoenflies.openArc f = f '' Set.Ioo 0 1
Instances For
On an arc the two readings of "without its endpoints" agree: dropping the endpoints of the parameter interval drops exactly the two endpoint values, since injectivity means no other parameter shares them.
The interior of an arc, set-level #
openArc is stated for a parametrisation. Three separate modules needed the same facts stated
for the set — IsArcBetween A p q gives A ∖ {p, q} connected, nonempty, and having both
endpoints in its closure — and each proved them again from scratch, one of them twice under two
names. Two of those copies were literally the same statement in modules that do not import each
other, so the build never noticed: alpha-equivalent Props are defeq under proof irrelevance,
and Lean's import checker accepts them. They live here now.
The two ends of an arc are distinct: they are the images of 0 and 1.
The interior of an arc is the image of the open parameter interval. The bridge from
IsArcBetween, which is about the set, to openArc, which is about a parametrisation.
The interior of an arc is connected. It is the continuous image of Ioo 0 1.
The interior of an arc is connected in the nonempty sense.
An endpoint of an arc is a limit of its interior. This is what turns "the closure of a cell meets the curve in one arc only" into a statement about the endpoints of a crosscut, and it is what says an ear's two ends lie on the boundary of the face its interior lies in.
An arc is the closure of its interior. The arc is compact, hence closed, so the closure of the interior is inside it; conversely the interior is inside its own closure and each of the two endpoints is a limit of it.
A parametrisation is an open map onto its arc #
The parametrisation is an open map onto its arc. The image of a relatively open piece of the parameter interval is relatively open in the arc.
No inverse is constructed. The complement piece I \ U is compact, so its image is compact,
so it is closed; and by injectivity the image of U ∩ I is exactly the arc minus that closed
set. Stated for a relatively open piece U ∩ I rather than for a subarc, because at an
endpoint the basic neighbourhood is half-open — openArc of a subarc is the interior case,
and this covers both.
The pointwise reading of the previous theorem, and the one consumers use: around every point of the image of a relatively open piece there is a ball meeting the arc only inside that image. This is precisely the continuity of the inverse parametrisation.
The open arc is relatively open in the arc: the blueprint's P° is a relatively open
subarc.
A subarc without its endpoints is relatively open in the arc. These are the "relatively open subarcs" the blueprint speaks of.
The subarc basis #
Every neighbourhood of a point of the arc contains the image of an open subinterval
around its parameter. With image_isRelOpen, which says those images are relatively open,
this makes them a basis of the arc's subspace topology.
The piece is the parameter interval cut by an interval around the parameter, which is half-open exactly when the point is an endpoint.