Theorem: MeasureTheory.SimpleFunc.measure_preimage_lt_top_of_memℒp
File: Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean

tactic: have hp_pos_real : 0 < p.toReal := ENNReal.toReal_pos hp_pos hp_ne_top
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
E : Type u_4
F : Type u_5
𝕜 : Type u_6
inst✝² : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedAddCommGroup F
μ : Measure α
p : ℝ≥0∞
hp_pos : p ≠ 0
hp_ne_top : p ≠ ⊤
f : α →ₛ E
hf : Memℒp (↑f) p μ
y : E
hy_ne : y ≠ 0
⊢ μ (↑f ⁻¹' {y}) < ⊤
state_after: α : Type u_1
β : Type u_2
ι : Type u_3
E : Type u_4
F : Type u_5
𝕜 : Type u_6
inst✝² : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedAddCommGroup F
μ : Measure α
p : ℝ≥0∞
hp_pos : p ≠ 0
hp_ne_top : p ≠ ⊤
f : α →ₛ E
hf : Memℒp (↑f) p μ
y : E
hy_ne : y ≠ 0
hp_pos_real : 0 < p.toReal
⊢ μ (↑f ⁻¹' {y}) < ⊤

tactic: have hf_snorm := Memℒp.snorm_lt_top hf
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
E : Type u_4
F : Type u_5
𝕜 : Type u_6
inst✝² : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedAddCommGroup F
μ : Measure α
p : ℝ≥0∞
hp_pos : p ≠ 0
hp_ne_top : p ≠ ⊤
f : α →ₛ E
hf : Memℒp (↑f) p μ
y : E
hy_ne : y ≠ 0
hp_pos_real : 0 < p.toReal
⊢ μ (↑f ⁻¹' {y}) < ⊤
state_after: α : Type u_1
β : Type u_2
ι : Type u_3
E : Type u_4
F : Type u_5
𝕜 : Type u_6
inst✝² : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedAddCommGroup F
μ : Measure α
p : ℝ≥0∞
hp_pos : p ≠ 0
hp_ne_top : p ≠ ⊤
f : α →ₛ E
hf : Memℒp (↑f) p μ
y : E
hy_ne : y ≠ 0
hp_pos_real : 0 < p.toReal
hf_snorm : snorm (↑f) p μ < ⊤
⊢ μ (↑f ⁻¹' {y}) < ⊤

tactic: rw [snorm_eq_snorm' hp_pos hp_ne_top, f.snorm'_eq, ←
  @ENNReal.lt_rpow_one_div_iff _ _ (1 / p.toReal) (by simp [hp_pos_real]),
  @ENNReal.top_rpow_of_pos (1 / (1 / p.toReal)) (by simp [hp_pos_real]),
  ENNReal.sum_lt_top_iff] at hf_snorm
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
E : Type u_4
F : Type u_5
𝕜 : Type u_6
inst✝² : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedAddCommGroup F
μ : Measure α
p : ℝ≥0∞
hp_pos : p ≠ 0
hp_ne_top : p ≠ ⊤
f : α →ₛ E
hf : Memℒp (↑f) p μ
y : E
hy_ne : y ≠ 0
hp_pos_real : 0 < p.toReal
hf_snorm : snorm (↑f) p μ < ⊤
⊢ μ (↑f ⁻¹' {y}) < ⊤
state_after: α : Type u_1
β : Type u_2
ι : Type u_3
E : Type u_4
F : Type u_5
𝕜 : Type u_6
inst✝² : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedAddCommGroup F
μ : Measure α
p : ℝ≥0∞
hp_pos : p ≠ 0
hp_ne_top : p ≠ ⊤
f : α →ₛ E
hf : Memℒp (↑f) p μ
y : E
hy_ne : y ≠ 0
hp_pos_real : 0 < p.toReal
hf_snorm : ∀ a ∈ f.range, ↑‖a‖₊ ^ p.toReal * μ (↑f ⁻¹' {a}) < ⊤
⊢ μ (↑f ⁻¹' {y}) < ⊤

tactic: by_cases hyf : y ∈ f.range
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
E : Type u_4
F : Type u_5
𝕜 : Type u_6
inst✝² : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedAddCommGroup F
μ : Measure α
p : ℝ≥0∞
hp_pos : p ≠ 0
hp_ne_top : p ≠ ⊤
f : α →ₛ E
hf : Memℒp (↑f) p μ
y : E
hy_ne : y ≠ 0
hp_pos_real : 0 < p.toReal
hf_snorm : ∀ a ∈ f.range, ↑‖a‖₊ ^ p.toReal * μ (↑f ⁻¹' {a}) < ⊤
⊢ μ (↑f ⁻¹' {y}) < ⊤
state_after: case pos
α : Type u_1
β : Type u_2
ι : Type u_3
E : Type u_4
F : Type u_5
𝕜 : Type u_6
inst✝² : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedAddCommGroup F
μ : Measure α
p : ℝ≥0∞
hp_pos : p ≠ 0
hp_ne_top : p ≠ ⊤
f : α →ₛ E
hf : Memℒp (↑f) p μ
y : E
hy_ne : y ≠ 0
hp_pos_real : 0 < p.toReal
hf_snorm : ∀ a ∈ f.range, ↑‖a‖₊ ^ p.toReal * μ (↑f ⁻¹' {a}) < ⊤
hyf : y ∈ f.range
⊢ μ (↑f ⁻¹' {y}) < ⊤

case neg
α : Type u_1
β : Type u_2
ι : Type u_3
E : Type u_4
F : Type u_5
𝕜 : Type u_6
inst✝² : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedAddCommGroup F
μ : Measure α
p : ℝ≥0∞
hp_pos : p ≠ 0
hp_ne_top : p ≠ ⊤
f : α →ₛ E
hf : Memℒp (↑f) p μ
y : E
hy_ne : y ≠ 0
hp_pos_real : 0 < p.toReal
hf_snorm : ∀ a ∈ f.range, ↑‖a‖₊ ^ p.toReal * μ (↑f ⁻¹' {a}) < ⊤
hyf : y ∉ f.range
⊢ μ (↑f ⁻¹' {y}) < ⊤

tactic: swap
state_before: case pos
α : Type u_1
β : Type u_2
ι : Type u_3
E : Type u_4
F : Type u_5
𝕜 : Type u_6
inst✝² : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedAddCommGroup F
μ : Measure α
p : ℝ≥0∞
hp_pos : p ≠ 0
hp_ne_top : p ≠ ⊤
f : α →ₛ E
hf : Memℒp (↑f) p μ
y : E
hy_ne : y ≠ 0
hp_pos_real : 0 < p.toReal
hf_snorm : ∀ a ∈ f.range, ↑‖a‖₊ ^ p.toReal * μ (↑f ⁻¹' {a}) < ⊤
hyf : y ∈ f.range
⊢ μ (↑f ⁻¹' {y}) < ⊤

case neg
α : Type u_1
β : Type u_2
ι : Type u_3
E : Type u_4
F : Type u_5
𝕜 : Type u_6
inst✝² : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedAddCommGroup F
μ : Measure α
p : ℝ≥0∞
hp_pos : p ≠ 0
hp_ne_top : p ≠ ⊤
f : α →ₛ E
hf : Memℒp (↑f) p μ
y : E
hy_ne : y ≠ 0
hp_pos_real : 0 < p.toReal
hf_snorm : ∀ a ∈ f.range, ↑‖a‖₊ ^ p.toReal * μ (↑f ⁻¹' {a}) < ⊤
hyf : y ∉ f.range
⊢ μ (↑f ⁻¹' {y}) < ⊤
state_after: case neg
α : Type u_1
β : Type u_2
ι : Type u_3
E : Type u_4
F : Type u_5
𝕜 : Type u_6
inst✝² : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedAddCommGroup F
μ : Measure α
p : ℝ≥0∞
hp_pos : p ≠ 0
hp_ne_top : p ≠ ⊤
f : α →ₛ E
hf : Memℒp (↑f) p μ
y : E
hy_ne : y ≠ 0
hp_pos_real : 0 < p.toReal
hf_snorm : ∀ a ∈ f.range, ↑‖a‖₊ ^ p.toReal * μ (↑f ⁻¹' {a}) < ⊤
hyf : y ∉ f.range
⊢ μ (↑f ⁻¹' {y}) < ⊤

case pos
α : Type u_1
β : Type u_2
ι : Type u_3
E : Type u_4
F : Type u_5
𝕜 : Type u_6
inst✝² : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedAddCommGroup F
μ : Measure α
p : ℝ≥0∞
hp_pos : p ≠ 0
hp_ne_top : p ≠ ⊤
f : α →ₛ E
hf : Memℒp (↑f) p μ
y : E
hy_ne : y ≠ 0
hp_pos_real : 0 < p.toReal
hf_snorm : ∀ a ∈ f.range, ↑‖a‖₊ ^ p.toReal * μ (↑f ⁻¹' {a}) < ⊤
hyf : y ∈ f.range
⊢ μ (↑f ⁻¹' {y}) < ⊤

tactic: specialize hf_snorm y hyf
state_before: case pos
α : Type u_1
β : Type u_2
ι : Type u_3
E : Type u_4
F : Type u_5
𝕜 : Type u_6
inst✝² : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedAddCommGroup F
μ : Measure α
p : ℝ≥0∞
hp_pos : p ≠ 0
hp_ne_top : p ≠ ⊤
f : α →ₛ E
hf : Memℒp (↑f) p μ
y : E
hy_ne : y ≠ 0
hp_pos_real : 0 < p.toReal
hf_snorm : ∀ a ∈ f.range, ↑‖a‖₊ ^ p.toReal * μ (↑f ⁻¹' {a}) < ⊤
hyf : y ∈ f.range
⊢ μ (↑f ⁻¹' {y}) < ⊤
state_after: case pos
α : Type u_1
β : Type u_2
ι : Type u_3
E : Type u_4
F : Type u_5
𝕜 : Type u_6
inst✝² : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedAddCommGroup F
μ : Measure α
p : ℝ≥0∞
hp_pos : p ≠ 0
hp_ne_top : p ≠ ⊤
f : α →ₛ E
hf : Memℒp (↑f) p μ
y : E
hy_ne : y ≠ 0
hp_pos_real : 0 < p.toReal
hyf : y ∈ f.range
hf_snorm : ↑‖y‖₊ ^ p.toReal * μ (↑f ⁻¹' {y}) < ⊤
⊢ μ (↑f ⁻¹' {y}) < ⊤

tactic: rw [ENNReal.mul_lt_top_iff] at hf_snorm
state_before: case pos
α : Type u_1
β : Type u_2
ι : Type u_3
E : Type u_4
F : Type u_5
𝕜 : Type u_6
inst✝² : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedAddCommGroup F
μ : Measure α
p : ℝ≥0∞
hp_pos : p ≠ 0
hp_ne_top : p ≠ ⊤
f : α →ₛ E
hf : Memℒp (↑f) p μ
y : E
hy_ne : y ≠ 0
hp_pos_real : 0 < p.toReal
hyf : y ∈ f.range
hf_snorm : ↑‖y‖₊ ^ p.toReal * μ (↑f ⁻¹' {y}) < ⊤
⊢ μ (↑f ⁻¹' {y}) < ⊤
state_after: case pos
α : Type u_1
β : Type u_2
ι : Type u_3
E : Type u_4
F : Type u_5
𝕜 : Type u_6
inst✝² : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedAddCommGroup F
μ : Measure α
p : ℝ≥0∞
hp_pos : p ≠ 0
hp_ne_top : p ≠ ⊤
f : α →ₛ E
hf : Memℒp (↑f) p μ
y : E
hy_ne : y ≠ 0
hp_pos_real : 0 < p.toReal
hyf : y ∈ f.range
hf_snorm : ↑‖y‖₊ ^ p.toReal < ⊤ ∧ μ (↑f ⁻¹' {y}) < ⊤ ∨ ↑‖y‖₊ ^ p.toReal = 0 ∨ μ (↑f ⁻¹' {y}) = 0
⊢ μ (↑f ⁻¹' {y}) < ⊤

tactic: cases hf_snorm with
| inl hf_snorm => exact hf_snorm.2
| inr hf_snorm =>
  cases hf_snorm with
  | inl hf_snorm =>
    refine absurd ?_ hy_ne
    simpa [hp_pos_real] using hf_snorm
  | inr hf_snorm => simp [hf_snorm]
state_before: case pos
α : Type u_1
β : Type u_2
ι : Type u_3
E : Type u_4
F : Type u_5
𝕜 : Type u_6
inst✝² : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedAddCommGroup F
μ : Measure α
p : ℝ≥0∞
hp_pos : p ≠ 0
hp_ne_top : p ≠ ⊤
f : α →ₛ E
hf : Memℒp (↑f) p μ
y : E
hy_ne : y ≠ 0
hp_pos_real : 0 < p.toReal
hyf : y ∈ f.range
hf_snorm : ↑‖y‖₊ ^ p.toReal < ⊤ ∧ μ (↑f ⁻¹' {y}) < ⊤ ∨ ↑‖y‖₊ ^ p.toReal = 0 ∨ μ (↑f ⁻¹' {y}) = 0
⊢ μ (↑f ⁻¹' {y}) < ⊤
state_after: no goals

tactic: simp [hp_pos_real]
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
E : Type u_4
F : Type u_5
𝕜 : Type u_6
inst✝² : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedAddCommGroup F
μ : Measure α
p : ℝ≥0∞
hp_pos : p ≠ 0
hp_ne_top : p ≠ ⊤
f : α →ₛ E
hf : Memℒp (↑f) p μ
y : E
hy_ne : y ≠ 0
hp_pos_real : 0 < p.toReal
hf_snorm : (∑ y ∈ f.range, ↑‖y‖₊ ^ p.toReal * μ (↑f ⁻¹' {y})) ^ (1 / p.toReal) < ⊤
⊢ 0 < 1 / p.toReal
state_after: no goals

tactic: simp [hp_pos_real]
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
E : Type u_4
F : Type u_5
𝕜 : Type u_6
inst✝² : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedAddCommGroup F
μ : Measure α
p : ℝ≥0∞
hp_pos : p ≠ 0
hp_ne_top : p ≠ ⊤
f : α →ₛ E
hf : Memℒp (↑f) p μ
y : E
hy_ne : y ≠ 0
hp_pos_real : 0 < p.toReal
hf_snorm : ∑ y ∈ f.range, ↑‖y‖₊ ^ p.toReal * μ (↑f ⁻¹' {y}) < ⊤ ^ (1 / (1 / p.toReal))
⊢ 0 < 1 / (1 / p.toReal)
state_after: no goals

tactic: suffices h_empty : f ⁻¹' {y} = ∅ by
  rw [h_empty, measure_empty]; exact ENNReal.coe_lt_top
state_before: case neg
α : Type u_1
β : Type u_2
ι : Type u_3
E : Type u_4
F : Type u_5
𝕜 : Type u_6
inst✝² : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedAddCommGroup F
μ : Measure α
p : ℝ≥0∞
hp_pos : p ≠ 0
hp_ne_top : p ≠ ⊤
f : α →ₛ E
hf : Memℒp (↑f) p μ
y : E
hy_ne : y ≠ 0
hp_pos_real : 0 < p.toReal
hf_snorm : ∀ a ∈ f.range, ↑‖a‖₊ ^ p.toReal * μ (↑f ⁻¹' {a}) < ⊤
hyf : y ∉ f.range
⊢ μ (↑f ⁻¹' {y}) < ⊤
state_after: case neg
α : Type u_1
β : Type u_2
ι : Type u_3
E : Type u_4
F : Type u_5
𝕜 : Type u_6
inst✝² : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedAddCommGroup F
μ : Measure α
p : ℝ≥0∞
hp_pos : p ≠ 0
hp_ne_top : p ≠ ⊤
f : α →ₛ E
hf : Memℒp (↑f) p μ
y : E
hy_ne : y ≠ 0
hp_pos_real : 0 < p.toReal
hf_snorm : ∀ a ∈ f.range, ↑‖a‖₊ ^ p.toReal * μ (↑f ⁻¹' {a}) < ⊤
hyf : y ∉ f.range
⊢ ↑f ⁻¹' {y} = ∅

tactic: ext1 x
state_before: case neg
α : Type u_1
β : Type u_2
ι : Type u_3
E : Type u_4
F : Type u_5
𝕜 : Type u_6
inst✝² : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedAddCommGroup F
μ : Measure α
p : ℝ≥0∞
hp_pos : p ≠ 0
hp_ne_top : p ≠ ⊤
f : α →ₛ E
hf : Memℒp (↑f) p μ
y : E
hy_ne : y ≠ 0
hp_pos_real : 0 < p.toReal
hf_snorm : ∀ a ∈ f.range, ↑‖a‖₊ ^ p.toReal * μ (↑f ⁻¹' {a}) < ⊤
hyf : y ∉ f.range
⊢ ↑f ⁻¹' {y} = ∅
state_after: case neg.h
α : Type u_1
β : Type u_2
ι : Type u_3
E : Type u_4
F : Type u_5
𝕜 : Type u_6
inst✝² : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedAddCommGroup F
μ : Measure α
p : ℝ≥0∞
hp_pos : p ≠ 0
hp_ne_top : p ≠ ⊤
f : α →ₛ E
hf : Memℒp (↑f) p μ
y : E
hy_ne : y ≠ 0
hp_pos_real : 0 < p.toReal
hf_snorm : ∀ a ∈ f.range, ↑‖a‖₊ ^ p.toReal * μ (↑f ⁻¹' {a}) < ⊤
hyf : y ∉ f.range
x : α
⊢ x ∈ ↑f ⁻¹' {y} ↔ x ∈ ∅

tactic: rw [Set.mem_preimage, Set.mem_singleton_iff, mem_empty_iff_false, iff_false_iff]
state_before: case neg.h
α : Type u_1
β : Type u_2
ι : Type u_3
E : Type u_4
F : Type u_5
𝕜 : Type u_6
inst✝² : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedAddCommGroup F
μ : Measure α
p : ℝ≥0∞
hp_pos : p ≠ 0
hp_ne_top : p ≠ ⊤
f : α →ₛ E
hf : Memℒp (↑f) p μ
y : E
hy_ne : y ≠ 0
hp_pos_real : 0 < p.toReal
hf_snorm : ∀ a ∈ f.range, ↑‖a‖₊ ^ p.toReal * μ (↑f ⁻¹' {a}) < ⊤
hyf : y ∉ f.range
x : α
⊢ x ∈ ↑f ⁻¹' {y} ↔ x ∈ ∅
state_after: case neg.h
α : Type u_1
β : Type u_2
ι : Type u_3
E : Type u_4
F : Type u_5
𝕜 : Type u_6
inst✝² : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedAddCommGroup F
μ : Measure α
p : ℝ≥0∞
hp_pos : p ≠ 0
hp_ne_top : p ≠ ⊤
f : α →ₛ E
hf : Memℒp (↑f) p μ
y : E
hy_ne : y ≠ 0
hp_pos_real : 0 < p.toReal
hf_snorm : ∀ a ∈ f.range, ↑‖a‖₊ ^ p.toReal * μ (↑f ⁻¹' {a}) < ⊤
hyf : y ∉ f.range
x : α
⊢ ¬↑f x = y

tactic: refine fun hxy => hyf ?_
state_before: case neg.h
α : Type u_1
β : Type u_2
ι : Type u_3
E : Type u_4
F : Type u_5
𝕜 : Type u_6
inst✝² : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedAddCommGroup F
μ : Measure α
p : ℝ≥0∞
hp_pos : p ≠ 0
hp_ne_top : p ≠ ⊤
f : α →ₛ E
hf : Memℒp (↑f) p μ
y : E
hy_ne : y ≠ 0
hp_pos_real : 0 < p.toReal
hf_snorm : ∀ a ∈ f.range, ↑‖a‖₊ ^ p.toReal * μ (↑f ⁻¹' {a}) < ⊤
hyf : y ∉ f.range
x : α
⊢ ¬↑f x = y
state_after: case neg.h
α : Type u_1
β : Type u_2
ι : Type u_3
E : Type u_4
F : Type u_5
𝕜 : Type u_6
inst✝² : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedAddCommGroup F
μ : Measure α
p : ℝ≥0∞
hp_pos : p ≠ 0
hp_ne_top : p ≠ ⊤
f : α →ₛ E
hf : Memℒp (↑f) p μ
y : E
hy_ne : y ≠ 0
hp_pos_real : 0 < p.toReal
hf_snorm : ∀ a ∈ f.range, ↑‖a‖₊ ^ p.toReal * μ (↑f ⁻¹' {a}) < ⊤
hyf : y ∉ f.range
x : α
hxy : ↑f x = y
⊢ y ∈ f.range

tactic: rw [mem_range, Set.mem_range]
state_before: case neg.h
α : Type u_1
β : Type u_2
ι : Type u_3
E : Type u_4
F : Type u_5
𝕜 : Type u_6
inst✝² : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedAddCommGroup F
μ : Measure α
p : ℝ≥0∞
hp_pos : p ≠ 0
hp_ne_top : p ≠ ⊤
f : α →ₛ E
hf : Memℒp (↑f) p μ
y : E
hy_ne : y ≠ 0
hp_pos_real : 0 < p.toReal
hf_snorm : ∀ a ∈ f.range, ↑‖a‖₊ ^ p.toReal * μ (↑f ⁻¹' {a}) < ⊤
hyf : y ∉ f.range
x : α
hxy : ↑f x = y
⊢ y ∈ f.range
state_after: case neg.h
α : Type u_1
β : Type u_2
ι : Type u_3
E : Type u_4
F : Type u_5
𝕜 : Type u_6
inst✝² : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedAddCommGroup F
μ : Measure α
p : ℝ≥0∞
hp_pos : p ≠ 0
hp_ne_top : p ≠ ⊤
f : α →ₛ E
hf : Memℒp (↑f) p μ
y : E
hy_ne : y ≠ 0
hp_pos_real : 0 < p.toReal
hf_snorm : ∀ a ∈ f.range, ↑‖a‖₊ ^ p.toReal * μ (↑f ⁻¹' {a}) < ⊤
hyf : y ∉ f.range
x : α
hxy : ↑f x = y
⊢ ∃ y_1, ↑f y_1 = y

tactic: exact ⟨x, hxy⟩
state_before: case neg.h
α : Type u_1
β : Type u_2
ι : Type u_3
E : Type u_4
F : Type u_5
𝕜 : Type u_6
inst✝² : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedAddCommGroup F
μ : Measure α
p : ℝ≥0∞
hp_pos : p ≠ 0
hp_ne_top : p ≠ ⊤
f : α →ₛ E
hf : Memℒp (↑f) p μ
y : E
hy_ne : y ≠ 0
hp_pos_real : 0 < p.toReal
hf_snorm : ∀ a ∈ f.range, ↑‖a‖₊ ^ p.toReal * μ (↑f ⁻¹' {a}) < ⊤
hyf : y ∉ f.range
x : α
hxy : ↑f x = y
⊢ ∃ y_1, ↑f y_1 = y
state_after: no goals

tactic: rw [h_empty, measure_empty]
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
E : Type u_4
F : Type u_5
𝕜 : Type u_6
inst✝² : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedAddCommGroup F
μ : Measure α
p : ℝ≥0∞
hp_pos : p ≠ 0
hp_ne_top : p ≠ ⊤
f : α →ₛ E
hf : Memℒp (↑f) p μ
y : E
hy_ne : y ≠ 0
hp_pos_real : 0 < p.toReal
hf_snorm : ∀ a ∈ f.range, ↑‖a‖₊ ^ p.toReal * μ (↑f ⁻¹' {a}) < ⊤
hyf : y ∉ f.range
h_empty : ↑f ⁻¹' {y} = ∅
⊢ μ (↑f ⁻¹' {y}) < ⊤
state_after: α : Type u_1
β : Type u_2
ι : Type u_3
E : Type u_4
F : Type u_5
𝕜 : Type u_6
inst✝² : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedAddCommGroup F
μ : Measure α
p : ℝ≥0∞
hp_pos : p ≠ 0
hp_ne_top : p ≠ ⊤
f : α →ₛ E
hf : Memℒp (↑f) p μ
y : E
hy_ne : y ≠ 0
hp_pos_real : 0 < p.toReal
hf_snorm : ∀ a ∈ f.range, ↑‖a‖₊ ^ p.toReal * μ (↑f ⁻¹' {a}) < ⊤
hyf : y ∉ f.range
h_empty : ↑f ⁻¹' {y} = ∅
⊢ 0 < ⊤

tactic: exact ENNReal.coe_lt_top
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
E : Type u_4
F : Type u_5
𝕜 : Type u_6
inst✝² : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedAddCommGroup F
μ : Measure α
p : ℝ≥0∞
hp_pos : p ≠ 0
hp_ne_top : p ≠ ⊤
f : α →ₛ E
hf : Memℒp (↑f) p μ
y : E
hy_ne : y ≠ 0
hp_pos_real : 0 < p.toReal
hf_snorm : ∀ a ∈ f.range, ↑‖a‖₊ ^ p.toReal * μ (↑f ⁻¹' {a}) < ⊤
hyf : y ∉ f.range
h_empty : ↑f ⁻¹' {y} = ∅
⊢ 0 < ⊤
state_after: no goals

tactic: exact hf_snorm.2
state_before: case pos.inl
α : Type u_1
β : Type u_2
ι : Type u_3
E : Type u_4
F : Type u_5
𝕜 : Type u_6
inst✝² : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedAddCommGroup F
μ : Measure α
p : ℝ≥0∞
hp_pos : p ≠ 0
hp_ne_top : p ≠ ⊤
f : α →ₛ E
hf : Memℒp (↑f) p μ
y : E
hy_ne : y ≠ 0
hp_pos_real : 0 < p.toReal
hyf : y ∈ f.range
hf_snorm : ↑‖y‖₊ ^ p.toReal < ⊤ ∧ μ (↑f ⁻¹' {y}) < ⊤
⊢ μ (↑f ⁻¹' {y}) < ⊤
state_after: no goals

tactic: cases hf_snorm with
| inl hf_snorm =>
  refine absurd ?_ hy_ne
  simpa [hp_pos_real] using hf_snorm
| inr hf_snorm => simp [hf_snorm]
state_before: case pos.inr
α : Type u_1
β : Type u_2
ι : Type u_3
E : Type u_4
F : Type u_5
𝕜 : Type u_6
inst✝² : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedAddCommGroup F
μ : Measure α
p : ℝ≥0∞
hp_pos : p ≠ 0
hp_ne_top : p ≠ ⊤
f : α →ₛ E
hf : Memℒp (↑f) p μ
y : E
hy_ne : y ≠ 0
hp_pos_real : 0 < p.toReal
hyf : y ∈ f.range
hf_snorm : ↑‖y‖₊ ^ p.toReal = 0 ∨ μ (↑f ⁻¹' {y}) = 0
⊢ μ (↑f ⁻¹' {y}) < ⊤
state_after: no goals

tactic: refine absurd ?_ hy_ne
state_before: case pos.inr.inl
α : Type u_1
β : Type u_2
ι : Type u_3
E : Type u_4
F : Type u_5
𝕜 : Type u_6
inst✝² : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedAddCommGroup F
μ : Measure α
p : ℝ≥0∞
hp_pos : p ≠ 0
hp_ne_top : p ≠ ⊤
f : α →ₛ E
hf : Memℒp (↑f) p μ
y : E
hy_ne : y ≠ 0
hp_pos_real : 0 < p.toReal
hyf : y ∈ f.range
hf_snorm : ↑‖y‖₊ ^ p.toReal = 0
⊢ μ (↑f ⁻¹' {y}) < ⊤
state_after: case pos.inr.inl
α : Type u_1
β : Type u_2
ι : Type u_3
E : Type u_4
F : Type u_5
𝕜 : Type u_6
inst✝² : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedAddCommGroup F
μ : Measure α
p : ℝ≥0∞
hp_pos : p ≠ 0
hp_ne_top : p ≠ ⊤
f : α →ₛ E
hf : Memℒp (↑f) p μ
y : E
hy_ne : y ≠ 0
hp_pos_real : 0 < p.toReal
hyf : y ∈ f.range
hf_snorm : ↑‖y‖₊ ^ p.toReal = 0
⊢ y = 0

tactic: simpa [hp_pos_real] using hf_snorm
state_before: case pos.inr.inl
α : Type u_1
β : Type u_2
ι : Type u_3
E : Type u_4
F : Type u_5
𝕜 : Type u_6
inst✝² : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedAddCommGroup F
μ : Measure α
p : ℝ≥0∞
hp_pos : p ≠ 0
hp_ne_top : p ≠ ⊤
f : α →ₛ E
hf : Memℒp (↑f) p μ
y : E
hy_ne : y ≠ 0
hp_pos_real : 0 < p.toReal
hyf : y ∈ f.range
hf_snorm : ↑‖y‖₊ ^ p.toReal = 0
⊢ y = 0
state_after: no goals

tactic: simp [hf_snorm]
state_before: case pos.inr.inr
α : Type u_1
β : Type u_2
ι : Type u_3
E : Type u_4
F : Type u_5
𝕜 : Type u_6
inst✝² : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedAddCommGroup F
μ : Measure α
p : ℝ≥0∞
hp_pos : p ≠ 0
hp_ne_top : p ≠ ⊤
f : α →ₛ E
hf : Memℒp (↑f) p μ
y : E
hy_ne : y ≠ 0
hp_pos_real : 0 < p.toReal
hyf : y ∈ f.range
hf_snorm : μ (↑f ⁻¹' {y}) = 0
⊢ μ (↑f ⁻¹' {y}) < ⊤
state_after: no goals