Documentation

Mathlib.RingTheory.Valuation.ValuativeRel.Basic

Valuative Relations #

In this file we introduce a class called ValuativeRel R for a ring R. This bundles a relation vle : R → R → Prop on R which mimics a preorder on R arising from a valuation. We introduce the notation x ≤ᵥ y for this relation.

Recall that the equivalence class of a valuation is completely characterized by such a preorder. Thus, we can think of ValuativeRel R as a way of saying that R is endowed with an equivalence class of valuations.

Main Definitions #

Remark #

The last two axioms in ValuativeRel, namely vle_mul_cancel and not_vle_one_zero, are used to ensure that we have a well-behaved valuation taking values in a value group (with zero). In principle, it should be possible to drop these two axioms and obtain a value monoid, however, such a value monoid would not necessarily embed into an ordered abelian group with zero. Similarly, without these axioms, the support of the valuation need not be a prime ideal. We have thus opted to include these two axioms and obtain a ValueGroupWithZero associated to a ValuativeRel in order to best align with the literature about valuations on commutative rings.

Future work could refactor ValuativeRel by dropping the vle_mul_cancel and not_vle_one_zero axioms, opting to make these mixins instead.

Projects #

The ValuativeRel class should eventually replace the existing Valued typeclass. Once such a refactor happens, ValuativeRel could be renamed to Valued.

class ValuativeRel (R : Type u_1) [CommRing R] :
Type u_1

The class [ValuativeRel R] class introduces an operator x ≤ᵥ y : Prop for x y : R which is the natural relation arising from (the equivalence class of) a valuation on R. More precisely, if v is a valuation on R then the associated relation is x ≤ᵥ y ↔ v x ≤ v y. Use this class to talk about the case where R is equipped with an equivalence class of valuations.

