Theorem: MeasureTheory.StronglyMeasurable.tendsto_approxBounded_of_norm_le
File: Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean

tactic: have h_tendsto := hf.tendsto_approx x
state_before: α : Type u_2
β✝ : Type ?u.23759
γ : Type ?u.23762
ι : Type ?u.23765
inst✝³ : Countable ι
f✝ g : α → β✝
inst✝² : TopologicalSpace β✝
β : Type u_1
f : α → β
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedSpace ℝ β
m : MeasurableSpace α
hf : StronglyMeasurable f
c : ℝ
x : α
hfx : ‖f x‖ ≤ c
⊢ Tendsto (fun n => ↑(approxBounded hf c n) x) atTop (𝓝 (f x))

tactic: simp only [StronglyMeasurable.approxBounded, SimpleFunc.coe_map, Function.comp_apply]
state_before: α : Type u_2
β✝ : Type ?u.23759
γ : Type ?u.23762
ι : Type ?u.23765
inst✝³ : Countable ι
f✝ g : α → β✝
inst✝² : TopologicalSpace β✝
β : Type u_1
f : α → β
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedSpace ℝ β
m : MeasurableSpace α
hf : StronglyMeasurable f
c : ℝ
x : α
hfx : ‖f x‖ ≤ c
h_tendsto : Tendsto (fun n => ↑(StronglyMeasurable.approx hf n) x) atTop (𝓝 (f x))
⊢ Tendsto (fun n => ↑(approxBounded hf c n) x) atTop (𝓝 (f x))

tactic: by_cases hfx0 : ‖f x‖ = 0
state_before: α : Type u_2
β✝ : Type ?u.23759
γ : Type ?u.23762
ι : Type ?u.23765
inst✝³ : Countable ι
f✝ g : α → β✝
inst✝² : TopologicalSpace β✝
β : Type u_1
f : α → β
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedSpace ℝ β
m : MeasurableSpace α
hf : StronglyMeasurable f
c : ℝ
x : α
hfx : ‖f x‖ ≤ c
h_tendsto : Tendsto (fun n => ↑(StronglyMeasurable.approx hf n) x) atTop (𝓝 (f x))
⊢ Tendsto (fun n => min 1 (c / ‖↑(StronglyMeasurable.approx hf n) x‖) • ↑(StronglyMeasurable.approx hf n) x) atTop
    (𝓝 (f x))

tactic: rw [← one_smul ℝ (f x)]
state_before: case neg
α : Type u_2
β✝ : Type ?u.23759
γ : Type ?u.23762
ι : Type ?u.23765
inst✝³ : Countable ι
f✝ g : α → β✝
inst✝² : TopologicalSpace β✝
β : Type u_1
f : α → β
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedSpace ℝ β
m : MeasurableSpace α
hf : StronglyMeasurable f
c : ℝ
x : α
hfx : ‖f x‖ ≤ c
h_tendsto : Tendsto (fun n => ↑(StronglyMeasurable.approx hf n) x) atTop (𝓝 (f x))
hfx0 : ¬‖f x‖ = 0
⊢ Tendsto (fun n => min 1 (c / ‖↑(StronglyMeasurable.approx hf n) x‖) • ↑(StronglyMeasurable.approx hf n) x) atTop
    (𝓝 (f x))

tactic: refine' Tendsto.smul _ h_tendsto
state_before: case neg
α : Type u_2
β✝ : Type ?u.23759
γ : Type ?u.23762
ι : Type ?u.23765
inst✝³ : Countable ι
f✝ g : α → β✝
inst✝² : TopologicalSpace β✝
β : Type u_1
f : α → β
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedSpace ℝ β
m : MeasurableSpace α
hf : StronglyMeasurable f
c : ℝ
x : α
hfx : ‖f x‖ ≤ c
h_tendsto : Tendsto (fun n => ↑(StronglyMeasurable.approx hf n) x) atTop (𝓝 (f x))
hfx0 : ¬‖f x‖ = 0
⊢ Tendsto (fun n => min 1 (c / ‖↑(StronglyMeasurable.approx hf n) x‖) • ↑(StronglyMeasurable.approx hf n) x) atTop
    (𝓝 (1 • f x))

