/-
Copyright (c) 2020 Frédéric Dupuis. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Frédéric Dupuis, Yaël Dillies

! This file was ported from Lean 3 source module algebra.order.module
! leanprover-community/mathlib commit 34ee86e6a59d911a8e4f89b68793ee7577ae79c7
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
import Mathbin.Algebra.Order.Smul

/-!
# Ordered module

> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
> Any changes to this file require a corresponding PR to mathlib4.

In this file we provide lemmas about `ordered_smul` that hold once a module structure is present.

## References

* https://en.wikipedia.org/wiki/Ordered_module

## Tags

ordered module, ordered scalar, ordered smul, ordered action, ordered vector space
-/

open Pointwise

variable {k M N : Type _}

instance [Semiring k] [OrderedAddCommMonoid M] [Module k M] : Module k Mᵒᵈ
    where
  add_smul r s x := OrderDual.rec (add_smul _ _) x
  zero_smul m := OrderDual.rec (zero_smul _) m

section Semiring

variable [OrderedSemiring k] [OrderedAddCommGroup M] [Module k M] [OrderedSMul k M] {a b : M}
  {c : k}

/- warning: smul_neg_iff_of_pos -> smul_neg_iff_of_pos is a dubious translation:
lean 3 declaration is
  forall {k : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} k] [_inst_2 : OrderedAddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} k M (OrderedSemiring.toSemiring.{u1} k _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))] [_inst_4 : OrderedSMul.{u1, u2} k M _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (OrderedSemiring.toSemiring.{u1} k _inst_1)) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} k M (OrderedSemiring.toSemiring.{u1} k _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3))] {a : M} {c : k}, (LT.lt.{u1} k (Preorder.toLT.{u1} k (PartialOrder.toPreorder.{u1} k (OrderedAddCommMonoid.toPartialOrder.{u1} k (OrderedSemiring.toOrderedAddCommMonoid.{u1} k _inst_1)))) (OfNat.ofNat.{u1} k 0 (OfNat.mk.{u1} k 0 (Zero.zero.{u1} k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (OrderedSemiring.toSemiring.{u1} k _inst_1)))))))) c) -> (Iff (LT.lt.{u2} M (Preorder.toLT.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))) (SMul.smul.{u1, u2} k M (SMulZeroClass.toHasSmul.{u1, u2} k M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} k M (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (OrderedSemiring.toSemiring.{u1} k _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (OrderedSemiring.toSemiring.{u1} k _inst_1)) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} k M (OrderedSemiring.toSemiring.{u1} k _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3)))) c a) (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))))))) (LT.lt.{u2} M (Preorder.toLT.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))) a (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))))))))
but is expected to have type
  forall {k : Type.{u2}} {M : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} k] [_inst_2 : OrderedAddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} k M (OrderedSemiring.toSemiring.{u2} k _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2))] [_inst_4 : OrderedSMul.{u2, u1} k M _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} k M (Semiring.toMonoidWithZero.{u2} k (OrderedSemiring.toSemiring.{u2} k _inst_1)) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} k M (OrderedSemiring.toSemiring.{u2} k _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) _inst_3))] {a : M} {c : k}, (LT.lt.{u2} k (Preorder.toLT.{u2} k (PartialOrder.toPreorder.{u2} k (OrderedSemiring.toPartialOrder.{u2} k _inst_1))) (OfNat.ofNat.{u2} k 0 (Zero.toOfNat0.{u2} k (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k (OrderedSemiring.toSemiring.{u2} k _inst_1))))) c) -> (Iff (LT.lt.{u1} M (Preorder.toLT.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommGroup.toPartialOrder.{u1} M _inst_2))) (HSMul.hSMul.{u2, u1, u1} k M M (instHSMul.{u2, u1} k M (SMulZeroClass.toSMul.{u2, u1} k M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} k M (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k (OrderedSemiring.toSemiring.{u2} k _inst_1))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} k M (Semiring.toMonoidWithZero.{u2} k (OrderedSemiring.toSemiring.{u2} k _inst_1)) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} k M (OrderedSemiring.toSemiring.{u2} k _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) _inst_3))))) c a) (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2))))))))) (LT.lt.{u1} M (Preorder.toLT.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommGroup.toPartialOrder.{u1} M _inst_2))) a (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2))))))))))
Case conversion may be inaccurate. Consider using '#align smul_neg_iff_of_pos smul_neg_iff_of_posₓ'. -/
/- can be generalized from `module k M` to `distrib_mul_action_with_zero k M` once it exists.
where `distrib_mul_action_with_zero k M`is the conjunction of `distrib_mul_action k M` and
`smul_with_zero k M`.-/
theorem smul_neg_iff_of_pos (hc : 0 < c) : c • a < 0 ↔ a < 0 :=
  by
  rw [← neg_neg a, smul_neg, neg_neg_iff_pos, neg_neg_iff_pos]
  exact smul_pos_iff_of_pos hc
#align smul_neg_iff_of_pos smul_neg_iff_of_pos

end Semiring

section Ring

variable [OrderedRing k] [OrderedAddCommGroup M] [Module k M] [OrderedSMul k M] {a b : M} {c : k}

/- warning: smul_lt_smul_of_neg -> smul_lt_smul_of_neg is a dubious translation:
lean 3 declaration is
  forall {k : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedRing.{u1} k] [_inst_2 : OrderedAddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))] [_inst_4 : OrderedSMul.{u1, u2} k M (OrderedRing.toOrderedSemiring.{u1} k _inst_1) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3))] {a : M} {b : M} {c : k}, (LT.lt.{u2} M (Preorder.toLT.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))) a b) -> (LT.lt.{u1} k (Preorder.toLT.{u1} k (PartialOrder.toPreorder.{u1} k (OrderedAddCommGroup.toPartialOrder.{u1} k (OrderedRing.toOrderedAddCommGroup.{u1} k _inst_1)))) c (OfNat.ofNat.{u1} k 0 (OfNat.mk.{u1} k 0 (Zero.zero.{u1} k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} k (NonAssocRing.toNonUnitalNonAssocRing.{u1} k (Ring.toNonAssocRing.{u1} k (OrderedRing.toRing.{u1} k _inst_1)))))))))) -> (LT.lt.{u2} M (Preorder.toLT.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))) (SMul.smul.{u1, u2} k M (SMulZeroClass.toHasSmul.{u1, u2} k M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} k M (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3)))) c b) (SMul.smul.{u1, u2} k M (SMulZeroClass.toHasSmul.{u1, u2} k M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} k M (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3)))) c a))
but is expected to have type
  forall {k : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedRing.{u1} k] [_inst_2 : OrderedAddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} k M (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2))] [_inst_4 : OrderedSMul.{u1, u2} k M (OrderedRing.toOrderedSemiring.{u1} k _inst_1) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} k M (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) _inst_3))] {a : M} {b : M} {c : k}, (LT.lt.{u2} M (Preorder.toLT.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))) a b) -> (LT.lt.{u1} k (Preorder.toLT.{u1} k (PartialOrder.toPreorder.{u1} k (OrderedRing.toPartialOrder.{u1} k _inst_1))) c (OfNat.ofNat.{u1} k 0 (Zero.toOfNat0.{u1} k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1))))))) -> (LT.lt.{u2} M (Preorder.toLT.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))) (HSMul.hSMul.{u1, u2, u2} k M M (instHSMul.{u1, u2} k M (SMulZeroClass.toSMul.{u1, u2} k M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u1, u2} k M (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1)))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} k M (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) _inst_3))))) c b) (HSMul.hSMul.{u1, u2, u2} k M M (instHSMul.{u1, u2} k M (SMulZeroClass.toSMul.{u1, u2} k M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u1, u2} k M (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1)))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} k M (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) _inst_3))))) c a))
Case conversion may be inaccurate. Consider using '#align smul_lt_smul_of_neg smul_lt_smul_of_negₓ'. -/
theorem smul_lt_smul_of_neg (h : a < b) (hc : c < 0) : c • b < c • a :=
  by
  rw [← neg_neg c, neg_smul, neg_smul (-c), neg_lt_neg_iff]
  exact smul_lt_smul_of_pos h (neg_pos_of_neg hc)
#align smul_lt_smul_of_neg smul_lt_smul_of_neg

/- warning: smul_le_smul_of_nonpos -> smul_le_smul_of_nonpos is a dubious translation:
lean 3 declaration is
  forall {k : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedRing.{u1} k] [_inst_2 : OrderedAddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))] [_inst_4 : OrderedSMul.{u1, u2} k M (OrderedRing.toOrderedSemiring.{u1} k _inst_1) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3))] {a : M} {b : M} {c : k}, (LE.le.{u2} M (Preorder.toLE.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))) a b) -> (LE.le.{u1} k (Preorder.toLE.{u1} k (PartialOrder.toPreorder.{u1} k (OrderedAddCommGroup.toPartialOrder.{u1} k (OrderedRing.toOrderedAddCommGroup.{u1} k _inst_1)))) c (OfNat.ofNat.{u1} k 0 (OfNat.mk.{u1} k 0 (Zero.zero.{u1} k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} k (NonAssocRing.toNonUnitalNonAssocRing.{u1} k (Ring.toNonAssocRing.{u1} k (OrderedRing.toRing.{u1} k _inst_1)))))))))) -> (LE.le.{u2} M (Preorder.toLE.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))) (SMul.smul.{u1, u2} k M (SMulZeroClass.toHasSmul.{u1, u2} k M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} k M (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3)))) c b) (SMul.smul.{u1, u2} k M (SMulZeroClass.toHasSmul.{u1, u2} k M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} k M (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3)))) c a))
but is expected to have type
  forall {k : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedRing.{u1} k] [_inst_2 : OrderedAddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} k M (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2))] [_inst_4 : OrderedSMul.{u1, u2} k M (OrderedRing.toOrderedSemiring.{u1} k _inst_1) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} k M (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) _inst_3))] {a : M} {b : M} {c : k}, (LE.le.{u2} M (Preorder.toLE.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))) a b) -> (LE.le.{u1} k (Preorder.toLE.{u1} k (PartialOrder.toPreorder.{u1} k (OrderedRing.toPartialOrder.{u1} k _inst_1))) c (OfNat.ofNat.{u1} k 0 (Zero.toOfNat0.{u1} k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1))))))) -> (LE.le.{u2} M (Preorder.toLE.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))) (HSMul.hSMul.{u1, u2, u2} k M M (instHSMul.{u1, u2} k M (SMulZeroClass.toSMul.{u1, u2} k M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u1, u2} k M (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1)))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} k M (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) _inst_3))))) c b) (HSMul.hSMul.{u1, u2, u2} k M M (instHSMul.{u1, u2} k M (SMulZeroClass.toSMul.{u1, u2} k M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u1, u2} k M (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1)))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} k M (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) _inst_3))))) c a))
Case conversion may be inaccurate. Consider using '#align smul_le_smul_of_nonpos smul_le_smul_of_nonposₓ'. -/
theorem smul_le_smul_of_nonpos (h : a ≤ b) (hc : c ≤ 0) : c • b ≤ c • a :=
  by
  rw [← neg_neg c, neg_smul, neg_smul (-c), neg_le_neg_iff]
  exact smul_le_smul_of_nonneg h (neg_nonneg_of_nonpos hc)
#align smul_le_smul_of_nonpos smul_le_smul_of_nonpos

/- warning: eq_of_smul_eq_smul_of_neg_of_le -> eq_of_smul_eq_smul_of_neg_of_le is a dubious translation:
lean 3 declaration is
  forall {k : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedRing.{u1} k] [_inst_2 : OrderedAddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))] [_inst_4 : OrderedSMul.{u1, u2} k M (OrderedRing.toOrderedSemiring.{u1} k _inst_1) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3))] {a : M} {b : M} {c : k}, (Eq.{succ u2} M (SMul.smul.{u1, u2} k M (SMulZeroClass.toHasSmul.{u1, u2} k M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} k M (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3)))) c a) (SMul.smul.{u1, u2} k M (SMulZeroClass.toHasSmul.{u1, u2} k M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} k M (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3)))) c b)) -> (LT.lt.{u1} k (Preorder.toLT.{u1} k (PartialOrder.toPreorder.{u1} k (OrderedAddCommGroup.toPartialOrder.{u1} k (OrderedRing.toOrderedAddCommGroup.{u1} k _inst_1)))) c (OfNat.ofNat.{u1} k 0 (OfNat.mk.{u1} k 0 (Zero.zero.{u1} k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} k (NonAssocRing.toNonUnitalNonAssocRing.{u1} k (Ring.toNonAssocRing.{u1} k (OrderedRing.toRing.{u1} k _inst_1)))))))))) -> (LE.le.{u2} M (Preorder.toLE.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))) a b) -> (Eq.{succ u2} M a b)
but is expected to have type
  forall {k : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedRing.{u1} k] [_inst_2 : OrderedAddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} k M (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2))] [_inst_4 : OrderedSMul.{u1, u2} k M (OrderedRing.toOrderedSemiring.{u1} k _inst_1) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} k M (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) _inst_3))] {a : M} {b : M} {c : k}, (Eq.{succ u2} M (HSMul.hSMul.{u1, u2, u2} k M M (instHSMul.{u1, u2} k M (SMulZeroClass.toSMul.{u1, u2} k M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u1, u2} k M (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1)))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} k M (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) _inst_3))))) c a) (HSMul.hSMul.{u1, u2, u2} k M M (instHSMul.{u1, u2} k M (SMulZeroClass.toSMul.{u1, u2} k M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u1, u2} k M (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1)))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} k M (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) _inst_3))))) c b)) -> (LT.lt.{u1} k (Preorder.toLT.{u1} k (PartialOrder.toPreorder.{u1} k (OrderedRing.toPartialOrder.{u1} k _inst_1))) c (OfNat.ofNat.{u1} k 0 (Zero.toOfNat0.{u1} k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1))))))) -> (LE.le.{u2} M (Preorder.toLE.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))) a b) -> (Eq.{succ u2} M a b)
Case conversion may be inaccurate. Consider using '#align eq_of_smul_eq_smul_of_neg_of_le eq_of_smul_eq_smul_of_neg_of_leₓ'. -/
theorem eq_of_smul_eq_smul_of_neg_of_le (hab : c • a = c • b) (hc : c < 0) (h : a ≤ b) : a = b :=
  by
  rw [← neg_neg c, neg_smul, neg_smul (-c), neg_inj] at hab
  exact eq_of_smul_eq_smul_of_pos_of_le hab (neg_pos_of_neg hc) h
#align eq_of_smul_eq_smul_of_neg_of_le eq_of_smul_eq_smul_of_neg_of_le

/- warning: lt_of_smul_lt_smul_of_nonpos -> lt_of_smul_lt_smul_of_nonpos is a dubious translation:
lean 3 declaration is
  forall {k : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedRing.{u1} k] [_inst_2 : OrderedAddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))] [_inst_4 : OrderedSMul.{u1, u2} k M (OrderedRing.toOrderedSemiring.{u1} k _inst_1) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3))] {a : M} {b : M} {c : k}, (LT.lt.{u2} M (Preorder.toLT.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))) (SMul.smul.{u1, u2} k M (SMulZeroClass.toHasSmul.{u1, u2} k M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} k M (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3)))) c a) (SMul.smul.{u1, u2} k M (SMulZeroClass.toHasSmul.{u1, u2} k M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} k M (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3)))) c b)) -> (LE.le.{u1} k (Preorder.toLE.{u1} k (PartialOrder.toPreorder.{u1} k (OrderedAddCommGroup.toPartialOrder.{u1} k (OrderedRing.toOrderedAddCommGroup.{u1} k _inst_1)))) c (OfNat.ofNat.{u1} k 0 (OfNat.mk.{u1} k 0 (Zero.zero.{u1} k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} k (NonAssocRing.toNonUnitalNonAssocRing.{u1} k (Ring.toNonAssocRing.{u1} k (OrderedRing.toRing.{u1} k _inst_1)))))))))) -> (LT.lt.{u2} M (Preorder.toLT.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))) b a)
but is expected to have type
  forall {k : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedRing.{u1} k] [_inst_2 : OrderedAddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} k M (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2))] [_inst_4 : OrderedSMul.{u1, u2} k M (OrderedRing.toOrderedSemiring.{u1} k _inst_1) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} k M (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) _inst_3))] {a : M} {b : M} {c : k}, (LT.lt.{u2} M (Preorder.toLT.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))) (HSMul.hSMul.{u1, u2, u2} k M M (instHSMul.{u1, u2} k M (SMulZeroClass.toSMul.{u1, u2} k M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u1, u2} k M (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1)))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} k M (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) _inst_3))))) c a) (HSMul.hSMul.{u1, u2, u2} k M M (instHSMul.{u1, u2} k M (SMulZeroClass.toSMul.{u1, u2} k M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u1, u2} k M (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1)))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} k M (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) _inst_3))))) c b)) -> (LE.le.{u1} k (Preorder.toLE.{u1} k (PartialOrder.toPreorder.{u1} k (OrderedRing.toPartialOrder.{u1} k _inst_1))) c (OfNat.ofNat.{u1} k 0 (Zero.toOfNat0.{u1} k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1))))))) -> (LT.lt.{u2} M (Preorder.toLT.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))) b a)
