@@ -1663,6 +1663,27 @@ calc ⟪(v : E), ∑ j : ι, l j⟫
1663
1663
congr_arg (finset.sum finset.univ) $ funext $ λ j, (hV.eq_ite v (l j))
1664
1664
... = ⟪v, l i⟫ : by simp
1665
1665
1666
+ lemma orthogonal_family.inner_sum (l₁ l₂ : Π i, V i) (s : finset ι) :
1667
+ ⟪∑ i in s, (l₁ i : E), ∑ j in s, (l₂ j : E)⟫ = ∑ i in s, ⟪l₁ i, l₂ i⟫ :=
1668
+ by classical;
1669
+ calc ⟪∑ i in s, (l₁ i : E), ∑ j in s, (l₂ j : E)⟫
1670
+ = ∑ j in s, ∑ i in s, ⟪(l₁ i : E), l₂ j⟫ : by simp [sum_inner, inner_sum]
1671
+ ... = ∑ j in s, ∑ i in s, ite (i = j) ⟪(l₁ i : E), l₂ j⟫ 0 :
1672
+ begin
1673
+ congr' with i,
1674
+ congr' with j,
1675
+ apply hV.eq_ite,
1676
+ end
1677
+ ... = ∑ i in s, ⟪l₁ i, l₂ i⟫ : by simp [finset.sum_ite_of_true]
1678
+
1679
+ lemma orthogonal_family.norm_sum (l : Π i, V i) (s : finset ι) :
1680
+ ∥∑ i in s, (l i : E)∥ ^ 2 = ∑ i in s, ∥l i∥ ^ 2 :=
1681
+ begin
1682
+ have : (∥∑ i in s, (l i : E)∥ ^ 2 : 𝕜) = ∑ i in s, ∥l i∥ ^ 2 ,
1683
+ { simp [← inner_self_eq_norm_sq_to_K, hV.inner_sum] },
1684
+ exact_mod_cast this ,
1685
+ end
1686
+
1666
1687
/-- An orthogonal family forms an independent family of subspaces; that is, any collection of
1667
1688
elements each from a different subspace in the family is linearly independent. In particular, the
1668
1689
pairwise intersections of elements of the family are 0. -/
@@ -1708,8 +1729,81 @@ lemma direct_sum.submodule_is_internal.collected_basis_orthonormal
1708
1729
{v_family : Π i, basis (α i) 𝕜 (V i)} (hv_family : ∀ i, orthonormal 𝕜 (v_family i)) :
1709
1730
orthonormal 𝕜 (hV_sum.collected_basis v_family) :=
1710
1731
by simpa using hV.orthonormal_sigma_orthonormal hv_family
1732
+
1733
+ lemma orthogonal_family.norm_sq_diff_sum (f : Π i, V i) (s₁ s₂ : finset ι) :
1734
+ ∥∑ i in s₁, (f i : E) - ∑ i in s₂, f i∥ ^ 2
1735
+ = ∑ i in s₁ \ s₂, ∥f i∥ ^ 2 + ∑ i in s₂ \ s₁, ∥f i∥ ^ 2 :=
1736
+ begin
1737
+ rw [← finset.sum_sdiff_sub_sum_sdiff, sub_eq_add_neg, ← finset.sum_neg_distrib],
1738
+ let F : Π i, V i := λ i, if i ∈ s₁ then f i else - (f i),
1739
+ have hF₁ : ∀ i ∈ s₁ \ s₂, F i = f i := λ i hi, if_pos (finset.sdiff_subset _ _ hi),
1740
+ have hF₂ : ∀ i ∈ s₂ \ s₁, F i = - f i := λ i hi, if_neg (finset.mem_sdiff.mp hi).2 ,
1741
+ have hF : ∀ i, ∥F i∥ = ∥f i∥,
1742
+ { intros i,
1743
+ dsimp [F],
1744
+ split_ifs;
1745
+ simp, },
1746
+ have : ∥∑ i in s₁ \ s₂, (F i : E) + ∑ i in s₂ \ s₁, F i∥ ^ 2 =
1747
+ ∑ i in s₁ \ s₂, ∥F i∥ ^ 2 + ∑ i in s₂ \ s₁, ∥F i∥ ^ 2 ,
1748
+ { have hs : disjoint (s₁ \ s₂) (s₂ \ s₁) := disjoint_sdiff_sdiff,
1749
+ simpa only [finset.sum_union hs] using hV.norm_sum F (s₁ \ s₂ ∪ s₂ \ s₁) },
1750
+ convert this using 4 ,
1751
+ { refine finset.sum_congr rfl (λ i hi, _),
1752
+ simp [hF₁ i hi] },
1753
+ { refine finset.sum_congr rfl (λ i hi, _),
1754
+ simp [hF₂ i hi] },
1755
+ { simp [hF] },
1756
+ { simp [hF] },
1757
+ end
1758
+
1711
1759
omit dec_ι
1712
1760
1761
+ /-- A family `f` of mutually-orthogonal elements of `E` is summable, if and only if
1762
+ `(λ i, ∥f i∥ ^ 2)` is summable. -/
1763
+ lemma orthogonal_family.summable_iff_norm_sq_summable [complete_space E] (f : Π i, V i) :
1764
+ summable (λ i, (f i : E)) ↔ summable (λ i, ∥f i∥ ^ 2 ) :=
1765
+ begin
1766
+ classical,
1767
+ simp only [summable_iff_cauchy_seq_finset, normed_group.cauchy_seq_iff, real.norm_eq_abs],
1768
+ split,
1769
+ { intros hf ε hε,
1770
+ obtain ⟨a, H⟩ := hf _ (sqrt_pos.mpr hε),
1771
+ use a,
1772
+ intros s₁ hs₁ s₂ hs₂,
1773
+ rw ← finset.sum_sdiff_sub_sum_sdiff,
1774
+ refine (_root_.abs_sub _ _).trans_lt _,
1775
+ have : ∀ i, 0 ≤ ∥f i∥ ^ 2 := λ i : ι, sq_nonneg _,
1776
+ simp only [finset.abs_sum_of_nonneg' this ],
1777
+ have : ∑ i in s₁ \ s₂, ∥f i∥ ^ 2 + ∑ i in s₂ \ s₁, ∥f i∥ ^ 2 < (sqrt ε) ^ 2 ,
1778
+ { rw ← hV.norm_sq_diff_sum,
1779
+ apply sq_lt_sq,
1780
+ rw _root_.abs_of_nonneg (norm_nonneg _),
1781
+ exact H s₁ hs₁ s₂ hs₂ },
1782
+ have hη := sq_sqrt (le_of_lt hε),
1783
+ linarith },
1784
+ { intros hf ε hε,
1785
+ have hε' : 0 < ε ^ 2 / 2 := half_pos (sq_pos_of_pos hε),
1786
+ obtain ⟨a, H⟩ := hf _ hε',
1787
+ use a,
1788
+ intros s₁ hs₁ s₂ hs₂,
1789
+ refine (abs_lt_of_sq_lt_sq' _ (le_of_lt hε)).2 ,
1790
+ have has : a ≤ s₁ ⊓ s₂ := le_inf hs₁ hs₂,
1791
+ rw hV.norm_sq_diff_sum,
1792
+ have Hs₁ : ∑ (x : ι) in s₁ \ s₂, ∥f x∥ ^ 2 < ε ^ 2 / 2 ,
1793
+ { convert H _ hs₁ _ has,
1794
+ have : s₁ ⊓ s₂ ⊆ s₁ := finset.inter_subset_left _ _,
1795
+ rw [← finset.sum_sdiff this , add_tsub_cancel_right, finset.abs_sum_of_nonneg'],
1796
+ { simp },
1797
+ { exact λ i, sq_nonneg _ } },
1798
+ have Hs₂ : ∑ (x : ι) in s₂ \ s₁, ∥f x∥ ^ 2 < ε ^ 2 /2 ,
1799
+ { convert H _ hs₂ _ has,
1800
+ have : s₁ ⊓ s₂ ⊆ s₂ := finset.inter_subset_right _ _,
1801
+ rw [← finset.sum_sdiff this , add_tsub_cancel_right, finset.abs_sum_of_nonneg'],
1802
+ { simp },
1803
+ { exact λ i, sq_nonneg _ } },
1804
+ linarith },
1805
+ end
1806
+
1713
1807
end orthogonal_family
1714
1808
1715
1809
section is_R_or_C_to_real
0 commit comments