Documentation

TauCeti.Topology.PathSpace.Moore.Comparison.Basic

Moore paths and paths on the unit interval #

Moore paths compare with the fixed-interval model C(I, X) of paths parametrized by the unit interval I = [0, 1]. A path f : C(I, X) becomes the Moore path MoorePath.ofUnitPath f of length one, stopped at time one; a Moore path γ of length L becomes the path MoorePath.toUnitPath γ : s ↦ γ (L s) on the unit interval. Going from C(I, X) to the Moore paths and back is the identity (toUnitPath_ofUnitPath); going from the Moore paths to C(I, X) and back changes the length to one and reparametrizes, and the result is homotopic to the original path through Moore paths with the same end points (MoorePath.unitHomotopy). So the two path spaces are homotopy equivalent over X × X (MoorePath.homotopyEquivUnitPath), and the based version follows: the Moore loops MooreLoopSpace X x are homotopy equivalent to Mathlib's loops Path x x (MooreLoopSpace.homotopyEquivPath). Away from length zero there is no need to pass through length one: the Moore loops of positive length are homeomorphic to (0, ∞) × Path x x (MooreLoopSpace.posLengthHomeomorph). The Moore loop of length zero is the unit alone, while there are as many loops of each positive length as there are fixed-interval loops.

The homotopy is assembled from three pieces, each one a homotopy through maps that preserve the two end points, so that their composite is one as well (MoorePath.PreservesEndpoints, ContinuousMap.HomotopyWith):

The detour through length L + 1 avoids dividing by a length that could be zero.

Main definitions #

Main results #

References #

The comparison maps #

noncomputable def TauCeti.MoorePath.ofUnitPath {X : Type u_1} [TopologicalSpace X] (f : C(↑unitInterval, X)) :

A path on the unit interval, as a Moore path of length one, stopped at time one.

Instances For

    A Moore path of length L, reparametrized to the unit interval: s ↦ γ (L s).

    Instances For
      @[simp]

      A path on the unit interval, sent to the Moore paths and back, is unchanged.

      A Moore path sent to the unit interval and back: the path t ↦ γ (L · min t 1) of length one.

      Sending a Moore path to the unit interval and back reparametrizes it to length one.

      The homotopy from ofUnitPath ∘ toUnitPath to the identity #

      A self-map of the Moore paths preserves the end points. The homotopies below are through such maps, so they are homotopies over X × X.

      Instances For

        The composite ofUnitPath ∘ toUnitPath, bundled: a Moore path, reparametrized to length one (ofUnitPath_toUnitPath_apply).

        Instances For

          The homotopy from ofUnitPath ∘ toUnitPath to the identity of the Moore paths, through maps preserving the end points: a Moore path is homotopic, through Moore paths with the same end points, to its reparametrization to length one.

          Instances For

            Moore paths and paths on the unit interval are homotopy equivalent, by toUnitPath and ofUnitPath; the homotopy unitHomotopy preserves the end points, so this is a homotopy equivalence over X × X.

            Instances For

              The based comparison #

              noncomputable def Path.toMoorePath {X : Type u_1} [TopologicalSpace X] {x y : X} (p : Path x y) :

              A path on the unit interval from x to y, as a Moore path of length one.

              Instances For
                @[simp]
                theorem Path.toMoorePath_apply {X : Type u_1} [TopologicalSpace X] {x y : X} (p : Path x y) (t : NNReal) :
                @[simp]
                theorem Path.length_toMoorePath {X : Type u_1} [TopologicalSpace X] {x y : X} (p : Path x y) :
                @[simp]
                theorem Path.source_toMoorePath {X : Type u_1} [TopologicalSpace X] {x y : X} (p : Path x y) :
                @[simp]
                theorem Path.target_toMoorePath {X : Type u_1} [TopologicalSpace X] {x y : X} (p : Path x y) :

                A Moore path, as a path on the unit interval between its end points.

                Instances For
                  @[simp]
                  theorem Path.toPath_toMoorePath {X : Type u_1} [TopologicalSpace X] {x y : X} (p : Path x y) :
                  p.toMoorePath.toPath = p.cast ⋯ ⋯

                  A path on the unit interval, sent to the Moore paths and back, is unchanged, up to the identification of its end points.

                  def TauCeti.MooreLoopSpace.toPath {X : Type u_1} [TopologicalSpace X] {x : X} (γ : MooreLoopSpace X x) :
                  Path x x

                  A Moore loop at x, as a loop on the unit interval.

                  Instances For
                    @[simp]

                    Normalizing the Moore unit gives the constant fixed-interval loop.

                    noncomputable def Path.toMooreLoop {X : Type u_1} [TopologicalSpace X] {x : X} (p : Path x x) :

                    A loop on the unit interval at x, as a Moore loop of length one.

                    Instances For
                      @[simp]
                      theorem Path.toPath_toMooreLoop {X : Type u_1} [TopologicalSpace X] {x : X} (p : Path x x) :

                      A loop on the unit interval, sent to the Moore loops and back, is unchanged.

                      The composite Path.toMooreLoop ∘ toPath, bundled: a Moore loop reparametrized to length one.

                      Instances For

                        A Moore loop reparametrized to the unit interval, as a Moore path, is its rescaling to length one.

                        The homotopy from toLengthOne to the identity of the Moore loops at x: the restriction of MoorePath.unitHomotopy, which preserves the end points, to the loops.

                        Instances For

                          The Moore loop space is homotopy equivalent to Mathlib's loop space Path x x of loops parametrized by the unit interval, by toPath and Path.toMooreLoop.

                          Instances For

                            Moore loops of positive length #

                            noncomputable def TauCeti.MooreLoopSpace.posLengthHomeomorph {X : Type u_1} [TopologicalSpace X] (x : X) :

                            Moore loops of positive length are pairs of a positive length and a loop on the unit interval: a Moore loop is sent to its length and to its reparametrization to the unit interval, and a pair (L, c) to the loop c run in time L. In particular, over positive lengths, the length of Moore loops is a product projection, with fibre the loop space Path x x.

                            Instances For
                              @[simp]
                              @[simp]
                              theorem TauCeti.MooreLoopSpace.toPath_map {X : Type u_1} [TopologicalSpace X] {x : X} {Y : Type u_2} [TopologicalSpace Y] (f : C(X, Y)) (γ : MooreLoopSpace X x) :
                              ((map f ⋯) γ).toPath = γ.toPath.map ⋯

                              Reparametrizing to the unit interval commutes with the Moore loop map of a continuous map.