Documentation

TauCeti.Topology.PL.Map

Piecewise-linear maps between real topological vector spaces #

A map is piecewise linear — PL, and piecewise affine would be the more honest word — when it is affine on each cell of a polyhedral decomposition of its domain. This file builds that predicate in the shape the PL structure groupoid needs, and proves the closure properties which make it a Pregroupoid property: restriction to a subset, locality, invariance under changing the map off the set, and closure under composition.

The shape of the definition #

Two predicates are defined, one on top of the other.

Both weakenings of the textbook notion of a polyhedral subdivision are deliberate, and are what make the predicate usable as a Pregroupoid property on open subsets of a model space.

The cells are asked only to cover the set, not to be contained in it. A non-closed open subset of a model space cannot be a locally finite union of the closed polyhedra used here, so a locally finite subdivision of the set would not exist for the sets the groupoid quantifies over. The covering form restricts to subsets for free (TauCeti.IsPiecewiseAffineOn.mono).

Finiteness is asked for only near each point. A piecewise-linear map may genuinely have infinitely many pieces — a breakpoint at every integer, say — so a globally finite decomposition is not a local condition, and Pregroupoid.locality demands one. Local finiteness is the textbook remedy, and it implies the present predicate: a family that is locally finite along the set is, by definition, finite on a small enough neighbourhood of each of the set's points. TauCeti.isPLOn_of_locallyFinite records that implication, in this direction only — no converse is proved, and none is claimed — and it is the bridge from a triangulation, which supplies exactly such a family of affine pieces.

Main definitions #

Main results #

This is part of the structure-group track of layer 1 of the geometric-topology roadmap (TauCetiRoadmap/GeometricTopology/README.md); the groupoid built from it lives in TauCeti/Geometry/Manifold/PLGroupoid/Basic.lean.

def TauCeti.IsPiecewiseAffineOn {E : Type u_1} {F : Type u_2} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] [AddCommGroup F] [Module ℝ F] [TopologicalSpace F] (f : E → F) (V : Set E) :

IsPiecewiseAffineOn f V says that the set V is covered by finitely many convex polyhedra on each of which the map f agrees with a continuous affine map.

