File: Mathlib/Algebra/Order/Module/OrderedSMul.lean

full_name: OrderedSMul
code: /-- 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. Note that this
is different from `IsOrderedSMul`, which uses `≤`, has no semiring assumption, and has no positivity
constraint on the defining conditions.
-/
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
  /-- If `c • a < c • b` for some positive `c`, then `a < b`. -/
  protected lt_of_smul_lt_smul_of_pos : ∀ {a b : M}, ∀ {c : R}, c • a < c • b → 0 < c → a < b
goal: Prop

full_name: OrderedSMul.smul_lt_smul_of_pos
code: /-- 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. Note that this
is different from `IsOrderedSMul`, which uses `≤`, has no semiring assumption, and has no positivity
constraint on the defining conditions.
-/
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
  /-- If `c • a < c • b` for some positive `c`, then `a < b`. -/
  protected lt_of_smul_lt_smul_of_pos : ∀ {a b : M}, ∀ {c : R}, c • a < c • b → 0 < c → a < b
goal: a < b → 0 < c → c • a < c • b

full_name: OrderedSMul.lt_of_smul_lt_smul_of_pos
code: /-- 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. Note that this
is different from `IsOrderedSMul`, which uses `≤`, has no semiring assumption, and has no positivity
constraint on the defining conditions.
-/
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
  /-- If `c • a < c • b` for some positive `c`, then `a < b`. -/
  protected lt_of_smul_lt_smul_of_pos : ∀ {a b : M}, ∀ {c : R}, c • a < c • b → 0 < c → a < b
goal: c • a < c • b → 0 < c → a < b

full_name: OrderedSMul.toPosSMulStrictMono
code: instance OrderedSMul.toPosSMulStrictMono : PosSMulStrictMono R M 
goal: PosSMulStrictMono R M

full_name: OrderedSMul.toPosSMulReflectLT
code: instance OrderedSMul.toPosSMulReflectLT : PosSMulReflectLT R M 
goal: PosSMulReflectLT R M

full_name: OrderDual.instOrderedSMul
code: instance OrderDual.instOrderedSMul : OrderedSMul R Mᵒᵈ 
goal: OrderedSMul R Mᵒᵈ

full_name: OrderedSMul.mk''
code: /-- To prove that a linear ordered monoid is an ordered module, it suffices to verify only the first
axiom of `OrderedSMul`. -/
theorem OrderedSMul.mk'' [OrderedSemiring 𝕜] [LinearOrderedAddCommMonoid M] [SMulWithZero 𝕜 M]
    (h : ∀ ⦃c : 𝕜⦄, 0 < c → StrictMono fun a : M => c • a) : OrderedSMul 𝕜 M 
goal: OrderedSMul 𝕜 M

full_name: Nat.orderedSMul
code: instance Nat.orderedSMul [LinearOrderedCancelAddCommMonoid M] : OrderedSMul ℕ M 
goal: OrderedSMul ℕ M

full_name: Int.orderedSMul
code: instance Int.orderedSMul [LinearOrderedAddCommGroup M] : OrderedSMul ℤ M 
goal: OrderedSMul ℤ M

full_name: LinearOrderedSemiring.toOrderedSMul
code: instance LinearOrderedSemiring.toOrderedSMul : OrderedSMul R R 
goal: OrderedSMul R R

full_name: OrderedSMul.mk'
code: /-- To prove that a vector space over a linear ordered field is ordered, it suffices to verify only
the first axiom of `OrderedSMul`. -/
theorem OrderedSMul.mk' (h : ∀ ⦃a b : M⦄ ⦃c : 𝕜⦄, a < b → 0 < c → c • a ≤ c • b) :
    OrderedSMul 𝕜 M 
goal: OrderedSMul 𝕜 M

full_name: instOrderedSMulProd
code: instance [OrderedSMul 𝕜 M] [OrderedSMul 𝕜 N] : OrderedSMul 𝕜 (M × N) 
goal: OrderedSMul 𝕜 (M × N)

full_name: Pi.orderedSMul
code: instance Pi.orderedSMul {M : ι → Type*} [∀ i, OrderedAddCommMonoid (M i)]
    [∀ i, MulActionWithZero 𝕜 (M i)] [∀ i, OrderedSMul 𝕜 (M i)] : OrderedSMul 𝕜 (∀ i, M i) 
goal: OrderedSMul 𝕜 ((i : ι) → M i)

full_name: inf_eq_half_smul_add_sub_abs_sub
code: lemma inf_eq_half_smul_add_sub_abs_sub (x y : β) : x ⊓ y = (⅟2 : α) • (x + y - |y - x|) 
goal: x ⊓ y = ⅟2 • (x + y - |y - x|)

full_name: sup_eq_half_smul_add_add_abs_sub
code: lemma sup_eq_half_smul_add_add_abs_sub (x y : β) : x ⊔ y = (⅟2 : α) • (x + y + |y - x|) 
goal: x ⊔ y = ⅟2 • (x + y + |y - x|)

full_name: inf_eq_half_smul_add_sub_abs_sub'
code: lemma inf_eq_half_smul_add_sub_abs_sub' (x y : β) : x ⊓ y = (2⁻¹ : α) • (x + y - |y - x|) 
goal: x ⊓ y = 2⁻¹ • (x + y - |y - x|)

full_name: sup_eq_half_smul_add_add_abs_sub'
code: lemma sup_eq_half_smul_add_add_abs_sub' (x y : β) : x ⊔ y = (2⁻¹ : α) • (x + y + |y - x|) 
goal: x ⊔ y = 2⁻¹ • (x + y + |y - x|)