Case conversion may be inaccurate. Consider using '#align lt_of_smul_lt_smul_of_nonpos lt_of_smul_lt_smul_of_nonposₓ'. -/
theorem lt_of_smul_lt_smul_of_nonpos (h : c • a < c • b) (hc : c ≤ 0) : b < a :=
  by
  rw [← neg_neg c, neg_smul, neg_smul (-c), neg_lt_neg_iff] at h
  exact lt_of_smul_lt_smul_of_nonneg h (neg_nonneg_of_nonpos hc)
#align lt_of_smul_lt_smul_of_nonpos lt_of_smul_lt_smul_of_nonpos

/- warning: smul_lt_smul_iff_of_neg -> smul_lt_smul_iff_of_neg is a dubious translation:
lean 3 declaration is
  forall {k : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedRing.{u1} k] [_inst_2 : OrderedAddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))] [_inst_4 : OrderedSMul.{u1, u2} k M (OrderedRing.toOrderedSemiring.{u1} k _inst_1) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3))] {a : M} {b : M} {c : k}, (LT.lt.{u1} k (Preorder.toLT.{u1} k (PartialOrder.toPreorder.{u1} k (OrderedAddCommGroup.toPartialOrder.{u1} k (OrderedRing.toOrderedAddCommGroup.{u1} k _inst_1)))) c (OfNat.ofNat.{u1} k 0 (OfNat.mk.{u1} k 0 (Zero.zero.{u1} k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} k (NonAssocRing.toNonUnitalNonAssocRing.{u1} k (Ring.toNonAssocRing.{u1} k (OrderedRing.toRing.{u1} k _inst_1)))))))))) -> (Iff (LT.lt.{u2} M (Preorder.toLT.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))) (SMul.smul.{u1, u2} k M (SMulZeroClass.toHasSmul.{u1, u2} k M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} k M (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3)))) c a) (SMul.smul.{u1, u2} k M (SMulZeroClass.toHasSmul.{u1, u2} k M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} k M (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3)))) c b)) (LT.lt.{u2} M (Preorder.toLT.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))) b a))
but is expected to have type
  forall {k : Type.{u2}} {M : Type.{u1}} [_inst_1 : OrderedRing.{u2} k] [_inst_2 : OrderedAddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} k M (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2))] [_inst_4 : OrderedSMul.{u2, u1} k M (OrderedRing.toOrderedSemiring.{u2} k _inst_1) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} k M (Semiring.toMonoidWithZero.{u2} k (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} k M (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) _inst_3))] {a : M} {b : M} {c : k}, (LT.lt.{u2} k (Preorder.toLT.{u2} k (PartialOrder.toPreorder.{u2} k (OrderedRing.toPartialOrder.{u2} k _inst_1))) c (OfNat.ofNat.{u2} k 0 (Zero.toOfNat0.{u2} k (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1))))))) -> (Iff (LT.lt.{u1} M (Preorder.toLT.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommGroup.toPartialOrder.{u1} M _inst_2))) (HSMul.hSMul.{u2, u1, u1} k M M (instHSMul.{u2, u1} k M (SMulZeroClass.toSMul.{u2, u1} k M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} k M (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1)))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} k M (Semiring.toMonoidWithZero.{u2} k (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} k M (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) _inst_3))))) c a) (HSMul.hSMul.{u2, u1, u1} k M M (instHSMul.{u2, u1} k M (SMulZeroClass.toSMul.{u2, u1} k M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} k M (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1)))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} k M (Semiring.toMonoidWithZero.{u2} k (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} k M (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) _inst_3))))) c b)) (LT.lt.{u1} M (Preorder.toLT.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommGroup.toPartialOrder.{u1} M _inst_2))) b a))
Case conversion may be inaccurate. Consider using '#align smul_lt_smul_iff_of_neg smul_lt_smul_iff_of_negₓ'. -/
theorem smul_lt_smul_iff_of_neg (hc : c < 0) : c • a < c • b ↔ b < a :=
  by
  rw [← neg_neg c, neg_smul, neg_smul (-c), neg_lt_neg_iff]
  exact smul_lt_smul_iff_of_pos (neg_pos_of_neg hc)
#align smul_lt_smul_iff_of_neg smul_lt_smul_iff_of_neg

/- warning: smul_neg_iff_of_neg -> smul_neg_iff_of_neg is a dubious translation:
lean 3 declaration is
  forall {k : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedRing.{u1} k] [_inst_2 : OrderedAddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))] [_inst_4 : OrderedSMul.{u1, u2} k M (OrderedRing.toOrderedSemiring.{u1} k _inst_1) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3))] {a : M} {c : k}, (LT.lt.{u1} k (Preorder.toLT.{u1} k (PartialOrder.toPreorder.{u1} k (OrderedAddCommGroup.toPartialOrder.{u1} k (OrderedRing.toOrderedAddCommGroup.{u1} k _inst_1)))) c (OfNat.ofNat.{u1} k 0 (OfNat.mk.{u1} k 0 (Zero.zero.{u1} k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} k (NonAssocRing.toNonUnitalNonAssocRing.{u1} k (Ring.toNonAssocRing.{u1} k (OrderedRing.toRing.{u1} k _inst_1)))))))))) -> (Iff (LT.lt.{u2} M (Preorder.toLT.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))) (SMul.smul.{u1, u2} k M (SMulZeroClass.toHasSmul.{u1, u2} k M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} k M (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3)))) c a) (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))))))) (LT.lt.{u2} M (Preorder.toLT.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))) (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))))))) a))
but is expected to have type
  forall {k : Type.{u2}} {M : Type.{u1}} [_inst_1 : OrderedRing.{u2} k] [_inst_2 : OrderedAddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} k M (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2))] [_inst_4 : OrderedSMul.{u2, u1} k M (OrderedRing.toOrderedSemiring.{u2} k _inst_1) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} k M (Semiring.toMonoidWithZero.{u2} k (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} k M (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) _inst_3))] {a : M} {c : k}, (LT.lt.{u2} k (Preorder.toLT.{u2} k (PartialOrder.toPreorder.{u2} k (OrderedRing.toPartialOrder.{u2} k _inst_1))) c (OfNat.ofNat.{u2} k 0 (Zero.toOfNat0.{u2} k (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1))))))) -> (Iff (LT.lt.{u1} M (Preorder.toLT.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommGroup.toPartialOrder.{u1} M _inst_2))) (HSMul.hSMul.{u2, u1, u1} k M M (instHSMul.{u2, u1} k M (SMulZeroClass.toSMul.{u2, u1} k M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} k M (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1)))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} k M (Semiring.toMonoidWithZero.{u2} k (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} k M (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) _inst_3))))) c a) (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2))))))))) (LT.lt.{u1} M (Preorder.toLT.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommGroup.toPartialOrder.{u1} M _inst_2))) (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))))) a))
Case conversion may be inaccurate. Consider using '#align smul_neg_iff_of_neg smul_neg_iff_of_negₓ'. -/
theorem smul_neg_iff_of_neg (hc : c < 0) : c • a < 0 ↔ 0 < a :=
  by
  rw [← neg_neg c, neg_smul, neg_neg_iff_pos]
  exact smul_pos_iff_of_pos (neg_pos_of_neg hc)
#align smul_neg_iff_of_neg smul_neg_iff_of_neg

/- warning: smul_pos_iff_of_neg -> smul_pos_iff_of_neg is a dubious translation:
lean 3 declaration is
  forall {k : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedRing.{u1} k] [_inst_2 : OrderedAddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))] [_inst_4 : OrderedSMul.{u1, u2} k M (OrderedRing.toOrderedSemiring.{u1} k _inst_1) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3))] {a : M} {c : k}, (LT.lt.{u1} k (Preorder.toLT.{u1} k (PartialOrder.toPreorder.{u1} k (OrderedAddCommGroup.toPartialOrder.{u1} k (OrderedRing.toOrderedAddCommGroup.{u1} k _inst_1)))) c (OfNat.ofNat.{u1} k 0 (OfNat.mk.{u1} k 0 (Zero.zero.{u1} k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} k (NonAssocRing.toNonUnitalNonAssocRing.{u1} k (Ring.toNonAssocRing.{u1} k (OrderedRing.toRing.{u1} k _inst_1)))))))))) -> (Iff (LT.lt.{u2} M (Preorder.toLT.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))) (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))))))) (SMul.smul.{u1, u2} k M (SMulZeroClass.toHasSmul.{u1, u2} k M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} k M (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3)))) c a)) (LT.lt.{u2} M (Preorder.toLT.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))) a (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))))))))
but is expected to have type
  forall {k : Type.{u2}} {M : Type.{u1}} [_inst_1 : OrderedRing.{u2} k] [_inst_2 : OrderedAddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} k M (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2))] [_inst_4 : OrderedSMul.{u2, u1} k M (OrderedRing.toOrderedSemiring.{u2} k _inst_1) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} k M (Semiring.toMonoidWithZero.{u2} k (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} k M (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) _inst_3))] {a : M} {c : k}, (LT.lt.{u2} k (Preorder.toLT.{u2} k (PartialOrder.toPreorder.{u2} k (OrderedRing.toPartialOrder.{u2} k _inst_1))) c (OfNat.ofNat.{u2} k 0 (Zero.toOfNat0.{u2} k (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1))))))) -> (Iff (LT.lt.{u1} M (Preorder.toLT.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommGroup.toPartialOrder.{u1} M _inst_2))) (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))))) (HSMul.hSMul.{u2, u1, u1} k M M (instHSMul.{u2, u1} k M (SMulZeroClass.toSMul.{u2, u1} k M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} k M (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1)))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} k M (Semiring.toMonoidWithZero.{u2} k (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} k M (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) _inst_3))))) c a)) (LT.lt.{u1} M (Preorder.toLT.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommGroup.toPartialOrder.{u1} M _inst_2))) a (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2))))))))))
Case conversion may be inaccurate. Consider using '#align smul_pos_iff_of_neg smul_pos_iff_of_negₓ'. -/
theorem smul_pos_iff_of_neg (hc : c < 0) : 0 < c • a ↔ a < 0 :=
  by
  rw [← neg_neg c, neg_smul, neg_pos]
  exact smul_neg_iff_of_pos (neg_pos_of_neg hc)
#align smul_pos_iff_of_neg smul_pos_iff_of_neg

/- warning: smul_nonpos_of_nonpos_of_nonneg -> smul_nonpos_of_nonpos_of_nonneg is a dubious translation:
lean 3 declaration is
  forall {k : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedRing.{u1} k] [_inst_2 : OrderedAddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))] [_inst_4 : OrderedSMul.{u1, u2} k M (OrderedRing.toOrderedSemiring.{u1} k _inst_1) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3))] {a : M} {c : k}, (LE.le.{u1} k (Preorder.toLE.{u1} k (PartialOrder.toPreorder.{u1} k (OrderedAddCommGroup.toPartialOrder.{u1} k (OrderedRing.toOrderedAddCommGroup.{u1} k _inst_1)))) c (OfNat.ofNat.{u1} k 0 (OfNat.mk.{u1} k 0 (Zero.zero.{u1} k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} k (NonAssocRing.toNonUnitalNonAssocRing.{u1} k (Ring.toNonAssocRing.{u1} k (OrderedRing.toRing.{u1} k _inst_1)))))))))) -> (LE.le.{u2} M (Preorder.toLE.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))) (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))))))) a) -> (LE.le.{u2} M (Preorder.toLE.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))) (SMul.smul.{u1, u2} k M (SMulZeroClass.toHasSmul.{u1, u2} k M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} k M (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3)))) c a) (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))))))))
but is expected to have type
  forall {k : Type.{u2}} {M : Type.{u1}} [_inst_1 : OrderedRing.{u2} k] [_inst_2 : OrderedAddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} k M (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2))] [_inst_4 : OrderedSMul.{u2, u1} k M (OrderedRing.toOrderedSemiring.{u2} k _inst_1) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} k M (Semiring.toMonoidWithZero.{u2} k (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} k M (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) _inst_3))] {a : M} {c : k}, (LE.le.{u2} k (Preorder.toLE.{u2} k (PartialOrder.toPreorder.{u2} k (OrderedRing.toPartialOrder.{u2} k _inst_1))) c (OfNat.ofNat.{u2} k 0 (Zero.toOfNat0.{u2} k (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1))))))) -> (LE.le.{u1} M (Preorder.toLE.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommGroup.toPartialOrder.{u1} M _inst_2))) (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))))) a) -> (LE.le.{u1} M (Preorder.toLE.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommGroup.toPartialOrder.{u1} M _inst_2))) (HSMul.hSMul.{u2, u1, u1} k M M (instHSMul.{u2, u1} k M (SMulZeroClass.toSMul.{u2, u1} k M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} k M (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1)))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} k M (Semiring.toMonoidWithZero.{u2} k (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} k M (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) _inst_3))))) c a) (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))))))
Case conversion may be inaccurate. Consider using '#align smul_nonpos_of_nonpos_of_nonneg smul_nonpos_of_nonpos_of_nonnegₓ'. -/
theorem smul_nonpos_of_nonpos_of_nonneg (hc : c ≤ 0) (ha : 0 ≤ a) : c • a ≤ 0 :=
  calc
    c • a ≤ c • 0 := smul_le_smul_of_nonpos ha hc
    _ = 0 := smul_zero c

#align smul_nonpos_of_nonpos_of_nonneg smul_nonpos_of_nonpos_of_nonneg

/- warning: smul_nonneg_of_nonpos_of_nonpos -> smul_nonneg_of_nonpos_of_nonpos is a dubious translation:
lean 3 declaration is
  forall {k : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedRing.{u1} k] [_inst_2 : OrderedAddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))] [_inst_4 : OrderedSMul.{u1, u2} k M (OrderedRing.toOrderedSemiring.{u1} k _inst_1) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3))] {a : M} {c : k}, (LE.le.{u1} k (Preorder.toLE.{u1} k (PartialOrder.toPreorder.{u1} k (OrderedAddCommGroup.toPartialOrder.{u1} k (OrderedRing.toOrderedAddCommGroup.{u1} k _inst_1)))) c (OfNat.ofNat.{u1} k 0 (OfNat.mk.{u1} k 0 (Zero.zero.{u1} k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} k (NonAssocRing.toNonUnitalNonAssocRing.{u1} k (Ring.toNonAssocRing.{u1} k (OrderedRing.toRing.{u1} k _inst_1)))))))))) -> (LE.le.{u2} M (Preorder.toLE.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))) a (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))))))) -> (LE.le.{u2} M (Preorder.toLE.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))) (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))))))) (SMul.smul.{u1, u2} k M (SMulZeroClass.toHasSmul.{u1, u2} k M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} k M (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3)))) c a))
but is expected to have type
  forall {k : Type.{u2}} {M : Type.{u1}} [_inst_1 : OrderedRing.{u2} k] [_inst_2 : OrderedAddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} k M (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2))] [_inst_4 : OrderedSMul.{u2, u1} k M (OrderedRing.toOrderedSemiring.{u2} k _inst_1) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} k M (Semiring.toMonoidWithZero.{u2} k (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} k M (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) _inst_3))] {a : M} {c : k}, (LE.le.{u2} k (Preorder.toLE.{u2} k (PartialOrder.toPreorder.{u2} k (OrderedRing.toPartialOrder.{u2} k _inst_1))) c (OfNat.ofNat.{u2} k 0 (Zero.toOfNat0.{u2} k (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1))))))) -> (LE.le.{u1} M (Preorder.toLE.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommGroup.toPartialOrder.{u1} M _inst_2))) a (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2))))))))) -> (LE.le.{u1} M (Preorder.toLE.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommGroup.toPartialOrder.{u1} M _inst_2))) (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))))) (HSMul.hSMul.{u2, u1, u1} k M M (instHSMul.{u2, u1} k M (SMulZeroClass.toSMul.{u2, u1} k M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} k M (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1)))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} k M (Semiring.toMonoidWithZero.{u2} k (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} k M (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) _inst_3))))) c a))
Case conversion may be inaccurate. Consider using '#align smul_nonneg_of_nonpos_of_nonpos smul_nonneg_of_nonpos_of_nonposₓ'. -/
theorem smul_nonneg_of_nonpos_of_nonpos (hc : c ≤ 0) (ha : a ≤ 0) : 0 ≤ c • a :=
  @smul_nonpos_of_nonpos_of_nonneg k Mᵒᵈ _ _ _ _ _ _ hc ha
#align smul_nonneg_of_nonpos_of_nonpos smul_nonneg_of_nonpos_of_nonpos