Instances For
    theorem TauCeti.isPiecewiseAffineOn_iff {E : Type u_1} {F : Type u_2} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] [AddCommGroup F] [Module ℝ F] [TopologicalSpace F] {f : E → F} {V : Set E} :
    IsPiecewiseAffineOn f V ↔ ∃ (n : ℕ) (C : Fin n → Set E) (A : Fin n → E →ᴬ[ℝ] F), (∀ (i : Fin n), IsConvexPolyhedron (C i)) ∧ V ⊆ ⋃ (i : Fin n), C i ∧ ∀ (i : Fin n), Set.EqOn f (⇑(A i)) (V ∩ C i)

    The finite polyhedral decomposition characterizing piecewise affineness.

    theorem TauCeti.isPiecewiseAffineOn_of_finite {E : Type u_1} {F : Type u_2} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] [AddCommGroup F] [Module ℝ F] [TopologicalSpace F] {f : E → F} {V : Set E} {ι : Type u_4} [Finite ι] {C : ι → Set E} {A : ι → E →ᴬ[ℝ] F} (hC : ∀ (i : ι), IsConvexPolyhedron (C i)) (hcov : V ⊆ ⋃ (i : ι), C i) (heq : ∀ (i : ι), Set.EqOn f (⇑(A i)) (V ∩ C i)) :

    The constructor of TauCeti.IsPiecewiseAffineOn for a cover indexed by an arbitrary finite type, rather than by Fin n.

    A continuous affine map is piecewise affine on every set, with the whole space as its single cell.

    theorem TauCeti.IsPiecewiseAffineOn.mono {E : Type u_1} {F : Type u_2} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] [AddCommGroup F] [Module ℝ F] [TopologicalSpace F] {f : E → F} {V W : Set E} (h : IsPiecewiseAffineOn f V) (hWV : W ⊆ V) :

    Piecewise affineness passes to subsets: the same cells and affine pieces work.

    theorem TauCeti.IsPiecewiseAffineOn.congr {E : Type u_1} {F : Type u_2} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] [AddCommGroup F] [Module ℝ F] [TopologicalSpace F] {f f' : E → F} {V : Set E} (h : IsPiecewiseAffineOn f V) (hf' : Set.EqOn f' f V) :

    Piecewise affineness only depends on the values of the map on the set.

    A piecewise affine map is continuous on the set carrying the decomposition.

    The cells are closed and finite in number, so this is a pasting argument: the neighbourhood filter of a point within the set is the supremum of its neighbourhood filters within the cells, the filters attached to cells missing the point are trivial because the cells are closed, and on the remaining cells the map agrees with a continuous affine map.

    theorem TauCeti.IsPiecewiseAffineOn.comp {E : Type u_1} {F : Type u_2} {G : Type u_3} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] [AddCommGroup F] [Module ℝ F] [TopologicalSpace F] [AddCommGroup G] [Module ℝ G] [TopologicalSpace G] {f : E → F} {g : F → G} {V : Set E} {W : Set F} (hg : IsPiecewiseAffineOn g W) (hf : IsPiecewiseAffineOn f V) (hmap : Set.MapsTo f V W) :

    Piecewise affine maps compose: refine the cells of the source decomposition by pulling the cells of the target decomposition back along the affine pieces.

    No continuity is needed here, because the refined cover is honest: the affine piece of f on a source cell agrees with f there, so it lands in the same target cell that f does.

    def TauCeti.IsPLOn {E : Type u_1} {F : Type u_2} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] [AddCommGroup F] [Module ℝ F] [TopologicalSpace F] (f : E → F) (s : Set E) :

    IsPLOn f s says that the map f is piecewise linear on the set s: every point of s has a neighbourhood in s covered by finitely many convex polyhedra on each of which f agrees with a continuous affine map.

    Instances For
      theorem TauCeti.isPLOn_iff {E : Type u_1} {F : Type u_2} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] [AddCommGroup F] [Module ℝ F] [TopologicalSpace F] {f : E → F} {s : Set E} :
      IsPLOn f s ↔ ∀ x ∈ s, ∃ V ∈ nhdsWithin x s, IsPiecewiseAffineOn f V

      The local finite-decomposition characterization of piecewise linearity.

      theorem TauCeti.IsPiecewiseAffineOn.isPLOn {E : Type u_1} {F : Type u_2} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] [AddCommGroup F] [Module ℝ F] [TopologicalSpace F] {f : E → F} {V : Set E} (h : IsPiecewiseAffineOn f V) :
      IsPLOn f V

      A piecewise affine map is piecewise linear on the set carrying its decomposition.

      theorem TauCeti.isPLOn_continuousAffineMap {E : Type u_1} {F : Type u_2} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] [AddCommGroup F] [Module ℝ F] [TopologicalSpace F] (A : E →ᴬ[ℝ] F) (s : Set E) :
      IsPLOn (⇑A) s

      A continuous affine map is piecewise linear on every set.

      theorem ContinuousAffineMap.isPLOn_affineGraph {E : Type u_4} {F : Type u_5} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] [AddCommGroup F] [Module ℝ F] [TopologicalSpace F] (A : E →ᴬ[ℝ] F) (s : Set E) :
      TauCeti.IsPLOn (fun (x : E) => (x, A x)) s

      The graph of a continuous affine map is piecewise affine on every subset of its domain.

      theorem TauCeti.isPLOn_id {E : Type u_1} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] (s : Set E) :

      The identity is piecewise linear on every set.

      theorem TauCeti.IsPLOn.mono {E : Type u_1} {F : Type u_2} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] [AddCommGroup F] [Module ℝ F] [TopologicalSpace F] {f : E → F} {s t : Set E} (h : IsPLOn f s) (hts : t ⊆ s) :
      IsPLOn f t

      The piecewise-linear property passes to subsets.

      theorem TauCeti.IsPLOn.congr {E : Type u_1} {F : Type u_2} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] [AddCommGroup F] [Module ℝ F] [TopologicalSpace F] {f f' : E → F} {s : Set E} (h : IsPLOn f s) (hf' : Set.EqOn f' f s) :
      IsPLOn f' s

      The piecewise-linear property only depends on the values of the map on the set.

      theorem TauCeti.IsPLOn.continuousOn {E : Type u_1} {F : Type u_2} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] [AddCommGroup F] [Module ℝ F] [TopologicalSpace F] {f : E → F} {s : Set E} (h : IsPLOn f s) :

      A piecewise-linear map is continuous.

      theorem TauCeti.isPLOn_of_forall_mem_nhdsWithin {E : Type u_1} {F : Type u_2} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] [AddCommGroup F] [Module ℝ F] [TopologicalSpace F] {f : E → F} {s : Set E} (h : ∀ x ∈ s, ∃ V ∈ nhdsWithin x s, IsPLOn f (s ∩ V)) :
      IsPLOn f s

      The piecewise-linear property is local: it suffices to have it on a neighbourhood in s of each point of s.

      theorem TauCeti.isPLOn_of_locally {E : Type u_1} {F : Type u_2} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] [AddCommGroup F] [Module ℝ F] [TopologicalSpace F] {f : E → F} {s : Set E} (h : ∀ x ∈ s, ∃ (V : Set E), IsOpen V ∧ x ∈ V ∧ IsPLOn f (s ∩ V)) :
      IsPLOn f s

      The piecewise-linear property is local, in the form the Pregroupoid locality axiom asks for: it suffices to have it on the trace of an open neighbourhood of each point of s.

      theorem TauCeti.IsPLOn.comp {E : Type u_1} {F : Type u_2} {G : Type u_3} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] [AddCommGroup F] [Module ℝ F] [TopologicalSpace F] [AddCommGroup G] [Module ℝ G] [TopologicalSpace G] {f : E → F} {g : F → G} {s : Set E} {t : Set F} (hg : IsPLOn g t) (hf : IsPLOn f s) (hst : s ⊆ f ⁻¹' t) :
      IsPLOn (g ∘ f) s

      Piecewise-linear maps compose.

      Continuity of f (TauCeti.IsPLOn.continuousOn) enters here, and only here: it is what shrinks the neighbourhood of x on which f is piecewise affine to one that f carries into the neighbourhood of f x on which g is piecewise affine.

      Piecewise linearity at a point #

      The germ form of TauCeti.IsPLOn, as ContDiffWithinAt is to ContDiffOn: f is piecewise affine on a neighbourhood of x within insert x s. Asking for insert x s rather than s pins down the value of f at x even when x ∉ s, which is what the lift of the property to charted spaces needs (TauCeti.PLWithinAtProp).

      def TauCeti.IsPLWithinAt {E : Type u_1} {F : Type u_2} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] [AddCommGroup F] [Module ℝ F] [TopologicalSpace F] (f : E → F) (s : Set E) (x : E) :

      IsPLWithinAt f s x says that f is piecewise affine on a neighbourhood of x within insert x s.

      Instances For
        theorem TauCeti.isPLWithinAt_iff {E : Type u_1} {F : Type u_2} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] [AddCommGroup F] [Module ℝ F] [TopologicalSpace F] {f : E → F} {s : Set E} {x : E} :
        IsPLWithinAt f s x ↔ ∃ (V : Set E), x ∈ V ∧ V ∈ nhdsWithin x s ∧ IsPiecewiseAffineOn f V

        Piecewise linearity at a point, unfolded: a piecewise affine neighbourhood of x within s which contains x.

        theorem TauCeti.isPLWithinAt_univ {E : Type u_1} {F : Type u_2} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] [AddCommGroup F] [Module ℝ F] [TopologicalSpace F] {f : E → F} {x : E} :

        Piecewise linearity within the whole space at a point: a piecewise affine neighbourhood.

        theorem TauCeti.IsPLOn.isPLWithinAt {E : Type u_1} {F : Type u_2} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] [AddCommGroup F] [Module ℝ F] [TopologicalSpace F] {f : E → F} {s : Set E} {x : E} (h : IsPLOn f s) (hx : x ∈ s) :

        A map piecewise linear on s is piecewise linear within s at each point of s.

        theorem TauCeti.isPLOn_iff_forall_isPLWithinAt {E : Type u_1} {F : Type u_2} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] [AddCommGroup F] [Module ℝ F] [TopologicalSpace F] {f : E → F} {s : Set E} :
        IsPLOn f s ↔ ∀ x ∈ s, IsPLWithinAt f s x

        Piecewise linearity on a set is piecewise linearity within the set at each of its points.

        theorem ContinuousAffineMap.isPLWithinAt {E : Type u_1} {F : Type u_2} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] [AddCommGroup F] [Module ℝ F] [TopologicalSpace F] (A : E →ᴬ[ℝ] F) (s : Set E) (x : E) :

        A continuous affine map is piecewise linear within every set at every point.

        theorem TauCeti.IsPLWithinAt.continuousWithinAt_insert {E : Type u_1} {F : Type u_2} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] [AddCommGroup F] [Module ℝ F] [TopologicalSpace F] {f : E → F} {s : Set E} {x : E} (h : IsPLWithinAt f s x) :

        A map piecewise linear within s at x is continuous within insert x s at x.

        theorem TauCeti.IsPLWithinAt.continuousWithinAt {E : Type u_1} {F : Type u_2} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] [AddCommGroup F] [Module ℝ F] [TopologicalSpace F] {f : E → F} {s : Set E} {x : E} (h : IsPLWithinAt f s x) :

        A map piecewise linear within s at x is continuous within s at x.

        theorem TauCeti.IsPLWithinAt.mono_of_mem_nhdsWithin {E : Type u_1} {F : Type u_2} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] [AddCommGroup F] [Module ℝ F] [TopologicalSpace F] {f : E → F} {s t : Set E} {x : E} (h : IsPLWithinAt f s x) (hst : s ∈ nhdsWithin x t) :

        Piecewise linearity within s at x passes to any set t of which s is a neighbourhood within at x.

        theorem TauCeti.IsPLWithinAt.mono {E : Type u_1} {F : Type u_2} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] [AddCommGroup F] [Module ℝ F] [TopologicalSpace F] {f : E → F} {s t : Set E} {x : E} (h : IsPLWithinAt f s x) (hts : t ⊆ s) :

        Piecewise linearity within a set at a point passes to subsets.

        theorem TauCeti.isPLWithinAt_inter {E : Type u_1} {F : Type u_2} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] [AddCommGroup F] [Module ℝ F] [TopologicalSpace F] {f : E → F} {s : Set E} {x : E} {u : Set E} (hu : u ∈ nhds x) :
        IsPLWithinAt f (s ∩ u) x ↔ IsPLWithinAt f s x

        Piecewise linearity within s at x is unchanged by intersecting s with a neighbourhood of x.

        theorem TauCeti.IsPLWithinAt.congr {E : Type u_1} {F : Type u_2} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] [AddCommGroup F] [Module ℝ F] [TopologicalSpace F] {f f' : E → F} {s : Set E} {x : E} (h : IsPLWithinAt f s x) (h₁ : Set.EqOn f' f s) (hx : f' x = f x) :

        Piecewise linearity within s at x only depends on the values of the map on s and at x.

        theorem TauCeti.IsPLWithinAt.comp {E : Type u_1} {F : Type u_2} {G : Type u_3} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] [AddCommGroup F] [Module ℝ F] [TopologicalSpace F] [AddCommGroup G] [Module ℝ G] [TopologicalSpace G] {f : E → F} {g : F → G} {s : Set E} {x : E} {t : Set F} (hg : IsPLWithinAt g t (f x)) (hf : IsPLWithinAt f s x) (hst : Set.MapsTo f s t) :
        IsPLWithinAt (g ∘ f) s x

        Maps piecewise linear at a point compose.

        theorem TauCeti.IsPLOn.affine_transport {E : Type u_1} {F : Type u_2} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] [AddCommGroup F] [Module ℝ F] [TopologicalSpace F] {f : E → F} {s : Set E} {E' : Type u_4} {F' : Type u_5} [AddCommGroup E'] [Module ℝ E'] [TopologicalSpace E'] [AddCommGroup F'] [Module ℝ F'] [TopologicalSpace F'] (hf : IsPLOn f s) (A : E →ᴬ[ℝ] E') (B : E' →ᴬ[ℝ] E) (C : F →ᴬ[ℝ] F') (hBA : ∀ x ∈ s, B (A x) = x) :
        IsPLOn (⇑C ∘ f ∘ ⇑B) (⇑A '' s)

        Continuous affine extension and restriction transport PL maps to the image of a set. Only the domain restriction must undo its extension; the codomain map may be arbitrary.

        theorem TauCeti.isPLOn_affine_transport_iff {E : Type u_1} {F : Type u_2} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] [AddCommGroup F] [Module ℝ F] [TopologicalSpace F] {f : E → F} {s : Set E} {E' : Type u_4} {F' : Type u_5} [AddCommGroup E'] [Module ℝ E'] [TopologicalSpace E'] [AddCommGroup F'] [Module ℝ F'] [TopologicalSpace F'] (A : E →ᴬ[ℝ] E') (B : E' →ᴬ[ℝ] E) (C : F →ᴬ[ℝ] F') (D : F' →ᴬ[ℝ] F) (hBA : ∀ x ∈ s, B (A x) = x) (hDC : ∀ x ∈ s, D (C (f x)) = f x) :
        IsPLOn (⇑C ∘ f ∘ ⇑B) (⇑A '' s) ↔ IsPLOn f s

        PL regularity is preserved and reflected by continuous affine extensions with left inverses on the set and its image under the map under consideration.

        theorem TauCeti.isPLOn_of_locallyFinite {E : Type u_1} {F : Type u_2} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] [AddCommGroup F] [Module ℝ F] [TopologicalSpace F] {f : E → F} {s : Set E} {ι : Type u_4} {C : ι → Set E} {A : ι → E →ᴬ[ℝ] F} (hlf : ∀ x ∈ s, ∃ U ∈ nhds x, {i : ι | (C i ∩ U).Nonempty}.Finite) (hC : ∀ (i : ι), IsConvexPolyhedron (C i)) (hcov : s ⊆ ⋃ (i : ι), C i) (heq : ∀ (i : ι), Set.EqOn f (⇑(A i)) (s ∩ C i)) :
        IsPLOn f s

        A polyhedral cover of s on whose cells f is affine and which is locally finite along s — every point of s has a neighbourhood meeting only finitely many cells — makes f piecewise linear on s. This is the bridge from a triangulation, which supplies exactly such a cover; the implication runs in this direction only, and no converse is proved here.

        Piecewise-linear maps of the line #

        The two-piece criterion on ℝ, its local converse, and the absolute value as a piecewise-linear map that is not affine. The criterion is what the concrete examples of the PL groupoid are built from; the converse, that a piecewise-linear map of the line has two affine pieces at each point, is the local picture of a piecewise-linear curve, which for an injective curve is two segments meeting only at the point; and the absolute value pins down that TauCeti.IsPLOn is strictly weaker than affineness rather than a roundabout way of saying it.

        theorem TauCeti.isPLOn_of_eqOn_Iic_of_eqOn_Ici {h : ℝ → ℝ} {A B : ℝ →ᴬ[ℝ] ℝ} (hA : Set.EqOn h (⇑A) (Set.Iic 0)) (hB : Set.EqOn h (⇑B) (Set.Ici 0)) (s : Set ℝ) :
        IsPLOn h s

        A map of ℝ that agrees with a continuous affine map on each of the two closed half-lines is piecewise linear.

        theorem TauCeti.IsPLOn.exists_eqOn_Icc {F : Type u_2} [AddCommGroup F] [Module ℝ F] [TopologicalSpace F] {g : ℝ → F} {s : Set ℝ} {t : ℝ} (hg : IsPLOn g s) (hs : s ∈ nhds t) :
        ∃ ε > 0, ∃ (A : ℝ →ᴬ[ℝ] F) (B : ℝ →ᴬ[ℝ] F), Set.EqOn g (⇑A) (Set.Icc (t - ε) t) ∧ Set.EqOn g (⇑B) (Set.Icc t (t + ε))

        A piecewise-linear map of the line is affine on each side of a point. If g is piecewise linear on a neighbourhood of t, then for some ε > 0 it agrees with a continuous affine map on [t - ε, t] and with another on [t, t + ε].

        theorem TauCeti.IsPLOn.exists_image_Icc_eq_affineSegment {F : Type u_2} [AddCommGroup F] [Module ℝ F] [TopologicalSpace F] {g : ℝ → F} {s D : Set ℝ} {t : ℝ} (hg : IsPLOn g s) (hs : s ∈ nhds t) (hD : D ∈ nhds t) (hinj : Set.InjOn g D) :
        ∃ ε > 0, Set.Icc (t - ε) (t + ε) ⊆ D ∧ g '' Set.Icc (t - ε) t = affineSegment ℝ (g t) (g (t - ε)) ∧ g '' Set.Icc t (t + ε) = affineSegment ℝ (g t) (g (t + ε)) ∧ g (t - ε) ≠ g t ∧ g (t + ε) ≠ g t ∧ affineSegment ℝ (g t) (g (t - ε)) ∩ affineSegment ℝ (g t) (g (t + ε)) = {g t}

        An injective piecewise-linear curve is two segments near each point. If g is piecewise linear and injective near t, then for some ε > 0 it maps [t - ε, t] and [t, t + ε] onto two nondegenerate segments from g t meeting only at g t.

        theorem TauCeti.not_exists_continuousAffineMap_eq {E : Type u_1} {F : Type u_2} [AddCommGroup E] [Module ℝ E] [TopologicalSpace E] [AddCommGroup F] [Module ℝ F] [TopologicalSpace F] {h : E → F} {x y : E} (hne : h (2⁻¹ • x + 2⁻¹ • y) ≠ 2⁻¹ • h x + 2⁻¹ • h y) :
        ¬∃ (A : E →ᴬ[ℝ] F), ∀ (z : E), h z = A z

        A map that fails to send a midpoint to the corresponding midpoint agrees with no continuous affine map. This is the certificate used below to show that a piecewise-linear map need not be affine.

        theorem TauCeti.isPLOn_abs (s : Set ℝ) :
        IsPLOn (fun (x : ℝ) => |x|) s

        The absolute value on ℝ is piecewise linear: the two half-lines are its cells.

        The absolute value on ℝ is not affine, so the piecewise-linear maps are strictly more than the affine ones.