Documentation

LeanPool.Schoenflies.Curve

Arcs and Jordan curves #

A simple arc is the image of an injective continuous map from [0, 1]; a Jordan curve is the image of a map on [0, 1] which is injective before it returns to its start. Those are the blueprint's definitions verbatim.

The parameter domain is a subset of ℝ, not a type: an arc is carried by an ordinary f : ℝ → Plane together with ContinuousOn f unitInterval and InjOn f unitInterval. Mathlib's Path bundles a map out of ↥unitInterval instead, which is the right choice when paths are to be composed up to homotopy, and the wrong one here: subarcs are taken at arbitrary parameter pairs, reparametrisation is composition on ℝ with nothing to extract, and a Jordan curve's theorems are all about its parameters. Taking the circle as the domain would need a traversal of the circle by an interval, which is exactly what a trigonometry-free development does not have.

IsArcBetween is the set-level reading — an arc between two named points — and is the form most of the development speaks, since gluing and cutting are stated about endpoints.

Blueprint #

Arcs #

A simple arc: the image of a continuous injective map on [0, 1].

Equations
Instances For

    An arc between two named points: the set-level reading, and the form gluing and cutting are stated in.

    Equations
    Instances For
      structure Schoenflies.IsLoop (f : ℝ → Plane) :

      A loop: continuous on [0, 1], returning to its start, and injective before it does.

      Instances For

        A Jordan curve: the image of a loop.

        Equations
        Instances For

          The unit interval, as a subset of ℝ #

          theorem Schoenflies.isCompact_image_of_subset_I {f : ℝ → Plane} (hf : ContinuousOn f unitInterval) {S : Set ℝ} (hS : S ⊆ unitInterval) (hSc : IsClosed S) :

          The image of a relatively closed piece of the parameter interval is compact. This is what makes a parametrisation a closed map onto its arc, and hence its inverse continuous.

          Elementary properties #

          theorem Schoenflies.IsArcBetween.reverse {A : Set Plane} {p q : Plane} (h : IsArcBetween A p q) :

          Running a piece the other way round.

          theorem Schoenflies.IsArc.exists_isArcBetween {A : Set Plane} (h : IsArc A) :
          ∃ (p : Plane) (q : Plane), IsArcBetween A p q

          Every arc is an arc between its two endpoints.