@@ -105,7 +105,7 @@ class ValuativePreorder (R : Type*) [CommRing R] [ValuativeRel R] [Preorder R] w
105105
106106namespace ValuativeRel
107107
108- variable {R : Type *} [CommRing R] [ValuativeRel R]
108+ variable {R : Type *} [CommRing R] [ValuativeRel R] {x y z : R}
109109
110110/-- The strict version of the valuative relation. -/
111111def SRel (x y : R) : Prop := ¬ y ≤ᵥ x
@@ -158,12 +158,24 @@ lemma mul_rel_mul {x x' y y' : R} (h1 : x ≤ᵥ y) (h2 : x' ≤ᵥ y') : x * x'
158158 calc x * x' ≤ᵥ x * y' := rel_mul_left _ h2
159159 _ ≤ᵥ y * y' := rel_mul_right _ h1
160160
161+ @[simp] lemma mul_rel_mul_iff_left (hz : 0 <ᵥ z) : x * z ≤ᵥ y * z ↔ x ≤ᵥ y :=
162+ ⟨rel_mul_cancel hz, rel_mul_right _⟩
163+
164+ @[simp] lemma mul_rel_mul_iff_right (hx : 0 <ᵥ x) : x * y ≤ᵥ x * z ↔ y ≤ᵥ z := by
165+ simp [mul_comm x, hx]
166+
167+ @[simp] lemma mul_srel_mul_iff_left (hz : 0 <ᵥ z) : x * z <ᵥ y * z ↔ x <ᵥ y :=
168+ (mul_rel_mul_iff_left hz).not
169+
170+ @[simp] lemma mul_srel_mul_iff_right (hx : 0 <ᵥ x) : x * y <ᵥ x * z ↔ y <ᵥ z :=
171+ (mul_rel_mul_iff_right hx).not
172+
161173@[deprecated (since := "2025-11-04")] alias rel_mul := mul_rel_mul
162174
163175theorem rel_add_cases (x y : R) : x + y ≤ᵥ x ∨ x + y ≤ᵥ y :=
164176 (rel_total y x).imp (fun h => rel_add .rfl h) (fun h => rel_add h .rfl)
165177
166- lemma zero_srel_mul {x y : R} (hx : 0 <ᵥ x) (hy : 0 <ᵥ y) : 0 <ᵥ x * y := by
178+ @[simp] lemma zero_srel_mul (hx : 0 <ᵥ x) (hy : 0 <ᵥ y) : 0 <ᵥ x * y := by
167179 contrapose! hy
168180 rw [not_srel_iff] at hy ⊢
169181 rw [show (0 : R) = x * 0 by simp, mul_comm x y, mul_comm x 0 ] at hy
@@ -176,17 +188,16 @@ def posSubmonoid : Submonoid R where
176188 mul_mem' := zero_srel_mul
177189 one_mem' := zero_srel_one
178190
191+ @[simp] lemma zero_srel_coe_posSubmonoid (x : posSubmonoid R) : 0 <ᵥ x.val := x.prop
192+
179193@[simp]
180194lemma posSubmonoid_def (x : R) : x ∈ posSubmonoid R ↔ 0 <ᵥ x := Iff.rfl
181195
182- @[simp]
183196lemma right_cancel_posSubmonoid (x y : R) (u : posSubmonoid R) :
184- x * u ≤ᵥ y * u ↔ x ≤ᵥ y := ⟨rel_mul_cancel u.prop, rel_mul_right _⟩
197+ x * u ≤ᵥ y * u ↔ x ≤ᵥ y := by simp
185198
186- @[simp]
187199lemma left_cancel_posSubmonoid (x y : R) (u : posSubmonoid R) :
188- u * x ≤ᵥ u * y ↔ x ≤ᵥ y := by
189- simp only [← right_cancel_posSubmonoid x y u, mul_comm]
200+ u * x ≤ᵥ u * y ↔ x ≤ᵥ y := by simp
190201
191202@[simp]
192203lemma val_posSubmonoid_ne_zero (x : posSubmonoid R) :
@@ -452,6 +463,10 @@ theorem ValueGroupWithZero.mk_lt_mk (x y : R) (t s : posSubmonoid R) :
452463 ValueGroupWithZero.mk x t < ValueGroupWithZero.mk y s ↔ x * s <ᵥ y * t := by
453464 rw [lt_iff_not_ge, srel_iff, mk_le_mk]
454465
466+ @[simp]
467+ lemma ValueGroupWithZero.mk_pos {x : R} {s : posSubmonoid R} :
468+ 0 < ValueGroupWithZero.mk x s ↔ 0 <ᵥ x := by rw [← mk_zero 1 ]; simp [-mk_zero]
469+
455470instance : Bot (ValueGroupWithZero R) where
456471 bot := 0
457472
0 commit comments