Skip to content

Commit 18cc8db

Browse files
committed
Matrix.dotProduct inequalities (#9652)
1 parent 5964134 commit 18cc8db

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

Mathlib/LinearAlgebra/Matrix/DotProduct.lean

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,23 @@ theorem dotProduct_eq_zero_iff {v : n → R} : (∀ w, dotProduct v w = 0) ↔ v
7070

7171
end Semiring
7272

73+
section OrderedSemiring
74+
75+
variable [OrderedSemiring R] [Fintype n]
76+
77+
lemma dotProduct_nonneg_of_nonneg {v w : n → R} (hv : 0 ≤ v) (hw : 0 ≤ w) : 0 ≤ dotProduct v w :=
78+
Finset.sum_nonneg (fun i _ => mul_nonneg (hv i) (hw i))
79+
80+
lemma dotProduct_le_dotProduct_of_nonneg_right {u v w : n → R} (huv : u ≤ v) (hw : 0 ≤ w) :
81+
dotProduct u w ≤ dotProduct v w :=
82+
Finset.sum_le_sum (fun i _ => mul_le_mul_of_nonneg_right (huv i) (hw i))
83+
84+
lemma dotProduct_le_dotProduct_of_nonneg_left {u v w : n → R} (huv : u ≤ v) (hw : 0 ≤ w) :
85+
dotProduct w u ≤ dotProduct w v :=
86+
Finset.sum_le_sum (fun i _ => mul_le_mul_of_nonneg_left (huv i) (hw i))
87+
88+
end OrderedSemiring
89+
7390
section Self
7491

7592
variable [Fintype m] [Fintype n] [Fintype p]

0 commit comments

Comments
 (0)