Theorem: MeasureTheory.snorm_sub_le_of_dist_bdd
File: Mathlib/MeasureTheory/Function/UniformIntegrable.lean

tactic: by_cases hp : p = 0
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace α
μ✝ : Measure α
inst✝ : NormedAddCommGroup β
p✝ : ℝ≥0∞
μ : Measure α
p : ℝ≥0∞
hp' : p ≠ ⊤
s : Set α
hs : MeasurableSet s
f g : α → β
c : ℝ
hc : 0 ≤ c
hf : ∀ x ∈ s, dist (f x) (g x) ≤ c
⊢ snorm (s.indicator (f - g)) p μ ≤ ENNReal.ofReal c * μ s ^ (1 / p.toReal)
state_after: case pos
α : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace α
μ✝ : Measure α
inst✝ : NormedAddCommGroup β
p✝ : ℝ≥0∞
μ : Measure α
p : ℝ≥0∞
hp' : p ≠ ⊤
s : Set α
hs : MeasurableSet s
f g : α → β
c : ℝ
hc : 0 ≤ c
hf : ∀ x ∈ s, dist (f x) (g x) ≤ c
hp : p = 0
⊢ snorm (s.indicator (f - g)) p μ ≤ ENNReal.ofReal c * μ s ^ (1 / p.toReal)

case neg
α : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace α
μ✝ : Measure α
inst✝ : NormedAddCommGroup β
p✝ : ℝ≥0∞
μ : Measure α
p : ℝ≥0∞
hp' : p ≠ ⊤
s : Set α
hs : MeasurableSet s
f g : α → β
c : ℝ
hc : 0 ≤ c
hf : ∀ x ∈ s, dist (f x) (g x) ≤ c
hp : ¬p = 0
⊢ snorm (s.indicator (f - g)) p μ ≤ ENNReal.ofReal c * μ s ^ (1 / p.toReal)

tactic: refine le_trans (snorm_mono this) ?_
state_before: case neg
α : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace α
μ✝ : Measure α
inst✝ : NormedAddCommGroup β
p✝ : ℝ≥0∞
μ : Measure α
p : ℝ≥0∞
hp' : p ≠ ⊤
s : Set α
hs : MeasurableSet s
f g : α → β
c : ℝ
hc : 0 ≤ c
hf : ∀ x ∈ s, dist (f x) (g x) ≤ c
hp : ¬p = 0
this : ∀ (x : α), ‖s.indicator (f - g) x‖ ≤ ‖s.indicator (fun x => c) x‖
⊢ snorm (s.indicator (f - g)) p μ ≤ ENNReal.ofReal c * μ s ^ (1 / p.toReal)
state_after: case neg
α : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace α
μ✝ : Measure α
inst✝ : NormedAddCommGroup β
p✝ : ℝ≥0∞
μ : Measure α
p : ℝ≥0∞
hp' : p ≠ ⊤
s : Set α
hs : MeasurableSet s
f g : α → β
c : ℝ
hc : 0 ≤ c
hf : ∀ x ∈ s, dist (f x) (g x) ≤ c
hp : ¬p = 0
this : ∀ (x : α), ‖s.indicator (f - g) x‖ ≤ ‖s.indicator (fun x => c) x‖
⊢ snorm (s.indicator fun x => c) p μ ≤ ENNReal.ofReal c * μ s ^ (1 / p.toReal)

