Documentation

Mathlib.Analysis.Normed.Group.AddTorsor

Torsors of additive normed group actions. #

This file defines torsors of additive normed group actions, with a metric space structure. The motivating case is Euclidean affine spaces.

class NormedAddTorsor (V : outParam (Type u_1)) (P : Type u_2) [SeminormedAddCommGroup V] [PseudoMetricSpace P] extends AddTorsor V P :
Type (max u_1 u_2)

A NormedAddTorsor V P is a torsor of an additive seminormed group action by a SeminormedAddCommGroup V on points P. We bundle the pseudometric space structure and require the distance to be the same as results from the norm (which in fact implies the distance yields a pseudometric space, but bundling just the distance and using an instance for the pseudometric space results in type class problems).

Instances
    @[implicit_reducible, instance 100]

    Shortcut instance to help typeclass inference out.

    @[implicit_reducible]
    instance AffineSubspace.toNormedAddTorsor {V : Type u_2} {P : Type u_3} [SeminormedAddCommGroup V] [PseudoMetricSpace P] [NormedAddTorsor V P] {R : Type u_6} [Ring R] [Module R V] (s : AffineSubspace R P) [Nonempty ↄs] :
    NormedAddTorsor ↄs.direction ↄs

    A nonempty affine subspace of a NormedAddTorsor is itself a NormedAddTorsor.

    @[implicit_reducible]
    instance instNormedAddTorsorProd {V : Type u_2} {P : Type u_3} {W : Type u_4} {Q : Type u_5} [SeminormedAddCommGroup V] [PseudoMetricSpace P] [NormedAddTorsor V P] [NormedAddCommGroup W] [MetricSpace Q] [NormedAddTorsor W Q] :
    NormedAddTorsor (V Ɨ W) (P Ɨ Q)
    theorem dist_eq_norm_vsub (V : Type u_2) {P : Type u_3} [SeminormedAddCommGroup V] [PseudoMetricSpace P] [NormedAddTorsor V P] (x y : P) :

    The distance equals the norm of subtracting two points. In this lemma, it is necessary to have V as an explicit argument; otherwise rw dist_eq_norm_vsub sometimes doesn't work.

    theorem dist_eq_norm_vsub' (V : Type u_2) {P : Type u_3} [SeminormedAddCommGroup V] [PseudoMetricSpace P] [NormedAddTorsor V P] (x y : P) :

    The distance equals the norm of subtracting two points. In this lemma, it is necessary to have V as an explicit argument; otherwise rw dist_eq_norm_vsub' sometimes doesn't work.

    theorem dist_vadd_cancel_left {V : Type u_2} {P : Type u_3} [SeminormedAddCommGroup V] [PseudoMetricSpace P] [NormedAddTorsor V P] (v : V) (x y : P) :
    dist (v +ᵄ x) (v +ᵄ y) = dist x y
    @[simp]
    theorem dist_vadd_cancel_right {V : Type u_2} {P : Type u_3} [SeminormedAddCommGroup V] [PseudoMetricSpace P] [NormedAddTorsor V P] (v₁ vā‚‚ : V) (x : P) :
    dist (v₁ +ᵄ x) (vā‚‚ +ᵄ x) = dist v₁ vā‚‚
    @[simp]
    theorem nndist_vadd_cancel_right {V : Type u_2} {P : Type u_3} [SeminormedAddCommGroup V] [PseudoMetricSpace P] [NormedAddTorsor V P] (v₁ vā‚‚ : V) (x : P) :
    nndist (v₁ +ᵄ x) (vā‚‚ +ᵄ x) = nndist v₁ vā‚‚
    @[simp]
    theorem dist_vadd_left {V : Type u_2} {P : Type u_3} [SeminormedAddCommGroup V] [PseudoMetricSpace P] [NormedAddTorsor V P] (v : V) (x : P) :
    @[simp]
    theorem dist_vadd_right {V : Type u_2} {P : Type u_3} [SeminormedAddCommGroup V] [PseudoMetricSpace P] [NormedAddTorsor V P] (v : V) (x : P) :

    Isometry between the tangent space V of a (semi)normed add torsor P and P given by addition/subtraction of x : P.

    Instances For
      @[simp]
      theorem IsometryEquiv.vaddConst_apply {V : Type u_2} {P : Type u_3} [SeminormedAddCommGroup V] [PseudoMetricSpace P] [NormedAddTorsor V P] (x : P) (v : V) :
      (vaddConst x) v = v +ᵄ x
      @[simp]
      theorem dist_vsub_cancel_left {V : Type u_2} {P : Type u_3} [SeminormedAddCommGroup V] [PseudoMetricSpace P] [NormedAddTorsor V P] (x y z : P) :
      dist (x -ᵄ y) (x -ᵄ z) = dist y z
      @[simp]
      theorem nndist_vsub_cancel_left {V : Type u_2} {P : Type u_3} [SeminormedAddCommGroup V] [PseudoMetricSpace P] [NormedAddTorsor V P] (x y z : P) :
      nndist (x -ᵄ y) (x -ᵄ z) = nndist y z

      Isometry between the tangent space V of a (semi)normed add torsor P and P given by subtraction from x : P.

      Instances For
        @[simp]
        theorem IsometryEquiv.constVSub_apply {V : Type u_2} {P : Type u_3} [SeminormedAddCommGroup V] [PseudoMetricSpace P] [NormedAddTorsor V P] (x xāœ : P) :
        (constVSub x) xāœ = x -ᵄ xāœ
        @[simp]
        theorem IsometryEquiv.constVSub_symm_apply {V : Type u_2} {P : Type u_3} [SeminormedAddCommGroup V] [PseudoMetricSpace P] [NormedAddTorsor V P] (x : P) (xāœ : V) :
        (constVSub x).symm xāœ = -xāœ +ᵄ x
        @[simp]
        theorem dist_vsub_cancel_right {V : Type u_2} {P : Type u_3} [SeminormedAddCommGroup V] [PseudoMetricSpace P] [NormedAddTorsor V P] (x y z : P) :
        dist (x -ᵄ z) (y -ᵄ z) = dist x y
        @[simp]
        theorem nndist_vsub_cancel_right {V : Type u_2} {P : Type u_3} [SeminormedAddCommGroup V] [PseudoMetricSpace P] [NormedAddTorsor V P] (x y z : P) :
        nndist (x -ᵄ z) (y -ᵄ z) = nndist x y
        theorem dist_vadd_vadd_le {V : Type u_2} {P : Type u_3} [SeminormedAddCommGroup V] [PseudoMetricSpace P] [NormedAddTorsor V P] (v v' : V) (p p' : P) :
        dist (v +ᵄ p) (v' +ᵄ p') ≤ dist v v' + dist p p'
        theorem nndist_vadd_vadd_le {V : Type u_2} {P : Type u_3} [SeminormedAddCommGroup V] [PseudoMetricSpace P] [NormedAddTorsor V P] (v v' : V) (p p' : P) :
        nndist (v +ᵄ p) (v' +ᵄ p') ≤ nndist v v' + nndist p p'
        theorem dist_vsub_vsub_le {V : Type u_2} {P : Type u_3} [SeminormedAddCommGroup V] [PseudoMetricSpace P] [NormedAddTorsor V P] (p₁ pā‚‚ pā‚ƒ pā‚„ : P) :
        dist (p₁ -ᵄ pā‚‚) (pā‚ƒ -ᵄ pā‚„) ≤ dist p₁ pā‚ƒ + dist pā‚‚ pā‚„
        theorem nndist_vsub_vsub_le {V : Type u_2} {P : Type u_3} [SeminormedAddCommGroup V] [PseudoMetricSpace P] [NormedAddTorsor V P] (p₁ pā‚‚ pā‚ƒ pā‚„ : P) :
        nndist (p₁ -ᵄ pā‚‚) (pā‚ƒ -ᵄ pā‚„) ≤ nndist p₁ pā‚ƒ + nndist pā‚‚ pā‚„
        theorem edist_vadd_vadd_le {V : Type u_2} {P : Type u_3} [SeminormedAddCommGroup V] [PseudoMetricSpace P] [NormedAddTorsor V P] (v v' : V) (p p' : P) :
        edist (v +ᵄ p) (v' +ᵄ p') ≤ edist v v' + edist p p'
        theorem edist_vsub_vsub_le {V : Type u_2} {P : Type u_3} [SeminormedAddCommGroup V] [PseudoMetricSpace P] [NormedAddTorsor V P] (p₁ pā‚‚ pā‚ƒ pā‚„ : P) :
        edist (p₁ -ᵄ pā‚‚) (pā‚ƒ -ᵄ pā‚„) ≤ edist p₁ pā‚ƒ + edist pā‚‚ pā‚„
        @[implicit_reducible]

        The pseudodistance defines a pseudometric space structure on the torsor. This is not an instance because it depends on V to define a MetricSpace P.

        Instances For
          @[implicit_reducible]

          The distance defines a metric space structure on the torsor. This is not an instance because it depends on V to define a MetricSpace P.

          Instances For
            theorem LipschitzWith.vadd {α : Type u_1} {V : Type u_2} {P : Type u_3} [SeminormedAddCommGroup V] [PseudoMetricSpace P] [NormedAddTorsor V P] [PseudoEMetricSpace α] {f : α → V} {g : α → P} {Kf Kg : NNReal} (hf : LipschitzWith Kf f) (hg : LipschitzWith Kg g) :
            LipschitzWith (Kf + Kg) (f +ᵄ g)
            theorem LipschitzWith.vsub {α : Type u_1} {V : Type u_2} {P : Type u_3} [SeminormedAddCommGroup V] [PseudoMetricSpace P] [NormedAddTorsor V P] [PseudoEMetricSpace α] {f g : α → P} {Kf Kg : NNReal} (hf : LipschitzWith Kf f) (hg : LipschitzWith Kg g) :
            LipschitzWith (Kf + Kg) (f -ᵄ g)
            @[reducible, inline]
            abbrev Function.Injective.normedAddTorsor {V : Type u_2} {P : Type u_3} [SeminormedAddCommGroup V] [PseudoMetricSpace P] [NormedAddTorsor V P] {Q : Type u_6} [VAdd V Q] [VSub V Q] [Nonempty Q] [PseudoMetricSpace Q] (f : Q → P) (hf : Injective f) (vadd : āˆ€ (c : V) (x : Q), f (c +ᵄ x) = c +ᵄ f x) (vsub : āˆ€ (x y : Q), x -ᵄ y = f x -ᵄ f y) (norm : āˆ€ (x y : Q), dist x y = dist (f x) (f y)) :

            Pullback of a normed add torsor along an injective map.

            Instances For
              @[reducible, inline]
              abbrev Function.Surjective.normedAddTorsor {V : Type u_2} {P : Type u_3} [SeminormedAddCommGroup V] [PseudoMetricSpace P] [NormedAddTorsor V P] {Q : Type u_6} [VAdd V Q] [VSub V Q] [PseudoMetricSpace Q] (f : P → Q) (hf : Surjective f) (vadd : āˆ€ (c : V) (x : P), f (c +ᵄ x) = c +ᵄ f x) (vsub : āˆ€ (x y : P), x -ᵄ y = f x -ᵄ f y) (norm : āˆ€ (x y : P), dist x y = dist (f x) (f y)) :

              Pushforward of a normed add torsor along a surjective map.

              Instances For