tactic: have : min 1 (c / ‖f x‖) = 1 := by
  rw [min_eq_left_iff, one_le_div (lt_of_le_of_ne (norm_nonneg _) (Ne.symm hfx0))]
  exact hfx
state_before: case neg
α : Type u_2
β✝ : Type ?u.23759
γ : Type ?u.23762
ι : Type ?u.23765
inst✝³ : Countable ι
f✝ g : α → β✝
inst✝² : TopologicalSpace β✝
β : Type u_1
f : α → β
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedSpace ℝ β
m : MeasurableSpace α
hf : StronglyMeasurable f
c : ℝ
x : α
hfx : ‖f x‖ ≤ c
h_tendsto : Tendsto (fun n => ↑(StronglyMeasurable.approx hf n) x) atTop (𝓝 (f x))
hfx0 : ¬‖f x‖ = 0
⊢ Tendsto (fun n => min 1 (c / ‖↑(StronglyMeasurable.approx hf n) x‖)) atTop (𝓝 1)

tactic: nth_rw 2 [this.symm]
state_before: case neg
α : Type u_2
β✝ : Type ?u.23759
γ : Type ?u.23762
ι : Type ?u.23765
inst✝³ : Countable ι
f✝ g : α → β✝
inst✝² : TopologicalSpace β✝
β : Type u_1
f : α → β
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedSpace ℝ β
m : MeasurableSpace α
hf : StronglyMeasurable f
c : ℝ
x : α
hfx : ‖f x‖ ≤ c
h_tendsto : Tendsto (fun n => ↑(StronglyMeasurable.approx hf n) x) atTop (𝓝 (f x))
hfx0 : ¬‖f x‖ = 0
this : min 1 (c / ‖f x‖) = 1
⊢ Tendsto (fun n => min 1 (c / ‖↑(StronglyMeasurable.approx hf n) x‖)) atTop (𝓝 1)

tactic: refine' Tendsto.min tendsto_const_nhds _
state_before: case neg
α : Type u_2
β✝ : Type ?u.23759
γ : Type ?u.23762
ι : Type ?u.23765
inst✝³ : Countable ι
f✝ g : α → β✝
inst✝² : TopologicalSpace β✝
β : Type u_1
f : α → β
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedSpace ℝ β
m : MeasurableSpace α
hf : StronglyMeasurable f
c : ℝ
x : α
hfx : ‖f x‖ ≤ c
h_tendsto : Tendsto (fun n => ↑(StronglyMeasurable.approx hf n) x) atTop (𝓝 (f x))
hfx0 : ¬‖f x‖ = 0
this : min 1 (c / ‖f x‖) = 1
⊢ Tendsto (fun n => min 1 (c / ‖↑(StronglyMeasurable.approx hf n) x‖)) atTop (𝓝 (min 1 (c / ‖f x‖)))

tactic: refine' Tendsto.div tendsto_const_nhds h_tendsto.norm hfx0
state_before: case neg
α : Type u_2
β✝ : Type ?u.23759
γ : Type ?u.23762
ι : Type ?u.23765
inst✝³ : Countable ι
f✝ g : α → β✝
inst✝² : TopologicalSpace β✝
β : Type u_1
f : α → β
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedSpace ℝ β
m : MeasurableSpace α
hf : StronglyMeasurable f
c : ℝ
x : α
hfx : ‖f x‖ ≤ c
h_tendsto : Tendsto (fun n => ↑(StronglyMeasurable.approx hf n) x) atTop (𝓝 (f x))
hfx0 : ¬‖f x‖ = 0
this : min 1 (c / ‖f x‖) = 1
⊢ Tendsto (fun n => c / ‖↑(StronglyMeasurable.approx hf n) x‖) atTop (𝓝 (c / ‖f x‖))