/- warning: smul_pos_of_neg_of_neg -> smul_pos_of_neg_of_neg is a dubious translation:
lean 3 declaration is
  forall {k : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedRing.{u1} k] [_inst_2 : OrderedAddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))] [_inst_4 : OrderedSMul.{u1, u2} k M (OrderedRing.toOrderedSemiring.{u1} k _inst_1) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3))] {a : M} {c : k}, (LT.lt.{u1} k (Preorder.toLT.{u1} k (PartialOrder.toPreorder.{u1} k (OrderedAddCommGroup.toPartialOrder.{u1} k (OrderedRing.toOrderedAddCommGroup.{u1} k _inst_1)))) c (OfNat.ofNat.{u1} k 0 (OfNat.mk.{u1} k 0 (Zero.zero.{u1} k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} k (NonAssocRing.toNonUnitalNonAssocRing.{u1} k (Ring.toNonAssocRing.{u1} k (OrderedRing.toRing.{u1} k _inst_1)))))))))) -> (LT.lt.{u2} M (Preorder.toLT.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))) a (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))))))) -> (LT.lt.{u2} M (Preorder.toLT.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))) (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))))))) (SMul.smul.{u1, u2} k M (SMulZeroClass.toHasSmul.{u1, u2} k M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} k M (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3)))) c a))
but is expected to have type
  forall {k : Type.{u2}} {M : Type.{u1}} [_inst_1 : OrderedRing.{u2} k] [_inst_2 : OrderedAddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} k M (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2))] [_inst_4 : OrderedSMul.{u2, u1} k M (OrderedRing.toOrderedSemiring.{u2} k _inst_1) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} k M (Semiring.toMonoidWithZero.{u2} k (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} k M (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) _inst_3))] {a : M} {c : k}, (LT.lt.{u2} k (Preorder.toLT.{u2} k (PartialOrder.toPreorder.{u2} k (OrderedRing.toPartialOrder.{u2} k _inst_1))) c (OfNat.ofNat.{u2} k 0 (Zero.toOfNat0.{u2} k (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1))))))) -> (LT.lt.{u1} M (Preorder.toLT.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommGroup.toPartialOrder.{u1} M _inst_2))) a (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2))))))))) -> (LT.lt.{u1} M (Preorder.toLT.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommGroup.toPartialOrder.{u1} M _inst_2))) (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))))) (HSMul.hSMul.{u2, u1, u1} k M M (instHSMul.{u2, u1} k M (SMulZeroClass.toSMul.{u2, u1} k M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} k M (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1)))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} k M (Semiring.toMonoidWithZero.{u2} k (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} k M (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) _inst_3))))) c a))
Case conversion may be inaccurate. Consider using '#align smul_pos_of_neg_of_neg smul_pos_of_neg_of_negₓ'. -/
alias smul_pos_iff_of_neg ↔ _ smul_pos_of_neg_of_neg
#align smul_pos_of_neg_of_neg smul_pos_of_neg_of_neg

/- warning: smul_neg_of_pos_of_neg -> smul_neg_of_pos_of_neg is a dubious translation:
lean 3 declaration is
  forall {k : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} k] [_inst_2 : OrderedAddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} k M (OrderedSemiring.toSemiring.{u1} k _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))] [_inst_4 : OrderedSMul.{u1, u2} k M _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (OrderedSemiring.toSemiring.{u1} k _inst_1)) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} k M (OrderedSemiring.toSemiring.{u1} k _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3))] {a : M} {c : k}, (LT.lt.{u1} k (Preorder.toLT.{u1} k (PartialOrder.toPreorder.{u1} k (OrderedAddCommMonoid.toPartialOrder.{u1} k (OrderedSemiring.toOrderedAddCommMonoid.{u1} k _inst_1)))) (OfNat.ofNat.{u1} k 0 (OfNat.mk.{u1} k 0 (Zero.zero.{u1} k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (OrderedSemiring.toSemiring.{u1} k _inst_1)))))))) c) -> (LT.lt.{u2} M (Preorder.toLT.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))) a (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))))))) -> (LT.lt.{u2} M (Preorder.toLT.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))) (SMul.smul.{u1, u2} k M (SMulZeroClass.toHasSmul.{u1, u2} k M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} k M (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (OrderedSemiring.toSemiring.{u1} k _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (OrderedSemiring.toSemiring.{u1} k _inst_1)) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} k M (OrderedSemiring.toSemiring.{u1} k _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3)))) c a) (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))))))))
but is expected to have type
  forall {k : Type.{u2}} {M : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} k] [_inst_2 : OrderedAddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} k M (OrderedSemiring.toSemiring.{u2} k _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2))] [_inst_4 : OrderedSMul.{u2, u1} k M _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} k M (Semiring.toMonoidWithZero.{u2} k (OrderedSemiring.toSemiring.{u2} k _inst_1)) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} k M (OrderedSemiring.toSemiring.{u2} k _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) _inst_3))] {a : M} {c : k}, (LT.lt.{u2} k (Preorder.toLT.{u2} k (PartialOrder.toPreorder.{u2} k (OrderedSemiring.toPartialOrder.{u2} k _inst_1))) (OfNat.ofNat.{u2} k 0 (Zero.toOfNat0.{u2} k (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k (OrderedSemiring.toSemiring.{u2} k _inst_1))))) c) -> (LT.lt.{u1} M (Preorder.toLT.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommGroup.toPartialOrder.{u1} M _inst_2))) a (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2))))))))) -> (LT.lt.{u1} M (Preorder.toLT.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommGroup.toPartialOrder.{u1} M _inst_2))) (HSMul.hSMul.{u2, u1, u1} k M M (instHSMul.{u2, u1} k M (SMulZeroClass.toSMul.{u2, u1} k M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} k M (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k (OrderedSemiring.toSemiring.{u2} k _inst_1))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} k M (Semiring.toMonoidWithZero.{u2} k (OrderedSemiring.toSemiring.{u2} k _inst_1)) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} k M (OrderedSemiring.toSemiring.{u2} k _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) _inst_3))))) c a) (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))))))
Case conversion may be inaccurate. Consider using '#align smul_neg_of_pos_of_neg smul_neg_of_pos_of_negₓ'. -/
alias smul_neg_iff_of_pos ↔ _ smul_neg_of_pos_of_neg
#align smul_neg_of_pos_of_neg smul_neg_of_pos_of_neg

/- warning: smul_neg_of_neg_of_pos -> smul_neg_of_neg_of_pos is a dubious translation:
lean 3 declaration is
  forall {k : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedRing.{u1} k] [_inst_2 : OrderedAddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))] [_inst_4 : OrderedSMul.{u1, u2} k M (OrderedRing.toOrderedSemiring.{u1} k _inst_1) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3))] {a : M} {c : k}, (LT.lt.{u1} k (Preorder.toLT.{u1} k (PartialOrder.toPreorder.{u1} k (OrderedAddCommGroup.toPartialOrder.{u1} k (OrderedRing.toOrderedAddCommGroup.{u1} k _inst_1)))) c (OfNat.ofNat.{u1} k 0 (OfNat.mk.{u1} k 0 (Zero.zero.{u1} k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} k (NonAssocRing.toNonUnitalNonAssocRing.{u1} k (Ring.toNonAssocRing.{u1} k (OrderedRing.toRing.{u1} k _inst_1)))))))))) -> (LT.lt.{u2} M (Preorder.toLT.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))) (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))))))) a) -> (LT.lt.{u2} M (Preorder.toLT.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))) (SMul.smul.{u1, u2} k M (SMulZeroClass.toHasSmul.{u1, u2} k M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} k M (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3)))) c a) (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))))))))
but is expected to have type
  forall {k : Type.{u2}} {M : Type.{u1}} [_inst_1 : OrderedRing.{u2} k] [_inst_2 : OrderedAddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} k M (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2))] [_inst_4 : OrderedSMul.{u2, u1} k M (OrderedRing.toOrderedSemiring.{u2} k _inst_1) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} k M (Semiring.toMonoidWithZero.{u2} k (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} k M (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) _inst_3))] {a : M} {c : k}, (LT.lt.{u2} k (Preorder.toLT.{u2} k (PartialOrder.toPreorder.{u2} k (OrderedRing.toPartialOrder.{u2} k _inst_1))) c (OfNat.ofNat.{u2} k 0 (Zero.toOfNat0.{u2} k (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1))))))) -> (LT.lt.{u1} M (Preorder.toLT.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommGroup.toPartialOrder.{u1} M _inst_2))) (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))))) a) -> (LT.lt.{u1} M (Preorder.toLT.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommGroup.toPartialOrder.{u1} M _inst_2))) (HSMul.hSMul.{u2, u1, u1} k M M (instHSMul.{u2, u1} k M (SMulZeroClass.toSMul.{u2, u1} k M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} k M (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1)))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} k M (Semiring.toMonoidWithZero.{u2} k (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} k M (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) _inst_3))))) c a) (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))))))
Case conversion may be inaccurate. Consider using '#align smul_neg_of_neg_of_pos smul_neg_of_neg_of_posₓ'. -/
alias smul_neg_iff_of_neg ↔ _ smul_neg_of_neg_of_pos
#align smul_neg_of_neg_of_pos smul_neg_of_neg_of_pos

/- warning: antitone_smul_left -> antitone_smul_left is a dubious translation:
lean 3 declaration is
  forall {k : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedRing.{u1} k] [_inst_2 : OrderedAddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))] [_inst_4 : OrderedSMul.{u1, u2} k M (OrderedRing.toOrderedSemiring.{u1} k _inst_1) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3))] {c : k}, (LE.le.{u1} k (Preorder.toLE.{u1} k (PartialOrder.toPreorder.{u1} k (OrderedAddCommGroup.toPartialOrder.{u1} k (OrderedRing.toOrderedAddCommGroup.{u1} k _inst_1)))) c (OfNat.ofNat.{u1} k 0 (OfNat.mk.{u1} k 0 (Zero.zero.{u1} k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} k (NonAssocRing.toNonUnitalNonAssocRing.{u1} k (Ring.toNonAssocRing.{u1} k (OrderedRing.toRing.{u1} k _inst_1)))))))))) -> (Antitone.{u2, u2} M M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2)) (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2)) (SMul.smul.{u1, u2} k M (SMulZeroClass.toHasSmul.{u1, u2} k M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} k M (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3)))) c))
but is expected to have type
  forall {k : Type.{u2}} {M : Type.{u1}} [_inst_1 : OrderedRing.{u2} k] [_inst_2 : OrderedAddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} k M (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2))] [_inst_4 : OrderedSMul.{u2, u1} k M (OrderedRing.toOrderedSemiring.{u2} k _inst_1) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} k M (Semiring.toMonoidWithZero.{u2} k (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} k M (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) _inst_3))] {c : k}, (LE.le.{u2} k (Preorder.toLE.{u2} k (PartialOrder.toPreorder.{u2} k (OrderedRing.toPartialOrder.{u2} k _inst_1))) c (OfNat.ofNat.{u2} k 0 (Zero.toOfNat0.{u2} k (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1))))))) -> (Antitone.{u1, u1} M M (PartialOrder.toPreorder.{u1} M (OrderedAddCommGroup.toPartialOrder.{u1} M _inst_2)) (PartialOrder.toPreorder.{u1} M (OrderedAddCommGroup.toPartialOrder.{u1} M _inst_2)) (SMul.smul.{u2, u1} k M (SMulZeroClass.toSMul.{u2, u1} k M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} k M (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1)))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} k M (Semiring.toMonoidWithZero.{u2} k (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} k M (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) _inst_3)))) c))
Case conversion may be inaccurate. Consider using '#align antitone_smul_left antitone_smul_leftₓ'. -/
theorem antitone_smul_left (hc : c ≤ 0) : Antitone (SMul.smul c : M → M) := fun a b h =>
  smul_le_smul_of_nonpos h hc
#align antitone_smul_left antitone_smul_left

/- warning: strict_anti_smul_left -> strict_anti_smul_left is a dubious translation:
lean 3 declaration is
  forall {k : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedRing.{u1} k] [_inst_2 : OrderedAddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))] [_inst_4 : OrderedSMul.{u1, u2} k M (OrderedRing.toOrderedSemiring.{u1} k _inst_1) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3))] {c : k}, (LT.lt.{u1} k (Preorder.toLT.{u1} k (PartialOrder.toPreorder.{u1} k (OrderedAddCommGroup.toPartialOrder.{u1} k (OrderedRing.toOrderedAddCommGroup.{u1} k _inst_1)))) c (OfNat.ofNat.{u1} k 0 (OfNat.mk.{u1} k 0 (Zero.zero.{u1} k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} k (NonAssocRing.toNonUnitalNonAssocRing.{u1} k (Ring.toNonAssocRing.{u1} k (OrderedRing.toRing.{u1} k _inst_1)))))))))) -> (StrictAnti.{u2, u2} M M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2)) (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2)) (SMul.smul.{u1, u2} k M (SMulZeroClass.toHasSmul.{u1, u2} k M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} k M (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3)))) c))
but is expected to have type
  forall {k : Type.{u2}} {M : Type.{u1}} [_inst_1 : OrderedRing.{u2} k] [_inst_2 : OrderedAddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} k M (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2))] [_inst_4 : OrderedSMul.{u2, u1} k M (OrderedRing.toOrderedSemiring.{u2} k _inst_1) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} k M (Semiring.toMonoidWithZero.{u2} k (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} k M (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) _inst_3))] {c : k}, (LT.lt.{u2} k (Preorder.toLT.{u2} k (PartialOrder.toPreorder.{u2} k (OrderedRing.toPartialOrder.{u2} k _inst_1))) c (OfNat.ofNat.{u2} k 0 (Zero.toOfNat0.{u2} k (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1))))))) -> (StrictAnti.{u1, u1} M M (PartialOrder.toPreorder.{u1} M (OrderedAddCommGroup.toPartialOrder.{u1} M _inst_2)) (PartialOrder.toPreorder.{u1} M (OrderedAddCommGroup.toPartialOrder.{u1} M _inst_2)) (SMul.smul.{u2, u1} k M (SMulZeroClass.toSMul.{u2, u1} k M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} k M (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1)))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} k M (Semiring.toMonoidWithZero.{u2} k (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} k M (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) _inst_3)))) c))
Case conversion may be inaccurate. Consider using '#align strict_anti_smul_left strict_anti_smul_leftₓ'. -/
theorem strict_anti_smul_left (hc : c < 0) : StrictAnti (SMul.smul c : M → M) := fun a b h =>
  smul_lt_smul_of_neg h hc
#align strict_anti_smul_left strict_anti_smul_left

/- warning: smul_add_smul_le_smul_add_smul -> smul_add_smul_le_smul_add_smul is a dubious translation:
lean 3 declaration is
  forall {k : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedRing.{u1} k] [_inst_2 : OrderedAddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))] [_inst_4 : OrderedSMul.{u1, u2} k M (OrderedRing.toOrderedSemiring.{u1} k _inst_1) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3))] [_inst_5 : ContravariantClass.{u2, u2} M M (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toHasAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))))) (LE.le.{u2} M (Preorder.toLE.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))))] {a : k} {b : k} {c : M} {d : M}, (LE.le.{u1} k (Preorder.toLE.{u1} k (PartialOrder.toPreorder.{u1} k (OrderedAddCommGroup.toPartialOrder.{u1} k (OrderedRing.toOrderedAddCommGroup.{u1} k _inst_1)))) a b) -> (LE.le.{u2} M (Preorder.toLE.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))) c d) -> (LE.le.{u2} M (Preorder.toLE.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))) (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toHasAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))))) (SMul.smul.{u1, u2} k M (SMulZeroClass.toHasSmul.{u1, u2} k M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} k M (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3)))) a d) (SMul.smul.{u1, u2} k M (SMulZeroClass.toHasSmul.{u1, u2} k M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} k M (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3)))) b c)) (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toHasAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))))) (SMul.smul.{u1, u2} k M (SMulZeroClass.toHasSmul.{u1, u2} k M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} k M (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3)))) a c) (SMul.smul.{u1, u2} k M (SMulZeroClass.toHasSmul.{u1, u2} k M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} k M (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3)))) b d)))
but is expected to have type
  forall {k : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedRing.{u1} k] [_inst_2 : OrderedAddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} k M (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2))] [_inst_4 : OrderedSMul.{u1, u2} k M (OrderedRing.toOrderedSemiring.{u1} k _inst_1) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} k M (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) _inst_3))] [_inst_5 : ContravariantClass.{u2, u2} M M (fun (x._@.Mathlib.Algebra.Order.Module._hyg.1086 : M) (x._@.Mathlib.Algebra.Order.Module._hyg.1088 : M) => HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))))) x._@.Mathlib.Algebra.Order.Module._hyg.1086 x._@.Mathlib.Algebra.Order.Module._hyg.1088) (fun (x._@.Mathlib.Algebra.Order.Module._hyg.1101 : M) (x._@.Mathlib.Algebra.Order.Module._hyg.1103 : M) => LE.le.{u2} M (Preorder.toLE.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))) x._@.Mathlib.Algebra.Order.Module._hyg.1101 x._@.Mathlib.Algebra.Order.Module._hyg.1103)] {a : k} {b : k} {c : M} {d : M}, (LE.le.{u1} k (Preorder.toLE.{u1} k (PartialOrder.toPreorder.{u1} k (OrderedRing.toPartialOrder.{u1} k _inst_1))) a b) -> (LE.le.{u2} M (Preorder.toLE.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))) c d) -> (LE.le.{u2} M (Preorder.toLE.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))) (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))))) (HSMul.hSMul.{u1, u2, u2} k M M (instHSMul.{u1, u2} k M (SMulZeroClass.toSMul.{u1, u2} k M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u1, u2} k M (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1)))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} k M (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) _inst_3))))) a d) (HSMul.hSMul.{u1, u2, u2} k M M (instHSMul.{u1, u2} k M (SMulZeroClass.toSMul.{u1, u2} k M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u1, u2} k M (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1)))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} k M (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) _inst_3))))) b c)) (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))))) (HSMul.hSMul.{u1, u2, u2} k M M (instHSMul.{u1, u2} k M (SMulZeroClass.toSMul.{u1, u2} k M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u1, u2} k M (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1)))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} k M (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) _inst_3))))) a c) (HSMul.hSMul.{u1, u2, u2} k M M (instHSMul.{u1, u2} k M (SMulZeroClass.toSMul.{u1, u2} k M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u1, u2} k M (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1)))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} k M (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) _inst_3))))) b d)))
