@@ -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+
137158end NormedInnerProductSpace
138159
139160end Matrix
0 commit comments