Documentation

Mathlib.Topology.MetricSpace.DilationEquiv

Dilation equivalence #

In this file we define DilationEquiv X Y, a type of bundled equivalences between X and Y such that edist (f x) (f y) = r * edist x y for some r : ℝ≥0, r ≠ 0.

We also develop basic API about these equivalences.

TODO #

class DilationEquivClass (F : Type u_1) (X : outParam (Type u_2)) (Y : outParam (Type u_3)) [PseudoEMetricSpace X] [PseudoEMetricSpace Y] [EquivLike F X Y] :

Typeclass saying that F is a type of bundled equivalences such that all e : F are dilations.

  • edist_eq' (f : F) : ∃ (r : NNReal), r 0 ∀ (x y : X), edist (f x) (f y) = r * edist x y
Instances
    @[instance 100]
    instance instDilationClassOfDilationEquivClass (F : Type u_1) (X : outParam (Type u_2)) (Y : outParam (Type u_3)) [PseudoEMetricSpace X] [PseudoEMetricSpace Y] [EquivLike F X Y] [DilationEquivClass F X Y] :
    structure DilationEquiv (X : Type u_1) (Y : Type u_2) [PseudoEMetricSpace X] [PseudoEMetricSpace Y] extends X Y, X →ᵈ Y :
    Type (max u_1 u_2)

    Type of equivalences X ≃ Y such that ∀ x y, edist (f x) (f y) = r * edist x y for some r : ℝ≥0, r ≠ 0.

    Instances For
      def «term_≃ᵈ_» :
      Lean.TrailingParserDescr

      Type of equivalences X ≃ Y such that ∀ x y, edist (f x) (f y) = r * edist x y for some r : ℝ≥0, r ≠ 0.

      Instances For
        @[implicit_reducible]
        @[simp]
        theorem DilationEquiv.coe_toEquiv {X : Type u_1} {Y : Type u_2} [PseudoEMetricSpace X] [PseudoEMetricSpace Y] (e : X ≃ᵈ Y) :
        e.toEquiv = e
        theorem DilationEquiv.ext {X : Type u_1} {Y : Type u_2} [PseudoEMetricSpace X] [PseudoEMetricSpace Y] {e e' : X ≃ᵈ Y} (h : ∀ (x : X), e x = e' x) :
        e = e'
        theorem DilationEquiv.ext_iff {X : Type u_1} {Y : Type u_2} [PseudoEMetricSpace X] [PseudoEMetricSpace Y] {e e' : X ≃ᵈ Y} :
        e = e' ∀ (x : X), e x = e' x
        def DilationEquiv.symm {X : Type u_1} {Y : Type u_2} [PseudoEMetricSpace X] [PseudoEMetricSpace Y] (e : X ≃ᵈ Y) :
        Y ≃ᵈ X

        Inverse DilationEquiv.

        Instances For
          @[simp]
          theorem DilationEquiv.symm_symm {X : Type u_1} {Y : Type u_2} [PseudoEMetricSpace X] [PseudoEMetricSpace Y] (e : X ≃ᵈ Y) :
          e.symm.symm = e
          @[simp]
          theorem DilationEquiv.apply_symm_apply {X : Type u_1} {Y : Type u_2} [PseudoEMetricSpace X] [PseudoEMetricSpace Y] (e : X ≃ᵈ Y) (x : Y) :
          e (e.symm x) = x
          @[simp]
          theorem DilationEquiv.symm_apply_apply {X : Type u_1} {Y : Type u_2} [PseudoEMetricSpace X] [PseudoEMetricSpace Y] (e : X ≃ᵈ Y) (x : X) :
          e.symm (e x) = x
          def DilationEquiv.Simps.symm_apply {X : Type u_1} {Y : Type u_2} [PseudoEMetricSpace X] [PseudoEMetricSpace Y] (e : X ≃ᵈ Y) :
          YX

          See Note [custom simps projection].

          Instances For

            Identity map as a DilationEquiv.

            Instances For
              @[simp]
              theorem DilationEquiv.refl_apply (X : Type u_4) [PseudoEMetricSpace X] :
              (refl X) = id
              def DilationEquiv.trans {X : Type u_1} {Y : Type u_2} {Z : Type u_3} [PseudoEMetricSpace X] [PseudoEMetricSpace Y] [PseudoEMetricSpace Z] (e₁ : X ≃ᵈ Y) (e₂ : Y ≃ᵈ Z) :
              X ≃ᵈ Z

              Composition of DilationEquivs.

              Instances For
                @[simp]
                theorem DilationEquiv.trans_apply {X : Type u_1} {Y : Type u_2} {Z : Type u_3} [PseudoEMetricSpace X] [PseudoEMetricSpace Y] [PseudoEMetricSpace Z] (e₁ : X ≃ᵈ Y) (e₂ : Y ≃ᵈ Z) :
                (e₁.trans e₂) = e₂ e₁
                @[simp]
                theorem DilationEquiv.refl_trans {X : Type u_1} {Y : Type u_2} [PseudoEMetricSpace X] [PseudoEMetricSpace Y] (e : X ≃ᵈ Y) :
                (refl X).trans e = e
                @[simp]
                theorem DilationEquiv.trans_refl {X : Type u_1} {Y : Type u_2} [PseudoEMetricSpace X] [PseudoEMetricSpace Y] (e : X ≃ᵈ Y) :
                e.trans (refl Y) = e
                theorem DilationEquiv.surjective {X : Type u_1} {Y : Type u_2} [PseudoEMetricSpace X] [PseudoEMetricSpace Y] (e : X ≃ᵈ Y) :
                Function.Surjective e
                theorem DilationEquiv.injective {X : Type u_1} {Y : Type u_2} [PseudoEMetricSpace X] [PseudoEMetricSpace Y] (e : X ≃ᵈ Y) :
                Function.Injective e
                @[implicit_reducible]
                theorem DilationEquiv.mul_def {X : Type u_1} [PseudoEMetricSpace X] (e e' : X ≃ᵈ X) :
                e * e' = e'.trans e
                @[simp]
                theorem DilationEquiv.coe_mul {X : Type u_1} [PseudoEMetricSpace X] (e e' : X ≃ᵈ X) :
                (e * e') = e e'
                @[simp]
                theorem DilationEquiv.coe_one {X : Type u_1} [PseudoEMetricSpace X] :
                1 = id
                noncomputable def DilationEquiv.ratioHom {X : Type u_1} [PseudoEMetricSpace X] :

                Dilation.ratio as a monoid homomorphism.

                Instances For
                  @[simp]
                  theorem DilationEquiv.ratio_pow {X : Type u_1} [PseudoEMetricSpace X] (e : X ≃ᵈ X) (n : ) :
                  @[simp]
                  theorem DilationEquiv.ratio_zpow {X : Type u_1} [PseudoEMetricSpace X] (e : X ≃ᵈ X) (n : ) :

                  DilationEquiv.toEquiv as a monoid homomorphism.

                  Instances For
                    theorem DilationEquiv.coe_pow {X : Type u_1} [PseudoEMetricSpace X] (e : X ≃ᵈ X) (n : ) :
                    (e ^ n) = (⇑e)^[n]

                    Every isometry equivalence is a dilation equivalence of ratio 1.

                    Instances For
                      @[simp]
                      theorem IsometryEquiv.toDilationEquiv_apply {X : Type u_1} {Y : Type u_2} [PseudoEMetricSpace X] [PseudoEMetricSpace Y] (e : X ≃ᵢ Y) (x : X) :
                      e.toDilationEquiv x = e x

                      Reinterpret a DilationEquiv as a homeomorphism.

                      Instances For
                        @[simp]
                        theorem DilationEquiv.coe_toHomeomorph {X : Type u_1} {Y : Type u_2} [PseudoEMetricSpace X] [PseudoEMetricSpace Y] (e : X ≃ᵈ Y) :
                        e.toHomeomorph = e