Theorem: Lean4Axiomatic.Rational.le_substL_mul_neg (Lean4Axiomatic/Rational/Order.lean)

State before:
ℕ ℤ ℚ : Type
inst✝¹⁰ : Natural ℕ
inst✝⁹ : Integer ℤ
inst✝⁸ : Core ℚ
inst✝⁷ : Addition ℚ
inst✝⁶ : Multiplication ℚ
inst✝⁵ : Negation ℚ
inst✝⁴ : Sign ℚ
inst✝³ : Subtraction ℚ
inst✝² : Reciprocation ℚ
inst✝¹ : Division ℚ
inst✝ : Order ℚ
p q r : ℚ
⊢ r < 0 → p ≤ q → q * r ≤ p * r
Tactic:
intro (_ : r < 0) (_ : p ≤ q)
State after:
ℕ ℤ ℚ : Type
inst✝¹⁰ : Natural ℕ
inst✝⁹ : Integer ℤ
inst✝⁸ : Core ℚ
inst✝⁷ : Addition ℚ
inst✝⁶ : Multiplication ℚ
inst✝⁵ : Negation ℚ
inst✝⁴ : Sign ℚ
inst✝³ : Subtraction ℚ
inst✝² : Reciprocation ℚ
inst✝¹ : Division ℚ
inst✝ : Order ℚ
p q r : ℚ
x✝¹ : r < 0
x✝ : p ≤ q
⊢ q * r ≤ p * r

State before:
ℕ ℤ ℚ : Type
inst✝¹⁰ : Natural ℕ
inst✝⁹ : Integer ℤ
inst✝⁸ : Core ℚ
inst✝⁷ : Addition ℚ
inst✝⁶ : Multiplication ℚ
inst✝⁵ : Negation ℚ
inst✝⁴ : Sign ℚ
inst✝³ : Subtraction ℚ
inst✝² : Reciprocation ℚ
inst✝¹ : Division ℚ
inst✝ : Order ℚ
p q r : ℚ
x✝¹ : r < 0
x✝ : p ≤ q
⊢ q * r ≤ p * r
Tactic:
have : sgn r ≃ -1 := lt_zero_sgn.mp ‹r < 0›
State after:
ℕ ℤ ℚ : Type
inst✝¹⁰ : Natural ℕ
inst✝⁹ : Integer ℤ
inst✝⁸ : Core ℚ
inst✝⁷ : Addition ℚ
inst✝⁶ : Multiplication ℚ
inst✝⁵ : Negation ℚ
inst✝⁴ : Sign ℚ
inst✝³ : Subtraction ℚ
inst✝² : Reciprocation ℚ
inst✝¹ : Division ℚ
inst✝ : Order ℚ
p q r : ℚ
x✝¹ : r < 0
x✝ : p ≤ q
this : sgn r ≃ -1
⊢ q * r ≤ p * r

State before:
ℕ ℤ ℚ : Type
inst✝¹⁰ : Natural ℕ
inst✝⁹ : Integer ℤ
inst✝⁸ : Core ℚ
inst✝⁷ : Addition ℚ
inst✝⁶ : Multiplication ℚ
inst✝⁵ : Negation ℚ
inst✝⁴ : Sign ℚ
inst✝³ : Subtraction ℚ
inst✝² : Reciprocation ℚ
inst✝¹ : Division ℚ
inst✝ : Order ℚ
p q r : ℚ
x✝¹ : r < 0
x✝ : p ≤ q
this : sgn r ≃ -1
⊢ q * r ≤ p * r
Tactic:
have : sgn (p - q) ≄ 1 := le_sgn.mp ‹p ≤ q›
State after:
ℕ ℤ ℚ : Type
inst✝¹⁰ : Natural ℕ
inst✝⁹ : Integer ℤ
inst✝⁸ : Core ℚ
inst✝⁷ : Addition ℚ
inst✝⁶ : Multiplication ℚ
inst✝⁵ : Negation ℚ
inst✝⁴ : Sign ℚ
inst✝³ : Subtraction ℚ
inst✝² : Reciprocation ℚ
inst✝¹ : Division ℚ
inst✝ : Order ℚ
p q r : ℚ
x✝¹ : r < 0
x✝ : p ≤ q
this✝ : sgn r ≃ -1
this : sgn (p - q) ≄ 1
⊢ q * r ≤ p * r

State before:
ℕ ℤ ℚ : Type
inst✝¹⁰ : Natural ℕ
inst✝⁹ : Integer ℤ
inst✝⁸ : Core ℚ
inst✝⁷ : Addition ℚ
inst✝⁶ : Multiplication ℚ
inst✝⁵ : Negation ℚ
inst✝⁴ : Sign ℚ
inst✝³ : Subtraction ℚ
inst✝² : Reciprocation ℚ
inst✝¹ : Division ℚ
inst✝ : Order ℚ
p q r : ℚ
x✝¹ : r < 0
x✝ : p ≤ q
this✝ : sgn r ≃ -1
this : sgn (p - q) ≄ 1
⊢ q * r ≤ p * r
Tactic:
have : sgn (q * r - p * r) ≃ sgn (p - q) :=
  sgn_sub_cancelR_mul_neg ‹sgn r ≃ -1›
