@@ -796,7 +796,7 @@ instance (priority := 200) LinearOrderedSemiring.toMulPosReflectLT : MulPosRefle
796
796
797
797
attribute [local instance] LinearOrderedSemiring.decidableLE LinearOrderedSemiring.decidableLT
798
798
799
- theorem nonneg_and_nonneg_or_nonpos_and_nonpos_of_mul_nnonneg (hab : 0 ≤ a * b) :
799
+ theorem nonneg_and_nonneg_or_nonpos_and_nonpos_of_mul_nonneg (hab : 0 ≤ a * b) :
800
800
0 ≤ a ∧ 0 ≤ b ∨ a ≤ 0 ∧ b ≤ 0 := by
801
801
refine' Decidable.or_iff_not_and_not.2 _
802
802
simp only [not_and, not_le]; intro ab nab; apply not_lt_of_le hab _
@@ -807,7 +807,7 @@ theorem nonneg_and_nonneg_or_nonpos_and_nonpos_of_mul_nnonneg (hab : 0 ≤ a * b
807
807
· subst ha
808
808
exact ((ab le_rfl).asymm (nab le_rfl)).elim
809
809
· exact mul_neg_of_neg_of_pos ha (nab ha.le)
810
- #align nonneg_and_nonneg_or_nonpos_and_nonpos_of_mul_nnonneg nonneg_and_nonneg_or_nonpos_and_nonpos_of_mul_nnonneg
810
+ #align nonneg_and_nonneg_or_nonpos_and_nonpos_of_mul_nnonneg nonneg_and_nonneg_or_nonpos_and_nonpos_of_mul_nonneg
811
811
812
812
theorem nonneg_of_mul_nonneg_left (h : 0 ≤ a * b) (hb : 0 < b) : 0 ≤ a :=
813
813
le_of_not_gt fun ha => (mul_neg_of_neg_of_pos ha hb).not_le h
@@ -1059,7 +1059,7 @@ theorem mul_neg_iff : a * b < 0 ↔ 0 < a ∧ b < 0 ∨ a < 0 ∧ 0 < b := by
1059
1059
#align mul_neg_iff mul_neg_iff
1060
1060
1061
1061
theorem mul_nonneg_iff : 0 ≤ a * b ↔ 0 ≤ a ∧ 0 ≤ b ∨ a ≤ 0 ∧ b ≤ 0 :=
1062
- ⟨nonneg_and_nonneg_or_nonpos_and_nonpos_of_mul_nnonneg , fun h =>
1062
+ ⟨nonneg_and_nonneg_or_nonpos_and_nonpos_of_mul_nonneg , fun h =>
1063
1063
h.elim (and_imp.2 mul_nonneg) (and_imp.2 mul_nonneg_of_nonpos_of_nonpos)⟩
1064
1064
#align mul_nonneg_iff mul_nonneg_iff
1065
1065
0 commit comments