Skip to content

Commit 6439ae3

Browse files
TJHeeringaBergschaf
authored andcommitted
feat(Analysis/innerProductSpace/GramMatrix): Add Gram.posSemidef_of_mapL (leanprover-community#38755)
1 parent 4e6f8fb commit 6439ae3

1 file changed

Lines changed: 21 additions & 0 deletions

File tree

Mathlib/Analysis/InnerProductSpace/GramMatrix.lean

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,27 @@ theorem gram_eq_conjTranspose_mul {ι : Type*} [Fintype ι] (b : OrthonormalBasi
134134
ext i j
135135
simp [mul_apply, b.repr_apply_apply, b.sum_inner_mul_inner]
136136

137+
omit [Finite n] in
138+
/-- Inequality `‖f x‖ ≤ ‖f‖ * ‖x‖` lifted to Gram matrices. -/
139+
theorem posSemidef_opNorm_smul_gram_sub_gram {F} [NormedAddCommGroup F] [InnerProductSpace 𝕜 F]
140+
(v : n → E) (f : E →L[𝕜] F) : (‖f‖ ^ 2 • gram 𝕜 v - gram 𝕜 (f ∘ v)).PosSemidef := by
141+
refine ⟨(isHermitian_gram 𝕜 v).smul (((Pi.isSelfAdjoint.mpr (congrFun rfl)).apply f).pow 2)
142+
|>.sub (isHermitian_gram 𝕜 (f ∘ v)), fun c ↦ ?_⟩
143+
simp_rw [Finsupp.sum, Matrix.sub_apply, Matrix.smul_apply, mul_sub, sub_mul,
144+
Finset.sum_sub_distrib, sub_nonneg]
145+
calc
146+
∑ x ∈ c.support, ∑ y ∈ c.support, star (c x) * gram 𝕜 (f ∘ v) x y * c y
147+
_ = (‖f (∑ x ∈ c.support, c x • v x)‖ : 𝕜) ^ 2 := ?h1
148+
_ ≤ ‖f‖ ^ 2 • (‖∑ i ∈ c.support, c i • v i‖ : 𝕜) ^ 2 := by
149+
norm_cast
150+
grw [f.le_opNorm _, smul_eq_mul, ← mul_pow]
151+
_ = ∑ x ∈ c.support, ∑ y ∈ c.support, star (c x) * ‖f‖ ^ 2 • gram 𝕜 v x y * c y := ?h2
152+
all_goals
153+
rw [Finset.sum_comm]
154+
simp [← inner_self_eq_norm_sq_to_K, inner_sum, sum_inner, inner_smul_left, inner_smul_right,
155+
Finset.mul_sum, Finset.smul_sum, RCLike.real_smul_eq_coe_mul]
156+
grind
157+
137158
end NormedInnerProductSpace
138159

139160
end Matrix

0 commit comments

Comments
 (0)