Theorem: MeasureTheory.IntegrableOn.restrict_toMeasurable
File: Mathlib/MeasureTheory/Integral/IntegrableOn.lean

tactic: rcases exists_seq_strictAnti_tendsto (0 : ℝ) with ⟨u, _, u_pos, u_lim⟩
state_before: α : Type u_1
β : Type ?u.1644972
E : Type u_2
F : Type ?u.1644978
inst✝¹ : MeasurableSpace α
inst✝ : NormedAddCommGroup E
f g : α → E
s t : Set α
μ ν : Measure α
hf : IntegrableOn f s
h's : ∀ (x : α), x ∈ s → f x ≠ 0
⊢ Measure.restrict μ (toMeasurable μ s) = Measure.restrict μ s

tactic: let v n := toMeasurable (μ.restrict s) { x | u n ≤ ‖f x‖ }
state_before: case intro.intro.intro
α : Type u_1
β : Type ?u.1644972
E : Type u_2
F : Type ?u.1644978
inst✝¹ : MeasurableSpace α
inst✝ : NormedAddCommGroup E
f g : α → E
s t : Set α
μ ν : Measure α
hf : IntegrableOn f s
h's : ∀ (x : α), x ∈ s → f x ≠ 0
u : ℕ → ℝ
left✝ : StrictAnti u
u_pos : ∀ (n : ℕ), 0 < u n
u_lim : Tendsto u atTop (𝓝 0)
⊢ Measure.restrict μ (toMeasurable μ s) = Measure.restrict μ s

tactic: have A : ∀ n, μ (s ∩ v n) ≠ ∞ := by
  intro n
  rw [inter_comm, ← Measure.restrict_apply (measurableSet_toMeasurable _ _),
    measure_toMeasurable]
  exact (hf.measure_ge_lt_top (u_pos n)).ne
state_before: case intro.intro.intro
α : Type u_1
β : Type ?u.1644972
E : Type u_2
F : Type ?u.1644978
inst✝¹ : MeasurableSpace α
inst✝ : NormedAddCommGroup E
f g : α → E
s t : Set α
μ ν : Measure α
hf : IntegrableOn f s
h's : ∀ (x : α), x ∈ s → f x ≠ 0
u : ℕ → ℝ
left✝ : StrictAnti u
u_pos : ∀ (n : ℕ), 0 < u n
u_lim : Tendsto u atTop (𝓝 0)
v : ℕ → Set α := fun n => toMeasurable (Measure.restrict μ s) {x | u n ≤ ‖f x‖}
⊢ Measure.restrict μ (toMeasurable μ s) = Measure.restrict μ s

tactic: apply Measure.restrict_toMeasurable_of_cover _ A
state_before: case intro.intro.intro
α : Type u_1
β : Type ?u.1644972
E : Type u_2
F : Type ?u.1644978
inst✝¹ : MeasurableSpace α
inst✝ : NormedAddCommGroup E
f g : α → E
s t : Set α
μ ν : Measure α
hf : IntegrableOn f s
h's : ∀ (x : α), x ∈ s → f x ≠ 0
u : ℕ → ℝ
left✝ : StrictAnti u
u_pos : ∀ (n : ℕ), 0 < u n
u_lim : Tendsto u atTop (𝓝 0)
v : ℕ → Set α := fun n => toMeasurable (Measure.restrict μ s) {x | u n ≤ ‖f x‖}
A : ∀ (n : ℕ), ↑↑μ (s ∩ v n) ≠ ⊤
⊢ Measure.restrict μ (toMeasurable μ s) = Measure.restrict μ s

tactic: intro x hx
state_before: α : Type u_1
β : Type ?u.1644972
E : Type u_2
F : Type ?u.1644978
inst✝¹ : MeasurableSpace α
inst✝ : NormedAddCommGroup E
f g : α → E
s t : Set α
μ ν : Measure α
hf : IntegrableOn f s
h's : ∀ (x : α), x ∈ s → f x ≠ 0
u : ℕ → ℝ
left✝ : StrictAnti u
u_pos : ∀ (n : ℕ), 0 < u n
u_lim : Tendsto u atTop (𝓝 0)
v : ℕ → Set α := fun n => toMeasurable (Measure.restrict μ s) {x | u n ≤ ‖f x‖}
A : ∀ (n : ℕ), ↑↑μ (s ∩ v n) ≠ ⊤
⊢ s ⊆ ⋃ (n : ℕ), v n