tactic: rw [norm_eq_zero] at hfx0
state_before: case pos
α : Type u_2
β✝ : Type ?u.23759
γ : Type ?u.23762
ι : Type ?u.23765
inst✝³ : Countable ι
f✝ g : α → β✝
inst✝² : TopologicalSpace β✝
β : Type u_1
f : α → β
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedSpace ℝ β
m : MeasurableSpace α
hf : StronglyMeasurable f
c : ℝ
x : α
hfx : ‖f x‖ ≤ c
h_tendsto : Tendsto (fun n => ↑(StronglyMeasurable.approx hf n) x) atTop (𝓝 (f x))
hfx0 : ‖f x‖ = 0
⊢ Tendsto (fun n => min 1 (c / ‖↑(StronglyMeasurable.approx hf n) x‖) • ↑(StronglyMeasurable.approx hf n) x) atTop
    (𝓝 (f x))

tactic: rw [hfx0] at h_tendsto ⊢
state_before: case pos
α : Type u_2
β✝ : Type ?u.23759
γ : Type ?u.23762
ι : Type ?u.23765
inst✝³ : Countable ι
f✝ g : α → β✝
inst✝² : TopologicalSpace β✝
β : Type u_1
f : α → β
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedSpace ℝ β
m : MeasurableSpace α
hf : StronglyMeasurable f
c : ℝ
x : α
hfx : ‖f x‖ ≤ c
h_tendsto : Tendsto (fun n => ↑(StronglyMeasurable.approx hf n) x) atTop (𝓝 (f x))
hfx0 : f x = 0
⊢ Tendsto (fun n => min 1 (c / ‖↑(StronglyMeasurable.approx hf n) x‖) • ↑(StronglyMeasurable.approx hf n) x) atTop
    (𝓝 (f x))

tactic: have h_tendsto_norm : Tendsto (fun n => ‖hf.approx n x‖) atTop (𝓝 0) := by
  convert h_tendsto.norm
  rw [norm_zero]
state_before: case pos
α : Type u_2
β✝ : Type ?u.23759
γ : Type ?u.23762
ι : Type ?u.23765
inst✝³ : Countable ι
f✝ g : α → β✝
inst✝² : TopologicalSpace β✝
β : Type u_1
f : α → β
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedSpace ℝ β
m : MeasurableSpace α
hf : StronglyMeasurable f
c : ℝ
x : α
hfx : ‖f x‖ ≤ c
h_tendsto : Tendsto (fun n => ↑(StronglyMeasurable.approx hf n) x) atTop (𝓝 0)
hfx0 : f x = 0
⊢ Tendsto (fun n => min 1 (c / ‖↑(StronglyMeasurable.approx hf n) x‖) • ↑(StronglyMeasurable.approx hf n) x) atTop (𝓝 0)

tactic: refine' squeeze_zero_norm (fun n => _) h_tendsto_norm
state_before: case pos
α : Type u_2
β✝ : Type ?u.23759
γ : Type ?u.23762
ι : Type ?u.23765
inst✝³ : Countable ι
f✝ g : α → β✝
inst✝² : TopologicalSpace β✝
β : Type u_1
f : α → β
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedSpace ℝ β
m : MeasurableSpace α
hf : StronglyMeasurable f
c : ℝ
x : α
hfx : ‖f x‖ ≤ c
h_tendsto : Tendsto (fun n => ↑(StronglyMeasurable.approx hf n) x) atTop (𝓝 0)
hfx0 : f x = 0
h_tendsto_norm : Tendsto (fun n => ‖↑(StronglyMeasurable.approx hf n) x‖) atTop (𝓝 0)
⊢ Tendsto (fun n => min 1 (c / ‖↑(StronglyMeasurable.approx hf n) x‖) • ↑(StronglyMeasurable.approx hf n) x) atTop (𝓝 0)