Case conversion may be inaccurate. Consider using '#align smul_add_smul_le_smul_add_smul smul_add_smul_le_smul_add_smulₓ'. -/
/-- Binary **rearrangement inequality**. -/
theorem smul_add_smul_le_smul_add_smul [ContravariantClass M M (· + ·) (· ≤ ·)] {a b : k} {c d : M}
    (hab : a ≤ b) (hcd : c ≤ d) : a • d + b • c ≤ a • c + b • d :=
  by
  obtain ⟨b, rfl⟩ := exists_add_of_le hab
  obtain ⟨d, rfl⟩ := exists_add_of_le hcd
  rw [smul_add, add_right_comm, smul_add, ← add_assoc, add_smul _ _ d]
  rw [le_add_iff_nonneg_right] at hab hcd
  exact add_le_add_left (le_add_of_nonneg_right <| smul_nonneg hab hcd) _
#align smul_add_smul_le_smul_add_smul smul_add_smul_le_smul_add_smul

/- warning: smul_add_smul_le_smul_add_smul' -> smul_add_smul_le_smul_add_smul' is a dubious translation:
lean 3 declaration is
  forall {k : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedRing.{u1} k] [_inst_2 : OrderedAddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))] [_inst_4 : OrderedSMul.{u1, u2} k M (OrderedRing.toOrderedSemiring.{u1} k _inst_1) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3))] [_inst_5 : ContravariantClass.{u2, u2} M M (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toHasAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))))) (LE.le.{u2} M (Preorder.toLE.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))))] {a : k} {b : k} {c : M} {d : M}, (LE.le.{u1} k (Preorder.toLE.{u1} k (PartialOrder.toPreorder.{u1} k (OrderedAddCommGroup.toPartialOrder.{u1} k (OrderedRing.toOrderedAddCommGroup.{u1} k _inst_1)))) b a) -> (LE.le.{u2} M (Preorder.toLE.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))) d c) -> (LE.le.{u2} M (Preorder.toLE.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))) (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toHasAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))))) (SMul.smul.{u1, u2} k M (SMulZeroClass.toHasSmul.{u1, u2} k M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} k M (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3)))) a d) (SMul.smul.{u1, u2} k M (SMulZeroClass.toHasSmul.{u1, u2} k M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} k M (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3)))) b c)) (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toHasAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))))) (SMul.smul.{u1, u2} k M (SMulZeroClass.toHasSmul.{u1, u2} k M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} k M (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3)))) a c) (SMul.smul.{u1, u2} k M (SMulZeroClass.toHasSmul.{u1, u2} k M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} k M (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3)))) b d)))
but is expected to have type
  forall {k : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedRing.{u1} k] [_inst_2 : OrderedAddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} k M (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2))] [_inst_4 : OrderedSMul.{u1, u2} k M (OrderedRing.toOrderedSemiring.{u1} k _inst_1) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} k M (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) _inst_3))] [_inst_5 : ContravariantClass.{u2, u2} M M (fun (x._@.Mathlib.Algebra.Order.Module._hyg.1267 : M) (x._@.Mathlib.Algebra.Order.Module._hyg.1269 : M) => HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))))) x._@.Mathlib.Algebra.Order.Module._hyg.1267 x._@.Mathlib.Algebra.Order.Module._hyg.1269) (fun (x._@.Mathlib.Algebra.Order.Module._hyg.1282 : M) (x._@.Mathlib.Algebra.Order.Module._hyg.1284 : M) => LE.le.{u2} M (Preorder.toLE.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))) x._@.Mathlib.Algebra.Order.Module._hyg.1282 x._@.Mathlib.Algebra.Order.Module._hyg.1284)] {a : k} {b : k} {c : M} {d : M}, (LE.le.{u1} k (Preorder.toLE.{u1} k (PartialOrder.toPreorder.{u1} k (OrderedRing.toPartialOrder.{u1} k _inst_1))) b a) -> (LE.le.{u2} M (Preorder.toLE.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))) d c) -> (LE.le.{u2} M (Preorder.toLE.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))) (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))))) (HSMul.hSMul.{u1, u2, u2} k M M (instHSMul.{u1, u2} k M (SMulZeroClass.toSMul.{u1, u2} k M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u1, u2} k M (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1)))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} k M (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) _inst_3))))) a d) (HSMul.hSMul.{u1, u2, u2} k M M (instHSMul.{u1, u2} k M (SMulZeroClass.toSMul.{u1, u2} k M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u1, u2} k M (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1)))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} k M (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) _inst_3))))) b c)) (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))))) (HSMul.hSMul.{u1, u2, u2} k M M (instHSMul.{u1, u2} k M (SMulZeroClass.toSMul.{u1, u2} k M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u1, u2} k M (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1)))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} k M (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) _inst_3))))) a c) (HSMul.hSMul.{u1, u2, u2} k M M (instHSMul.{u1, u2} k M (SMulZeroClass.toSMul.{u1, u2} k M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u1, u2} k M (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1)))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} k M (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) _inst_3))))) b d)))
Case conversion may be inaccurate. Consider using '#align smul_add_smul_le_smul_add_smul' smul_add_smul_le_smul_add_smul'ₓ'. -/
/-- Binary **rearrangement inequality**. -/
theorem smul_add_smul_le_smul_add_smul' [ContravariantClass M M (· + ·) (· ≤ ·)] {a b : k} {c d : M}
    (hba : b ≤ a) (hdc : d ≤ c) : a • d + b • c ≤ a • c + b • d :=
  by
  rw [add_comm (a • d), add_comm (a • c)]
  exact smul_add_smul_le_smul_add_smul hba hdc
#align smul_add_smul_le_smul_add_smul' smul_add_smul_le_smul_add_smul'

/- warning: smul_add_smul_lt_smul_add_smul -> smul_add_smul_lt_smul_add_smul is a dubious translation:
lean 3 declaration is
  forall {k : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedRing.{u1} k] [_inst_2 : OrderedAddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))] [_inst_4 : OrderedSMul.{u1, u2} k M (OrderedRing.toOrderedSemiring.{u1} k _inst_1) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3))] [_inst_5 : CovariantClass.{u2, u2} M M (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toHasAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))))) (LT.lt.{u2} M (Preorder.toLT.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))))] [_inst_6 : ContravariantClass.{u2, u2} M M (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toHasAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))))) (LT.lt.{u2} M (Preorder.toLT.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))))] {a : k} {b : k} {c : M} {d : M}, (LT.lt.{u1} k (Preorder.toLT.{u1} k (PartialOrder.toPreorder.{u1} k (OrderedAddCommGroup.toPartialOrder.{u1} k (OrderedRing.toOrderedAddCommGroup.{u1} k _inst_1)))) a b) -> (LT.lt.{u2} M (Preorder.toLT.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))) c d) -> (LT.lt.{u2} M (Preorder.toLT.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))) (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toHasAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))))) (SMul.smul.{u1, u2} k M (SMulZeroClass.toHasSmul.{u1, u2} k M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} k M (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3)))) a d) (SMul.smul.{u1, u2} k M (SMulZeroClass.toHasSmul.{u1, u2} k M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} k M (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3)))) b c)) (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toHasAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))))) (SMul.smul.{u1, u2} k M (SMulZeroClass.toHasSmul.{u1, u2} k M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} k M (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3)))) a c) (SMul.smul.{u1, u2} k M (SMulZeroClass.toHasSmul.{u1, u2} k M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} k M (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3)))) b d)))
but is expected to have type
  forall {k : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedRing.{u1} k] [_inst_2 : OrderedAddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} k M (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2))] [_inst_4 : OrderedSMul.{u1, u2} k M (OrderedRing.toOrderedSemiring.{u1} k _inst_1) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} k M (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) _inst_3))] [_inst_5 : CovariantClass.{u2, u2} M M (fun (x._@.Mathlib.Algebra.Order.Module._hyg.1409 : M) (x._@.Mathlib.Algebra.Order.Module._hyg.1411 : M) => HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))))) x._@.Mathlib.Algebra.Order.Module._hyg.1409 x._@.Mathlib.Algebra.Order.Module._hyg.1411) (fun (x._@.Mathlib.Algebra.Order.Module._hyg.1424 : M) (x._@.Mathlib.Algebra.Order.Module._hyg.1426 : M) => LT.lt.{u2} M (Preorder.toLT.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))) x._@.Mathlib.Algebra.Order.Module._hyg.1424 x._@.Mathlib.Algebra.Order.Module._hyg.1426)] [_inst_6 : ContravariantClass.{u2, u2} M M (fun (x._@.Mathlib.Algebra.Order.Module._hyg.1443 : M) (x._@.Mathlib.Algebra.Order.Module._hyg.1445 : M) => HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))))) x._@.Mathlib.Algebra.Order.Module._hyg.1443 x._@.Mathlib.Algebra.Order.Module._hyg.1445) (fun (x._@.Mathlib.Algebra.Order.Module._hyg.1458 : M) (x._@.Mathlib.Algebra.Order.Module._hyg.1460 : M) => LT.lt.{u2} M (Preorder.toLT.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))) x._@.Mathlib.Algebra.Order.Module._hyg.1458 x._@.Mathlib.Algebra.Order.Module._hyg.1460)] {a : k} {b : k} {c : M} {d : M}, (LT.lt.{u1} k (Preorder.toLT.{u1} k (PartialOrder.toPreorder.{u1} k (OrderedRing.toPartialOrder.{u1} k _inst_1))) a b) -> (LT.lt.{u2} M (Preorder.toLT.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))) c d) -> (LT.lt.{u2} M (Preorder.toLT.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))) (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))))) (HSMul.hSMul.{u1, u2, u2} k M M (instHSMul.{u1, u2} k M (SMulZeroClass.toSMul.{u1, u2} k M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u1, u2} k M (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1)))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} k M (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) _inst_3))))) a d) (HSMul.hSMul.{u1, u2, u2} k M M (instHSMul.{u1, u2} k M (SMulZeroClass.toSMul.{u1, u2} k M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u1, u2} k M (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1)))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} k M (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) _inst_3))))) b c)) (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))))) (HSMul.hSMul.{u1, u2, u2} k M M (instHSMul.{u1, u2} k M (SMulZeroClass.toSMul.{u1, u2} k M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u1, u2} k M (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1)))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} k M (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) _inst_3))))) a c) (HSMul.hSMul.{u1, u2, u2} k M M (instHSMul.{u1, u2} k M (SMulZeroClass.toSMul.{u1, u2} k M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u1, u2} k M (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1)))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} k M (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) _inst_3))))) b d)))
Case conversion may be inaccurate. Consider using '#align smul_add_smul_lt_smul_add_smul smul_add_smul_lt_smul_add_smulₓ'. -/
/-- Binary strict **rearrangement inequality**. -/
theorem smul_add_smul_lt_smul_add_smul [CovariantClass M M (· + ·) (· < ·)]
    [ContravariantClass M M (· + ·) (· < ·)] {a b : k} {c d : M} (hab : a < b) (hcd : c < d) :
    a • d + b • c < a • c + b • d :=
  by
  obtain ⟨b, rfl⟩ := exists_add_of_le hab.le
  obtain ⟨d, rfl⟩ := exists_add_of_le hcd.le
  rw [smul_add, add_right_comm, smul_add, ← add_assoc, add_smul _ _ d]
  rw [lt_add_iff_pos_right] at hab hcd
  exact add_lt_add_left (lt_add_of_pos_right _ <| smul_pos hab hcd) _
#align smul_add_smul_lt_smul_add_smul smul_add_smul_lt_smul_add_smul

/- warning: smul_add_smul_lt_smul_add_smul' -> smul_add_smul_lt_smul_add_smul' is a dubious translation:
lean 3 declaration is
  forall {k : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedRing.{u1} k] [_inst_2 : OrderedAddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))] [_inst_4 : OrderedSMul.{u1, u2} k M (OrderedRing.toOrderedSemiring.{u1} k _inst_1) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3))] [_inst_5 : CovariantClass.{u2, u2} M M (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toHasAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))))) (LT.lt.{u2} M (Preorder.toLT.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))))] [_inst_6 : ContravariantClass.{u2, u2} M M (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toHasAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))))) (LT.lt.{u2} M (Preorder.toLT.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))))] {a : k} {b : k} {c : M} {d : M}, (LT.lt.{u1} k (Preorder.toLT.{u1} k (PartialOrder.toPreorder.{u1} k (OrderedAddCommGroup.toPartialOrder.{u1} k (OrderedRing.toOrderedAddCommGroup.{u1} k _inst_1)))) b a) -> (LT.lt.{u2} M (Preorder.toLT.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))) d c) -> (LT.lt.{u2} M (Preorder.toLT.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))) (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toHasAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))))) (SMul.smul.{u1, u2} k M (SMulZeroClass.toHasSmul.{u1, u2} k M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} k M (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3)))) a d) (SMul.smul.{u1, u2} k M (SMulZeroClass.toHasSmul.{u1, u2} k M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} k M (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3)))) b c)) (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toHasAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))))) (SMul.smul.{u1, u2} k M (SMulZeroClass.toHasSmul.{u1, u2} k M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} k M (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3)))) a c) (SMul.smul.{u1, u2} k M (SMulZeroClass.toHasSmul.{u1, u2} k M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} k M (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3)))) b d)))
but is expected to have type
  forall {k : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedRing.{u1} k] [_inst_2 : OrderedAddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} k M (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2))] [_inst_4 : OrderedSMul.{u1, u2} k M (OrderedRing.toOrderedSemiring.{u1} k _inst_1) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} k M (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) _inst_3))] [_inst_5 : CovariantClass.{u2, u2} M M (fun (x._@.Mathlib.Algebra.Order.Module._hyg.1625 : M) (x._@.Mathlib.Algebra.Order.Module._hyg.1627 : M) => HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))))) x._@.Mathlib.Algebra.Order.Module._hyg.1625 x._@.Mathlib.Algebra.Order.Module._hyg.1627) (fun (x._@.Mathlib.Algebra.Order.Module._hyg.1640 : M) (x._@.Mathlib.Algebra.Order.Module._hyg.1642 : M) => LT.lt.{u2} M (Preorder.toLT.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))) x._@.Mathlib.Algebra.Order.Module._hyg.1640 x._@.Mathlib.Algebra.Order.Module._hyg.1642)] [_inst_6 : ContravariantClass.{u2, u2} M M (fun (x._@.Mathlib.Algebra.Order.Module._hyg.1659 : M) (x._@.Mathlib.Algebra.Order.Module._hyg.1661 : M) => HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))))) x._@.Mathlib.Algebra.Order.Module._hyg.1659 x._@.Mathlib.Algebra.Order.Module._hyg.1661) (fun (x._@.Mathlib.Algebra.Order.Module._hyg.1674 : M) (x._@.Mathlib.Algebra.Order.Module._hyg.1676 : M) => LT.lt.{u2} M (Preorder.toLT.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))) x._@.Mathlib.Algebra.Order.Module._hyg.1674 x._@.Mathlib.Algebra.Order.Module._hyg.1676)] {a : k} {b : k} {c : M} {d : M}, (LT.lt.{u1} k (Preorder.toLT.{u1} k (PartialOrder.toPreorder.{u1} k (OrderedRing.toPartialOrder.{u1} k _inst_1))) b a) -> (LT.lt.{u2} M (Preorder.toLT.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))) d c) -> (LT.lt.{u2} M (Preorder.toLT.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))) (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))))) (HSMul.hSMul.{u1, u2, u2} k M M (instHSMul.{u1, u2} k M (SMulZeroClass.toSMul.{u1, u2} k M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u1, u2} k M (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1)))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} k M (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) _inst_3))))) a d) (HSMul.hSMul.{u1, u2, u2} k M M (instHSMul.{u1, u2} k M (SMulZeroClass.toSMul.{u1, u2} k M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u1, u2} k M (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1)))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} k M (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) _inst_3))))) b c)) (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))))) (HSMul.hSMul.{u1, u2, u2} k M M (instHSMul.{u1, u2} k M (SMulZeroClass.toSMul.{u1, u2} k M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u1, u2} k M (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1)))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} k M (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) _inst_3))))) a c) (HSMul.hSMul.{u1, u2, u2} k M M (instHSMul.{u1, u2} k M (SMulZeroClass.toSMul.{u1, u2} k M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u1, u2} k M (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1)))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} k M (OrderedSemiring.toSemiring.{u1} k (OrderedRing.toOrderedSemiring.{u1} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) _inst_3))))) b d)))
