Documentation

Mathlib.Analysis.Real.Hyperreal

Construction of the hyperreal numbers as an ultraproduct of real sequences #

We define the Hyperreal numbers as quotients of sequences ℕ → ℝ by an ultrafilter. These form a field, and we prove some of their basic properties.

Note that most of the machinery that is usually defined for the specific purpose of non-standard analysis (infinitesimal and infinite elements, standard parts) has been generalized to other non-archimedean fields. In particular:

Todo #

Use Łoś's Theorem FirstOrder.Language.Ultraproduct.sentence_realize to formalize the transfer principle on Hyperreal.

Hyperreal numbers on the ultrafilter extending the cofinite filter.

Equations
Instances For

    Hyperreal numbers on the ultrafilter extending the cofinite filter.

    Equations
    Instances For
      @[implicit_reducible]
      noncomputable instance Hyperreal.instField :
      Equations
      noncomputable def Hyperreal.ofReal :
      ℝ*

      Natural embedding ℝ → ℝ*.

      Equations
      Instances For
        @[implicit_reducible]
        noncomputable instance Hyperreal.instCoeTCReal :
        Equations
        @[simp]
        theorem Hyperreal.coe_eq_coe {x y : } :
        x = y x = y
        theorem Hyperreal.coe_ne_coe {x y : } :
        x y x y
        @[simp]
        theorem Hyperreal.coe_eq_zero {x : } :
        x = 0 x = 0
        @[simp]
        theorem Hyperreal.coe_eq_one {x : } :
        x = 1 x = 1
        theorem Hyperreal.coe_ne_zero {x : } :
        x 0 x 0
        theorem Hyperreal.coe_ne_one {x : } :
        x 1 x 1
        @[simp]
        theorem Hyperreal.coe_one :
        1 = 1
        @[simp]
        theorem Hyperreal.coe_zero :
        0 = 0
        @[simp]
        theorem Hyperreal.coe_inv (x : ) :
        x⁻¹ = (↑x)⁻¹
        @[simp]
        theorem Hyperreal.coe_neg (x : ) :
        ↑(-x) = -x
        @[simp]
        theorem Hyperreal.coe_add (x y : ) :
        ↑(x + y) = x + y
        @[simp]
        @[simp]
        theorem Hyperreal.coe_mul (x y : ) :
        ↑(x * y) = x * y
        @[simp]
        theorem Hyperreal.coe_div (x y : ) :
        ↑(x / y) = x / y
        @[simp]
        theorem Hyperreal.coe_sub (x y : ) :
        ↑(x - y) = x - y
        @[simp]
        theorem Hyperreal.coe_le_coe {x y : } :
        x y x y
        @[simp]
        theorem Hyperreal.coe_lt_coe {x y : } :
        x < y x < y
        @[simp]
        theorem Hyperreal.coe_nonneg {x : } :
        0 x 0 x
        @[simp]
        theorem Hyperreal.coe_pos {x : } :
        0 < x 0 < x
        @[simp]
        theorem Hyperreal.coe_abs (x : ) :
        |x| = |x|
        @[simp]
        theorem Hyperreal.coe_max (x y : ) :
        (max x y) = max x y
        @[simp]
        theorem Hyperreal.coe_min (x y : ) :
        (min x y) = min x y
        noncomputable def Hyperreal.coeRingHom :

        The canonical map ℝ → ℝ* as an OrderRingHom.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          @[simp]
          @[simp]

          Basic constants #

          noncomputable def Hyperreal.ofSeq (f : ) :

          Construct a hyperreal number from a sequence of real numbers.

          Equations
          Instances For
            theorem Hyperreal.ofSeq_lt_ofSeq {f g : } :
            ofSeq f < ofSeq g ∀ᶠ (n : ) in (Filter.hyperfilter ), f n < g n

            ω #

            noncomputable def Hyperreal.omega :

            A sample infinite hyperreal ω = ⟦(0, 1, 2, 3, ⋯)⟧.

            Conventions for notations in identifiers:

            • The recommended spelling of ω in identifiers is omega.
            Equations
            Instances For

              A sample infinite hyperreal ω = ⟦(0, 1, 2, 3, ⋯)⟧.

              Conventions for notations in identifiers:

              • The recommended spelling of ω in identifiers is omega.
              Equations
              Instances For

                ε #

                noncomputable def Hyperreal.epsilon :

                A sample infinitesimal hyperreal ε = ⟦(0, 1, 1/2, 1/3, ⋯)⟧.

                Conventions for notations in identifiers:

                • The recommended spelling of ε in identifiers is epsilon.
                Equations
                Instances For

                  A sample infinitesimal hyperreal ε = ⟦(0, 1, 1/2, 1/3, ⋯)⟧.

                  Conventions for notations in identifiers:

                  • The recommended spelling of ε in identifiers is epsilon.
                  Equations
                  Instances For

                    Some facts about Tendsto #

                    theorem Hyperreal.stdPart_map {x : ℝ*} {r : } {f : } (hf : ContinuousAt f r) (hxr : Filter.Germ.Tendsto x (nhds r)) :
                    theorem Hyperreal.stdPart_map₂ {x y : ℝ*} {r s : } {f : } (hxr : Filter.Germ.Tendsto x (nhds r)) (hys : Filter.Germ.Tendsto y (nhds s)) (hf : ContinuousAt (Function.uncurry f) (r, s)) :
                    (Filter.Germ.map₂ f x y).Tendsto (nhds (f r s))
                    theorem Hyperreal.tendsto_iff_forall {x : ℝ*} {r : } :
                    Filter.Germ.Tendsto x (nhds r) (∀ s < r, s x) s > r, x s
                    theorem Hyperreal.epsilon_lt_of_pos {r : } :
                    0 < repsilon < r
                    theorem Hyperreal.epsilon_lt_of_neg {r : } :
                    r < 0r < epsilon
                    @[deprecated Hyperreal.epsilon_lt_of_pos (since := "2026-01-05")]
                    theorem Hyperreal.epsilon_lt_pos {r : } :
                    0 < repsilon < r

                    Alias of Hyperreal.epsilon_lt_of_pos.

                    @[deprecated Hyperreal.archimedeanClassMk_pos_of_tendsto (since := "2026-01-05")]
                    theorem Hyperreal.lt_of_tendsto_zero_of_pos {f : } (hf : Filter.Tendsto f Filter.atTop (nhds 0)) {r : } :
                    0 < rofSeq f < r
                    @[deprecated Hyperreal.archimedeanClassMk_pos_of_tendsto (since := "2026-01-05")]
                    theorem Hyperreal.neg_lt_of_tendsto_zero_of_pos {f : } (hf : Filter.Tendsto f Filter.atTop (nhds 0)) {r : } :
                    0 < r-r < ofSeq f
                    @[deprecated Hyperreal.archimedeanClassMk_pos_of_tendsto (since := "2026-01-05")]
                    theorem Hyperreal.gt_of_tendsto_zero_of_neg {f : } (hf : Filter.Tendsto f Filter.atTop (nhds 0)) {r : } :
                    r < 0r < ofSeq f
                    @[deprecated ArchimedeanClass.stdPart (since := "2026-01-05")]
                    def Hyperreal.IsSt (x : ℝ*) (r : ) :

                    Standard part predicate. Do not use. This is equivalent to the conjunction of 0 ≤ ArchimedeanClass.mk x and ArchimedeanClass.stdPart x = r.

                    Equations
                    Instances For
                      @[deprecated "`IsSt` is deprecated" (since := "2026-01-05")]
                      @[deprecated ArchimedeanClass.stdPart (since := "2026-01-05")]
                      noncomputable def Hyperreal.st :
                      ℝ*

                      Standard part function: like a "round" to ℝ instead of ℤ

                      Equations
                      Instances For
                        @[deprecated "`st` is deprecated" (since := "2026-01-05")]
                        @[deprecated ArchimedeanClass.mk (since := "2026-01-05")]

                        A hyperreal number is infinitesimal if its standard part is 0. Do not use. Write 0 < ArchimedeanClass.mk x instead.

                        Equations
                        Instances For
                          @[deprecated "`Infinitesimal` is deprecated" (since := "2026-01-05")]
                          @[deprecated ArchimedeanClass.mk (since := "2026-01-05")]

                          A hyperreal number is positive infinite if it is larger than all real numbers. Do not use. Write 0 < x ∧ ArchimedeanClass.mk x < 0 instead.

                          Equations
                          Instances For
                            @[deprecated "`InfinitePos` is deprecated" (since := "2026-01-05")]
                            @[deprecated ArchimedeanClass.mk (since := "2026-01-05")]

                            A hyperreal number is negative infinite if it is smaller than all real numbers. Do not use. Write x < 0 ∧ ArchimedeanClass.mk x < 0 instead.

                            Equations
                            Instances For
                              @[deprecated "`InfiniteNeg` is deprecated" (since := "2026-01-05")]
                              @[deprecated ArchimedeanClass.mk (since := "2026-01-05")]

                              A hyperreal number is infinite if it is infinite positive or infinite negative. Do not use. Write ArchimedeanClass.mk x < 0 instead.

                              Equations
                              Instances For
                                @[deprecated "`Infinite` is deprecated" (since := "2026-01-05")]
                                @[deprecated Hyperreal.tendsto_iff_forall (since := "2026-01-05")]
                                @[deprecated Hyperreal.tendsto_iff_forall (since := "2026-01-05")]
                                @[deprecated Hyperreal.stdPart_of_tendsto (since := "2026-01-05")]
                                theorem Hyperreal.isSt_of_tendsto {f : } {r : } (hf : Filter.Tendsto f Filter.atTop (nhds r)) :
                                (ofSeq f).IsSt r
                                @[deprecated "Use `stdPart_monotoneOn` and `MonotoneOn.reflect_lt`" (since := "2026-01-05")]
                                theorem Hyperreal.IsSt.lt {x y : ℝ*} {r s : } (hxr : x.IsSt r) (hys : y.IsSt s) (hrs : r < s) :
                                x < y
                                @[deprecated "`IsSt` is deprecated" (since := "2026-01-05")]
                                theorem Hyperreal.IsSt.unique {x : ℝ*} {r s : } (hr : x.IsSt r) (hs : x.IsSt s) :
                                r = s
                                @[deprecated "`IsSt` is deprecated" (since := "2026-01-05")]
                                theorem Hyperreal.IsSt.st_eq {x : ℝ*} {r : } (hxr : x.IsSt r) :
                                x.st = r
                                @[deprecated "`IsSt` is deprecated" (since := "2026-01-05")]
                                theorem Hyperreal.IsSt.not_infinite {x : ℝ*} {r : } (h : x.IsSt r) :
                                @[deprecated "`IsSt` is deprecated" (since := "2026-01-05")]
                                theorem Hyperreal.not_infinite_of_exists_st {x : ℝ*} :
                                (∃ (r : ), x.IsSt r)¬x.Infinite
                                @[deprecated ArchimedeanClass.stdPart_eq_zero (since := "2026-01-05")]
                                theorem Hyperreal.Infinite.st_eq {x : ℝ*} (hi : x.Infinite) :
                                x.st = 0
                                @[deprecated ArchimedeanClass.stdPart_eq_sSup (since := "2026-01-05")]
                                theorem Hyperreal.isSt_sSup {x : ℝ*} (hni : ¬x.Infinite) :
                                x.IsSt (sSup {y : | y < x})
                                @[deprecated ArchimedeanClass.stdPart_eq_sSup (since := "2026-01-05")]
                                theorem Hyperreal.exists_st_of_not_infinite {x : ℝ*} (hni : ¬x.Infinite) :
                                ∃ (r : ), x.IsSt r
                                @[deprecated ArchimedeanClass.stdPart_eq_sSup (since := "2026-01-05")]
                                theorem Hyperreal.st_eq_sSup {x : ℝ*} :
                                x.st = sSup {y : | y < x}
                                @[deprecated "`IsSt` is deprecated" (since := "2026-01-05")]
                                @[deprecated "`IsSt` is deprecated" (since := "2026-01-05")]
                                @[deprecated "`IsSt` is deprecated" (since := "2026-01-05")]
                                theorem Hyperreal.IsSt.isSt_st {x : ℝ*} {r : } (hxr : x.IsSt r) :
                                x.IsSt x.st
                                @[deprecated "`IsSt` is deprecated" (since := "2026-01-05")]
                                theorem Hyperreal.isSt_st_of_exists_st {x : ℝ*} (hx : ∃ (r : ), x.IsSt r) :
                                x.IsSt x.st
                                @[deprecated "`IsSt` is deprecated" (since := "2026-01-05")]
                                theorem Hyperreal.isSt_st' {x : ℝ*} (hx : ¬x.Infinite) :
                                x.IsSt x.st
                                @[deprecated "`IsSt` is deprecated" (since := "2026-01-05")]
                                theorem Hyperreal.isSt_st {x : ℝ*} (hx : x.st 0) :
                                x.IsSt x.st
                                @[deprecated "`IsSt` is deprecated" (since := "2026-01-05")]
                                theorem Hyperreal.isSt_refl_real (r : ) :
                                (↑r).IsSt r
                                @[deprecated Hyperreal.stdPart_coe (since := "2026-01-05")]
                                theorem Hyperreal.st_id_real (r : ) :
                                (↑r).st = r
                                @[deprecated "`IsSt` is deprecated" (since := "2026-01-05")]
                                theorem Hyperreal.eq_of_isSt_real {r s : } :
                                (↑r).IsSt sr = s
                                @[deprecated "`IsSt` is deprecated" (since := "2026-01-05")]
                                theorem Hyperreal.isSt_real_iff_eq {r s : } :
                                (↑r).IsSt s r = s
                                @[deprecated "`IsSt` is deprecated" (since := "2026-01-05")]
                                theorem Hyperreal.isSt_symm_real {r s : } :
                                (↑r).IsSt s (↑s).IsSt r
                                @[deprecated "`IsSt` is deprecated" (since := "2026-01-05")]
                                theorem Hyperreal.isSt_trans_real {r s t : } :
                                (↑r).IsSt s(↑s).IsSt t(↑r).IsSt t
                                @[deprecated "`IsSt` is deprecated" (since := "2026-01-05")]
                                theorem Hyperreal.isSt_inj_real {r₁ r₂ s : } (h1 : (↑r₁).IsSt s) (h2 : (↑r₂).IsSt s) :
                                r₁ = r₂
                                @[deprecated "`IsSt` is deprecated" (since := "2026-01-05")]
                                theorem Hyperreal.isSt_iff_abs_sub_lt_delta {x : ℝ*} {r : } :
                                x.IsSt r ∀ (δ : ), 0 < δ|x - r| < δ
                                @[deprecated Hyperreal.stdPart_map (since := "2026-01-05")]
                                theorem Hyperreal.IsSt.map {x : ℝ*} {r : } (hxr : x.IsSt r) {f : } (hf : ContinuousAt f r) :
                                IsSt (Filter.Germ.map f x) (f r)
                                @[deprecated Hyperreal.stdPart_map₂ (since := "2026-01-05")]
                                theorem Hyperreal.IsSt.map₂ {x y : ℝ*} {r s : } (hxr : x.IsSt r) (hys : y.IsSt s) {f : } (hf : ContinuousAt (Function.uncurry f) (r, s)) :
                                IsSt (Filter.Germ.map₂ f x y) (f r s)
                                @[deprecated ArchimedeanClass.stdPart_add (since := "2026-01-05")]
                                theorem Hyperreal.IsSt.add {x y : ℝ*} {r s : } (hxr : x.IsSt r) (hys : y.IsSt s) :
                                (x + y).IsSt (r + s)
                                @[deprecated ArchimedeanClass.stdPart_neg (since := "2026-01-05")]
                                theorem Hyperreal.IsSt.neg {x : ℝ*} {r : } (hxr : x.IsSt r) :
                                (-x).IsSt (-r)
                                @[deprecated ArchimedeanClass.stdPart_sub (since := "2026-01-05")]
                                theorem Hyperreal.IsSt.sub {x y : ℝ*} {r s : } (hxr : x.IsSt r) (hys : y.IsSt s) :
                                (x - y).IsSt (r - s)
                                @[deprecated ArchimedeanClass.stdPart_monotoneOn (since := "2026-01-05")]
                                theorem Hyperreal.IsSt.le {x y : ℝ*} {r s : } (hrx : x.IsSt r) (hsy : y.IsSt s) (hxy : x y) :
                                r s
                                @[deprecated ArchimedeanClass.stdPart_monotoneOn (since := "2026-01-05")]
                                theorem Hyperreal.st_le_of_le {x y : ℝ*} (hix : ¬x.Infinite) (hiy : ¬y.Infinite) :
                                x yx.st y.st
                                @[deprecated ArchimedeanClass.stdPart_monotoneOn (since := "2026-01-05")]
                                theorem Hyperreal.lt_of_st_lt {x y : ℝ*} (hix : ¬x.Infinite) (hiy : ¬y.Infinite) :
                                x.st < y.stx < y
                                @[deprecated "`InfinitePos` is deprecated" (since := "2026-01-05")]
                                theorem Hyperreal.infinitePos_def {x : ℝ*} :
                                x.InfinitePos ∀ (r : ), r < x
                                @[deprecated "`InfiniteNeg` is deprecated" (since := "2026-01-05")]
                                theorem Hyperreal.infiniteNeg_def {x : ℝ*} :
                                x.InfiniteNeg ∀ (r : ), x < r
                                @[deprecated "`InfinitePos` is deprecated" (since := "2026-01-05")]
                                theorem Hyperreal.InfinitePos.pos {x : ℝ*} (hip : x.InfinitePos) :
                                0 < x
                                @[deprecated "`InfiniteNeg` is deprecated" (since := "2026-01-05")]
                                @[deprecated "`Infinite` is deprecated" (since := "2026-01-05")]
                                theorem Hyperreal.Infinite.ne_zero {x : ℝ*} (hI : x.Infinite) :
                                x 0
                                @[deprecated "`Infinite` is deprecated" (since := "2026-01-05")]
                                @[deprecated "`InfinitePos` and `InfiniteNeg` are deprecated" (since := "2026-01-05")]
                                @[deprecated "`InfinitePos` and `InfiniteNeg` are deprecated" (since := "2026-01-05")]
                                @[deprecated "`InfinitePos` and `InfiniteNeg` are deprecated" (since := "2026-01-05")]
                                @[deprecated "`InfinitePos` and `InfiniteNeg` are deprecated" (since := "2026-01-05")]
                                @[deprecated "`InfinitePos` and `InfiniteNeg` are deprecated" (since := "2026-01-05")]
                                @[deprecated "`InfinitePos` and `InfiniteNeg` are deprecated" (since := "2026-01-05")]
                                @[deprecated "`Infinite` is deprecated" (since := "2026-01-05")]
                                @[deprecated "`Infinite` is deprecated" (since := "2026-01-05")]
                                @[deprecated "`Infinite` is deprecated" (since := "2026-01-05")]
                                @[deprecated "`Infinitesimal` is deprecated" (since := "2026-01-05")]
                                @[deprecated "`Infinitesimal` is deprecated" (since := "2026-01-05")]
                                @[deprecated "`Infinite` is deprecated" (since := "2026-01-05")]
                                @[deprecated "`Infinite` is deprecated" (since := "2026-01-05")]
                                @[deprecated "`Infinite` is deprecated" (since := "2026-01-05")]
                                @[deprecated "`Infinite` is deprecated" (since := "2026-01-05")]
                                @[deprecated "`Infinite` is deprecated" (since := "2026-01-05")]
                                @[deprecated "`Infinite` is deprecated" (since := "2026-01-05")]
                                @[deprecated "`Infinite` is deprecated" (since := "2026-01-05")]
                                @[deprecated "`Infinite` is deprecated" (since := "2026-01-05")]
                                @[deprecated "`Infinite` is deprecated" (since := "2026-01-05")]
                                theorem Hyperreal.infinite_iff_abs_lt_abs {x : ℝ*} :
                                x.Infinite ∀ (r : ), |r| < |x|
                                @[deprecated "`InfinitePos` and `InfiniteNeg` are deprecated" (since := "2026-01-05")]
                                @[deprecated "`InfinitePos` and `InfiniteNeg` are deprecated" (since := "2026-01-05")]
                                @[deprecated "`InfinitePos` and `InfiniteNeg` are deprecated" (since := "2026-01-05")]
                                @[deprecated "`InfinitePos` and `InfiniteNeg` are deprecated" (since := "2026-01-05")]
                                @[deprecated "`InfinitePos` and `InfiniteNeg` are deprecated" (since := "2026-01-05")]
                                @[deprecated "`InfinitePos` and `InfiniteNeg` are deprecated" (since := "2026-01-05")]
                                @[deprecated "`Infinite` is deprecated" (since := "2026-01-05")]
                                @[deprecated "`Infinite` is deprecated" (since := "2026-01-05")]
                                @[deprecated "`InfinitePos` is deprecated" (since := "2026-01-05")]
                                @[deprecated "`InfiniteNeg` is deprecated" (since := "2026-01-05")]
                                @[deprecated "`Infinite` is deprecated" (since := "2026-01-05")]
                                @[deprecated "`Infinite` is deprecated" (since := "2026-01-05")]
                                theorem Hyperreal.not_infinite_add {x y : ℝ*} (hx : ¬x.Infinite) (hy : ¬y.Infinite) :
                                @[deprecated "`Infinite` is deprecated" (since := "2026-01-05")]
                                theorem Hyperreal.not_infinite_iff_exist_lt_gt {x : ℝ*} :
                                ¬x.Infinite ∃ (r : ) (s : ), r < x x < s
                                @[deprecated "`Infinite` is deprecated" (since := "2026-01-05")]
                                @[deprecated "`Infinite` is deprecated" (since := "2026-01-05")]
                                theorem Hyperreal.Infinite.ne_real {x : ℝ*} :
                                x.Infinite∀ (r : ), x r

                                Facts about st that require some infinite machinery #

                                @[deprecated ArchimedeanClass.stdPart_mul (since := "2026-01-05")]
                                theorem Hyperreal.IsSt.mul {x y : ℝ*} {r s : } (hxr : x.IsSt r) (hys : y.IsSt s) :
                                (x * y).IsSt (r * s)
                                @[deprecated ArchimedeanClass.mk_mul (since := "2026-01-05")]
                                theorem Hyperreal.not_infinite_mul {x y : ℝ*} (hx : ¬x.Infinite) (hy : ¬y.Infinite) :
                                @[deprecated ArchimedeanClass.stdPart_add (since := "2026-01-05")]
                                theorem Hyperreal.st_add {x y : ℝ*} (hx : ¬x.Infinite) (hy : ¬y.Infinite) :
                                (x + y).st = x.st + y.st
                                @[deprecated ArchimedeanClass.stdPart_neg (since := "2026-01-05")]
                                theorem Hyperreal.st_neg (x : ℝ*) :
                                (-x).st = -x.st
                                @[deprecated ArchimedeanClass.stdPart_mul (since := "2026-01-05")]
                                theorem Hyperreal.st_mul {x y : ℝ*} (hx : ¬x.Infinite) (hy : ¬y.Infinite) :
                                (x * y).st = x.st * y.st

                                Basic lemmas about infinitesimal #

                                @[deprecated "`Infinitesimal` is deprecated" (since := "2026-01-05")]
                                theorem Hyperreal.infinitesimal_def {x : ℝ*} :
                                x.Infinitesimal ∀ (r : ), 0 < r-r < x x < r
                                @[deprecated ArchimedeanClass.lt_of_pos_of_archimedean (since := "2026-01-05")]
                                theorem Hyperreal.lt_of_pos_of_infinitesimal {x : ℝ*} :
                                x.Infinitesimal∀ (r : ), 0 < rx < r
                                @[deprecated ArchimedeanClass.lt_of_neg_of_archimedean (since := "2026-01-05")]
                                theorem Hyperreal.lt_neg_of_pos_of_infinitesimal {x : ℝ*} :
                                x.Infinitesimal∀ (r : ), 0 < r-r < x
                                @[deprecated ArchimedeanClass.lt_of_neg_of_archimedean (since := "2026-01-05")]
                                theorem Hyperreal.gt_of_neg_of_infinitesimal {x : ℝ*} (hi : x.Infinitesimal) (r : ) (hr : r < 0) :
                                r < x
                                @[deprecated "`Infinitesimal` is deprecated" (since := "2026-01-05")]
                                theorem Hyperreal.abs_lt_real_iff_infinitesimal {x : ℝ*} :
                                x.Infinitesimal ∀ (r : ), r 0|x| < |r|
                                @[deprecated "`Infinitesimal` is deprecated" (since := "2026-01-05")]
                                @[deprecated "`Infinitesimal` is deprecated" (since := "2026-01-05")]
                                theorem Hyperreal.Infinitesimal.eq_zero {r : } :
                                (↑r).Infinitesimalr = 0
                                @[deprecated "`Infinitesimal` is deprecated" (since := "2026-01-05")]
                                @[deprecated "`Infinitesimal` is deprecated" (since := "2026-01-05")]
                                @[deprecated "`Infinitesimal` is deprecated" (since := "2026-01-05")]
                                @[deprecated "`Infinitesimal` is deprecated" (since := "2026-01-05")]
                                @[deprecated "`Infinitesimal` is deprecated" (since := "2026-01-05")]
                                @[deprecated "`Infinitesimal` is deprecated" (since := "2026-01-05")]
                                @[deprecated "`Infinitesimal` is deprecated" (since := "2026-01-05")]
                                @[deprecated "`Infinitesimal` is deprecated" (since := "2026-01-05")]
                                theorem Hyperreal.not_real_of_infinitesimal_ne_zero (x : ℝ*) :
                                x.Infinitesimalx 0∀ (r : ), x r
                                @[deprecated "`Infinitesimal` is deprecated" (since := "2026-01-05")]
                                theorem Hyperreal.IsSt.infinitesimal_sub {x : ℝ*} {r : } (hxr : x.IsSt r) :
                                (x - r).Infinitesimal
                                @[deprecated "`Infinitesimal` is deprecated" (since := "2026-01-05")]
                                @[deprecated "`Infinitesimal` is deprecated" (since := "2026-01-05")]
                                @[deprecated "`Infinitesimal` is deprecated" (since := "2026-01-05")]
                                @[deprecated "`Infinitesimal` is deprecated" (since := "2026-01-05")]
                                @[deprecated "`Infinitesimal` is deprecated" (since := "2026-01-05")]
                                @[deprecated "`Infinitesimal` is deprecated" (since := "2026-01-05")]
                                @[deprecated "`Infinitesimal` is deprecated" (since := "2026-01-05")]
                                @[deprecated "`Infinitesimal` is deprecated" (since := "2026-01-05")]
                                @[deprecated "`Infinitesimal` is deprecated" (since := "2026-01-05")]
                                @[deprecated ArchimedeanClass.stdPart_inv (since := "2026-01-05")]
                                theorem Hyperreal.IsSt.inv {x : ℝ*} {r : } (hi : ¬x.Infinitesimal) (hr : x.IsSt r) :
                                @[deprecated ArchimedeanClass.stdPart_inv (since := "2026-01-05")]
                                @[deprecated Hyperreal.archimedeanClassMk_omega_neg (since := "2026-01-05")]
                                @[deprecated Hyperreal.archimedeanClassMk_omega_neg (since := "2026-01-05")]
                                @[deprecated "`Infinitesimal` is deprecated" (since := "2026-01-05")]
                                @[deprecated "`Infinitesimal` is deprecated" (since := "2026-01-05")]
                                @[deprecated "`Infinitesimal` is deprecated" (since := "2026-01-05")]
                                @[deprecated "`Infinitesimal` is deprecated" (since := "2026-01-05")]
                                @[deprecated "`Infinitesimal` is deprecated" (since := "2026-01-05")]
                                @[deprecated "`Infinitesimal` is deprecated" (since := "2026-01-05")]
                                @[deprecated "`Infinitesimal` is deprecated" (since := "2026-01-05")]
                                @[deprecated "`Infinitesimal` is deprecated" (since := "2026-01-05")]
                                @[deprecated "`Infinitesimal` is deprecated" (since := "2026-01-05")]
                                @[deprecated "`Infinitesimal` is deprecated" (since := "2026-01-05")]
                                @[deprecated "`Infinitesimal` is deprecated" (since := "2026-01-05")]
                                @[deprecated "`Infinitesimal` is deprecated" (since := "2026-01-05")]
                                @[deprecated "`Infinitesimal` is deprecated" (since := "2026-01-05")]
                                @[deprecated "`Infinitesimal` is deprecated" (since := "2026-01-05")]
                                @[deprecated "`Infinite` is deprecated" (since := "2026-01-05")]
                                theorem Hyperreal.Infinite.mul {x y : ℝ*} :
                                x.Infinitey.Infinite(x * y).Infinite