tactic: convert h_tendsto.norm
state_before: α : Type u_2
β✝ : Type ?u.23759
γ : Type ?u.23762
ι : Type ?u.23765
inst✝³ : Countable ι
f✝ g : α → β✝
inst✝² : TopologicalSpace β✝
β : Type u_1
f : α → β
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedSpace ℝ β
m : MeasurableSpace α
hf : StronglyMeasurable f
c : ℝ
x : α
hfx : ‖f x‖ ≤ c
h_tendsto : Tendsto (fun n => ↑(StronglyMeasurable.approx hf n) x) atTop (𝓝 0)
hfx0 : f x = 0
⊢ Tendsto (fun n => ‖↑(StronglyMeasurable.approx hf n) x‖) atTop (𝓝 0)

tactic: rw [norm_zero]
state_before: case h.e'_5.h.e'_3
α : Type u_2
β✝ : Type ?u.23759
γ : Type ?u.23762
ι : Type ?u.23765
inst✝³ : Countable ι
f✝ g : α → β✝
inst✝² : TopologicalSpace β✝
β : Type u_1
f : α → β
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedSpace ℝ β
m : MeasurableSpace α
hf : StronglyMeasurable f
c : ℝ
x : α
hfx : ‖f x‖ ≤ c
h_tendsto : Tendsto (fun n => ↑(StronglyMeasurable.approx hf n) x) atTop (𝓝 0)
hfx0 : f x = 0
⊢ 0 = ‖0‖

tactic: refine' mul_le_mul_of_nonneg_right _ (norm_nonneg _)
state_before: α : Type u_2
β✝ : Type ?u.23759
γ : Type ?u.23762
ι : Type ?u.23765
inst✝³ : Countable ι
f✝ g : α → β✝
inst✝² : TopologicalSpace β✝
β : Type u_1
f : α → β
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedSpace ℝ β
m : MeasurableSpace α
hf : StronglyMeasurable f
c : ℝ
x : α
hfx : ‖f x‖ ≤ c
h_tendsto : Tendsto (fun n => ↑(StronglyMeasurable.approx hf n) x) atTop (𝓝 0)
hfx0 : f x = 0
h_tendsto_norm : Tendsto (fun n => ‖↑(StronglyMeasurable.approx hf n) x‖) atTop (𝓝 0)
n : ℕ
⊢ ‖min 1 (c / ‖↑(StronglyMeasurable.approx hf n) x‖)‖ * ‖↑(StronglyMeasurable.approx hf n) x‖ ≤
    ‖1‖ * ‖↑(StronglyMeasurable.approx hf n) x‖

tactic: rw [norm_one, Real.norm_of_nonneg]
state_before: α : Type u_2
β✝ : Type ?u.23759
γ : Type ?u.23762
ι : Type ?u.23765
inst✝³ : Countable ι
f✝ g : α → β✝
inst✝² : TopologicalSpace β✝
β : Type u_1
f : α → β
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedSpace ℝ β
m : MeasurableSpace α
hf : StronglyMeasurable f
c : ℝ
x : α
hfx : ‖f x‖ ≤ c
h_tendsto : Tendsto (fun n => ↑(StronglyMeasurable.approx hf n) x) atTop (𝓝 0)
hfx0 : f x = 0
h_tendsto_norm : Tendsto (fun n => ‖↑(StronglyMeasurable.approx hf n) x‖) atTop (𝓝 0)
n : ℕ
⊢ ‖min 1 (c / ‖↑(StronglyMeasurable.approx hf n) x‖)‖ ≤ ‖1‖