Instances
    theorem ValuativeRel.ext {R : Type u_1} {inst✝ : CommRing R} {x y : ValuativeRel R} (vle : vle = vle) :
    x = y
    theorem ValuativeRel.ext_iff {R : Type u_1} {inst✝ : CommRing R} {x y : ValuativeRel R} :
    x = y vle = vle

    The valuation less-equal operator arising from ValuativeRel.

    Equations
    Instances For

      We say that a valuation v is Compatible if the relation x ≤ᵥ y is equivalent to v x ≤ v y.

      Instances

        A preorder on a ring is said to be "valuative" if it agrees with the valuative relation.

        Instances
          @[deprecated ValuativeRel.vle (since := "2025-12-20")]
          def ValuativeRel.Rel {R : Type u_1} {inst✝ : CommRing R} [self : ValuativeRel R] :
          RRProp

          Alias of ValuativeRel.vle.


          The valuation less-equal operator arising from ValuativeRel.

          Equations
          Instances For
            @[deprecated ValuativeRel.vle_total (since := "2025-12-20")]
            theorem ValuativeRel.rel_total {R : Type u_1} {inst✝ : CommRing R} [self : ValuativeRel R] (x y : R) :
            x ≤ᵥ y y ≤ᵥ x

            Alias of ValuativeRel.vle_total.

            @[deprecated ValuativeRel.vle_trans (since := "2025-12-20")]
            theorem ValuativeRel.rel_trans {R : Type u_1} {inst✝ : CommRing R} [self : ValuativeRel R] {z y x : R} :
            x ≤ᵥ yy ≤ᵥ zx ≤ᵥ z

            Alias of ValuativeRel.vle_trans.

            @[deprecated ValuativeRel.vle_add (since := "2025-12-20")]
            theorem ValuativeRel.rel_add {R : Type u_1} {inst✝ : CommRing R} [self : ValuativeRel R] {x y z : R} :
            x ≤ᵥ zy ≤ᵥ zx + y ≤ᵥ z

            Alias of ValuativeRel.vle_add.

            @[deprecated ValuativeRel.mul_vle_mul_left (since := "2025-12-20")]
            theorem ValuativeRel.rel_mul_right {R : Type u_1} {inst✝ : CommRing R} [self : ValuativeRel R] {x y : R} (h : x ≤ᵥ y) (z : R) :
            x * z ≤ᵥ y * z

            Alias of ValuativeRel.mul_vle_mul_left.

            @[deprecated ValuativeRel.vle_mul_cancel (since := "2025-12-20")]
            theorem ValuativeRel.rel_mul_cancel {R : Type u_1} {inst✝ : CommRing R} [self : ValuativeRel R] {x y z : R} :
            ¬z ≤ᵥ 0x * z ≤ᵥ y * zx ≤ᵥ y

            Alias of ValuativeRel.vle_mul_cancel.

            @[deprecated ValuativeRel.not_vle_one_zero (since := "2025-12-20")]
            theorem ValuativeRel.not_rel_one_zero {R : Type u_1} {inst✝ : CommRing R} [self : ValuativeRel R] :

            Alias of ValuativeRel.not_vle_one_zero.

            def ValuativeRel.vlt {R : Type u_1} [CommRing R] [ValuativeRel R] (x y : R) :

            The valuation less-than relation, defined as x <ᵥ y ↔ ¬ y ≤ᵥ x.

            Equations
            Instances For
              @[deprecated ValuativeRel.vlt (since := "2025-12-20")]
              def ValuativeRel.SRel {R : Type u_1} [CommRing R] [ValuativeRel R] (x y : R) :

              Alias of ValuativeRel.vlt.


              The valuation less-than relation, defined as x <ᵥ y ↔ ¬ y ≤ᵥ x.

              Equations
              Instances For

                The valuation less-than relation, defined as x <ᵥ y ↔ ¬ y ≤ᵥ x.

                Equations
                Instances For
                  def ValuativeRel.veq {R : Type u_1} [CommRing R] [ValuativeRel R] :
                  RRProp

                  The valuation equals relation, defined as x =ᵥ y ↔ x ≤ᵥ y ∧ y ≤ᵥ x.

                  Equations
                  Instances For

                    The valuation equals relation, defined as x =ᵥ y ↔ x ≤ᵥ y ∧ y ≤ᵥ x.

                    Equations
                    Instances For
                      @[simp]
                      theorem ValuativeRel.not_vle {R : Type u_1} [CommRing R] [ValuativeRel R] {x y : R} :
                      ¬x ≤ᵥ y y <ᵥ x
                      @[simp]
                      theorem ValuativeRel.not_vlt {R : Type u_1} [CommRing R] [ValuativeRel R] {x y : R} :
                      ¬x <ᵥ y y ≤ᵥ x
                      theorem ValuativeRel.veq_def {R : Type u_1} [CommRing R] [ValuativeRel R] {x y : R} :
                      x =ᵥ y x ≤ᵥ y y ≤ᵥ x
                      @[deprecated ValuativeRel.not_vle (since := "2025-12-20")]
                      theorem ValuativeRel.srel_iff {R : Type u_1} [CommRing R] [ValuativeRel R] {x y : R} :
                      x <ᵥ y ¬y ≤ᵥ x
                      @[deprecated ValuativeRel.not_vlt (since := "2025-12-20")]
                      theorem ValuativeRel.not_srel_iff {R : Type u_1} [CommRing R] [ValuativeRel R] {x y : R} :
                      ¬x <ᵥ y y ≤ᵥ x

                      Alias of ValuativeRel.not_vlt.

                      theorem ValuativeRel.vle.not_vlt {R : Type u_1} [CommRing R] [ValuativeRel R] {x y : R} :
                      y ≤ᵥ x¬x <ᵥ y

                      Alias of the reverse direction of ValuativeRel.not_vlt.

                      theorem ValuativeRel.vlt.not_vle {R : Type u_1} [CommRing R] [ValuativeRel R] {x y : R} :
                      y <ᵥ x¬x ≤ᵥ y

                      Alias of the reverse direction of ValuativeRel.not_vle.

                      theorem ValuativeRel.veq_comm {R : Type u_1} [CommRing R] [ValuativeRel R] {x y : R} :
                      x =ᵥ y y =ᵥ x
                      theorem ValuativeRel.veq.symm {R : Type u_1} [CommRing R] [ValuativeRel R] {x y : R} :
                      x =ᵥ yy =ᵥ x

                      Alias of the forward direction of ValuativeRel.veq_comm.

                      instance ValuativeRel.instSymmVeq {R : Type u_1} [CommRing R] [ValuativeRel R] :
                      Std.Symm fun (x1 x2 : R) => x1 =ᵥ x2
                      theorem ValuativeRel.vle_of_veq {R : Type u_1} [CommRing R] [ValuativeRel R] {x y : R} (h : x =ᵥ y) :
                      x ≤ᵥ y
                      theorem ValuativeRel.vge_of_veq {R : Type u_1} [CommRing R] [ValuativeRel R] {x y : R} (h : x =ᵥ y) :
                      y ≤ᵥ x
                      theorem ValuativeRel.veq.vle {R : Type u_1} [CommRing R] [ValuativeRel R] {x y : R} (h : x =ᵥ y) :
                      x ≤ᵥ y

                      Alias of ValuativeRel.vle_of_veq.

                      theorem ValuativeRel.veq.vge {R : Type u_1} [CommRing R] [ValuativeRel R] {x y : R} (h : x =ᵥ y) :
                      y ≤ᵥ x

                      Alias of ValuativeRel.vge_of_veq.

                      theorem ValuativeRel.not_vlt_of_veq {R : Type u_1} [CommRing R] [ValuativeRel R] {x y : R} (h : x =ᵥ y) :
                      ¬x <ᵥ y
                      theorem ValuativeRel.not_vgt_of_veq {R : Type u_1} [CommRing R] [ValuativeRel R] {x y : R} (h : x =ᵥ y) :
                      ¬y <ᵥ x
                      theorem ValuativeRel.veq.not_vlt {R : Type u_1} [CommRing R] [ValuativeRel R] {x y : R} (h : x =ᵥ y) :
                      ¬x <ᵥ y

                      Alias of ValuativeRel.not_vlt_of_veq.

                      theorem ValuativeRel.veq.not_vgt {R : Type u_1} [CommRing R] [ValuativeRel R] {x y : R} (h : x =ᵥ y) :
                      ¬y <ᵥ x

                      Alias of ValuativeRel.not_vgt_of_veq.

                      @[simp]
                      theorem ValuativeRel.vle_refl {R : Type u_1} [CommRing R] [ValuativeRel R] (x : R) :
                      x ≤ᵥ x
                      theorem ValuativeRel.vle_rfl {R : Type u_1} [CommRing R] [ValuativeRel R] {x : R} :
                      x ≤ᵥ x
                      @[deprecated ValuativeRel.vle_refl (since := "2025-12-20")]
                      theorem ValuativeRel.rel_refl {R : Type u_1} [CommRing R] [ValuativeRel R] (x : R) :
                      x ≤ᵥ x

                      Alias of ValuativeRel.vle_refl.

                      @[deprecated ValuativeRel.vle_rfl (since := "2025-12-20")]
                      theorem ValuativeRel.rel_rfl {R : Type u_1} [CommRing R] [ValuativeRel R] {x : R} :
                      x ≤ᵥ x

                      Alias of ValuativeRel.vle_rfl.

                      theorem ValuativeRel.vle.refl {R : Type u_1} [CommRing R] [ValuativeRel R] (x : R) :
                      x ≤ᵥ x

                      Alias of ValuativeRel.vle_refl.

                      theorem ValuativeRel.vle.rfl {R : Type u_1} [CommRing R] [ValuativeRel R] {x : R} :
                      x ≤ᵥ x

                      Alias of ValuativeRel.vle_rfl.

                      instance ValuativeRel.instReflVle {R : Type u_1} [CommRing R] [ValuativeRel R] :
                      Std.Refl fun (x1 x2 : R) => x1 ≤ᵥ x2
                      @[deprecated ValuativeRel.vle.refl (since := "2025-12-20")]
                      theorem ValuativeRel.Rel.refl {R : Type u_1} [CommRing R] [ValuativeRel R] (x : R) :
                      x ≤ᵥ x

                      Alias of ValuativeRel.vle_refl.


                      Alias of ValuativeRel.vle_refl.

                      @[deprecated ValuativeRel.vle.rfl (since := "2025-12-20")]
                      theorem ValuativeRel.Rel.rfl {R : Type u_1} [CommRing R] [ValuativeRel R] {x : R} :
                      x ≤ᵥ x

                      Alias of ValuativeRel.vle_rfl.


                      Alias of ValuativeRel.vle_rfl.

                      @[simp]
                      theorem ValuativeRel.veq_refl {R : Type u_1} [CommRing R] [ValuativeRel R] (x : R) :
                      x =ᵥ x
                      theorem ValuativeRel.veq_rfl {R : Type u_1} [CommRing R] [ValuativeRel R] {x : R} :
                      x =ᵥ x
                      theorem ValuativeRel.veq.refl {R : Type u_1} [CommRing R] [ValuativeRel R] (x : R) :
                      x =ᵥ x

                      Alias of ValuativeRel.veq_refl.

                      theorem ValuativeRel.veq.rfl {R : Type u_1} [CommRing R] [ValuativeRel R] {x : R} :
                      x =ᵥ x

                      Alias of ValuativeRel.veq_rfl.

                      instance ValuativeRel.instReflVeq {R : Type u_1} [CommRing R] [ValuativeRel R] :
                      Std.Refl fun (x1 x2 : R) => x1 =ᵥ x2
                      @[simp]
                      theorem ValuativeRel.zero_vle {R : Type u_1} [CommRing R] [ValuativeRel R] (x : R) :
                      0 ≤ᵥ x
                      @[deprecated ValuativeRel.zero_vle (since := "2025-12-20")]
                      theorem ValuativeRel.zero_rel {R : Type u_1} [CommRing R] [ValuativeRel R] (x : R) :
                      0 ≤ᵥ x

                      Alias of ValuativeRel.zero_vle.

                      @[simp]
                      @[deprecated ValuativeRel.zero_vlt_one (since := "2025-12-20")]

                      Alias of ValuativeRel.zero_vlt_one.

                      @[deprecated ValuativeRel.mul_vle_mul_left (since := "2026-01-06")]
                      theorem ValuativeRel.vle_mul_right {R : Type u_1} [CommRing R] [ValuativeRel R] {x y : R} (z : R) (h : x ≤ᵥ y) :
                      x * z ≤ᵥ y * z
                      theorem ValuativeRel.mul_vle_mul_right {R : Type u_1} [CommRing R] [ValuativeRel R] {x y : R} (h : x ≤ᵥ y) (z : R) :
                      z * x ≤ᵥ z * y
                      @[deprecated ValuativeRel.mul_vle_mul_right (since := "2025-01-06")]
                      theorem ValuativeRel.vle_mul_left {R : Type u_1} [CommRing R] [ValuativeRel R] {x y : R} (z : R) (h : x ≤ᵥ y) :
                      z * x ≤ᵥ z * y
                      @[deprecated ValuativeRel.mul_vle_mul_right (since := "2025-12-20")]
                      theorem ValuativeRel.rel_mul_left {R : Type u_1} [CommRing R] [ValuativeRel R] {x y : R} (h : x ≤ᵥ y) (z : R) :
                      z * x ≤ᵥ z * y

                      Alias of ValuativeRel.mul_vle_mul_right.

                      theorem ValuativeRel.vle.trans {R : Type u_1} {inst✝ : CommRing R} [self : ValuativeRel R] {z y x : R} :
                      x ≤ᵥ yy ≤ᵥ zx ≤ᵥ z

                      Alias of ValuativeRel.vle_trans.

                      @[deprecated ValuativeRel.vle.trans (since := "2025-12-20")]
                      theorem ValuativeRel.Rel.trans {R : Type u_1} {inst✝ : CommRing R} [self : ValuativeRel R] {z y x : R} :
                      x ≤ᵥ yy ≤ᵥ zx ≤ᵥ z

                      Alias of ValuativeRel.vle_trans.


                      Alias of ValuativeRel.vle_trans.

                      theorem ValuativeRel.vle_trans' {R : Type u_1} [CommRing R] [ValuativeRel R] {x y z : R} (h1 : y ≤ᵥ z) (h2 : x ≤ᵥ y) :
                      x ≤ᵥ z
                      @[deprecated ValuativeRel.vle_trans' (since := "2025-12-20")]
                      theorem ValuativeRel.rel_trans' {R : Type u_1} [CommRing R] [ValuativeRel R] {x y z : R} (h1 : y ≤ᵥ z) (h2 : x ≤ᵥ y) :
                      x ≤ᵥ z

                      Alias of ValuativeRel.vle_trans'.

                      theorem ValuativeRel.vle.trans' {R : Type u_1} [CommRing R] [ValuativeRel R] {x y z : R} (h1 : y ≤ᵥ z) (h2 : x ≤ᵥ y) :
                      x ≤ᵥ z

                      Alias of ValuativeRel.vle_trans'.

                      @[deprecated ValuativeRel.vle.trans' (since := "2025-12-20")]
                      theorem ValuativeRel.Rel.trans' {R : Type u_1} [CommRing R] [ValuativeRel R] {x y z : R} (h1 : y ≤ᵥ z) (h2 : x ≤ᵥ y) :
                      x ≤ᵥ z

                      Alias of ValuativeRel.vle_trans'.


                      Alias of ValuativeRel.vle_trans'.

                      theorem ValuativeRel.veq_trans {R : Type u_1} [CommRing R] [ValuativeRel R] {x y z : R} (h1 : x =ᵥ y) (h2 : y =ᵥ z) :
                      x =ᵥ z
                      theorem ValuativeRel.mul_vle_mul {R : Type u_1} [CommRing R] [ValuativeRel R] {x x' y y' : R} (h1 : x ≤ᵥ y) (h2 : x' ≤ᵥ y') :
                      x * x' ≤ᵥ y * y'
                      @[deprecated ValuativeRel.mul_vle_mul (since := "2025-12-20")]
                      theorem ValuativeRel.mul_rel_mul {R : Type u_1} [CommRing R] [ValuativeRel R] {x x' y y' : R} (h1 : x ≤ᵥ y) (h2 : x' ≤ᵥ y') :
                      x * x' ≤ᵥ y * y'

                      Alias of ValuativeRel.mul_vle_mul.

                      @[simp]
                      theorem ValuativeRel.mul_vle_mul_iff_left {R : Type u_1} [CommRing R] [ValuativeRel R] {x y z : R} (hz : 0 <ᵥ z) :
                      x * z ≤ᵥ y * z x ≤ᵥ y
                      @[deprecated ValuativeRel.mul_vle_mul_iff_left (since := "2025-12-20")]
                      theorem ValuativeRel.mul_rel_mul_iff_left {R : Type u_1} [CommRing R] [ValuativeRel R] {x y z : R} (hz : 0 <ᵥ z) :
                      x * z ≤ᵥ y * z x ≤ᵥ y

                      Alias of ValuativeRel.mul_vle_mul_iff_left.

                      @[simp]
                      theorem ValuativeRel.mul_vle_mul_iff_right {R : Type u_1} [CommRing R] [ValuativeRel R] {x y z : R} (hx : 0 <ᵥ x) :
                      x * y ≤ᵥ x * z y ≤ᵥ z
                      @[deprecated ValuativeRel.mul_vle_mul_iff_right (since := "2025-12-20")]
                      theorem ValuativeRel.mul_rel_mul_iff_right {R : Type u_1} [CommRing R] [ValuativeRel R] {x y z : R} (hx : 0 <ᵥ x) :
                      x * y ≤ᵥ x * z y ≤ᵥ z

                      Alias of ValuativeRel.mul_vle_mul_iff_right.

                      @[simp]
                      theorem ValuativeRel.mul_vlt_mul_iff_left {R : Type u_1} [CommRing R] [ValuativeRel R] {x y z : R} (hz : 0 <ᵥ z) :
                      x * z <ᵥ y * z x <ᵥ y
                      theorem ValuativeRel.mul_vlt_mul_left {R : Type u_1} [CommRing R] [ValuativeRel R] {x y z : R} (hz : 0 <ᵥ z) :
                      x <ᵥ yx * z <ᵥ y * z

                      Alias of the reverse direction of ValuativeRel.mul_vlt_mul_iff_left.

                      @[deprecated ValuativeRel.mul_vlt_mul_left (since := "2026-01-06")]
                      theorem ValuativeRel.vlt_mul_right {R : Type u_1} [CommRing R] [ValuativeRel R] {x y z : R} (hz : 0 <ᵥ z) :
                      x <ᵥ yx * z <ᵥ y * z

                      Alias of the reverse direction of ValuativeRel.mul_vlt_mul_iff_left.


                      Alias of the reverse direction of ValuativeRel.mul_vlt_mul_iff_left.

                      @[deprecated ValuativeRel.mul_vlt_mul_iff_left (since := "2025-12-20")]
                      theorem ValuativeRel.mul_srel_mul_iff_left {R : Type u_1} [CommRing R] [ValuativeRel R] {x y z : R} (hz : 0 <ᵥ z) :
                      x * z <ᵥ y * z x <ᵥ y

                      Alias of ValuativeRel.mul_vlt_mul_iff_left.

                      @[simp]
                      theorem ValuativeRel.mul_vlt_mul_iff_right {R : Type u_1} [CommRing R] [ValuativeRel R] {x y z : R} (hx : 0 <ᵥ x) :
                      x * y <ᵥ x * z y <ᵥ z
                      theorem ValuativeRel.mul_vlt_mul_right {R : Type u_1} [CommRing R] [ValuativeRel R] {x y z : R} (hx : 0 <ᵥ x) :
                      y <ᵥ zx * y <ᵥ x * z

                      Alias of the reverse direction of ValuativeRel.mul_vlt_mul_iff_right.

                      @[deprecated ValuativeRel.mul_vlt_mul_right (since := "2026-01-06")]
                      theorem ValuativeRel.vlt_mul_left {R : Type u_1} [CommRing R] [ValuativeRel R] {x y z : R} (hx : 0 <ᵥ x) :
                      y <ᵥ zx * y <ᵥ x * z

                      Alias of the reverse direction of ValuativeRel.mul_vlt_mul_iff_right.


                      Alias of the reverse direction of ValuativeRel.mul_vlt_mul_iff_right.

                      @[deprecated ValuativeRel.mul_vlt_mul_iff_right (since := "2025-12-20")]
                      theorem ValuativeRel.mul_srel_mul_iff_right {R : Type u_1} [CommRing R] [ValuativeRel R] {x y z : R} (hx : 0 <ᵥ x) :
                      x * y <ᵥ x * z y <ᵥ z

                      Alias of ValuativeRel.mul_vlt_mul_iff_right.

                      @[deprecated ValuativeRel.mul_vle_mul (since := "2025-11-04")]
                      theorem ValuativeRel.rel_mul {R : Type u_1} [CommRing R] [ValuativeRel R] {x x' y y' : R} (h1 : x ≤ᵥ y) (h2 : x' ≤ᵥ y') :
                      x * x' ≤ᵥ y * y'

                      Alias of ValuativeRel.mul_vle_mul.

                      theorem ValuativeRel.mul_veq_mul {R : Type u_1} [CommRing R] [ValuativeRel R] {x x' y y' : R} (h1 : x =ᵥ y) (h2 : x' =ᵥ y') :
                      x * x' =ᵥ y * y'
                      theorem ValuativeRel.vle_add_cases {R : Type u_1} [CommRing R] [ValuativeRel R] (x y : R) :
                      x + y ≤ᵥ x x + y ≤ᵥ y
                      @[deprecated ValuativeRel.vle_add_cases (since := "2025-12-20")]
                      theorem ValuativeRel.rel_add_cases {R : Type u_1} [CommRing R] [ValuativeRel R] (x y : R) :
                      x + y ≤ᵥ x x + y ≤ᵥ y

                      Alias of ValuativeRel.vle_add_cases.

                      @[simp]
                      theorem ValuativeRel.zero_vlt_mul {R : Type u_1} [CommRing R] [ValuativeRel R] {x y : R} (hx : 0 <ᵥ x) (hy : 0 <ᵥ y) :
                      0 <ᵥ x * y
                      @[deprecated ValuativeRel.zero_vlt_mul (since := "2025-12-20")]
                      theorem ValuativeRel.zero_srel_mul {R : Type u_1} [CommRing R] [ValuativeRel R] {x y : R} (hx : 0 <ᵥ x) (hy : 0 <ᵥ y) :
                      0 <ᵥ x * y

                      Alias of ValuativeRel.zero_vlt_mul.

                      The submonoid of elements x : R whose valuation is positive.

                      Equations
                      Instances For
                        @[simp]
                        theorem ValuativeRel.zero_vlt_coe_posSubmonoid {R : Type u_1} [CommRing R] [ValuativeRel R] (x : (posSubmonoid R)) :
                        0 <ᵥ x
                        @[deprecated ValuativeRel.zero_vlt_coe_posSubmonoid (since := "2025-12-20")]

                        Alias of ValuativeRel.zero_vlt_coe_posSubmonoid.

                        @[simp]
                        theorem ValuativeRel.posSubmonoid_def {R : Type u_1} [CommRing R] [ValuativeRel R] (x : R) :
                        theorem ValuativeRel.right_cancel_posSubmonoid {R : Type u_1} [CommRing R] [ValuativeRel R] (x y : R) (u : (posSubmonoid R)) :
                        x * u ≤ᵥ y * u x ≤ᵥ y
                        theorem ValuativeRel.left_cancel_posSubmonoid {R : Type u_1} [CommRing R] [ValuativeRel R] (x y : R) (u : (posSubmonoid R)) :
                        u * x ≤ᵥ u * y x ≤ᵥ y
                        @[simp]
                        theorem ValuativeRel.val_posSubmonoid_ne_zero {R : Type u_1} [CommRing R] [ValuativeRel R] (x : (posSubmonoid R)) :
                        x 0

                        The setoid used to construct ValueGroupWithZero R.

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

                          The "canonical" value group-with-zero of a ring with a valuative relation.

                          Equations
                          Instances For

                            Construct an element of the value group-with-zero from an element r : R and y : posSubmonoid R. This should be thought of as v r / v y.

                            Equations
                            Instances For
                              theorem ValuativeRel.ValueGroupWithZero.sound {R : Type u_1} [CommRing R] [ValuativeRel R] {x y : R} {t s : (posSubmonoid R)} (h₁ : x * s ≤ᵥ y * t) (h₂ : y * t ≤ᵥ x * s) :
                              theorem ValuativeRel.ValueGroupWithZero.exact {R : Type u_1} [CommRing R] [ValuativeRel R] {x y : R} {t s : (posSubmonoid R)} (h : ValueGroupWithZero.mk x t = ValueGroupWithZero.mk y s) :
                              x * s ≤ᵥ y * t y * t ≤ᵥ x * s
                              theorem ValuativeRel.ValueGroupWithZero.ind {R : Type u_1} [CommRing R] [ValuativeRel R] {motive : ValueGroupWithZero RProp} (mk : ∀ (x : R) (y : (posSubmonoid R)), motive (ValueGroupWithZero.mk x y)) (t : ValueGroupWithZero R) :
                              motive t
                              def ValuativeRel.ValueGroupWithZero.lift {R : Type u_1} [CommRing R] [ValuativeRel R] {α : Sort u_2} (f : R(posSubmonoid R)α) (hf : ∀ (x y : R) (t s : (posSubmonoid R)), x * t ≤ᵥ y * sy * s ≤ᵥ x * tf x s = f y t) (t : ValueGroupWithZero R) :
                              α

                              Lifts a function R → posSubmonoid R → α to the value group-with-zero of R.

                              Equations
                              Instances For
                                @[simp]
                                theorem ValuativeRel.ValueGroupWithZero.lift_mk {R : Type u_1} [CommRing R] [ValuativeRel R] {α : Sort u_2} (f : R(posSubmonoid R)α) (hf : ∀ (x y : R) (t s : (posSubmonoid R)), x * t ≤ᵥ y * sy * s ≤ᵥ x * tf x s = f y t) (x : R) (y : (posSubmonoid R)) :
                                def ValuativeRel.ValueGroupWithZero.lift₂ {R : Type u_1} [CommRing R] [ValuativeRel R] {α : Sort u_2} (f : R(posSubmonoid R)R(posSubmonoid R)α) (hf : ∀ (x y z w : R) (t s u v : (posSubmonoid R)), x * t ≤ᵥ y * sy * s ≤ᵥ x * tz * u ≤ᵥ w * vw * v ≤ᵥ z * uf x s z v = f y t w u) (t₁ t₂ : ValueGroupWithZero R) :
                                α

                                Lifts a function R → posSubmonoid R → R → posSubmonoid R → α to the value group-with-zero of R.

                                Equations
                                • One or more equations did not get rendered due to their size.
                                Instances For
                                  @[simp]
                                  theorem ValuativeRel.ValueGroupWithZero.lift₂_mk {R : Type u_1} [CommRing R] [ValuativeRel R] {α : Sort u_2} (f : R(posSubmonoid R)R(posSubmonoid R)α) (hf : ∀ (x y z w : R) (t s u v : (posSubmonoid R)), x * t ≤ᵥ y * sy * s ≤ᵥ x * tz * u ≤ᵥ w * vw * v ≤ᵥ z * uf x s z v = f y t w u) (x y : R) (z w : (posSubmonoid R)) :
                                  theorem ValuativeRel.ValueGroupWithZero.mk_eq_mk {R : Type u_1} [CommRing R] [ValuativeRel R] {x y : R} {t s : (posSubmonoid R)} :
                                  ValueGroupWithZero.mk x t = ValueGroupWithZero.mk y s x * s ≤ᵥ y * t y * t ≤ᵥ x * s
                                  @[simp]
                                  theorem ValuativeRel.ValueGroupWithZero.mk_eq_one {R : Type u_1} [CommRing R] [ValuativeRel R] (x : R) (y : (posSubmonoid R)) :
                                  theorem ValuativeRel.ValueGroupWithZero.lift_zero {R : Type u_1} [CommRing R] [ValuativeRel R] {α : Sort u_2} (f : R(posSubmonoid R)α) (hf : ∀ (x y : R) (t s : (posSubmonoid R)), x * t ≤ᵥ y * sy * s ≤ᵥ x * tf x s = f y t) :
                                  @[simp]
                                  theorem ValuativeRel.ValueGroupWithZero.lift_one {R : Type u_1} [CommRing R] [ValuativeRel R] {α : Sort u_2} (f : R(posSubmonoid R)α) (hf : ∀ (x y : R) (t s : (posSubmonoid R)), x * t ≤ᵥ y * sy * s ≤ᵥ x * tf x s = f y t) :
                                  Equations
                                  • One or more equations did not get rendered due to their size.
                                  theorem ValuativeRel.ValueGroupWithZero.lift_mul {R : Type u_1} [CommRing R] [ValuativeRel R] {α : Type u_2} [Mul α] (f : R(posSubmonoid R)α) (hf : ∀ (x y : R) (t s : (posSubmonoid R)), x * t ≤ᵥ y * sy * s ≤ᵥ x * tf x s = f y t) (hdist : ∀ (a b : R) (r s : (posSubmonoid R)), f (a * b) (r * s) = f a r * f b s) (a b : ValueGroupWithZero R) :
                                  Equations
                                  • One or more equations did not get rendered due to their size.
                                  Equations
                                  • One or more equations did not get rendered due to their size.
                                  @[simp]
                                  Equations
                                  • One or more equations did not get rendered due to their size.
                                  @[simp]
                                  @[simp]
                                  Equations
                                  • One or more equations did not get rendered due to their size.

                                  The value group-with-zero is a linearly ordered commutative group with zero.

                                  Equations
                                  • One or more equations did not get rendered due to their size.

                                  The "canonical" valuation associated to a valuative relation.

                                  Equations
                                  Instances For
                                    @[simp]
                                    theorem ValuativeRel.ValueGroupWithZero.lift_valuation {R : Type u_1} [CommRing R] [ValuativeRel R] {α : Sort u_2} (f : R(posSubmonoid R)α) (hf : ∀ (x y : R) (t s : (posSubmonoid R)), x * t ≤ᵥ y * sy * s ≤ᵥ x * tf x s = f y t) (x : R) :

                                    Construct a valuative relation on a ring using a valuation.

                                    Equations
                                    • ValuativeRel.ofValuation v = { vle := fun (x y : S) => v x v y, vle_total := , vle_trans := , vle_add := , mul_vle_mul_left := , vle_mul_cancel := , not_vle_one_zero := }
                                    Instances For
                                      theorem ValuativeRel.isEquiv {R : Type u_1} [CommRing R] [ValuativeRel R] {Γ₁ : Type u_2} {Γ₂ : Type u_3} [LinearOrderedCommMonoidWithZero Γ₁] [LinearOrderedCommMonoidWithZero Γ₂] (v₁ : Valuation R Γ₁) (v₂ : Valuation R Γ₂) [v₁.Compatible] [v₂.Compatible] :
                                      v₁.IsEquiv v₂
                                      theorem Valuation.vle_iff_le {R : Type u_1} [CommRing R] [ValuativeRel R] {Γ₀ : Type u_2} [LinearOrderedCommMonoidWithZero Γ₀] (v : Valuation R Γ₀) [v.Compatible] {x y : R} :
                                      x ≤ᵥ y v x v y
                                      @[deprecated Valuation.vle_iff_le (since := "2025-12-20")]
                                      theorem Valuation.rel_iff_le {R : Type u_1} [CommRing R] [ValuativeRel R] {Γ₀ : Type u_2} [LinearOrderedCommMonoidWithZero Γ₀] (v : Valuation R Γ₀) [v.Compatible] {x y : R} :
                                      x ≤ᵥ y v x v y

                                      Alias of Valuation.vle_iff_le.

                                      theorem Valuation.vlt_iff_lt {R : Type u_1} [CommRing R] [ValuativeRel R] {Γ₀ : Type u_2} [LinearOrderedCommMonoidWithZero Γ₀] (v : Valuation R Γ₀) [v.Compatible] {x y : R} :
                                      x <ᵥ y v x < v y
                                      @[deprecated Valuation.vlt_iff_lt (since := "2025-12-20")]
                                      theorem Valuation.srel_iff_lt {R : Type u_1} [CommRing R] [ValuativeRel R] {Γ₀ : Type u_2} [LinearOrderedCommMonoidWithZero Γ₀] (v : Valuation R Γ₀) [v.Compatible] {x y : R} :
                                      x <ᵥ y v x < v y

                                      Alias of Valuation.vlt_iff_lt.

                                      @[deprecated Valuation.vlt_iff_lt (since := "2025-10-09")]
                                      theorem Valuation.Compatible.srel_iff_lt {R : Type u_1} [CommRing R] [ValuativeRel R] {Γ₀ : Type u_2} [LinearOrderedCommMonoidWithZero Γ₀] (v : Valuation R Γ₀) [v.Compatible] {x y : R} :
                                      x <ᵥ y v x < v y

                                      Alias of Valuation.vlt_iff_lt.

                                      theorem Valuation.veq_iff_eq {R : Type u_1} [CommRing R] [ValuativeRel R] {Γ₀ : Type u_2} [LinearOrderedCommMonoidWithZero Γ₀] (v : Valuation R Γ₀) [v.Compatible] {x y : R} :
                                      x =ᵥ y v x = v y
                                      theorem Valuation.vle_one_iff {R : Type u_1} [CommRing R] [ValuativeRel R] {Γ₀ : Type u_2} [LinearOrderedCommMonoidWithZero Γ₀] (v : Valuation R Γ₀) [v.Compatible] {x : R} :
                                      x ≤ᵥ 1 v x 1
                                      theorem Valuation.vlt_one_iff {R : Type u_1} [CommRing R] [ValuativeRel R] {Γ₀ : Type u_2} [LinearOrderedCommMonoidWithZero Γ₀] (v : Valuation R Γ₀) [v.Compatible] {x : R} :
                                      x <ᵥ 1 v x < 1
                                      theorem Valuation.one_vle_iff {R : Type u_1} [CommRing R] [ValuativeRel R] {Γ₀ : Type u_2} [LinearOrderedCommMonoidWithZero Γ₀] (v : Valuation R Γ₀) [v.Compatible] {x : R} :
                                      1 ≤ᵥ x 1 v x
                                      theorem Valuation.one_vlt_iff {R : Type u_1} [CommRing R] [ValuativeRel R] {Γ₀ : Type u_2} [LinearOrderedCommMonoidWithZero Γ₀] (v : Valuation R Γ₀) [v.Compatible] {x : R} :
                                      1 <ᵥ x 1 < v x
                                      @[deprecated Valuation.vle_one_iff (since := "2025-12-20")]
                                      theorem Valuation.rel_one_iff {R : Type u_1} [CommRing R] [ValuativeRel R] {Γ₀ : Type u_2} [LinearOrderedCommMonoidWithZero Γ₀] (v : Valuation R Γ₀) [v.Compatible] {x : R} :
                                      x ≤ᵥ 1 v x 1

                                      Alias of Valuation.vle_one_iff.

                                      @[deprecated Valuation.vlt_one_iff (since := "2025-12-20")]
                                      theorem Valuation.srel_one_iff {R : Type u_1} [CommRing R] [ValuativeRel R] {Γ₀ : Type u_2} [LinearOrderedCommMonoidWithZero Γ₀] (v : Valuation R Γ₀) [v.Compatible] {x : R} :
                                      x <ᵥ 1 v x < 1

                                      Alias of Valuation.vlt_one_iff.

                                      @[deprecated Valuation.one_vle_iff (since := "2025-12-20")]
                                      theorem Valuation.one_rel_iff {R : Type u_1} [CommRing R] [ValuativeRel R] {Γ₀ : Type u_2} [LinearOrderedCommMonoidWithZero Γ₀] (v : Valuation R Γ₀) [v.Compatible] {x : R} :
                                      1 ≤ᵥ x 1 v x

                                      Alias of Valuation.one_vle_iff.

                                      @[deprecated Valuation.one_vlt_iff (since := "2025-12-20")]
                                      theorem Valuation.one_srel_iff {R : Type u_1} [CommRing R] [ValuativeRel R] {Γ₀ : Type u_2} [LinearOrderedCommMonoidWithZero Γ₀] (v : Valuation R Γ₀) [v.Compatible] {x : R} :
                                      1 <ᵥ x 1 < v x

                                      Alias of Valuation.one_vlt_iff.

                                      @[simp]
                                      theorem Valuation.apply_posSubmonoid_ne_zero {R : Type u_1} [CommRing R] [ValuativeRel R] {Γ₀ : Type u_2} [LinearOrderedCommMonoidWithZero Γ₀] (v : Valuation R Γ₀) [v.Compatible] (x : (ValuativeRel.posSubmonoid R)) :
                                      v x 0
                                      @[deprecated Valuation.apply_posSubmonoid_ne_zero (since := "2025-08-06")]

                                      Alias of Valuation.apply_posSubmonoid_ne_zero.

                                      @[simp]
                                      theorem Valuation.apply_posSubmonoid_pos {R : Type u_1} [CommRing R] [ValuativeRel R] {Γ₀ : Type u_2} [LinearOrderedCommMonoidWithZero Γ₀] (v : Valuation R Γ₀) [v.Compatible] (x : (ValuativeRel.posSubmonoid R)) :
                                      0 < v x

                                      An alias for endowing a ring with a preorder defined as the valuative relation.

                                      Equations
                                      Instances For

                                        The ring instance on WithPreorder R arising from the ring structure on R.

                                        Equations

                                        The preorder on WithPreorder R arising from the valuative relation on R.

                                        Equations

                                        The valuative relation on WithPreorder R arising from the valuative relation on R. This is defined as the preorder itself.

                                        Equations
                                        • One or more equations did not get rendered due to their size.

                                        The support of the valuation on R.

                                        Equations
                                        Instances For
                                          @[simp]
                                          theorem ValuativeRel.supp_def {R : Type u_1} [CommRing R] [ValuativeRel R] (x : R) :
                                          x supp R x ≤ᵥ 0
                                          theorem ValuativeRel.vlt_of_vlt_of_vle {R : Type u_2} [CommRing R] [ValuativeRel R] {a b c : R} (hab : a <ᵥ b) (hbc : b ≤ᵥ c) :
                                          a <ᵥ c
                                          @[deprecated ValuativeRel.vlt_of_vlt_of_vle (since := "2025-12-20")]
                                          theorem ValuativeRel.srel_of_srel_of_rel {R : Type u_2} [CommRing R] [ValuativeRel R] {a b c : R} (hab : a <ᵥ b) (hbc : b ≤ᵥ c) :
                                          a <ᵥ c

                                          Alias of ValuativeRel.vlt_of_vlt_of_vle.

                                          theorem ValuativeRel.vlt.trans_vle {R : Type u_2} [CommRing R] [ValuativeRel R] {a b c : R} (hab : a <ᵥ b) (hbc : b ≤ᵥ c) :
                                          a <ᵥ c

                                          Alias of ValuativeRel.vlt_of_vlt_of_vle.

                                          @[deprecated ValuativeRel.vlt.trans_vle (since := "2025-12-20")]
                                          theorem ValuativeRel.SRel.trans_rel {R : Type u_2} [CommRing R] [ValuativeRel R] {a b c : R} (hab : a <ᵥ b) (hbc : b ≤ᵥ c) :
                                          a <ᵥ c

                                          Alias of ValuativeRel.vlt_of_vlt_of_vle.


                                          Alias of ValuativeRel.vlt_of_vlt_of_vle.

                                          theorem ValuativeRel.vlt_of_vle_of_vlt {R : Type u_2} [CommRing R] [ValuativeRel R] {a b c : R} (hab : a ≤ᵥ b) (hbc : b <ᵥ c) :
                                          a <ᵥ c
                                          @[deprecated ValuativeRel.mul_vlt_mul_iff_left (since := "2025-12-20")]
                                          theorem ValuativeRel.srel_of_rel_of_srel {R : Type u_1} [CommRing R] [ValuativeRel R] {x y z : R} (hz : 0 <ᵥ z) :
                                          x * z <ᵥ y * z x <ᵥ y

                                          Alias of ValuativeRel.mul_vlt_mul_iff_left.

                                          theorem ValuativeRel.vle.trans_vlt {R : Type u_2} [CommRing R] [ValuativeRel R] {a b c : R} (hab : a ≤ᵥ b) (hbc : b <ᵥ c) :
                                          a <ᵥ c

                                          Alias of ValuativeRel.vlt_of_vle_of_vlt.

                                          @[deprecated ValuativeRel.srel_of_rel_of_srel (since := "2025-12-20")]
                                          theorem ValuativeRel.Rel.trans_srel {R : Type u_1} [CommRing R] [ValuativeRel R] {x y z : R} (hz : 0 <ᵥ z) :
                                          x * z <ᵥ y * z x <ᵥ y

                                          Alias of ValuativeRel.mul_vlt_mul_iff_left.


                                          Alias of ValuativeRel.mul_vlt_mul_iff_left.

                                          theorem ValuativeRel.vlt.vle {R : Type u_2} [CommRing R] [ValuativeRel R] {a b : R} (hab : a <ᵥ b) :
                                          a ≤ᵥ b
                                          @[deprecated ValuativeRel.vlt.vle (since := "2025-12-20")]
                                          theorem ValuativeRel.SRel.rel {R : Type u_2} [CommRing R] [ValuativeRel R] {a b : R} (hab : a <ᵥ b) :
                                          a ≤ᵥ b

                                          Alias of ValuativeRel.vlt.vle.

                                          theorem ValuativeRel.vlt.trans {R : Type u_2} [CommRing R] [ValuativeRel R] {a b c : R} (hab : a <ᵥ b) (hbc : b <ᵥ c) :
                                          a <ᵥ c
                                          @[deprecated ValuativeRel.vlt.trans (since := "2025-12-20")]
                                          theorem ValuativeRel.SRel.trans {R : Type u_2} [CommRing R] [ValuativeRel R] {a b c : R} (hab : a <ᵥ b) (hbc : b <ᵥ c) :
                                          a <ᵥ c

                                          Alias of ValuativeRel.vlt.trans.

                                          @[deprecated ValuativeRel.mul_vle_mul_iff_left (since := "2026-01-06")]
                                          theorem ValuativeRel.vle_mul_right_iff {R : Type u_1} [CommRing R] [ValuativeRel R] {x y z : R} (hz : 0 <ᵥ z) :
                                          x * z ≤ᵥ y * z x ≤ᵥ y

                                          Alias of ValuativeRel.mul_vle_mul_iff_left.

                                          @[deprecated ValuativeRel.vle_mul_right_iff (since := "2025-12-20")]
                                          theorem ValuativeRel.rel_mul_right_iff {R : Type u_1} [CommRing R] [ValuativeRel R] {x y z : R} (hz : 0 <ᵥ z) :
                                          x * z ≤ᵥ y * z x ≤ᵥ y

                                          Alias of ValuativeRel.mul_vle_mul_iff_left.


                                          Alias of ValuativeRel.mul_vle_mul_iff_left.

                                          @[deprecated ValuativeRel.mul_vle_mul_iff_right (since := "2026-01-06")]
                                          theorem ValuativeRel.vle_mul_left_iff {R : Type u_1} [CommRing R] [ValuativeRel R] {x y z : R} (hx : 0 <ᵥ x) :
                                          x * y ≤ᵥ x * z y ≤ᵥ z

                                          Alias of ValuativeRel.mul_vle_mul_iff_right.

                                          @[deprecated ValuativeRel.mul_vle_mul_iff_right (since := "2025-12-20")]
                                          theorem ValuativeRel.rel_mul_left_iff {R : Type u_1} [CommRing R] [ValuativeRel R] {x y z : R} (hx : 0 <ᵥ x) :
                                          x * y ≤ᵥ x * z y ≤ᵥ z

                                          Alias of ValuativeRel.mul_vle_mul_iff_right.

                                          @[deprecated ValuativeRel.mul_vlt_mul_iff_left (since := "2026-01-06")]
                                          theorem ValuativeRel.vlt_mul_right_iff {R : Type u_1} [CommRing R] [ValuativeRel R] {x y z : R} (hz : 0 <ᵥ z) :
                                          x * z <ᵥ y * z x <ᵥ y

                                          Alias of ValuativeRel.mul_vlt_mul_iff_left.

                                          @[deprecated ValuativeRel.mul_vlt_mul_iff_left (since := "2025-12-20")]
                                          theorem ValuativeRel.srel_mul_right_iff {R : Type u_1} [CommRing R] [ValuativeRel R] {x y z : R} (hz : 0 <ᵥ z) :
                                          x * z <ᵥ y * z x <ᵥ y

                                          Alias of ValuativeRel.mul_vlt_mul_iff_left.

                                          @[deprecated ValuativeRel.mul_vlt_mul_right (since := "2025-12-20")]
                                          theorem ValuativeRel.srel_mul_right {R : Type u_1} [CommRing R] [ValuativeRel R] {x y z : R} (hx : 0 <ᵥ x) :
                                          y <ᵥ zx * y <ᵥ x * z

                                          Alias of the reverse direction of ValuativeRel.mul_vlt_mul_iff_right.


                                          Alias of the reverse direction of ValuativeRel.mul_vlt_mul_iff_right.

                                          @[deprecated ValuativeRel.mul_vlt_mul_iff_right (since := "2026-01-06")]
                                          theorem ValuativeRel.vlt_mul_left_iff {R : Type u_1} [CommRing R] [ValuativeRel R] {x y z : R} (hx : 0 <ᵥ x) :
                                          x * y <ᵥ x * z y <ᵥ z

                                          Alias of ValuativeRel.mul_vlt_mul_iff_right.

                                          @[deprecated ValuativeRel.mul_vlt_mul_iff_right (since := "2025-12-20")]
                                          theorem ValuativeRel.srel_mul_left_iff {R : Type u_1} [CommRing R] [ValuativeRel R] {x y z : R} (hx : 0 <ᵥ x) :
                                          x * y <ᵥ x * z y <ᵥ z

                                          Alias of ValuativeRel.mul_vlt_mul_iff_right.

                                          @[deprecated ValuativeRel.mul_vlt_mul_right (since := "2025-12-20")]
                                          theorem ValuativeRel.srel_mul_left {R : Type u_1} [CommRing R] [ValuativeRel R] {x y z : R} (hx : 0 <ᵥ x) :
                                          y <ᵥ zx * y <ᵥ x * z

                                          Alias of the reverse direction of ValuativeRel.mul_vlt_mul_iff_right.


                                          Alias of the reverse direction of ValuativeRel.mul_vlt_mul_iff_right.

                                          theorem ValuativeRel.mul_vlt_mul_of_vlt_of_vle {R : Type u_2} [CommRing R] [ValuativeRel R] {a b c d : R} (hab : a <ᵥ b) (hcd : c ≤ᵥ d) (hd : 0 <ᵥ d) :
                                          a * c <ᵥ b * d
                                          @[deprecated ValuativeRel.mul_vlt_mul_of_vlt_of_vle (since := "2025-12-20")]
                                          theorem ValuativeRel.mul_srel_mul_of_srel_of_rel {R : Type u_2} [CommRing R] [ValuativeRel R] {a b c d : R} (hab : a <ᵥ b) (hcd : c ≤ᵥ d) (hd : 0 <ᵥ d) :
                                          a * c <ᵥ b * d

                                          Alias of ValuativeRel.mul_vlt_mul_of_vlt_of_vle.

                                          theorem ValuativeRel.mul_vlt_mul_of_vle_of_vlt {R : Type u_2} [CommRing R] [ValuativeRel R] {a b c d : R} (hab : a ≤ᵥ b) (hcd : c <ᵥ d) (ha : 0 <ᵥ a) :
                                          a * c <ᵥ b * d
                                          @[deprecated ValuativeRel.mul_vlt_mul_of_vle_of_vlt (since := "2025-12-20")]
                                          theorem ValuativeRel.mul_srel_mul_of_rel_of_srel {R : Type u_2} [CommRing R] [ValuativeRel R] {a b c d : R} (hab : a ≤ᵥ b) (hcd : c <ᵥ d) (ha : 0 <ᵥ a) :
                                          a * c <ᵥ b * d

                                          Alias of ValuativeRel.mul_vlt_mul_of_vle_of_vlt.

                                          theorem ValuativeRel.mul_vlt_mul {R : Type u_2} [CommRing R] [ValuativeRel R] {a b c d : R} (hab : a <ᵥ b) (hcd : c <ᵥ d) :
                                          a * c <ᵥ b * d
                                          @[deprecated ValuativeRel.mul_vlt_mul (since := "2025-12-20")]
                                          theorem ValuativeRel.mul_srel_mul {R : Type u_2} [CommRing R] [ValuativeRel R] {a b c d : R} (hab : a <ᵥ b) (hcd : c <ᵥ d) :
                                          a * c <ᵥ b * d

                                          Alias of ValuativeRel.mul_vlt_mul.

                                          theorem ValuativeRel.pow_vle_pow {R : Type u_2} [CommRing R] [ValuativeRel R] {a b : R} (hab : a ≤ᵥ b) (n : ) :
                                          a ^ n ≤ᵥ b ^ n
                                          @[deprecated ValuativeRel.pow_vle_pow (since := "2025-12-20")]
                                          theorem ValuativeRel.pow_rel_pow {R : Type u_2} [CommRing R] [ValuativeRel R] {a b : R} (hab : a ≤ᵥ b) (n : ) :
                                          a ^ n ≤ᵥ b ^ n

                                          Alias of ValuativeRel.pow_vle_pow.

                                          theorem ValuativeRel.pow_vlt_pow {R : Type u_2} [CommRing R] [ValuativeRel R] {a b : R} (hab : a <ᵥ b) {n : } (hn : n 0) :
                                          a ^ n <ᵥ b ^ n
                                          @[deprecated ValuativeRel.pow_vlt_pow (since := "2025-12-20")]
                                          theorem ValuativeRel.pow_srel_pow {R : Type u_2} [CommRing R] [ValuativeRel R] {a b : R} (hab : a <ᵥ b) {n : } (hn : n 0) :
                                          a ^ n <ᵥ b ^ n

                                          Alias of ValuativeRel.pow_vlt_pow.

                                          theorem ValuativeRel.pow_vle_pow_of_vle_one {R : Type u_2} [CommRing R] [ValuativeRel R] {a : R} (ha : a ≤ᵥ 1) {n m : } (hnm : n m) :
                                          a ^ m ≤ᵥ a ^ n
                                          @[deprecated ValuativeRel.pow_vle_pow_of_vle_one (since := "2025-12-20")]
                                          theorem ValuativeRel.pow_rel_pow_of_rel_one {R : Type u_2} [CommRing R] [ValuativeRel R] {a : R} (ha : a ≤ᵥ 1) {n m : } (hnm : n m) :
                                          a ^ m ≤ᵥ a ^ n

                                          Alias of ValuativeRel.pow_vle_pow_of_vle_one.

                                          theorem ValuativeRel.pow_vle_pow_of_one_vle {R : Type u_2} [CommRing R] [ValuativeRel R] {a : R} (ha : 1 ≤ᵥ a) {n m : } (hnm : n m) :
                                          a ^ n ≤ᵥ a ^ m
                                          @[deprecated ValuativeRel.pow_vle_pow_of_one_vle (since := "2025-12-20")]
                                          theorem ValuativeRel.pow_rel_pow_of_one_rel {R : Type u_2} [CommRing R] [ValuativeRel R] {a : R} (ha : 1 ≤ᵥ a) {n m : } (hnm : n m) :
                                          a ^ n ≤ᵥ a ^ m

                                          Alias of ValuativeRel.pow_vle_pow_of_one_vle.

                                          @[simp]
                                          theorem ValuativeRel.vle_zero_iff {K : Type u_2} [Field K] [ValuativeRel K] {a : K} :
                                          a ≤ᵥ 0 a = 0
                                          @[deprecated ValuativeRel.vle_zero_iff (since := "2025-12-20")]
                                          theorem ValuativeRel.rel_zero_iff {K : Type u_2} [Field K] [ValuativeRel K] {a : K} :
                                          a ≤ᵥ 0 a = 0

                                          Alias of ValuativeRel.vle_zero_iff.

                                          @[simp]
                                          theorem ValuativeRel.zero_vlt_iff {K : Type u_2} [Field K] [ValuativeRel K] {a : K} :
                                          0 <ᵥ a a 0
                                          @[deprecated ValuativeRel.zero_vlt_iff (since := "2025-12-20")]
                                          theorem ValuativeRel.zero_srel_iff {K : Type u_2} [Field K] [ValuativeRel K] {a : K} :
                                          0 <ᵥ a a 0

                                          Alias of ValuativeRel.zero_vlt_iff.

                                          @[simp]
                                          theorem ValuativeRel.zero_veq_iff {K : Type u_2} [Field K] [ValuativeRel K] {a : K} :
                                          a =ᵥ 0 a = 0
                                          @[simp]
                                          theorem ValuativeRel.veq_zero_iff {K : Type u_2} [Field K] [ValuativeRel K] {a : K} :
                                          0 =ᵥ a 0 = a
                                          theorem ValuativeRel.vle_div_iff {K : Type u_2} [Field K] [ValuativeRel K] {a b c : K} (hc : c 0) :
                                          a ≤ᵥ b / c a * c ≤ᵥ b
                                          @[deprecated ValuativeRel.vle_div_iff (since := "2025-12-20")]
                                          theorem ValuativeRel.rel_div_iff {K : Type u_2} [Field K] [ValuativeRel K] {a b c : K} (hc : c 0) :
                                          a ≤ᵥ b / c a * c ≤ᵥ b

                                          Alias of ValuativeRel.vle_div_iff.

                                          theorem ValuativeRel.div_vle_iff {K : Type u_2} [Field K] [ValuativeRel K] {a b c : K} (hc : c 0) :
                                          a / c ≤ᵥ b a ≤ᵥ b * c
                                          @[deprecated ValuativeRel.div_vle_iff (since := "2025-12-20")]
                                          theorem ValuativeRel.div_rel_iff {K : Type u_2} [Field K] [ValuativeRel K] {a b c : K} (hc : c 0) :
                                          a / c ≤ᵥ b a ≤ᵥ b * c

                                          Alias of ValuativeRel.div_vle_iff.

                                          theorem ValuativeRel.one_vle_div_iff {K : Type u_2} [Field K] [ValuativeRel K] {a b : K} (hb : b 0) :
                                          1 ≤ᵥ a / b b ≤ᵥ a
                                          @[deprecated ValuativeRel.one_vle_div_iff (since := "2025-12-20")]
                                          theorem ValuativeRel.one_rel_div_iff {K : Type u_2} [Field K] [ValuativeRel K] {a b : K} (hb : b 0) :
                                          1 ≤ᵥ a / b b ≤ᵥ a

                                          Alias of ValuativeRel.one_vle_div_iff.

                                          theorem ValuativeRel.div_vle_one_iff {K : Type u_2} [Field K] [ValuativeRel K] {a b : K} (hb : b 0) :
                                          a / b ≤ᵥ 1 a ≤ᵥ b
                                          @[deprecated ValuativeRel.div_vle_one_iff (since := "2025-12-20")]
                                          theorem ValuativeRel.div_rel_one_iff {K : Type u_2} [Field K] [ValuativeRel K] {a b : K} (hb : b 0) :
                                          a / b ≤ᵥ 1 a ≤ᵥ b

                                          Alias of ValuativeRel.div_vle_one_iff.

                                          theorem ValuativeRel.one_vle_inv {K : Type u_2} [Field K] [ValuativeRel K] {x : K} (hx : x 0) :
                                          @[deprecated ValuativeRel.one_vle_inv (since := "2025-12-20")]
                                          theorem ValuativeRel.one_rel_inv {K : Type u_2} [Field K] [ValuativeRel K] {x : K} (hx : x 0) :

                                          Alias of ValuativeRel.one_vle_inv.

                                          theorem ValuativeRel.inv_vle_one {K : Type u_2} [Field K] [ValuativeRel K] {x : K} (hx : x 0) :
                                          @[deprecated ValuativeRel.inv_vle_one (since := "2025-12-20")]
                                          theorem ValuativeRel.inv_rel_one {K : Type u_2} [Field K] [ValuativeRel K] {x : K} (hx : x 0) :

                                          Alias of ValuativeRel.inv_vle_one.

                                          theorem ValuativeRel.inv_vlt_one {K : Type u_2} [Field K] [ValuativeRel K] {x : K} (hx : x 0) :
                                          @[deprecated ValuativeRel.inv_vlt_one (since := "2025-12-20")]
                                          theorem ValuativeRel.inv_srel_one {K : Type u_2} [Field K] [ValuativeRel K] {x : K} (hx : x 0) :

                                          Alias of ValuativeRel.inv_vlt_one.

                                          theorem ValuativeRel.one_vlt_inv {K : Type u_2} [Field K] [ValuativeRel K] {x : K} (hx : x 0) :
                                          @[deprecated ValuativeRel.one_vlt_inv (since := "2025-12-20")]
                                          theorem ValuativeRel.one_srel_inv {K : Type u_2} [Field K] [ValuativeRel K] {x : K} (hx : x 0) :

                                          Alias of ValuativeRel.one_vlt_inv.

                                          An auxiliary structure used to define IsRankLeOne.

                                          Instances For

                                            We say that a ring with a valuative relation is of rank one if there exists a strictly monotone embedding of the "canonical" value group-with-zero into the nonnegative reals, and the image of this embedding contains some element different from 0 and 1.

                                            Instances

                                              We say that a valuative relation on a ring is nontrivial if the value group-with-zero is nontrivial, meaning that it has an element which is different from 0 and 1.

                                              Instances
                                                theorem ValuativeRel.exists_valuation_div_valuation_eq {R : Type u_1} [CommRing R] [ValuativeRel R] (γ : ValueGroupWithZero R) :
                                                ∃ (a : R) (b : (posSubmonoid R)), (valuation R) a / (valuation R) b = γ

                                                A ring with a valuative relation is discrete if its value group-with-zero has a maximal element < 1.

                                                • has_maximal_element : γ < 1, δ < 1, δ γ
                                                Instances

                                                  The maximal element that is < 1 in the value group of a discrete valuation.

                                                  Equations
                                                  Instances For

                                                    We say that a topology on R is valuative if the neighborhoods of 0 in R are determined by the relation · ≤ᵥ ·.

                                                    Instances
                                                      @[deprecated IsValuativeTopology (since := "2025-08-01")]

                                                      Alias of IsValuativeTopology.


                                                      We say that a topology on R is valuative if the neighborhoods of 0 in R are determined by the relation · ≤ᵥ ·.

                                                      Equations
                                                      Instances For

                                                        Any valuation compatible with the valuative relation can be factored through the value group.

                                                        Equations
                                                        • One or more equations did not get rendered due to their size.
                                                        Instances For
                                                          @[simp]
                                                          theorem ValuativeRel.ValueGroupWithZero.embed_mk {R : Type u_1} {Γ : Type u_2} [CommRing R] [ValuativeRel R] [LinearOrderedCommGroupWithZero Γ] (v : Valuation R Γ) [v.Compatible] (x : R) (s : (posSubmonoid R)) :
                                                          (embed v) (ValueGroupWithZero.mk x s) = v x / v s
                                                          theorem ValuativeRel.one_apply_posSubmonoid {R : Type u_1} {Γ : Type u_2} [CommRing R] [ValuativeRel R] [LinearOrderedCommGroupWithZero Γ] [Nontrivial R] [NoZeroDivisors R] [DecidablePred fun (x : R) => x = 0] (x : (posSubmonoid R)) :
                                                          1 x = 1

                                                          For any x ∈ posSubmonoid R, the trivial valuation 1 : Valuation R Γ sends x to 1. In fact, this is true for any x ≠ 0. This lemma is a special case useful for shorthand of x ∈ posSubmonoid R → x ≠ 0.

                                                          class ValuativeExtension (A : Type u_1) (B : Type u_2) [CommRing A] [CommRing B] [ValuativeRel A] [ValuativeRel B] [Algebra A B] :

                                                          If B is an A algebra and both A and B have valuative relations, we say that B|A is a valuative extension if the valuative relation on A is induced by the one on B.

                                                          Instances
                                                            theorem ValuativeExtension.vlt_iff_vlt {A : Type u_1} {B : Type u_2} [CommRing A] [CommRing B] [ValuativeRel A] [ValuativeRel B] [Algebra A B] [ValuativeExtension A B] {a b : A} :
                                                            (algebraMap A B) a <ᵥ (algebraMap A B) b a <ᵥ b
                                                            @[deprecated ValuativeExtension.vlt_iff_vlt (since := "2025-12-20")]
                                                            theorem ValuativeExtension.srel_iff_srel {A : Type u_1} {B : Type u_2} [CommRing A] [CommRing B] [ValuativeRel A] [ValuativeRel B] [Algebra A B] [ValuativeExtension A B] {a b : A} :
                                                            (algebraMap A B) a <ᵥ (algebraMap A B) b a <ᵥ b

                                                            Alias of ValuativeExtension.vlt_iff_vlt.

                                                            The morphism of posSubmonoids associated to an algebra map. This is used in constructing ValuativeExtension.mapValueGroupWithZero.

                                                            Equations
                                                            Instances For
                                                              @[simp]
                                                              theorem ValuativeExtension.mapPosSubmonoid_apply_coe (A : Type u_1) (B : Type u_2) [CommRing A] [CommRing B] [ValuativeRel A] [ValuativeRel B] [Algebra A B] [ValuativeExtension A B] (x✝ : (ValuativeRel.posSubmonoid A)) :
                                                              ((mapPosSubmonoid A B) x✝) = (algebraMap A B) x✝

                                                              Any rank-at-most-one valuation has a mul-archimedean value group. The converse (for any compatible valuation) is ValuativeRel.isRankLeOne_iff_mulArchimedean which is in a later file since it requires a larger theory of reals.