Documentation

Mathlib.Topology.UnitInterval

The unit interval, as a topological space #

Use open unitInterval to turn on the notation I := Set.Icc (0 : ℝ) (1 : ℝ).

We provide basic instances, as well as a custom tactic for discharging 0 ≤ ↑x, 0 ≤ 1 - ↑x, ↑x ≤ 1, and 1 - ↑x ≤ 1 when x : I.

The unit interval #

@[reducible, inline]

The unit interval [0,1] in ℝ.

Instances For
    def unitInterval.termI :
    Lean.ParserDescr

    The unit interval [0,1] in ℝ.

    Instances For
      theorem unitInterval.mul_mem {x y : } (hx : x unitInterval) (hy : y unitInterval) :
      x * y unitInterval
      theorem unitInterval.div_mem {x y : } (hx : 0 x) (hy : 0 y) (hxy : x y) :
      x / y unitInterval
      theorem unitInterval.coe_ne_zero {x : unitInterval} :
      x 0 x 0
      theorem unitInterval.coe_ne_one {x : unitInterval} :
      x 1 x 1
      @[simp]
      theorem unitInterval.coe_pos {x : unitInterval} :
      0 < x 0 < x
      @[simp]
      theorem unitInterval.coe_lt_one {x : unitInterval} :
      x < 1 x < 1

      Unit interval central symmetry.

      Instances For
        def unitInterval.termσ :
        Lean.ParserDescr

        Unit interval central symmetry.

        Instances For
          @[simp]
          theorem unitInterval.coe_symm_eq (x : unitInterval) :
          (symm x) = 1 - x
          theorem unitInterval.image_coe_preimage_symm {s : Set unitInterval} :
          Subtype.val '' (symm ⁻¹' s) = (fun (x : ) => 1 - x) ⁻¹' (Subtype.val '' s)
          @[simp]
          theorem unitInterval.symm_projIcc (x : ) :
          symm (Set.projIcc 0 1 x) = Set.projIcc 0 1 (1 - x)
          @[simp]
          theorem unitInterval.symm_inj {i j : unitInterval} :
          symm i = symm j i = j
          theorem unitInterval.half_le_symm_iff (t : unitInterval) :
          1 / 2 (symm t) t 1 / 2
          @[simp]
          theorem unitInterval.symm_eq_one {i : unitInterval} :
          symm i = 1 i = 0
          @[simp]
          theorem unitInterval.symm_eq_zero {i : unitInterval} :
          symm i = 0 i = 1
          @[simp]
          theorem unitInterval.symm_le_symm {i j : unitInterval} :
          symm i symm j j i
          @[simp]
          theorem unitInterval.symm_lt_symm {i j : unitInterval} :
          symm i < symm j j < i
          theorem unitInterval.add_pos {t : unitInterval} {x : } (hx : 0 < x) :
          0 < x + t
          theorem unitInterval.nonneg' {t : unitInterval} :
          0 t

          like unitInterval.nonneg, but with the inequality in I.

          theorem unitInterval.le_one' {t : unitInterval} :
          t 1

          like unitInterval.le_one, but with the inequality in I.

          theorem unitInterval.eq_one_or_eq_zero_of_le_mul {i j : unitInterval} (h : i j * i) :
          i = 0 j = 1
          theorem unitInterval.mul_pos_mem_iff {a t : } (ha : 0 < a) :
          a * t unitInterval t Set.Icc 0 (1 / a)
          theorem unitInterval.two_mul_sub_one_mem_iff {t : } :
          2 * t - 1 unitInterval t Set.Icc (1 / 2) 1

          The unit interval as a submonoid of ℝ.

          Instances For
            theorem unitInterval.prod_mem {ι : Type u_1} {t : Finset ι} {f : ι} (h : ct, f c unitInterval) :
            ct, f c unitInterval
            theorem Set.abs_projIcc_sub_projIcc {α : Type u_1} [AddCommGroup α] [LinearOrder α] [IsOrderedAddMonoid α] {a b c d : α} (h : a b) :
            |(projIcc a b h c) - (projIcc a b h d)| |c - d|

            Set.projIcc is a contraction.

            def Set.Icc.addNSMul {α : Type u_1} [AddCommGroup α] [LinearOrder α] {a b : α} (h : a b) (δ : α) (n : ) :
            (Icc a b)

            When h : a ≤ b and δ > 0, addNSMul h δ is a sequence of points in the closed interval [a,b], which is initially equally spaced but eventually stays at the right endpoint b.

            Instances For
              theorem Set.Icc.addNSMul_zero {α : Type u_1} [AddCommGroup α] [LinearOrder α] {a b : α} (h : a b) {δ : α} :
              (addNSMul h δ 0) = a
              theorem Set.Icc.addNSMul_eq_right {α : Type u_1} [AddCommGroup α] [LinearOrder α] [IsOrderedAddMonoid α] {a b : α} (h : a b) {δ : α} [Archimedean α] ( : 0 < δ) :
              ∃ (m : ), nm, (addNSMul h δ n) = b
              theorem Set.Icc.monotone_addNSMul {α : Type u_1} [AddCommGroup α] [LinearOrder α] [IsOrderedAddMonoid α] {a b : α} (h : a b) {δ : α} ( : 0 δ) :
              theorem Set.Icc.abs_sub_addNSMul_le {α : Type u_1} [AddCommGroup α] [LinearOrder α] [IsOrderedAddMonoid α] {a b : α} (h : a b) {δ : α} ( : 0 δ) {t : (Icc a b)} (n : ) (ht : t Icc (addNSMul h δ n) (addNSMul h δ (n + 1))) :
              |t - (addNSMul h δ n)| δ
              def Set.Icc.convexCombo {a b : } (x y : (Icc a b)) (t : unitInterval) :
              (Icc a b)

              Form a convex linear combination of two points in a closed interval.

              This should be removed once a general theory of convex spaces is available in Mathlib.

              Instances For
                @[simp]
                theorem Set.Icc.coe_convexCombo {a b : } (x y : (Icc a b)) (t : unitInterval) :
                (convexCombo x y t) = (1 - t) * x + t * y
                @[simp]
                theorem Set.Icc.convexCombo_zero {a b : } (x y : (Icc a b)) :
                convexCombo x y 0 = x
                @[simp]
                theorem Set.Icc.convexCombo_one {a b : } (x y : (Icc a b)) :
                convexCombo x y 1 = y
                @[simp]
                theorem Set.Icc.convexCombo_eq {a b : } (x : (Icc a b)) (t : unitInterval) :
                convexCombo x x t = x
                @[simp]
                theorem Set.Icc.convexCombo_symm {a b : } (x y : (Icc a b)) (t : unitInterval) :
                theorem Set.Icc.le_convexCombo {a b : } {x y : (Icc a b)} (h : x y) (t : unitInterval) :
                theorem Set.Icc.convexCombo_le {a b : } {x y : (Icc a b)} (h : x y) (t : unitInterval) :
                theorem Set.Icc.continuous_convexCombo_prod {a b : } :
                Continuous fun (x : (Icc a b) × (Icc a b) × unitInterval) => convexCombo x.1 x.2.1 x.2.2
                @[reducible, inline]

                Helper definition for convexCombo_assoc, giving one of the coefficients appearing when we reassociate a convex combination.

                Instances For
                  @[reducible, inline]

                  Helper definition for convexCombo_assoc, giving one of the coefficients appearing when we reassociate a convex combination.

                  Instances For
                    @[reducible, inline]

                    Helper definition for convexCombo_assoc', giving one of the coefficients appearing when we reassociate a convex combination in the reverse direction.

                    Instances For
                      @[reducible, inline]

                      Helper definition for convexCombo_assoc', giving one of the coefficients appearing when we reassociate a convex combination in the reverse direction.

                      Instances For
                        theorem Set.Icc.eq_convexCombo {a b : } {x y z : (Icc a b)} (hxy : x y) (hyz : y z) :
                        y = convexCombo x z (y - x) / (z - x),

                        A point between two points in a closed interval can be expressed as a convex combination of them.

                        theorem exists_monotone_Icc_subset_open_cover_Icc {ι : Sort u_1} {a b : } (h : a b) {c : ιSet (Set.Icc a b)} (hc₁ : ∀ (i : ι), IsOpen (c i)) (hc₂ : Set.univ ⋃ (i : ι), c i) :
                        ∃ (t : (Set.Icc a b)), (t 0) = a Monotone t (∃ (m : ), nm, (t n) = b) ∀ (n : ), ∃ (i : ι), Set.Icc (t n) (t (n + 1)) c i

                        Any open cover c of a closed interval [a, b] in ℝ can be refined to a finite partition into subintervals.

                        theorem exists_monotone_Icc_subset_open_cover_unitInterval {ι : Sort u_1} {c : ιSet unitInterval} (hc₁ : ∀ (i : ι), IsOpen (c i)) (hc₂ : Set.univ ⋃ (i : ι), c i) :
                        ∃ (t : unitInterval), t 0 = 0 Monotone t (∃ (n : ), mn, t m = 1) ∀ (n : ), ∃ (i : ι), Set.Icc (t n) (t (n + 1)) c i

                        Any open cover of the unit interval can be refined to a finite partition into subintervals.

                        theorem exists_monotone_Icc_subset_open_cover_unitInterval_prod_self {ι : Sort u_1} {c : ιSet (unitInterval × unitInterval)} (hc₁ : ∀ (i : ι), IsOpen (c i)) (hc₂ : Set.univ ⋃ (i : ι), c i) :
                        ∃ (t : unitInterval), t 0 = 0 Monotone t (∃ (n : ), mn, t m = 1) ∀ (n m : ), ∃ (i : ι), Set.Icc (t n) (t (n + 1)) ×ˢ Set.Icc (t m) (t (m + 1)) c i
                        @[simp]
                        theorem projIcc_eq_zero {x : } :
                        Set.projIcc 0 1 x = 0 x 0
                        @[simp]
                        theorem projIcc_eq_one {x : } :
                        Set.projIcc 0 1 x = 1 1 x

                        A tactic that solves 0 ≤ ↑x, 0 ≤ 1 - ↑x, ↑x ≤ 1, and 1 - ↑x ≤ 1 for x : I.

                        Instances For
                          theorem affineHomeomorph_image_I {𝕜 : Type u_1} [Field 𝕜] [LinearOrder 𝕜] [IsStrictOrderedRing 𝕜] [TopologicalSpace 𝕜] [IsTopologicalRing 𝕜] (a b : 𝕜) (h : 0 < a) :
                          (affineHomeomorph a b ) '' Set.Icc 0 1 = Set.Icc b (a + b)

                          The image of [0,1] under the homeomorphism fun x ↦ a * x + b is [b, a+b].

                          def iccHomeoI {𝕜 : Type u_1} [Field 𝕜] [LinearOrder 𝕜] [IsStrictOrderedRing 𝕜] [TopologicalSpace 𝕜] [IsTopologicalRing 𝕜] (a b : 𝕜) (h : a < b) :
                          (Set.Icc a b) ≃ₜ (Set.Icc 0 1)

                          The affine homeomorphism from a nontrivial interval [a,b] to [0,1].

                          Instances For
                            @[simp]
                            theorem iccHomeoI_apply_coe {𝕜 : Type u_1} [Field 𝕜] [LinearOrder 𝕜] [IsStrictOrderedRing 𝕜] [TopologicalSpace 𝕜] [IsTopologicalRing 𝕜] (a b : 𝕜) (h : a < b) (x : (Set.Icc a b)) :
                            ((iccHomeoI a b h) x) = (x - a) / (b - a)
                            @[simp]
                            theorem iccHomeoI_symm_apply_coe {𝕜 : Type u_1} [Field 𝕜] [LinearOrder 𝕜] [IsStrictOrderedRing 𝕜] [TopologicalSpace 𝕜] [IsTopologicalRing 𝕜] (a b : 𝕜) (h : a < b) (x : (Set.Icc 0 1)) :
                            ((iccHomeoI a b h).symm x) = (b - a) * x + a

                            The coercion from I to ℝ≥0.

                            Instances For
                              @[simp]
                              theorem unitInterval.coe_toNNReal (x : unitInterval) :
                              (toNNReal x) = x