Skip to content

Commit 2d45c79

Browse files
feat: port MeasureTheory.Function.L2Space (#4737)
Co-authored-by: Johan Commelin <johan@commelin.net>
1 parent e7eeaa6 commit 2d45c79

File tree

5 files changed

+345
-9
lines changed

5 files changed

+345
-9
lines changed

Mathlib.lean

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2011,6 +2011,7 @@ import Mathlib.MeasureTheory.Function.Egorov
20112011
import Mathlib.MeasureTheory.Function.EssSup
20122012
import Mathlib.MeasureTheory.Function.Floor
20132013
import Mathlib.MeasureTheory.Function.L1Space
2014+
import Mathlib.MeasureTheory.Function.L2Space
20142015
import Mathlib.MeasureTheory.Function.LocallyIntegrable
20152016
import Mathlib.MeasureTheory.Function.LpOrder
20162017
import Mathlib.MeasureTheory.Function.LpSeminorm

Mathlib/Algebra/GroupPower/Order.lean

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -680,6 +680,8 @@ theorem sq_pos_iff (a : R) : 0 < a ^ 2 ↔ a ≠ 0 :=
680680

681681
variable {x y : R}
682682

683+
-- Porting note: added `simp` to replace `pow_bit0_abs`
684+
@[simp]
683685
theorem sq_abs (x : R) : |x| ^ 2 = x ^ 2 := by simpa only [sq] using abs_mul_abs_self x
684686
#align sq_abs sq_abs
685687

Mathlib/Analysis/InnerProductSpace/Adjoint.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -239,7 +239,7 @@ instance : CstarRing (E →L[𝕜] E) :=
239239
refine' op_norm_le_bound _ (Real.sqrt_nonneg _) fun x => _
240240
have :=
241241
calc
242-
re ⟪(A† * A) x, x⟫ ≤ ‖(A† * A) x‖ * ‖x‖ := re_inner_le_norm 𝕜 _ _
242+
re ⟪(A† * A) x, x⟫ ≤ ‖(A† * A) x‖ * ‖x‖ := re_inner_le_norm _ _
243243
_ ≤ ‖A† * A‖ * ‖x‖ * ‖x‖ := mul_le_mul_of_nonneg_right (le_op_norm _ _) (norm_nonneg _)
244244
calc
245245
‖A x‖ = Real.sqrt (re ⟪(A† * A) x, x⟫) := by rw [apply_norm_eq_sqrt_inner_adjoint_left]

Mathlib/Analysis/InnerProductSpace/Basic.lean

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1023,7 +1023,8 @@ theorem real_inner_self_eq_norm_sq (x : F) : ⟪x, x⟫_ℝ = ‖x‖ ^ 2 := by
10231023
rw [pow_two, real_inner_self_eq_norm_mul_norm]
10241024
#align real_inner_self_eq_norm_sq real_inner_self_eq_norm_sq
10251025

1026-
variable (𝕜)
1026+
-- Porting note: this was present in mathlib3 but seemingly didn't do anything.
1027+
-- variable (𝕜)
10271028

10281029
/-- Expand the square -/
10291030
theorem norm_add_sq (x y : E) : ‖x + y‖ ^ 2 = ‖x‖ ^ 2 + 2 * re ⟪x, y⟫ + ‖y‖ ^ 2 := by
@@ -1049,7 +1050,7 @@ alias norm_add_sq_real ← norm_add_pow_two_real
10491050
theorem norm_add_mul_self (x y : E) :
10501051
‖x + y‖ * ‖x + y‖ = ‖x‖ * ‖x‖ + 2 * re ⟪x, y⟫ + ‖y‖ * ‖y‖ := by
10511052
repeat' rw [← sq (M := ℝ)]
1052-
exact norm_add_sq _ _ _
1053+
exact norm_add_sq _ _
10531054
#align norm_add_mul_self norm_add_mul_self
10541055

10551056
/-- Expand the square -/
@@ -1080,7 +1081,7 @@ alias norm_sub_sq_real ← norm_sub_pow_two_real
10801081
theorem norm_sub_mul_self (x y : E) :
10811082
‖x - y‖ * ‖x - y‖ = ‖x‖ * ‖x‖ - 2 * re ⟪x, y⟫ + ‖y‖ * ‖y‖ := by
10821083
repeat' rw [← sq (M := ℝ)]
1083-
exact norm_sub_sq _ _ _
1084+
exact norm_sub_sq _ _
10841085
#align norm_sub_mul_self norm_sub_mul_self
10851086

10861087
/-- Expand the square -/
@@ -1098,23 +1099,25 @@ theorem norm_inner_le_norm (x y : E) : ‖⟪x, y⟫‖ ≤ ‖x‖ * ‖y‖ :=
10981099
#align norm_inner_le_norm norm_inner_le_norm
10991100

11001101
theorem nnnorm_inner_le_nnnorm (x y : E) : ‖⟪x, y⟫‖₊ ≤ ‖x‖₊ * ‖y‖₊ :=
1101-
norm_inner_le_norm 𝕜 x y
1102+
norm_inner_le_norm x y
11021103
#align nnnorm_inner_le_nnnorm nnnorm_inner_le_nnnorm
11031104

11041105
theorem re_inner_le_norm (x y : E) : re ⟪x, y⟫ ≤ ‖x‖ * ‖y‖ :=
1105-
le_trans (re_le_norm (inner x y)) (norm_inner_le_norm 𝕜 x y)
1106+
le_trans (re_le_norm (inner x y)) (norm_inner_le_norm x y)
11061107
#align re_inner_le_norm re_inner_le_norm
11071108

11081109
/-- Cauchy–Schwarz inequality with norm -/
11091110
theorem abs_real_inner_le_norm (x y : F) : |⟪x, y⟫_ℝ| ≤ ‖x‖ * ‖y‖ :=
1110-
(Real.norm_eq_abs _).ge.trans (norm_inner_le_norm x y)
1111+
(Real.norm_eq_abs _).ge.trans (norm_inner_le_norm x y)
11111112
#align abs_real_inner_le_norm abs_real_inner_le_norm
11121113

11131114
/-- Cauchy–Schwarz inequality with norm -/
11141115
theorem real_inner_le_norm (x y : F) : ⟪x, y⟫_ℝ ≤ ‖x‖ * ‖y‖ :=
11151116
le_trans (le_abs_self _) (abs_real_inner_le_norm _ _)
11161117
#align real_inner_le_norm real_inner_le_norm
11171118

1119+
variable (𝕜)
1120+
11181121
theorem parallelogram_law_with_norm (x y : E) :
11191122
‖x + y‖ * ‖x + y‖ + ‖x - y‖ * ‖x - y‖ = 2 * (‖x‖ * ‖x‖ + ‖y‖ * ‖y‖) := by
11201123
simp only [← @inner_self_eq_norm_mul_norm 𝕜]
@@ -1785,7 +1788,7 @@ set_option linter.uppercaseLean3 false in
17851788
@[simp]
17861789
theorem innerSL_apply_norm (x : E) : ‖innerSL 𝕜 x‖ = ‖x‖ := by
17871790
refine'
1788-
le_antisymm ((innerSL 𝕜 x).op_norm_le_bound (norm_nonneg _) fun y => norm_inner_le_norm _ _ _) _
1791+
le_antisymm ((innerSL 𝕜 x).op_norm_le_bound (norm_nonneg _) fun y => norm_inner_le_norm _ _) _
17891792
rcases eq_or_ne x 0 with (rfl | h)
17901793
· simp
17911794
· refine' (mul_le_mul_right (norm_pos_iff.2 h)).mp _
@@ -1864,7 +1867,7 @@ theorem _root_.isBoundedBilinearMap_inner [NormedSpace ℝ E] :
18641867
bound :=
18651868
1, zero_lt_one, fun x y => by
18661869
rw [one_mul]
1867-
exact norm_inner_le_norm _ x y⟩ }
1870+
exact norm_inner_le_norm x y⟩ }
18681871
#align is_bounded_bilinear_map_inner isBoundedBilinearMap_inner
18691872

18701873
end Norm

0 commit comments

Comments
 (0)