tactic: rw [snorm_indicator_const hs hp hp']
state_before: case neg
α : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace α
μ✝ : Measure α
inst✝ : NormedAddCommGroup β
p✝ : ℝ≥0∞
μ : Measure α
p : ℝ≥0∞
hp' : p ≠ ⊤
s : Set α
hs : MeasurableSet s
f g : α → β
c : ℝ
hc : 0 ≤ c
hf : ∀ x ∈ s, dist (f x) (g x) ≤ c
hp : ¬p = 0
this : ∀ (x : α), ‖s.indicator (f - g) x‖ ≤ ‖s.indicator (fun x => c) x‖
⊢ snorm (s.indicator fun x => c) p μ ≤ ENNReal.ofReal c * μ s ^ (1 / p.toReal)
state_after: case neg
α : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace α
μ✝ : Measure α
inst✝ : NormedAddCommGroup β
p✝ : ℝ≥0∞
μ : Measure α
p : ℝ≥0∞
hp' : p ≠ ⊤
s : Set α
hs : MeasurableSet s
f g : α → β
c : ℝ
hc : 0 ≤ c
hf : ∀ x ∈ s, dist (f x) (g x) ≤ c
hp : ¬p = 0
this : ∀ (x : α), ‖s.indicator (f - g) x‖ ≤ ‖s.indicator (fun x => c) x‖
⊢ ↑‖c‖₊ * μ s ^ (1 / p.toReal) ≤ ENNReal.ofReal c * μ s ^ (1 / p.toReal)

tactic: refine mul_le_mul_right' (le_of_eq ?_) _
state_before: case neg
α : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace α
μ✝ : Measure α
inst✝ : NormedAddCommGroup β
p✝ : ℝ≥0∞
μ : Measure α
p : ℝ≥0∞
hp' : p ≠ ⊤
s : Set α
hs : MeasurableSet s
f g : α → β
c : ℝ
hc : 0 ≤ c
hf : ∀ x ∈ s, dist (f x) (g x) ≤ c
hp : ¬p = 0
this : ∀ (x : α), ‖s.indicator (f - g) x‖ ≤ ‖s.indicator (fun x => c) x‖
⊢ ↑‖c‖₊ * μ s ^ (1 / p.toReal) ≤ ENNReal.ofReal c * μ s ^ (1 / p.toReal)
state_after: case neg
α : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace α
μ✝ : Measure α
inst✝ : NormedAddCommGroup β
p✝ : ℝ≥0∞
μ : Measure α
p : ℝ≥0∞
hp' : p ≠ ⊤
s : Set α
hs : MeasurableSet s
f g : α → β
c : ℝ
hc : 0 ≤ c
hf : ∀ x ∈ s, dist (f x) (g x) ≤ c
hp : ¬p = 0
this : ∀ (x : α), ‖s.indicator (f - g) x‖ ≤ ‖s.indicator (fun x => c) x‖
⊢ ↑‖c‖₊ = ENNReal.ofReal c

tactic: rw [← ofReal_norm_eq_coe_nnnorm, Real.norm_eq_abs, abs_of_nonneg hc]
state_before: case neg
α : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace α
μ✝ : Measure α
inst✝ : NormedAddCommGroup β
p✝ : ℝ≥0∞
μ : Measure α
p : ℝ≥0∞
hp' : p ≠ ⊤
s : Set α
hs : MeasurableSet s
f g : α → β
c : ℝ
hc : 0 ≤ c
hf : ∀ x ∈ s, dist (f x) (g x) ≤ c
hp : ¬p = 0
this : ∀ (x : α), ‖s.indicator (f - g) x‖ ≤ ‖s.indicator (fun x => c) x‖
⊢ ↑‖c‖₊ = ENNReal.ofReal c
state_after: no goals

tactic: simp [hp]
state_before: case pos
α : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace α
μ✝ : Measure α
inst✝ : NormedAddCommGroup β
p✝ : ℝ≥0∞
μ : Measure α
p : ℝ≥0∞
hp' : p ≠ ⊤
s : Set α
hs : MeasurableSet s
f g : α → β
c : ℝ
hc : 0 ≤ c
hf : ∀ x ∈ s, dist (f x) (g x) ≤ c
hp : p = 0
⊢ snorm (s.indicator (f - g)) p μ ≤ ENNReal.ofReal c * μ s ^ (1 / p.toReal)
state_after: no goals

tactic: intro x
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace α
μ✝ : Measure α
inst✝ : NormedAddCommGroup β
p✝ : ℝ≥0∞
μ : Measure α
p : ℝ≥0∞
hp' : p ≠ ⊤
s : Set α
hs : MeasurableSet s
f g : α → β
c : ℝ
hc : 0 ≤ c
hf : ∀ x ∈ s, dist (f x) (g x) ≤ c
hp : ¬p = 0
⊢ ∀ (x : α), ‖s.indicator (f - g) x‖ ≤ ‖s.indicator (fun x => c) x‖
state_after: α : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace α
μ✝ : Measure α
inst✝ : NormedAddCommGroup β
p✝ : ℝ≥0∞
μ : Measure α
p : ℝ≥0∞
hp' : p ≠ ⊤
s : Set α
hs : MeasurableSet s
f g : α → β
c : ℝ
hc : 0 ≤ c
hf : ∀ x ∈ s, dist (f x) (g x) ≤ c
hp : ¬p = 0
x : α
⊢ ‖s.indicator (f - g) x‖ ≤ ‖s.indicator (fun x => c) x‖

tactic: by_cases hx : x ∈ s
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace α
μ✝ : Measure α
inst✝ : NormedAddCommGroup β
p✝ : ℝ≥0∞
μ : Measure α
p : ℝ≥0∞
hp' : p ≠ ⊤
s : Set α
hs : MeasurableSet s
f g : α → β
c : ℝ
hc : 0 ≤ c
hf : ∀ x ∈ s, dist (f x) (g x) ≤ c
hp : ¬p = 0
x : α
⊢ ‖s.indicator (f - g) x‖ ≤ ‖s.indicator (fun x => c) x‖
state_after: case pos
α : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace α
μ✝ : Measure α
inst✝ : NormedAddCommGroup β
p✝ : ℝ≥0∞
μ : Measure α
p : ℝ≥0∞
hp' : p ≠ ⊤
s : Set α
hs : MeasurableSet s
f g : α → β
c : ℝ
hc : 0 ≤ c
hf : ∀ x ∈ s, dist (f x) (g x) ≤ c
hp : ¬p = 0
x : α
hx : x ∈ s
⊢ ‖s.indicator (f - g) x‖ ≤ ‖s.indicator (fun x => c) x‖

case neg
α : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace α
μ✝ : Measure α
inst✝ : NormedAddCommGroup β
p✝ : ℝ≥0∞
μ : Measure α
p : ℝ≥0∞
hp' : p ≠ ⊤
s : Set α
hs : MeasurableSet s
f g : α → β
c : ℝ
hc : 0 ≤ c
hf : ∀ x ∈ s, dist (f x) (g x) ≤ c
hp : ¬p = 0
x : α
hx : x ∉ s
⊢ ‖s.indicator (f - g) x‖ ≤ ‖s.indicator (fun x => c) x‖

tactic: rw [Set.indicator_of_mem hx, Set.indicator_of_mem hx, Pi.sub_apply, ← dist_eq_norm,
  Real.norm_eq_abs, abs_of_nonneg hc]
state_before: case pos
α : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace α
μ✝ : Measure α
inst✝ : NormedAddCommGroup β
p✝ : ℝ≥0∞
μ : Measure α
p : ℝ≥0∞
hp' : p ≠ ⊤
s : Set α
hs : MeasurableSet s
f g : α → β
c : ℝ
hc : 0 ≤ c
hf : ∀ x ∈ s, dist (f x) (g x) ≤ c
hp : ¬p = 0
x : α
hx : x ∈ s
⊢ ‖s.indicator (f - g) x‖ ≤ ‖s.indicator (fun x => c) x‖
state_after: case pos
α : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace α
μ✝ : Measure α
inst✝ : NormedAddCommGroup β
p✝ : ℝ≥0∞
μ : Measure α
p : ℝ≥0∞
hp' : p ≠ ⊤
s : Set α
hs : MeasurableSet s
f g : α → β
c : ℝ
hc : 0 ≤ c
hf : ∀ x ∈ s, dist (f x) (g x) ≤ c
hp : ¬p = 0
x : α
hx : x ∈ s
⊢ dist (f x) (g x) ≤ c

tactic: exact hf x hx
state_before: case pos
α : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace α
μ✝ : Measure α
inst✝ : NormedAddCommGroup β
p✝ : ℝ≥0∞
μ : Measure α
p : ℝ≥0∞
hp' : p ≠ ⊤
s : Set α
hs : MeasurableSet s
f g : α → β
c : ℝ
hc : 0 ≤ c
hf : ∀ x ∈ s, dist (f x) (g x) ≤ c
hp : ¬p = 0
x : α
hx : x ∈ s
⊢ dist (f x) (g x) ≤ c
state_after: no goals

tactic: simp [Set.indicator_of_not_mem hx]
state_before: case neg
α : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace α
μ✝ : Measure α
inst✝ : NormedAddCommGroup β
p✝ : ℝ≥0∞
μ : Measure α
p : ℝ≥0∞
hp' : p ≠ ⊤
s : Set α
hs : MeasurableSet s
f g : α → β
c : ℝ
hc : 0 ≤ c
hf : ∀ x ∈ s, dist (f x) (g x) ≤ c
hp : ¬p = 0
x : α
hx : x ∉ s
⊢ ‖s.indicator (f - g) x‖ ≤ ‖s.indicator (fun x => c) x‖
state_after: no goals