A Jordan curve separates the plane #
Half of the Jordan curve theorem: the complement of a Jordan curve C is disconnected. The
proof is the blueprint's — build a subdivision of K(3,3) out of the curve, a chord of it, a
detour above it, and a connecting arc, and appeal to Graph.IsArcK33.elim.
The configuration #
Fix a coordinate i in which C has nonzero width, and let j be the other one. Write m
and M for the extreme i-coordinates on C, and let p₁, p₂ be the points of C on the
two supporting lines {z | z i = m}, {z | z i = M} with the largest j-coordinate. Two
points of a Jordan curve cut it into two arcs C₁, C₂ (IsJordanCurve.two_arcs). Both meet
the middle line {z | z i = (m + M) / 2}, by the intermediate value theorem; a closest pair
a ∈ C₁, b ∈ C₂ on that line spans a segment L₄ whose interior misses C. Running up the
two supporting lines and across above the curve gives a polygonal set meeting C exactly in
{p₁, p₂} and missing L₄; a simple arc L₅ inside it (exists_simple_poly_of_poly) is the
blueprint's detour.
The blueprint argues inside the unbounded component: it supposes L₄ \ {a, b} to lie there,
and concludes that it does not. Here the contradiction hypothesis is the statement being
negated — that the whole complement is preconnected — which is weaker to assume and gives the
same K(3,3). Nothing about the unbounded component is needed, so nothing about it is proved;
exists_unique_unbounded_connectedComponentIn_compl at the end is the separate cheap fact.
If the complement were preconnected, a simple polygonal arc R inside it would join an
interior point of L₄ to an interior point of L₅. Its last parameter on L₄ and the first
one after that on L₅ cut out a piece L₆ meeting L₄ ∪ L₅ only at its two ends — this is
why the blueprint takes such care over the order in which c' and d' are chosen. Cutting
C₁ at a, C₂ at b, L₅ at the far end d' of L₆ and L₄ at its near end c'
produces nine arcs on the six points {p₁, p₂, c'}, {a, b, d'}, meeting only where a
K(3,3) forces them to. That is impossible, so the complement is not preconnected.
Coordinates instead of a rotation #
The blueprint rotates so that the direction of nonzero width becomes horizontal. Here the two
coordinate indices are carried as parameters i ≠ j of not_isPreconnected_compl_of_coord
instead, and the headline theorem picks whichever pair works. No rotation, no trigonometry and
no coordinate-swap symmetry lemma is needed: every step is symmetric in the two indices except
for which one is named.
The blueprint's opening step — a Jordan curve is not contained in a line — is not needed in
this form. All it is used for is a direction of nonzero width, and that follows from the curve
having two distinct points (IsJordanCurve.exists_ne). The degenerate configurations the
blueprint's step rules out are excluded downstream instead, by C₁ ∩ C₂ = {p₁, p₂}.
Blueprint #
Schoenflies.not_isPreconnected_compl_of_coord,Schoenflies.IsJordanCurve.not_isPreconnected_compl,Schoenflies.IsJordanCurve.exists_connectedComponentIn_ne—prop:jordan-disconnected.Schoenflies.exists_unique_unbounded_connectedComponentIn_compl— the opening sentence of the blueprint's Jordan section: the complement of a compact set has exactly one unbounded component.Graph.isArcK33_of_pieces— the packaging ofcor:k33-subdivision(throughGraph.IsArcK33.elim) that this configuration fits.Schoenflies.IsArcBetween.exists_split— an arc cut at an interior point; the arc analogue of the second clause oflem:jordan-circle, whichSchoenflies.IsJordanCurve.two_arcsis.
For the integrator #
Three groups of declarations here are general and have no home yet on main:
Schoenflies.Plane.coord_ext,axisVec,setCoord,coord_eq_of_mem_segment,le_coord_of_mem_segment,coord_le_of_mem_segmentbelong beside the coordinate half-planes inSchoenflies/Square.lean.Schoenflies.IsArcBetween.exists_splitbelongs inSchoenflies/Subarc.lean, next toIsArc.exists_isArcBetween_subset;Schoenflies.injective_threeis aFin 3triviality.Graph.isArcK33_of_piecesbelongs inSchoenflies/Graph/K33Planar.lean, next toGraph.IsArcK33.
The unit vector along the coordinate axis j.
Equations
Instances For
The point obtained from z by moving its j-th coordinate to t and leaving the other
coordinate where it was. This is how the two upper corners of the polygonal detour above the
curve are named without committing to which of the two coordinates is the horizontal one.
Instances For
Coordinates along a segment #
Cutting an arc at an interior point #
An arc splits at any of its interior points into two arcs which cover it and meet
exactly there. This is the arc analogue of IsJordanCurve.two_arcs, and is what turns each
branch of the configuration below into two branch paths of the K(3,3).
Nine arcs assembled from three chains, two bridges of a fourth, and a ninth arc.
This is a packaging lemma: it repackages the meet clause of Graph.IsArcK33 as the five
containment facts that a K(3,3) subdivision found inside a plane configuration actually
produces. The rows 0 and 1 of P are the two halves of three chains Ch 0, Ch 1, Ch 2
running from x 0 to x 1, each cut at the point y j; row 2 holds three further pieces,
carried by sets Sg j, that all issue from x 2.
The hypotheses are exactly what the separation proof below has to hand, and nothing about their geometry is used: only the listed intersections.
The separation proof #
A chord and an exterior detour across the two arcs force a planar K(3,3)
configuration if the complement were connected.
Proposition 3.2 (a Jordan curve separates), with the coordinate direction named.
i is the blueprint's horizontal direction and j its vertical one; the hypothesis on u
and v is that the projection of C to the i-th coordinate has nonzero width, which is all
the blueprint's rotation achieves. IsJordanCurve.not_isPreconnected_compl discharges it.
The headline #
A Jordan curve carries two distinct points: the loop parametrising it is injective on
[0, 1), which has two distinct points.
Proposition 3.2 (a Jordan curve separates the plane). The complement of a Jordan curve is not preconnected.
The direction hypothesis of not_isPreconnected_compl_of_coord is discharged here: the curve
has two distinct points, so they differ in one of the two coordinates, and that coordinate
plays the role of the blueprint's horizontal one. No rotation is performed — the proof is run
for whichever coordinate projection has nonzero width, with the two coordinate indices carried
as parameters.
Proposition 3.2, in the form the Jordan curve theorem consumes: the complement of a
Jordan curve has at least two connected components. Stated as two of its points lying in
different components, since that is what thm:jordan starts from.
It is genuinely the same statement: a set all of whose points share one component is that component, and a component is preconnected.
The unbounded component #
Cheap, and what thm:jordan needs to name the exterior: a compact set sits inside a square,
the outside of that square is connected and misses it, so the whole outside lies in one
component of the complement — the only unbounded one.
The unbounded component of the complement of a compact set. It exists, it swallows the outside of any square containing the set, and it is the only unbounded component.