algebra.order.smul
⟷
Mathlib.Algebra.Order.Module.OrderedSMul
The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(last sync)
Constantly extending monotone/antitone functions preserves their convexity.
@@ -170,12 +170,23 @@ ordered_smul.mk'' $ λ n hn, begin
{ cases (int.neg_succ_not_pos _).1 hn }
end
+section linear_ordered_semiring
+variables [linear_ordered_semiring R] [linear_ordered_add_comm_monoid M] [smul_with_zero R M]
+ [ordered_smul R M] {a : R}
+
-- TODO: `linear_ordered_field M → ordered_smul ℚ M`
-instance linear_ordered_semiring.to_ordered_smul {R : Type*} [linear_ordered_semiring R] :
- ordered_smul R R :=
+instance linear_ordered_semiring.to_ordered_smul : ordered_smul R R :=
ordered_smul.mk'' $ λ c, strict_mono_mul_left_of_pos
+lemma smul_max (ha : 0 ≤ a) (b₁ b₂ : M) : a • max b₁ b₂ = max (a • b₁) (a • b₂) :=
+(monotone_smul_left ha : monotone (_ : M → M)).map_max
+
+lemma smul_min (ha : 0 ≤ a) (b₁ b₂ : M) : a • min b₁ b₂ = min (a • b₁) (a • b₂) :=
+(monotone_smul_left ha : monotone (_ : M → M)).map_min
+
+end linear_ordered_semiring
+
section linear_ordered_semifield
variables [linear_ordered_semifield 𝕜] [ordered_add_comm_monoid M] [ordered_add_comm_monoid N]
[mul_action_with_zero 𝕜 M] [mul_action_with_zero 𝕜 N]
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(first ported)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -217,7 +217,7 @@ instance Nat.orderedSMul [LinearOrderedCancelAddCommMonoid M] : OrderedSMul ℕ
instance Int.orderedSMul [LinearOrderedAddCommGroup M] : OrderedSMul ℤ M :=
OrderedSMul.mk'' fun n hn => by
cases n
- · simp only [Int.ofNat_eq_coe, Int.coe_nat_pos, natCast_zsmul] at hn ⊢
+ · simp only [Int.ofNat_eq_coe, Int.natCast_pos, natCast_zsmul] at hn ⊢
exact strictMono_smul_left_of_pos hn
· cases (Int.negSucc_not_pos _).1 hn
#align int.ordered_smul Int.orderedSMul
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -7,7 +7,7 @@ import Algebra.Module.Pi
import Algebra.Module.Prod
import Algebra.Order.Monoid.Prod
import Algebra.Order.Pi
-import Data.Set.Pointwise.Smul
+import Data.Set.Pointwise.SMul
import Tactic.Positivity
#align_import algebra.order.smul from "leanprover-community/mathlib"@"3ba15165bd6927679be7c22d6091a87337e3cd0c"
@@ -209,7 +209,7 @@ instance Nat.orderedSMul [LinearOrderedCancelAddCommMonoid M] : OrderedSMul ℕ
· cases hn
induction' n with n ih
· simp only [one_nsmul, hab]
- · simp only [succ_nsmul _ n.succ, add_lt_add hab (ih n.succ_pos)]
+ · simp only [succ_nsmul' _ n.succ, add_lt_add hab (ih n.succ_pos)]
#align nat.ordered_smul Nat.orderedSMul
-/
@@ -217,7 +217,7 @@ instance Nat.orderedSMul [LinearOrderedCancelAddCommMonoid M] : OrderedSMul ℕ
instance Int.orderedSMul [LinearOrderedAddCommGroup M] : OrderedSMul ℤ M :=
OrderedSMul.mk'' fun n hn => by
cases n
- · simp only [Int.ofNat_eq_coe, Int.coe_nat_pos, coe_nat_zsmul] at hn ⊢
+ · simp only [Int.ofNat_eq_coe, Int.coe_nat_pos, natCast_zsmul] at hn ⊢
exact strictMono_smul_left_of_pos hn
· cases (Int.negSucc_not_pos _).1 hn
#align int.ordered_smul Int.orderedSMul
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -130,7 +130,7 @@ theorem eq_of_smul_eq_smul_of_pos_of_le (h₁ : c • a = c • b) (hc : 0 < c)
#print lt_of_smul_lt_smul_of_nonneg_left /-
theorem lt_of_smul_lt_smul_of_nonneg_left (h : c • a < c • b) (hc : 0 ≤ c) : a < b :=
hc.eq_or_lt.elim
- (fun hc => False.elim <| lt_irrefl (0 : M) <| by rwa [← hc, zero_smul, zero_smul] at h )
+ (fun hc => False.elim <| lt_irrefl (0 : M) <| by rwa [← hc, zero_smul, zero_smul] at h)
(OrderedSMul.lt_of_smul_lt_smul_of_pos h)
#align lt_of_smul_lt_smul_of_nonneg lt_of_smul_lt_smul_of_nonneg_left
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -92,28 +92,28 @@ section OrderedSMul
variable [OrderedSemiring R] [OrderedAddCommMonoid M] [SMulWithZero R M] [OrderedSMul R M]
{s : Set M} {a b : M} {c : R}
-#print smul_lt_smul_of_pos /-
-theorem smul_lt_smul_of_pos : a < b → 0 < c → c • a < c • b :=
+#print smul_lt_smul_of_pos_left /-
+theorem smul_lt_smul_of_pos_left : a < b → 0 < c → c • a < c • b :=
OrderedSMul.smul_lt_smul_of_pos
-#align smul_lt_smul_of_pos smul_lt_smul_of_pos
+#align smul_lt_smul_of_pos smul_lt_smul_of_pos_left
-/
-#print smul_le_smul_of_nonneg /-
-theorem smul_le_smul_of_nonneg (h₁ : a ≤ b) (h₂ : 0 ≤ c) : c • a ≤ c • b :=
+#print smul_le_smul_of_nonneg_left /-
+theorem smul_le_smul_of_nonneg_left (h₁ : a ≤ b) (h₂ : 0 ≤ c) : c • a ≤ c • b :=
by
rcases h₁.eq_or_lt with (rfl | hab)
· rfl
· rcases h₂.eq_or_lt with (rfl | hc)
· rw [zero_smul, zero_smul]
- · exact (smul_lt_smul_of_pos hab hc).le
-#align smul_le_smul_of_nonneg smul_le_smul_of_nonneg
+ · exact (smul_lt_smul_of_pos_left hab hc).le
+#align smul_le_smul_of_nonneg smul_le_smul_of_nonneg_left
-/
#print smul_nonneg /-
theorem smul_nonneg (hc : 0 ≤ c) (ha : 0 ≤ a) : 0 ≤ c • a :=
calc
(0 : M) = c • (0 : M) := (smul_zero c).symm
- _ ≤ c • a := smul_le_smul_of_nonneg ha hc
+ _ ≤ c • a := smul_le_smul_of_nonneg_left ha hc
#align smul_nonneg smul_nonneg
-/
@@ -123,72 +123,70 @@ theorem smul_nonpos_of_nonneg_of_nonpos (hc : 0 ≤ c) (ha : a ≤ 0) : c • a
#align smul_nonpos_of_nonneg_of_nonpos smul_nonpos_of_nonneg_of_nonpos
-/
-#print eq_of_smul_eq_smul_of_pos_of_le /-
theorem eq_of_smul_eq_smul_of_pos_of_le (h₁ : c • a = c • b) (hc : 0 < c) (hle : a ≤ b) : a = b :=
- hle.lt_or_eq.resolve_left fun hlt => (smul_lt_smul_of_pos hlt hc).Ne h₁
+ hle.lt_or_eq.resolve_left fun hlt => (smul_lt_smul_of_pos_left hlt hc).Ne h₁
#align eq_of_smul_eq_smul_of_pos_of_le eq_of_smul_eq_smul_of_pos_of_le
--/
-#print lt_of_smul_lt_smul_of_nonneg /-
-theorem lt_of_smul_lt_smul_of_nonneg (h : c • a < c • b) (hc : 0 ≤ c) : a < b :=
+#print lt_of_smul_lt_smul_of_nonneg_left /-
+theorem lt_of_smul_lt_smul_of_nonneg_left (h : c • a < c • b) (hc : 0 ≤ c) : a < b :=
hc.eq_or_lt.elim
(fun hc => False.elim <| lt_irrefl (0 : M) <| by rwa [← hc, zero_smul, zero_smul] at h )
(OrderedSMul.lt_of_smul_lt_smul_of_pos h)
-#align lt_of_smul_lt_smul_of_nonneg lt_of_smul_lt_smul_of_nonneg
+#align lt_of_smul_lt_smul_of_nonneg lt_of_smul_lt_smul_of_nonneg_left
-/
-#print smul_lt_smul_iff_of_pos /-
-theorem smul_lt_smul_iff_of_pos (hc : 0 < c) : c • a < c • b ↔ a < b :=
- ⟨fun h => lt_of_smul_lt_smul_of_nonneg h hc.le, fun h => smul_lt_smul_of_pos h hc⟩
-#align smul_lt_smul_iff_of_pos smul_lt_smul_iff_of_pos
+#print smul_lt_smul_iff_of_pos_left /-
+theorem smul_lt_smul_iff_of_pos_left (hc : 0 < c) : c • a < c • b ↔ a < b :=
+ ⟨fun h => lt_of_smul_lt_smul_of_nonneg_left h hc.le, fun h => smul_lt_smul_of_pos_left h hc⟩
+#align smul_lt_smul_iff_of_pos smul_lt_smul_iff_of_pos_left
-/
-#print smul_pos_iff_of_pos /-
-theorem smul_pos_iff_of_pos (hc : 0 < c) : 0 < c • a ↔ 0 < a :=
+#print smul_pos_iff_of_pos_left /-
+theorem smul_pos_iff_of_pos_left (hc : 0 < c) : 0 < c • a ↔ 0 < a :=
calc
0 < c • a ↔ c • 0 < c • a := by rw [smul_zero]
- _ ↔ 0 < a := smul_lt_smul_iff_of_pos hc
-#align smul_pos_iff_of_pos smul_pos_iff_of_pos
+ _ ↔ 0 < a := smul_lt_smul_iff_of_pos_left hc
+#align smul_pos_iff_of_pos smul_pos_iff_of_pos_left
-/
-alias ⟨_, smul_pos⟩ := smul_pos_iff_of_pos
+alias ⟨_, smul_pos⟩ := smul_pos_iff_of_pos_left
#align smul_pos smul_pos
-#print monotone_smul_left /-
-theorem monotone_smul_left (hc : 0 ≤ c) : Monotone (SMul.smul c : M → M) := fun a b h =>
- smul_le_smul_of_nonneg h hc
-#align monotone_smul_left monotone_smul_left
+#print monotone_smul_left_of_nonneg /-
+theorem monotone_smul_left_of_nonneg (hc : 0 ≤ c) : Monotone (SMul.smul c : M → M) := fun a b h =>
+ smul_le_smul_of_nonneg_left h hc
+#align monotone_smul_left monotone_smul_left_of_nonneg
-/
-#print strictMono_smul_left /-
-theorem strictMono_smul_left (hc : 0 < c) : StrictMono (SMul.smul c : M → M) := fun a b h =>
- smul_lt_smul_of_pos h hc
-#align strict_mono_smul_left strictMono_smul_left
+#print strictMono_smul_left_of_pos /-
+theorem strictMono_smul_left_of_pos (hc : 0 < c) : StrictMono (SMul.smul c : M → M) := fun a b h =>
+ smul_lt_smul_of_pos_left h hc
+#align strict_mono_smul_left strictMono_smul_left_of_pos
-/
-#print smul_lowerBounds_subset_lowerBounds_smul /-
-theorem smul_lowerBounds_subset_lowerBounds_smul (hc : 0 ≤ c) :
+#print smul_lowerBounds_subset_lowerBounds_smul_of_nonneg /-
+theorem smul_lowerBounds_subset_lowerBounds_smul_of_nonneg (hc : 0 ≤ c) :
c • lowerBounds s ⊆ lowerBounds (c • s) :=
- (monotone_smul_left hc).image_lowerBounds_subset_lowerBounds_image
-#align smul_lower_bounds_subset_lower_bounds_smul smul_lowerBounds_subset_lowerBounds_smul
+ (monotone_smul_left_of_nonneg hc).image_lowerBounds_subset_lowerBounds_image
+#align smul_lower_bounds_subset_lower_bounds_smul smul_lowerBounds_subset_lowerBounds_smul_of_nonneg
-/
-#print smul_upperBounds_subset_upperBounds_smul /-
-theorem smul_upperBounds_subset_upperBounds_smul (hc : 0 ≤ c) :
+#print smul_upperBounds_subset_upperBounds_smul_of_nonneg /-
+theorem smul_upperBounds_subset_upperBounds_smul_of_nonneg (hc : 0 ≤ c) :
c • upperBounds s ⊆ upperBounds (c • s) :=
- (monotone_smul_left hc).image_upperBounds_subset_upperBounds_image
-#align smul_upper_bounds_subset_upper_bounds_smul smul_upperBounds_subset_upperBounds_smul
+ (monotone_smul_left_of_nonneg hc).image_upperBounds_subset_upperBounds_image
+#align smul_upper_bounds_subset_upper_bounds_smul smul_upperBounds_subset_upperBounds_smul_of_nonneg
-/
#print BddBelow.smul_of_nonneg /-
theorem BddBelow.smul_of_nonneg (hs : BddBelow s) (hc : 0 ≤ c) : BddBelow (c • s) :=
- (monotone_smul_left hc).map_bddBelow hs
+ (monotone_smul_left_of_nonneg hc).map_bddBelow hs
#align bdd_below.smul_of_nonneg BddBelow.smul_of_nonneg
-/
#print BddAbove.smul_of_nonneg /-
theorem BddAbove.smul_of_nonneg (hs : BddAbove s) (hc : 0 ≤ c) : BddAbove (c • s) :=
- (monotone_smul_left hc).map_bddAbove hs
+ (monotone_smul_left_of_nonneg hc).map_bddAbove hs
#align bdd_above.smul_of_nonneg BddAbove.smul_of_nonneg
-/
@@ -220,7 +218,7 @@ instance Int.orderedSMul [LinearOrderedAddCommGroup M] : OrderedSMul ℤ M :=
OrderedSMul.mk'' fun n hn => by
cases n
· simp only [Int.ofNat_eq_coe, Int.coe_nat_pos, coe_nat_zsmul] at hn ⊢
- exact strictMono_smul_left hn
+ exact strictMono_smul_left_of_pos hn
· cases (Int.negSucc_not_pos _).1 hn
#align int.ordered_smul Int.orderedSMul
-/
@@ -237,16 +235,16 @@ instance LinearOrderedSemiring.toOrderedSMul : OrderedSMul R R :=
#align linear_ordered_semiring.to_ordered_smul LinearOrderedSemiring.toOrderedSMul
-/
-#print smul_max /-
-theorem smul_max (ha : 0 ≤ a) (b₁ b₂ : M) : a • max b₁ b₂ = max (a • b₁) (a • b₂) :=
- (monotone_smul_left ha : Monotone (_ : M → M)).map_max
-#align smul_max smul_max
+#print smul_max_of_nonneg /-
+theorem smul_max_of_nonneg (ha : 0 ≤ a) (b₁ b₂ : M) : a • max b₁ b₂ = max (a • b₁) (a • b₂) :=
+ (monotone_smul_left_of_nonneg ha : Monotone (_ : M → M)).map_max
+#align smul_max smul_max_of_nonneg
-/
-#print smul_min /-
-theorem smul_min (ha : 0 ≤ a) (b₁ b₂ : M) : a • min b₁ b₂ = min (a • b₁) (a • b₂) :=
- (monotone_smul_left ha : Monotone (_ : M → M)).map_min
-#align smul_min smul_min
+#print smul_min_of_nonneg /-
+theorem smul_min_of_nonneg (ha : 0 ≤ a) (b₁ b₂ : M) : a • min b₁ b₂ = min (a • b₁) (a • b₂) :=
+ (monotone_smul_left_of_nonneg ha : Monotone (_ : M → M)).map_min
+#align smul_min smul_min_of_nonneg
-/
end LinearOrderedSemiring
@@ -278,78 +276,74 @@ theorem OrderedSMul.mk' (h : ∀ ⦃a b : M⦄ ⦃c : 𝕜⦄, a < b → 0 < c
instance [OrderedSMul 𝕜 M] [OrderedSMul 𝕜 N] : OrderedSMul 𝕜 (M × N) :=
OrderedSMul.mk' fun a b c h hc =>
- ⟨smul_le_smul_of_nonneg h.1.1 hc.le, smul_le_smul_of_nonneg h.1.2 hc.le⟩
+ ⟨smul_le_smul_of_nonneg_left h.1.1 hc.le, smul_le_smul_of_nonneg_left h.1.2 hc.le⟩
#print Pi.orderedSMul /-
instance Pi.orderedSMul {M : ι → Type _} [∀ i, OrderedAddCommMonoid (M i)]
[∀ i, MulActionWithZero 𝕜 (M i)] [∀ i, OrderedSMul 𝕜 (M i)] : OrderedSMul 𝕜 (∀ i, M i) :=
- OrderedSMul.mk' fun v u c h hc i => smul_le_smul_of_nonneg (h.le i) hc.le
+ OrderedSMul.mk' fun v u c h hc i => smul_le_smul_of_nonneg_left (h.le i) hc.le
#align pi.ordered_smul Pi.orderedSMul
-/
-#print Pi.orderedSMul' /-
/- Sometimes Lean fails to apply the dependent version to non-dependent functions, so we define
another instance. -/
-instance Pi.orderedSMul' [OrderedSMul 𝕜 M] : OrderedSMul 𝕜 (ι → M) :=
+instance Pi.ordered_smul' [OrderedSMul 𝕜 M] : OrderedSMul 𝕜 (ι → M) :=
Pi.orderedSMul
-#align pi.ordered_smul' Pi.orderedSMul'
--/
+#align pi.ordered_smul' Pi.ordered_smul'
-#print Pi.orderedSMul'' /-
-- Sometimes Lean fails to unify the module with the scalars, so we define another instance.
-instance Pi.orderedSMul'' : OrderedSMul 𝕜 (ι → 𝕜) :=
- @Pi.orderedSMul' ι 𝕜 𝕜 _ _ _ _
-#align pi.ordered_smul'' Pi.orderedSMul''
--/
+instance Pi.ordered_smul'' : OrderedSMul 𝕜 (ι → 𝕜) :=
+ @Pi.ordered_smul' ι 𝕜 𝕜 _ _ _ _
+#align pi.ordered_smul'' Pi.ordered_smul''
variable [OrderedSMul 𝕜 M] {s : Set M} {a b : M} {c : 𝕜}
-#print smul_le_smul_iff_of_pos /-
-theorem smul_le_smul_iff_of_pos (hc : 0 < c) : c • a ≤ c • b ↔ a ≤ b :=
+#print smul_le_smul_iff_of_pos_left /-
+theorem smul_le_smul_iff_of_pos_left (hc : 0 < c) : c • a ≤ c • b ↔ a ≤ b :=
⟨fun h =>
inv_smul_smul₀ hc.ne' a ▸
- inv_smul_smul₀ hc.ne' b ▸ smul_le_smul_of_nonneg h (inv_nonneg.2 hc.le),
- fun h => smul_le_smul_of_nonneg h hc.le⟩
-#align smul_le_smul_iff_of_pos smul_le_smul_iff_of_pos
+ inv_smul_smul₀ hc.ne' b ▸ smul_le_smul_of_nonneg_left h (inv_nonneg.2 hc.le),
+ fun h => smul_le_smul_of_nonneg_left h hc.le⟩
+#align smul_le_smul_iff_of_pos smul_le_smul_iff_of_pos_left
-/
-#print inv_smul_le_iff /-
-theorem inv_smul_le_iff (h : 0 < c) : c⁻¹ • a ≤ b ↔ a ≤ c • b := by
- rw [← smul_le_smul_iff_of_pos h, smul_inv_smul₀ h.ne']; infer_instance
-#align inv_smul_le_iff inv_smul_le_iff
+#print inv_smul_le_iff_of_pos /-
+theorem inv_smul_le_iff_of_pos (h : 0 < c) : c⁻¹ • a ≤ b ↔ a ≤ c • b := by
+ rw [← smul_le_smul_iff_of_pos_left h, smul_inv_smul₀ h.ne']; infer_instance
+#align inv_smul_le_iff inv_smul_le_iff_of_pos
-/
-#print inv_smul_lt_iff /-
-theorem inv_smul_lt_iff (h : 0 < c) : c⁻¹ • a < b ↔ a < c • b := by
- rw [← smul_lt_smul_iff_of_pos h, smul_inv_smul₀ h.ne']; infer_instance
-#align inv_smul_lt_iff inv_smul_lt_iff
+#print inv_smul_lt_iff_of_pos /-
+theorem inv_smul_lt_iff_of_pos (h : 0 < c) : c⁻¹ • a < b ↔ a < c • b := by
+ rw [← smul_lt_smul_iff_of_pos_left h, smul_inv_smul₀ h.ne']; infer_instance
+#align inv_smul_lt_iff inv_smul_lt_iff_of_pos
-/
-#print le_inv_smul_iff /-
-theorem le_inv_smul_iff (h : 0 < c) : a ≤ c⁻¹ • b ↔ c • a ≤ b := by
- rw [← smul_le_smul_iff_of_pos h, smul_inv_smul₀ h.ne']; infer_instance
-#align le_inv_smul_iff le_inv_smul_iff
+#print le_inv_smul_iff_of_pos /-
+theorem le_inv_smul_iff_of_pos (h : 0 < c) : a ≤ c⁻¹ • b ↔ c • a ≤ b := by
+ rw [← smul_le_smul_iff_of_pos_left h, smul_inv_smul₀ h.ne']; infer_instance
+#align le_inv_smul_iff le_inv_smul_iff_of_pos
-/
-#print lt_inv_smul_iff /-
-theorem lt_inv_smul_iff (h : 0 < c) : a < c⁻¹ • b ↔ c • a < b := by
- rw [← smul_lt_smul_iff_of_pos h, smul_inv_smul₀ h.ne']; infer_instance
-#align lt_inv_smul_iff lt_inv_smul_iff
+#print lt_inv_smul_iff_of_pos /-
+theorem lt_inv_smul_iff_of_pos (h : 0 < c) : a < c⁻¹ • b ↔ c • a < b := by
+ rw [← smul_lt_smul_iff_of_pos_left h, smul_inv_smul₀ h.ne']; infer_instance
+#align lt_inv_smul_iff lt_inv_smul_iff_of_pos
-/
variable (M)
-#print OrderIso.smulLeft /-
+#print OrderIso.smulRight /-
/-- Left scalar multiplication as an order isomorphism. -/
@[simps]
-def OrderIso.smulLeft (hc : 0 < c) : M ≃o M
+def OrderIso.smulRight (hc : 0 < c) : M ≃o M
where
toFun b := c • b
invFun b := c⁻¹ • 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_pos hc
-#align order_iso.smul_left OrderIso.smulLeft
+ map_rel_iff' b₁ b₂ := smul_le_smul_iff_of_pos_left hc
+#align order_iso.smul_left OrderIso.smulRight
-/
variable {M}
@@ -357,28 +351,28 @@ variable {M}
#print lowerBounds_smul_of_pos /-
@[simp]
theorem lowerBounds_smul_of_pos (hc : 0 < c) : lowerBounds (c • s) = c • lowerBounds s :=
- (OrderIso.smulLeft _ hc).lowerBounds_image
+ (OrderIso.smulRight _ hc).lowerBounds_image
#align lower_bounds_smul_of_pos lowerBounds_smul_of_pos
-/
#print upperBounds_smul_of_pos /-
@[simp]
theorem upperBounds_smul_of_pos (hc : 0 < c) : upperBounds (c • s) = c • upperBounds s :=
- (OrderIso.smulLeft _ hc).upperBounds_image
+ (OrderIso.smulRight _ hc).upperBounds_image
#align upper_bounds_smul_of_pos upperBounds_smul_of_pos
-/
#print bddBelow_smul_iff_of_pos /-
@[simp]
theorem bddBelow_smul_iff_of_pos (hc : 0 < c) : BddBelow (c • s) ↔ BddBelow s :=
- (OrderIso.smulLeft _ hc).bddBelow_image
+ (OrderIso.smulRight _ hc).bddBelow_image
#align bdd_below_smul_iff_of_pos bddBelow_smul_iff_of_pos
-/
#print bddAbove_smul_iff_of_pos /-
@[simp]
theorem bddAbove_smul_iff_of_pos (hc : 0 < c) : BddAbove (c • s) ↔ BddAbove s :=
- (OrderIso.smulLeft _ hc).bddAbove_image
+ (OrderIso.smulRight _ hc).bddAbove_image
#align bdd_above_smul_iff_of_pos bddAbove_smul_iff_of_pos
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -237,13 +237,17 @@ instance LinearOrderedSemiring.toOrderedSMul : OrderedSMul R R :=
#align linear_ordered_semiring.to_ordered_smul LinearOrderedSemiring.toOrderedSMul
-/
+#print smul_max /-
theorem smul_max (ha : 0 ≤ a) (b₁ b₂ : M) : a • max b₁ b₂ = max (a • b₁) (a • b₂) :=
(monotone_smul_left ha : Monotone (_ : M → M)).map_max
#align smul_max smul_max
+-/
+#print smul_min /-
theorem smul_min (ha : 0 ≤ a) (b₁ b₂ : M) : a • min b₁ b₂ = min (a • b₁) (a • b₂) :=
(monotone_smul_left ha : Monotone (_ : M → M)).map_min
#align smul_min smul_min
+-/
end LinearOrderedSemiring
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,12 +3,12 @@ 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
-/
-import Mathbin.Algebra.Module.Pi
-import Mathbin.Algebra.Module.Prod
-import Mathbin.Algebra.Order.Monoid.Prod
-import Mathbin.Algebra.Order.Pi
-import Mathbin.Data.Set.Pointwise.Smul
-import Mathbin.Tactic.Positivity
+import Algebra.Module.Pi
+import Algebra.Module.Prod
+import Algebra.Order.Monoid.Prod
+import Algebra.Order.Pi
+import Data.Set.Pointwise.Smul
+import Tactic.Positivity
#align_import algebra.order.smul from "leanprover-community/mathlib"@"3ba15165bd6927679be7c22d6091a87337e3cd0c"
mathlib commit https://github.com/leanprover-community/mathlib/commit/442a83d738cb208d3600056c489be16900ba701d
@@ -62,12 +62,12 @@ variable {ι 𝕜 R M N : Type _}
namespace OrderDual
instance [Zero R] [AddZeroClass M] [h : SMulWithZero R M] : SMulWithZero R Mᵒᵈ :=
- { instSMulOrderDual with
+ { OrderDual.instSMul with
zero_smul := fun m => OrderDual.rec (zero_smul _) m
smul_zero := fun r => OrderDual.rec smul_zero r }
instance [Monoid R] [MulAction R M] : MulAction R Mᵒᵈ :=
- { instSMulOrderDual with
+ { OrderDual.instSMul with
one_smul := fun m => OrderDual.rec (one_smul _) m
hMul_smul := fun r => OrderDual.rec hMul_smul r }
mathlib commit https://github.com/leanprover-community/mathlib/commit/32a7e535287f9c73f2e4d2aef306a39190f0b504
@@ -151,7 +151,7 @@ theorem smul_pos_iff_of_pos (hc : 0 < c) : 0 < c • a ↔ 0 < a :=
#align smul_pos_iff_of_pos smul_pos_iff_of_pos
-/
-alias smul_pos_iff_of_pos ↔ _ smul_pos
+alias ⟨_, smul_pos⟩ := smul_pos_iff_of_pos
#align smul_pos smul_pos
#print monotone_smul_left /-
mathlib commit https://github.com/leanprover-community/mathlib/commit/32a7e535287f9c73f2e4d2aef306a39190f0b504
@@ -69,7 +69,7 @@ instance [Zero R] [AddZeroClass M] [h : SMulWithZero R M] : SMulWithZero R Mᵒ
instance [Monoid R] [MulAction R M] : MulAction R Mᵒᵈ :=
{ instSMulOrderDual with
one_smul := fun m => OrderDual.rec (one_smul _) m
- mul_smul := fun r => OrderDual.rec mul_smul r }
+ hMul_smul := fun r => OrderDual.rec hMul_smul r }
instance [MonoidWithZero R] [AddMonoid M] [MulActionWithZero R M] : MulActionWithZero R Mᵒᵈ :=
{ OrderDual.mulAction, OrderDual.smulWithZero with }
mathlib commit https://github.com/leanprover-community/mathlib/commit/48a058d7e39a80ed56858505719a0b2197900999
@@ -10,7 +10,7 @@ import Mathbin.Algebra.Order.Pi
import Mathbin.Data.Set.Pointwise.Smul
import Mathbin.Tactic.Positivity
-#align_import algebra.order.smul from "leanprover-community/mathlib"@"e04043d6bf7264a3c84bc69711dc354958ca4516"
+#align_import algebra.order.smul from "leanprover-community/mathlib"@"3ba15165bd6927679be7c22d6091a87337e3cd0c"
/-!
# Ordered scalar product
@@ -225,14 +225,28 @@ instance Int.orderedSMul [LinearOrderedAddCommGroup M] : OrderedSMul ℤ M :=
#align int.ordered_smul Int.orderedSMul
-/
+section LinearOrderedSemiring
+
+variable [LinearOrderedSemiring R] [LinearOrderedAddCommMonoid M] [SMulWithZero R M]
+ [OrderedSMul R M] {a : R}
+
#print LinearOrderedSemiring.toOrderedSMul /-
-- TODO: `linear_ordered_field M → ordered_smul ℚ M`
-instance LinearOrderedSemiring.toOrderedSMul {R : Type _} [LinearOrderedSemiring R] :
- OrderedSMul R R :=
+instance LinearOrderedSemiring.toOrderedSMul : OrderedSMul R R :=
OrderedSMul.mk'' fun c => strictMono_mul_left_of_pos
#align linear_ordered_semiring.to_ordered_smul LinearOrderedSemiring.toOrderedSMul
-/
+theorem smul_max (ha : 0 ≤ a) (b₁ b₂ : M) : a • max b₁ b₂ = max (a • b₁) (a • b₂) :=
+ (monotone_smul_left ha : Monotone (_ : M → M)).map_max
+#align smul_max smul_max
+
+theorem smul_min (ha : 0 ≤ a) (b₁ b₂ : M) : a • min b₁ b₂ = min (a • b₁) (a • b₂) :=
+ (monotone_smul_left ha : Monotone (_ : M → M)).map_min
+#align smul_min smul_min
+
+end LinearOrderedSemiring
+
section LinearOrderedSemifield
variable [LinearOrderedSemifield 𝕜] [OrderedAddCommMonoid M] [OrderedAddCommMonoid N]
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,11 +2,6 @@
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
-
-! This file was ported from Lean 3 source module algebra.order.smul
-! leanprover-community/mathlib commit e04043d6bf7264a3c84bc69711dc354958ca4516
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.Algebra.Module.Pi
import Mathbin.Algebra.Module.Prod
@@ -15,6 +10,8 @@ import Mathbin.Algebra.Order.Pi
import Mathbin.Data.Set.Pointwise.Smul
import Mathbin.Tactic.Positivity
+#align_import algebra.order.smul from "leanprover-community/mathlib"@"e04043d6bf7264a3c84bc69711dc354958ca4516"
+
/-!
# Ordered scalar product
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -48,6 +48,7 @@ ordered module, ordered scalar, ordered smul, ordered action, ordered vector spa
open scoped Pointwise
+#print OrderedSMul /-
/-- The ordered scalar product property is when an ordered additive commutative monoid
with a partial order has a scalar multiplication which is compatible with the order.
-/
@@ -57,6 +58,7 @@ class OrderedSMul (R M : Type _) [OrderedSemiring R] [OrderedAddCommMonoid M] [S
smul_lt_smul_of_pos : ∀ {a b : M}, ∀ {c : R}, a < b → 0 < c → c • a < c • b
lt_of_smul_lt_smul_of_pos : ∀ {a b : M}, ∀ {c : R}, c • a < c • b → 0 < c → a < b
#align ordered_smul OrderedSMul
+-/
variable {ι 𝕜 R M N : Type _}
@@ -93,10 +95,13 @@ section OrderedSMul
variable [OrderedSemiring R] [OrderedAddCommMonoid M] [SMulWithZero R M] [OrderedSMul R M]
{s : Set M} {a b : M} {c : R}
+#print smul_lt_smul_of_pos /-
theorem smul_lt_smul_of_pos : a < b → 0 < c → c • a < c • b :=
OrderedSMul.smul_lt_smul_of_pos
#align smul_lt_smul_of_pos smul_lt_smul_of_pos
+-/
+#print smul_le_smul_of_nonneg /-
theorem smul_le_smul_of_nonneg (h₁ : a ≤ b) (h₂ : 0 ≤ c) : c • a ≤ c • b :=
by
rcases h₁.eq_or_lt with (rfl | hab)
@@ -105,68 +110,94 @@ theorem smul_le_smul_of_nonneg (h₁ : a ≤ b) (h₂ : 0 ≤ c) : c • a ≤ c
· rw [zero_smul, zero_smul]
· exact (smul_lt_smul_of_pos hab hc).le
#align smul_le_smul_of_nonneg smul_le_smul_of_nonneg
+-/
+#print smul_nonneg /-
theorem smul_nonneg (hc : 0 ≤ c) (ha : 0 ≤ a) : 0 ≤ c • a :=
calc
(0 : M) = c • (0 : M) := (smul_zero c).symm
_ ≤ c • a := smul_le_smul_of_nonneg ha hc
#align smul_nonneg smul_nonneg
+-/
+#print smul_nonpos_of_nonneg_of_nonpos /-
theorem smul_nonpos_of_nonneg_of_nonpos (hc : 0 ≤ c) (ha : a ≤ 0) : c • a ≤ 0 :=
@smul_nonneg R Mᵒᵈ _ _ _ _ _ _ hc ha
#align smul_nonpos_of_nonneg_of_nonpos smul_nonpos_of_nonneg_of_nonpos
+-/
+#print eq_of_smul_eq_smul_of_pos_of_le /-
theorem eq_of_smul_eq_smul_of_pos_of_le (h₁ : c • a = c • b) (hc : 0 < c) (hle : a ≤ b) : a = b :=
hle.lt_or_eq.resolve_left fun hlt => (smul_lt_smul_of_pos hlt hc).Ne h₁
#align eq_of_smul_eq_smul_of_pos_of_le eq_of_smul_eq_smul_of_pos_of_le
+-/
+#print lt_of_smul_lt_smul_of_nonneg /-
theorem lt_of_smul_lt_smul_of_nonneg (h : c • a < c • b) (hc : 0 ≤ c) : a < b :=
hc.eq_or_lt.elim
(fun hc => False.elim <| lt_irrefl (0 : M) <| by rwa [← hc, zero_smul, zero_smul] at h )
(OrderedSMul.lt_of_smul_lt_smul_of_pos h)
#align lt_of_smul_lt_smul_of_nonneg lt_of_smul_lt_smul_of_nonneg
+-/
+#print smul_lt_smul_iff_of_pos /-
theorem smul_lt_smul_iff_of_pos (hc : 0 < c) : c • a < c • b ↔ a < b :=
⟨fun h => lt_of_smul_lt_smul_of_nonneg h hc.le, fun h => smul_lt_smul_of_pos h hc⟩
#align smul_lt_smul_iff_of_pos smul_lt_smul_iff_of_pos
+-/
+#print smul_pos_iff_of_pos /-
theorem smul_pos_iff_of_pos (hc : 0 < c) : 0 < c • a ↔ 0 < a :=
calc
0 < c • a ↔ c • 0 < c • a := by rw [smul_zero]
_ ↔ 0 < a := smul_lt_smul_iff_of_pos hc
#align smul_pos_iff_of_pos smul_pos_iff_of_pos
+-/
alias smul_pos_iff_of_pos ↔ _ smul_pos
#align smul_pos smul_pos
+#print monotone_smul_left /-
theorem monotone_smul_left (hc : 0 ≤ c) : Monotone (SMul.smul c : M → M) := fun a b h =>
smul_le_smul_of_nonneg h hc
#align monotone_smul_left monotone_smul_left
+-/
+#print strictMono_smul_left /-
theorem strictMono_smul_left (hc : 0 < c) : StrictMono (SMul.smul c : M → M) := fun a b h =>
smul_lt_smul_of_pos h hc
#align strict_mono_smul_left strictMono_smul_left
+-/
+#print smul_lowerBounds_subset_lowerBounds_smul /-
theorem smul_lowerBounds_subset_lowerBounds_smul (hc : 0 ≤ c) :
c • lowerBounds s ⊆ lowerBounds (c • s) :=
(monotone_smul_left hc).image_lowerBounds_subset_lowerBounds_image
#align smul_lower_bounds_subset_lower_bounds_smul smul_lowerBounds_subset_lowerBounds_smul
+-/
+#print smul_upperBounds_subset_upperBounds_smul /-
theorem smul_upperBounds_subset_upperBounds_smul (hc : 0 ≤ c) :
c • upperBounds s ⊆ upperBounds (c • s) :=
(monotone_smul_left hc).image_upperBounds_subset_upperBounds_image
#align smul_upper_bounds_subset_upper_bounds_smul smul_upperBounds_subset_upperBounds_smul
+-/
+#print BddBelow.smul_of_nonneg /-
theorem BddBelow.smul_of_nonneg (hs : BddBelow s) (hc : 0 ≤ c) : BddBelow (c • s) :=
(monotone_smul_left hc).map_bddBelow hs
#align bdd_below.smul_of_nonneg BddBelow.smul_of_nonneg
+-/
+#print BddAbove.smul_of_nonneg /-
theorem BddAbove.smul_of_nonneg (hs : BddAbove s) (hc : 0 ≤ c) : BddAbove (c • s) :=
(monotone_smul_left hc).map_bddAbove hs
#align bdd_above.smul_of_nonneg BddAbove.smul_of_nonneg
+-/
end OrderedSMul
+#print OrderedSMul.mk'' /-
/-- To prove that a linear ordered monoid is an ordered module, it suffices to verify only the first
axiom of `ordered_smul`. -/
theorem OrderedSMul.mk'' [OrderedSemiring 𝕜] [LinearOrderedAddCommMonoid M] [SMulWithZero 𝕜 M]
@@ -174,6 +205,7 @@ theorem OrderedSMul.mk'' [OrderedSemiring 𝕜] [LinearOrderedAddCommMonoid M] [
{ smul_lt_smul_of_pos := fun a b c hab hc => h hc hab
lt_of_smul_lt_smul_of_pos := fun a b c hab hc => (h hc).lt_iff_lt.1 hab }
#align ordered_smul.mk'' OrderedSMul.mk''
+-/
#print Nat.orderedSMul /-
instance Nat.orderedSMul [LinearOrderedCancelAddCommMonoid M] : OrderedSMul ℕ M :=
@@ -209,6 +241,7 @@ section LinearOrderedSemifield
variable [LinearOrderedSemifield 𝕜] [OrderedAddCommMonoid M] [OrderedAddCommMonoid N]
[MulActionWithZero 𝕜 M] [MulActionWithZero 𝕜 N]
+#print OrderedSMul.mk' /-
/-- To prove that a vector space over a linear ordered field is ordered, it suffices to verify only
the first axiom of `ordered_smul`. -/
theorem OrderedSMul.mk' (h : ∀ ⦃a b : M⦄ ⦃c : 𝕜⦄, a < b → 0 < c → c • a ≤ c • b) :
@@ -226,54 +259,72 @@ theorem OrderedSMul.mk' (h : ∀ ⦃a b : M⦄ ⦃c : 𝕜⦄, a < b → 0 < c
refine' hlt' hab (pos_of_mul_pos_right _ hc.le)
simp only [c.mul_inv, zero_lt_one]
#align ordered_smul.mk' OrderedSMul.mk'
+-/
instance [OrderedSMul 𝕜 M] [OrderedSMul 𝕜 N] : OrderedSMul 𝕜 (M × N) :=
OrderedSMul.mk' fun a b c h hc =>
⟨smul_le_smul_of_nonneg h.1.1 hc.le, smul_le_smul_of_nonneg h.1.2 hc.le⟩
+#print Pi.orderedSMul /-
instance Pi.orderedSMul {M : ι → Type _} [∀ i, OrderedAddCommMonoid (M i)]
[∀ i, MulActionWithZero 𝕜 (M i)] [∀ i, OrderedSMul 𝕜 (M i)] : OrderedSMul 𝕜 (∀ i, M i) :=
OrderedSMul.mk' fun v u c h hc i => smul_le_smul_of_nonneg (h.le i) hc.le
#align pi.ordered_smul Pi.orderedSMul
+-/
+#print Pi.orderedSMul' /-
/- Sometimes Lean fails to apply the dependent version to non-dependent functions, so we define
another instance. -/
instance Pi.orderedSMul' [OrderedSMul 𝕜 M] : OrderedSMul 𝕜 (ι → M) :=
Pi.orderedSMul
#align pi.ordered_smul' Pi.orderedSMul'
+-/
+#print Pi.orderedSMul'' /-
-- Sometimes Lean fails to unify the module with the scalars, so we define another instance.
instance Pi.orderedSMul'' : OrderedSMul 𝕜 (ι → 𝕜) :=
@Pi.orderedSMul' ι 𝕜 𝕜 _ _ _ _
#align pi.ordered_smul'' Pi.orderedSMul''
+-/
variable [OrderedSMul 𝕜 M] {s : Set M} {a b : M} {c : 𝕜}
+#print smul_le_smul_iff_of_pos /-
theorem smul_le_smul_iff_of_pos (hc : 0 < c) : c • a ≤ c • b ↔ a ≤ b :=
⟨fun h =>
inv_smul_smul₀ hc.ne' a ▸
inv_smul_smul₀ hc.ne' b ▸ smul_le_smul_of_nonneg h (inv_nonneg.2 hc.le),
fun h => smul_le_smul_of_nonneg h hc.le⟩
#align smul_le_smul_iff_of_pos smul_le_smul_iff_of_pos
+-/
+#print inv_smul_le_iff /-
theorem inv_smul_le_iff (h : 0 < c) : c⁻¹ • a ≤ b ↔ a ≤ c • b := by
rw [← smul_le_smul_iff_of_pos h, smul_inv_smul₀ h.ne']; infer_instance
#align inv_smul_le_iff inv_smul_le_iff
+-/
+#print inv_smul_lt_iff /-
theorem inv_smul_lt_iff (h : 0 < c) : c⁻¹ • a < b ↔ a < c • b := by
rw [← smul_lt_smul_iff_of_pos h, smul_inv_smul₀ h.ne']; infer_instance
#align inv_smul_lt_iff inv_smul_lt_iff
+-/
+#print le_inv_smul_iff /-
theorem le_inv_smul_iff (h : 0 < c) : a ≤ c⁻¹ • b ↔ c • a ≤ b := by
rw [← smul_le_smul_iff_of_pos h, smul_inv_smul₀ h.ne']; infer_instance
#align le_inv_smul_iff le_inv_smul_iff
+-/
+#print lt_inv_smul_iff /-
theorem lt_inv_smul_iff (h : 0 < c) : a < c⁻¹ • b ↔ c • a < b := by
rw [← smul_lt_smul_iff_of_pos h, smul_inv_smul₀ h.ne']; infer_instance
#align lt_inv_smul_iff lt_inv_smul_iff
+-/
variable (M)
+#print OrderIso.smulLeft /-
/-- Left scalar multiplication as an order isomorphism. -/
@[simps]
def OrderIso.smulLeft (hc : 0 < c) : M ≃o M
@@ -284,28 +335,37 @@ def OrderIso.smulLeft (hc : 0 < c) : M ≃o M
right_inv := smul_inv_smul₀ hc.ne'
map_rel_iff' b₁ b₂ := smul_le_smul_iff_of_pos hc
#align order_iso.smul_left OrderIso.smulLeft
+-/
variable {M}
+#print lowerBounds_smul_of_pos /-
@[simp]
theorem lowerBounds_smul_of_pos (hc : 0 < c) : lowerBounds (c • s) = c • lowerBounds s :=
(OrderIso.smulLeft _ hc).lowerBounds_image
#align lower_bounds_smul_of_pos lowerBounds_smul_of_pos
+-/
+#print upperBounds_smul_of_pos /-
@[simp]
theorem upperBounds_smul_of_pos (hc : 0 < c) : upperBounds (c • s) = c • upperBounds s :=
(OrderIso.smulLeft _ hc).upperBounds_image
#align upper_bounds_smul_of_pos upperBounds_smul_of_pos
+-/
+#print bddBelow_smul_iff_of_pos /-
@[simp]
theorem bddBelow_smul_iff_of_pos (hc : 0 < c) : BddBelow (c • s) ↔ BddBelow s :=
(OrderIso.smulLeft _ hc).bddBelow_image
#align bdd_below_smul_iff_of_pos bddBelow_smul_iff_of_pos
+-/
+#print bddAbove_smul_iff_of_pos /-
@[simp]
theorem bddAbove_smul_iff_of_pos (hc : 0 < c) : BddAbove (c • s) ↔ BddAbove s :=
(OrderIso.smulLeft _ hc).bddAbove_image
#align bdd_above_smul_iff_of_pos bddAbove_smul_iff_of_pos
+-/
end LinearOrderedSemifield
mathlib commit https://github.com/leanprover-community/mathlib/commit/7e5137f579de09a059a5ce98f364a04e221aabf0
@@ -110,7 +110,6 @@ theorem smul_nonneg (hc : 0 ≤ c) (ha : 0 ≤ a) : 0 ≤ c • a :=
calc
(0 : M) = c • (0 : M) := (smul_zero c).symm
_ ≤ c • a := smul_le_smul_of_nonneg ha hc
-
#align smul_nonneg smul_nonneg
theorem smul_nonpos_of_nonneg_of_nonpos (hc : 0 ≤ c) (ha : a ≤ 0) : c • a ≤ 0 :=
@@ -135,7 +134,6 @@ theorem smul_pos_iff_of_pos (hc : 0 < c) : 0 < c • a ↔ 0 < a :=
calc
0 < c • a ↔ c • 0 < c • a := by rw [smul_zero]
_ ↔ 0 < a := smul_lt_smul_iff_of_pos hc
-
#align smul_pos_iff_of_pos smul_pos_iff_of_pos
alias smul_pos_iff_of_pos ↔ _ smul_pos
mathlib commit https://github.com/leanprover-community/mathlib/commit/31c24aa72e7b3e5ed97a8412470e904f82b81004
@@ -340,6 +340,7 @@ end NoZeroSMulDivisors
open Positivity
+-- PLEASE REPORT THIS TO MATHPORT DEVS, THIS SHOULD NOT HAPPEN.
-- failed to format: unknown constant 'term.pseudo.antiquot'
/--
Extension for the `positivity` tactic: scalar multiplication is nonnegative/positive/nonzero if
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -53,7 +53,7 @@ with a partial order has a scalar multiplication which is compatible with the or
-/
@[protect_proj]
class OrderedSMul (R M : Type _) [OrderedSemiring R] [OrderedAddCommMonoid M] [SMulWithZero R M] :
- Prop where
+ Prop where
smul_lt_smul_of_pos : ∀ {a b : M}, ∀ {c : R}, a < b → 0 < c → c • a < c • b
lt_of_smul_lt_smul_of_pos : ∀ {a b : M}, ∀ {c : R}, c • a < c • b → 0 < c → a < b
#align ordered_smul OrderedSMul
@@ -123,7 +123,7 @@ theorem eq_of_smul_eq_smul_of_pos_of_le (h₁ : c • a = c • b) (hc : 0 < c)
theorem lt_of_smul_lt_smul_of_nonneg (h : c • a < c • b) (hc : 0 ≤ c) : a < b :=
hc.eq_or_lt.elim
- (fun hc => False.elim <| lt_irrefl (0 : M) <| by rwa [← hc, zero_smul, zero_smul] at h)
+ (fun hc => False.elim <| lt_irrefl (0 : M) <| by rwa [← hc, zero_smul, zero_smul] at h )
(OrderedSMul.lt_of_smul_lt_smul_of_pos h)
#align lt_of_smul_lt_smul_of_nonneg lt_of_smul_lt_smul_of_nonneg
@@ -192,7 +192,7 @@ instance Nat.orderedSMul [LinearOrderedCancelAddCommMonoid M] : OrderedSMul ℕ
instance Int.orderedSMul [LinearOrderedAddCommGroup M] : OrderedSMul ℤ M :=
OrderedSMul.mk'' fun n hn => by
cases n
- · simp only [Int.ofNat_eq_coe, Int.coe_nat_pos, coe_nat_zsmul] at hn⊢
+ · simp only [Int.ofNat_eq_coe, Int.coe_nat_pos, coe_nat_zsmul] at hn ⊢
exact strictMono_smul_left hn
· cases (Int.negSucc_not_pos _).1 hn
#align int.ordered_smul Int.orderedSMul
@@ -221,7 +221,7 @@ theorem OrderedSMul.mk' (h : ∀ ⦃a b : M⦄ ⦃c : 𝕜⦄, a < b → 0 < c
refine' fun a b c hab hc => (h hab hc).lt_of_ne _
rw [Ne.def, hc.ne'.is_unit.smul_left_cancel]
exact hab.ne
- refine' { smul_lt_smul_of_pos := hlt'.. }
+ refine' { smul_lt_smul_of_pos := hlt' .. }
intro a b c hab hc
obtain ⟨c, rfl⟩ := hc.ne'.is_unit
rw [← inv_smul_smul c a, ← inv_smul_smul c b]
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -46,7 +46,7 @@ ordered module, ordered scalar, ordered smul, ordered action, ordered vector spa
-/
-open Pointwise
+open scoped Pointwise
/-- The ordered scalar product property is when an ordered additive commutative monoid
with a partial order has a scalar multiplication which is compatible with the order.
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -48,12 +48,6 @@ ordered module, ordered scalar, ordered smul, ordered action, ordered vector spa
open Pointwise
-/- warning: ordered_smul -> OrderedSMul is a dubious translation:
-lean 3 declaration is
- forall (R : Type.{u1}) (M : Type.{u2}) [_inst_1 : OrderedSemiring.{u1} R] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_3 : SMulWithZero.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))], Prop
-but is expected to have type
- forall (R : Type.{u1}) (M : Type.{u2}) [_inst_1 : OrderedSemiring.{u1} R] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_3 : SMulWithZero.{u1, u2} R M (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))], Prop
-Case conversion may be inaccurate. Consider using '#align ordered_smul OrderedSMulₓ'. -/
/-- The ordered scalar product property is when an ordered additive commutative monoid
with a partial order has a scalar multiplication which is compatible with the order.
-/
@@ -99,22 +93,10 @@ section OrderedSMul
variable [OrderedSemiring R] [OrderedAddCommMonoid M] [SMulWithZero R M] [OrderedSMul R M]
{s : Set M} {a b : M} {c : R}
-/- warning: smul_lt_smul_of_pos -> smul_lt_smul_of_pos is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} R] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_3 : SMulWithZero.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_4 : OrderedSMul.{u1, u2} R M _inst_1 _inst_2 _inst_3] {a : M} {b : M} {c : R}, (LT.lt.{u2} M (Preorder.toHasLt.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) a b) -> (LT.lt.{u1} R (Preorder.toHasLt.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommMonoid.toPartialOrder.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R _inst_1)))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1)))))))) c) -> (LT.lt.{u2} M (Preorder.toHasLt.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_3)) c a) (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_3)) c b))
-but is expected to have type
- forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} R] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_3 : SMulWithZero.{u1, u2} R M (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))] [_inst_4 : OrderedSMul.{u1, u2} R M _inst_1 _inst_2 _inst_3] {a : M} {b : M} {c : R}, (LT.lt.{u2} M (Preorder.toLT.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) a b) -> (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedSemiring.toPartialOrder.{u1} R _inst_1))) (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) c) -> (LT.lt.{u2} M (Preorder.toLT.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) (HSMul.hSMul.{u1, u2, u2} R M M (instHSMul.{u1, u2} R M (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))) _inst_3))) c a) (HSMul.hSMul.{u1, u2, u2} R M M (instHSMul.{u1, u2} R M (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))) _inst_3))) c b))
-Case conversion may be inaccurate. Consider using '#align smul_lt_smul_of_pos smul_lt_smul_of_posₓ'. -/
theorem smul_lt_smul_of_pos : a < b → 0 < c → c • a < c • b :=
OrderedSMul.smul_lt_smul_of_pos
#align smul_lt_smul_of_pos smul_lt_smul_of_pos
-/- warning: smul_le_smul_of_nonneg -> smul_le_smul_of_nonneg is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} R] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_3 : SMulWithZero.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_4 : OrderedSMul.{u1, u2} R M _inst_1 _inst_2 _inst_3] {a : M} {b : M} {c : R}, (LE.le.{u2} M (Preorder.toHasLe.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) a b) -> (LE.le.{u1} R (Preorder.toHasLe.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommMonoid.toPartialOrder.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R _inst_1)))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1)))))))) c) -> (LE.le.{u2} M (Preorder.toHasLe.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_3)) c a) (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_3)) c b))
-but is expected to have type
- forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} R] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_3 : SMulWithZero.{u1, u2} R M (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))] [_inst_4 : OrderedSMul.{u1, u2} R M _inst_1 _inst_2 _inst_3] {a : M} {b : M} {c : R}, (LE.le.{u2} M (Preorder.toLE.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) a b) -> (LE.le.{u1} R (Preorder.toLE.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedSemiring.toPartialOrder.{u1} R _inst_1))) (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) c) -> (LE.le.{u2} M (Preorder.toLE.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) (HSMul.hSMul.{u1, u2, u2} R M M (instHSMul.{u1, u2} R M (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))) _inst_3))) c a) (HSMul.hSMul.{u1, u2, u2} R M M (instHSMul.{u1, u2} R M (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))) _inst_3))) c b))
-Case conversion may be inaccurate. Consider using '#align smul_le_smul_of_nonneg smul_le_smul_of_nonnegₓ'. -/
theorem smul_le_smul_of_nonneg (h₁ : a ≤ b) (h₂ : 0 ≤ c) : c • a ≤ c • b :=
by
rcases h₁.eq_or_lt with (rfl | hab)
@@ -124,12 +106,6 @@ theorem smul_le_smul_of_nonneg (h₁ : a ≤ b) (h₂ : 0 ≤ c) : c • a ≤ c
· exact (smul_lt_smul_of_pos hab hc).le
#align smul_le_smul_of_nonneg smul_le_smul_of_nonneg
-/- warning: smul_nonneg -> smul_nonneg is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} R] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_3 : SMulWithZero.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_4 : OrderedSMul.{u1, u2} R M _inst_1 _inst_2 _inst_3] {a : M} {c : R}, (LE.le.{u1} R (Preorder.toHasLe.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommMonoid.toPartialOrder.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R _inst_1)))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1)))))))) c) -> (LE.le.{u2} M (Preorder.toHasLe.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.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 (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))))) a) -> (LE.le.{u2} M (Preorder.toHasLe.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.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 (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))))) (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_3)) c a))
-but is expected to have type
- forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} R] [_inst_2 : OrderedAddCommMonoid.{u1} M] [_inst_3 : SMulWithZero.{u2, u1} R M (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (OrderedSemiring.toSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2)))] [_inst_4 : OrderedSMul.{u2, u1} R M _inst_1 _inst_2 _inst_3] {a : M} {c : R}, (LE.le.{u2} R (Preorder.toLE.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedSemiring.toPartialOrder.{u2} R _inst_1))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (OrderedSemiring.toSemiring.{u2} R _inst_1))))) c) -> (LE.le.{u1} M (Preorder.toLE.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2))) (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))))) a) -> (LE.le.{u1} M (Preorder.toLE.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2))) (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))))) (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (OrderedSemiring.toSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_3))) c a))
-Case conversion may be inaccurate. Consider using '#align smul_nonneg smul_nonnegₓ'. -/
theorem smul_nonneg (hc : 0 ≤ c) (ha : 0 ≤ a) : 0 ≤ c • a :=
calc
(0 : M) = c • (0 : M) := (smul_zero c).symm
@@ -137,54 +113,24 @@ theorem smul_nonneg (hc : 0 ≤ c) (ha : 0 ≤ a) : 0 ≤ c • a :=
#align smul_nonneg smul_nonneg
-/- warning: smul_nonpos_of_nonneg_of_nonpos -> smul_nonpos_of_nonneg_of_nonpos is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} R] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_3 : SMulWithZero.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_4 : OrderedSMul.{u1, u2} R M _inst_1 _inst_2 _inst_3] {a : M} {c : R}, (LE.le.{u1} R (Preorder.toHasLe.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommMonoid.toPartialOrder.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R _inst_1)))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1)))))))) c) -> (LE.le.{u2} M (Preorder.toHasLe.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.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 (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))))))) -> (LE.le.{u2} M (Preorder.toHasLe.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{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 (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))))))
-but is expected to have type
- forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} R] [_inst_2 : OrderedAddCommMonoid.{u1} M] [_inst_3 : SMulWithZero.{u2, u1} R M (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (OrderedSemiring.toSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2)))] [_inst_4 : OrderedSMul.{u2, u1} R M _inst_1 _inst_2 _inst_3] {a : M} {c : R}, (LE.le.{u2} R (Preorder.toLE.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedSemiring.toPartialOrder.{u2} R _inst_1))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (OrderedSemiring.toSemiring.{u2} R _inst_1))))) c) -> (LE.le.{u1} M (Preorder.toLE.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2))) a (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2)))))) -> (LE.le.{u1} M (Preorder.toLE.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2))) (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (OrderedSemiring.toSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_3))) c a) (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))))))
-Case conversion may be inaccurate. Consider using '#align smul_nonpos_of_nonneg_of_nonpos smul_nonpos_of_nonneg_of_nonposₓ'. -/
theorem smul_nonpos_of_nonneg_of_nonpos (hc : 0 ≤ c) (ha : a ≤ 0) : c • a ≤ 0 :=
@smul_nonneg R Mᵒᵈ _ _ _ _ _ _ hc ha
#align smul_nonpos_of_nonneg_of_nonpos smul_nonpos_of_nonneg_of_nonpos
-/- warning: eq_of_smul_eq_smul_of_pos_of_le -> eq_of_smul_eq_smul_of_pos_of_le is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} R] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_3 : SMulWithZero.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_4 : OrderedSMul.{u1, u2} R M _inst_1 _inst_2 _inst_3] {a : M} {b : M} {c : R}, (Eq.{succ u2} M (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_3)) c a) (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_3)) c b)) -> (LT.lt.{u1} R (Preorder.toHasLt.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommMonoid.toPartialOrder.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R _inst_1)))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1)))))))) c) -> (LE.le.{u2} M (Preorder.toHasLe.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) a b) -> (Eq.{succ u2} M a b)
-but is expected to have type
- forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} R] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_3 : SMulWithZero.{u1, u2} R M (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))] [_inst_4 : OrderedSMul.{u1, u2} R M _inst_1 _inst_2 _inst_3] {a : M} {b : M} {c : R}, (Eq.{succ u2} M (HSMul.hSMul.{u1, u2, u2} R M M (instHSMul.{u1, u2} R M (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))) _inst_3))) c a) (HSMul.hSMul.{u1, u2, u2} R M M (instHSMul.{u1, u2} R M (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))) _inst_3))) c b)) -> (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedSemiring.toPartialOrder.{u1} R _inst_1))) (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) c) -> (LE.le.{u2} M (Preorder.toLE.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.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_pos_of_le eq_of_smul_eq_smul_of_pos_of_leₓ'. -/
theorem eq_of_smul_eq_smul_of_pos_of_le (h₁ : c • a = c • b) (hc : 0 < c) (hle : a ≤ b) : a = b :=
hle.lt_or_eq.resolve_left fun hlt => (smul_lt_smul_of_pos hlt hc).Ne h₁
#align eq_of_smul_eq_smul_of_pos_of_le eq_of_smul_eq_smul_of_pos_of_le
-/- warning: lt_of_smul_lt_smul_of_nonneg -> lt_of_smul_lt_smul_of_nonneg is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} R] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_3 : SMulWithZero.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_4 : OrderedSMul.{u1, u2} R M _inst_1 _inst_2 _inst_3] {a : M} {b : M} {c : R}, (LT.lt.{u2} M (Preorder.toHasLt.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_3)) c a) (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_3)) c b)) -> (LE.le.{u1} R (Preorder.toHasLe.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommMonoid.toPartialOrder.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R _inst_1)))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1)))))))) c) -> (LT.lt.{u2} M (Preorder.toHasLt.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) a b)
-but is expected to have type
- forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} R] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_3 : SMulWithZero.{u1, u2} R M (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))] [_inst_4 : OrderedSMul.{u1, u2} R M _inst_1 _inst_2 _inst_3] {a : M} {b : M} {c : R}, (LT.lt.{u2} M (Preorder.toLT.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) (HSMul.hSMul.{u1, u2, u2} R M M (instHSMul.{u1, u2} R M (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))) _inst_3))) c a) (HSMul.hSMul.{u1, u2, u2} R M M (instHSMul.{u1, u2} R M (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))) _inst_3))) c b)) -> (LE.le.{u1} R (Preorder.toLE.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedSemiring.toPartialOrder.{u1} R _inst_1))) (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) c) -> (LT.lt.{u2} M (Preorder.toLT.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) a b)
-Case conversion may be inaccurate. Consider using '#align lt_of_smul_lt_smul_of_nonneg lt_of_smul_lt_smul_of_nonnegₓ'. -/
theorem lt_of_smul_lt_smul_of_nonneg (h : c • a < c • b) (hc : 0 ≤ c) : a < b :=
hc.eq_or_lt.elim
(fun hc => False.elim <| lt_irrefl (0 : M) <| by rwa [← hc, zero_smul, zero_smul] at h)
(OrderedSMul.lt_of_smul_lt_smul_of_pos h)
#align lt_of_smul_lt_smul_of_nonneg lt_of_smul_lt_smul_of_nonneg
-/- warning: smul_lt_smul_iff_of_pos -> smul_lt_smul_iff_of_pos is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} R] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_3 : SMulWithZero.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_4 : OrderedSMul.{u1, u2} R M _inst_1 _inst_2 _inst_3] {a : M} {b : M} {c : R}, (LT.lt.{u1} R (Preorder.toHasLt.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommMonoid.toPartialOrder.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R _inst_1)))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1)))))))) c) -> (Iff (LT.lt.{u2} M (Preorder.toHasLt.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_3)) c a) (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_3)) c b)) (LT.lt.{u2} M (Preorder.toHasLt.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) a b))
-but is expected to have type
- forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} R] [_inst_2 : OrderedAddCommMonoid.{u1} M] [_inst_3 : SMulWithZero.{u2, u1} R M (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (OrderedSemiring.toSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2)))] [_inst_4 : OrderedSMul.{u2, u1} R M _inst_1 _inst_2 _inst_3] {a : M} {b : M} {c : R}, (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedSemiring.toPartialOrder.{u2} R _inst_1))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (OrderedSemiring.toSemiring.{u2} R _inst_1))))) c) -> (Iff (LT.lt.{u1} M (Preorder.toLT.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2))) (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (OrderedSemiring.toSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_3))) c a) (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (OrderedSemiring.toSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_3))) c b)) (LT.lt.{u1} M (Preorder.toLT.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2))) a b))
-Case conversion may be inaccurate. Consider using '#align smul_lt_smul_iff_of_pos smul_lt_smul_iff_of_posₓ'. -/
theorem smul_lt_smul_iff_of_pos (hc : 0 < c) : c • a < c • b ↔ a < b :=
⟨fun h => lt_of_smul_lt_smul_of_nonneg h hc.le, fun h => smul_lt_smul_of_pos h hc⟩
#align smul_lt_smul_iff_of_pos smul_lt_smul_iff_of_pos
-/- warning: smul_pos_iff_of_pos -> smul_pos_iff_of_pos is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} R] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_3 : SMulWithZero.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_4 : OrderedSMul.{u1, u2} R M _inst_1 _inst_2 _inst_3] {a : M} {c : R}, (LT.lt.{u1} R (Preorder.toHasLt.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommMonoid.toPartialOrder.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R _inst_1)))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1)))))))) c) -> (Iff (LT.lt.{u2} M (Preorder.toHasLt.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.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 (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))))) (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_3)) c a)) (LT.lt.{u2} M (Preorder.toHasLt.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.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 (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))))) a))
-but is expected to have type
- forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} R] [_inst_2 : OrderedAddCommMonoid.{u1} M] [_inst_3 : SMulWithZero.{u2, u1} R M (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (OrderedSemiring.toSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2)))] [_inst_4 : OrderedSMul.{u2, u1} R M _inst_1 _inst_2 _inst_3] {a : M} {c : R}, (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedSemiring.toPartialOrder.{u2} R _inst_1))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (OrderedSemiring.toSemiring.{u2} R _inst_1))))) c) -> (Iff (LT.lt.{u1} M (Preorder.toLT.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2))) (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))))) (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (OrderedSemiring.toSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_3))) c a)) (LT.lt.{u1} M (Preorder.toLT.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2))) (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))))) a))
-Case conversion may be inaccurate. Consider using '#align smul_pos_iff_of_pos smul_pos_iff_of_posₓ'. -/
theorem smul_pos_iff_of_pos (hc : 0 < c) : 0 < c • a ↔ 0 < a :=
calc
0 < c • a ↔ c • 0 < c • a := by rw [smul_zero]
@@ -192,85 +138,37 @@ theorem smul_pos_iff_of_pos (hc : 0 < c) : 0 < c • a ↔ 0 < a :=
#align smul_pos_iff_of_pos smul_pos_iff_of_pos
-/- warning: smul_pos -> smul_pos is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} R] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_3 : SMulWithZero.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_4 : OrderedSMul.{u1, u2} R M _inst_1 _inst_2 _inst_3] {a : M} {c : R}, (LT.lt.{u1} R (Preorder.toHasLt.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommMonoid.toPartialOrder.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R _inst_1)))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1)))))))) c) -> (LT.lt.{u2} M (Preorder.toHasLt.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.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 (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))))) a) -> (LT.lt.{u2} M (Preorder.toHasLt.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.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 (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))))) (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_3)) c a))
-but is expected to have type
- forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} R] [_inst_2 : OrderedAddCommMonoid.{u1} M] [_inst_3 : SMulWithZero.{u2, u1} R M (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (OrderedSemiring.toSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2)))] [_inst_4 : OrderedSMul.{u2, u1} R M _inst_1 _inst_2 _inst_3] {a : M} {c : R}, (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedSemiring.toPartialOrder.{u2} R _inst_1))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (OrderedSemiring.toSemiring.{u2} R _inst_1))))) c) -> (LT.lt.{u1} M (Preorder.toLT.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2))) (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))))) a) -> (LT.lt.{u1} M (Preorder.toLT.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2))) (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))))) (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (OrderedSemiring.toSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_3))) c a))
-Case conversion may be inaccurate. Consider using '#align smul_pos smul_posₓ'. -/
alias smul_pos_iff_of_pos ↔ _ smul_pos
#align smul_pos smul_pos
-/- warning: monotone_smul_left -> monotone_smul_left is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} R] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_3 : SMulWithZero.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_4 : OrderedSMul.{u1, u2} R M _inst_1 _inst_2 _inst_3] {c : R}, (LE.le.{u1} R (Preorder.toHasLe.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommMonoid.toPartialOrder.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R _inst_1)))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1)))))))) c) -> (Monotone.{u2, u2} M M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2)) (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2)) (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_3)) c))
-but is expected to have type
- forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} R] [_inst_2 : OrderedAddCommMonoid.{u1} M] [_inst_3 : SMulWithZero.{u2, u1} R M (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (OrderedSemiring.toSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2)))] [_inst_4 : OrderedSMul.{u2, u1} R M _inst_1 _inst_2 _inst_3] {c : R}, (LE.le.{u2} R (Preorder.toLE.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedSemiring.toPartialOrder.{u2} R _inst_1))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (OrderedSemiring.toSemiring.{u2} R _inst_1))))) c) -> (Monotone.{u1, u1} M M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2)) (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2)) (SMul.smul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (OrderedSemiring.toSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_3)) c))
-Case conversion may be inaccurate. Consider using '#align monotone_smul_left monotone_smul_leftₓ'. -/
theorem monotone_smul_left (hc : 0 ≤ c) : Monotone (SMul.smul c : M → M) := fun a b h =>
smul_le_smul_of_nonneg h hc
#align monotone_smul_left monotone_smul_left
-/- warning: strict_mono_smul_left -> strictMono_smul_left is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} R] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_3 : SMulWithZero.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_4 : OrderedSMul.{u1, u2} R M _inst_1 _inst_2 _inst_3] {c : R}, (LT.lt.{u1} R (Preorder.toHasLt.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommMonoid.toPartialOrder.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R _inst_1)))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1)))))))) c) -> (StrictMono.{u2, u2} M M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2)) (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2)) (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_3)) c))
-but is expected to have type
- forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} R] [_inst_2 : OrderedAddCommMonoid.{u1} M] [_inst_3 : SMulWithZero.{u2, u1} R M (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (OrderedSemiring.toSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2)))] [_inst_4 : OrderedSMul.{u2, u1} R M _inst_1 _inst_2 _inst_3] {c : R}, (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedSemiring.toPartialOrder.{u2} R _inst_1))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (OrderedSemiring.toSemiring.{u2} R _inst_1))))) c) -> (StrictMono.{u1, u1} M M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2)) (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2)) (SMul.smul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (OrderedSemiring.toSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_3)) c))
-Case conversion may be inaccurate. Consider using '#align strict_mono_smul_left strictMono_smul_leftₓ'. -/
theorem strictMono_smul_left (hc : 0 < c) : StrictMono (SMul.smul c : M → M) := fun a b h =>
smul_lt_smul_of_pos h hc
#align strict_mono_smul_left strictMono_smul_left
-/- warning: smul_lower_bounds_subset_lower_bounds_smul -> smul_lowerBounds_subset_lowerBounds_smul is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} R] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_3 : SMulWithZero.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_4 : OrderedSMul.{u1, u2} R M _inst_1 _inst_2 _inst_3] {s : Set.{u2} M} {c : R}, (LE.le.{u1} R (Preorder.toHasLe.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommMonoid.toPartialOrder.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R _inst_1)))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1)))))))) c) -> (HasSubset.Subset.{u2} (Set.{u2} M) (Set.hasSubset.{u2} M) (SMul.smul.{u1, u2} R (Set.{u2} M) (Set.smulSet.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_3))) c (lowerBounds.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2)) s)) (lowerBounds.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2)) (SMul.smul.{u1, u2} R (Set.{u2} M) (Set.smulSet.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_3))) c s)))
-but is expected to have type
- forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} R] [_inst_2 : OrderedAddCommMonoid.{u1} M] [_inst_3 : SMulWithZero.{u2, u1} R M (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (OrderedSemiring.toSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2)))] [_inst_4 : OrderedSMul.{u2, u1} R M _inst_1 _inst_2 _inst_3] {s : Set.{u1} M} {c : R}, (LE.le.{u2} R (Preorder.toLE.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedSemiring.toPartialOrder.{u2} R _inst_1))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (OrderedSemiring.toSemiring.{u2} R _inst_1))))) c) -> (HasSubset.Subset.{u1} (Set.{u1} M) (Set.instHasSubsetSet.{u1} M) (HSMul.hSMul.{u2, u1, u1} R (Set.{u1} M) (Set.{u1} M) (instHSMul.{u2, u1} R (Set.{u1} M) (Set.smulSet.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (OrderedSemiring.toSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_3)))) c (lowerBounds.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2)) s)) (lowerBounds.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2)) (HSMul.hSMul.{u2, u1, u1} R (Set.{u1} M) (Set.{u1} M) (instHSMul.{u2, u1} R (Set.{u1} M) (Set.smulSet.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (OrderedSemiring.toSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_3)))) c s)))
-Case conversion may be inaccurate. Consider using '#align smul_lower_bounds_subset_lower_bounds_smul smul_lowerBounds_subset_lowerBounds_smulₓ'. -/
theorem smul_lowerBounds_subset_lowerBounds_smul (hc : 0 ≤ c) :
c • lowerBounds s ⊆ lowerBounds (c • s) :=
(monotone_smul_left hc).image_lowerBounds_subset_lowerBounds_image
#align smul_lower_bounds_subset_lower_bounds_smul smul_lowerBounds_subset_lowerBounds_smul
-/- warning: smul_upper_bounds_subset_upper_bounds_smul -> smul_upperBounds_subset_upperBounds_smul is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} R] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_3 : SMulWithZero.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_4 : OrderedSMul.{u1, u2} R M _inst_1 _inst_2 _inst_3] {s : Set.{u2} M} {c : R}, (LE.le.{u1} R (Preorder.toHasLe.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommMonoid.toPartialOrder.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R _inst_1)))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1)))))))) c) -> (HasSubset.Subset.{u2} (Set.{u2} M) (Set.hasSubset.{u2} M) (SMul.smul.{u1, u2} R (Set.{u2} M) (Set.smulSet.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_3))) c (upperBounds.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2)) s)) (upperBounds.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2)) (SMul.smul.{u1, u2} R (Set.{u2} M) (Set.smulSet.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_3))) c s)))
-but is expected to have type
- forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} R] [_inst_2 : OrderedAddCommMonoid.{u1} M] [_inst_3 : SMulWithZero.{u2, u1} R M (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (OrderedSemiring.toSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2)))] [_inst_4 : OrderedSMul.{u2, u1} R M _inst_1 _inst_2 _inst_3] {s : Set.{u1} M} {c : R}, (LE.le.{u2} R (Preorder.toLE.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedSemiring.toPartialOrder.{u2} R _inst_1))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (OrderedSemiring.toSemiring.{u2} R _inst_1))))) c) -> (HasSubset.Subset.{u1} (Set.{u1} M) (Set.instHasSubsetSet.{u1} M) (HSMul.hSMul.{u2, u1, u1} R (Set.{u1} M) (Set.{u1} M) (instHSMul.{u2, u1} R (Set.{u1} M) (Set.smulSet.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (OrderedSemiring.toSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_3)))) c (upperBounds.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2)) s)) (upperBounds.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2)) (HSMul.hSMul.{u2, u1, u1} R (Set.{u1} M) (Set.{u1} M) (instHSMul.{u2, u1} R (Set.{u1} M) (Set.smulSet.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (OrderedSemiring.toSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_3)))) c s)))
-Case conversion may be inaccurate. Consider using '#align smul_upper_bounds_subset_upper_bounds_smul smul_upperBounds_subset_upperBounds_smulₓ'. -/
theorem smul_upperBounds_subset_upperBounds_smul (hc : 0 ≤ c) :
c • upperBounds s ⊆ upperBounds (c • s) :=
(monotone_smul_left hc).image_upperBounds_subset_upperBounds_image
#align smul_upper_bounds_subset_upper_bounds_smul smul_upperBounds_subset_upperBounds_smul
-/- warning: bdd_below.smul_of_nonneg -> BddBelow.smul_of_nonneg is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} R] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_3 : SMulWithZero.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_4 : OrderedSMul.{u1, u2} R M _inst_1 _inst_2 _inst_3] {s : Set.{u2} M} {c : R}, (BddBelow.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2)) s) -> (LE.le.{u1} R (Preorder.toHasLe.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommMonoid.toPartialOrder.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R _inst_1)))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1)))))))) c) -> (BddBelow.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2)) (SMul.smul.{u1, u2} R (Set.{u2} M) (Set.smulSet.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_3))) c s))
-but is expected to have type
- forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} R] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_3 : SMulWithZero.{u1, u2} R M (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))] [_inst_4 : OrderedSMul.{u1, u2} R M _inst_1 _inst_2 _inst_3] {s : Set.{u2} M} {c : R}, (BddBelow.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2)) s) -> (LE.le.{u1} R (Preorder.toLE.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedSemiring.toPartialOrder.{u1} R _inst_1))) (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) c) -> (BddBelow.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2)) (HSMul.hSMul.{u1, u2, u2} R (Set.{u2} M) (Set.{u2} M) (instHSMul.{u1, u2} R (Set.{u2} M) (Set.smulSet.{u1, u2} R M (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))) _inst_3)))) c s))
-Case conversion may be inaccurate. Consider using '#align bdd_below.smul_of_nonneg BddBelow.smul_of_nonnegₓ'. -/
theorem BddBelow.smul_of_nonneg (hs : BddBelow s) (hc : 0 ≤ c) : BddBelow (c • s) :=
(monotone_smul_left hc).map_bddBelow hs
#align bdd_below.smul_of_nonneg BddBelow.smul_of_nonneg
-/- warning: bdd_above.smul_of_nonneg -> BddAbove.smul_of_nonneg is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} R] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_3 : SMulWithZero.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_4 : OrderedSMul.{u1, u2} R M _inst_1 _inst_2 _inst_3] {s : Set.{u2} M} {c : R}, (BddAbove.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2)) s) -> (LE.le.{u1} R (Preorder.toHasLe.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommMonoid.toPartialOrder.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R _inst_1)))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1)))))))) c) -> (BddAbove.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2)) (SMul.smul.{u1, u2} R (Set.{u2} M) (Set.smulSet.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_3))) c s))
-but is expected to have type
- forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} R] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_3 : SMulWithZero.{u1, u2} R M (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))] [_inst_4 : OrderedSMul.{u1, u2} R M _inst_1 _inst_2 _inst_3] {s : Set.{u2} M} {c : R}, (BddAbove.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2)) s) -> (LE.le.{u1} R (Preorder.toLE.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedSemiring.toPartialOrder.{u1} R _inst_1))) (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) c) -> (BddAbove.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2)) (HSMul.hSMul.{u1, u2, u2} R (Set.{u2} M) (Set.{u2} M) (instHSMul.{u1, u2} R (Set.{u2} M) (Set.smulSet.{u1, u2} R M (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))) _inst_3)))) c s))
-Case conversion may be inaccurate. Consider using '#align bdd_above.smul_of_nonneg BddAbove.smul_of_nonnegₓ'. -/
theorem BddAbove.smul_of_nonneg (hs : BddAbove s) (hc : 0 ≤ c) : BddAbove (c • s) :=
(monotone_smul_left hc).map_bddAbove hs
#align bdd_above.smul_of_nonneg BddAbove.smul_of_nonneg
end OrderedSMul
-/- warning: ordered_smul.mk'' -> OrderedSMul.mk'' is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : LinearOrderedAddCommMonoid.{u2} M] [_inst_3 : SMulWithZero.{u1, u2} 𝕜 M (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u2} M _inst_2)))))], (forall {{c : 𝕜}}, (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) c) -> (StrictMono.{u2, u2} M M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u2} M _inst_2))) (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u2} M _inst_2))) (fun (a : M) => SMul.smul.{u1, u2} 𝕜 M (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u2} M _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 M (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u2} M _inst_2))))) _inst_3)) c a))) -> (OrderedSMul.{u1, u2} 𝕜 M _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u2} M _inst_2) _inst_3)
-but is expected to have type
- forall {𝕜 : Type.{u2}} {M : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} 𝕜] [_inst_2 : LinearOrderedAddCommMonoid.{u1} M] [_inst_3 : SMulWithZero.{u2, u1} 𝕜 M (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2)))], (forall {{c : 𝕜}}, (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedSemiring.toPartialOrder.{u2} 𝕜 _inst_1))) (OfNat.ofNat.{u2} 𝕜 0 (Zero.toOfNat0.{u2} 𝕜 (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))))) c) -> (StrictMono.{u1, u1} M M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} M _inst_2))) (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} M _inst_2))) (fun (a : M) => HSMul.hSMul.{u2, u1, u1} 𝕜 M M (instHSMul.{u2, u1} 𝕜 M (SMulZeroClass.toSMul.{u2, u1} 𝕜 M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 M (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_3))) c a))) -> (OrderedSMul.{u2, u1} 𝕜 M _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} M _inst_2) _inst_3)
-Case conversion may be inaccurate. Consider using '#align ordered_smul.mk'' OrderedSMul.mk''ₓ'. -/
/-- To prove that a linear ordered monoid is an ordered module, it suffices to verify only the first
axiom of `ordered_smul`. -/
theorem OrderedSMul.mk'' [OrderedSemiring 𝕜] [LinearOrderedAddCommMonoid M] [SMulWithZero 𝕜 M]
@@ -313,12 +211,6 @@ section LinearOrderedSemifield
variable [LinearOrderedSemifield 𝕜] [OrderedAddCommMonoid M] [OrderedAddCommMonoid N]
[MulActionWithZero 𝕜 M] [MulActionWithZero 𝕜 N]
-/- warning: ordered_smul.mk' -> OrderedSMul.mk' is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {M : Type.{u2}} [_inst_1 : LinearOrderedSemifield.{u1} 𝕜] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_4 : MulActionWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))], (forall {{a : M}} {{b : M}} {{c : 𝕜}}, (LT.lt.{u2} M (Preorder.toHasLt.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) a b) -> (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedCancelAddCommMonoid.toPartialOrder.{u1} 𝕜 (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))))))))) c) -> (LE.le.{u2} M (Preorder.toHasLe.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) (SMul.smul.{u1, u2} 𝕜 M (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 M (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4))) c a) (SMul.smul.{u1, u2} 𝕜 M (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 M (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4))) c b))) -> (OrderedSMul.{u1, u2} 𝕜 M (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1)))) _inst_2 (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4))
-but is expected to have type
- forall {𝕜 : Type.{u1}} {M : Type.{u2}} [_inst_1 : LinearOrderedSemifield.{u1} 𝕜] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_4 : MulActionWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (StrictOrderedSemiring.toSemiring.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1))))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))], (forall {{a : M}} {{b : M}} {{c : 𝕜}}, (LT.lt.{u2} M (Preorder.toLT.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) a b) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (StrictOrderedSemiring.toPartialOrder.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1)))))) (OfNat.ofNat.{u1} 𝕜 0 (Zero.toOfNat0.{u1} 𝕜 (CommMonoidWithZero.toZero.{u1} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u1} 𝕜 (Semifield.toCommGroupWithZero.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))))) c) -> (LE.le.{u2} M (Preorder.toLE.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) (HSMul.hSMul.{u1, u2, u2} 𝕜 M M (instHSMul.{u1, u2} 𝕜 M (SMulZeroClass.toSMul.{u1, u2} 𝕜 M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u1, u2} 𝕜 M (CommMonoidWithZero.toZero.{u1} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u1} 𝕜 (Semifield.toCommGroupWithZero.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (StrictOrderedSemiring.toSemiring.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1))))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))) _inst_4)))) c a) (HSMul.hSMul.{u1, u2, u2} 𝕜 M M (instHSMul.{u1, u2} 𝕜 M (SMulZeroClass.toSMul.{u1, u2} 𝕜 M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u1, u2} 𝕜 M (CommMonoidWithZero.toZero.{u1} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u1} 𝕜 (Semifield.toCommGroupWithZero.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (StrictOrderedSemiring.toSemiring.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1))))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))) _inst_4)))) c b))) -> (OrderedSMul.{u1, u2} 𝕜 M (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1)))) _inst_2 (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (StrictOrderedSemiring.toSemiring.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1))))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))) _inst_4))
-Case conversion may be inaccurate. Consider using '#align ordered_smul.mk' OrderedSMul.mk'ₓ'. -/
/-- To prove that a vector space over a linear ordered field is ordered, it suffices to verify only
the first axiom of `ordered_smul`. -/
theorem OrderedSMul.mk' (h : ∀ ⦃a b : M⦄ ⦃c : 𝕜⦄, a < b → 0 < c → c • a ≤ c • b) :
@@ -341,35 +233,17 @@ instance [OrderedSMul 𝕜 M] [OrderedSMul 𝕜 N] : OrderedSMul 𝕜 (M × N) :
OrderedSMul.mk' fun a b c h hc =>
⟨smul_le_smul_of_nonneg h.1.1 hc.le, smul_le_smul_of_nonneg h.1.2 hc.le⟩
-/- warning: pi.ordered_smul -> Pi.orderedSMul is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {𝕜 : Type.{u2}} [_inst_1 : LinearOrderedSemifield.{u2} 𝕜] {M : ι -> Type.{u3}} [_inst_6 : forall (i : ι), OrderedAddCommMonoid.{u3} (M i)] [_inst_7 : forall (i : ι), MulActionWithZero.{u2, u3} 𝕜 (M i) (Semiring.toMonoidWithZero.{u2} 𝕜 (DivisionSemiring.toSemiring.{u2} 𝕜 (Semifield.toDivisionSemiring.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u3} (M i) (AddMonoid.toAddZeroClass.{u3} (M i) (AddCommMonoid.toAddMonoid.{u3} (M i) (OrderedAddCommMonoid.toAddCommMonoid.{u3} (M i) (_inst_6 i)))))] [_inst_8 : forall (i : ι), OrderedSMul.{u2, u3} 𝕜 (M i) (StrictOrderedSemiring.toOrderedSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1)))) (_inst_6 i) (MulActionWithZero.toSMulWithZero.{u2, u3} 𝕜 (M i) (Semiring.toMonoidWithZero.{u2} 𝕜 (DivisionSemiring.toSemiring.{u2} 𝕜 (Semifield.toDivisionSemiring.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u3} (M i) (AddMonoid.toAddZeroClass.{u3} (M i) (AddCommMonoid.toAddMonoid.{u3} (M i) (OrderedAddCommMonoid.toAddCommMonoid.{u3} (M i) (_inst_6 i))))) (_inst_7 i))], OrderedSMul.{u2, max u1 u3} 𝕜 (forall (i : ι), M i) (StrictOrderedSemiring.toOrderedSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1)))) (Pi.orderedAddCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_6 i)) (MulActionWithZero.toSMulWithZero.{u2, max u1 u3} 𝕜 (forall (i : ι), M i) (Semiring.toMonoidWithZero.{u2} 𝕜 (DivisionSemiring.toSemiring.{u2} 𝕜 (Semifield.toDivisionSemiring.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{max u1 u3} (forall (i : ι), M i) (AddMonoid.toAddZeroClass.{max u1 u3} (forall (i : ι), M i) (AddCommMonoid.toAddMonoid.{max u1 u3} (forall (i : ι), M i) (OrderedAddCommMonoid.toAddCommMonoid.{max u1 u3} (forall (i : ι), M i) (Pi.orderedAddCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_6 i)))))) (Pi.mulActionWithZero.{u1, u3, u2} ι (fun (i : ι) => M i) 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (DivisionSemiring.toSemiring.{u2} 𝕜 (Semifield.toDivisionSemiring.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 _inst_1)))) (fun (_x : ι) => AddZeroClass.toHasZero.{u3} ((fun (i : ι) => (fun (i : ι) => M i) i) _x) (AddMonoid.toAddZeroClass.{u3} ((fun (i : ι) => (fun (i : ι) => M i) i) _x) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => (fun (i : ι) => M i) i) _x) ((fun (i : ι) => OrderedAddCommMonoid.toAddCommMonoid.{u3} ((fun (i : ι) => M i) i) ((fun (i : ι) => _inst_6 i) i)) _x)))) (fun (i : ι) => _inst_7 i)))
-but is expected to have type
- forall {ι : Type.{u1}} {𝕜 : Type.{u2}} [_inst_1 : LinearOrderedSemifield.{u2} 𝕜] {M : ι -> Type.{u3}} [_inst_6 : forall (i : ι), OrderedAddCommMonoid.{u3} (M i)] [_inst_7 : forall (i : ι), MulActionWithZero.{u2, u3} 𝕜 (M i) (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u3} (M i) (AddCommMonoid.toAddMonoid.{u3} (M i) (OrderedAddCommMonoid.toAddCommMonoid.{u3} (M i) (_inst_6 i))))] [_inst_8 : forall (i : ι), OrderedSMul.{u2, u3} 𝕜 (M i) (OrderedCommSemiring.toOrderedSemiring.{u2} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1)))) (_inst_6 i) (MulActionWithZero.toSMulWithZero.{u2, u3} 𝕜 (M i) (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u3} (M i) (AddCommMonoid.toAddMonoid.{u3} (M i) (OrderedAddCommMonoid.toAddCommMonoid.{u3} (M i) (_inst_6 i)))) (_inst_7 i))], OrderedSMul.{u2, max u1 u3} 𝕜 (forall (i : ι), M i) (OrderedCommSemiring.toOrderedSemiring.{u2} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1)))) (Pi.orderedAddCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_6 i)) (Pi.smulWithZero.{u1, u3, u2} ι (fun (i : ι) => M i) 𝕜 (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u2} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))))) (fun (x._@.Mathlib.Data.Pi.Algebra._hyg.111 : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => M i) i) i) i) x._@.Mathlib.Data.Pi.Algebra._hyg.111) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u3} ((fun (i : ι) => (fun (i : ι) => (fun (i : ι) => M i) i) i) i) ((fun (i : ι) => AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => (fun (i : ι) => M i) i) i) ((fun (i : ι) => OrderedAddCommMonoid.toAddCommMonoid.{u3} ((fun (i : ι) => M i) i) ((fun (i : ι) => _inst_6 i) i)) i)) i)) x._@.Mathlib.Data.Pi.Algebra._hyg.111)) (fun (i : ι) => MulActionWithZero.toSMulWithZero.{u2, u3} 𝕜 (M i) (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u3} (M i) (AddCommMonoid.toAddMonoid.{u3} (M i) (OrderedAddCommMonoid.toAddCommMonoid.{u3} (M i) (_inst_6 i)))) (_inst_7 i)))
-Case conversion may be inaccurate. Consider using '#align pi.ordered_smul Pi.orderedSMulₓ'. -/
instance Pi.orderedSMul {M : ι → Type _} [∀ i, OrderedAddCommMonoid (M i)]
[∀ i, MulActionWithZero 𝕜 (M i)] [∀ i, OrderedSMul 𝕜 (M i)] : OrderedSMul 𝕜 (∀ i, M i) :=
OrderedSMul.mk' fun v u c h hc i => smul_le_smul_of_nonneg (h.le i) hc.le
#align pi.ordered_smul Pi.orderedSMul
-/- warning: pi.ordered_smul' -> Pi.orderedSMul' is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {𝕜 : Type.{u2}} {M : Type.{u3}} [_inst_1 : LinearOrderedSemifield.{u2} 𝕜] [_inst_2 : OrderedAddCommMonoid.{u3} M] [_inst_4 : MulActionWithZero.{u2, u3} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (DivisionSemiring.toSemiring.{u2} 𝕜 (Semifield.toDivisionSemiring.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (OrderedAddCommMonoid.toAddCommMonoid.{u3} M _inst_2))))] [_inst_6 : OrderedSMul.{u2, u3} 𝕜 M (StrictOrderedSemiring.toOrderedSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1)))) _inst_2 (MulActionWithZero.toSMulWithZero.{u2, u3} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (DivisionSemiring.toSemiring.{u2} 𝕜 (Semifield.toDivisionSemiring.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (OrderedAddCommMonoid.toAddCommMonoid.{u3} M _inst_2)))) _inst_4)], OrderedSMul.{u2, max u1 u3} 𝕜 (ι -> M) (StrictOrderedSemiring.toOrderedSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1)))) (Pi.orderedAddCommMonoid.{u1, u3} ι (fun (ᾰ : ι) => M) (fun (i : ι) => _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, max u1 u3} 𝕜 (ι -> M) (Semiring.toMonoidWithZero.{u2} 𝕜 (DivisionSemiring.toSemiring.{u2} 𝕜 (Semifield.toDivisionSemiring.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{max u1 u3} (ι -> M) (AddMonoid.toAddZeroClass.{max u1 u3} (ι -> M) (AddCommMonoid.toAddMonoid.{max u1 u3} (ι -> M) (OrderedAddCommMonoid.toAddCommMonoid.{max u1 u3} (ι -> M) (Pi.orderedAddCommMonoid.{u1, u3} ι (fun (ᾰ : ι) => M) (fun (i : ι) => _inst_2)))))) (Pi.mulActionWithZero.{u1, u3, u2} ι (fun (ᾰ : ι) => M) 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (DivisionSemiring.toSemiring.{u2} 𝕜 (Semifield.toDivisionSemiring.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 _inst_1)))) (fun (_x : ι) => AddZeroClass.toHasZero.{u3} ((fun (i : ι) => (fun (ᾰ : ι) => M) i) _x) (AddMonoid.toAddZeroClass.{u3} ((fun (i : ι) => (fun (ᾰ : ι) => M) i) _x) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => (fun (ᾰ : ι) => M) i) _x) ((fun (i : ι) => OrderedAddCommMonoid.toAddCommMonoid.{u3} ((fun (ᾰ : ι) => M) i) ((fun (i : ι) => _inst_2) i)) _x)))) (fun (i : ι) => _inst_4)))
-but is expected to have type
- forall {ι : Type.{u1}} {𝕜 : Type.{u2}} {M : Type.{u3}} [_inst_1 : LinearOrderedSemifield.{u2} 𝕜] [_inst_2 : OrderedAddCommMonoid.{u3} M] [_inst_4 : MulActionWithZero.{u2, u3} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (OrderedAddCommMonoid.toAddCommMonoid.{u3} M _inst_2)))] [_inst_6 : OrderedSMul.{u2, u3} 𝕜 M (OrderedCommSemiring.toOrderedSemiring.{u2} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1)))) _inst_2 (MulActionWithZero.toSMulWithZero.{u2, u3} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (OrderedAddCommMonoid.toAddCommMonoid.{u3} M _inst_2))) _inst_4)], OrderedSMul.{u2, max u1 u3} 𝕜 (ι -> M) (OrderedCommSemiring.toOrderedSemiring.{u2} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1)))) (Pi.orderedAddCommMonoid.{u1, u3} ι (fun (ᾰ : ι) => M) (fun (i : ι) => _inst_2)) (Pi.smulWithZero.{u1, u3, u2} ι (fun (a._@.Mathlib.Algebra.Order.SMul._hyg.2033 : ι) => M) 𝕜 (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u2} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))))) (fun (x._@.Mathlib.Data.Pi.Algebra._hyg.111 : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => (fun (i : ι) => (fun (i : ι) => (fun (a._@.Mathlib.Algebra.Order.SMul._hyg.2033 : ι) => M) i) i) i) x._@.Mathlib.Data.Pi.Algebra._hyg.111) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u3} ((fun (i : ι) => (fun (i : ι) => (fun (a._@.Mathlib.Algebra.Order.SMul._hyg.2033 : ι) => M) i) i) i) ((fun (i : ι) => AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => (fun (a._@.Mathlib.Algebra.Order.SMul._hyg.2033 : ι) => M) i) i) ((fun (i : ι) => OrderedAddCommMonoid.toAddCommMonoid.{u3} ((fun (a._@.Mathlib.Algebra.Order.SMul._hyg.2033 : ι) => M) i) ((fun (i : ι) => _inst_2) i)) i)) i)) x._@.Mathlib.Data.Pi.Algebra._hyg.111)) (fun (i : ι) => MulActionWithZero.toSMulWithZero.{u2, u3} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (OrderedAddCommMonoid.toAddCommMonoid.{u3} M _inst_2))) _inst_4))
-Case conversion may be inaccurate. Consider using '#align pi.ordered_smul' Pi.orderedSMul'ₓ'. -/
/- Sometimes Lean fails to apply the dependent version to non-dependent functions, so we define
another instance. -/
instance Pi.orderedSMul' [OrderedSMul 𝕜 M] : OrderedSMul 𝕜 (ι → M) :=
Pi.orderedSMul
#align pi.ordered_smul' Pi.orderedSMul'
-/- warning: pi.ordered_smul'' -> Pi.orderedSMul'' is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {𝕜 : Type.{u2}} [_inst_1 : LinearOrderedSemifield.{u2} 𝕜], OrderedSMul.{u2, max u1 u2} 𝕜 (ι -> 𝕜) (StrictOrderedSemiring.toOrderedSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1)))) (Pi.orderedAddCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => 𝕜) (fun (i : ι) => OrderedSemiring.toOrderedAddCommMonoid.{u2} 𝕜 (StrictOrderedSemiring.toOrderedSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1)))))) (Pi.smulWithZero.{u1, u2, u2} ι (fun (ᾰ : ι) => 𝕜) 𝕜 (MulZeroClass.toHasZero.{u2} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜 (Semiring.toNonAssocSemiring.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 (StrictOrderedSemiring.toOrderedSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))))))) (fun (_x : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => (fun (ᾰ : ι) => 𝕜) i) _x) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => (fun (ᾰ : ι) => 𝕜) i) _x) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => (fun (ᾰ : ι) => 𝕜) i) _x) ((fun (i : ι) => OrderedAddCommMonoid.toAddCommMonoid.{u2} ((fun (ᾰ : ι) => 𝕜) i) ((fun (i : ι) => OrderedSemiring.toOrderedAddCommMonoid.{u2} 𝕜 (StrictOrderedSemiring.toOrderedSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) i)) _x)))) (fun (i : ι) => MulZeroClass.toSMulWithZero.{u2} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜 (Semiring.toNonAssocSemiring.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 (StrictOrderedSemiring.toOrderedSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))))))))
-but is expected to have type
- forall {ι : Type.{u1}} {𝕜 : Type.{u2}} [_inst_1 : LinearOrderedSemifield.{u2} 𝕜], OrderedSMul.{u2, max u1 u2} 𝕜 (ι -> 𝕜) (OrderedCommSemiring.toOrderedSemiring.{u2} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1)))) (Pi.orderedAddCommMonoid.{u1, u2} ι (fun (ᾰ : ι) => 𝕜) (fun (i : ι) => OrderedSemiring.toOrderedAddCommMonoid.{u2} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u2} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1)))))) (Pi.smulWithZero.{u1, u2, u2} ι (fun (ᾰ : ι) => 𝕜) 𝕜 (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u2} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))))) (fun (_x : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => (fun (ᾰ : ι) => (fun (i : ι) => (fun (a._@.Mathlib.Algebra.Order.SMul._hyg.2069 : ι) => 𝕜) i) ᾰ) i) _x) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => (fun (i : ι) => (fun (a._@.Mathlib.Algebra.Order.SMul._hyg.2069 : ι) => 𝕜) i) i) i) ((fun (i : ι) => AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => (fun (a._@.Mathlib.Algebra.Order.SMul._hyg.2069 : ι) => 𝕜) i) i) ((fun (i : ι) => OrderedAddCommMonoid.toAddCommMonoid.{u2} ((fun (a._@.Mathlib.Algebra.Order.SMul._hyg.2069 : ι) => 𝕜) i) ((fun (i : ι) => OrderedSemiring.toOrderedAddCommMonoid.{u2} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u2} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) i)) i)) i)) _x)) (fun (i : ι) => MulZeroClass.toSMulWithZero.{u2} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜 (Semiring.toNonAssocSemiring.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1)))))))))
-Case conversion may be inaccurate. Consider using '#align pi.ordered_smul'' Pi.orderedSMul''ₓ'. -/
-- Sometimes Lean fails to unify the module with the scalars, so we define another instance.
instance Pi.orderedSMul'' : OrderedSMul 𝕜 (ι → 𝕜) :=
@Pi.orderedSMul' ι 𝕜 𝕜 _ _ _ _
@@ -377,12 +251,6 @@ instance Pi.orderedSMul'' : OrderedSMul 𝕜 (ι → 𝕜) :=
variable [OrderedSMul 𝕜 M] {s : Set M} {a b : M} {c : 𝕜}
-/- warning: smul_le_smul_iff_of_pos -> smul_le_smul_iff_of_pos is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {M : Type.{u2}} [_inst_1 : LinearOrderedSemifield.{u1} 𝕜] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_4 : MulActionWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_6 : OrderedSMul.{u1, u2} 𝕜 M (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1)))) _inst_2 (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4)] {a : M} {b : M} {c : 𝕜}, (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedCancelAddCommMonoid.toPartialOrder.{u1} 𝕜 (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))))))))) c) -> (Iff (LE.le.{u2} M (Preorder.toHasLe.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) (SMul.smul.{u1, u2} 𝕜 M (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 M (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4))) c a) (SMul.smul.{u1, u2} 𝕜 M (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 M (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4))) c b)) (LE.le.{u2} M (Preorder.toHasLe.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) a b))
-but is expected to have type
- forall {𝕜 : Type.{u2}} {M : Type.{u1}} [_inst_1 : LinearOrderedSemifield.{u2} 𝕜] [_inst_2 : OrderedAddCommMonoid.{u1} M] [_inst_4 : MulActionWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2)))] [_inst_6 : OrderedSMul.{u2, u1} 𝕜 M (OrderedCommSemiring.toOrderedSemiring.{u2} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1)))) _inst_2 (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_4)] {a : M} {b : M} {c : 𝕜}, (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (StrictOrderedSemiring.toPartialOrder.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1)))))) (OfNat.ofNat.{u2} 𝕜 0 (Zero.toOfNat0.{u2} 𝕜 (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 _inst_1)))))) c) -> (Iff (LE.le.{u1} M (Preorder.toLE.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2))) (HSMul.hSMul.{u2, u1, u1} 𝕜 M M (instHSMul.{u2, u1} 𝕜 M (SMulZeroClass.toSMul.{u2, u1} 𝕜 M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 M (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 _inst_1)))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_4)))) c a) (HSMul.hSMul.{u2, u1, u1} 𝕜 M M (instHSMul.{u2, u1} 𝕜 M (SMulZeroClass.toSMul.{u2, u1} 𝕜 M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 M (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 _inst_1)))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_4)))) c b)) (LE.le.{u1} M (Preorder.toLE.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2))) a b))
-Case conversion may be inaccurate. Consider using '#align smul_le_smul_iff_of_pos smul_le_smul_iff_of_posₓ'. -/
theorem smul_le_smul_iff_of_pos (hc : 0 < c) : c • a ≤ c • b ↔ a ≤ b :=
⟨fun h =>
inv_smul_smul₀ hc.ne' a ▸
@@ -390,54 +258,24 @@ theorem smul_le_smul_iff_of_pos (hc : 0 < c) : c • a ≤ c • b ↔ a ≤ b :
fun h => smul_le_smul_of_nonneg h hc.le⟩
#align smul_le_smul_iff_of_pos smul_le_smul_iff_of_pos
-/- warning: inv_smul_le_iff -> inv_smul_le_iff is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {M : Type.{u2}} [_inst_1 : LinearOrderedSemifield.{u1} 𝕜] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_4 : MulActionWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_6 : OrderedSMul.{u1, u2} 𝕜 M (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1)))) _inst_2 (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4)] {a : M} {b : M} {c : 𝕜}, (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedCancelAddCommMonoid.toPartialOrder.{u1} 𝕜 (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))))))))) c) -> (Iff (LE.le.{u2} M (Preorder.toHasLe.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) (SMul.smul.{u1, u2} 𝕜 M (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 M (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4))) (Inv.inv.{u1} 𝕜 (DivInvMonoid.toHasInv.{u1} 𝕜 (GroupWithZero.toDivInvMonoid.{u1} 𝕜 (DivisionSemiring.toGroupWithZero.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1))))) c) a) b) (LE.le.{u2} M (Preorder.toHasLe.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) a (SMul.smul.{u1, u2} 𝕜 M (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 M (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4))) c b)))
-but is expected to have type
- forall {𝕜 : Type.{u2}} {M : Type.{u1}} [_inst_1 : LinearOrderedSemifield.{u2} 𝕜] [_inst_2 : OrderedAddCommMonoid.{u1} M] [_inst_4 : MulActionWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2)))] [_inst_6 : OrderedSMul.{u2, u1} 𝕜 M (OrderedCommSemiring.toOrderedSemiring.{u2} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1)))) _inst_2 (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_4)] {a : M} {b : M} {c : 𝕜}, (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (StrictOrderedSemiring.toPartialOrder.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1)))))) (OfNat.ofNat.{u2} 𝕜 0 (Zero.toOfNat0.{u2} 𝕜 (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 _inst_1)))))) c) -> (Iff (LE.le.{u1} M (Preorder.toLE.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2))) (HSMul.hSMul.{u2, u1, u1} 𝕜 M M (instHSMul.{u2, u1} 𝕜 M (SMulZeroClass.toSMul.{u2, u1} 𝕜 M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 M (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 _inst_1)))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_4)))) (Inv.inv.{u2} 𝕜 (LinearOrderedSemifield.toInv.{u2} 𝕜 _inst_1) c) a) b) (LE.le.{u1} M (Preorder.toLE.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2))) a (HSMul.hSMul.{u2, u1, u1} 𝕜 M M (instHSMul.{u2, u1} 𝕜 M (SMulZeroClass.toSMul.{u2, u1} 𝕜 M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 M (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 _inst_1)))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_4)))) c b)))
-Case conversion may be inaccurate. Consider using '#align inv_smul_le_iff inv_smul_le_iffₓ'. -/
theorem inv_smul_le_iff (h : 0 < c) : c⁻¹ • a ≤ b ↔ a ≤ c • b := by
rw [← smul_le_smul_iff_of_pos h, smul_inv_smul₀ h.ne']; infer_instance
#align inv_smul_le_iff inv_smul_le_iff
-/- warning: inv_smul_lt_iff -> inv_smul_lt_iff is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {M : Type.{u2}} [_inst_1 : LinearOrderedSemifield.{u1} 𝕜] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_4 : MulActionWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_6 : OrderedSMul.{u1, u2} 𝕜 M (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1)))) _inst_2 (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4)] {a : M} {b : M} {c : 𝕜}, (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedCancelAddCommMonoid.toPartialOrder.{u1} 𝕜 (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))))))))) c) -> (Iff (LT.lt.{u2} M (Preorder.toHasLt.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) (SMul.smul.{u1, u2} 𝕜 M (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 M (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4))) (Inv.inv.{u1} 𝕜 (DivInvMonoid.toHasInv.{u1} 𝕜 (GroupWithZero.toDivInvMonoid.{u1} 𝕜 (DivisionSemiring.toGroupWithZero.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1))))) c) a) b) (LT.lt.{u2} M (Preorder.toHasLt.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) a (SMul.smul.{u1, u2} 𝕜 M (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 M (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4))) c b)))
-but is expected to have type
- forall {𝕜 : Type.{u2}} {M : Type.{u1}} [_inst_1 : LinearOrderedSemifield.{u2} 𝕜] [_inst_2 : OrderedAddCommMonoid.{u1} M] [_inst_4 : MulActionWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2)))] [_inst_6 : OrderedSMul.{u2, u1} 𝕜 M (OrderedCommSemiring.toOrderedSemiring.{u2} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1)))) _inst_2 (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_4)] {a : M} {b : M} {c : 𝕜}, (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (StrictOrderedSemiring.toPartialOrder.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1)))))) (OfNat.ofNat.{u2} 𝕜 0 (Zero.toOfNat0.{u2} 𝕜 (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 _inst_1)))))) c) -> (Iff (LT.lt.{u1} M (Preorder.toLT.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2))) (HSMul.hSMul.{u2, u1, u1} 𝕜 M M (instHSMul.{u2, u1} 𝕜 M (SMulZeroClass.toSMul.{u2, u1} 𝕜 M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 M (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 _inst_1)))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_4)))) (Inv.inv.{u2} 𝕜 (LinearOrderedSemifield.toInv.{u2} 𝕜 _inst_1) c) a) b) (LT.lt.{u1} M (Preorder.toLT.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2))) a (HSMul.hSMul.{u2, u1, u1} 𝕜 M M (instHSMul.{u2, u1} 𝕜 M (SMulZeroClass.toSMul.{u2, u1} 𝕜 M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 M (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 _inst_1)))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_4)))) c b)))
-Case conversion may be inaccurate. Consider using '#align inv_smul_lt_iff inv_smul_lt_iffₓ'. -/
theorem inv_smul_lt_iff (h : 0 < c) : c⁻¹ • a < b ↔ a < c • b := by
rw [← smul_lt_smul_iff_of_pos h, smul_inv_smul₀ h.ne']; infer_instance
#align inv_smul_lt_iff inv_smul_lt_iff
-/- warning: le_inv_smul_iff -> le_inv_smul_iff is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {M : Type.{u2}} [_inst_1 : LinearOrderedSemifield.{u1} 𝕜] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_4 : MulActionWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_6 : OrderedSMul.{u1, u2} 𝕜 M (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1)))) _inst_2 (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4)] {a : M} {b : M} {c : 𝕜}, (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedCancelAddCommMonoid.toPartialOrder.{u1} 𝕜 (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))))))))) c) -> (Iff (LE.le.{u2} M (Preorder.toHasLe.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) a (SMul.smul.{u1, u2} 𝕜 M (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 M (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4))) (Inv.inv.{u1} 𝕜 (DivInvMonoid.toHasInv.{u1} 𝕜 (GroupWithZero.toDivInvMonoid.{u1} 𝕜 (DivisionSemiring.toGroupWithZero.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1))))) c) b)) (LE.le.{u2} M (Preorder.toHasLe.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) (SMul.smul.{u1, u2} 𝕜 M (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 M (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4))) c a) b))
-but is expected to have type
- forall {𝕜 : Type.{u2}} {M : Type.{u1}} [_inst_1 : LinearOrderedSemifield.{u2} 𝕜] [_inst_2 : OrderedAddCommMonoid.{u1} M] [_inst_4 : MulActionWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2)))] [_inst_6 : OrderedSMul.{u2, u1} 𝕜 M (OrderedCommSemiring.toOrderedSemiring.{u2} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1)))) _inst_2 (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_4)] {a : M} {b : M} {c : 𝕜}, (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (StrictOrderedSemiring.toPartialOrder.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1)))))) (OfNat.ofNat.{u2} 𝕜 0 (Zero.toOfNat0.{u2} 𝕜 (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 _inst_1)))))) c) -> (Iff (LE.le.{u1} M (Preorder.toLE.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2))) a (HSMul.hSMul.{u2, u1, u1} 𝕜 M M (instHSMul.{u2, u1} 𝕜 M (SMulZeroClass.toSMul.{u2, u1} 𝕜 M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 M (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 _inst_1)))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_4)))) (Inv.inv.{u2} 𝕜 (LinearOrderedSemifield.toInv.{u2} 𝕜 _inst_1) c) b)) (LE.le.{u1} M (Preorder.toLE.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2))) (HSMul.hSMul.{u2, u1, u1} 𝕜 M M (instHSMul.{u2, u1} 𝕜 M (SMulZeroClass.toSMul.{u2, u1} 𝕜 M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 M (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 _inst_1)))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_4)))) c a) b))
-Case conversion may be inaccurate. Consider using '#align le_inv_smul_iff le_inv_smul_iffₓ'. -/
theorem le_inv_smul_iff (h : 0 < c) : a ≤ c⁻¹ • b ↔ c • a ≤ b := by
rw [← smul_le_smul_iff_of_pos h, smul_inv_smul₀ h.ne']; infer_instance
#align le_inv_smul_iff le_inv_smul_iff
-/- warning: lt_inv_smul_iff -> lt_inv_smul_iff is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {M : Type.{u2}} [_inst_1 : LinearOrderedSemifield.{u1} 𝕜] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_4 : MulActionWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_6 : OrderedSMul.{u1, u2} 𝕜 M (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1)))) _inst_2 (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4)] {a : M} {b : M} {c : 𝕜}, (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedCancelAddCommMonoid.toPartialOrder.{u1} 𝕜 (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))))))))) c) -> (Iff (LT.lt.{u2} M (Preorder.toHasLt.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) a (SMul.smul.{u1, u2} 𝕜 M (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 M (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4))) (Inv.inv.{u1} 𝕜 (DivInvMonoid.toHasInv.{u1} 𝕜 (GroupWithZero.toDivInvMonoid.{u1} 𝕜 (DivisionSemiring.toGroupWithZero.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1))))) c) b)) (LT.lt.{u2} M (Preorder.toHasLt.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) (SMul.smul.{u1, u2} 𝕜 M (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 M (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4))) c a) b))
-but is expected to have type
- forall {𝕜 : Type.{u2}} {M : Type.{u1}} [_inst_1 : LinearOrderedSemifield.{u2} 𝕜] [_inst_2 : OrderedAddCommMonoid.{u1} M] [_inst_4 : MulActionWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2)))] [_inst_6 : OrderedSMul.{u2, u1} 𝕜 M (OrderedCommSemiring.toOrderedSemiring.{u2} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1)))) _inst_2 (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_4)] {a : M} {b : M} {c : 𝕜}, (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (StrictOrderedSemiring.toPartialOrder.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1)))))) (OfNat.ofNat.{u2} 𝕜 0 (Zero.toOfNat0.{u2} 𝕜 (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 _inst_1)))))) c) -> (Iff (LT.lt.{u1} M (Preorder.toLT.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2))) a (HSMul.hSMul.{u2, u1, u1} 𝕜 M M (instHSMul.{u2, u1} 𝕜 M (SMulZeroClass.toSMul.{u2, u1} 𝕜 M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 M (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 _inst_1)))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_4)))) (Inv.inv.{u2} 𝕜 (LinearOrderedSemifield.toInv.{u2} 𝕜 _inst_1) c) b)) (LT.lt.{u1} M (Preorder.toLT.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2))) (HSMul.hSMul.{u2, u1, u1} 𝕜 M M (instHSMul.{u2, u1} 𝕜 M (SMulZeroClass.toSMul.{u2, u1} 𝕜 M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 M (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 _inst_1)))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_4)))) c a) b))
-Case conversion may be inaccurate. Consider using '#align lt_inv_smul_iff lt_inv_smul_iffₓ'. -/
theorem lt_inv_smul_iff (h : 0 < c) : a < c⁻¹ • b ↔ c • a < b := by
rw [← smul_lt_smul_iff_of_pos h, smul_inv_smul₀ h.ne']; infer_instance
#align lt_inv_smul_iff lt_inv_smul_iff
variable (M)
-/- warning: order_iso.smul_left -> OrderIso.smulLeft is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} (M : Type.{u2}) [_inst_1 : LinearOrderedSemifield.{u1} 𝕜] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_4 : MulActionWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_6 : OrderedSMul.{u1, u2} 𝕜 M (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1)))) _inst_2 (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4)] {c : 𝕜}, (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedCancelAddCommMonoid.toPartialOrder.{u1} 𝕜 (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))))))))) c) -> (OrderIso.{u2, u2} M M (Preorder.toHasLe.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) (Preorder.toHasLe.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))))
-but is expected to have type
- forall {𝕜 : Type.{u1}} (M : Type.{u2}) [_inst_1 : LinearOrderedSemifield.{u1} 𝕜] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_4 : MulActionWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (StrictOrderedSemiring.toSemiring.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1))))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))] [_inst_6 : OrderedSMul.{u1, u2} 𝕜 M (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1)))) _inst_2 (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (StrictOrderedSemiring.toSemiring.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1))))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))) _inst_4)] {c : 𝕜}, (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (StrictOrderedSemiring.toPartialOrder.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1)))))) (OfNat.ofNat.{u1} 𝕜 0 (Zero.toOfNat0.{u1} 𝕜 (CommMonoidWithZero.toZero.{u1} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u1} 𝕜 (Semifield.toCommGroupWithZero.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))))) c) -> (OrderIso.{u2, u2} M M (Preorder.toLE.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) (Preorder.toLE.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))))
-Case conversion may be inaccurate. Consider using '#align order_iso.smul_left OrderIso.smulLeftₓ'. -/
/-- Left scalar multiplication as an order isomorphism. -/
@[simps]
def OrderIso.smulLeft (hc : 0 < c) : M ≃o M
@@ -451,45 +289,21 @@ def OrderIso.smulLeft (hc : 0 < c) : M ≃o M
variable {M}
-/- warning: lower_bounds_smul_of_pos -> lowerBounds_smul_of_pos is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {M : Type.{u2}} [_inst_1 : LinearOrderedSemifield.{u1} 𝕜] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_4 : MulActionWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_6 : OrderedSMul.{u1, u2} 𝕜 M (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1)))) _inst_2 (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4)] {s : Set.{u2} M} {c : 𝕜}, (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedCancelAddCommMonoid.toPartialOrder.{u1} 𝕜 (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))))))))) c) -> (Eq.{succ u2} (Set.{u2} M) (lowerBounds.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2)) (SMul.smul.{u1, u2} 𝕜 (Set.{u2} M) (Set.smulSet.{u1, u2} 𝕜 M (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 M (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4)))) c s)) (SMul.smul.{u1, u2} 𝕜 (Set.{u2} M) (Set.smulSet.{u1, u2} 𝕜 M (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 M (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4)))) c (lowerBounds.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2)) s)))
-but is expected to have type
- forall {𝕜 : Type.{u2}} {M : Type.{u1}} [_inst_1 : LinearOrderedSemifield.{u2} 𝕜] [_inst_2 : OrderedAddCommMonoid.{u1} M] [_inst_4 : MulActionWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2)))] [_inst_6 : OrderedSMul.{u2, u1} 𝕜 M (OrderedCommSemiring.toOrderedSemiring.{u2} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1)))) _inst_2 (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_4)] {s : Set.{u1} M} {c : 𝕜}, (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (StrictOrderedSemiring.toPartialOrder.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1)))))) (OfNat.ofNat.{u2} 𝕜 0 (Zero.toOfNat0.{u2} 𝕜 (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 _inst_1)))))) c) -> (Eq.{succ u1} (Set.{u1} M) (lowerBounds.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2)) (HSMul.hSMul.{u2, u1, u1} 𝕜 (Set.{u1} M) (Set.{u1} M) (instHSMul.{u2, u1} 𝕜 (Set.{u1} M) (Set.smulSet.{u2, u1} 𝕜 M (SMulZeroClass.toSMul.{u2, u1} 𝕜 M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 M (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 _inst_1)))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_4))))) c s)) (HSMul.hSMul.{u2, u1, u1} 𝕜 (Set.{u1} M) (Set.{u1} M) (instHSMul.{u2, u1} 𝕜 (Set.{u1} M) (Set.smulSet.{u2, u1} 𝕜 M (SMulZeroClass.toSMul.{u2, u1} 𝕜 M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 M (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 _inst_1)))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_4))))) c (lowerBounds.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2)) s)))
-Case conversion may be inaccurate. Consider using '#align lower_bounds_smul_of_pos lowerBounds_smul_of_posₓ'. -/
@[simp]
theorem lowerBounds_smul_of_pos (hc : 0 < c) : lowerBounds (c • s) = c • lowerBounds s :=
(OrderIso.smulLeft _ hc).lowerBounds_image
#align lower_bounds_smul_of_pos lowerBounds_smul_of_pos
-/- warning: upper_bounds_smul_of_pos -> upperBounds_smul_of_pos is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {M : Type.{u2}} [_inst_1 : LinearOrderedSemifield.{u1} 𝕜] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_4 : MulActionWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_6 : OrderedSMul.{u1, u2} 𝕜 M (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1)))) _inst_2 (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4)] {s : Set.{u2} M} {c : 𝕜}, (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedCancelAddCommMonoid.toPartialOrder.{u1} 𝕜 (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))))))))) c) -> (Eq.{succ u2} (Set.{u2} M) (upperBounds.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2)) (SMul.smul.{u1, u2} 𝕜 (Set.{u2} M) (Set.smulSet.{u1, u2} 𝕜 M (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 M (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4)))) c s)) (SMul.smul.{u1, u2} 𝕜 (Set.{u2} M) (Set.smulSet.{u1, u2} 𝕜 M (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 M (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4)))) c (upperBounds.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2)) s)))
-but is expected to have type
- forall {𝕜 : Type.{u2}} {M : Type.{u1}} [_inst_1 : LinearOrderedSemifield.{u2} 𝕜] [_inst_2 : OrderedAddCommMonoid.{u1} M] [_inst_4 : MulActionWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2)))] [_inst_6 : OrderedSMul.{u2, u1} 𝕜 M (OrderedCommSemiring.toOrderedSemiring.{u2} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1)))) _inst_2 (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_4)] {s : Set.{u1} M} {c : 𝕜}, (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (StrictOrderedSemiring.toPartialOrder.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1)))))) (OfNat.ofNat.{u2} 𝕜 0 (Zero.toOfNat0.{u2} 𝕜 (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 _inst_1)))))) c) -> (Eq.{succ u1} (Set.{u1} M) (upperBounds.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2)) (HSMul.hSMul.{u2, u1, u1} 𝕜 (Set.{u1} M) (Set.{u1} M) (instHSMul.{u2, u1} 𝕜 (Set.{u1} M) (Set.smulSet.{u2, u1} 𝕜 M (SMulZeroClass.toSMul.{u2, u1} 𝕜 M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 M (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 _inst_1)))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_4))))) c s)) (HSMul.hSMul.{u2, u1, u1} 𝕜 (Set.{u1} M) (Set.{u1} M) (instHSMul.{u2, u1} 𝕜 (Set.{u1} M) (Set.smulSet.{u2, u1} 𝕜 M (SMulZeroClass.toSMul.{u2, u1} 𝕜 M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 M (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 _inst_1)))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_4))))) c (upperBounds.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2)) s)))
-Case conversion may be inaccurate. Consider using '#align upper_bounds_smul_of_pos upperBounds_smul_of_posₓ'. -/
@[simp]
theorem upperBounds_smul_of_pos (hc : 0 < c) : upperBounds (c • s) = c • upperBounds s :=
(OrderIso.smulLeft _ hc).upperBounds_image
#align upper_bounds_smul_of_pos upperBounds_smul_of_pos
-/- warning: bdd_below_smul_iff_of_pos -> bddBelow_smul_iff_of_pos is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {M : Type.{u2}} [_inst_1 : LinearOrderedSemifield.{u1} 𝕜] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_4 : MulActionWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_6 : OrderedSMul.{u1, u2} 𝕜 M (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1)))) _inst_2 (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4)] {s : Set.{u2} M} {c : 𝕜}, (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedCancelAddCommMonoid.toPartialOrder.{u1} 𝕜 (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))))))))) c) -> (Iff (BddBelow.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2)) (SMul.smul.{u1, u2} 𝕜 (Set.{u2} M) (Set.smulSet.{u1, u2} 𝕜 M (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 M (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4)))) c s)) (BddBelow.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2)) s))
-but is expected to have type
- forall {𝕜 : Type.{u2}} {M : Type.{u1}} [_inst_1 : LinearOrderedSemifield.{u2} 𝕜] [_inst_2 : OrderedAddCommMonoid.{u1} M] [_inst_4 : MulActionWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2)))] [_inst_6 : OrderedSMul.{u2, u1} 𝕜 M (OrderedCommSemiring.toOrderedSemiring.{u2} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1)))) _inst_2 (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_4)] {s : Set.{u1} M} {c : 𝕜}, (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (StrictOrderedSemiring.toPartialOrder.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1)))))) (OfNat.ofNat.{u2} 𝕜 0 (Zero.toOfNat0.{u2} 𝕜 (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 _inst_1)))))) c) -> (Iff (BddBelow.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2)) (HSMul.hSMul.{u2, u1, u1} 𝕜 (Set.{u1} M) (Set.{u1} M) (instHSMul.{u2, u1} 𝕜 (Set.{u1} M) (Set.smulSet.{u2, u1} 𝕜 M (SMulZeroClass.toSMul.{u2, u1} 𝕜 M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 M (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 _inst_1)))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_4))))) c s)) (BddBelow.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2)) s))
-Case conversion may be inaccurate. Consider using '#align bdd_below_smul_iff_of_pos bddBelow_smul_iff_of_posₓ'. -/
@[simp]
theorem bddBelow_smul_iff_of_pos (hc : 0 < c) : BddBelow (c • s) ↔ BddBelow s :=
(OrderIso.smulLeft _ hc).bddBelow_image
#align bdd_below_smul_iff_of_pos bddBelow_smul_iff_of_pos
-/- warning: bdd_above_smul_iff_of_pos -> bddAbove_smul_iff_of_pos is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {M : Type.{u2}} [_inst_1 : LinearOrderedSemifield.{u1} 𝕜] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_4 : MulActionWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_6 : OrderedSMul.{u1, u2} 𝕜 M (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1)))) _inst_2 (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4)] {s : Set.{u2} M} {c : 𝕜}, (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedCancelAddCommMonoid.toPartialOrder.{u1} 𝕜 (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))))))))) c) -> (Iff (BddAbove.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2)) (SMul.smul.{u1, u2} 𝕜 (Set.{u2} M) (Set.smulSet.{u1, u2} 𝕜 M (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 M (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4)))) c s)) (BddAbove.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2)) s))
-but is expected to have type
- forall {𝕜 : Type.{u2}} {M : Type.{u1}} [_inst_1 : LinearOrderedSemifield.{u2} 𝕜] [_inst_2 : OrderedAddCommMonoid.{u1} M] [_inst_4 : MulActionWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2)))] [_inst_6 : OrderedSMul.{u2, u1} 𝕜 M (OrderedCommSemiring.toOrderedSemiring.{u2} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1)))) _inst_2 (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_4)] {s : Set.{u1} M} {c : 𝕜}, (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (StrictOrderedSemiring.toPartialOrder.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1)))))) (OfNat.ofNat.{u2} 𝕜 0 (Zero.toOfNat0.{u2} 𝕜 (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 _inst_1)))))) c) -> (Iff (BddAbove.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2)) (HSMul.hSMul.{u2, u1, u1} 𝕜 (Set.{u1} M) (Set.{u1} M) (instHSMul.{u2, u1} 𝕜 (Set.{u1} M) (Set.smulSet.{u2, u1} 𝕜 M (SMulZeroClass.toSMul.{u2, u1} 𝕜 M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 M (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 _inst_1)))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_4))))) c s)) (BddAbove.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2)) s))
-Case conversion may be inaccurate. Consider using '#align bdd_above_smul_iff_of_pos bddAbove_smul_iff_of_posₓ'. -/
@[simp]
theorem bddAbove_smul_iff_of_pos (hc : 0 < c) : BddAbove (c • s) ↔ BddAbove s :=
(OrderIso.smulLeft _ hc).bddAbove_image
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -396,10 +396,8 @@ lean 3 declaration is
but is expected to have type
forall {𝕜 : Type.{u2}} {M : Type.{u1}} [_inst_1 : LinearOrderedSemifield.{u2} 𝕜] [_inst_2 : OrderedAddCommMonoid.{u1} M] [_inst_4 : MulActionWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2)))] [_inst_6 : OrderedSMul.{u2, u1} 𝕜 M (OrderedCommSemiring.toOrderedSemiring.{u2} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1)))) _inst_2 (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_4)] {a : M} {b : M} {c : 𝕜}, (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (StrictOrderedSemiring.toPartialOrder.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1)))))) (OfNat.ofNat.{u2} 𝕜 0 (Zero.toOfNat0.{u2} 𝕜 (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 _inst_1)))))) c) -> (Iff (LE.le.{u1} M (Preorder.toLE.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2))) (HSMul.hSMul.{u2, u1, u1} 𝕜 M M (instHSMul.{u2, u1} 𝕜 M (SMulZeroClass.toSMul.{u2, u1} 𝕜 M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 M (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 _inst_1)))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_4)))) (Inv.inv.{u2} 𝕜 (LinearOrderedSemifield.toInv.{u2} 𝕜 _inst_1) c) a) b) (LE.le.{u1} M (Preorder.toLE.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2))) a (HSMul.hSMul.{u2, u1, u1} 𝕜 M M (instHSMul.{u2, u1} 𝕜 M (SMulZeroClass.toSMul.{u2, u1} 𝕜 M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 M (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 _inst_1)))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_4)))) c b)))
Case conversion may be inaccurate. Consider using '#align inv_smul_le_iff inv_smul_le_iffₓ'. -/
-theorem inv_smul_le_iff (h : 0 < c) : c⁻¹ • a ≤ b ↔ a ≤ c • b :=
- by
- rw [← smul_le_smul_iff_of_pos h, smul_inv_smul₀ h.ne']
- infer_instance
+theorem inv_smul_le_iff (h : 0 < c) : c⁻¹ • a ≤ b ↔ a ≤ c • b := by
+ rw [← smul_le_smul_iff_of_pos h, smul_inv_smul₀ h.ne']; infer_instance
#align inv_smul_le_iff inv_smul_le_iff
/- warning: inv_smul_lt_iff -> inv_smul_lt_iff is a dubious translation:
@@ -408,10 +406,8 @@ lean 3 declaration is
but is expected to have type
forall {𝕜 : Type.{u2}} {M : Type.{u1}} [_inst_1 : LinearOrderedSemifield.{u2} 𝕜] [_inst_2 : OrderedAddCommMonoid.{u1} M] [_inst_4 : MulActionWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2)))] [_inst_6 : OrderedSMul.{u2, u1} 𝕜 M (OrderedCommSemiring.toOrderedSemiring.{u2} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1)))) _inst_2 (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_4)] {a : M} {b : M} {c : 𝕜}, (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (StrictOrderedSemiring.toPartialOrder.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1)))))) (OfNat.ofNat.{u2} 𝕜 0 (Zero.toOfNat0.{u2} 𝕜 (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 _inst_1)))))) c) -> (Iff (LT.lt.{u1} M (Preorder.toLT.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2))) (HSMul.hSMul.{u2, u1, u1} 𝕜 M M (instHSMul.{u2, u1} 𝕜 M (SMulZeroClass.toSMul.{u2, u1} 𝕜 M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 M (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 _inst_1)))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_4)))) (Inv.inv.{u2} 𝕜 (LinearOrderedSemifield.toInv.{u2} 𝕜 _inst_1) c) a) b) (LT.lt.{u1} M (Preorder.toLT.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2))) a (HSMul.hSMul.{u2, u1, u1} 𝕜 M M (instHSMul.{u2, u1} 𝕜 M (SMulZeroClass.toSMul.{u2, u1} 𝕜 M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 M (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 _inst_1)))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_4)))) c b)))
Case conversion may be inaccurate. Consider using '#align inv_smul_lt_iff inv_smul_lt_iffₓ'. -/
-theorem inv_smul_lt_iff (h : 0 < c) : c⁻¹ • a < b ↔ a < c • b :=
- by
- rw [← smul_lt_smul_iff_of_pos h, smul_inv_smul₀ h.ne']
- infer_instance
+theorem inv_smul_lt_iff (h : 0 < c) : c⁻¹ • a < b ↔ a < c • b := by
+ rw [← smul_lt_smul_iff_of_pos h, smul_inv_smul₀ h.ne']; infer_instance
#align inv_smul_lt_iff inv_smul_lt_iff
/- warning: le_inv_smul_iff -> le_inv_smul_iff is a dubious translation:
@@ -420,10 +416,8 @@ lean 3 declaration is
but is expected to have type
forall {𝕜 : Type.{u2}} {M : Type.{u1}} [_inst_1 : LinearOrderedSemifield.{u2} 𝕜] [_inst_2 : OrderedAddCommMonoid.{u1} M] [_inst_4 : MulActionWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2)))] [_inst_6 : OrderedSMul.{u2, u1} 𝕜 M (OrderedCommSemiring.toOrderedSemiring.{u2} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1)))) _inst_2 (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_4)] {a : M} {b : M} {c : 𝕜}, (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (StrictOrderedSemiring.toPartialOrder.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1)))))) (OfNat.ofNat.{u2} 𝕜 0 (Zero.toOfNat0.{u2} 𝕜 (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 _inst_1)))))) c) -> (Iff (LE.le.{u1} M (Preorder.toLE.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2))) a (HSMul.hSMul.{u2, u1, u1} 𝕜 M M (instHSMul.{u2, u1} 𝕜 M (SMulZeroClass.toSMul.{u2, u1} 𝕜 M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 M (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 _inst_1)))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_4)))) (Inv.inv.{u2} 𝕜 (LinearOrderedSemifield.toInv.{u2} 𝕜 _inst_1) c) b)) (LE.le.{u1} M (Preorder.toLE.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2))) (HSMul.hSMul.{u2, u1, u1} 𝕜 M M (instHSMul.{u2, u1} 𝕜 M (SMulZeroClass.toSMul.{u2, u1} 𝕜 M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 M (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 _inst_1)))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_4)))) c a) b))
Case conversion may be inaccurate. Consider using '#align le_inv_smul_iff le_inv_smul_iffₓ'. -/
-theorem le_inv_smul_iff (h : 0 < c) : a ≤ c⁻¹ • b ↔ c • a ≤ b :=
- by
- rw [← smul_le_smul_iff_of_pos h, smul_inv_smul₀ h.ne']
- infer_instance
+theorem le_inv_smul_iff (h : 0 < c) : a ≤ c⁻¹ • b ↔ c • a ≤ b := by
+ rw [← smul_le_smul_iff_of_pos h, smul_inv_smul₀ h.ne']; infer_instance
#align le_inv_smul_iff le_inv_smul_iff
/- warning: lt_inv_smul_iff -> lt_inv_smul_iff is a dubious translation:
@@ -432,10 +426,8 @@ lean 3 declaration is
but is expected to have type
forall {𝕜 : Type.{u2}} {M : Type.{u1}} [_inst_1 : LinearOrderedSemifield.{u2} 𝕜] [_inst_2 : OrderedAddCommMonoid.{u1} M] [_inst_4 : MulActionWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2)))] [_inst_6 : OrderedSMul.{u2, u1} 𝕜 M (OrderedCommSemiring.toOrderedSemiring.{u2} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1)))) _inst_2 (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_4)] {a : M} {b : M} {c : 𝕜}, (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (StrictOrderedSemiring.toPartialOrder.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1)))))) (OfNat.ofNat.{u2} 𝕜 0 (Zero.toOfNat0.{u2} 𝕜 (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 _inst_1)))))) c) -> (Iff (LT.lt.{u1} M (Preorder.toLT.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2))) a (HSMul.hSMul.{u2, u1, u1} 𝕜 M M (instHSMul.{u2, u1} 𝕜 M (SMulZeroClass.toSMul.{u2, u1} 𝕜 M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 M (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 _inst_1)))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_4)))) (Inv.inv.{u2} 𝕜 (LinearOrderedSemifield.toInv.{u2} 𝕜 _inst_1) c) b)) (LT.lt.{u1} M (Preorder.toLT.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2))) (HSMul.hSMul.{u2, u1, u1} 𝕜 M M (instHSMul.{u2, u1} 𝕜 M (SMulZeroClass.toSMul.{u2, u1} 𝕜 M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 M (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 _inst_1)))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_4)))) c a) b))
Case conversion may be inaccurate. Consider using '#align lt_inv_smul_iff lt_inv_smul_iffₓ'. -/
-theorem lt_inv_smul_iff (h : 0 < c) : a < c⁻¹ • b ↔ c • a < b :=
- by
- rw [← smul_lt_smul_iff_of_pos h, smul_inv_smul₀ h.ne']
- infer_instance
+theorem lt_inv_smul_iff (h : 0 < c) : a < c⁻¹ • b ↔ c • a < b := by
+ rw [← smul_lt_smul_iff_of_pos h, smul_inv_smul₀ h.ne']; infer_instance
#align lt_inv_smul_iff lt_inv_smul_iff
variable (M)
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -514,11 +514,9 @@ variable [OrderedSemiring R] [OrderedAddCommMonoid M] [SMulWithZero R M] [Ordere
private theorem smul_nonneg_of_pos_of_nonneg (ha : 0 < a) (hb : 0 ≤ b) : 0 ≤ a • b :=
smul_nonneg ha.le hb
-#align tactic.smul_nonneg_of_pos_of_nonneg tactic.smul_nonneg_of_pos_of_nonneg
private theorem smul_nonneg_of_nonneg_of_pos (ha : 0 ≤ a) (hb : 0 < b) : 0 ≤ a • b :=
smul_nonneg ha hb.le
-#align tactic.smul_nonneg_of_nonneg_of_pos tactic.smul_nonneg_of_nonneg_of_pos
end OrderedSMul
@@ -528,11 +526,9 @@ variable [Zero R] [Zero M] [SMul R M] [NoZeroSMulDivisors R M] {a : R} {b : M}
private theorem smul_ne_zero_of_pos_of_ne_zero [Preorder R] (ha : 0 < a) (hb : b ≠ 0) : a • b ≠ 0 :=
smul_ne_zero ha.ne' hb
-#align tactic.smul_ne_zero_of_pos_of_ne_zero tactic.smul_ne_zero_of_pos_of_ne_zero
private theorem smul_ne_zero_of_ne_zero_of_pos [Preorder M] (ha : a ≠ 0) (hb : 0 < b) : a • b ≠ 0 :=
smul_ne_zero ha hb.ne'
-#align tactic.smul_ne_zero_of_ne_zero_of_pos tactic.smul_ne_zero_of_ne_zero_of_pos
end NoZeroSMulDivisors
mathlib commit https://github.com/leanprover-community/mathlib/commit/0b9eaaa7686280fad8cce467f5c3c57ee6ce77f8
@@ -101,7 +101,7 @@ variable [OrderedSemiring R] [OrderedAddCommMonoid M] [SMulWithZero R M] [Ordere
/- warning: smul_lt_smul_of_pos -> smul_lt_smul_of_pos is a dubious translation:
lean 3 declaration is
- forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} R] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_3 : SMulWithZero.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_4 : OrderedSMul.{u1, u2} R M _inst_1 _inst_2 _inst_3] {a : M} {b : M} {c : R}, (LT.lt.{u2} M (Preorder.toLT.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) a b) -> (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommMonoid.toPartialOrder.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R _inst_1)))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1)))))))) c) -> (LT.lt.{u2} M (Preorder.toLT.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_3)) c a) (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_3)) c b))
+ forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} R] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_3 : SMulWithZero.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_4 : OrderedSMul.{u1, u2} R M _inst_1 _inst_2 _inst_3] {a : M} {b : M} {c : R}, (LT.lt.{u2} M (Preorder.toHasLt.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) a b) -> (LT.lt.{u1} R (Preorder.toHasLt.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommMonoid.toPartialOrder.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R _inst_1)))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1)))))))) c) -> (LT.lt.{u2} M (Preorder.toHasLt.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_3)) c a) (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_3)) c b))
but is expected to have type
forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} R] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_3 : SMulWithZero.{u1, u2} R M (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))] [_inst_4 : OrderedSMul.{u1, u2} R M _inst_1 _inst_2 _inst_3] {a : M} {b : M} {c : R}, (LT.lt.{u2} M (Preorder.toLT.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) a b) -> (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedSemiring.toPartialOrder.{u1} R _inst_1))) (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) c) -> (LT.lt.{u2} M (Preorder.toLT.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) (HSMul.hSMul.{u1, u2, u2} R M M (instHSMul.{u1, u2} R M (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))) _inst_3))) c a) (HSMul.hSMul.{u1, u2, u2} R M M (instHSMul.{u1, u2} R M (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))) _inst_3))) c b))
Case conversion may be inaccurate. Consider using '#align smul_lt_smul_of_pos smul_lt_smul_of_posₓ'. -/
@@ -111,7 +111,7 @@ theorem smul_lt_smul_of_pos : a < b → 0 < c → c • a < c • b :=
/- warning: smul_le_smul_of_nonneg -> smul_le_smul_of_nonneg is a dubious translation:
lean 3 declaration is
- forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} R] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_3 : SMulWithZero.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_4 : OrderedSMul.{u1, u2} R M _inst_1 _inst_2 _inst_3] {a : M} {b : M} {c : R}, (LE.le.{u2} M (Preorder.toLE.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) a b) -> (LE.le.{u1} R (Preorder.toLE.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommMonoid.toPartialOrder.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R _inst_1)))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1)))))))) c) -> (LE.le.{u2} M (Preorder.toLE.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_3)) c a) (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_3)) c b))
+ forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} R] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_3 : SMulWithZero.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_4 : OrderedSMul.{u1, u2} R M _inst_1 _inst_2 _inst_3] {a : M} {b : M} {c : R}, (LE.le.{u2} M (Preorder.toHasLe.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) a b) -> (LE.le.{u1} R (Preorder.toHasLe.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommMonoid.toPartialOrder.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R _inst_1)))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1)))))))) c) -> (LE.le.{u2} M (Preorder.toHasLe.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_3)) c a) (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_3)) c b))
but is expected to have type
forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} R] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_3 : SMulWithZero.{u1, u2} R M (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))] [_inst_4 : OrderedSMul.{u1, u2} R M _inst_1 _inst_2 _inst_3] {a : M} {b : M} {c : R}, (LE.le.{u2} M (Preorder.toLE.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) a b) -> (LE.le.{u1} R (Preorder.toLE.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedSemiring.toPartialOrder.{u1} R _inst_1))) (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) c) -> (LE.le.{u2} M (Preorder.toLE.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) (HSMul.hSMul.{u1, u2, u2} R M M (instHSMul.{u1, u2} R M (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))) _inst_3))) c a) (HSMul.hSMul.{u1, u2, u2} R M M (instHSMul.{u1, u2} R M (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))) _inst_3))) c b))
Case conversion may be inaccurate. Consider using '#align smul_le_smul_of_nonneg smul_le_smul_of_nonnegₓ'. -/
@@ -126,7 +126,7 @@ theorem smul_le_smul_of_nonneg (h₁ : a ≤ b) (h₂ : 0 ≤ c) : c • a ≤ c
/- warning: smul_nonneg -> smul_nonneg is a dubious translation:
lean 3 declaration is
- forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} R] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_3 : SMulWithZero.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_4 : OrderedSMul.{u1, u2} R M _inst_1 _inst_2 _inst_3] {a : M} {c : R}, (LE.le.{u1} R (Preorder.toLE.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommMonoid.toPartialOrder.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R _inst_1)))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1)))))))) c) -> (LE.le.{u2} M (Preorder.toLE.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.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 (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))))) a) -> (LE.le.{u2} M (Preorder.toLE.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.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 (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))))) (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_3)) c a))
+ forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} R] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_3 : SMulWithZero.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_4 : OrderedSMul.{u1, u2} R M _inst_1 _inst_2 _inst_3] {a : M} {c : R}, (LE.le.{u1} R (Preorder.toHasLe.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommMonoid.toPartialOrder.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R _inst_1)))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1)))))))) c) -> (LE.le.{u2} M (Preorder.toHasLe.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.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 (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))))) a) -> (LE.le.{u2} M (Preorder.toHasLe.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.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 (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))))) (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_3)) c a))
but is expected to have type
forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} R] [_inst_2 : OrderedAddCommMonoid.{u1} M] [_inst_3 : SMulWithZero.{u2, u1} R M (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (OrderedSemiring.toSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2)))] [_inst_4 : OrderedSMul.{u2, u1} R M _inst_1 _inst_2 _inst_3] {a : M} {c : R}, (LE.le.{u2} R (Preorder.toLE.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedSemiring.toPartialOrder.{u2} R _inst_1))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (OrderedSemiring.toSemiring.{u2} R _inst_1))))) c) -> (LE.le.{u1} M (Preorder.toLE.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2))) (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))))) a) -> (LE.le.{u1} M (Preorder.toLE.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2))) (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))))) (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (OrderedSemiring.toSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_3))) c a))
Case conversion may be inaccurate. Consider using '#align smul_nonneg smul_nonnegₓ'. -/
@@ -139,7 +139,7 @@ theorem smul_nonneg (hc : 0 ≤ c) (ha : 0 ≤ a) : 0 ≤ c • a :=
/- warning: smul_nonpos_of_nonneg_of_nonpos -> smul_nonpos_of_nonneg_of_nonpos is a dubious translation:
lean 3 declaration is
- forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} R] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_3 : SMulWithZero.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_4 : OrderedSMul.{u1, u2} R M _inst_1 _inst_2 _inst_3] {a : M} {c : R}, (LE.le.{u1} R (Preorder.toLE.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommMonoid.toPartialOrder.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R _inst_1)))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1)))))))) c) -> (LE.le.{u2} M (Preorder.toLE.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.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 (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))))))) -> (LE.le.{u2} M (Preorder.toLE.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{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 (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))))))
+ forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} R] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_3 : SMulWithZero.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_4 : OrderedSMul.{u1, u2} R M _inst_1 _inst_2 _inst_3] {a : M} {c : R}, (LE.le.{u1} R (Preorder.toHasLe.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommMonoid.toPartialOrder.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R _inst_1)))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1)))))))) c) -> (LE.le.{u2} M (Preorder.toHasLe.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.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 (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))))))) -> (LE.le.{u2} M (Preorder.toHasLe.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{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 (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))))))
but is expected to have type
forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} R] [_inst_2 : OrderedAddCommMonoid.{u1} M] [_inst_3 : SMulWithZero.{u2, u1} R M (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (OrderedSemiring.toSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2)))] [_inst_4 : OrderedSMul.{u2, u1} R M _inst_1 _inst_2 _inst_3] {a : M} {c : R}, (LE.le.{u2} R (Preorder.toLE.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedSemiring.toPartialOrder.{u2} R _inst_1))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (OrderedSemiring.toSemiring.{u2} R _inst_1))))) c) -> (LE.le.{u1} M (Preorder.toLE.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2))) a (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2)))))) -> (LE.le.{u1} M (Preorder.toLE.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2))) (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (OrderedSemiring.toSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_3))) c a) (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))))))
Case conversion may be inaccurate. Consider using '#align smul_nonpos_of_nonneg_of_nonpos smul_nonpos_of_nonneg_of_nonposₓ'. -/
@@ -149,7 +149,7 @@ theorem smul_nonpos_of_nonneg_of_nonpos (hc : 0 ≤ c) (ha : a ≤ 0) : c • a
/- warning: eq_of_smul_eq_smul_of_pos_of_le -> eq_of_smul_eq_smul_of_pos_of_le is a dubious translation:
lean 3 declaration is
- forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} R] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_3 : SMulWithZero.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_4 : OrderedSMul.{u1, u2} R M _inst_1 _inst_2 _inst_3] {a : M} {b : M} {c : R}, (Eq.{succ u2} M (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_3)) c a) (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_3)) c b)) -> (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommMonoid.toPartialOrder.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R _inst_1)))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1)))))))) c) -> (LE.le.{u2} M (Preorder.toLE.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) a b) -> (Eq.{succ u2} M a b)
+ forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} R] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_3 : SMulWithZero.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_4 : OrderedSMul.{u1, u2} R M _inst_1 _inst_2 _inst_3] {a : M} {b : M} {c : R}, (Eq.{succ u2} M (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_3)) c a) (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_3)) c b)) -> (LT.lt.{u1} R (Preorder.toHasLt.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommMonoid.toPartialOrder.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R _inst_1)))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1)))))))) c) -> (LE.le.{u2} M (Preorder.toHasLe.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) a b) -> (Eq.{succ u2} M a b)
but is expected to have type
forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} R] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_3 : SMulWithZero.{u1, u2} R M (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))] [_inst_4 : OrderedSMul.{u1, u2} R M _inst_1 _inst_2 _inst_3] {a : M} {b : M} {c : R}, (Eq.{succ u2} M (HSMul.hSMul.{u1, u2, u2} R M M (instHSMul.{u1, u2} R M (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))) _inst_3))) c a) (HSMul.hSMul.{u1, u2, u2} R M M (instHSMul.{u1, u2} R M (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))) _inst_3))) c b)) -> (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedSemiring.toPartialOrder.{u1} R _inst_1))) (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) c) -> (LE.le.{u2} M (Preorder.toLE.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.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_pos_of_le eq_of_smul_eq_smul_of_pos_of_leₓ'. -/
@@ -159,7 +159,7 @@ theorem eq_of_smul_eq_smul_of_pos_of_le (h₁ : c • a = c • b) (hc : 0 < c)
/- warning: lt_of_smul_lt_smul_of_nonneg -> lt_of_smul_lt_smul_of_nonneg is a dubious translation:
lean 3 declaration is
- forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} R] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_3 : SMulWithZero.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_4 : OrderedSMul.{u1, u2} R M _inst_1 _inst_2 _inst_3] {a : M} {b : M} {c : R}, (LT.lt.{u2} M (Preorder.toLT.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_3)) c a) (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_3)) c b)) -> (LE.le.{u1} R (Preorder.toLE.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommMonoid.toPartialOrder.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R _inst_1)))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1)))))))) c) -> (LT.lt.{u2} M (Preorder.toLT.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) a b)
+ forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} R] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_3 : SMulWithZero.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_4 : OrderedSMul.{u1, u2} R M _inst_1 _inst_2 _inst_3] {a : M} {b : M} {c : R}, (LT.lt.{u2} M (Preorder.toHasLt.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_3)) c a) (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_3)) c b)) -> (LE.le.{u1} R (Preorder.toHasLe.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommMonoid.toPartialOrder.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R _inst_1)))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1)))))))) c) -> (LT.lt.{u2} M (Preorder.toHasLt.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) a b)
but is expected to have type
forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} R] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_3 : SMulWithZero.{u1, u2} R M (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))] [_inst_4 : OrderedSMul.{u1, u2} R M _inst_1 _inst_2 _inst_3] {a : M} {b : M} {c : R}, (LT.lt.{u2} M (Preorder.toLT.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) (HSMul.hSMul.{u1, u2, u2} R M M (instHSMul.{u1, u2} R M (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))) _inst_3))) c a) (HSMul.hSMul.{u1, u2, u2} R M M (instHSMul.{u1, u2} R M (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))) _inst_3))) c b)) -> (LE.le.{u1} R (Preorder.toLE.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedSemiring.toPartialOrder.{u1} R _inst_1))) (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) c) -> (LT.lt.{u2} M (Preorder.toLT.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) a b)
Case conversion may be inaccurate. Consider using '#align lt_of_smul_lt_smul_of_nonneg lt_of_smul_lt_smul_of_nonnegₓ'. -/
@@ -171,7 +171,7 @@ theorem lt_of_smul_lt_smul_of_nonneg (h : c • a < c • b) (hc : 0 ≤ c) : a
/- warning: smul_lt_smul_iff_of_pos -> smul_lt_smul_iff_of_pos is a dubious translation:
lean 3 declaration is
- forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} R] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_3 : SMulWithZero.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_4 : OrderedSMul.{u1, u2} R M _inst_1 _inst_2 _inst_3] {a : M} {b : M} {c : R}, (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommMonoid.toPartialOrder.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R _inst_1)))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1)))))))) c) -> (Iff (LT.lt.{u2} M (Preorder.toLT.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_3)) c a) (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_3)) c b)) (LT.lt.{u2} M (Preorder.toLT.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) a b))
+ forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} R] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_3 : SMulWithZero.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_4 : OrderedSMul.{u1, u2} R M _inst_1 _inst_2 _inst_3] {a : M} {b : M} {c : R}, (LT.lt.{u1} R (Preorder.toHasLt.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommMonoid.toPartialOrder.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R _inst_1)))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1)))))))) c) -> (Iff (LT.lt.{u2} M (Preorder.toHasLt.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_3)) c a) (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_3)) c b)) (LT.lt.{u2} M (Preorder.toHasLt.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) a b))
but is expected to have type
forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} R] [_inst_2 : OrderedAddCommMonoid.{u1} M] [_inst_3 : SMulWithZero.{u2, u1} R M (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (OrderedSemiring.toSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2)))] [_inst_4 : OrderedSMul.{u2, u1} R M _inst_1 _inst_2 _inst_3] {a : M} {b : M} {c : R}, (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedSemiring.toPartialOrder.{u2} R _inst_1))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (OrderedSemiring.toSemiring.{u2} R _inst_1))))) c) -> (Iff (LT.lt.{u1} M (Preorder.toLT.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2))) (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (OrderedSemiring.toSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_3))) c a) (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (OrderedSemiring.toSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_3))) c b)) (LT.lt.{u1} M (Preorder.toLT.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2))) a b))
Case conversion may be inaccurate. Consider using '#align smul_lt_smul_iff_of_pos smul_lt_smul_iff_of_posₓ'. -/
@@ -181,7 +181,7 @@ theorem smul_lt_smul_iff_of_pos (hc : 0 < c) : c • a < c • b ↔ a < b :=
/- warning: smul_pos_iff_of_pos -> smul_pos_iff_of_pos is a dubious translation:
lean 3 declaration is
- forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} R] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_3 : SMulWithZero.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_4 : OrderedSMul.{u1, u2} R M _inst_1 _inst_2 _inst_3] {a : M} {c : R}, (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommMonoid.toPartialOrder.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R _inst_1)))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1)))))))) c) -> (Iff (LT.lt.{u2} M (Preorder.toLT.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.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 (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))))) (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_3)) c a)) (LT.lt.{u2} M (Preorder.toLT.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.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 (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))))) a))
+ forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} R] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_3 : SMulWithZero.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_4 : OrderedSMul.{u1, u2} R M _inst_1 _inst_2 _inst_3] {a : M} {c : R}, (LT.lt.{u1} R (Preorder.toHasLt.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommMonoid.toPartialOrder.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R _inst_1)))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1)))))))) c) -> (Iff (LT.lt.{u2} M (Preorder.toHasLt.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.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 (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))))) (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_3)) c a)) (LT.lt.{u2} M (Preorder.toHasLt.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.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 (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))))) a))
but is expected to have type
forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} R] [_inst_2 : OrderedAddCommMonoid.{u1} M] [_inst_3 : SMulWithZero.{u2, u1} R M (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (OrderedSemiring.toSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2)))] [_inst_4 : OrderedSMul.{u2, u1} R M _inst_1 _inst_2 _inst_3] {a : M} {c : R}, (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedSemiring.toPartialOrder.{u2} R _inst_1))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (OrderedSemiring.toSemiring.{u2} R _inst_1))))) c) -> (Iff (LT.lt.{u1} M (Preorder.toLT.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2))) (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))))) (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (OrderedSemiring.toSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_3))) c a)) (LT.lt.{u1} M (Preorder.toLT.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2))) (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))))) a))
Case conversion may be inaccurate. Consider using '#align smul_pos_iff_of_pos smul_pos_iff_of_posₓ'. -/
@@ -194,7 +194,7 @@ theorem smul_pos_iff_of_pos (hc : 0 < c) : 0 < c • a ↔ 0 < a :=
/- warning: smul_pos -> smul_pos is a dubious translation:
lean 3 declaration is
- forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} R] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_3 : SMulWithZero.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_4 : OrderedSMul.{u1, u2} R M _inst_1 _inst_2 _inst_3] {a : M} {c : R}, (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommMonoid.toPartialOrder.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R _inst_1)))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1)))))))) c) -> (LT.lt.{u2} M (Preorder.toLT.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.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 (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))))) a) -> (LT.lt.{u2} M (Preorder.toLT.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.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 (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))))) (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_3)) c a))
+ forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} R] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_3 : SMulWithZero.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_4 : OrderedSMul.{u1, u2} R M _inst_1 _inst_2 _inst_3] {a : M} {c : R}, (LT.lt.{u1} R (Preorder.toHasLt.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommMonoid.toPartialOrder.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R _inst_1)))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1)))))))) c) -> (LT.lt.{u2} M (Preorder.toHasLt.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.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 (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))))) a) -> (LT.lt.{u2} M (Preorder.toHasLt.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.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 (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))))) (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_3)) c a))
but is expected to have type
forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} R] [_inst_2 : OrderedAddCommMonoid.{u1} M] [_inst_3 : SMulWithZero.{u2, u1} R M (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (OrderedSemiring.toSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2)))] [_inst_4 : OrderedSMul.{u2, u1} R M _inst_1 _inst_2 _inst_3] {a : M} {c : R}, (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedSemiring.toPartialOrder.{u2} R _inst_1))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (OrderedSemiring.toSemiring.{u2} R _inst_1))))) c) -> (LT.lt.{u1} M (Preorder.toLT.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2))) (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))))) a) -> (LT.lt.{u1} M (Preorder.toLT.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2))) (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))))) (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (OrderedSemiring.toSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_3))) c a))
Case conversion may be inaccurate. Consider using '#align smul_pos smul_posₓ'. -/
@@ -203,7 +203,7 @@ alias smul_pos_iff_of_pos ↔ _ smul_pos
/- warning: monotone_smul_left -> monotone_smul_left is a dubious translation:
lean 3 declaration is
- forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} R] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_3 : SMulWithZero.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_4 : OrderedSMul.{u1, u2} R M _inst_1 _inst_2 _inst_3] {c : R}, (LE.le.{u1} R (Preorder.toLE.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommMonoid.toPartialOrder.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R _inst_1)))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1)))))))) c) -> (Monotone.{u2, u2} M M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2)) (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2)) (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_3)) c))
+ forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} R] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_3 : SMulWithZero.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_4 : OrderedSMul.{u1, u2} R M _inst_1 _inst_2 _inst_3] {c : R}, (LE.le.{u1} R (Preorder.toHasLe.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommMonoid.toPartialOrder.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R _inst_1)))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1)))))))) c) -> (Monotone.{u2, u2} M M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2)) (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2)) (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_3)) c))
but is expected to have type
forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} R] [_inst_2 : OrderedAddCommMonoid.{u1} M] [_inst_3 : SMulWithZero.{u2, u1} R M (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (OrderedSemiring.toSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2)))] [_inst_4 : OrderedSMul.{u2, u1} R M _inst_1 _inst_2 _inst_3] {c : R}, (LE.le.{u2} R (Preorder.toLE.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedSemiring.toPartialOrder.{u2} R _inst_1))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (OrderedSemiring.toSemiring.{u2} R _inst_1))))) c) -> (Monotone.{u1, u1} M M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2)) (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2)) (SMul.smul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (OrderedSemiring.toSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_3)) c))
Case conversion may be inaccurate. Consider using '#align monotone_smul_left monotone_smul_leftₓ'. -/
@@ -213,7 +213,7 @@ theorem monotone_smul_left (hc : 0 ≤ c) : Monotone (SMul.smul c : M → M) :=
/- warning: strict_mono_smul_left -> strictMono_smul_left is a dubious translation:
lean 3 declaration is
- forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} R] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_3 : SMulWithZero.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_4 : OrderedSMul.{u1, u2} R M _inst_1 _inst_2 _inst_3] {c : R}, (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommMonoid.toPartialOrder.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R _inst_1)))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1)))))))) c) -> (StrictMono.{u2, u2} M M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2)) (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2)) (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_3)) c))
+ forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} R] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_3 : SMulWithZero.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_4 : OrderedSMul.{u1, u2} R M _inst_1 _inst_2 _inst_3] {c : R}, (LT.lt.{u1} R (Preorder.toHasLt.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommMonoid.toPartialOrder.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R _inst_1)))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1)))))))) c) -> (StrictMono.{u2, u2} M M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2)) (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2)) (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_3)) c))
but is expected to have type
forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} R] [_inst_2 : OrderedAddCommMonoid.{u1} M] [_inst_3 : SMulWithZero.{u2, u1} R M (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (OrderedSemiring.toSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2)))] [_inst_4 : OrderedSMul.{u2, u1} R M _inst_1 _inst_2 _inst_3] {c : R}, (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedSemiring.toPartialOrder.{u2} R _inst_1))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (OrderedSemiring.toSemiring.{u2} R _inst_1))))) c) -> (StrictMono.{u1, u1} M M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2)) (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2)) (SMul.smul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (OrderedSemiring.toSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_3)) c))
Case conversion may be inaccurate. Consider using '#align strict_mono_smul_left strictMono_smul_leftₓ'. -/
@@ -223,7 +223,7 @@ theorem strictMono_smul_left (hc : 0 < c) : StrictMono (SMul.smul c : M → M) :
/- warning: smul_lower_bounds_subset_lower_bounds_smul -> smul_lowerBounds_subset_lowerBounds_smul is a dubious translation:
lean 3 declaration is
- forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} R] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_3 : SMulWithZero.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_4 : OrderedSMul.{u1, u2} R M _inst_1 _inst_2 _inst_3] {s : Set.{u2} M} {c : R}, (LE.le.{u1} R (Preorder.toLE.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommMonoid.toPartialOrder.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R _inst_1)))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1)))))))) c) -> (HasSubset.Subset.{u2} (Set.{u2} M) (Set.hasSubset.{u2} M) (SMul.smul.{u1, u2} R (Set.{u2} M) (Set.smulSet.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_3))) c (lowerBounds.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2)) s)) (lowerBounds.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2)) (SMul.smul.{u1, u2} R (Set.{u2} M) (Set.smulSet.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_3))) c s)))
+ forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} R] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_3 : SMulWithZero.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_4 : OrderedSMul.{u1, u2} R M _inst_1 _inst_2 _inst_3] {s : Set.{u2} M} {c : R}, (LE.le.{u1} R (Preorder.toHasLe.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommMonoid.toPartialOrder.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R _inst_1)))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1)))))))) c) -> (HasSubset.Subset.{u2} (Set.{u2} M) (Set.hasSubset.{u2} M) (SMul.smul.{u1, u2} R (Set.{u2} M) (Set.smulSet.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_3))) c (lowerBounds.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2)) s)) (lowerBounds.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2)) (SMul.smul.{u1, u2} R (Set.{u2} M) (Set.smulSet.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_3))) c s)))
but is expected to have type
forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} R] [_inst_2 : OrderedAddCommMonoid.{u1} M] [_inst_3 : SMulWithZero.{u2, u1} R M (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (OrderedSemiring.toSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2)))] [_inst_4 : OrderedSMul.{u2, u1} R M _inst_1 _inst_2 _inst_3] {s : Set.{u1} M} {c : R}, (LE.le.{u2} R (Preorder.toLE.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedSemiring.toPartialOrder.{u2} R _inst_1))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (OrderedSemiring.toSemiring.{u2} R _inst_1))))) c) -> (HasSubset.Subset.{u1} (Set.{u1} M) (Set.instHasSubsetSet.{u1} M) (HSMul.hSMul.{u2, u1, u1} R (Set.{u1} M) (Set.{u1} M) (instHSMul.{u2, u1} R (Set.{u1} M) (Set.smulSet.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (OrderedSemiring.toSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_3)))) c (lowerBounds.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2)) s)) (lowerBounds.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2)) (HSMul.hSMul.{u2, u1, u1} R (Set.{u1} M) (Set.{u1} M) (instHSMul.{u2, u1} R (Set.{u1} M) (Set.smulSet.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (OrderedSemiring.toSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_3)))) c s)))
Case conversion may be inaccurate. Consider using '#align smul_lower_bounds_subset_lower_bounds_smul smul_lowerBounds_subset_lowerBounds_smulₓ'. -/
@@ -234,7 +234,7 @@ theorem smul_lowerBounds_subset_lowerBounds_smul (hc : 0 ≤ c) :
/- warning: smul_upper_bounds_subset_upper_bounds_smul -> smul_upperBounds_subset_upperBounds_smul is a dubious translation:
lean 3 declaration is
- forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} R] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_3 : SMulWithZero.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_4 : OrderedSMul.{u1, u2} R M _inst_1 _inst_2 _inst_3] {s : Set.{u2} M} {c : R}, (LE.le.{u1} R (Preorder.toLE.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommMonoid.toPartialOrder.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R _inst_1)))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1)))))))) c) -> (HasSubset.Subset.{u2} (Set.{u2} M) (Set.hasSubset.{u2} M) (SMul.smul.{u1, u2} R (Set.{u2} M) (Set.smulSet.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_3))) c (upperBounds.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2)) s)) (upperBounds.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2)) (SMul.smul.{u1, u2} R (Set.{u2} M) (Set.smulSet.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_3))) c s)))
+ forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} R] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_3 : SMulWithZero.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_4 : OrderedSMul.{u1, u2} R M _inst_1 _inst_2 _inst_3] {s : Set.{u2} M} {c : R}, (LE.le.{u1} R (Preorder.toHasLe.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommMonoid.toPartialOrder.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R _inst_1)))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1)))))))) c) -> (HasSubset.Subset.{u2} (Set.{u2} M) (Set.hasSubset.{u2} M) (SMul.smul.{u1, u2} R (Set.{u2} M) (Set.smulSet.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_3))) c (upperBounds.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2)) s)) (upperBounds.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2)) (SMul.smul.{u1, u2} R (Set.{u2} M) (Set.smulSet.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_3))) c s)))
but is expected to have type
forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} R] [_inst_2 : OrderedAddCommMonoid.{u1} M] [_inst_3 : SMulWithZero.{u2, u1} R M (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (OrderedSemiring.toSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2)))] [_inst_4 : OrderedSMul.{u2, u1} R M _inst_1 _inst_2 _inst_3] {s : Set.{u1} M} {c : R}, (LE.le.{u2} R (Preorder.toLE.{u2} R (PartialOrder.toPreorder.{u2} R (OrderedSemiring.toPartialOrder.{u2} R _inst_1))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (OrderedSemiring.toSemiring.{u2} R _inst_1))))) c) -> (HasSubset.Subset.{u1} (Set.{u1} M) (Set.instHasSubsetSet.{u1} M) (HSMul.hSMul.{u2, u1, u1} R (Set.{u1} M) (Set.{u1} M) (instHSMul.{u2, u1} R (Set.{u1} M) (Set.smulSet.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (OrderedSemiring.toSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_3)))) c (upperBounds.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2)) s)) (upperBounds.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2)) (HSMul.hSMul.{u2, u1, u1} R (Set.{u1} M) (Set.{u1} M) (instHSMul.{u2, u1} R (Set.{u1} M) (Set.smulSet.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (OrderedSemiring.toSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_3)))) c s)))
Case conversion may be inaccurate. Consider using '#align smul_upper_bounds_subset_upper_bounds_smul smul_upperBounds_subset_upperBounds_smulₓ'. -/
@@ -245,7 +245,7 @@ theorem smul_upperBounds_subset_upperBounds_smul (hc : 0 ≤ c) :
/- warning: bdd_below.smul_of_nonneg -> BddBelow.smul_of_nonneg is a dubious translation:
lean 3 declaration is
- forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} R] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_3 : SMulWithZero.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_4 : OrderedSMul.{u1, u2} R M _inst_1 _inst_2 _inst_3] {s : Set.{u2} M} {c : R}, (BddBelow.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2)) s) -> (LE.le.{u1} R (Preorder.toLE.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommMonoid.toPartialOrder.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R _inst_1)))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1)))))))) c) -> (BddBelow.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2)) (SMul.smul.{u1, u2} R (Set.{u2} M) (Set.smulSet.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_3))) c s))
+ forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} R] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_3 : SMulWithZero.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_4 : OrderedSMul.{u1, u2} R M _inst_1 _inst_2 _inst_3] {s : Set.{u2} M} {c : R}, (BddBelow.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2)) s) -> (LE.le.{u1} R (Preorder.toHasLe.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommMonoid.toPartialOrder.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R _inst_1)))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1)))))))) c) -> (BddBelow.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2)) (SMul.smul.{u1, u2} R (Set.{u2} M) (Set.smulSet.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_3))) c s))
but is expected to have type
forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} R] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_3 : SMulWithZero.{u1, u2} R M (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))] [_inst_4 : OrderedSMul.{u1, u2} R M _inst_1 _inst_2 _inst_3] {s : Set.{u2} M} {c : R}, (BddBelow.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2)) s) -> (LE.le.{u1} R (Preorder.toLE.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedSemiring.toPartialOrder.{u1} R _inst_1))) (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) c) -> (BddBelow.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2)) (HSMul.hSMul.{u1, u2, u2} R (Set.{u2} M) (Set.{u2} M) (instHSMul.{u1, u2} R (Set.{u2} M) (Set.smulSet.{u1, u2} R M (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))) _inst_3)))) c s))
Case conversion may be inaccurate. Consider using '#align bdd_below.smul_of_nonneg BddBelow.smul_of_nonnegₓ'. -/
@@ -255,7 +255,7 @@ theorem BddBelow.smul_of_nonneg (hs : BddBelow s) (hc : 0 ≤ c) : BddBelow (c
/- warning: bdd_above.smul_of_nonneg -> BddAbove.smul_of_nonneg is a dubious translation:
lean 3 declaration is
- forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} R] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_3 : SMulWithZero.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_4 : OrderedSMul.{u1, u2} R M _inst_1 _inst_2 _inst_3] {s : Set.{u2} M} {c : R}, (BddAbove.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2)) s) -> (LE.le.{u1} R (Preorder.toLE.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommMonoid.toPartialOrder.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R _inst_1)))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1)))))))) c) -> (BddAbove.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2)) (SMul.smul.{u1, u2} R (Set.{u2} M) (Set.smulSet.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_3))) c s))
+ forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} R] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_3 : SMulWithZero.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_4 : OrderedSMul.{u1, u2} R M _inst_1 _inst_2 _inst_3] {s : Set.{u2} M} {c : R}, (BddAbove.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2)) s) -> (LE.le.{u1} R (Preorder.toHasLe.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommMonoid.toPartialOrder.{u1} R (OrderedSemiring.toOrderedAddCommMonoid.{u1} R _inst_1)))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1)))))))) c) -> (BddAbove.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2)) (SMul.smul.{u1, u2} R (Set.{u2} M) (Set.smulSet.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_3))) c s))
but is expected to have type
forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} R] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_3 : SMulWithZero.{u1, u2} R M (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))] [_inst_4 : OrderedSMul.{u1, u2} R M _inst_1 _inst_2 _inst_3] {s : Set.{u2} M} {c : R}, (BddAbove.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2)) s) -> (LE.le.{u1} R (Preorder.toLE.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedSemiring.toPartialOrder.{u1} R _inst_1))) (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))))) c) -> (BddAbove.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2)) (HSMul.hSMul.{u1, u2, u2} R (Set.{u2} M) (Set.{u2} M) (instHSMul.{u1, u2} R (Set.{u2} M) (Set.smulSet.{u1, u2} R M (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (OrderedSemiring.toSemiring.{u1} R _inst_1))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))) _inst_3)))) c s))
Case conversion may be inaccurate. Consider using '#align bdd_above.smul_of_nonneg BddAbove.smul_of_nonnegₓ'. -/
@@ -267,7 +267,7 @@ end OrderedSMul
/- warning: ordered_smul.mk'' -> OrderedSMul.mk'' is a dubious translation:
lean 3 declaration is
- forall {𝕜 : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : LinearOrderedAddCommMonoid.{u2} M] [_inst_3 : SMulWithZero.{u1, u2} 𝕜 M (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u2} M _inst_2)))))], (forall {{c : 𝕜}}, (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) c) -> (StrictMono.{u2, u2} M M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u2} M _inst_2))) (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u2} M _inst_2))) (fun (a : M) => SMul.smul.{u1, u2} 𝕜 M (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u2} M _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 M (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u2} M _inst_2))))) _inst_3)) c a))) -> (OrderedSMul.{u1, u2} 𝕜 M _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u2} M _inst_2) _inst_3)
+ forall {𝕜 : Type.{u1}} {M : Type.{u2}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : LinearOrderedAddCommMonoid.{u2} M] [_inst_3 : SMulWithZero.{u1, u2} 𝕜 M (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u2} M _inst_2)))))], (forall {{c : 𝕜}}, (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) c) -> (StrictMono.{u2, u2} M M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u2} M _inst_2))) (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u2} M _inst_2))) (fun (a : M) => SMul.smul.{u1, u2} 𝕜 M (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u2} M _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 M (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u2} M _inst_2))))) _inst_3)) c a))) -> (OrderedSMul.{u1, u2} 𝕜 M _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u2} M _inst_2) _inst_3)
but is expected to have type
forall {𝕜 : Type.{u2}} {M : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} 𝕜] [_inst_2 : LinearOrderedAddCommMonoid.{u1} M] [_inst_3 : SMulWithZero.{u2, u1} 𝕜 M (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2)))], (forall {{c : 𝕜}}, (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedSemiring.toPartialOrder.{u2} 𝕜 _inst_1))) (OfNat.ofNat.{u2} 𝕜 0 (Zero.toOfNat0.{u2} 𝕜 (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))))) c) -> (StrictMono.{u1, u1} M M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} M _inst_2))) (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} M _inst_2))) (fun (a : M) => HSMul.hSMul.{u2, u1, u1} 𝕜 M M (instHSMul.{u2, u1} 𝕜 M (SMulZeroClass.toSMul.{u2, u1} 𝕜 M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 M (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_3))) c a))) -> (OrderedSMul.{u2, u1} 𝕜 M _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} M _inst_2) _inst_3)
Case conversion may be inaccurate. Consider using '#align ordered_smul.mk'' OrderedSMul.mk''ₓ'. -/
@@ -315,7 +315,7 @@ variable [LinearOrderedSemifield 𝕜] [OrderedAddCommMonoid M] [OrderedAddCommM
/- warning: ordered_smul.mk' -> OrderedSMul.mk' is a dubious translation:
lean 3 declaration is
- forall {𝕜 : Type.{u1}} {M : Type.{u2}} [_inst_1 : LinearOrderedSemifield.{u1} 𝕜] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_4 : MulActionWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))], (forall {{a : M}} {{b : M}} {{c : 𝕜}}, (LT.lt.{u2} M (Preorder.toLT.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) a b) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedCancelAddCommMonoid.toPartialOrder.{u1} 𝕜 (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))))))))) c) -> (LE.le.{u2} M (Preorder.toLE.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) (SMul.smul.{u1, u2} 𝕜 M (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 M (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4))) c a) (SMul.smul.{u1, u2} 𝕜 M (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 M (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4))) c b))) -> (OrderedSMul.{u1, u2} 𝕜 M (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1)))) _inst_2 (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4))
+ forall {𝕜 : Type.{u1}} {M : Type.{u2}} [_inst_1 : LinearOrderedSemifield.{u1} 𝕜] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_4 : MulActionWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))], (forall {{a : M}} {{b : M}} {{c : 𝕜}}, (LT.lt.{u2} M (Preorder.toHasLt.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) a b) -> (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedCancelAddCommMonoid.toPartialOrder.{u1} 𝕜 (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))))))))) c) -> (LE.le.{u2} M (Preorder.toHasLe.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) (SMul.smul.{u1, u2} 𝕜 M (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 M (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4))) c a) (SMul.smul.{u1, u2} 𝕜 M (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 M (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4))) c b))) -> (OrderedSMul.{u1, u2} 𝕜 M (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1)))) _inst_2 (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4))
but is expected to have type
forall {𝕜 : Type.{u1}} {M : Type.{u2}} [_inst_1 : LinearOrderedSemifield.{u1} 𝕜] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_4 : MulActionWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (StrictOrderedSemiring.toSemiring.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1))))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))], (forall {{a : M}} {{b : M}} {{c : 𝕜}}, (LT.lt.{u2} M (Preorder.toLT.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) a b) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (StrictOrderedSemiring.toPartialOrder.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1)))))) (OfNat.ofNat.{u1} 𝕜 0 (Zero.toOfNat0.{u1} 𝕜 (CommMonoidWithZero.toZero.{u1} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u1} 𝕜 (Semifield.toCommGroupWithZero.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))))) c) -> (LE.le.{u2} M (Preorder.toLE.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) (HSMul.hSMul.{u1, u2, u2} 𝕜 M M (instHSMul.{u1, u2} 𝕜 M (SMulZeroClass.toSMul.{u1, u2} 𝕜 M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u1, u2} 𝕜 M (CommMonoidWithZero.toZero.{u1} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u1} 𝕜 (Semifield.toCommGroupWithZero.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (StrictOrderedSemiring.toSemiring.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1))))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))) _inst_4)))) c a) (HSMul.hSMul.{u1, u2, u2} 𝕜 M M (instHSMul.{u1, u2} 𝕜 M (SMulZeroClass.toSMul.{u1, u2} 𝕜 M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u1, u2} 𝕜 M (CommMonoidWithZero.toZero.{u1} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u1} 𝕜 (Semifield.toCommGroupWithZero.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (StrictOrderedSemiring.toSemiring.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1))))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))) _inst_4)))) c b))) -> (OrderedSMul.{u1, u2} 𝕜 M (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1)))) _inst_2 (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (StrictOrderedSemiring.toSemiring.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1))))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))) _inst_4))
Case conversion may be inaccurate. Consider using '#align ordered_smul.mk' OrderedSMul.mk'ₓ'. -/
@@ -379,7 +379,7 @@ variable [OrderedSMul 𝕜 M] {s : Set M} {a b : M} {c : 𝕜}
/- warning: smul_le_smul_iff_of_pos -> smul_le_smul_iff_of_pos is a dubious translation:
lean 3 declaration is
- forall {𝕜 : Type.{u1}} {M : Type.{u2}} [_inst_1 : LinearOrderedSemifield.{u1} 𝕜] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_4 : MulActionWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_6 : OrderedSMul.{u1, u2} 𝕜 M (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1)))) _inst_2 (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4)] {a : M} {b : M} {c : 𝕜}, (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedCancelAddCommMonoid.toPartialOrder.{u1} 𝕜 (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))))))))) c) -> (Iff (LE.le.{u2} M (Preorder.toLE.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) (SMul.smul.{u1, u2} 𝕜 M (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 M (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4))) c a) (SMul.smul.{u1, u2} 𝕜 M (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 M (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4))) c b)) (LE.le.{u2} M (Preorder.toLE.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) a b))
+ forall {𝕜 : Type.{u1}} {M : Type.{u2}} [_inst_1 : LinearOrderedSemifield.{u1} 𝕜] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_4 : MulActionWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_6 : OrderedSMul.{u1, u2} 𝕜 M (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1)))) _inst_2 (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4)] {a : M} {b : M} {c : 𝕜}, (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedCancelAddCommMonoid.toPartialOrder.{u1} 𝕜 (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))))))))) c) -> (Iff (LE.le.{u2} M (Preorder.toHasLe.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) (SMul.smul.{u1, u2} 𝕜 M (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 M (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4))) c a) (SMul.smul.{u1, u2} 𝕜 M (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 M (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4))) c b)) (LE.le.{u2} M (Preorder.toHasLe.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) a b))
but is expected to have type
forall {𝕜 : Type.{u2}} {M : Type.{u1}} [_inst_1 : LinearOrderedSemifield.{u2} 𝕜] [_inst_2 : OrderedAddCommMonoid.{u1} M] [_inst_4 : MulActionWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2)))] [_inst_6 : OrderedSMul.{u2, u1} 𝕜 M (OrderedCommSemiring.toOrderedSemiring.{u2} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1)))) _inst_2 (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_4)] {a : M} {b : M} {c : 𝕜}, (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (StrictOrderedSemiring.toPartialOrder.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1)))))) (OfNat.ofNat.{u2} 𝕜 0 (Zero.toOfNat0.{u2} 𝕜 (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 _inst_1)))))) c) -> (Iff (LE.le.{u1} M (Preorder.toLE.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2))) (HSMul.hSMul.{u2, u1, u1} 𝕜 M M (instHSMul.{u2, u1} 𝕜 M (SMulZeroClass.toSMul.{u2, u1} 𝕜 M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 M (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 _inst_1)))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_4)))) c a) (HSMul.hSMul.{u2, u1, u1} 𝕜 M M (instHSMul.{u2, u1} 𝕜 M (SMulZeroClass.toSMul.{u2, u1} 𝕜 M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 M (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 _inst_1)))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_4)))) c b)) (LE.le.{u1} M (Preorder.toLE.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2))) a b))
Case conversion may be inaccurate. Consider using '#align smul_le_smul_iff_of_pos smul_le_smul_iff_of_posₓ'. -/
@@ -392,7 +392,7 @@ theorem smul_le_smul_iff_of_pos (hc : 0 < c) : c • a ≤ c • b ↔ a ≤ b :
/- warning: inv_smul_le_iff -> inv_smul_le_iff is a dubious translation:
lean 3 declaration is
- forall {𝕜 : Type.{u1}} {M : Type.{u2}} [_inst_1 : LinearOrderedSemifield.{u1} 𝕜] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_4 : MulActionWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_6 : OrderedSMul.{u1, u2} 𝕜 M (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1)))) _inst_2 (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4)] {a : M} {b : M} {c : 𝕜}, (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedCancelAddCommMonoid.toPartialOrder.{u1} 𝕜 (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))))))))) c) -> (Iff (LE.le.{u2} M (Preorder.toLE.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) (SMul.smul.{u1, u2} 𝕜 M (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 M (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4))) (Inv.inv.{u1} 𝕜 (DivInvMonoid.toHasInv.{u1} 𝕜 (GroupWithZero.toDivInvMonoid.{u1} 𝕜 (DivisionSemiring.toGroupWithZero.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1))))) c) a) b) (LE.le.{u2} M (Preorder.toLE.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) a (SMul.smul.{u1, u2} 𝕜 M (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 M (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4))) c b)))
+ forall {𝕜 : Type.{u1}} {M : Type.{u2}} [_inst_1 : LinearOrderedSemifield.{u1} 𝕜] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_4 : MulActionWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_6 : OrderedSMul.{u1, u2} 𝕜 M (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1)))) _inst_2 (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4)] {a : M} {b : M} {c : 𝕜}, (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedCancelAddCommMonoid.toPartialOrder.{u1} 𝕜 (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))))))))) c) -> (Iff (LE.le.{u2} M (Preorder.toHasLe.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) (SMul.smul.{u1, u2} 𝕜 M (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 M (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4))) (Inv.inv.{u1} 𝕜 (DivInvMonoid.toHasInv.{u1} 𝕜 (GroupWithZero.toDivInvMonoid.{u1} 𝕜 (DivisionSemiring.toGroupWithZero.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1))))) c) a) b) (LE.le.{u2} M (Preorder.toHasLe.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) a (SMul.smul.{u1, u2} 𝕜 M (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 M (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4))) c b)))
but is expected to have type
forall {𝕜 : Type.{u2}} {M : Type.{u1}} [_inst_1 : LinearOrderedSemifield.{u2} 𝕜] [_inst_2 : OrderedAddCommMonoid.{u1} M] [_inst_4 : MulActionWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2)))] [_inst_6 : OrderedSMul.{u2, u1} 𝕜 M (OrderedCommSemiring.toOrderedSemiring.{u2} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1)))) _inst_2 (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_4)] {a : M} {b : M} {c : 𝕜}, (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (StrictOrderedSemiring.toPartialOrder.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1)))))) (OfNat.ofNat.{u2} 𝕜 0 (Zero.toOfNat0.{u2} 𝕜 (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 _inst_1)))))) c) -> (Iff (LE.le.{u1} M (Preorder.toLE.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2))) (HSMul.hSMul.{u2, u1, u1} 𝕜 M M (instHSMul.{u2, u1} 𝕜 M (SMulZeroClass.toSMul.{u2, u1} 𝕜 M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 M (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 _inst_1)))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_4)))) (Inv.inv.{u2} 𝕜 (LinearOrderedSemifield.toInv.{u2} 𝕜 _inst_1) c) a) b) (LE.le.{u1} M (Preorder.toLE.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2))) a (HSMul.hSMul.{u2, u1, u1} 𝕜 M M (instHSMul.{u2, u1} 𝕜 M (SMulZeroClass.toSMul.{u2, u1} 𝕜 M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 M (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 _inst_1)))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_4)))) c b)))
Case conversion may be inaccurate. Consider using '#align inv_smul_le_iff inv_smul_le_iffₓ'. -/
@@ -404,7 +404,7 @@ theorem inv_smul_le_iff (h : 0 < c) : c⁻¹ • a ≤ b ↔ a ≤ c • b :=
/- warning: inv_smul_lt_iff -> inv_smul_lt_iff is a dubious translation:
lean 3 declaration is
- forall {𝕜 : Type.{u1}} {M : Type.{u2}} [_inst_1 : LinearOrderedSemifield.{u1} 𝕜] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_4 : MulActionWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_6 : OrderedSMul.{u1, u2} 𝕜 M (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1)))) _inst_2 (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4)] {a : M} {b : M} {c : 𝕜}, (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedCancelAddCommMonoid.toPartialOrder.{u1} 𝕜 (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))))))))) c) -> (Iff (LT.lt.{u2} M (Preorder.toLT.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) (SMul.smul.{u1, u2} 𝕜 M (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 M (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4))) (Inv.inv.{u1} 𝕜 (DivInvMonoid.toHasInv.{u1} 𝕜 (GroupWithZero.toDivInvMonoid.{u1} 𝕜 (DivisionSemiring.toGroupWithZero.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1))))) c) a) b) (LT.lt.{u2} M (Preorder.toLT.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) a (SMul.smul.{u1, u2} 𝕜 M (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 M (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4))) c b)))
+ forall {𝕜 : Type.{u1}} {M : Type.{u2}} [_inst_1 : LinearOrderedSemifield.{u1} 𝕜] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_4 : MulActionWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_6 : OrderedSMul.{u1, u2} 𝕜 M (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1)))) _inst_2 (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4)] {a : M} {b : M} {c : 𝕜}, (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedCancelAddCommMonoid.toPartialOrder.{u1} 𝕜 (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))))))))) c) -> (Iff (LT.lt.{u2} M (Preorder.toHasLt.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) (SMul.smul.{u1, u2} 𝕜 M (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 M (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4))) (Inv.inv.{u1} 𝕜 (DivInvMonoid.toHasInv.{u1} 𝕜 (GroupWithZero.toDivInvMonoid.{u1} 𝕜 (DivisionSemiring.toGroupWithZero.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1))))) c) a) b) (LT.lt.{u2} M (Preorder.toHasLt.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) a (SMul.smul.{u1, u2} 𝕜 M (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 M (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4))) c b)))
but is expected to have type
forall {𝕜 : Type.{u2}} {M : Type.{u1}} [_inst_1 : LinearOrderedSemifield.{u2} 𝕜] [_inst_2 : OrderedAddCommMonoid.{u1} M] [_inst_4 : MulActionWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2)))] [_inst_6 : OrderedSMul.{u2, u1} 𝕜 M (OrderedCommSemiring.toOrderedSemiring.{u2} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1)))) _inst_2 (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_4)] {a : M} {b : M} {c : 𝕜}, (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (StrictOrderedSemiring.toPartialOrder.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1)))))) (OfNat.ofNat.{u2} 𝕜 0 (Zero.toOfNat0.{u2} 𝕜 (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 _inst_1)))))) c) -> (Iff (LT.lt.{u1} M (Preorder.toLT.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2))) (HSMul.hSMul.{u2, u1, u1} 𝕜 M M (instHSMul.{u2, u1} 𝕜 M (SMulZeroClass.toSMul.{u2, u1} 𝕜 M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 M (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 _inst_1)))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_4)))) (Inv.inv.{u2} 𝕜 (LinearOrderedSemifield.toInv.{u2} 𝕜 _inst_1) c) a) b) (LT.lt.{u1} M (Preorder.toLT.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2))) a (HSMul.hSMul.{u2, u1, u1} 𝕜 M M (instHSMul.{u2, u1} 𝕜 M (SMulZeroClass.toSMul.{u2, u1} 𝕜 M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 M (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 _inst_1)))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_4)))) c b)))
Case conversion may be inaccurate. Consider using '#align inv_smul_lt_iff inv_smul_lt_iffₓ'. -/
@@ -416,7 +416,7 @@ theorem inv_smul_lt_iff (h : 0 < c) : c⁻¹ • a < b ↔ a < c • b :=
/- warning: le_inv_smul_iff -> le_inv_smul_iff is a dubious translation:
lean 3 declaration is
- forall {𝕜 : Type.{u1}} {M : Type.{u2}} [_inst_1 : LinearOrderedSemifield.{u1} 𝕜] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_4 : MulActionWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_6 : OrderedSMul.{u1, u2} 𝕜 M (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1)))) _inst_2 (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4)] {a : M} {b : M} {c : 𝕜}, (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedCancelAddCommMonoid.toPartialOrder.{u1} 𝕜 (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))))))))) c) -> (Iff (LE.le.{u2} M (Preorder.toLE.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) a (SMul.smul.{u1, u2} 𝕜 M (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 M (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4))) (Inv.inv.{u1} 𝕜 (DivInvMonoid.toHasInv.{u1} 𝕜 (GroupWithZero.toDivInvMonoid.{u1} 𝕜 (DivisionSemiring.toGroupWithZero.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1))))) c) b)) (LE.le.{u2} M (Preorder.toLE.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) (SMul.smul.{u1, u2} 𝕜 M (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 M (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4))) c a) b))
+ forall {𝕜 : Type.{u1}} {M : Type.{u2}} [_inst_1 : LinearOrderedSemifield.{u1} 𝕜] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_4 : MulActionWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_6 : OrderedSMul.{u1, u2} 𝕜 M (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1)))) _inst_2 (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4)] {a : M} {b : M} {c : 𝕜}, (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedCancelAddCommMonoid.toPartialOrder.{u1} 𝕜 (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))))))))) c) -> (Iff (LE.le.{u2} M (Preorder.toHasLe.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) a (SMul.smul.{u1, u2} 𝕜 M (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 M (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4))) (Inv.inv.{u1} 𝕜 (DivInvMonoid.toHasInv.{u1} 𝕜 (GroupWithZero.toDivInvMonoid.{u1} 𝕜 (DivisionSemiring.toGroupWithZero.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1))))) c) b)) (LE.le.{u2} M (Preorder.toHasLe.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) (SMul.smul.{u1, u2} 𝕜 M (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 M (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4))) c a) b))
but is expected to have type
forall {𝕜 : Type.{u2}} {M : Type.{u1}} [_inst_1 : LinearOrderedSemifield.{u2} 𝕜] [_inst_2 : OrderedAddCommMonoid.{u1} M] [_inst_4 : MulActionWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2)))] [_inst_6 : OrderedSMul.{u2, u1} 𝕜 M (OrderedCommSemiring.toOrderedSemiring.{u2} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1)))) _inst_2 (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_4)] {a : M} {b : M} {c : 𝕜}, (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (StrictOrderedSemiring.toPartialOrder.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1)))))) (OfNat.ofNat.{u2} 𝕜 0 (Zero.toOfNat0.{u2} 𝕜 (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 _inst_1)))))) c) -> (Iff (LE.le.{u1} M (Preorder.toLE.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2))) a (HSMul.hSMul.{u2, u1, u1} 𝕜 M M (instHSMul.{u2, u1} 𝕜 M (SMulZeroClass.toSMul.{u2, u1} 𝕜 M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 M (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 _inst_1)))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_4)))) (Inv.inv.{u2} 𝕜 (LinearOrderedSemifield.toInv.{u2} 𝕜 _inst_1) c) b)) (LE.le.{u1} M (Preorder.toLE.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2))) (HSMul.hSMul.{u2, u1, u1} 𝕜 M M (instHSMul.{u2, u1} 𝕜 M (SMulZeroClass.toSMul.{u2, u1} 𝕜 M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 M (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 _inst_1)))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_4)))) c a) b))
Case conversion may be inaccurate. Consider using '#align le_inv_smul_iff le_inv_smul_iffₓ'. -/
@@ -428,7 +428,7 @@ theorem le_inv_smul_iff (h : 0 < c) : a ≤ c⁻¹ • b ↔ c • a ≤ b :=
/- warning: lt_inv_smul_iff -> lt_inv_smul_iff is a dubious translation:
lean 3 declaration is
- forall {𝕜 : Type.{u1}} {M : Type.{u2}} [_inst_1 : LinearOrderedSemifield.{u1} 𝕜] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_4 : MulActionWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_6 : OrderedSMul.{u1, u2} 𝕜 M (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1)))) _inst_2 (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4)] {a : M} {b : M} {c : 𝕜}, (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedCancelAddCommMonoid.toPartialOrder.{u1} 𝕜 (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))))))))) c) -> (Iff (LT.lt.{u2} M (Preorder.toLT.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) a (SMul.smul.{u1, u2} 𝕜 M (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 M (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4))) (Inv.inv.{u1} 𝕜 (DivInvMonoid.toHasInv.{u1} 𝕜 (GroupWithZero.toDivInvMonoid.{u1} 𝕜 (DivisionSemiring.toGroupWithZero.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1))))) c) b)) (LT.lt.{u2} M (Preorder.toLT.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) (SMul.smul.{u1, u2} 𝕜 M (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 M (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4))) c a) b))
+ forall {𝕜 : Type.{u1}} {M : Type.{u2}} [_inst_1 : LinearOrderedSemifield.{u1} 𝕜] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_4 : MulActionWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_6 : OrderedSMul.{u1, u2} 𝕜 M (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1)))) _inst_2 (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4)] {a : M} {b : M} {c : 𝕜}, (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedCancelAddCommMonoid.toPartialOrder.{u1} 𝕜 (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))))))))) c) -> (Iff (LT.lt.{u2} M (Preorder.toHasLt.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) a (SMul.smul.{u1, u2} 𝕜 M (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 M (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4))) (Inv.inv.{u1} 𝕜 (DivInvMonoid.toHasInv.{u1} 𝕜 (GroupWithZero.toDivInvMonoid.{u1} 𝕜 (DivisionSemiring.toGroupWithZero.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1))))) c) b)) (LT.lt.{u2} M (Preorder.toHasLt.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) (SMul.smul.{u1, u2} 𝕜 M (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 M (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4))) c a) b))
but is expected to have type
forall {𝕜 : Type.{u2}} {M : Type.{u1}} [_inst_1 : LinearOrderedSemifield.{u2} 𝕜] [_inst_2 : OrderedAddCommMonoid.{u1} M] [_inst_4 : MulActionWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2)))] [_inst_6 : OrderedSMul.{u2, u1} 𝕜 M (OrderedCommSemiring.toOrderedSemiring.{u2} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1)))) _inst_2 (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_4)] {a : M} {b : M} {c : 𝕜}, (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (StrictOrderedSemiring.toPartialOrder.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1)))))) (OfNat.ofNat.{u2} 𝕜 0 (Zero.toOfNat0.{u2} 𝕜 (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 _inst_1)))))) c) -> (Iff (LT.lt.{u1} M (Preorder.toLT.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2))) a (HSMul.hSMul.{u2, u1, u1} 𝕜 M M (instHSMul.{u2, u1} 𝕜 M (SMulZeroClass.toSMul.{u2, u1} 𝕜 M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 M (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 _inst_1)))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_4)))) (Inv.inv.{u2} 𝕜 (LinearOrderedSemifield.toInv.{u2} 𝕜 _inst_1) c) b)) (LT.lt.{u1} M (Preorder.toLT.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2))) (HSMul.hSMul.{u2, u1, u1} 𝕜 M M (instHSMul.{u2, u1} 𝕜 M (SMulZeroClass.toSMul.{u2, u1} 𝕜 M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 M (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 _inst_1)))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_4)))) c a) b))
Case conversion may be inaccurate. Consider using '#align lt_inv_smul_iff lt_inv_smul_iffₓ'. -/
@@ -442,7 +442,7 @@ variable (M)
/- warning: order_iso.smul_left -> OrderIso.smulLeft is a dubious translation:
lean 3 declaration is
- forall {𝕜 : Type.{u1}} (M : Type.{u2}) [_inst_1 : LinearOrderedSemifield.{u1} 𝕜] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_4 : MulActionWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_6 : OrderedSMul.{u1, u2} 𝕜 M (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1)))) _inst_2 (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4)] {c : 𝕜}, (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedCancelAddCommMonoid.toPartialOrder.{u1} 𝕜 (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))))))))) c) -> (OrderIso.{u2, u2} M M (Preorder.toLE.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) (Preorder.toLE.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))))
+ forall {𝕜 : Type.{u1}} (M : Type.{u2}) [_inst_1 : LinearOrderedSemifield.{u1} 𝕜] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_4 : MulActionWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_6 : OrderedSMul.{u1, u2} 𝕜 M (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1)))) _inst_2 (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4)] {c : 𝕜}, (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedCancelAddCommMonoid.toPartialOrder.{u1} 𝕜 (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))))))))) c) -> (OrderIso.{u2, u2} M M (Preorder.toHasLe.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) (Preorder.toHasLe.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))))
but is expected to have type
forall {𝕜 : Type.{u1}} (M : Type.{u2}) [_inst_1 : LinearOrderedSemifield.{u1} 𝕜] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_4 : MulActionWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (StrictOrderedSemiring.toSemiring.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1))))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))] [_inst_6 : OrderedSMul.{u1, u2} 𝕜 M (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1)))) _inst_2 (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (StrictOrderedSemiring.toSemiring.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1))))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))) _inst_4)] {c : 𝕜}, (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (StrictOrderedSemiring.toPartialOrder.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1)))))) (OfNat.ofNat.{u1} 𝕜 0 (Zero.toOfNat0.{u1} 𝕜 (CommMonoidWithZero.toZero.{u1} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u1} 𝕜 (Semifield.toCommGroupWithZero.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))))) c) -> (OrderIso.{u2, u2} M M (Preorder.toLE.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))) (Preorder.toLE.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2))))
Case conversion may be inaccurate. Consider using '#align order_iso.smul_left OrderIso.smulLeftₓ'. -/
@@ -461,7 +461,7 @@ variable {M}
/- warning: lower_bounds_smul_of_pos -> lowerBounds_smul_of_pos is a dubious translation:
lean 3 declaration is
- forall {𝕜 : Type.{u1}} {M : Type.{u2}} [_inst_1 : LinearOrderedSemifield.{u1} 𝕜] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_4 : MulActionWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_6 : OrderedSMul.{u1, u2} 𝕜 M (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1)))) _inst_2 (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4)] {s : Set.{u2} M} {c : 𝕜}, (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedCancelAddCommMonoid.toPartialOrder.{u1} 𝕜 (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))))))))) c) -> (Eq.{succ u2} (Set.{u2} M) (lowerBounds.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2)) (SMul.smul.{u1, u2} 𝕜 (Set.{u2} M) (Set.smulSet.{u1, u2} 𝕜 M (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 M (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4)))) c s)) (SMul.smul.{u1, u2} 𝕜 (Set.{u2} M) (Set.smulSet.{u1, u2} 𝕜 M (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 M (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4)))) c (lowerBounds.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2)) s)))
+ forall {𝕜 : Type.{u1}} {M : Type.{u2}} [_inst_1 : LinearOrderedSemifield.{u1} 𝕜] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_4 : MulActionWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_6 : OrderedSMul.{u1, u2} 𝕜 M (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1)))) _inst_2 (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4)] {s : Set.{u2} M} {c : 𝕜}, (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedCancelAddCommMonoid.toPartialOrder.{u1} 𝕜 (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))))))))) c) -> (Eq.{succ u2} (Set.{u2} M) (lowerBounds.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2)) (SMul.smul.{u1, u2} 𝕜 (Set.{u2} M) (Set.smulSet.{u1, u2} 𝕜 M (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 M (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4)))) c s)) (SMul.smul.{u1, u2} 𝕜 (Set.{u2} M) (Set.smulSet.{u1, u2} 𝕜 M (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 M (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4)))) c (lowerBounds.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2)) s)))
but is expected to have type
forall {𝕜 : Type.{u2}} {M : Type.{u1}} [_inst_1 : LinearOrderedSemifield.{u2} 𝕜] [_inst_2 : OrderedAddCommMonoid.{u1} M] [_inst_4 : MulActionWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2)))] [_inst_6 : OrderedSMul.{u2, u1} 𝕜 M (OrderedCommSemiring.toOrderedSemiring.{u2} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1)))) _inst_2 (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_4)] {s : Set.{u1} M} {c : 𝕜}, (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (StrictOrderedSemiring.toPartialOrder.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1)))))) (OfNat.ofNat.{u2} 𝕜 0 (Zero.toOfNat0.{u2} 𝕜 (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 _inst_1)))))) c) -> (Eq.{succ u1} (Set.{u1} M) (lowerBounds.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2)) (HSMul.hSMul.{u2, u1, u1} 𝕜 (Set.{u1} M) (Set.{u1} M) (instHSMul.{u2, u1} 𝕜 (Set.{u1} M) (Set.smulSet.{u2, u1} 𝕜 M (SMulZeroClass.toSMul.{u2, u1} 𝕜 M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 M (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 _inst_1)))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_4))))) c s)) (HSMul.hSMul.{u2, u1, u1} 𝕜 (Set.{u1} M) (Set.{u1} M) (instHSMul.{u2, u1} 𝕜 (Set.{u1} M) (Set.smulSet.{u2, u1} 𝕜 M (SMulZeroClass.toSMul.{u2, u1} 𝕜 M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 M (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 _inst_1)))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_4))))) c (lowerBounds.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2)) s)))
Case conversion may be inaccurate. Consider using '#align lower_bounds_smul_of_pos lowerBounds_smul_of_posₓ'. -/
@@ -472,7 +472,7 @@ theorem lowerBounds_smul_of_pos (hc : 0 < c) : lowerBounds (c • s) = c • low
/- warning: upper_bounds_smul_of_pos -> upperBounds_smul_of_pos is a dubious translation:
lean 3 declaration is
- forall {𝕜 : Type.{u1}} {M : Type.{u2}} [_inst_1 : LinearOrderedSemifield.{u1} 𝕜] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_4 : MulActionWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_6 : OrderedSMul.{u1, u2} 𝕜 M (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1)))) _inst_2 (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4)] {s : Set.{u2} M} {c : 𝕜}, (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedCancelAddCommMonoid.toPartialOrder.{u1} 𝕜 (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))))))))) c) -> (Eq.{succ u2} (Set.{u2} M) (upperBounds.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2)) (SMul.smul.{u1, u2} 𝕜 (Set.{u2} M) (Set.smulSet.{u1, u2} 𝕜 M (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 M (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4)))) c s)) (SMul.smul.{u1, u2} 𝕜 (Set.{u2} M) (Set.smulSet.{u1, u2} 𝕜 M (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 M (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4)))) c (upperBounds.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2)) s)))
+ forall {𝕜 : Type.{u1}} {M : Type.{u2}} [_inst_1 : LinearOrderedSemifield.{u1} 𝕜] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_4 : MulActionWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_6 : OrderedSMul.{u1, u2} 𝕜 M (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1)))) _inst_2 (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4)] {s : Set.{u2} M} {c : 𝕜}, (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedCancelAddCommMonoid.toPartialOrder.{u1} 𝕜 (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))))))))) c) -> (Eq.{succ u2} (Set.{u2} M) (upperBounds.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2)) (SMul.smul.{u1, u2} 𝕜 (Set.{u2} M) (Set.smulSet.{u1, u2} 𝕜 M (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 M (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4)))) c s)) (SMul.smul.{u1, u2} 𝕜 (Set.{u2} M) (Set.smulSet.{u1, u2} 𝕜 M (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 M (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4)))) c (upperBounds.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2)) s)))
but is expected to have type
forall {𝕜 : Type.{u2}} {M : Type.{u1}} [_inst_1 : LinearOrderedSemifield.{u2} 𝕜] [_inst_2 : OrderedAddCommMonoid.{u1} M] [_inst_4 : MulActionWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2)))] [_inst_6 : OrderedSMul.{u2, u1} 𝕜 M (OrderedCommSemiring.toOrderedSemiring.{u2} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1)))) _inst_2 (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_4)] {s : Set.{u1} M} {c : 𝕜}, (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (StrictOrderedSemiring.toPartialOrder.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1)))))) (OfNat.ofNat.{u2} 𝕜 0 (Zero.toOfNat0.{u2} 𝕜 (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 _inst_1)))))) c) -> (Eq.{succ u1} (Set.{u1} M) (upperBounds.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2)) (HSMul.hSMul.{u2, u1, u1} 𝕜 (Set.{u1} M) (Set.{u1} M) (instHSMul.{u2, u1} 𝕜 (Set.{u1} M) (Set.smulSet.{u2, u1} 𝕜 M (SMulZeroClass.toSMul.{u2, u1} 𝕜 M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 M (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 _inst_1)))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_4))))) c s)) (HSMul.hSMul.{u2, u1, u1} 𝕜 (Set.{u1} M) (Set.{u1} M) (instHSMul.{u2, u1} 𝕜 (Set.{u1} M) (Set.smulSet.{u2, u1} 𝕜 M (SMulZeroClass.toSMul.{u2, u1} 𝕜 M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 M (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 _inst_1)))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_4))))) c (upperBounds.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2)) s)))
Case conversion may be inaccurate. Consider using '#align upper_bounds_smul_of_pos upperBounds_smul_of_posₓ'. -/
@@ -483,7 +483,7 @@ theorem upperBounds_smul_of_pos (hc : 0 < c) : upperBounds (c • s) = c • upp
/- warning: bdd_below_smul_iff_of_pos -> bddBelow_smul_iff_of_pos is a dubious translation:
lean 3 declaration is
- forall {𝕜 : Type.{u1}} {M : Type.{u2}} [_inst_1 : LinearOrderedSemifield.{u1} 𝕜] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_4 : MulActionWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_6 : OrderedSMul.{u1, u2} 𝕜 M (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1)))) _inst_2 (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4)] {s : Set.{u2} M} {c : 𝕜}, (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedCancelAddCommMonoid.toPartialOrder.{u1} 𝕜 (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))))))))) c) -> (Iff (BddBelow.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2)) (SMul.smul.{u1, u2} 𝕜 (Set.{u2} M) (Set.smulSet.{u1, u2} 𝕜 M (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 M (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4)))) c s)) (BddBelow.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2)) s))
+ forall {𝕜 : Type.{u1}} {M : Type.{u2}} [_inst_1 : LinearOrderedSemifield.{u1} 𝕜] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_4 : MulActionWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_6 : OrderedSMul.{u1, u2} 𝕜 M (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1)))) _inst_2 (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4)] {s : Set.{u2} M} {c : 𝕜}, (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedCancelAddCommMonoid.toPartialOrder.{u1} 𝕜 (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))))))))) c) -> (Iff (BddBelow.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2)) (SMul.smul.{u1, u2} 𝕜 (Set.{u2} M) (Set.smulSet.{u1, u2} 𝕜 M (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 M (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4)))) c s)) (BddBelow.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2)) s))
but is expected to have type
forall {𝕜 : Type.{u2}} {M : Type.{u1}} [_inst_1 : LinearOrderedSemifield.{u2} 𝕜] [_inst_2 : OrderedAddCommMonoid.{u1} M] [_inst_4 : MulActionWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2)))] [_inst_6 : OrderedSMul.{u2, u1} 𝕜 M (OrderedCommSemiring.toOrderedSemiring.{u2} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1)))) _inst_2 (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_4)] {s : Set.{u1} M} {c : 𝕜}, (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (StrictOrderedSemiring.toPartialOrder.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1)))))) (OfNat.ofNat.{u2} 𝕜 0 (Zero.toOfNat0.{u2} 𝕜 (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 _inst_1)))))) c) -> (Iff (BddBelow.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2)) (HSMul.hSMul.{u2, u1, u1} 𝕜 (Set.{u1} M) (Set.{u1} M) (instHSMul.{u2, u1} 𝕜 (Set.{u1} M) (Set.smulSet.{u2, u1} 𝕜 M (SMulZeroClass.toSMul.{u2, u1} 𝕜 M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 M (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 _inst_1)))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_4))))) c s)) (BddBelow.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2)) s))
Case conversion may be inaccurate. Consider using '#align bdd_below_smul_iff_of_pos bddBelow_smul_iff_of_posₓ'. -/
@@ -494,7 +494,7 @@ theorem bddBelow_smul_iff_of_pos (hc : 0 < c) : BddBelow (c • s) ↔ BddBelow
/- warning: bdd_above_smul_iff_of_pos -> bddAbove_smul_iff_of_pos is a dubious translation:
lean 3 declaration is
- forall {𝕜 : Type.{u1}} {M : Type.{u2}} [_inst_1 : LinearOrderedSemifield.{u1} 𝕜] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_4 : MulActionWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_6 : OrderedSMul.{u1, u2} 𝕜 M (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1)))) _inst_2 (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4)] {s : Set.{u2} M} {c : 𝕜}, (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedCancelAddCommMonoid.toPartialOrder.{u1} 𝕜 (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))))))))) c) -> (Iff (BddAbove.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2)) (SMul.smul.{u1, u2} 𝕜 (Set.{u2} M) (Set.smulSet.{u1, u2} 𝕜 M (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 M (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4)))) c s)) (BddAbove.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2)) s))
+ forall {𝕜 : Type.{u1}} {M : Type.{u2}} [_inst_1 : LinearOrderedSemifield.{u1} 𝕜] [_inst_2 : OrderedAddCommMonoid.{u2} M] [_inst_4 : MulActionWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2))))] [_inst_6 : OrderedSMul.{u1, u2} 𝕜 M (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1)))) _inst_2 (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4)] {s : Set.{u2} M} {c : 𝕜}, (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedCancelAddCommMonoid.toPartialOrder.{u1} 𝕜 (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))))))))) c) -> (Iff (BddAbove.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2)) (SMul.smul.{u1, u2} 𝕜 (Set.{u2} M) (Set.smulSet.{u1, u2} 𝕜 M (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 M (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (OrderedAddCommMonoid.toAddCommMonoid.{u2} M _inst_2)))) _inst_4)))) c s)) (BddAbove.{u2} M (PartialOrder.toPreorder.{u2} M (OrderedAddCommMonoid.toPartialOrder.{u2} M _inst_2)) s))
but is expected to have type
forall {𝕜 : Type.{u2}} {M : Type.{u1}} [_inst_1 : LinearOrderedSemifield.{u2} 𝕜] [_inst_2 : OrderedAddCommMonoid.{u1} M] [_inst_4 : MulActionWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2)))] [_inst_6 : OrderedSMul.{u2, u1} 𝕜 M (OrderedCommSemiring.toOrderedSemiring.{u2} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1)))) _inst_2 (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_4)] {s : Set.{u1} M} {c : 𝕜}, (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (StrictOrderedSemiring.toPartialOrder.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1)))))) (OfNat.ofNat.{u2} 𝕜 0 (Zero.toOfNat0.{u2} 𝕜 (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 _inst_1)))))) c) -> (Iff (BddAbove.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2)) (HSMul.hSMul.{u2, u1, u1} 𝕜 (Set.{u1} M) (Set.{u1} M) (instHSMul.{u2, u1} 𝕜 (Set.{u1} M) (Set.smulSet.{u2, u1} 𝕜 M (SMulZeroClass.toSMul.{u2, u1} 𝕜 M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 M (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 _inst_1)))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (OrderedAddCommMonoid.toAddCommMonoid.{u1} M _inst_2))) _inst_4))))) c s)) (BddAbove.{u1} M (PartialOrder.toPreorder.{u1} M (OrderedAddCommMonoid.toPartialOrder.{u1} M _inst_2)) s))
Case conversion may be inaccurate. Consider using '#align bdd_above_smul_iff_of_pos bddAbove_smul_iff_of_posₓ'. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
@@ -92,7 +92,7 @@ instance Nat.orderedSMul [LinearOrderedCancelAddCommMonoid M] : OrderedSMul ℕ
instance Int.orderedSMul [LinearOrderedAddCommGroup M] : OrderedSMul ℤ M :=
OrderedSMul.mk'' fun n hn => by
cases n
- · simp only [Int.ofNat_eq_coe, Int.coe_nat_pos, natCast_zsmul] at hn ⊢
+ · simp only [Int.ofNat_eq_coe, Int.natCast_pos, natCast_zsmul] at hn ⊢
exact strictMono_smul_left_of_pos hn
· cases (Int.negSucc_not_pos _).1 hn
#align int.ordered_smul Int.orderedSMul
@@ -119,7 +119,7 @@ theorem OrderedSMul.mk' (h : ∀ ⦃a b : M⦄ ⦃c : 𝕜⦄, a < b → 0 < c
OrderedSMul 𝕜 M := by
have hlt' : ∀ (a b : M) (c : 𝕜), a < b → 0 < c → c • a < c • b := by
refine' fun a b c hab hc => (h hab hc).lt_of_ne _
- rw [Ne.def, hc.ne'.isUnit.smul_left_cancel]
+ rw [Ne, hc.ne'.isUnit.smul_left_cancel]
exact hab.ne
refine' { smul_lt_smul_of_pos := fun {a b c} => hlt' a b c..}
intro a b c hab hc
We change the following field in the definition of an additive commutative monoid:
nsmul_succ : ∀ (n : ℕ) (x : G),
- AddMonoid.nsmul (n + 1) x = x + AddMonoid.nsmul n x
+ AddMonoid.nsmul (n + 1) x = AddMonoid.nsmul n x + x
where the latter is more natural
We adjust the definitions of ^
in monoids, groups, etc.
Originally there was a warning comment about why this natural order was preferred
use
x * npowRec n x
and notnpowRec n x * x
in the definition to make sure that definitional unfolding ofnpowRec
is blocked, to avoid deep recursion issues.
but it seems to no longer apply.
Remarks on the PR :
pow_succ
and pow_succ'
have switched their meanings.Ideal.IsPrime.mul_mem_pow
which is defined in [Mathlib/RingTheory/DedekindDomain/Ideal.lean]. Changing the order of operation forced me to add the symmetric lemma Ideal.IsPrime.mem_pow_mul
.@@ -86,7 +86,7 @@ instance Nat.orderedSMul [LinearOrderedCancelAddCommMonoid M] : OrderedSMul ℕ
| succ n =>
induction n with
| zero => dsimp; rwa [one_nsmul, one_nsmul]
- | succ n ih => simp only [succ_nsmul _ n.succ, _root_.add_lt_add hab (ih n.succ_pos)]
+ | succ n ih => simp only [succ_nsmul _ n.succ, _root_.add_lt_add (ih n.succ_pos) hab]
#align nat.ordered_smul Nat.orderedSMul
instance Int.orderedSMul [LinearOrderedAddCommGroup M] : OrderedSMul ℤ M :=
I removed some redundant instance arguments throughout Mathlib. To do this, I used VS Code's regex search. See https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/repeating.20instances.20from.20variable.20command I closed the previous PR for this and reopened it.
@@ -65,8 +65,7 @@ instance OrderedSMul.toPosSMulStrictMono : PosSMulStrictMono R M where
instance OrderedSMul.toPosSMulReflectLT : PosSMulReflectLT R M :=
PosSMulReflectLT.of_pos fun _a ha _b₁ _b₂ h ↦ OrderedSMul.lt_of_smul_lt_smul_of_pos h ha
-instance OrderDual.instOrderedSMul [OrderedSemiring R] [OrderedAddCommMonoid M] [SMulWithZero R M]
- [OrderedSMul R M] : OrderedSMul R Mᵒᵈ where
+instance OrderDual.instOrderedSMul : OrderedSMul R Mᵒᵈ where
smul_lt_smul_of_pos := OrderedSMul.smul_lt_smul_of_pos (M := M)
lt_of_smul_lt_smul_of_pos := OrderedSMul.lt_of_smul_lt_smul_of_pos (M := M)
zpow_coe_nat
to zpow_natCast
(#11528)
... and add a deprecated alias for the old name. This is mostly just me discovering the power of F2
@@ -93,7 +93,7 @@ instance Nat.orderedSMul [LinearOrderedCancelAddCommMonoid M] : OrderedSMul ℕ
instance Int.orderedSMul [LinearOrderedAddCommGroup M] : OrderedSMul ℤ M :=
OrderedSMul.mk'' fun n hn => by
cases n
- · simp only [Int.ofNat_eq_coe, Int.coe_nat_pos, coe_nat_zsmul] at hn ⊢
+ · simp only [Int.ofNat_eq_coe, Int.coe_nat_pos, natCast_zsmul] at hn ⊢
exact strictMono_smul_left_of_pos hn
· cases (Int.negSucc_not_pos _).1 hn
#align int.ordered_smul Int.orderedSMul
Some of these are already transitively imported, others aren't used at all (but not handled by noshake in #9772).
Mostly I wanted to avoid needing all of algebra imported (but unused!) in FilteredColimitCommutesFiniteLimit
; there are now some assert_not_exists
to preserve this.
Co-authored-by: Scott Morrison <scott.morrison@gmail.com>
@@ -9,7 +9,6 @@ import Mathlib.Algebra.Order.Module.Defs
import Mathlib.Algebra.Order.Monoid.Prod
import Mathlib.Algebra.Order.Pi
import Mathlib.Tactic.GCongr.Core
-import Mathlib.Tactic.Positivity
#align_import algebra.order.smul from "leanprover-community/mathlib"@"3ba15165bd6927679be7c22d6091a87337e3cd0c"
@@ -5,11 +5,9 @@ Authors: Frédéric Dupuis
-/
import Mathlib.Algebra.Module.Pi
import Mathlib.Algebra.Module.Prod
-import Mathlib.Algebra.Order.Group.PosPart
import Mathlib.Algebra.Order.Module.Defs
import Mathlib.Algebra.Order.Monoid.Prod
import Mathlib.Algebra.Order.Pi
-import Mathlib.Data.Set.Pointwise.SMul
import Mathlib.Tactic.GCongr.Core
import Mathlib.Tactic.Positivity
@@ -45,8 +45,6 @@ This file is now mostly useless. We should try deleting `OrderedSMul`
ordered module, ordered scalar, ordered smul, ordered action, ordered vector space
-/
-open LatticeOrderedCommGroup
-
/-- The ordered scalar product property is when an ordered additive commutative monoid
with a partial order has a scalar multiplication which is compatible with the order.
-/
@@ -5,6 +5,7 @@ Authors: Frédéric Dupuis
-/
import Mathlib.Algebra.Module.Pi
import Mathlib.Algebra.Module.Prod
+import Mathlib.Algebra.Order.Group.PosPart
import Mathlib.Algebra.Order.Module.Defs
import Mathlib.Algebra.Order.Monoid.Prod
import Mathlib.Algebra.Order.Pi
@@ -44,6 +45,8 @@ This file is now mostly useless. We should try deleting `OrderedSMul`
ordered module, ordered scalar, ordered smul, ordered action, ordered vector space
-/
+open LatticeOrderedCommGroup
+
/-- The ordered scalar product property is when an ordered additive commutative monoid
with a partial order has a scalar multiplication which is compatible with the order.
-/
@@ -145,3 +148,33 @@ instance Pi.orderedSMul {M : ι → Type*} [∀ i, OrderedAddCommMonoid (M i)]
#noalign pi.ordered_smul''
end LinearOrderedSemifield
+
+section Invertible
+variable (α : Type*) {β : Type*}
+variable [Semiring α] [Invertible (2 : α)] [Lattice β] [AddCommGroup β] [Module α β]
+ [CovariantClass β β (· + ·) (· ≤ ·)]
+
+lemma inf_eq_half_smul_add_sub_abs_sub (x y : β) : x ⊓ y = (⅟2 : α) • (x + y - |y - x|) := by
+ rw [← two_nsmul_inf_eq_add_sub_abs_sub x y, two_smul, ← two_smul α,
+ smul_smul, invOf_mul_self, one_smul]
+
+lemma sup_eq_half_smul_add_add_abs_sub (x y : β) : x ⊔ y = (⅟2 : α) • (x + y + |y - x|) := by
+ rw [← two_nsmul_sup_eq_add_add_abs_sub x y, two_smul, ← two_smul α,
+ smul_smul, invOf_mul_self, one_smul]
+
+end Invertible
+
+section DivisionSemiring
+variable (α : Type*) {β : Type*}
+variable [DivisionSemiring α] [NeZero (2 : α)] [Lattice β] [AddCommGroup β] [Module α β]
+ [CovariantClass β β (· + ·) (· ≤ ·)]
+
+lemma inf_eq_half_smul_add_sub_abs_sub' (x y : β) : x ⊓ y = (2⁻¹ : α) • (x + y - |y - x|) := by
+ letI := invertibleOfNonzero (two_ne_zero' α)
+ exact inf_eq_half_smul_add_sub_abs_sub α x y
+
+lemma sup_eq_half_smul_add_add_abs_sub' (x y : β) : x ⊔ y = (2⁻¹ : α) • (x + y + |y - x|) := by
+ letI := invertibleOfNonzero (two_ne_zero' α)
+ exact sup_eq_half_smul_add_add_abs_sub α x y
+
+end DivisionSemiring
@@ -65,7 +65,7 @@ instance OrderedSMul.toPosSMulStrictMono : PosSMulStrictMono R M where
elim _a ha _b₁ _b₂ hb := OrderedSMul.smul_lt_smul_of_pos hb ha
instance OrderedSMul.toPosSMulReflectLT : PosSMulReflectLT R M :=
- PosSMulReflectLT.of_pos $ fun _a ha _b₁ _b₂ h ↦ OrderedSMul.lt_of_smul_lt_smul_of_pos h ha
+ PosSMulReflectLT.of_pos fun _a ha _b₁ _b₂ h ↦ OrderedSMul.lt_of_smul_lt_smul_of_pos h ha
instance OrderDual.instOrderedSMul [OrderedSemiring R] [OrderedAddCommMonoid M] [SMulWithZero R M]
[OrderedSMul R M] : OrderedSMul R Mᵒᵈ where
•
lemmas (#9179)
Remove the duplicates introduced in #8869 by sorting the lemmas in Algebra.Order.SMul
into three files:
Algebra.Order.Module.Defs
for the order isomorphism induced by scalar multiplication by a positivity elementAlgebra.Order.Module.Pointwise
for the order properties of scalar multiplication of sets. This file is new. I credit myself for https://github.com/leanprover-community/mathlib/pull/9078Algebra.Order.Module.OrderedSMul
: The material about OrderedSMul
per se. Inherits the copyright header from Algebra.Order.SMul
. This file should eventually be deleted.I move each #align
to the correct file. On top of that, I delete unused redundant OrderedSMul
instances (they were useful in Lean 3, but not anymore) and eq_of_smul_eq_smul_of_pos_of_le
/eq_of_smul_eq_smul_of_neg_of_le
since those lemmas are weird and unused.
This PR introduces eight typeclasses for monotonicity of left/right scalar multiplication by nonnegative elements:
PosSMulMono
: If a ≥ 0
, then b₁ ≤ b₂
implies a • b₁ ≤ a • b₂
.PosSMulStrictMono
: If a > 0
, then b₁ < b₂
implies a • b₁ < a • b₂
.PosSMulReflectLT
: If a ≥ 0
, then a • b₁ < a • b₂
implies b₁ < b₂
.PosSMulReflectLE
: If a > 0
, then a • b₁ ≤ a • b₂
implies b₁ ≤ b₂
.SMulPosMono
: If b ≥ 0
, then a₁ ≤ a₂
implies a₁ • b ≤ a₂ • b
.SMulPosStrictMono
: If b > 0
, then a₁ < a₂
implies a₁ • b < a₂ • b
.SMulPosReflectLT
: If b ≥ 0
, then a₁ • b < a₂ • b
implies a₁ < a₂
.SMulPosReflectLE
: If b > 0
, then a₁ • b ≤ a₂ • b
implies a₁ ≤ a₂
.The design is heavily inspired to the corresponding one for multiplication (see Algebra.Order.Ring.Lemmas
). Note however the following differences:
CovariantClass
/ContravariantClass
invokations. This has the following benefits:
CovariantClass
/ContravariantClass
list.CovariantClass
/ContravariantClass
instances.SMulPosReflectLT
/SMulPosReflectLE
did not fit in the framework since they relate ≤
on two different types. So I would have had to generalise CovariantClass
/ContravariantClass
to three types and two relations.a : α
, h : 0 ≤ a
instead of a : {a : α // 0 ≤ a}
. This actually makes some instances surprisingly cleaner to prove.CovariantClass
/ContravariantClass
framework was only used to automate very simple logic anyway. It was easily copied over.Algebra.Order.Ring.Lemmas
(by myself).This PR links the new typeclasses to OrderedSMul
and makes all old lemmas in Algebra.Order.SMul
one-liners in terms of the new lemmas (except when they have the same name, in which case the lemma is simply moved) but doesn't delete the old ones to reduce churn. What remains to be done afterwards is thus:
Algebra.Order.SMul
Algebra.Order.Module
to Algebra.Order.Module.Defs
OrderedSMul
@@ -5,7 +5,7 @@ Authors: Frédéric Dupuis
-/
import Mathlib.Algebra.Module.Pi
import Mathlib.Algebra.Module.Prod
-import Mathlib.Algebra.Order.Module.Synonym
+import Mathlib.Algebra.Order.Module.Defs
import Mathlib.Algebra.Order.Monoid.Prod
import Mathlib.Algebra.Order.Pi
import Mathlib.Data.Set.Pointwise.SMul
@@ -31,6 +31,10 @@ In this file we define
* To get ordered modules and ordered vector spaces, it suffices to replace the
`OrderedAddCommMonoid` and the `OrderedSemiring` as desired.
+## TODO
+
+Delete the lemmas that have been generalised by `PosSMulMono` and friends.
+
## References
* https://en.wikipedia.org/wiki/Ordered_vector_space
@@ -66,29 +70,21 @@ section OrderedSMul
variable [OrderedSemiring R] [OrderedAddCommMonoid M] [SMulWithZero R M] [OrderedSMul R M]
{s : Set M} {a b : M} {c : R}
-@[gcongr] theorem smul_lt_smul_of_pos : a < b → 0 < c → c • a < c • b :=
- OrderedSMul.smul_lt_smul_of_pos
-#align smul_lt_smul_of_pos smul_lt_smul_of_pos
+instance OrderedSMul.toPosSMulStrictMono : PosSMulStrictMono R M where
+ elim _a ha _b₁ _b₂ hb := OrderedSMul.smul_lt_smul_of_pos hb ha
-@[gcongr] theorem smul_le_smul_of_nonneg (h₁ : a ≤ b) (h₂ : 0 ≤ c) : c • a ≤ c • b := by
- rcases h₁.eq_or_lt with (rfl | hab)
- · rfl
- · rcases h₂.eq_or_lt with (rfl | hc)
- · rw [zero_smul, zero_smul]
- · exact (smul_lt_smul_of_pos hab hc).le
-#align smul_le_smul_of_nonneg smul_le_smul_of_nonneg
+instance OrderedSMul.toPosSMulReflectLT : PosSMulReflectLT R M :=
+ PosSMulReflectLT.of_pos $ fun _a ha _b₁ _b₂ h ↦ OrderedSMul.lt_of_smul_lt_smul_of_pos h ha
+
+@[gcongr] theorem smul_lt_smul_of_pos : a < b → 0 < c → c • a < c • b := smul_lt_smul_of_pos_left
+#align smul_lt_smul_of_pos smul_lt_smul_of_pos
-- TODO: Remove `smul_le_smul_of_nonneg` completely
-alias smul_le_smul_of_nonneg_left := smul_le_smul_of_nonneg
+@[gcongr] theorem smul_le_smul_of_nonneg (h₁ : a ≤ b) (h₂ : 0 ≤ c) : c • a ≤ c • b :=
+ smul_le_smul_of_nonneg_left h₁ h₂
+#align smul_le_smul_of_nonneg smul_le_smul_of_nonneg
-theorem smul_nonneg (hc : 0 ≤ c) (ha : 0 ≤ a) : 0 ≤ c • a :=
- calc
- (0 : M) = c • (0 : M) := (smul_zero c).symm
- _ ≤ c • a := smul_le_smul_of_nonneg ha hc
#align smul_nonneg smul_nonneg
-
-theorem smul_nonpos_of_nonneg_of_nonpos (hc : 0 ≤ c) (ha : a ≤ 0) : c • a ≤ 0 :=
- @smul_nonneg R Mᵒᵈ _ _ _ _ _ _ hc ha
#align smul_nonpos_of_nonneg_of_nonpos smul_nonpos_of_nonneg_of_nonpos
theorem eq_of_smul_eq_smul_of_pos_of_le (h₁ : c • a = c • b) (hc : 0 < c) (hle : a ≤ b) : a = b :=
@@ -96,30 +92,24 @@ theorem eq_of_smul_eq_smul_of_pos_of_le (h₁ : c • a = c • b) (hc : 0 < c)
#align eq_of_smul_eq_smul_of_pos_of_le eq_of_smul_eq_smul_of_pos_of_le
theorem lt_of_smul_lt_smul_of_nonneg (h : c • a < c • b) (hc : 0 ≤ c) : a < b :=
- hc.eq_or_lt.elim
- (fun hc => False.elim <| lt_irrefl (0 : M) <| by rwa [← hc, zero_smul, zero_smul] at h)
- (OrderedSMul.lt_of_smul_lt_smul_of_pos h)
+ lt_of_smul_lt_smul_of_nonneg_left h hc
#align lt_of_smul_lt_smul_of_nonneg lt_of_smul_lt_smul_of_nonneg
theorem smul_lt_smul_iff_of_pos (hc : 0 < c) : c • a < c • b ↔ a < b :=
- ⟨fun h => lt_of_smul_lt_smul_of_nonneg h hc.le, fun h => smul_lt_smul_of_pos h hc⟩
+ smul_lt_smul_iff_of_pos_left hc
#align smul_lt_smul_iff_of_pos smul_lt_smul_iff_of_pos
-theorem smul_pos_iff_of_pos (hc : 0 < c) : 0 < c • a ↔ 0 < a :=
- calc
- 0 < c • a ↔ c • (0 : M) < c • a := by rw [smul_zero]
- _ ↔ 0 < a := smul_lt_smul_iff_of_pos hc
+theorem smul_pos_iff_of_pos (hc : 0 < c) : 0 < c • a ↔ 0 < a := smul_pos_iff_of_pos_left hc
#align smul_pos_iff_of_pos smul_pos_iff_of_pos
-alias ⟨_, smul_pos⟩ := smul_pos_iff_of_pos
#align smul_pos smul_pos
-theorem monotone_smul_left (hc : 0 ≤ c) : Monotone (SMul.smul c : M → M) := fun _ _ h =>
- smul_le_smul_of_nonneg h hc
+theorem monotone_smul_left (hc : 0 ≤ c) : Monotone (SMul.smul c : M → M) :=
+ monotone_smul_left_of_nonneg hc
#align monotone_smul_left monotone_smul_left
-theorem strictMono_smul_left (hc : 0 < c) : StrictMono (SMul.smul c : M → M) := fun _ _ h =>
- smul_lt_smul_of_pos h hc
+theorem strictMono_smul_left (hc : 0 < c) : StrictMono (SMul.smul c : M → M) :=
+ strictMono_smul_left_of_pos hc
#align strict_mono_smul_left strictMono_smul_left
theorem smul_lowerBounds_subset_lowerBounds_smul (hc : 0 ≤ c) :
@@ -178,11 +168,11 @@ instance LinearOrderedSemiring.toOrderedSMul : OrderedSMul R R :=
#align linear_ordered_semiring.to_ordered_smul LinearOrderedSemiring.toOrderedSMul
theorem smul_max (ha : 0 ≤ a) (b₁ b₂ : M) : a • max b₁ b₂ = max (a • b₁) (a • b₂) :=
- (monotone_smul_left ha : Monotone (_ : M → M)).map_max
+ smul_max_of_nonneg ha _ _
#align smul_max smul_max
theorem smul_min (ha : 0 ≤ a) (b₁ b₂ : M) : a • min b₁ b₂ = min (a • b₁) (a • b₂) :=
- (monotone_smul_left ha : Monotone (_ : M → M)).map_min
+ smul_min_of_nonneg ha _ _
#align smul_min smul_min
end LinearOrderedSemiring
@@ -231,26 +221,19 @@ instance Pi.orderedSMul'' : OrderedSMul 𝕜 (ι → 𝕜) :=
variable [OrderedSMul 𝕜 M] {s : Set M} {a b : M} {c : 𝕜}
theorem smul_le_smul_iff_of_pos (hc : 0 < c) : c • a ≤ c • b ↔ a ≤ b :=
- ⟨fun h =>
- inv_smul_smul₀ hc.ne' a ▸
- inv_smul_smul₀ hc.ne' b ▸ smul_le_smul_of_nonneg h (inv_nonneg.2 hc.le),
- fun h => smul_le_smul_of_nonneg h hc.le⟩
+ smul_le_smul_iff_of_pos_left hc
#align smul_le_smul_iff_of_pos smul_le_smul_iff_of_pos
-theorem inv_smul_le_iff (h : 0 < c) : c⁻¹ • a ≤ b ↔ a ≤ c • b := by
- rw [← smul_le_smul_iff_of_pos h, smul_inv_smul₀ h.ne']
+theorem inv_smul_le_iff (h : 0 < c) : c⁻¹ • a ≤ b ↔ a ≤ c • b := inv_smul_le_iff_of_pos h
#align inv_smul_le_iff inv_smul_le_iff
-theorem inv_smul_lt_iff (h : 0 < c) : c⁻¹ • a < b ↔ a < c • b := by
- rw [← smul_lt_smul_iff_of_pos h, smul_inv_smul₀ h.ne']
+theorem inv_smul_lt_iff (h : 0 < c) : c⁻¹ • a < b ↔ a < c • b := inv_smul_lt_iff_of_pos h
#align inv_smul_lt_iff inv_smul_lt_iff
-theorem le_inv_smul_iff (h : 0 < c) : a ≤ c⁻¹ • b ↔ c • a ≤ b := by
- rw [← smul_le_smul_iff_of_pos h, smul_inv_smul₀ h.ne']
+theorem le_inv_smul_iff (h : 0 < c) : a ≤ c⁻¹ • b ↔ c • a ≤ b := le_inv_smul_iff_of_pos h
#align le_inv_smul_iff le_inv_smul_iff
-theorem lt_inv_smul_iff (h : 0 < c) : a < c⁻¹ • b ↔ c • a < b := by
- rw [← smul_lt_smul_iff_of_pos h, smul_inv_smul₀ h.ne']
+theorem lt_inv_smul_iff (h : 0 < c) : a < c⁻¹ • b ↔ c • a < b := lt_inv_smul_iff_of_pos h
#align lt_inv_smul_iff lt_inv_smul_iff
variable (M)
https://en.wikipedia.org/wiki/Ordered_module doesn't exist but https://en.wikipedia.org/wiki/Ordered_vector_space does. Also delete instModuleOrderDual
, which was accidentally duplicated (with a more general statement) as OrderDual.instModule'
in #8840.
@@ -33,7 +33,7 @@ In this file we define
## References
-* https://en.wikipedia.org/wiki/Ordered_module
+* https://en.wikipedia.org/wiki/Ordered_vector_space
## Tags
OrderDual
action instances to their own file (#8840)
Also add a few missing ones:
OrderDual.instSMulWithZero
OrderDual.instMulAction
OrderDual.instMulActionWithZero
OrderDual.instDistribMulAction
In every case, we prime the originally unprimed/unnamed version.
@@ -5,6 +5,7 @@ Authors: Frédéric Dupuis
-/
import Mathlib.Algebra.Module.Pi
import Mathlib.Algebra.Module.Prod
+import Mathlib.Algebra.Order.Module.Synonym
import Mathlib.Algebra.Order.Monoid.Prod
import Mathlib.Algebra.Order.Pi
import Mathlib.Data.Set.Pointwise.SMul
@@ -55,57 +56,10 @@ class OrderedSMul (R M : Type*) [OrderedSemiring R] [OrderedAddCommMonoid M] [SM
variable {ι α β γ 𝕜 R M N : Type*}
-namespace OrderDual
-
-instance OrderDual.instSMulWithZero [Zero R] [AddZeroClass M] [SMulWithZero R M] :
- SMulWithZero R Mᵒᵈ :=
- { OrderDual.instSMul with
- zero_smul := fun m => OrderDual.rec (zero_smul _) m
- smul_zero := fun r => OrderDual.rec (@smul_zero R M _ _) r }
-
-@[to_additive]
-instance OrderDual.instMulAction [Monoid R] [MulAction R M] : MulAction R Mᵒᵈ :=
- { OrderDual.instSMul with
- one_smul := fun m => OrderDual.rec (one_smul _) m
- mul_smul := fun r => OrderDual.rec (@mul_smul R M _ _) r }
-
-@[to_additive]
-instance OrderDual.instSMulCommClass [SMul β γ] [SMul α γ] [SMulCommClass α β γ] :
- SMulCommClass αᵒᵈ β γ := ‹SMulCommClass α β γ›
-
-@[to_additive]
-instance OrderDual.instSMulCommClass' [SMul β γ] [SMul α γ] [SMulCommClass α β γ] :
- SMulCommClass α βᵒᵈ γ := ‹SMulCommClass α β γ›
-
-@[to_additive]
-instance OrderDual.instSMulCommClass'' [SMul β γ] [SMul α γ] [SMulCommClass α β γ] :
- SMulCommClass α β γᵒᵈ := ‹SMulCommClass α β γ›
-
-@[to_additive OrderDual.instVAddAssocClass]
-instance OrderDual.instIsScalarTower [SMul α β] [SMul β γ] [SMul α γ] [IsScalarTower α β γ] :
- IsScalarTower αᵒᵈ β γ := ‹IsScalarTower α β γ›
-
-@[to_additive OrderDual.instVAddAssocClass']
-instance OrderDual.instIsScalarTower' [SMul α β] [SMul β γ] [SMul α γ] [IsScalarTower α β γ] :
- IsScalarTower α βᵒᵈ γ := ‹IsScalarTower α β γ›
-
-@[to_additive OrderDual.instVAddAssocClass'']
-instance OrderDual.IsScalarTower'' [SMul α β] [SMul β γ] [SMul α γ] [IsScalarTower α β γ] :
- IsScalarTower α β γᵒᵈ := ‹IsScalarTower α β γ›
-
-instance [MonoidWithZero R] [AddMonoid M] [MulActionWithZero R M] : MulActionWithZero R Mᵒᵈ :=
- { OrderDual.instMulAction, OrderDual.instSMulWithZero with }
-
-instance [MonoidWithZero R] [AddMonoid M] [DistribMulAction R M] : DistribMulAction R Mᵒᵈ where
- smul_add _ a := OrderDual.rec (fun _ b => OrderDual.rec (smul_add _ _) b) a
- smul_zero r := OrderDual.rec (@smul_zero _ M _ _) r
-
-instance [OrderedSemiring R] [OrderedAddCommMonoid M] [SMulWithZero R M] [OrderedSMul R M] :
- OrderedSMul R Mᵒᵈ where
- smul_lt_smul_of_pos {a b} := @OrderedSMul.smul_lt_smul_of_pos R M _ _ _ _ b a
- lt_of_smul_lt_smul_of_pos {a b} := @OrderedSMul.lt_of_smul_lt_smul_of_pos R M _ _ _ _ b a
-
-end OrderDual
+instance OrderDual.instOrderedSMul [OrderedSemiring R] [OrderedAddCommMonoid M] [SMulWithZero R M]
+ [OrderedSMul R M] : OrderedSMul R Mᵒᵈ where
+ smul_lt_smul_of_pos := OrderedSMul.smul_lt_smul_of_pos (M := M)
+ lt_of_smul_lt_smul_of_pos := OrderedSMul.lt_of_smul_lt_smul_of_pos (M := M)
section OrderedSMul
@@ -337,7 +337,7 @@ theorem bddAbove_smul_iff_of_pos (hc : 0 < c) : BddAbove (c • s) ↔ BddAbove
end LinearOrderedSemifield
-namespace Tactic
+namespace Mathlib.Meta.Positivity
section OrderedSMul
@@ -364,54 +364,31 @@ private theorem smul_ne_zero_of_ne_zero_of_pos [Preorder M] (ha : a ≠ 0) (hb :
end NoZeroSMulDivisors
--- Porting note: Tactic code not ported yet
--- open Positivity
-
--- -- failed to format: unknown constant 'term.pseudo.antiquot'
--- /--
--- Extension for the `Positivity` tactic: scalar multiplication is
--- nonnegative/positive/nonzero if both sides are. -/
--- @[ positivity ]
--- unsafe
--- def
--- positivity_smul
--- : expr → tactic strictness
--- |
--- e @ q( $ ( a ) • $ ( b ) )
--- =>
--- do
--- let strictness_a ← core a
--- let strictness_b ← core b
--- match
--- strictness_a , strictness_b
--- with
--- | positive pa , positive pb => positive <$> mk_app ` ` smul_pos [ pa , pb ]
--- |
--- positive pa , nonnegative pb
--- =>
--- nonnegative <$> mk_app ` ` smul_nonneg_of_pos_of_nonneg [ pa , pb ]
--- |
--- nonnegative pa , positive pb
--- =>
--- nonnegative <$> mk_app ` ` smul_nonneg_of_nonneg_of_pos [ pa , pb ]
--- |
--- nonnegative pa , nonnegative pb
--- =>
--- nonnegative <$> mk_app ` ` smul_nonneg [ pa , pb ]
--- |
--- positive pa , nonzero pb
--- =>
--- nonzero <$> to_expr ` `( smul_ne_zero_of_pos_of_ne_zero $ ( pa ) $ ( pb ) )
--- |
--- nonzero pa , positive pb
--- =>
--- nonzero <$> to_expr ` `( smul_ne_zero_of_ne_zero_of_pos $ ( pa ) $ ( pb ) )
--- |
--- nonzero pa , nonzero pb
--- =>
--- nonzero <$> to_expr ` `( smul_ne_zero $ ( pa ) $ ( pb ) )
--- | sa @ _ , sb @ _ => positivity_fail e a b sa sb
--- | e => pp e >>= fail ∘ format.bracket "The expression `" "` isn't of the form `a • b`"
--- #align tactic.positivity_smul Tactic.positivity_smul
-
-end Tactic
+open Lean.Meta Qq
+
+/-- Positivity extension for HSMul, i.e. (_ • _). -/
+@[positivity HSMul.hSMul _ _]
+def evalHSMul : PositivityExt where eval {_u α} zα pα (e : Q($α)) := do
+ let .app (.app (.app (.app (.app (.app
+ (.const ``HSMul.hSMul [u1, _, _]) (M : Q(Type u1))) _) _) _)
+ (a : Q($M))) (b : Q($α)) ← whnfR e | throwError "failed to match hSMul"
+ let zM : Q(Zero $M) ← synthInstanceQ (q(Zero $M))
+ let pM : Q(PartialOrder $M) ← synthInstanceQ (q(PartialOrder $M))
+ -- Using `q()` here would be impractical, as we would have to manually `synthInstanceQ` all the
+ -- required typeclasses. Ideally we could tell `q()` to do this automatically.
+ match ← core zM pM a, ← core zα pα b with
+ | .positive pa, .positive pb =>
+ pure (.positive (← mkAppM ``smul_pos #[pa, pb]))
+ | .positive pa, .nonnegative pb =>
+ pure (.nonnegative (← mkAppM ``smul_nonneg_of_pos_of_nonneg #[pa, pb]))
+ | .nonnegative pa, .positive pb =>
+ pure (.nonnegative (← mkAppM ``smul_nonneg_of_nonneg_of_pos #[pa, pb]))
+ | .nonnegative pa, .nonnegative pb =>
+ pure (.nonnegative (← mkAppM ``smul_nonneg #[pa, pb]))
+ | .positive pa, .nonzero pb =>
+ pure (.nonzero (← mkAppM ``smul_ne_zero_of_pos_of_ne_zero #[pa, pb]))
+ | .nonzero pa, .positive pb =>
+ pure (.nonzero (← mkAppM ``smul_ne_zero_of_ne_zero_of_pos #[pa, pb]))
+ | .nonzero pa, .nonzero pb =>
+ pure (.nonzero (← mkAppM ``smul_ne_zero #[pa, pb]))
+ | _, _ => pure .none
a • b
(#7647)
All lemmas and lemma names are taken from their mul
counterpart.
@@ -53,7 +53,7 @@ class OrderedSMul (R M : Type*) [OrderedSemiring R] [OrderedAddCommMonoid M] [SM
protected lt_of_smul_lt_smul_of_pos : ∀ {a b : M}, ∀ {c : R}, c • a < c • b → 0 < c → a < b
#align ordered_smul OrderedSMul
-variable {ι 𝕜 R M N : Type*}
+variable {ι α β γ 𝕜 R M N : Type*}
namespace OrderDual
@@ -63,11 +63,36 @@ instance OrderDual.instSMulWithZero [Zero R] [AddZeroClass M] [SMulWithZero R M]
zero_smul := fun m => OrderDual.rec (zero_smul _) m
smul_zero := fun r => OrderDual.rec (@smul_zero R M _ _) r }
+@[to_additive]
instance OrderDual.instMulAction [Monoid R] [MulAction R M] : MulAction R Mᵒᵈ :=
{ OrderDual.instSMul with
one_smul := fun m => OrderDual.rec (one_smul _) m
mul_smul := fun r => OrderDual.rec (@mul_smul R M _ _) r }
+@[to_additive]
+instance OrderDual.instSMulCommClass [SMul β γ] [SMul α γ] [SMulCommClass α β γ] :
+ SMulCommClass αᵒᵈ β γ := ‹SMulCommClass α β γ›
+
+@[to_additive]
+instance OrderDual.instSMulCommClass' [SMul β γ] [SMul α γ] [SMulCommClass α β γ] :
+ SMulCommClass α βᵒᵈ γ := ‹SMulCommClass α β γ›
+
+@[to_additive]
+instance OrderDual.instSMulCommClass'' [SMul β γ] [SMul α γ] [SMulCommClass α β γ] :
+ SMulCommClass α β γᵒᵈ := ‹SMulCommClass α β γ›
+
+@[to_additive OrderDual.instVAddAssocClass]
+instance OrderDual.instIsScalarTower [SMul α β] [SMul β γ] [SMul α γ] [IsScalarTower α β γ] :
+ IsScalarTower αᵒᵈ β γ := ‹IsScalarTower α β γ›
+
+@[to_additive OrderDual.instVAddAssocClass']
+instance OrderDual.instIsScalarTower' [SMul α β] [SMul β γ] [SMul α γ] [IsScalarTower α β γ] :
+ IsScalarTower α βᵒᵈ γ := ‹IsScalarTower α β γ›
+
+@[to_additive OrderDual.instVAddAssocClass'']
+instance OrderDual.IsScalarTower'' [SMul α β] [SMul β γ] [SMul α γ] [IsScalarTower α β γ] :
+ IsScalarTower α β γᵒᵈ := ‹IsScalarTower α β γ›
+
instance [MonoidWithZero R] [AddMonoid M] [MulActionWithZero R M] : MulActionWithZero R Mᵒᵈ :=
{ OrderDual.instMulAction, OrderDual.instSMulWithZero with }
@@ -99,6 +124,9 @@ variable [OrderedSemiring R] [OrderedAddCommMonoid M] [SMulWithZero R M] [Ordere
· exact (smul_lt_smul_of_pos hab hc).le
#align smul_le_smul_of_nonneg smul_le_smul_of_nonneg
+-- TODO: Remove `smul_le_smul_of_nonneg` completely
+alias smul_le_smul_of_nonneg_left := smul_le_smul_of_nonneg
+
theorem smul_nonneg (hc : 0 ≤ c) (ha : 0 ≤ a) : 0 ≤ c • a :=
calc
(0 : M) = c • (0 : M) := (smul_zero c).symm
Forward-ports https://github.com/leanprover-community/mathlib/pull/18797
The changes to Mathlib.Data.Set.Intervals.Basic
were independently added to mathlib4 in Mathlib.Data.Set.Intervals.Image
, so the #align
s have been added there instead of the original file.
Co-authored-by: Eric Wieser <wieser.eric@gmail.com>
@@ -11,7 +11,7 @@ import Mathlib.Data.Set.Pointwise.SMul
import Mathlib.Tactic.GCongr.Core
import Mathlib.Tactic.Positivity
-#align_import algebra.order.smul from "leanprover-community/mathlib"@"9003f28797c0664a49e4179487267c494477d853"
+#align_import algebra.order.smul from "leanprover-community/mathlib"@"3ba15165bd6927679be7c22d6091a87337e3cd0c"
/-!
# Ordered scalar product
@@ -186,12 +186,25 @@ instance Int.orderedSMul [LinearOrderedAddCommGroup M] : OrderedSMul ℤ M :=
· cases (Int.negSucc_not_pos _).1 hn
#align int.ordered_smul Int.orderedSMul
+section LinearOrderedSemiring
+variable [LinearOrderedSemiring R] [LinearOrderedAddCommMonoid M] [SMulWithZero R M]
+ [OrderedSMul R M] {a : R}
+
-- TODO: `LinearOrderedField M → OrderedSMul ℚ M`
-instance LinearOrderedSemiring.toOrderedSMul {R : Type*} [LinearOrderedSemiring R] :
- OrderedSMul R R :=
+instance LinearOrderedSemiring.toOrderedSMul : OrderedSMul R R :=
OrderedSMul.mk'' fun _ => strictMono_mul_left_of_pos
#align linear_ordered_semiring.to_ordered_smul LinearOrderedSemiring.toOrderedSMul
+theorem smul_max (ha : 0 ≤ a) (b₁ b₂ : M) : a • max b₁ b₂ = max (a • b₁) (a • b₂) :=
+ (monotone_smul_left ha : Monotone (_ : M → M)).map_max
+#align smul_max smul_max
+
+theorem smul_min (ha : 0 ≤ a) (b₁ b₂ : M) : a • min b₁ b₂ = min (a • b₁) (a • b₂) :=
+ (monotone_smul_left ha : Monotone (_ : M → M)).map_min
+#align smul_min smul_min
+
+end LinearOrderedSemiring
+
section LinearOrderedSemifield
variable [LinearOrderedSemifield 𝕜] [OrderedAddCommMonoid M] [OrderedAddCommMonoid N]
@@ -57,19 +57,19 @@ variable {ι 𝕜 R M N : Type*}
namespace OrderDual
-instance instSMulWithZeroOrderDual [Zero R] [AddZeroClass M] [SMulWithZero R M] :
+instance OrderDual.instSMulWithZero [Zero R] [AddZeroClass M] [SMulWithZero R M] :
SMulWithZero R Mᵒᵈ :=
- { instSMulOrderDual with
+ { OrderDual.instSMul with
zero_smul := fun m => OrderDual.rec (zero_smul _) m
smul_zero := fun r => OrderDual.rec (@smul_zero R M _ _) r }
-instance instMulActionOrderDual [Monoid R] [MulAction R M] : MulAction R Mᵒᵈ :=
- { instSMulOrderDual with
+instance OrderDual.instMulAction [Monoid R] [MulAction R M] : MulAction R Mᵒᵈ :=
+ { OrderDual.instSMul with
one_smul := fun m => OrderDual.rec (one_smul _) m
mul_smul := fun r => OrderDual.rec (@mul_smul R M _ _) r }
instance [MonoidWithZero R] [AddMonoid M] [MulActionWithZero R M] : MulActionWithZero R Mᵒᵈ :=
- { instMulActionOrderDual, instSMulWithZeroOrderDual with }
+ { OrderDual.instMulAction, OrderDual.instSMulWithZero with }
instance [MonoidWithZero R] [AddMonoid M] [DistribMulAction R M] : DistribMulAction R Mᵒᵈ where
smul_add _ a := OrderDual.rec (fun _ b => OrderDual.rec (smul_add _ _) b) a
@@ -129,7 +129,7 @@ theorem smul_pos_iff_of_pos (hc : 0 < c) : 0 < c • a ↔ 0 < a :=
_ ↔ 0 < a := smul_lt_smul_iff_of_pos hc
#align smul_pos_iff_of_pos smul_pos_iff_of_pos
-alias smul_pos_iff_of_pos ↔ _ smul_pos
+alias ⟨_, smul_pos⟩ := smul_pos_iff_of_pos
#align smul_pos smul_pos
theorem monotone_smul_left (hc : 0 ≤ c) : Monotone (SMul.smul c : M → M) := fun _ _ h =>
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -45,7 +45,7 @@ open Pointwise
/-- The ordered scalar product property is when an ordered additive commutative monoid
with a partial order has a scalar multiplication which is compatible with the order.
-/
-class OrderedSMul (R M : Type _) [OrderedSemiring R] [OrderedAddCommMonoid M] [SMulWithZero R M] :
+class OrderedSMul (R M : Type*) [OrderedSemiring R] [OrderedAddCommMonoid M] [SMulWithZero R M] :
Prop where
/-- Scalar multiplication by positive elements preserves the order. -/
protected smul_lt_smul_of_pos : ∀ {a b : M}, ∀ {c : R}, a < b → 0 < c → c • a < c • b
@@ -53,7 +53,7 @@ class OrderedSMul (R M : Type _) [OrderedSemiring R] [OrderedAddCommMonoid M] [S
protected lt_of_smul_lt_smul_of_pos : ∀ {a b : M}, ∀ {c : R}, c • a < c • b → 0 < c → a < b
#align ordered_smul OrderedSMul
-variable {ι 𝕜 R M N : Type _}
+variable {ι 𝕜 R M N : Type*}
namespace OrderDual
@@ -187,7 +187,7 @@ instance Int.orderedSMul [LinearOrderedAddCommGroup M] : OrderedSMul ℤ M :=
#align int.ordered_smul Int.orderedSMul
-- TODO: `LinearOrderedField M → OrderedSMul ℚ M`
-instance LinearOrderedSemiring.toOrderedSMul {R : Type _} [LinearOrderedSemiring R] :
+instance LinearOrderedSemiring.toOrderedSMul {R : Type*} [LinearOrderedSemiring R] :
OrderedSMul R R :=
OrderedSMul.mk'' fun _ => strictMono_mul_left_of_pos
#align linear_ordered_semiring.to_ordered_smul LinearOrderedSemiring.toOrderedSMul
@@ -217,7 +217,7 @@ instance [OrderedSMul 𝕜 M] [OrderedSMul 𝕜 N] : OrderedSMul 𝕜 (M × N) :
OrderedSMul.mk' fun _ _ _ h hc =>
⟨smul_le_smul_of_nonneg h.1.1 hc.le, smul_le_smul_of_nonneg h.1.2 hc.le⟩
-instance Pi.orderedSMul {M : ι → Type _} [∀ i, OrderedAddCommMonoid (M i)]
+instance Pi.orderedSMul {M : ι → Type*} [∀ i, OrderedAddCommMonoid (M i)]
[∀ i, MulActionWithZero 𝕜 (M i)] [∀ i, OrderedSMul 𝕜 (M i)] : OrderedSMul 𝕜 (∀ i, M i) :=
OrderedSMul.mk' fun _ _ _ h hc i => smul_le_smul_of_nonneg (h.le i) hc.le
#align pi.ordered_smul Pi.orderedSMul
Per https://github.com/leanprover/lean4/issues/2343, we are going to need to change the automatic generation of instance names, as they become too long.
This PR ensures that everywhere in Mathlib that refers to an instance by name, that name is given explicitly, rather than being automatically generated.
There are four exceptions, which are now commented, with links to https://github.com/leanprover/lean4/issues/2343.
This was implemented by running Mathlib against a modified Lean that appended _ᾰ
to all automatically generated names, and fixing everything.
Co-authored-by: Scott Morrison <scott.morrison@gmail.com>
@@ -57,18 +57,19 @@ variable {ι 𝕜 R M N : Type _}
namespace OrderDual
-instance [Zero R] [AddZeroClass M] [SMulWithZero R M] : SMulWithZero R Mᵒᵈ :=
+instance instSMulWithZeroOrderDual [Zero R] [AddZeroClass M] [SMulWithZero R M] :
+ SMulWithZero R Mᵒᵈ :=
{ instSMulOrderDual with
zero_smul := fun m => OrderDual.rec (zero_smul _) m
smul_zero := fun r => OrderDual.rec (@smul_zero R M _ _) r }
-instance [Monoid R] [MulAction R M] : MulAction R Mᵒᵈ :=
+instance instMulActionOrderDual [Monoid R] [MulAction R M] : MulAction R Mᵒᵈ :=
{ instSMulOrderDual with
one_smul := fun m => OrderDual.rec (one_smul _) m
mul_smul := fun r => OrderDual.rec (@mul_smul R M _ _) r }
instance [MonoidWithZero R] [AddMonoid M] [MulActionWithZero R M] : MulActionWithZero R Mᵒᵈ :=
- { instMulActionOrderDual , instSMulWithZeroOrderDualInstZeroOrderDualToZero with }
+ { instMulActionOrderDual, instSMulWithZeroOrderDual with }
instance [MonoidWithZero R] [AddMonoid M] [DistribMulAction R M] : DistribMulAction R Mᵒᵈ where
smul_add _ a := OrderDual.rec (fun _ b => OrderDual.rec (smul_add _ _) b) a
@@ -2,11 +2,6 @@
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
-
-! This file was ported from Lean 3 source module algebra.order.smul
-! leanprover-community/mathlib commit 9003f28797c0664a49e4179487267c494477d853
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.Algebra.Module.Pi
import Mathlib.Algebra.Module.Prod
@@ -16,6 +11,8 @@ import Mathlib.Data.Set.Pointwise.SMul
import Mathlib.Tactic.GCongr.Core
import Mathlib.Tactic.Positivity
+#align_import algebra.order.smul from "leanprover-community/mathlib"@"9003f28797c0664a49e4179487267c494477d853"
+
/-!
# Ordered scalar product
at
and goals (#5387)
Changes are of the form
some_tactic at h⊢
-> some_tactic at h ⊢
some_tactic at h
-> some_tactic at h
@@ -183,7 +183,7 @@ instance Nat.orderedSMul [LinearOrderedCancelAddCommMonoid M] : OrderedSMul ℕ
instance Int.orderedSMul [LinearOrderedAddCommGroup M] : OrderedSMul ℤ M :=
OrderedSMul.mk'' fun n hn => by
cases n
- · simp only [Int.ofNat_eq_coe, Int.coe_nat_pos, coe_nat_zsmul] at hn⊢
+ · simp only [Int.ofNat_eq_coe, Int.coe_nat_pos, coe_nat_zsmul] at hn ⊢
exact strictMono_smul_left hn
· cases (Int.negSucc_not_pos _).1 hn
#align int.ordered_smul Int.orderedSMul
@@ -13,6 +13,7 @@ import Mathlib.Algebra.Module.Prod
import Mathlib.Algebra.Order.Monoid.Prod
import Mathlib.Algebra.Order.Pi
import Mathlib.Data.Set.Pointwise.SMul
+import Mathlib.Tactic.GCongr.Core
import Mathlib.Tactic.Positivity
/-!
@@ -88,11 +89,11 @@ section OrderedSMul
variable [OrderedSemiring R] [OrderedAddCommMonoid M] [SMulWithZero R M] [OrderedSMul R M]
{s : Set M} {a b : M} {c : R}
-theorem smul_lt_smul_of_pos : a < b → 0 < c → c • a < c • b :=
+@[gcongr] theorem smul_lt_smul_of_pos : a < b → 0 < c → c • a < c • b :=
OrderedSMul.smul_lt_smul_of_pos
#align smul_lt_smul_of_pos smul_lt_smul_of_pos
-theorem smul_le_smul_of_nonneg (h₁ : a ≤ b) (h₂ : 0 ≤ c) : c • a ≤ c • b := by
+@[gcongr] theorem smul_le_smul_of_nonneg (h₁ : a ≤ b) (h₂ : 0 ≤ c) : c • a ≤ c • b := by
rcases h₁.eq_or_lt with (rfl | hab)
· rfl
· rcases h₂.eq_or_lt with (rfl | hc)
@@ -270,7 +270,7 @@ def OrderIso.smulLeft (hc : 0 < c) : M ≃o M where
right_inv := smul_inv_smul₀ hc.ne'
map_rel_iff' := smul_le_smul_iff_of_pos hc
#align order_iso.smul_left OrderIso.smulLeft
-#align order_iso.smul_left_symm_apply OrderIso.smulLeft_symmApply
+#align order_iso.smul_left_symm_apply OrderIso.smulLeft_symm_apply
#align order_iso.smul_left_apply OrderIso.smulLeft_apply
variable {M}
This PR is the result of a slight variant on the following "algorithm"
_
and make all uppercase letters into lowercase_
and make all uppercase letters into lowercase(original_lean3_name, OriginalLean4Name)
#align
statement just before the next empty line#align
statement to have been inserted too early)@@ -270,6 +270,8 @@ def OrderIso.smulLeft (hc : 0 < c) : M ≃o M where
right_inv := smul_inv_smul₀ hc.ne'
map_rel_iff' := smul_le_smul_iff_of_pos hc
#align order_iso.smul_left OrderIso.smulLeft
+#align order_iso.smul_left_symm_apply OrderIso.smulLeft_symmApply
+#align order_iso.smul_left_apply OrderIso.smulLeft_apply
variable {M}
The unported dependencies are