Zulip Chat Archive
Stream: Is there code for X?
Topic: a * b < a * c and b < c implies 0 < a
Yongxi Lin (Aaron) (Feb 13 2026 at 15:27):
Do we have sth like this?
import Mathlib
theorem pos_of_mul_lt_lt {R : Type*} [Semiring R] [LinearOrder R] {a b c : R} [ExistsAddOfLE R]
[PosMulStrictMono R] [AddRightStrictMono R] [AddRightReflectLT R]
(h : a * b < a * c) (hbc : b < c) :
0 < a := by
rcases lt_trichotomy 0 a with (ha | ha | ha)
· exact ha
· subst ha; simp_all
· grind [mul_lt_mul_of_neg_left hbc ha]
Ruben Van de Velde (Feb 13 2026 at 19:28):
No, I can't find anything like it
Miyahara Kō (Feb 14 2026 at 03:48):
I couldn't find in Loogle, too.
Result: ?a * ?b < ?a * ?c
Result: ?a * ?c < ?b * ?c
Yury G. Kudryashov (Feb 14 2026 at 04:01):
- It looks like we don't have this.
- I think that you can replace
hbcwith a non-strict inequality, because ifb = c, thena * b = a * c, so this case is in fact impossible.
Yury G. Kudryashov (Feb 14 2026 at 04:02):
I think, the closest thing we have is docs#pos_of_mul_pos_right and nearby lemmas.
Yongxi Lin (Aaron) (Feb 14 2026 at 14:13):
Last updated: Feb 28 2026 at 14:05 UTC