Skip to content

Commit 3cc6797

Browse files
committed
feat: add some missing convenience lemmas about ordered modules
1 parent 35186be commit 3cc6797

1 file changed

Lines changed: 32 additions & 0 deletions

File tree

Mathlib/Algebra/Order/Module/Defs.lean

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -566,6 +566,22 @@ lemma pos_of_smul_pos_left [PosSMulReflectLT α β] (h : 0 < a • b) (ha : 0
566566
lemma neg_of_smul_neg_left [PosSMulReflectLT α β] (h : a • b < 0) (ha : 0 ≤ a) : b < 0 :=
567567
lt_of_smul_lt_smul_left (by rwa [smul_zero]) ha
568568

569+
lemma nonneg_of_smul_nonneg_of_pos_left [PosSMulReflectLE α β] (h : 0 ≤ a • b) (ha : 0 < a) :
570+
0 ≤ b :=
571+
le_of_smul_le_smul_of_pos_left (by simpa) ha
572+
573+
lemma nonpos_of_smul_nonpos_of_pos_left [PosSMulReflectLE α β] (h : a • b ≤ 0) (ha : 0 < a) :
574+
b ≤ 0 :=
575+
le_of_smul_le_smul_of_pos_left (by simpa) ha
576+
577+
lemma smul_nonneg_iff_nonneg_of_pos_left [PosSMulMono α β] [PosSMulReflectLE α β] (ha : 0 < a) :
578+
0 ≤ a • b ↔ 0 ≤ b :=
579+
⟨(nonneg_of_smul_nonneg_of_pos_left · ha), smul_nonneg ha.le⟩
580+
581+
lemma smul_nonpos_iff_nonpos_of_pos_left [PosSMulMono α β] [PosSMulReflectLE α β] (ha : 0 < a) :
582+
a • b ≤ 0 ↔ b ≤ 0 :=
583+
⟨(nonpos_of_smul_nonpos_of_pos_left · ha), smul_nonpos_of_nonneg_of_nonpos ha.le⟩
584+
569585
end Preorder
570586
end SMulZeroClass
571587

@@ -602,6 +618,22 @@ lemma pos_iff_pos_of_smul_pos [PosSMulReflectLT α β] [SMulPosReflectLT α β]
602618
0 < a ↔ 0 < b :=
603619
⟨pos_of_smul_pos_left hab ∘ le_of_lt, pos_of_smul_pos_right hab ∘ le_of_lt⟩
604620

621+
lemma nonneg_of_smul_nonneg_of_pos_right [SMulPosReflectLE α β] (h : 0 ≤ a • b) (hb : 0 < b) :
622+
0 ≤ a :=
623+
le_of_smul_le_smul_of_pos_right (by simpa) hb
624+
625+
lemma nonpos_of_smul_nonpos_of_pos_right [SMulPosReflectLE α β] (h : a • b ≤ 0) (hb : 0 < b) :
626+
a ≤ 0 :=
627+
le_of_smul_le_smul_of_pos_right (by simpa) hb
628+
629+
lemma smul_nonneg_iff_nonneg_of_pos_right [SMulPosMono α β] [SMulPosReflectLE α β] (hb : 0 < b) :
630+
0 ≤ a • b ↔ 0 ≤ a :=
631+
⟨(nonneg_of_smul_nonneg_of_pos_right · hb), (smul_nonneg' · hb.le)⟩
632+
633+
lemma smul_nonpos_iff_nonpos_of_pos_right [SMulPosMono α β] [SMulPosReflectLE α β] (hb : 0 < b) :
634+
a • b ≤ 0 ↔ a ≤ 0 :=
635+
⟨(nonpos_of_smul_nonpos_of_pos_right · hb), (smul_nonpos_of_nonpos_of_nonneg · hb.le)⟩
636+
605637
lemma IsOrderedModule.of_smul_one_mono
606638
[MulOneClass β] [PosMulMono β] [MulPosMono β] [IsScalarTower α β β]
607639
(h : Monotone (fun x : α ↦ x • (1 : β))) : IsOrderedModule α β where

0 commit comments

Comments
 (0)