Case conversion may be inaccurate. Consider using '#align smul_add_smul_lt_smul_add_smul' smul_add_smul_lt_smul_add_smul'ₓ'. -/
/-- Binary strict **rearrangement inequality**. -/
theorem smul_add_smul_lt_smul_add_smul' [CovariantClass M M (· + ·) (· < ·)]
    [ContravariantClass M M (· + ·) (· < ·)] {a b : k} {c d : M} (hba : b < a) (hdc : d < c) :
    a • d + b • c < a • c + b • d :=
  by
  rw [add_comm (a • d), add_comm (a • c)]
  exact smul_add_smul_lt_smul_add_smul hba hdc
#align smul_add_smul_lt_smul_add_smul' smul_add_smul_lt_smul_add_smul'

end Ring

section Field

variable [LinearOrderedField k] [OrderedAddCommGroup M] [Module k M] [OrderedSMul k M] {a b : M}
  {c : k}

/- warning: smul_le_smul_iff_of_neg -> smul_le_smul_iff_of_neg is a dubious translation:
lean 3 declaration is
  forall {k : Type.{u1}} {M : Type.{u2}} [_inst_1 : LinearOrderedField.{u1} k] [_inst_2 : OrderedAddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} k M (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))] [_inst_4 : OrderedSMul.{u1, u2} k M (StrictOrderedSemiring.toOrderedSemiring.{u1} k (StrictOrderedRing.toStrictOrderedSemiring.{u1} k (LinearOrderedRing.toStrictOrderedRing.{u1} k (LinearOrderedCommRing.toLinearOrderedRing.{u1} k (LinearOrderedField.toLinearOrderedCommRing.{u1} k _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3))] {a : M} {b : M} {c : k}, (LT.lt.{u1} k (Preorder.toLT.{u1} k (PartialOrder.toPreorder.{u1} k (OrderedAddCommGroup.toPartialOrder.{u1} k (StrictOrderedRing.toOrderedAddCommGroup.{u1} k (LinearOrderedRing.toStrictOrderedRing.{u1} k (LinearOrderedCommRing.toLinearOrderedRing.{u1} k (LinearOrderedField.toLinearOrderedCommRing.{u1} k _inst_1))))))) c (OfNat.ofNat.{u1} k 0 (OfNat.mk.{u1} k 0 (Zero.zero.{u1} k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} k (NonAssocRing.toNonUnitalNonAssocRing.{u1} k (Ring.toNonAssocRing.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1)))))))))))) -> (Iff (LE.le.{u2} M (Preorder.toLE.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))) (SMul.smul.{u1, u2} k M (SMulZeroClass.toHasSmul.{u1, u2} k M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} k M (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3)))) c a) (SMul.smul.{u1, u2} k M (SMulZeroClass.toHasSmul.{u1, u2} k M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} k M (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3)))) c b)) (LE.le.{u2} M (Preorder.toLE.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))) b a))
but is expected to have type
  forall {k : Type.{u2}} {M : Type.{u1}} [_inst_1 : LinearOrderedField.{u2} k] [_inst_2 : OrderedAddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} k M (StrictOrderedSemiring.toSemiring.{u2} k (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} k (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2))] [_inst_4 : OrderedSMul.{u2, u1} k M (OrderedCommSemiring.toOrderedSemiring.{u2} k (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} k (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} k M (Semiring.toMonoidWithZero.{u2} k (StrictOrderedSemiring.toSemiring.{u2} k (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} k (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1)))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} k M (StrictOrderedSemiring.toSemiring.{u2} k (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} k (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) _inst_3))] {a : M} {b : M} {c : k}, (LT.lt.{u2} k (Preorder.toLT.{u2} k (PartialOrder.toPreorder.{u2} k (StrictOrderedRing.toPartialOrder.{u2} k (LinearOrderedRing.toStrictOrderedRing.{u2} k (LinearOrderedCommRing.toLinearOrderedRing.{u2} k (LinearOrderedField.toLinearOrderedCommRing.{u2} k _inst_1)))))) c (OfNat.ofNat.{u2} k 0 (Zero.toOfNat0.{u2} k (CommMonoidWithZero.toZero.{u2} k (CommGroupWithZero.toCommMonoidWithZero.{u2} k (Semifield.toCommGroupWithZero.{u2} k (LinearOrderedSemifield.toSemifield.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1)))))))) -> (Iff (LE.le.{u1} M (Preorder.toLE.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommGroup.toPartialOrder.{u1} M _inst_2))) (HSMul.hSMul.{u2, u1, u1} k M M (instHSMul.{u2, u1} k M (SMulZeroClass.toSMul.{u2, u1} k M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} k M (CommMonoidWithZero.toZero.{u2} k (CommGroupWithZero.toCommMonoidWithZero.{u2} k (Semifield.toCommGroupWithZero.{u2} k (LinearOrderedSemifield.toSemifield.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} k M (Semiring.toMonoidWithZero.{u2} k (StrictOrderedSemiring.toSemiring.{u2} k (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} k (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1)))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} k M (StrictOrderedSemiring.toSemiring.{u2} k (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} k (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) _inst_3))))) c a) (HSMul.hSMul.{u2, u1, u1} k M M (instHSMul.{u2, u1} k M (SMulZeroClass.toSMul.{u2, u1} k M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} k M (CommMonoidWithZero.toZero.{u2} k (CommGroupWithZero.toCommMonoidWithZero.{u2} k (Semifield.toCommGroupWithZero.{u2} k (LinearOrderedSemifield.toSemifield.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} k M (Semiring.toMonoidWithZero.{u2} k (StrictOrderedSemiring.toSemiring.{u2} k (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} k (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1)))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} k M (StrictOrderedSemiring.toSemiring.{u2} k (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} k (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) _inst_3))))) c b)) (LE.le.{u1} M (Preorder.toLE.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommGroup.toPartialOrder.{u1} M _inst_2))) b a))
Case conversion may be inaccurate. Consider using '#align smul_le_smul_iff_of_neg smul_le_smul_iff_of_negₓ'. -/
theorem smul_le_smul_iff_of_neg (hc : c < 0) : c • a ≤ c • b ↔ b ≤ a :=
  by
  rw [← neg_neg c, neg_smul, neg_smul (-c), neg_le_neg_iff]
  exact smul_le_smul_iff_of_pos (neg_pos_of_neg hc)
#align smul_le_smul_iff_of_neg smul_le_smul_iff_of_neg

/- warning: inv_smul_le_iff_of_neg -> inv_smul_le_iff_of_neg is a dubious translation:
lean 3 declaration is
  forall {k : Type.{u1}} {M : Type.{u2}} [_inst_1 : LinearOrderedField.{u1} k] [_inst_2 : OrderedAddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} k M (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))] [_inst_4 : OrderedSMul.{u1, u2} k M (StrictOrderedSemiring.toOrderedSemiring.{u1} k (StrictOrderedRing.toStrictOrderedSemiring.{u1} k (LinearOrderedRing.toStrictOrderedRing.{u1} k (LinearOrderedCommRing.toLinearOrderedRing.{u1} k (LinearOrderedField.toLinearOrderedCommRing.{u1} k _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3))] {a : M} {b : M} {c : k}, (LT.lt.{u1} k (Preorder.toLT.{u1} k (PartialOrder.toPreorder.{u1} k (OrderedAddCommGroup.toPartialOrder.{u1} k (StrictOrderedRing.toOrderedAddCommGroup.{u1} k (LinearOrderedRing.toStrictOrderedRing.{u1} k (LinearOrderedCommRing.toLinearOrderedRing.{u1} k (LinearOrderedField.toLinearOrderedCommRing.{u1} k _inst_1))))))) c (OfNat.ofNat.{u1} k 0 (OfNat.mk.{u1} k 0 (Zero.zero.{u1} k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} k (NonAssocRing.toNonUnitalNonAssocRing.{u1} k (Ring.toNonAssocRing.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1)))))))))))) -> (Iff (LE.le.{u2} M (Preorder.toLE.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))) (SMul.smul.{u1, u2} k M (SMulZeroClass.toHasSmul.{u1, u2} k M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} k M (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3)))) (Inv.inv.{u1} k (DivInvMonoid.toHasInv.{u1} k (DivisionRing.toDivInvMonoid.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1)))) c) a) b) (LE.le.{u2} M (Preorder.toLE.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))) (SMul.smul.{u1, u2} k M (SMulZeroClass.toHasSmul.{u1, u2} k M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} k M (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3)))) c b) a))
but is expected to have type
  forall {k : Type.{u2}} {M : Type.{u1}} [_inst_1 : LinearOrderedField.{u2} k] [_inst_2 : OrderedAddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} k M (StrictOrderedSemiring.toSemiring.{u2} k (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} k (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2))] [_inst_4 : OrderedSMul.{u2, u1} k M (OrderedCommSemiring.toOrderedSemiring.{u2} k (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} k (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} k M (Semiring.toMonoidWithZero.{u2} k (StrictOrderedSemiring.toSemiring.{u2} k (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} k (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1)))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} k M (StrictOrderedSemiring.toSemiring.{u2} k (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} k (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) _inst_3))] {a : M} {b : M} {c : k}, (LT.lt.{u2} k (Preorder.toLT.{u2} k (PartialOrder.toPreorder.{u2} k (StrictOrderedRing.toPartialOrder.{u2} k (LinearOrderedRing.toStrictOrderedRing.{u2} k (LinearOrderedCommRing.toLinearOrderedRing.{u2} k (LinearOrderedField.toLinearOrderedCommRing.{u2} k _inst_1)))))) c (OfNat.ofNat.{u2} k 0 (Zero.toOfNat0.{u2} k (CommMonoidWithZero.toZero.{u2} k (CommGroupWithZero.toCommMonoidWithZero.{u2} k (Semifield.toCommGroupWithZero.{u2} k (LinearOrderedSemifield.toSemifield.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1)))))))) -> (Iff (LE.le.{u1} M (Preorder.toLE.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommGroup.toPartialOrder.{u1} M _inst_2))) (HSMul.hSMul.{u2, u1, u1} k M M (instHSMul.{u2, u1} k M (SMulZeroClass.toSMul.{u2, u1} k M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} k M (CommMonoidWithZero.toZero.{u2} k (CommGroupWithZero.toCommMonoidWithZero.{u2} k (Semifield.toCommGroupWithZero.{u2} k (LinearOrderedSemifield.toSemifield.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} k M (Semiring.toMonoidWithZero.{u2} k (StrictOrderedSemiring.toSemiring.{u2} k (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} k (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1)))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} k M (StrictOrderedSemiring.toSemiring.{u2} k (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} k (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) _inst_3))))) (Inv.inv.{u2} k (LinearOrderedField.toInv.{u2} k _inst_1) c) a) b) (LE.le.{u1} M (Preorder.toLE.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommGroup.toPartialOrder.{u1} M _inst_2))) (HSMul.hSMul.{u2, u1, u1} k M M (instHSMul.{u2, u1} k M (SMulZeroClass.toSMul.{u2, u1} k M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} k M (CommMonoidWithZero.toZero.{u2} k (CommGroupWithZero.toCommMonoidWithZero.{u2} k (Semifield.toCommGroupWithZero.{u2} k (LinearOrderedSemifield.toSemifield.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} k M (Semiring.toMonoidWithZero.{u2} k (StrictOrderedSemiring.toSemiring.{u2} k (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} k (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1)))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} k M (StrictOrderedSemiring.toSemiring.{u2} k (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} k (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) _inst_3))))) c b) a))
Case conversion may be inaccurate. Consider using '#align inv_smul_le_iff_of_neg inv_smul_le_iff_of_negₓ'. -/
theorem inv_smul_le_iff_of_neg (h : c < 0) : c⁻¹ • a ≤ b ↔ c • b ≤ a :=
  by
  rw [← smul_le_smul_iff_of_neg h, smul_inv_smul₀ h.ne]
  infer_instance
#align inv_smul_le_iff_of_neg inv_smul_le_iff_of_neg

/- warning: inv_smul_lt_iff_of_neg -> inv_smul_lt_iff_of_neg is a dubious translation:
lean 3 declaration is
  forall {k : Type.{u1}} {M : Type.{u2}} [_inst_1 : LinearOrderedField.{u1} k] [_inst_2 : OrderedAddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} k M (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))] [_inst_4 : OrderedSMul.{u1, u2} k M (StrictOrderedSemiring.toOrderedSemiring.{u1} k (StrictOrderedRing.toStrictOrderedSemiring.{u1} k (LinearOrderedRing.toStrictOrderedRing.{u1} k (LinearOrderedCommRing.toLinearOrderedRing.{u1} k (LinearOrderedField.toLinearOrderedCommRing.{u1} k _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3))] {a : M} {b : M} {c : k}, (LT.lt.{u1} k (Preorder.toLT.{u1} k (PartialOrder.toPreorder.{u1} k (OrderedAddCommGroup.toPartialOrder.{u1} k (StrictOrderedRing.toOrderedAddCommGroup.{u1} k (LinearOrderedRing.toStrictOrderedRing.{u1} k (LinearOrderedCommRing.toLinearOrderedRing.{u1} k (LinearOrderedField.toLinearOrderedCommRing.{u1} k _inst_1))))))) c (OfNat.ofNat.{u1} k 0 (OfNat.mk.{u1} k 0 (Zero.zero.{u1} k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} k (NonAssocRing.toNonUnitalNonAssocRing.{u1} k (Ring.toNonAssocRing.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1)))))))))))) -> (Iff (LT.lt.{u2} M (Preorder.toLT.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))) (SMul.smul.{u1, u2} k M (SMulZeroClass.toHasSmul.{u1, u2} k M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} k M (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3)))) (Inv.inv.{u1} k (DivInvMonoid.toHasInv.{u1} k (DivisionRing.toDivInvMonoid.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1)))) c) a) b) (LT.lt.{u2} M (Preorder.toLT.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))) (SMul.smul.{u1, u2} k M (SMulZeroClass.toHasSmul.{u1, u2} k M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} k M (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3)))) c b) a))
but is expected to have type
  forall {k : Type.{u2}} {M : Type.{u1}} [_inst_1 : LinearOrderedField.{u2} k] [_inst_2 : OrderedAddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} k M (StrictOrderedSemiring.toSemiring.{u2} k (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} k (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2))] [_inst_4 : OrderedSMul.{u2, u1} k M (OrderedCommSemiring.toOrderedSemiring.{u2} k (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} k (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} k M (Semiring.toMonoidWithZero.{u2} k (StrictOrderedSemiring.toSemiring.{u2} k (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} k (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1)))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} k M (StrictOrderedSemiring.toSemiring.{u2} k (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} k (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) _inst_3))] {a : M} {b : M} {c : k}, (LT.lt.{u2} k (Preorder.toLT.{u2} k (PartialOrder.toPreorder.{u2} k (StrictOrderedRing.toPartialOrder.{u2} k (LinearOrderedRing.toStrictOrderedRing.{u2} k (LinearOrderedCommRing.toLinearOrderedRing.{u2} k (LinearOrderedField.toLinearOrderedCommRing.{u2} k _inst_1)))))) c (OfNat.ofNat.{u2} k 0 (Zero.toOfNat0.{u2} k (CommMonoidWithZero.toZero.{u2} k (CommGroupWithZero.toCommMonoidWithZero.{u2} k (Semifield.toCommGroupWithZero.{u2} k (LinearOrderedSemifield.toSemifield.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1)))))))) -> (Iff (LT.lt.{u1} M (Preorder.toLT.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommGroup.toPartialOrder.{u1} M _inst_2))) (HSMul.hSMul.{u2, u1, u1} k M M (instHSMul.{u2, u1} k M (SMulZeroClass.toSMul.{u2, u1} k M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} k M (CommMonoidWithZero.toZero.{u2} k (CommGroupWithZero.toCommMonoidWithZero.{u2} k (Semifield.toCommGroupWithZero.{u2} k (LinearOrderedSemifield.toSemifield.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} k M (Semiring.toMonoidWithZero.{u2} k (StrictOrderedSemiring.toSemiring.{u2} k (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} k (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1)))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} k M (StrictOrderedSemiring.toSemiring.{u2} k (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} k (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) _inst_3))))) (Inv.inv.{u2} k (LinearOrderedField.toInv.{u2} k _inst_1) c) a) b) (LT.lt.{u1} M (Preorder.toLT.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommGroup.toPartialOrder.{u1} M _inst_2))) (HSMul.hSMul.{u2, u1, u1} k M M (instHSMul.{u2, u1} k M (SMulZeroClass.toSMul.{u2, u1} k M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} k M (CommMonoidWithZero.toZero.{u2} k (CommGroupWithZero.toCommMonoidWithZero.{u2} k (Semifield.toCommGroupWithZero.{u2} k (LinearOrderedSemifield.toSemifield.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} k M (Semiring.toMonoidWithZero.{u2} k (StrictOrderedSemiring.toSemiring.{u2} k (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} k (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1)))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} k M (StrictOrderedSemiring.toSemiring.{u2} k (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} k (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) _inst_3))))) c b) a))
