forked from leanprover-community/mathlib4
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathCount.lean
More file actions
48 lines (38 loc) · 1.74 KB
/
Count.lean
File metadata and controls
48 lines (38 loc) · 1.74 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
/-
Copyright (c) 2026 Floris van Doorn. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Floris van Doorn
-/
module
public import Mathlib.MeasureTheory.Function.LpSeminorm.Indicator
/-!
# `L^p`-seminorms on `count` and `dirac`
-/
@[expose] public section
open MeasureTheory Measure ENNReal Set Filter
variable {α ε : Type*} [MeasurableSpace α] [MeasurableSingletonClass α]
[TopologicalSpace ε] [ContinuousENorm ε] {f : α → ε} {p : ℝ≥0∞} {x : α}
namespace MeasureTheory
@[simp]
lemma eLpNorm_dirac (f : α → ε) (i : α) (hp : p ≠ 0) :
eLpNorm f p (dirac i) = ‖f i‖ₑ := by
simp_rw [eLpNorm, if_neg hp]
split_ifs
· simp [eLpNormEssSup, essSup, limsup, limsSup, Set.Ici_def]
· simp [eLpNorm', ENNReal.toReal_eq_zero_iff, *]
lemma enorm_le_eLpNorm_count (f : α → ε) (i : α) (hp : p ≠ 0) :
‖f i‖ₑ ≤ eLpNorm f p count := by
calc
‖f i‖ₑ = eLpNorm f p (dirac i) := by rw [eLpNorm_dirac f i hp]
_ = eLpNorm f p (count.restrict {i}) := by simp
_ ≤ eLpNorm f p count := eLpNorm_restrict_le ..
omit [MeasurableSingletonClass α] in
lemma eLpNorm_count_lt_top_of_lt [Finite α] (h : ∀ i, ‖f i‖ₑ < ∞) : eLpNorm f p .count < ∞ := by
haveI := Fintype.ofFinite α
refine (eLpNorm_mono_enorm (g := fun _ ↦ Finset.univ.sup (‖f ·‖ₑ)) ?_).trans_lt ?_
· exact fun x ↦ Finset.le_sup (f := (‖f ·‖ₑ)) (Finset.mem_univ x)
· exact (memLp_const_enorm <| by simp [h, LT.lt.ne]).eLpNorm_lt_top
lemma eLpNorm_count_lt_top [Finite α] (hp : p ≠ 0) :
eLpNorm f p .count < ∞ ↔ ∀ i, ‖f i‖ₑ < ∞ :=
⟨fun h i ↦ (enorm_le_eLpNorm_count f i hp).trans_lt h, eLpNorm_count_lt_top_of_lt⟩
end MeasureTheory