State after:
ℕ ℤ ℚ : Type
inst✝¹⁰ : Natural ℕ
inst✝⁹ : Integer ℤ
inst✝⁸ : Core ℚ
inst✝⁷ : Addition ℚ
inst✝⁶ : Multiplication ℚ
inst✝⁵ : Negation ℚ
inst✝⁴ : Sign ℚ
inst✝³ : Subtraction ℚ
inst✝² : Reciprocation ℚ
inst✝¹ : Division ℚ
inst✝ : Order ℚ
p q r : ℚ
x✝¹ : r < 0
x✝ : p ≤ q
this✝¹ : sgn r ≃ -1
this✝ : sgn (p - q) ≄ 1
this : sgn (q * r - p * r) ≃ sgn (p - q)
⊢ q * r ≤ p * r

State before:
ℕ ℤ ℚ : Type
inst✝¹⁰ : Natural ℕ
inst✝⁹ : Integer ℤ
inst✝⁸ : Core ℚ
inst✝⁷ : Addition ℚ
inst✝⁶ : Multiplication ℚ
inst✝⁵ : Negation ℚ
inst✝⁴ : Sign ℚ
inst✝³ : Subtraction ℚ
inst✝² : Reciprocation ℚ
inst✝¹ : Division ℚ
inst✝ : Order ℚ
p q r : ℚ
x✝¹ : r < 0
x✝ : p ≤ q
this✝¹ : sgn r ≃ -1
this✝ : sgn (p - q) ≄ 1
this : sgn (q * r - p * r) ≃ sgn (p - q)
⊢ q * r ≤ p * r
Tactic:
have : sgn (q * r - p * r) ≄ 1 :=
  AA.neqv_substL (Rel.symm this) ‹sgn (p - q) ≄ 1›
State after:
ℕ ℤ ℚ : Type
inst✝¹⁰ : Natural ℕ
inst✝⁹ : Integer ℤ
inst✝⁸ : Core ℚ
inst✝⁷ : Addition ℚ
inst✝⁶ : Multiplication ℚ
inst✝⁵ : Negation ℚ
inst✝⁴ : Sign ℚ
inst✝³ : Subtraction ℚ
inst✝² : Reciprocation ℚ
inst✝¹ : Division ℚ
inst✝ : Order ℚ
p q r : ℚ
x✝¹ : r < 0
x✝ : p ≤ q
this✝² : sgn r ≃ -1
this✝¹ : sgn (p - q) ≄ 1
this✝ : sgn (q * r - p * r) ≃ sgn (p - q)
this : sgn (q * r - p * r) ≄ 1
⊢ q * r ≤ p * r

State before:
ℕ ℤ ℚ : Type
inst✝¹⁰ : Natural ℕ
inst✝⁹ : Integer ℤ
inst✝⁸ : Core ℚ
inst✝⁷ : Addition ℚ
inst✝⁶ : Multiplication ℚ
inst✝⁵ : Negation ℚ
inst✝⁴ : Sign ℚ
inst✝³ : Subtraction ℚ
inst✝² : Reciprocation ℚ
inst✝¹ : Division ℚ
inst✝ : Order ℚ
p q r : ℚ
x✝¹ : r < 0
x✝ : p ≤ q
this✝² : sgn r ≃ -1
this✝¹ : sgn (p - q) ≄ 1
this✝ : sgn (q * r - p * r) ≃ sgn (p - q)
this : sgn (q * r - p * r) ≄ 1
⊢ q * r ≤ p * r
Tactic:
have : q * r ≤ p * r := le_sgn.mpr this
State after:
ℕ ℤ ℚ : Type
inst✝¹⁰ : Natural ℕ
inst✝⁹ : Integer ℤ
inst✝⁸ : Core ℚ
inst✝⁷ : Addition ℚ
inst✝⁶ : Multiplication ℚ
inst✝⁵ : Negation ℚ
inst✝⁴ : Sign ℚ
inst✝³ : Subtraction ℚ
inst✝² : Reciprocation ℚ
inst✝¹ : Division ℚ
inst✝ : Order ℚ
p q r : ℚ
x✝¹ : r < 0
x✝ : p ≤ q
this✝³ : sgn r ≃ -1
this✝² : sgn (p - q) ≄ 1
this✝¹ : sgn (q * r - p * r) ≃ sgn (p - q)
this✝ : sgn (q * r - p * r) ≄ 1
this : q * r ≤ p * r
⊢ q * r ≤ p * r

State before:
ℕ ℤ ℚ : Type
inst✝¹⁰ : Natural ℕ
inst✝⁹ : Integer ℤ
inst✝⁸ : Core ℚ
inst✝⁷ : Addition ℚ
inst✝⁶ : Multiplication ℚ
inst✝⁵ : Negation ℚ
inst✝⁴ : Sign ℚ
inst✝³ : Subtraction ℚ
inst✝² : Reciprocation ℚ
inst✝¹ : Division ℚ
inst✝ : Order ℚ
p q r : ℚ
x✝¹ : r < 0
x✝ : p ≤ q
this✝³ : sgn r ≃ -1
this✝² : sgn (p - q) ≄ 1
this✝¹ : sgn (q * r - p * r) ≃ sgn (p - q)
this✝ : sgn (q * r - p * r) ≄ 1
this : q * r ≤ p * r
⊢ q * r ≤ p * r
Tactic:
exact this
State after:
no goals