Case conversion may be inaccurate. Consider using '#align inv_smul_lt_iff_of_neg inv_smul_lt_iff_of_negₓ'. -/
theorem inv_smul_lt_iff_of_neg (h : c < 0) : c⁻¹ • a < b ↔ c • b < a :=
  by
  rw [← smul_lt_smul_iff_of_neg h, smul_inv_smul₀ h.ne]
  infer_instance
#align inv_smul_lt_iff_of_neg inv_smul_lt_iff_of_neg

/- warning: smul_inv_le_iff_of_neg -> smul_inv_le_iff_of_neg is a dubious translation:
lean 3 declaration is
  forall {k : Type.{u1}} {M : Type.{u2}} [_inst_1 : LinearOrderedField.{u1} k] [_inst_2 : OrderedAddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} k M (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))] [_inst_4 : OrderedSMul.{u1, u2} k M (StrictOrderedSemiring.toOrderedSemiring.{u1} k (StrictOrderedRing.toStrictOrderedSemiring.{u1} k (LinearOrderedRing.toStrictOrderedRing.{u1} k (LinearOrderedCommRing.toLinearOrderedRing.{u1} k (LinearOrderedField.toLinearOrderedCommRing.{u1} k _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3))] {a : M} {b : M} {c : k}, (LT.lt.{u1} k (Preorder.toLT.{u1} k (PartialOrder.toPreorder.{u1} k (OrderedAddCommGroup.toPartialOrder.{u1} k (StrictOrderedRing.toOrderedAddCommGroup.{u1} k (LinearOrderedRing.toStrictOrderedRing.{u1} k (LinearOrderedCommRing.toLinearOrderedRing.{u1} k (LinearOrderedField.toLinearOrderedCommRing.{u1} k _inst_1))))))) c (OfNat.ofNat.{u1} k 0 (OfNat.mk.{u1} k 0 (Zero.zero.{u1} k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} k (NonAssocRing.toNonUnitalNonAssocRing.{u1} k (Ring.toNonAssocRing.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1)))))))))))) -> (Iff (LE.le.{u2} M (Preorder.toLE.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))) a (SMul.smul.{u1, u2} k M (SMulZeroClass.toHasSmul.{u1, u2} k M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} k M (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3)))) (Inv.inv.{u1} k (DivInvMonoid.toHasInv.{u1} k (DivisionRing.toDivInvMonoid.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1)))) c) b)) (LE.le.{u2} M (Preorder.toLE.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))) b (SMul.smul.{u1, u2} k M (SMulZeroClass.toHasSmul.{u1, u2} k M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} k M (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3)))) c a)))
but is expected to have type
  forall {k : Type.{u2}} {M : Type.{u1}} [_inst_1 : LinearOrderedField.{u2} k] [_inst_2 : OrderedAddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} k M (StrictOrderedSemiring.toSemiring.{u2} k (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} k (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2))] [_inst_4 : OrderedSMul.{u2, u1} k M (OrderedCommSemiring.toOrderedSemiring.{u2} k (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} k (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} k M (Semiring.toMonoidWithZero.{u2} k (StrictOrderedSemiring.toSemiring.{u2} k (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} k (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1)))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} k M (StrictOrderedSemiring.toSemiring.{u2} k (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} k (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) _inst_3))] {a : M} {b : M} {c : k}, (LT.lt.{u2} k (Preorder.toLT.{u2} k (PartialOrder.toPreorder.{u2} k (StrictOrderedRing.toPartialOrder.{u2} k (LinearOrderedRing.toStrictOrderedRing.{u2} k (LinearOrderedCommRing.toLinearOrderedRing.{u2} k (LinearOrderedField.toLinearOrderedCommRing.{u2} k _inst_1)))))) c (OfNat.ofNat.{u2} k 0 (Zero.toOfNat0.{u2} k (CommMonoidWithZero.toZero.{u2} k (CommGroupWithZero.toCommMonoidWithZero.{u2} k (Semifield.toCommGroupWithZero.{u2} k (LinearOrderedSemifield.toSemifield.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1)))))))) -> (Iff (LE.le.{u1} M (Preorder.toLE.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommGroup.toPartialOrder.{u1} M _inst_2))) a (HSMul.hSMul.{u2, u1, u1} k M M (instHSMul.{u2, u1} k M (SMulZeroClass.toSMul.{u2, u1} k M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} k M (CommMonoidWithZero.toZero.{u2} k (CommGroupWithZero.toCommMonoidWithZero.{u2} k (Semifield.toCommGroupWithZero.{u2} k (LinearOrderedSemifield.toSemifield.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} k M (Semiring.toMonoidWithZero.{u2} k (StrictOrderedSemiring.toSemiring.{u2} k (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} k (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1)))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} k M (StrictOrderedSemiring.toSemiring.{u2} k (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} k (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) _inst_3))))) (Inv.inv.{u2} k (LinearOrderedField.toInv.{u2} k _inst_1) c) b)) (LE.le.{u1} M (Preorder.toLE.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommGroup.toPartialOrder.{u1} M _inst_2))) b (HSMul.hSMul.{u2, u1, u1} k M M (instHSMul.{u2, u1} k M (SMulZeroClass.toSMul.{u2, u1} k M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} k M (CommMonoidWithZero.toZero.{u2} k (CommGroupWithZero.toCommMonoidWithZero.{u2} k (Semifield.toCommGroupWithZero.{u2} k (LinearOrderedSemifield.toSemifield.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} k M (Semiring.toMonoidWithZero.{u2} k (StrictOrderedSemiring.toSemiring.{u2} k (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} k (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1)))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} k M (StrictOrderedSemiring.toSemiring.{u2} k (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} k (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) _inst_3))))) c a)))
Case conversion may be inaccurate. Consider using '#align smul_inv_le_iff_of_neg smul_inv_le_iff_of_negₓ'. -/
theorem smul_inv_le_iff_of_neg (h : c < 0) : a ≤ c⁻¹ • b ↔ b ≤ c • a :=
  by
  rw [← smul_le_smul_iff_of_neg h, smul_inv_smul₀ h.ne]
  infer_instance
#align smul_inv_le_iff_of_neg smul_inv_le_iff_of_neg

/- warning: smul_inv_lt_iff_of_neg -> smul_inv_lt_iff_of_neg is a dubious translation:
lean 3 declaration is
  forall {k : Type.{u1}} {M : Type.{u2}} [_inst_1 : LinearOrderedField.{u1} k] [_inst_2 : OrderedAddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} k M (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))] [_inst_4 : OrderedSMul.{u1, u2} k M (StrictOrderedSemiring.toOrderedSemiring.{u1} k (StrictOrderedRing.toStrictOrderedSemiring.{u1} k (LinearOrderedRing.toStrictOrderedRing.{u1} k (LinearOrderedCommRing.toLinearOrderedRing.{u1} k (LinearOrderedField.toLinearOrderedCommRing.{u1} k _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3))] {a : M} {b : M} {c : k}, (LT.lt.{u1} k (Preorder.toLT.{u1} k (PartialOrder.toPreorder.{u1} k (OrderedAddCommGroup.toPartialOrder.{u1} k (StrictOrderedRing.toOrderedAddCommGroup.{u1} k (LinearOrderedRing.toStrictOrderedRing.{u1} k (LinearOrderedCommRing.toLinearOrderedRing.{u1} k (LinearOrderedField.toLinearOrderedCommRing.{u1} k _inst_1))))))) c (OfNat.ofNat.{u1} k 0 (OfNat.mk.{u1} k 0 (Zero.zero.{u1} k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} k (NonAssocRing.toNonUnitalNonAssocRing.{u1} k (Ring.toNonAssocRing.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1)))))))))))) -> (Iff (LT.lt.{u2} M (Preorder.toLT.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))) a (SMul.smul.{u1, u2} k M (SMulZeroClass.toHasSmul.{u1, u2} k M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} k M (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3)))) (Inv.inv.{u1} k (DivInvMonoid.toHasInv.{u1} k (DivisionRing.toDivInvMonoid.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1)))) c) b)) (LT.lt.{u2} M (Preorder.toLT.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))) b (SMul.smul.{u1, u2} k M (SMulZeroClass.toHasSmul.{u1, u2} k M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} k M (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3)))) c a)))
but is expected to have type
  forall {k : Type.{u2}} {M : Type.{u1}} [_inst_1 : LinearOrderedField.{u2} k] [_inst_2 : OrderedAddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} k M (StrictOrderedSemiring.toSemiring.{u2} k (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} k (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2))] [_inst_4 : OrderedSMul.{u2, u1} k M (OrderedCommSemiring.toOrderedSemiring.{u2} k (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} k (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} k M (Semiring.toMonoidWithZero.{u2} k (StrictOrderedSemiring.toSemiring.{u2} k (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} k (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1)))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} k M (StrictOrderedSemiring.toSemiring.{u2} k (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} k (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) _inst_3))] {a : M} {b : M} {c : k}, (LT.lt.{u2} k (Preorder.toLT.{u2} k (PartialOrder.toPreorder.{u2} k (StrictOrderedRing.toPartialOrder.{u2} k (LinearOrderedRing.toStrictOrderedRing.{u2} k (LinearOrderedCommRing.toLinearOrderedRing.{u2} k (LinearOrderedField.toLinearOrderedCommRing.{u2} k _inst_1)))))) c (OfNat.ofNat.{u2} k 0 (Zero.toOfNat0.{u2} k (CommMonoidWithZero.toZero.{u2} k (CommGroupWithZero.toCommMonoidWithZero.{u2} k (Semifield.toCommGroupWithZero.{u2} k (LinearOrderedSemifield.toSemifield.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1)))))))) -> (Iff (LT.lt.{u1} M (Preorder.toLT.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommGroup.toPartialOrder.{u1} M _inst_2))) a (HSMul.hSMul.{u2, u1, u1} k M M (instHSMul.{u2, u1} k M (SMulZeroClass.toSMul.{u2, u1} k M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} k M (CommMonoidWithZero.toZero.{u2} k (CommGroupWithZero.toCommMonoidWithZero.{u2} k (Semifield.toCommGroupWithZero.{u2} k (LinearOrderedSemifield.toSemifield.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} k M (Semiring.toMonoidWithZero.{u2} k (StrictOrderedSemiring.toSemiring.{u2} k (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} k (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1)))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} k M (StrictOrderedSemiring.toSemiring.{u2} k (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} k (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) _inst_3))))) (Inv.inv.{u2} k (LinearOrderedField.toInv.{u2} k _inst_1) c) b)) (LT.lt.{u1} M (Preorder.toLT.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommGroup.toPartialOrder.{u1} M _inst_2))) b (HSMul.hSMul.{u2, u1, u1} k M M (instHSMul.{u2, u1} k M (SMulZeroClass.toSMul.{u2, u1} k M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} k M (CommMonoidWithZero.toZero.{u2} k (CommGroupWithZero.toCommMonoidWithZero.{u2} k (Semifield.toCommGroupWithZero.{u2} k (LinearOrderedSemifield.toSemifield.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} k M (Semiring.toMonoidWithZero.{u2} k (StrictOrderedSemiring.toSemiring.{u2} k (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} k (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1)))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} k M (StrictOrderedSemiring.toSemiring.{u2} k (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} k (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) _inst_3))))) c a)))
Case conversion may be inaccurate. Consider using '#align smul_inv_lt_iff_of_neg smul_inv_lt_iff_of_negₓ'. -/
theorem smul_inv_lt_iff_of_neg (h : c < 0) : a < c⁻¹ • b ↔ b < c • a :=
  by
  rw [← smul_lt_smul_iff_of_neg h, smul_inv_smul₀ h.ne]
  infer_instance
#align smul_inv_lt_iff_of_neg smul_inv_lt_iff_of_neg

variable (M)

/- warning: order_iso.smul_left_dual -> OrderIso.smulLeftDual is a dubious translation:
lean 3 declaration is
  forall {k : Type.{u1}} (M : Type.{u2}) [_inst_1 : LinearOrderedField.{u1} k] [_inst_2 : OrderedAddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} k M (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))] [_inst_4 : OrderedSMul.{u1, u2} k M (StrictOrderedSemiring.toOrderedSemiring.{u1} k (StrictOrderedRing.toStrictOrderedSemiring.{u1} k (LinearOrderedRing.toStrictOrderedRing.{u1} k (LinearOrderedCommRing.toLinearOrderedRing.{u1} k (LinearOrderedField.toLinearOrderedCommRing.{u1} k _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3))] {c : k}, (LT.lt.{u1} k (Preorder.toLT.{u1} k (PartialOrder.toPreorder.{u1} k (OrderedAddCommGroup.toPartialOrder.{u1} k (StrictOrderedRing.toOrderedAddCommGroup.{u1} k (LinearOrderedRing.toStrictOrderedRing.{u1} k (LinearOrderedCommRing.toLinearOrderedRing.{u1} k (LinearOrderedField.toLinearOrderedCommRing.{u1} k _inst_1))))))) c (OfNat.ofNat.{u1} k 0 (OfNat.mk.{u1} k 0 (Zero.zero.{u1} k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} k (NonAssocRing.toNonUnitalNonAssocRing.{u1} k (Ring.toNonAssocRing.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1)))))))))))) -> (OrderIso.{u2, u2} M (OrderDual.{u2} M) (Preorder.toLE.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))) (OrderDual.hasLe.{u2} M (Preorder.toLE.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2)))))
but is expected to have type
  forall {k : Type.{u1}} (M : Type.{u2}) [_inst_1 : LinearOrderedField.{u1} k] [_inst_2 : OrderedAddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} k M (StrictOrderedSemiring.toSemiring.{u1} k (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} k (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} k (LinearOrderedField.toLinearOrderedSemifield.{u1} k _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2))] [_inst_4 : OrderedSMul.{u1, u2} k M (OrderedCommSemiring.toOrderedSemiring.{u1} k (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} k (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} k (LinearOrderedField.toLinearOrderedSemifield.{u1} k _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (StrictOrderedSemiring.toSemiring.{u1} k (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} k (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} k (LinearOrderedField.toLinearOrderedSemifield.{u1} k _inst_1)))))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} k M (StrictOrderedSemiring.toSemiring.{u1} k (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} k (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} k (LinearOrderedField.toLinearOrderedSemifield.{u1} k _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) _inst_3))] {c : k}, (LT.lt.{u1} k (Preorder.toLT.{u1} k (PartialOrder.toPreorder.{u1} k (StrictOrderedRing.toPartialOrder.{u1} k (LinearOrderedRing.toStrictOrderedRing.{u1} k (LinearOrderedCommRing.toLinearOrderedRing.{u1} k (LinearOrderedField.toLinearOrderedCommRing.{u1} k _inst_1)))))) c (OfNat.ofNat.{u1} k 0 (Zero.toOfNat0.{u1} k (CommMonoidWithZero.toZero.{u1} k (CommGroupWithZero.toCommMonoidWithZero.{u1} k (Semifield.toCommGroupWithZero.{u1} k (LinearOrderedSemifield.toSemifield.{u1} k (LinearOrderedField.toLinearOrderedSemifield.{u1} k _inst_1)))))))) -> (OrderIso.{u2, u2} M (OrderDual.{u2} M) (Preorder.toLE.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2))) (OrderDual.instLEOrderDual.{u2} M (Preorder.toLE.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2)))))
Case conversion may be inaccurate. Consider using '#align order_iso.smul_left_dual OrderIso.smulLeftDualₓ'. -/
/-- Left scalar multiplication as an order isomorphism. -/
@[simps]
def OrderIso.smulLeftDual {c : k} (hc : c < 0) : M ≃o Mᵒᵈ
    where
  toFun b := OrderDual.toDual (c • b)
  invFun b := c⁻¹ • OrderDual.ofDual b
  left_inv := inv_smul_smul₀ hc.Ne
  right_inv := smul_inv_smul₀ hc.Ne
  map_rel_iff' b₁ b₂ := smul_le_smul_iff_of_neg hc
#align order_iso.smul_left_dual OrderIso.smulLeftDual

end Field

/-! ### Upper/lower bounds -/

section OrderedRing

variable [OrderedRing k] [OrderedAddCommGroup M] [Module k M] [OrderedSMul k M] {s : Set M} {c : k}

/- warning: smul_lower_bounds_subset_upper_bounds_smul -> smul_lowerBounds_subset_upperBounds_smul is a dubious translation:
lean 3 declaration is
  forall {k : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedRing.{u1} k] [_inst_2 : OrderedAddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))] [_inst_4 : OrderedSMul.{u1, u2} k M (OrderedRing.toOrderedSemiring.{u1} k _inst_1) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3))] {s : Set.{u2} M} {c : k}, (LE.le.{u1} k (Preorder.toLE.{u1} k (PartialOrder.toPreorder.{u1} k (OrderedAddCommGroup.toPartialOrder.{u1} k (OrderedRing.toOrderedAddCommGroup.{u1} k _inst_1)))) c (OfNat.ofNat.{u1} k 0 (OfNat.mk.{u1} k 0 (Zero.zero.{u1} k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} k (NonAssocRing.toNonUnitalNonAssocRing.{u1} k (Ring.toNonAssocRing.{u1} k (OrderedRing.toRing.{u1} k _inst_1)))))))))) -> (HasSubset.Subset.{u2} (Set.{u2} M) (Set.hasSubset.{u2} M) (SMul.smul.{u1, u2} k (Set.{u2} M) (Set.smulSet.{u1, u2} k M (SMulZeroClass.toHasSmul.{u1, u2} k M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} k M (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3))))) c (lowerBounds.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2)) s)) (upperBounds.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2)) (SMul.smul.{u1, u2} k (Set.{u2} M) (Set.smulSet.{u1, u2} k M (SMulZeroClass.toHasSmul.{u1, u2} k M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} k M (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3))))) c s)))
