Continuity at the Jordan curve, and thm:square-extension #
The last three statements of the manuscript: lem:crosscut-side-correspondence,
prop:boundary-continuity, and the assembly of thm:square-extension from them.
Schoenflies/BoundaryContinuity.lean proves the statement with the real combinatorial content,
lem:skeleton-crosscuts (Graph.IsStageOn.exists_crosscut), for one finite
plane graph. This module takes the crosscuts as given and finishes the section.
The construction inputs #
This module isolates the construction-dependent data as explicit hypotheses. They are supplied
for the quantitative stage recursion in Schoenflies/InteriorHomeomorphism.lean and
Schoenflies/BoundaryAnchors.lean. Nothing else is assumed: thm:jordan and
thm:general-crosscut are used through Schoenflies/JordanClosed.lean, where their hypotheses
are supplied.
prop:interior-homeomorphismenters asIsHomeoOn F F' (inside C) (Plane.openSquare 0 1)โ theSchoenflies.IsHomeoOnshape ofSchoenflies/Inversion.lean: a map, a named inverse, and the continuity and inverse laws on the two sets.lem:skeleton-crosscuts+prop:skeleton-agreemententer asSchoenflies.HasAnchorCrosscuts: for two distinct anchorsa, ba crosscutPofCfromatob, a crosscutP'ofQยฐfromu atou b, and the agreementF '' (P โ {a,b}) = P' โ {u a, u b}. This is exactly what the finite skeleton homeomorphism produces onceGraph.IsStageOn.exists_crosscuthas been run in the stage containingaandb(seeGraph.IsStageOn.exists_isCrosscutbelow, which does the packaging).lem:anchor-densityenters as the two clauses๐ โ CandC โ closure ๐, plus its "incident with a nonboundary edge" clause in the germ formSchoenflies.HasSpokes: at an anchorc, arbitrarily small connected piecesJof the Jordan domain which cling tocand whoseF-images cling tou c. That is the initial subarc of the spoke atc, and its image, which is the initial subarc of the target spoke โ the only use the blueprint makes of the spokes, in the paragraph oflem:crosscut-side-correspondencebeginning "Choosec โ ๐in the relative interior ofAแตข".
Schoenflies.HasLimitHomeomorphism bundles the four over all curves, and
Schoenflies.squareExtension_of_hasLimitHomeomorphism derives
Schoenflies.SquareExtension โ the exact def of
Schoenflies/Endgame.lean โ from it. The proof of HasLimitHomeomorphism assembled in
Schoenflies/JordanSchoenflies.lean closes the full theorem.
The two arguments #
Which side maps to which side is Schoenflies.crosscut_side_correspondence. The homeomorphism
of the interiors carries Int(C) โ P onto Qยฐ โ P' (Schoenflies.image_inside_sdiff), hence
carries each of the two components onto one of the two; the labels are pinned by a spoke germ
J at an anchor c in the relative interior of Aโ. J is connected, misses P because it
is small and c โ P, so it lies in one side; c โ closure J and closure(Uแตข) โฉ C = Aแตข force
that side to be Uโ. The same two facts on the target, applied to F '' J, force F '' Uโ to
be U'โ.
Boundary continuity is Schoenflies.tendsto_nhdsWithin_inside. The blueprint argues on a
subsequence; the filter form of the same argument avoids extracting one. If F does not tend
to u p along ๐[Int C] p, then l' = ๐[Int C] p โ ๐ (Fโปยน Wแถ) is a nonzero filter for some
open W โ u p, and compactness of Q gives a cluster point q โ Wแถ of F along l'. If
q โ Qยฐ then pushing l' through F' shows p = F' q โ Int(C), impossible. Otherwise
q โ S; anchors a, b separating p from r = uโปยน q give a crosscut whose p-side contains
every point of Int(C) near p, so l' sits on that side, so q lies in the closure of the
corresponding target side, whose trace on S is u(Aโ) โ and r โ Aโ.
Blueprint #
Graph.IsStageOn.exists_isCrosscutโlem:skeleton-crosscutsrepackaged asSchoenflies.IsCrosscut, the formthm:general-crosscutconsumes.Schoenflies.IsCutPair.separates,Schoenflies.exists_separating_anchorsโ the selection step ofprop:boundary-continuity: two anchors putting two prescribed points of the curve on opposite arcs. Useslem:anchor-densitythrough the density hypothesis alone.Schoenflies.IsCrosscut.image_of_injOn,Schoenflies.image_sdiff_eq_of_eqOnโ the two steps a consumer performs to dischargeSchoenflies.HasAnchorCrosscutsfrom a finite skeleton homeomorphism. No blueprint statement of their own; they are the second paragraph of the proof oflem:skeleton-crosscuts, "the finite skeleton homeomorphism sendsPto a simple pathP'".Schoenflies.crosscut_side_correspondenceโlem:crosscut-side-correspondence.Schoenflies.extendByBoundary,Schoenflies.tendsto_nhdsWithin_inside,Schoenflies.boundary_continuityโprop:boundary-continuity.Schoenflies.isHomeoOn_extendByBoundary,Schoenflies.squareExtension_of_hasLimitHomeomorphismโthm:square-extension.
lem:skeleton-crosscuts, packaged for thm:general-crosscut. The crosscut that
Graph.IsStageOn.exists_crosscut extracts from a stage drawn in the closed Jordan domain is a
Schoenflies.IsCrosscut of C, which is the configuration every consumer downstream takes.
This is only a repackaging; all the work is in Schoenflies/BoundaryContinuity.lean.
Two elementary facts about the model square #
Qยฐ = Int(S): the open square is the Jordan domain of the model curve. This is the bridge
between the shape prop:interior-homeomorphism is stated in (a homeomorphism onto
Plane.openSquare 0 1) and the shape thm:general-crosscut speaks in (inside modelCurve).
The Jordan domain of the model curve is the open square.
The closed square is compact.
Pushing arcs forward #
lem:crosscut-side-correspondence labels the target sides by u(Aโ) and u(Aโ), so the two
target arcs have to be produced as images. Nothing here is specific to the square.
The image of an arc under a map continuous and injective on a set containing it.
The image of a cut pair under a restricted homeomorphism, in the form the target side of
lem:crosscut-side-correspondence needs it.
Anchors that separate #
The selection step of prop:boundary-continuity. Given two distinct points p, r of the curve
and a dense set ๐ of anchors, we need anchors a, b with p and r on opposite arcs of C
from a to b. Density produces one anchor on each of the two open arcs of C from p to
r; the separation is then automatic, because an arc from a to b avoiding p and r
would be a connected subset of C โ {p, r} meeting both of its two (relatively open) halves.
Two anchors on opposite open arcs separate. If a lies on the open arc Bโ โ {p, r}
and b on the opposite one, then any pair of arcs cutting C at a and b puts p and r
on different arcs.
The proof is the one separation argument of the section: an arc from a to b missing both
p and r is a connected subset of C โ {p, r} = (C โ Bโ) โช (C โ Bโ), a union of two
relatively open pieces, and it meets both โ because a is in the first and b in the
second.
The selection step of prop:boundary-continuity. Two distinct points of the curve are
separated by two anchors of any dense set of anchors.
The hypotheses #
Two predicates, one for each thing that is still being built. Both are statements about one curve, so a consumer can discharge them curve by curve.
lem:skeleton-crosscuts together with prop:skeleton-agreement, as
lem:crosscut-side-correspondence consumes them: any two distinct anchors are joined by a
crosscut P of C, whose image under the limit map is a crosscut P' of the open square from
u a to u b.
The agreement clause is stated on P โ {a, b}, which by IsCrosscut.inter_eq is exactly
P โฉ Int(C) โ the part of the crosscut on which F is defined at all.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The spokes at the anchors. At an anchor c there are arbitrarily small connected
pieces J of the Jordan domain clinging to c whose F-images cling to u c.
This is the germ of the nonboundary edge that lem:anchor-density attaches to c: J is an
initial subarc of that edge with the endpoint c removed, and F '' J is the corresponding
initial subarc of the target edge, which ends at u c because the finite skeleton
homeomorphism sends c to u c. Nothing else about the spokes is used anywhere.
Equations
- Schoenflies.HasSpokes C ๐ u F = โ c โ ๐, โ ฮต > 0, โ J โ Schoenflies.inside C, IsPreconnected J โง J โ Metric.ball c ฮต โง c โ closure J โง u c โ closure (F '' J)
Instances For
Discharging HasAnchorCrosscuts from a skeleton homeomorphism #
The two steps a consumer has to perform, isolated so that they need not be reinvented: the image of a crosscut under the finite skeleton homeomorphism is again a crosscut, and the agreement clause follows from agreement of the limit map with that homeomorphism on the crosscut. Neither says anything about the square, so both apply to the source and the target side of any of the stages.
The image of a crosscut is a crosscut. All that is asked of the map is continuity and injectivity on a set containing the crosscut, plus the two clauses that are genuinely about the target configuration: the image is polygonal, and everything but its two endpoints lies in the target Jordan domain.
The agreement clause of Schoenflies.HasAnchorCrosscuts, from agreement of the limit
map with the skeleton homeomorphism on the part of the crosscut that lies in the domain.
lem:crosscut-side-correspondence #
Removing a crosscut from the Jordan domain is the same as removing its interior: the two endpoints are on the curve and so are not in the domain to begin with.
The limit map carries Int(C) โ P onto Qยฐ โ P'. This is the whole use made of
prop:skeleton-agreement: it turns a homeomorphism of the interiors into a homeomorphism of
the cut interiors.
lem:crosscut-side-correspondence, one inclusion. The side of the crosscut whose
closure meets C in Aโ is carried into the side of the target crosscut whose closure meets
S in u(Aโ).
This is where the spokes are used, and the only place.
lem:crosscut-side-correspondence. The limit map carries each side of a crosscut onto
the side of the target crosscut carrying the corresponding boundary arc.
The sides are named the way Schoenflies.crosscut_theorem names them: inside (Aแตข โช P) is the
component of Int(C) โ P whose closure meets C exactly in Aแตข.
prop:boundary-continuity #
The blueprint's Fbar: the limit map on the Jordan domain and the boundary homeomorphism on
the curve. It is Schoenflies.paste, which comes with its two evaluation lemmas.
Equations
- Schoenflies.extendByBoundary C u F = Schoenflies.paste C u F
Instances For
prop:boundary-continuity, the substance. Approaching a point p of the curve from
inside, the limit map tends to u p.
The blueprint extracts a subsequence; the same argument runs on the filter
l' = ๐[Int C] p โ ๐ (Fโปยน Wแถ) without extracting one.
prop:boundary-continuity. The glued map is continuous on the closed Jordan domain.
thm:square-extension #
thm:square-extension, for one curve. The glued map restricts to a homeomorphism of the
closed Jordan domain onto the closed square, and extends u.
Continuity of the inverse is not proved directly: the domain is compact and the square is
Hausdorff, so the continuous bijection Fbar is a closed map, which is exactly what
continuousOn_iff_isClosed asks of the inverse.
The assembled hypothesis, and Schoenflies.SquareExtension #
Everything this section assumes, for every Jordan curve and every boundary
homeomorphism onto the model square: a dense set of anchors, the limit homeomorphism of the
interiors (prop:interior-homeomorphism), the anchor crosscuts with their target images
(lem:skeleton-crosscuts and prop:skeleton-agreement), and the spokes at the anchors
(lem:anchor-density).
Schoenflies.squareExtension_of_hasLimitHomeomorphism turns this into
Schoenflies.SquareExtension, which is the input required by the final reduction.
Equations
- One or more equations did not get rendered due to their size.
Instances For
thm:square-extension. Every homeomorphism of a Jordan curve onto the model square
boundary extends to a homeomorphism of the closed Jordan domain onto the closed square.