tactic: have : 0 < ‖f x‖ := by simp only [h's x hx, norm_pos_iff, Ne.def, not_false_iff]
state_before: α : Type u_1
β : Type ?u.1644972
E : Type u_2
F : Type ?u.1644978
inst✝¹ : MeasurableSpace α
inst✝ : NormedAddCommGroup E
f g : α → E
s t : Set α
μ ν : Measure α
hf : IntegrableOn f s
h's : ∀ (x : α), x ∈ s → f x ≠ 0
u : ℕ → ℝ
left✝ : StrictAnti u
u_pos : ∀ (n : ℕ), 0 < u n
u_lim : Tendsto u atTop (𝓝 0)
v : ℕ → Set α := fun n => toMeasurable (Measure.restrict μ s) {x | u n ≤ ‖f x‖}
A : ∀ (n : ℕ), ↑↑μ (s ∩ v n) ≠ ⊤
x : α
hx : x ∈ s
⊢ x ∈ ⋃ (n : ℕ), v n

tactic: obtain ⟨n, hn⟩ : ∃ n, u n < ‖f x‖
state_before: α : Type u_1
β : Type ?u.1644972
E : Type u_2
F : Type ?u.1644978
inst✝¹ : MeasurableSpace α
inst✝ : NormedAddCommGroup E
f g : α → E
s t : Set α
μ ν : Measure α
hf : IntegrableOn f s
h's : ∀ (x : α), x ∈ s → f x ≠ 0
u : ℕ → ℝ
left✝ : StrictAnti u
u_pos : ∀ (n : ℕ), 0 < u n
u_lim : Tendsto u atTop (𝓝 0)
v : ℕ → Set α := fun n => toMeasurable (Measure.restrict μ s) {x | u n ≤ ‖f x‖}
A : ∀ (n : ℕ), ↑↑μ (s ∩ v n) ≠ ⊤
x : α
hx : x ∈ s
this : 0 < ‖f x‖
⊢ x ∈ ⋃ (n : ℕ), v n

tactic: exact ((tendsto_order.1 u_lim).2 _ this).exists
state_before: α : Type u_1
β : Type ?u.1644972
E : Type u_2
F : Type ?u.1644978
inst✝¹ : MeasurableSpace α
inst✝ : NormedAddCommGroup E
f g : α → E
s t : Set α
μ ν : Measure α
hf : IntegrableOn f s
h's : ∀ (x : α), x ∈ s → f x ≠ 0
u : ℕ → ℝ
left✝ : StrictAnti u
u_pos : ∀ (n : ℕ), 0 < u n
u_lim : Tendsto u atTop (𝓝 0)
v : ℕ → Set α := fun n => toMeasurable (Measure.restrict μ s) {x | u n ≤ ‖f x‖}
A : ∀ (n : ℕ), ↑↑μ (s ∩ v n) ≠ ⊤
x : α
hx : x ∈ s
this : 0 < ‖f x‖
⊢ ∃ n, u n < ‖f x‖

case intro
α : Type u_1
β : Type ?u.1644972
E : Type u_2
F : Type ?u.1644978
inst✝¹ : MeasurableSpace α
inst✝ : NormedAddCommGroup E
f g : α → E
s t : Set α
μ ν : Measure α
hf : IntegrableOn f s
h's : ∀ (x : α), x ∈ s → f x ≠ 0
u : ℕ → ℝ
left✝ : StrictAnti u
u_pos : ∀ (n : ℕ), 0 < u n
u_lim : Tendsto u atTop (𝓝 0)
v : ℕ → Set α := fun n => toMeasurable (Measure.restrict μ s) {x | u n ≤ ‖f x‖}
A : ∀ (n : ℕ), ↑↑μ (s ∩ v n) ≠ ⊤
x : α
hx : x ∈ s
this : 0 < ‖f x‖
n : ℕ
hn : u n < ‖f x‖
⊢ x ∈ ⋃ (n : ℕ), v n

tactic: refine' mem_iUnion.2 ⟨n, _⟩
state_before: case intro
α : Type u_1
β : Type ?u.1644972
E : Type u_2
F : Type ?u.1644978
inst✝¹ : MeasurableSpace α
inst✝ : NormedAddCommGroup E
f g : α → E
s t : Set α
μ ν : Measure α
hf : IntegrableOn f s
h's : ∀ (x : α), x ∈ s → f x ≠ 0
u : ℕ → ℝ
left✝ : StrictAnti u
u_pos : ∀ (n : ℕ), 0 < u n
u_lim : Tendsto u atTop (𝓝 0)
v : ℕ → Set α := fun n => toMeasurable (Measure.restrict μ s) {x | u n ≤ ‖f x‖}
A : ∀ (n : ℕ), ↑↑μ (s ∩ v n) ≠ ⊤
x : α
hx : x ∈ s
this : 0 < ‖f x‖
n : ℕ
hn : u n < ‖f x‖
⊢ x ∈ ⋃ (n : ℕ), v n

tactic: exact subset_toMeasurable _ _ hn.le
state_before: case intro
α : Type u_1
β : Type ?u.1644972
E : Type u_2
F : Type ?u.1644978
inst✝¹ : MeasurableSpace α
inst✝ : NormedAddCommGroup E
f g : α → E
s t : Set α
μ ν : Measure α
hf : IntegrableOn f s
h's : ∀ (x : α), x ∈ s → f x ≠ 0
u : ℕ → ℝ
left✝ : StrictAnti u
u_pos : ∀ (n : ℕ), 0 < u n
u_lim : Tendsto u atTop (𝓝 0)
v : ℕ → Set α := fun n => toMeasurable (Measure.restrict μ s) {x | u n ≤ ‖f x‖}
A : ∀ (n : ℕ), ↑↑μ (s ∩ v n) ≠ ⊤
x : α
hx : x ∈ s
this : 0 < ‖f x‖
n : ℕ
hn : u n < ‖f x‖
⊢ x ∈ v n

tactic: intro n
state_before: α : Type u_1
β : Type ?u.1644972
E : Type u_2
F : Type ?u.1644978
inst✝¹ : MeasurableSpace α
inst✝ : NormedAddCommGroup E
f g : α → E
s t : Set α
μ ν : Measure α
hf : IntegrableOn f s
h's : ∀ (x : α), x ∈ s → f x ≠ 0
u : ℕ → ℝ
left✝ : StrictAnti u
u_pos : ∀ (n : ℕ), 0 < u n
u_lim : Tendsto u atTop (𝓝 0)
v : ℕ → Set α := fun n => toMeasurable (Measure.restrict μ s) {x | u n ≤ ‖f x‖}
⊢ ∀ (n : ℕ), ↑↑μ (s ∩ v n) ≠ ⊤

tactic: rw [inter_comm, ← Measure.restrict_apply (measurableSet_toMeasurable _ _),
  measure_toMeasurable]
state_before: α : Type u_1
β : Type ?u.1644972
E : Type u_2
F : Type ?u.1644978
inst✝¹ : MeasurableSpace α
inst✝ : NormedAddCommGroup E
f g : α → E
s t : Set α
μ ν : Measure α
hf : IntegrableOn f s
h's : ∀ (x : α), x ∈ s → f x ≠ 0
u : ℕ → ℝ
left✝ : StrictAnti u
u_pos : ∀ (n : ℕ), 0 < u n
u_lim : Tendsto u atTop (𝓝 0)
v : ℕ → Set α := fun n => toMeasurable (Measure.restrict μ s) {x | u n ≤ ‖f x‖}
n : ℕ
⊢ ↑↑μ (s ∩ v n) ≠ ⊤

tactic: exact (hf.measure_ge_lt_top (u_pos n)).ne
state_before: α : Type u_1
β : Type ?u.1644972
E : Type u_2
F : Type ?u.1644978
inst✝¹ : MeasurableSpace α
inst✝ : NormedAddCommGroup E
f g : α → E
s t : Set α
μ ν : Measure α
hf : IntegrableOn f s
h's : ∀ (x : α), x ∈ s → f x ≠ 0
u : ℕ → ℝ
left✝ : StrictAnti u
u_pos : ∀ (n : ℕ), 0 < u n
u_lim : Tendsto u atTop (𝓝 0)
v : ℕ → Set α := fun n => toMeasurable (Measure.restrict μ s) {x | u n ≤ ‖f x‖}
n : ℕ
⊢ ↑↑(Measure.restrict μ s) {x | u n ≤ ‖f x‖} ≠ ⊤

tactic: simp only [h's x hx, norm_pos_iff, Ne.def, not_false_iff]
state_before: α : Type u_1
β : Type ?u.1644972
E : Type u_2
F : Type ?u.1644978
inst✝¹ : MeasurableSpace α
inst✝ : NormedAddCommGroup E
f g : α → E
s t : Set α
μ ν : Measure α
hf : IntegrableOn f s
h's : ∀ (x : α), x ∈ s → f x ≠ 0
u : ℕ → ℝ
left✝ : StrictAnti u
u_pos : ∀ (n : ℕ), 0 < u n
u_lim : Tendsto u atTop (𝓝 0)
v : ℕ → Set α := fun n => toMeasurable (Measure.restrict μ s) {x | u n ≤ ‖f x‖}
A : ∀ (n : ℕ), ↑↑μ (s ∩ v n) ≠ ⊤
x : α
hx : x ∈ s
⊢ 0 < ‖f x‖