but is expected to have type
  forall {k : Type.{u2}} {M : Type.{u1}} [_inst_1 : OrderedRing.{u2} k] [_inst_2 : OrderedAddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} k M (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2))] [_inst_4 : OrderedSMul.{u2, u1} k M (OrderedRing.toOrderedSemiring.{u2} k _inst_1) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} k M (Semiring.toMonoidWithZero.{u2} k (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} k M (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) _inst_3))] {s : Set.{u1} M} {c : k}, (LE.le.{u2} k (Preorder.toLE.{u2} k (PartialOrder.toPreorder.{u2} k (OrderedRing.toPartialOrder.{u2} k _inst_1))) c (OfNat.ofNat.{u2} k 0 (Zero.toOfNat0.{u2} k (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1))))))) -> (HasSubset.Subset.{u1} (Set.{u1} M) (Set.instHasSubsetSet.{u1} M) (HSMul.hSMul.{u2, u1, u1} k (Set.{u1} M) (Set.{u1} M) (instHSMul.{u2, u1} k (Set.{u1} M) (Set.smulSet.{u2, u1} k M (SMulZeroClass.toSMul.{u2, u1} k M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} k M (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1)))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} k M (Semiring.toMonoidWithZero.{u2} k (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} k M (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) _inst_3)))))) c (lowerBounds.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommGroup.toPartialOrder.{u1} M _inst_2)) s)) (upperBounds.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommGroup.toPartialOrder.{u1} M _inst_2)) (HSMul.hSMul.{u2, u1, u1} k (Set.{u1} M) (Set.{u1} M) (instHSMul.{u2, u1} k (Set.{u1} M) (Set.smulSet.{u2, u1} k M (SMulZeroClass.toSMul.{u2, u1} k M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} k M (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1)))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} k M (Semiring.toMonoidWithZero.{u2} k (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} k M (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) _inst_3)))))) c s)))
Case conversion may be inaccurate. Consider using '#align smul_lower_bounds_subset_upper_bounds_smul smul_lowerBounds_subset_upperBounds_smulₓ'. -/
theorem smul_lowerBounds_subset_upperBounds_smul (hc : c ≤ 0) :
    c • lowerBounds s ⊆ upperBounds (c • s) :=
  (antitone_smul_left hc).image_lowerBounds_subset_upperBounds_image
#align smul_lower_bounds_subset_upper_bounds_smul smul_lowerBounds_subset_upperBounds_smul

/- warning: smul_upper_bounds_subset_lower_bounds_smul -> smul_upperBounds_subset_lowerBounds_smul is a dubious translation:
lean 3 declaration is
  forall {k : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedRing.{u1} k] [_inst_2 : OrderedAddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))] [_inst_4 : OrderedSMul.{u1, u2} k M (OrderedRing.toOrderedSemiring.{u1} k _inst_1) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3))] {s : Set.{u2} M} {c : k}, (LE.le.{u1} k (Preorder.toLE.{u1} k (PartialOrder.toPreorder.{u1} k (OrderedAddCommGroup.toPartialOrder.{u1} k (OrderedRing.toOrderedAddCommGroup.{u1} k _inst_1)))) c (OfNat.ofNat.{u1} k 0 (OfNat.mk.{u1} k 0 (Zero.zero.{u1} k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} k (NonAssocRing.toNonUnitalNonAssocRing.{u1} k (Ring.toNonAssocRing.{u1} k (OrderedRing.toRing.{u1} k _inst_1)))))))))) -> (HasSubset.Subset.{u2} (Set.{u2} M) (Set.hasSubset.{u2} M) (SMul.smul.{u1, u2} k (Set.{u2} M) (Set.smulSet.{u1, u2} k M (SMulZeroClass.toHasSmul.{u1, u2} k M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} k M (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3))))) c (upperBounds.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2)) s)) (lowerBounds.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2)) (SMul.smul.{u1, u2} k (Set.{u2} M) (Set.smulSet.{u1, u2} k M (SMulZeroClass.toHasSmul.{u1, u2} k M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} k M (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3))))) c s)))
but is expected to have type
  forall {k : Type.{u2}} {M : Type.{u1}} [_inst_1 : OrderedRing.{u2} k] [_inst_2 : OrderedAddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} k M (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2))] [_inst_4 : OrderedSMul.{u2, u1} k M (OrderedRing.toOrderedSemiring.{u2} k _inst_1) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} k M (Semiring.toMonoidWithZero.{u2} k (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} k M (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) _inst_3))] {s : Set.{u1} M} {c : k}, (LE.le.{u2} k (Preorder.toLE.{u2} k (PartialOrder.toPreorder.{u2} k (OrderedRing.toPartialOrder.{u2} k _inst_1))) c (OfNat.ofNat.{u2} k 0 (Zero.toOfNat0.{u2} k (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1))))))) -> (HasSubset.Subset.{u1} (Set.{u1} M) (Set.instHasSubsetSet.{u1} M) (HSMul.hSMul.{u2, u1, u1} k (Set.{u1} M) (Set.{u1} M) (instHSMul.{u2, u1} k (Set.{u1} M) (Set.smulSet.{u2, u1} k M (SMulZeroClass.toSMul.{u2, u1} k M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} k M (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1)))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} k M (Semiring.toMonoidWithZero.{u2} k (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} k M (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) _inst_3)))))) c (upperBounds.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommGroup.toPartialOrder.{u1} M _inst_2)) s)) (lowerBounds.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommGroup.toPartialOrder.{u1} M _inst_2)) (HSMul.hSMul.{u2, u1, u1} k (Set.{u1} M) (Set.{u1} M) (instHSMul.{u2, u1} k (Set.{u1} M) (Set.smulSet.{u2, u1} k M (SMulZeroClass.toSMul.{u2, u1} k M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} k M (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1)))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} k M (Semiring.toMonoidWithZero.{u2} k (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} k M (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) _inst_3)))))) c s)))
Case conversion may be inaccurate. Consider using '#align smul_upper_bounds_subset_lower_bounds_smul smul_upperBounds_subset_lowerBounds_smulₓ'. -/
theorem smul_upperBounds_subset_lowerBounds_smul (hc : c ≤ 0) :
    c • upperBounds s ⊆ lowerBounds (c • s) :=
  (antitone_smul_left hc).image_upperBounds_subset_lowerBounds_image
#align smul_upper_bounds_subset_lower_bounds_smul smul_upperBounds_subset_lowerBounds_smul

/- warning: bdd_below.smul_of_nonpos -> BddBelow.smul_of_nonpos is a dubious translation:
lean 3 declaration is
  forall {k : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedRing.{u1} k] [_inst_2 : OrderedAddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))] [_inst_4 : OrderedSMul.{u1, u2} k M (OrderedRing.toOrderedSemiring.{u1} k _inst_1) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3))] {s : Set.{u2} M} {c : k}, (LE.le.{u1} k (Preorder.toLE.{u1} k (PartialOrder.toPreorder.{u1} k (OrderedAddCommGroup.toPartialOrder.{u1} k (OrderedRing.toOrderedAddCommGroup.{u1} k _inst_1)))) c (OfNat.ofNat.{u1} k 0 (OfNat.mk.{u1} k 0 (Zero.zero.{u1} k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} k (NonAssocRing.toNonUnitalNonAssocRing.{u1} k (Ring.toNonAssocRing.{u1} k (OrderedRing.toRing.{u1} k _inst_1)))))))))) -> (BddBelow.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2)) s) -> (BddAbove.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2)) (SMul.smul.{u1, u2} k (Set.{u2} M) (Set.smulSet.{u1, u2} k M (SMulZeroClass.toHasSmul.{u1, u2} k M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} k M (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3))))) c s))
but is expected to have type
  forall {k : Type.{u2}} {M : Type.{u1}} [_inst_1 : OrderedRing.{u2} k] [_inst_2 : OrderedAddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} k M (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2))] [_inst_4 : OrderedSMul.{u2, u1} k M (OrderedRing.toOrderedSemiring.{u2} k _inst_1) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} k M (Semiring.toMonoidWithZero.{u2} k (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} k M (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) _inst_3))] {s : Set.{u1} M} {c : k}, (LE.le.{u2} k (Preorder.toLE.{u2} k (PartialOrder.toPreorder.{u2} k (OrderedRing.toPartialOrder.{u2} k _inst_1))) c (OfNat.ofNat.{u2} k 0 (Zero.toOfNat0.{u2} k (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1))))))) -> (BddBelow.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommGroup.toPartialOrder.{u1} M _inst_2)) s) -> (BddAbove.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommGroup.toPartialOrder.{u1} M _inst_2)) (HSMul.hSMul.{u2, u1, u1} k (Set.{u1} M) (Set.{u1} M) (instHSMul.{u2, u1} k (Set.{u1} M) (Set.smulSet.{u2, u1} k M (SMulZeroClass.toSMul.{u2, u1} k M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} k M (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1)))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} k M (Semiring.toMonoidWithZero.{u2} k (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} k M (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) _inst_3)))))) c s))
Case conversion may be inaccurate. Consider using '#align bdd_below.smul_of_nonpos BddBelow.smul_of_nonposₓ'. -/
theorem BddBelow.smul_of_nonpos (hc : c ≤ 0) (hs : BddBelow s) : BddAbove (c • s) :=
  (antitone_smul_left hc).map_bddBelow hs
#align bdd_below.smul_of_nonpos BddBelow.smul_of_nonpos

/- warning: bdd_above.smul_of_nonpos -> BddAbove.smul_of_nonpos is a dubious translation:
lean 3 declaration is
  forall {k : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedRing.{u1} k] [_inst_2 : OrderedAddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))] [_inst_4 : OrderedSMul.{u1, u2} k M (OrderedRing.toOrderedSemiring.{u1} k _inst_1) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3))] {s : Set.{u2} M} {c : k}, (LE.le.{u1} k (Preorder.toLE.{u1} k (PartialOrder.toPreorder.{u1} k (OrderedAddCommGroup.toPartialOrder.{u1} k (OrderedRing.toOrderedAddCommGroup.{u1} k _inst_1)))) c (OfNat.ofNat.{u1} k 0 (OfNat.mk.{u1} k 0 (Zero.zero.{u1} k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} k (NonAssocRing.toNonUnitalNonAssocRing.{u1} k (Ring.toNonAssocRing.{u1} k (OrderedRing.toRing.{u1} k _inst_1)))))))))) -> (BddAbove.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2)) s) -> (BddBelow.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2)) (SMul.smul.{u1, u2} k (Set.{u2} M) (Set.smulSet.{u1, u2} k M (SMulZeroClass.toHasSmul.{u1, u2} k M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} k M (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (OrderedRing.toRing.{u1} k _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3))))) c s))
but is expected to have type
  forall {k : Type.{u2}} {M : Type.{u1}} [_inst_1 : OrderedRing.{u2} k] [_inst_2 : OrderedAddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} k M (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2))] [_inst_4 : OrderedSMul.{u2, u1} k M (OrderedRing.toOrderedSemiring.{u2} k _inst_1) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} k M (Semiring.toMonoidWithZero.{u2} k (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} k M (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) _inst_3))] {s : Set.{u1} M} {c : k}, (LE.le.{u2} k (Preorder.toLE.{u2} k (PartialOrder.toPreorder.{u2} k (OrderedRing.toPartialOrder.{u2} k _inst_1))) c (OfNat.ofNat.{u2} k 0 (Zero.toOfNat0.{u2} k (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1))))))) -> (BddAbove.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommGroup.toPartialOrder.{u1} M _inst_2)) s) -> (BddBelow.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommGroup.toPartialOrder.{u1} M _inst_2)) (HSMul.hSMul.{u2, u1, u1} k (Set.{u1} M) (Set.{u1} M) (instHSMul.{u2, u1} k (Set.{u1} M) (Set.smulSet.{u2, u1} k M (SMulZeroClass.toSMul.{u2, u1} k M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} k M (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1)))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} k M (Semiring.toMonoidWithZero.{u2} k (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} k M (OrderedSemiring.toSemiring.{u2} k (OrderedRing.toOrderedSemiring.{u2} k _inst_1)) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) _inst_3)))))) c s))
Case conversion may be inaccurate. Consider using '#align bdd_above.smul_of_nonpos BddAbove.smul_of_nonposₓ'. -/
theorem BddAbove.smul_of_nonpos (hc : c ≤ 0) (hs : BddAbove s) : BddBelow (c • s) :=
  (antitone_smul_left hc).map_bddAbove hs
#align bdd_above.smul_of_nonpos BddAbove.smul_of_nonpos

end OrderedRing

section LinearOrderedField

variable [LinearOrderedField k] [OrderedAddCommGroup M] [Module k M] [OrderedSMul k M] {s : Set M}
  {c : k}

/- warning: lower_bounds_smul_of_neg -> lowerBounds_smul_of_neg is a dubious translation:
lean 3 declaration is
  forall {k : Type.{u1}} {M : Type.{u2}} [_inst_1 : LinearOrderedField.{u1} k] [_inst_2 : OrderedAddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} k M (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))] [_inst_4 : OrderedSMul.{u1, u2} k M (StrictOrderedSemiring.toOrderedSemiring.{u1} k (StrictOrderedRing.toStrictOrderedSemiring.{u1} k (LinearOrderedRing.toStrictOrderedRing.{u1} k (LinearOrderedCommRing.toLinearOrderedRing.{u1} k (LinearOrderedField.toLinearOrderedCommRing.{u1} k _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3))] {s : Set.{u2} M} {c : k}, (LT.lt.{u1} k (Preorder.toLT.{u1} k (PartialOrder.toPreorder.{u1} k (OrderedAddCommGroup.toPartialOrder.{u1} k (StrictOrderedRing.toOrderedAddCommGroup.{u1} k (LinearOrderedRing.toStrictOrderedRing.{u1} k (LinearOrderedCommRing.toLinearOrderedRing.{u1} k (LinearOrderedField.toLinearOrderedCommRing.{u1} k _inst_1))))))) c (OfNat.ofNat.{u1} k 0 (OfNat.mk.{u1} k 0 (Zero.zero.{u1} k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} k (NonAssocRing.toNonUnitalNonAssocRing.{u1} k (Ring.toNonAssocRing.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1)))))))))))) -> (Eq.{succ u2} (Set.{u2} M) (lowerBounds.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2)) (SMul.smul.{u1, u2} k (Set.{u2} M) (Set.smulSet.{u1, u2} k M (SMulZeroClass.toHasSmul.{u1, u2} k M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} k M (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3))))) c s)) (SMul.smul.{u1, u2} k (Set.{u2} M) (Set.smulSet.{u1, u2} k M (SMulZeroClass.toHasSmul.{u1, u2} k M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} k M (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3))))) c (upperBounds.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2)) s)))
but is expected to have type
  forall {k : Type.{u2}} {M : Type.{u1}} [_inst_1 : LinearOrderedField.{u2} k] [_inst_2 : OrderedAddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} k M (StrictOrderedSemiring.toSemiring.{u2} k (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} k (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2))] [_inst_4 : OrderedSMul.{u2, u1} k M (OrderedCommSemiring.toOrderedSemiring.{u2} k (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} k (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} k M (Semiring.toMonoidWithZero.{u2} k (StrictOrderedSemiring.toSemiring.{u2} k (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} k (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1)))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} k M (StrictOrderedSemiring.toSemiring.{u2} k (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} k (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) _inst_3))] {s : Set.{u1} M} {c : k}, (LT.lt.{u2} k (Preorder.toLT.{u2} k (PartialOrder.toPreorder.{u2} k (StrictOrderedRing.toPartialOrder.{u2} k (LinearOrderedRing.toStrictOrderedRing.{u2} k (LinearOrderedCommRing.toLinearOrderedRing.{u2} k (LinearOrderedField.toLinearOrderedCommRing.{u2} k _inst_1)))))) c (OfNat.ofNat.{u2} k 0 (Zero.toOfNat0.{u2} k (CommMonoidWithZero.toZero.{u2} k (CommGroupWithZero.toCommMonoidWithZero.{u2} k (Semifield.toCommGroupWithZero.{u2} k (LinearOrderedSemifield.toSemifield.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1)))))))) -> (Eq.{succ u1} (Set.{u1} M) (lowerBounds.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommGroup.toPartialOrder.{u1} M _inst_2)) (HSMul.hSMul.{u2, u1, u1} k (Set.{u1} M) (Set.{u1} M) (instHSMul.{u2, u1} k (Set.{u1} M) (Set.smulSet.{u2, u1} k M (SMulZeroClass.toSMul.{u2, u1} k M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} k M (CommMonoidWithZero.toZero.{u2} k (CommGroupWithZero.toCommMonoidWithZero.{u2} k (Semifield.toCommGroupWithZero.{u2} k (LinearOrderedSemifield.toSemifield.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} k M (Semiring.toMonoidWithZero.{u2} k (StrictOrderedSemiring.toSemiring.{u2} k (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} k (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1)))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} k M (StrictOrderedSemiring.toSemiring.{u2} k (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} k (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) _inst_3)))))) c s)) (HSMul.hSMul.{u2, u1, u1} k (Set.{u1} M) (Set.{u1} M) (instHSMul.{u2, u1} k (Set.{u1} M) (Set.smulSet.{u2, u1} k M (SMulZeroClass.toSMul.{u2, u1} k M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} k M (CommMonoidWithZero.toZero.{u2} k (CommGroupWithZero.toCommMonoidWithZero.{u2} k (Semifield.toCommGroupWithZero.{u2} k (LinearOrderedSemifield.toSemifield.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} k M (Semiring.toMonoidWithZero.{u2} k (StrictOrderedSemiring.toSemiring.{u2} k (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} k (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1)))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} k M (StrictOrderedSemiring.toSemiring.{u2} k (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} k (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) _inst_3)))))) c (upperBounds.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommGroup.toPartialOrder.{u1} M _inst_2)) s)))
