Documentation

LeanPool.Schoenflies.ModelCurve

The model curve, and the parametrization of a Jordan curve by it #

The blueprint's model curve is S = ∂Q, the boundary of the square Q = [-1,1]², and not the unit circle. That is a deliberate choice: this development is trigonometry-free, so a traversal of the round circle by an interval is unavailable, whereas S is four segments glued end to end and each segment is an arc by isArcBetween_segment. The blueprint says so explicitly ("Nothing in this document needs the unit circle in place of S").

modelCurve is defined by the sup norm, ‖x‖∞ = 1, which is the same square the rest of the development already speaks about (Plane.closedSquare 0 1), and it is cut into its four sides by modelCurve_eq_sides.

The content of Lemma 3.1 #

The lemma has three clauses. Only the first is proved here; the other two are already on main, transported along the homeomorphism the first clause supplies:

The route to the homeomorphism is the blueprint's, with the sequence argument replaced by its point-set content: t ↦ γ t is a continuous surjection from the compact [0,1] onto the Hausdorff C, hence a closed map, hence a quotient map; so a map out of C is continuous as soon as its composite with the parametrization is. That is exactly what the blueprint's subsequence chase establishes, and it is one line here.

Blueprint #

Segments with a constant coordinate #

The four sides of the square are axis-parallel, so each is pinned by one coordinate and swept by the other. Two lemmas serve all four.

theorem Schoenflies.mem_segment_horiz {u v c : ℝ} {x : Plane} :
x ∈ segment ℝ (Plane.mk u c) (Plane.mk v c) ↔ x.ofLp 1 = c ∧ x.ofLp 0 ∈ segment ℝ u v

A horizontal segment: constant second coordinate, first coordinate sweeping a real segment.

theorem Schoenflies.mem_segment_vert {c u v : ℝ} {x : Plane} :
x ∈ segment ℝ (Plane.mk c u) (Plane.mk c v) ↔ x.ofLp 0 = c ∧ x.ofLp 1 ∈ segment ℝ u v

A vertical segment: constant first coordinate, second coordinate sweeping a real segment.

The model curve and its four sides #

The model curve S = ∂Q, the boundary of the square Q = [-1,1]², described by the sup norm.

Equations
Instances For

    The corner (1, 1).

    Equations
    Instances For

      The corner (-1, 1).

      Equations
      Instances For

        The corner (-1, -1).

        Equations
        Instances For

          The corner (1, -1).

          Equations
          Instances For

            The top side of the square, traversed from (1,1) to (-1,1).

            Equations
            Instances For

              The left side of the square, traversed from (-1,1) to (-1,-1).

              Equations
              Instances For

                The bottom side of the square, traversed from (-1,-1) to (1,-1).

                Equations
                Instances For

                  The right side of the square, traversed from (1,-1) to (1,1).

                  Equations
                  Instances For

                    The model curve is the union of the four sides. The sup norm reaches 1 exactly when one coordinate is ±1 and the other is dominated by it.

                    The model curve is a Jordan curve #

                    Consecutive sides meet only in the corner they share.

                    The upper half of the model curve: two sides from (1,1) to (-1,-1).

                    The lower half of the model curve: two sides back from (-1,-1) to (1,1).

                    The two halves of the model curve meet exactly in the two corners they share: opposite sides are pinned to opposite values of one coordinate, so they are disjoint.

                    The model curve is a Jordan curve. Four segments glued end to end; no trigonometry anywhere.

                    The model curve is the boundary of the square #

                    This is the blueprint's description S = ∂Q with Q = [-1,1]², and the check that the sup-norm definition above is the intended one. The only content is that a point of sup norm exactly 1 is not interior to the square: scaling it out by a factor 1 + δ leaves the square while moving an arbitrarily small distance.

                    theorem Schoenflies.smul_coord (a : ℝ) (x : Plane) (i : Fin 2) :
                    (a • x).ofLp i = a * x.ofLp i

                    A point of the model curve is not interior to the square: pushing it radially outwards by a factor 1 + δ leaves the square, and δ may be taken as small as one likes.

                    The model curve is ∂Q, the topological boundary of the closed square Q = [-1,1]².

                    A loop identifies exactly the ends of the parameter interval #

                    theorem Schoenflies.IsLoop.param_eq_or {f : ℝ → Plane} (hf : IsLoop f) {s t : ℝ} (hs : s ∈ unitInterval) (ht : t ∈ unitInterval) (h : f s = f t) :
                    s = t ∨ s = 0 ∧ t = 1 ∨ s = 1 ∧ t = 0

                    Two parameters of [0,1] with the same image under a loop are equal, or are the two ends of the interval. This is the whole of a loop's non-injectivity.

                    theorem Schoenflies.IsLoop.eq_of_eq {f g : ℝ → Plane} (hf : IsLoop f) (hg : IsLoop g) {s t : ℝ} (hs : s ∈ unitInterval) (ht : t ∈ unitInterval) (h : f s = f t) :
                    g s = g t

                    Every loop makes the same identifications on [0,1]. This is what lets a loop be transported to any other loop: the induced map on images is well defined.

                    theorem Schoenflies.IsLoop.exists_homeomorph {f g : ℝ → Plane} (hf : IsLoop f) (hg : IsLoop g) :
                    ∃ (h : ↑(f '' unitInterval) ≃ₜ ↑(g '' unitInterval)), ∀ (t : ℝ) (ht : t ∈ unitInterval), ↑(h ⟨f t, ⋯⟩) = g t

                    Any two loops induce a homeomorphism between their images, matching parameters.

                    t ↦ f t is a continuous surjection of the compact [0,1] onto the Hausdorff image, hence a closed map, hence a quotient map; so a map out of the image is continuous as soon as its composite with the parametrization is. The induced map is well defined by eq_of_eq, and bijective because eq_of_eq runs in both directions.

                    Lemma 3.1: parametrization by the model curve #

                    Any two Jordan curves are homeomorphic.

                    Lemma 3.1. A Jordan curve is homeomorphic to the model curve S = ∂Q.

                    Lemma 3.1, the other direction: the model curve maps homeomorphically onto any Jordan curve. This is the form the blueprint states — γ induces a homeomorphism from S onto C.