Documentation

Mathlib.Topology.EMetricSpace.BoundedVariation

Functions of bounded variation #

We study functions of bounded variation. In particular, we show that a bounded variation function is a difference of monotone functions, and differentiable almost everywhere. This implies that Lipschitz functions from the real line into finite-dimensional vector space are also differentiable almost everywhere.

Main definitions and results #

We also give several variations around these results.

Implementation #

We define the variation as an extended nonnegative real, to allow for infinite variation. This makes it possible to use the complete linear order structure of ℝ≥0∞. The proofs would be much more tedious with an -valued or ℝ≥0-valued variation, since one would always need to check that the sets one uses are nonempty and bounded above as these are only conditionally complete.

noncomputable def eVariationOn {α : Type u_1} [LinearOrder α] {E : Type u_2} [PseudoEMetricSpace E] (f : αE) (s : Set α) :

The (extended-real-valued) variation of a function f on a set s inside a linear order is the supremum of the sum of edist (f (u (i+1))) (f (u i)) over all finite increasing sequences u in s.

Equations
Instances For
    def BoundedVariationOn {α : Type u_1} [LinearOrder α] {E : Type u_2} [PseudoEMetricSpace E] (f : αE) (s : Set α) :

    A function has bounded variation on a set s if its total variation there is finite.

    Equations
    Instances For
      def LocallyBoundedVariationOn {α : Type u_1} [LinearOrder α] {E : Type u_2} [PseudoEMetricSpace E] (f : αE) (s : Set α) :

      A function has locally bounded variation on a set s if, given any interval [a, b] with endpoints in s, then the function has finite variation on s ∩ [a, b].

      Equations
      Instances For

        Basic computations of variation #

        theorem eVariationOn.nonempty_monotone_mem {α : Type u_1} [LinearOrder α] {s : Set α} (hs : s.Nonempty) :
        Nonempty { u : α // Monotone u ∀ (i : ), u i s }
        theorem eVariationOn.eq_of_edist_zero_on {α : Type u_1} [LinearOrder α] {E : Type u_2} [PseudoEMetricSpace E] {f f' : αE} {s : Set α} (h : ∀ ⦃x : α⦄, x sedist (f x) (f' x) = 0) :
        theorem eVariationOn.eq_of_eqOn {α : Type u_1} [LinearOrder α] {E : Type u_2} [PseudoEMetricSpace E] {f f' : αE} {s : Set α} (h : Set.EqOn f f' s) :
        theorem eVariationOn.sum_le {α : Type u_1} [LinearOrder α] {E : Type u_2} [PseudoEMetricSpace E] {f : αE} {s : Set α} {n : } {u : α} (hu : Monotone u) (us : ∀ (i : ), u i s) :
        iFinset.range n, edist (f (u (i + 1))) (f (u i)) eVariationOn f s
        theorem eVariationOn.sum_le_of_monotoneOn_Icc {α : Type u_1} [LinearOrder α] {E : Type u_2} [PseudoEMetricSpace E] {f : αE} {s : Set α} {m n : } {u : α} (hu : MonotoneOn u (Set.Icc m n)) (us : iSet.Icc m n, u i s) :
        iFinset.Ico m n, edist (f (u (i + 1))) (f (u i)) eVariationOn f s
        theorem eVariationOn.sum_le_of_monotoneOn_Iic {α : Type u_1} [LinearOrder α] {E : Type u_2} [PseudoEMetricSpace E] {f : αE} {s : Set α} {n : } {u : α} (hu : MonotoneOn u (Set.Iic n)) (us : in, u i s) :
        iFinset.range n, edist (f (u (i + 1))) (f (u i)) eVariationOn f s
        theorem eVariationOn.eVariationOn_eq_strictMonoOn {α : Type u_1} [LinearOrder α] {E : Type u_2} [PseudoEMetricSpace E] (f : αE) (s : Set α) :
        eVariationOn f s = ⨆ (p : (n : ) × { u : α // StrictMonoOn u (Set.Iic n) iSet.Iic n, u i s }), iFinset.range p.fst, edist (f (p.snd (i + 1))) (f (p.snd i))

        The variation can be expressed using strictly monotone functions. This formulation is often less convenient than the one with monotone functions as it involves dependent types, but it is sometimes handy.

        theorem eVariationOn.mono {α : Type u_1} [LinearOrder α] {E : Type u_2} [PseudoEMetricSpace E] (f : αE) {s t : Set α} (hst : t s) :
        theorem BoundedVariationOn.mono {α : Type u_1} [LinearOrder α] {E : Type u_2} [PseudoEMetricSpace E] {f : αE} {s : Set α} (h : BoundedVariationOn f s) {t : Set α} (ht : t s) :
        theorem eVariationOn.congr {α : Type u_1} [LinearOrder α] {E : Type u_2} [PseudoEMetricSpace E] {f g : αE} {s : Set α} (h : Set.EqOn f g s) :
        theorem eVariationOn.edist_le {α : Type u_1} [LinearOrder α] {E : Type u_2} [PseudoEMetricSpace E] (f : αE) {s : Set α} {x y : α} (hx : x s) (hy : y s) :
        edist (f x) (f y) eVariationOn f s
        theorem eVariationOn.eq_zero_iff {α : Type u_1} [LinearOrder α] {E : Type u_2} [PseudoEMetricSpace E] (f : αE) {s : Set α} :
        eVariationOn f s = 0 xs, ys, edist (f x) (f y) = 0
        theorem eVariationOn.constant_on {α : Type u_1} [LinearOrder α] {E : Type u_2} [PseudoEMetricSpace E] {f : αE} {s : Set α} (hf : (f '' s).Subsingleton) :
        @[simp]
        theorem eVariationOn.subsingleton {α : Type u_1} [LinearOrder α] {E : Type u_2} [PseudoEMetricSpace E] (f : αE) {s : Set α} (hs : s.Subsingleton) :
        theorem eVariationOn.lowerSemicontinuous_aux {α : Type u_1} [LinearOrder α] {E : Type u_2} [PseudoEMetricSpace E] {ι : Type u_3} {F : ιαE} {p : Filter ι} {f : αE} {s : Set α} (Ffs : xs, Filter.Tendsto (fun (i : ι) => F i x) p (nhds (f x))) {v : ENNReal} (hv : v < eVariationOn f s) :
        ∀ᶠ (n : ι) in p, v < eVariationOn (F n) s
        theorem eVariationOn.lowerSemicontinuous {α : Type u_1} [LinearOrder α] {E : Type u_2} [PseudoEMetricSpace E] (s : Set α) :

        The map (eVariationOn · s) is lower semicontinuous for pointwise convergence on s. Pointwise convergence on s is encoded here as uniform convergence on the family consisting of the singletons of elements of s.

        The map (eVariationOn · s) is lower semicontinuous for uniform convergence on s.

        theorem BoundedVariationOn.dist_le {α : Type u_1} [LinearOrder α] {E : Type u_3} [PseudoMetricSpace E] {f : αE} {s : Set α} (h : BoundedVariationOn f s) {x y : α} (hx : x s) (hy : y s) :
        dist (f x) (f y) (eVariationOn f s).toReal
        theorem BoundedVariationOn.sub_le {α : Type u_1} [LinearOrder α] {f : α} {s : Set α} (h : BoundedVariationOn f s) {x y : α} (hx : x s) (hy : y s) :
        f x - f y (eVariationOn f s).toReal
        theorem eVariationOn.add_point {α : Type u_1} [LinearOrder α] {E : Type u_2} [PseudoEMetricSpace E] (f : αE) {s : Set α} {x : α} (hx : x s) (u : α) (hu : Monotone u) (us : ∀ (i : ), u i s) (n : ) :
        ∃ (v : α) (m : ), Monotone v (∀ (i : ), v i s) x v '' Set.Iio m iFinset.range n, edist (f (u (i + 1))) (f (u i)) jFinset.range m, edist (f (v (j + 1))) (f (v j))

        Consider a monotone function u parameterizing some points of a set s. Given x ∈ s, then one can find another monotone function v parameterizing the same points as u, with x added. In particular, the variation of a function along u is bounded by its variation along v.

        theorem eVariationOn.add_le_union {α : Type u_1} [LinearOrder α] {E : Type u_2} [PseudoEMetricSpace E] (f : αE) {s t : Set α} (h : xs, yt, x y) :

        The variation of a function on the union of two sets s and t, with s to the left of t, bounds the sum of the variations along s and t.

        theorem eVariationOn.union {α : Type u_1} [LinearOrder α] {E : Type u_2} [PseudoEMetricSpace E] (f : αE) {s t : Set α} {x : α} (hs : IsGreatest s x) (ht : IsLeast t x) :

        If a set s is to the left of a set t, and both contain the boundary point x, then the variation of f along s ∪ t is the sum of the variations.

        theorem eVariationOn.Icc_add_Icc {α : Type u_1} [LinearOrder α] {E : Type u_2} [PseudoEMetricSpace E] (f : αE) {s : Set α} {a b c : α} (hab : a b) (hbc : b c) (hb : b s) :
        theorem eVariationOn.sum {α : Type u_1} [LinearOrder α] {E : Type u_2} [PseudoEMetricSpace E] (f : αE) {s : Set α} {E✝ : α} (hE : Monotone E✝) {n : } (hn : ∀ (i : ), 0 < ii < nE✝ i s) :
        iFinset.range n, eVariationOn f (s Set.Icc (E✝ i) (E✝ (i + 1))) = eVariationOn f (s Set.Icc (E✝ 0) (E✝ n))
        theorem eVariationOn.sum' {α : Type u_1} [LinearOrder α] {E : Type u_2} [PseudoEMetricSpace E] (f : αE) {I : α} (hI : Monotone I) {n : } :
        iFinset.range n, eVariationOn f (Set.Icc (I i) (I (i + 1))) = eVariationOn f (Set.Icc (I 0) (I n))

        Composition of bounded variation functions with monotone functions #

        theorem eVariationOn.comp_le_of_monotoneOn {α : Type u_1} [LinearOrder α] {E : Type u_2} [PseudoEMetricSpace E] {β : Type u_3} [LinearOrder β] (f : αE) {s : Set α} {t : Set β} (φ : βα) ( : MonotoneOn φ t) (φst : Set.MapsTo φ t s) :
        theorem eVariationOn.comp_le_of_antitoneOn {α : Type u_1} [LinearOrder α] {E : Type u_2} [PseudoEMetricSpace E] {β : Type u_3} [LinearOrder β] (f : αE) {s : Set α} {t : Set β} (φ : βα) ( : AntitoneOn φ t) (φst : Set.MapsTo φ t s) :
        theorem eVariationOn.comp_eq_of_monotoneOn {α : Type u_1} [LinearOrder α] {E : Type u_2} [PseudoEMetricSpace E] {β : Type u_3} [LinearOrder β] (f : αE) {t : Set β} (φ : βα) ( : MonotoneOn φ t) :
        eVariationOn (f φ) t = eVariationOn f (φ '' t)
        theorem eVariationOn.comp_inter_Icc_eq_of_monotoneOn {α : Type u_1} [LinearOrder α] {E : Type u_2} [PseudoEMetricSpace E] {β : Type u_3} [LinearOrder β] (f : αE) {t : Set β} (φ : βα) ( : MonotoneOn φ t) {x y : β} (hx : x t) (hy : y t) :
        eVariationOn (f φ) (t Set.Icc x y) = eVariationOn f (φ '' t Set.Icc (φ x) (φ y))
        theorem eVariationOn.comp_eq_of_antitoneOn {α : Type u_1} [LinearOrder α] {E : Type u_2} [PseudoEMetricSpace E] {β : Type u_3} [LinearOrder β] (f : αE) {t : Set β} (φ : βα) ( : AntitoneOn φ t) :
        eVariationOn (f φ) t = eVariationOn f (φ '' t)
        @[simp]
        theorem eVariationOn.comp_ofDual {α : Type u_1} [LinearOrder α] {E : Type u_2} [PseudoEMetricSpace E] (f : αE) (s : Set α) :
        theorem BoundedVariationOn.ofDual {α : Type u_1} [LinearOrder α] {E : Type u_2} [PseudoEMetricSpace E] {f : αE} {s : Set α} (hf : BoundedVariationOn f s) :

        Left and right limits of bounded variation functions #

        If a function is continuous on the left at a point a, then its variations on Iio a and on Iic a coincide. We give a version relative to a set s.

        If a function is continuous on the right at a point a, then its variations on Ioi a and on Ici a coincide. We give a version relative to a set s.

        theorem eVariationOn.exists_lt_eVariationOn_inter_Icc {α : Type u_1} [LinearOrder α] {E : Type u_2} [PseudoEMetricSpace E] {f : αE} {ε : ENNReal} {s : Set α} (h : ε < eVariationOn f s) :
        as, bs, a < b ε < eVariationOn f (s Set.Icc a b)
        theorem BoundedVariationOn.tendsto_eVariationOn_Ici_zero_of_filter {α : Type u_1} [LinearOrder α] {E : Type u_2} [PseudoEMetricSpace E] {f : αE} {s : Set α} (hf : BoundedVariationOn f s) (L : Filter α) (hL : ys, s Set.Ici y L) :
        Filter.Tendsto (fun (y : α) => eVariationOn f (s Set.Ici y)) L (nhds 0)

        If a function has bounded variation, then the variation on closed semi-infinite intervals tends to 0. We give a version with a generic filter, that applies both to left-neighborhoods of points and to atTop.

        theorem BoundedVariationOn.exists_tendsto_left_of_filter {α : Type u_1} [LinearOrder α] {E : Type u_2} [PseudoEMetricSpace E] [CompleteSpace E] {f : αE} {s : Set α} (hf : BoundedVariationOn f s) (L : Filter α) (hL : ys, s Set.Ici y L) (hs : s.Nonempty) :
        ∃ (l : E), Filter.Tendsto f L (nhds l)

        A bounded variation function has a limit on its left within a set. Version with a general filter, covering both left neighborhoods of points and atTop.

        theorem BoundedVariationOn.tendsto_eVariationOn_Ico_zero {α : Type u_1} [LinearOrder α] {E : Type u_2} [PseudoEMetricSpace E] [TopologicalSpace α] [OrderTopology α] {f : αE} {s : Set α} (hf : BoundedVariationOn f s) (x : α) :
        Filter.Tendsto (fun (y : α) => eVariationOn f (s Set.Ico y x)) (nhdsWithin x s) (nhds 0)

        If a function has bounded variation, then the variation on small closed-open intervals to the left of any point tends to 0.

        theorem BoundedVariationOn.tendsto_eVariationOn_Ioc_zero {α : Type u_1} [LinearOrder α] {E : Type u_2} [PseudoEMetricSpace E] [TopologicalSpace α] [OrderTopology α] {f : αE} {s : Set α} (hf : BoundedVariationOn f s) (x : α) :
        Filter.Tendsto (fun (y : α) => eVariationOn f (s Set.Ioc x y)) (nhdsWithin x s) (nhds 0)

        If a function has bounded variation, then the variation on small open-closed intervals to the right of any point tends to 0.

        theorem BoundedVariationOn.tendsto_eVariationOn_Icc_zero_left {α : Type u_1} [LinearOrder α] {E : Type u_2} [PseudoEMetricSpace E] [TopologicalSpace α] [OrderTopology α] {f : αE} {s : Set α} (hf : BoundedVariationOn f s) {x : α} (h : ContinuousWithinAt f (s Set.Iic x) x) :
        Filter.Tendsto (fun (y : α) => eVariationOn f (s Set.Icc y x)) (nhdsWithin x s) (nhds 0)

        If a function has bounded variation and is left-continuous at a point, then the variation on small closed intervals to the left of this point tends to 0.

        theorem BoundedVariationOn.tendsto_eVariationOn_Icc_zero_right {α : Type u_1} [LinearOrder α] {E : Type u_2} [PseudoEMetricSpace E] [TopologicalSpace α] [OrderTopology α] {f : αE} {s : Set α} (hf : BoundedVariationOn f s) (x : α) (h : ContinuousWithinAt f (s Set.Ici x) x) :
        Filter.Tendsto (fun (y : α) => eVariationOn f (s Set.Icc x y)) (nhdsWithin x s) (nhds 0)

        If a function has bounded variation and is right-continuous at a point, then the variation on small closed intervals to the right of this point tends to 0.

        theorem BoundedVariationOn.exists_tendsto_left {α : Type u_1} [LinearOrder α] {E : Type u_2} [PseudoEMetricSpace E] [CompleteSpace E] [TopologicalSpace α] [OrderTopology α] {f : αE} {s : Set α} (hf : BoundedVariationOn f s) (x : α) :
        ∃ (l : E), Filter.Tendsto f (nhdsWithin x (s Set.Iio x)) (nhds l)

        A bounded variation function has a limit on its left within a set.

        theorem BoundedVariationOn.exists_tendsto_right {α : Type u_1} [LinearOrder α] {E : Type u_2} [PseudoEMetricSpace E] [CompleteSpace E] [TopologicalSpace α] [OrderTopology α] {f : αE} {s : Set α} (hf : BoundedVariationOn f s) (x : α) :
        ∃ (l : E), Filter.Tendsto f (nhdsWithin x (s Set.Ioi x)) (nhds l)

        A bounded variation function has a limit on its right within a set.

        A bounded variation function tends to its left-limit on its left.

        A bounded variation function tends to its right-limit on its right.

        Limits of bounded variation functions as ± ∞ #

        theorem BoundedVariationOn.tendsto_eVariationOn_Ici_zero {α : Type u_1} [LinearOrder α] {E : Type u_2} [PseudoEMetricSpace E] {f : αE} {s : Set α} (hf : BoundedVariationOn f s) :

        If a function has bounded variation, then the variation on closed semi-infinite intervals tends to 0 at +∞.

        theorem BoundedVariationOn.tendsto_eVariationOn_Iic_zero {α : Type u_1} [LinearOrder α] {E : Type u_2} [PseudoEMetricSpace E] {f : αE} {s : Set α} (hf : BoundedVariationOn f s) :

        If a function has bounded variation, then the variation on semi-infinite closed intervals tends to 0 at -∞.

        theorem BoundedVariationOn.exists_tendsto_atTop {α : Type u_1} [LinearOrder α] {E : Type u_2} [PseudoEMetricSpace E] [CompleteSpace E] [hE : Nonempty E] {f : αE} {s : Set α} (hf : BoundedVariationOn f s) :

        A bounded variation function has a limit at +∞.

        theorem BoundedVariationOn.exists_tendsto_atBot {α : Type u_1} [LinearOrder α] {E : Type u_2} [PseudoEMetricSpace E] [CompleteSpace E] [hE : Nonempty E] {f : αE} {s : Set α} (hf : BoundedVariationOn f s) :

        A bounded variation function has a limit at -∞.

        Variation of monotone functions #

        theorem MonotoneOn.eVariationOn_le {α : Type u_1} [LinearOrder α] {f : α} {s : Set α} (hf : MonotoneOn f s) {a b : α} (as : a s) (bs : b s) :
        theorem MonotoneOn.locallyBoundedVariationOn {α : Type u_1} [LinearOrder α] {f : α} {s : Set α} (hf : MonotoneOn f s) :
        noncomputable def variationOnFromTo {α : Type u_1} [LinearOrder α] {E : Type u_2} [PseudoEMetricSpace E] (f : αE) (s : Set α) (a b : α) :

        The signed variation of f on the interval Icc a b intersected with the set s, squashed to a real (therefore only really meaningful if the variation is finite)

        Equations
        Instances For
          theorem variationOnFromTo.self {α : Type u_1} [LinearOrder α] {E : Type u_2} [PseudoEMetricSpace E] (f : αE) (s : Set α) (a : α) :
          theorem variationOnFromTo.nonneg_of_le {α : Type u_1} [LinearOrder α] {E : Type u_2} [PseudoEMetricSpace E] (f : αE) (s : Set α) {a b : α} (h : a b) :
          theorem variationOnFromTo.eq_neg_swap {α : Type u_1} [LinearOrder α] {E : Type u_2} [PseudoEMetricSpace E] (f : αE) (s : Set α) (a b : α) :
          theorem variationOnFromTo.nonpos_of_ge {α : Type u_1} [LinearOrder α] {E : Type u_2} [PseudoEMetricSpace E] (f : αE) (s : Set α) {a b : α} (h : b a) :
          theorem variationOnFromTo.abs_le_eVariationOn {α : Type u_1} [LinearOrder α] {E : Type u_2} [PseudoEMetricSpace E] {f : αE} {s : Set α} (hf : BoundedVariationOn f s) {a b : α} :
          theorem variationOnFromTo.eq_of_le {α : Type u_1} [LinearOrder α] {E : Type u_2} [PseudoEMetricSpace E] (f : αE) (s : Set α) {a b : α} (h : a b) :
          theorem variationOnFromTo.eq_of_ge {α : Type u_1} [LinearOrder α] {E : Type u_2} [PseudoEMetricSpace E] (f : αE) (s : Set α) {a b : α} (h : b a) :
          theorem variationOnFromTo.add {α : Type u_1} [LinearOrder α] {E : Type u_2} [PseudoEMetricSpace E] {f : αE} {s : Set α} (hf : LocallyBoundedVariationOn f s) {a b c : α} (ha : a s) (hb : b s) (hc : c s) :
          theorem variationOnFromTo.edist_zero_of_eq_zero {α : Type u_1} [LinearOrder α] {E : Type u_2} [PseudoEMetricSpace E] {f : αE} {s : Set α} (hf : LocallyBoundedVariationOn f s) {a b : α} (ha : a s) (hb : b s) (h : variationOnFromTo f s a b = 0) :
          edist (f a) (f b) = 0
          theorem variationOnFromTo.eq_left_iff {α : Type u_1} [LinearOrder α] {E : Type u_2} [PseudoEMetricSpace E] {f : αE} {s : Set α} (hf : LocallyBoundedVariationOn f s) {a b c : α} (ha : a s) (hb : b s) (hc : c s) :
          theorem variationOnFromTo.eq_zero_iff_of_le {α : Type u_1} [LinearOrder α] {E : Type u_2} [PseudoEMetricSpace E] {f : αE} {s : Set α} (hf : LocallyBoundedVariationOn f s) {a b : α} (ha : a s) (hb : b s) (ab : a b) :
          variationOnFromTo f s a b = 0 ∀ ⦃x : α⦄, x s Set.Icc a b∀ ⦃y : α⦄, y s Set.Icc a bedist (f x) (f y) = 0
          theorem variationOnFromTo.eq_zero_iff_of_ge {α : Type u_1} [LinearOrder α] {E : Type u_2} [PseudoEMetricSpace E] {f : αE} {s : Set α} (hf : LocallyBoundedVariationOn f s) {a b : α} (ha : a s) (hb : b s) (ba : b a) :
          variationOnFromTo f s a b = 0 ∀ ⦃x : α⦄, x s Set.Icc b a∀ ⦃y : α⦄, y s Set.Icc b aedist (f x) (f y) = 0
          theorem variationOnFromTo.eq_zero_iff {α : Type u_1} [LinearOrder α] {E : Type u_2} [PseudoEMetricSpace E] {f : αE} {s : Set α} (hf : LocallyBoundedVariationOn f s) {a b : α} (ha : a s) (hb : b s) :
          variationOnFromTo f s a b = 0 ∀ ⦃x : α⦄, x s Set.uIcc a b∀ ⦃y : α⦄, y s Set.uIcc a bedist (f x) (f y) = 0
          theorem variationOnFromTo.monotoneOn {α : Type u_1} [LinearOrder α] {E : Type u_2} [PseudoEMetricSpace E] {f : αE} {s : Set α} (hf : LocallyBoundedVariationOn f s) {a : α} (as : a s) :
          theorem variationOnFromTo.antitoneOn {α : Type u_1} [LinearOrder α] {E : Type u_2} [PseudoEMetricSpace E] {f : αE} {s : Set α} (hf : LocallyBoundedVariationOn f s) {b : α} (bs : b s) :
          AntitoneOn (fun (a : α) => variationOnFromTo f s a b) s
          theorem variationOnFromTo.sub_self_monotoneOn {α : Type u_1} [LinearOrder α] {f : α} {s : Set α} (hf : LocallyBoundedVariationOn f s) {a : α} (as : a s) :
          theorem variationOnFromTo.comp_eq_of_monotoneOn {α : Type u_1} [LinearOrder α] {E : Type u_2} [PseudoEMetricSpace E] {β : Type u_3} [LinearOrder β] (f : αE) {t : Set β} (φ : βα) ( : MonotoneOn φ t) {x y : β} (hx : x t) (hy : y t) :
          variationOnFromTo (f φ) t x y = variationOnFromTo f (φ '' t) (φ x) (φ y)
          theorem LocallyBoundedVariationOn.exists_monotoneOn_sub_monotoneOn {α : Type u_1} [LinearOrder α] {f : α} {s : Set α} (h : LocallyBoundedVariationOn f s) :
          ∃ (p : α) (q : α), MonotoneOn p s MonotoneOn q s f = p - q

          If a real-valued function has bounded variation on a set, then it is a difference of monotone functions there.

          Lipschitz functions and bounded variation #

          theorem LipschitzOnWith.comp_eVariationOn_le {α : Type u_1} [LinearOrder α] {E : Type u_2} [PseudoEMetricSpace E] {F : Type u_3} [PseudoEMetricSpace F] {f : EF} {C : NNReal} {t : Set E} (h : LipschitzOnWith C f t) {g : αE} {s : Set α} (hg : Set.MapsTo g s t) :
          eVariationOn (f g) s C * eVariationOn g s
          theorem LipschitzOnWith.comp_boundedVariationOn {α : Type u_1} [LinearOrder α] {E : Type u_2} [PseudoEMetricSpace E] {F : Type u_3} [PseudoEMetricSpace F] {f : EF} {C : NNReal} {t : Set E} (hf : LipschitzOnWith C f t) {g : αE} {s : Set α} (hg : Set.MapsTo g s t) (h : BoundedVariationOn g s) :
          theorem LipschitzOnWith.comp_locallyBoundedVariationOn {α : Type u_1} [LinearOrder α] {E : Type u_2} [PseudoEMetricSpace E] {F : Type u_3} [PseudoEMetricSpace F] {f : EF} {C : NNReal} {t : Set E} (hf : LipschitzOnWith C f t) {g : αE} {s : Set α} (hg : Set.MapsTo g s t) (h : LocallyBoundedVariationOn g s) :
          theorem LipschitzWith.comp_boundedVariationOn {α : Type u_1} [LinearOrder α] {E : Type u_2} [PseudoEMetricSpace E] {F : Type u_3} [PseudoEMetricSpace F] {f : EF} {C : NNReal} (hf : LipschitzWith C f) {g : αE} {s : Set α} (h : BoundedVariationOn g s) :
          theorem LipschitzWith.comp_locallyBoundedVariationOn {α : Type u_1} [LinearOrder α] {E : Type u_2} [PseudoEMetricSpace E] {F : Type u_3} [PseudoEMetricSpace F] {f : EF} {C : NNReal} (hf : LipschitzWith C f) {g : αE} {s : Set α} (h : LocallyBoundedVariationOn g s) :