Case conversion may be inaccurate. Consider using '#align lower_bounds_smul_of_neg lowerBounds_smul_of_negₓ'. -/
@[simp]
theorem lowerBounds_smul_of_neg (hc : c < 0) : lowerBounds (c • s) = c • upperBounds s :=
  (OrderIso.smulLeftDual M hc).upperBounds_image
#align lower_bounds_smul_of_neg lowerBounds_smul_of_neg

/- warning: upper_bounds_smul_of_neg -> upperBounds_smul_of_neg is a dubious translation:
lean 3 declaration is
  forall {k : Type.{u1}} {M : Type.{u2}} [_inst_1 : LinearOrderedField.{u1} k] [_inst_2 : OrderedAddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} k M (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))] [_inst_4 : OrderedSMul.{u1, u2} k M (StrictOrderedSemiring.toOrderedSemiring.{u1} k (StrictOrderedRing.toStrictOrderedSemiring.{u1} k (LinearOrderedRing.toStrictOrderedRing.{u1} k (LinearOrderedCommRing.toLinearOrderedRing.{u1} k (LinearOrderedField.toLinearOrderedCommRing.{u1} k _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3))] {s : Set.{u2} M} {c : k}, (LT.lt.{u1} k (Preorder.toLT.{u1} k (PartialOrder.toPreorder.{u1} k (OrderedAddCommGroup.toPartialOrder.{u1} k (StrictOrderedRing.toOrderedAddCommGroup.{u1} k (LinearOrderedRing.toStrictOrderedRing.{u1} k (LinearOrderedCommRing.toLinearOrderedRing.{u1} k (LinearOrderedField.toLinearOrderedCommRing.{u1} k _inst_1))))))) c (OfNat.ofNat.{u1} k 0 (OfNat.mk.{u1} k 0 (Zero.zero.{u1} k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} k (NonAssocRing.toNonUnitalNonAssocRing.{u1} k (Ring.toNonAssocRing.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1)))))))))))) -> (Eq.{succ u2} (Set.{u2} M) (upperBounds.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2)) (SMul.smul.{u1, u2} k (Set.{u2} M) (Set.smulSet.{u1, u2} k M (SMulZeroClass.toHasSmul.{u1, u2} k M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} k M (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3))))) c s)) (SMul.smul.{u1, u2} k (Set.{u2} M) (Set.smulSet.{u1, u2} k M (SMulZeroClass.toHasSmul.{u1, u2} k M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} k M (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3))))) c (lowerBounds.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2)) s)))
but is expected to have type
  forall {k : Type.{u2}} {M : Type.{u1}} [_inst_1 : LinearOrderedField.{u2} k] [_inst_2 : OrderedAddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} k M (StrictOrderedSemiring.toSemiring.{u2} k (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} k (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2))] [_inst_4 : OrderedSMul.{u2, u1} k M (OrderedCommSemiring.toOrderedSemiring.{u2} k (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} k (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} k M (Semiring.toMonoidWithZero.{u2} k (StrictOrderedSemiring.toSemiring.{u2} k (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} k (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1)))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} k M (StrictOrderedSemiring.toSemiring.{u2} k (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} k (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) _inst_3))] {s : Set.{u1} M} {c : k}, (LT.lt.{u2} k (Preorder.toLT.{u2} k (PartialOrder.toPreorder.{u2} k (StrictOrderedRing.toPartialOrder.{u2} k (LinearOrderedRing.toStrictOrderedRing.{u2} k (LinearOrderedCommRing.toLinearOrderedRing.{u2} k (LinearOrderedField.toLinearOrderedCommRing.{u2} k _inst_1)))))) c (OfNat.ofNat.{u2} k 0 (Zero.toOfNat0.{u2} k (CommMonoidWithZero.toZero.{u2} k (CommGroupWithZero.toCommMonoidWithZero.{u2} k (Semifield.toCommGroupWithZero.{u2} k (LinearOrderedSemifield.toSemifield.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1)))))))) -> (Eq.{succ u1} (Set.{u1} M) (upperBounds.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommGroup.toPartialOrder.{u1} M _inst_2)) (HSMul.hSMul.{u2, u1, u1} k (Set.{u1} M) (Set.{u1} M) (instHSMul.{u2, u1} k (Set.{u1} M) (Set.smulSet.{u2, u1} k M (SMulZeroClass.toSMul.{u2, u1} k M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} k M (CommMonoidWithZero.toZero.{u2} k (CommGroupWithZero.toCommMonoidWithZero.{u2} k (Semifield.toCommGroupWithZero.{u2} k (LinearOrderedSemifield.toSemifield.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} k M (Semiring.toMonoidWithZero.{u2} k (StrictOrderedSemiring.toSemiring.{u2} k (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} k (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1)))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} k M (StrictOrderedSemiring.toSemiring.{u2} k (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} k (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) _inst_3)))))) c s)) (HSMul.hSMul.{u2, u1, u1} k (Set.{u1} M) (Set.{u1} M) (instHSMul.{u2, u1} k (Set.{u1} M) (Set.smulSet.{u2, u1} k M (SMulZeroClass.toSMul.{u2, u1} k M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} k M (CommMonoidWithZero.toZero.{u2} k (CommGroupWithZero.toCommMonoidWithZero.{u2} k (Semifield.toCommGroupWithZero.{u2} k (LinearOrderedSemifield.toSemifield.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} k M (Semiring.toMonoidWithZero.{u2} k (StrictOrderedSemiring.toSemiring.{u2} k (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} k (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1)))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} k M (StrictOrderedSemiring.toSemiring.{u2} k (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} k (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) _inst_3)))))) c (lowerBounds.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommGroup.toPartialOrder.{u1} M _inst_2)) s)))
Case conversion may be inaccurate. Consider using '#align upper_bounds_smul_of_neg upperBounds_smul_of_negₓ'. -/
@[simp]
theorem upperBounds_smul_of_neg (hc : c < 0) : upperBounds (c • s) = c • lowerBounds s :=
  (OrderIso.smulLeftDual M hc).lowerBounds_image
#align upper_bounds_smul_of_neg upperBounds_smul_of_neg

/- warning: bdd_below_smul_iff_of_neg -> bddBelow_smul_iff_of_neg is a dubious translation:
lean 3 declaration is
  forall {k : Type.{u1}} {M : Type.{u2}} [_inst_1 : LinearOrderedField.{u1} k] [_inst_2 : OrderedAddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} k M (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))] [_inst_4 : OrderedSMul.{u1, u2} k M (StrictOrderedSemiring.toOrderedSemiring.{u1} k (StrictOrderedRing.toStrictOrderedSemiring.{u1} k (LinearOrderedRing.toStrictOrderedRing.{u1} k (LinearOrderedCommRing.toLinearOrderedRing.{u1} k (LinearOrderedField.toLinearOrderedCommRing.{u1} k _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3))] {s : Set.{u2} M} {c : k}, (LT.lt.{u1} k (Preorder.toLT.{u1} k (PartialOrder.toPreorder.{u1} k (OrderedAddCommGroup.toPartialOrder.{u1} k (StrictOrderedRing.toOrderedAddCommGroup.{u1} k (LinearOrderedRing.toStrictOrderedRing.{u1} k (LinearOrderedCommRing.toLinearOrderedRing.{u1} k (LinearOrderedField.toLinearOrderedCommRing.{u1} k _inst_1))))))) c (OfNat.ofNat.{u1} k 0 (OfNat.mk.{u1} k 0 (Zero.zero.{u1} k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} k (NonAssocRing.toNonUnitalNonAssocRing.{u1} k (Ring.toNonAssocRing.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1)))))))))))) -> (Iff (BddBelow.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2)) (SMul.smul.{u1, u2} k (Set.{u2} M) (Set.smulSet.{u1, u2} k M (SMulZeroClass.toHasSmul.{u1, u2} k M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} k M (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3))))) c s)) (BddAbove.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2)) s))
but is expected to have type
  forall {k : Type.{u2}} {M : Type.{u1}} [_inst_1 : LinearOrderedField.{u2} k] [_inst_2 : OrderedAddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} k M (StrictOrderedSemiring.toSemiring.{u2} k (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} k (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2))] [_inst_4 : OrderedSMul.{u2, u1} k M (OrderedCommSemiring.toOrderedSemiring.{u2} k (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} k (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} k M (Semiring.toMonoidWithZero.{u2} k (StrictOrderedSemiring.toSemiring.{u2} k (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} k (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1)))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} k M (StrictOrderedSemiring.toSemiring.{u2} k (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} k (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) _inst_3))] {s : Set.{u1} M} {c : k}, (LT.lt.{u2} k (Preorder.toLT.{u2} k (PartialOrder.toPreorder.{u2} k (StrictOrderedRing.toPartialOrder.{u2} k (LinearOrderedRing.toStrictOrderedRing.{u2} k (LinearOrderedCommRing.toLinearOrderedRing.{u2} k (LinearOrderedField.toLinearOrderedCommRing.{u2} k _inst_1)))))) c (OfNat.ofNat.{u2} k 0 (Zero.toOfNat0.{u2} k (CommMonoidWithZero.toZero.{u2} k (CommGroupWithZero.toCommMonoidWithZero.{u2} k (Semifield.toCommGroupWithZero.{u2} k (LinearOrderedSemifield.toSemifield.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1)))))))) -> (Iff (BddBelow.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommGroup.toPartialOrder.{u1} M _inst_2)) (HSMul.hSMul.{u2, u1, u1} k (Set.{u1} M) (Set.{u1} M) (instHSMul.{u2, u1} k (Set.{u1} M) (Set.smulSet.{u2, u1} k M (SMulZeroClass.toSMul.{u2, u1} k M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} k M (CommMonoidWithZero.toZero.{u2} k (CommGroupWithZero.toCommMonoidWithZero.{u2} k (Semifield.toCommGroupWithZero.{u2} k (LinearOrderedSemifield.toSemifield.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} k M (Semiring.toMonoidWithZero.{u2} k (StrictOrderedSemiring.toSemiring.{u2} k (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} k (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1)))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} k M (StrictOrderedSemiring.toSemiring.{u2} k (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} k (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) _inst_3)))))) c s)) (BddAbove.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommGroup.toPartialOrder.{u1} M _inst_2)) s))
Case conversion may be inaccurate. Consider using '#align bdd_below_smul_iff_of_neg bddBelow_smul_iff_of_negₓ'. -/
@[simp]
theorem bddBelow_smul_iff_of_neg (hc : c < 0) : BddBelow (c • s) ↔ BddAbove s :=
  (OrderIso.smulLeftDual M hc).bddAbove_image
#align bdd_below_smul_iff_of_neg bddBelow_smul_iff_of_neg

/- warning: bdd_above_smul_iff_of_neg -> bddAbove_smul_iff_of_neg is a dubious translation:
lean 3 declaration is
  forall {k : Type.{u1}} {M : Type.{u2}} [_inst_1 : LinearOrderedField.{u1} k] [_inst_2 : OrderedAddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} k M (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))] [_inst_4 : OrderedSMul.{u1, u2} k M (StrictOrderedSemiring.toOrderedSemiring.{u1} k (StrictOrderedRing.toStrictOrderedSemiring.{u1} k (LinearOrderedRing.toStrictOrderedRing.{u1} k (LinearOrderedCommRing.toLinearOrderedRing.{u1} k (LinearOrderedField.toLinearOrderedCommRing.{u1} k _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u2} M _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3))] {s : Set.{u2} M} {c : k}, (LT.lt.{u1} k (Preorder.toLT.{u1} k (PartialOrder.toPreorder.{u1} k (OrderedAddCommGroup.toPartialOrder.{u1} k (StrictOrderedRing.toOrderedAddCommGroup.{u1} k (LinearOrderedRing.toStrictOrderedRing.{u1} k (LinearOrderedCommRing.toLinearOrderedRing.{u1} k (LinearOrderedField.toLinearOrderedCommRing.{u1} k _inst_1))))))) c (OfNat.ofNat.{u1} k 0 (OfNat.mk.{u1} k 0 (Zero.zero.{u1} k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} k (NonAssocRing.toNonUnitalNonAssocRing.{u1} k (Ring.toNonAssocRing.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1)))))))))))) -> (Iff (BddAbove.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2)) (SMul.smul.{u1, u2} k (Set.{u2} M) (Set.smulSet.{u1, u2} k M (SMulZeroClass.toHasSmul.{u1, u2} k M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} k M (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} k M (Semiring.toMonoidWithZero.{u1} k (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} k M (Ring.toSemiring.{u1} k (DivisionRing.toRing.{u1} k (Field.toDivisionRing.{u1} k (LinearOrderedField.toField.{u1} k _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M (OrderedAddCommGroup.toAddCommGroup.{u2} M _inst_2)) _inst_3))))) c s)) (BddBelow.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommGroup.toPartialOrder.{u2} M _inst_2)) s))
but is expected to have type
  forall {k : Type.{u2}} {M : Type.{u1}} [_inst_1 : LinearOrderedField.{u2} k] [_inst_2 : OrderedAddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} k M (StrictOrderedSemiring.toSemiring.{u2} k (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} k (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2))] [_inst_4 : OrderedSMul.{u2, u1} k M (OrderedCommSemiring.toOrderedSemiring.{u2} k (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} k (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} k M (Semiring.toMonoidWithZero.{u2} k (StrictOrderedSemiring.toSemiring.{u2} k (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} k (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1)))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} k M (StrictOrderedSemiring.toSemiring.{u2} k (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} k (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) _inst_3))] {s : Set.{u1} M} {c : k}, (LT.lt.{u2} k (Preorder.toLT.{u2} k (PartialOrder.toPreorder.{u2} k (StrictOrderedRing.toPartialOrder.{u2} k (LinearOrderedRing.toStrictOrderedRing.{u2} k (LinearOrderedCommRing.toLinearOrderedRing.{u2} k (LinearOrderedField.toLinearOrderedCommRing.{u2} k _inst_1)))))) c (OfNat.ofNat.{u2} k 0 (Zero.toOfNat0.{u2} k (CommMonoidWithZero.toZero.{u2} k (CommGroupWithZero.toCommMonoidWithZero.{u2} k (Semifield.toCommGroupWithZero.{u2} k (LinearOrderedSemifield.toSemifield.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1)))))))) -> (Iff (BddAbove.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommGroup.toPartialOrder.{u1} M _inst_2)) (HSMul.hSMul.{u2, u1, u1} k (Set.{u1} M) (Set.{u1} M) (instHSMul.{u2, u1} k (Set.{u1} M) (Set.smulSet.{u2, u1} k M (SMulZeroClass.toSMul.{u2, u1} k M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} k M (CommMonoidWithZero.toZero.{u2} k (CommGroupWithZero.toCommMonoidWithZero.{u2} k (Semifield.toCommGroupWithZero.{u2} k (LinearOrderedSemifield.toSemifield.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} k M (Semiring.toMonoidWithZero.{u2} k (StrictOrderedSemiring.toSemiring.{u2} k (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} k (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1)))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M (OrderedAddCommGroup.toAddCommGroup.{u1} M _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} k M (StrictOrderedSemiring.toSemiring.{u2} k (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} k (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} k (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} k (LinearOrderedField.toLinearOrderedSemifield.{u2} k _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} M (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} M _inst_2)) _inst_3)))))) c s)) (BddBelow.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommGroup.toPartialOrder.{u1} M _inst_2)) s))
Case conversion may be inaccurate. Consider using '#align bdd_above_smul_iff_of_neg bddAbove_smul_iff_of_negₓ'. -/
@[simp]
theorem bddAbove_smul_iff_of_neg (hc : c < 0) : BddAbove (c • s) ↔ BddBelow s :=
  (OrderIso.smulLeftDual M hc).bddBelow_image
#align bdd_above_smul_iff_of_neg bddAbove_smul_iff_of_neg

end LinearOrderedField