tactic: exact min_le_left _ _
state_before: α : Type u_2
β✝ : Type ?u.23759
γ : Type ?u.23762
ι : Type ?u.23765
inst✝³ : Countable ι
f✝ g : α → β✝
inst✝² : TopologicalSpace β✝
β : Type u_1
f : α → β
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedSpace ℝ β
m : MeasurableSpace α
hf : StronglyMeasurable f
c : ℝ
x : α
hfx : ‖f x‖ ≤ c
h_tendsto : Tendsto (fun n => ↑(StronglyMeasurable.approx hf n) x) atTop (𝓝 0)
hfx0 : f x = 0
h_tendsto_norm : Tendsto (fun n => ‖↑(StronglyMeasurable.approx hf n) x‖) atTop (𝓝 0)
n : ℕ
⊢ min 1 (c / ‖↑(StronglyMeasurable.approx hf n) x‖) ≤ 1

tactic: exact le_min zero_le_one (div_nonneg ((norm_nonneg _).trans hfx) (norm_nonneg _))
state_before: α : Type u_2
β✝ : Type ?u.23759
γ : Type ?u.23762
ι : Type ?u.23765
inst✝³ : Countable ι
f✝ g : α → β✝
inst✝² : TopologicalSpace β✝
β : Type u_1
f : α → β
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedSpace ℝ β
m : MeasurableSpace α
hf : StronglyMeasurable f
c : ℝ
x : α
hfx : ‖f x‖ ≤ c
h_tendsto : Tendsto (fun n => ↑(StronglyMeasurable.approx hf n) x) atTop (𝓝 0)
hfx0 : f x = 0
h_tendsto_norm : Tendsto (fun n => ‖↑(StronglyMeasurable.approx hf n) x‖) atTop (𝓝 0)
n : ℕ
⊢ 0 ≤ min 1 (c / ‖↑(StronglyMeasurable.approx hf n) x‖)

tactic: rw [norm_one, one_mul]
state_before: α : Type u_2
β✝ : Type ?u.23759
γ : Type ?u.23762
ι : Type ?u.23765
inst✝³ : Countable ι
f✝ g : α → β✝
inst✝² : TopologicalSpace β✝
β : Type u_1
f : α → β
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedSpace ℝ β
m : MeasurableSpace α
hf : StronglyMeasurable f
c : ℝ
x : α
hfx : ‖f x‖ ≤ c
h_tendsto : Tendsto (fun n => ↑(StronglyMeasurable.approx hf n) x) atTop (𝓝 0)
hfx0 : f x = 0
h_tendsto_norm : Tendsto (fun n => ‖↑(StronglyMeasurable.approx hf n) x‖) atTop (𝓝 0)
n : ℕ
⊢ ‖1‖ * ‖↑(StronglyMeasurable.approx hf n) x‖ = ‖↑(StronglyMeasurable.approx hf n) x‖

tactic: rw [min_eq_left_iff, one_le_div (lt_of_le_of_ne (norm_nonneg _) (Ne.symm hfx0))]
state_before: α : Type u_2
β✝ : Type ?u.23759
γ : Type ?u.23762
ι : Type ?u.23765
inst✝³ : Countable ι
f✝ g : α → β✝
inst✝² : TopologicalSpace β✝
β : Type u_1
f : α → β
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedSpace ℝ β
m : MeasurableSpace α
hf : StronglyMeasurable f
c : ℝ
x : α
hfx : ‖f x‖ ≤ c
h_tendsto : Tendsto (fun n => ↑(StronglyMeasurable.approx hf n) x) atTop (𝓝 (f x))
hfx0 : ¬‖f x‖ = 0
⊢ min 1 (c / ‖f x‖) = 1

tactic: exact hfx
state_before: α : Type u_2
β✝ : Type ?u.23759
γ : Type ?u.23762
ι : Type ?u.23765
inst✝³ : Countable ι
f✝ g : α → β✝
inst✝² : TopologicalSpace β✝
β : Type u_1
f : α → β
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedSpace ℝ β
m : MeasurableSpace α
hf : StronglyMeasurable f
c : ℝ
x : α
hfx : ‖f x‖ ≤ c
h_tendsto : Tendsto (fun n => ↑(StronglyMeasurable.approx hf n) x) atTop (𝓝 (f x))
hfx0 : ¬‖f x‖ = 0
⊢ ‖f x‖ ≤ c