Theorem: LipschitzWith.uniformly_bounded
File: Mathlib/Analysis/NormedSpace/lpSpace.lean

tactic: rcases hga₀b with ⟨M, hM⟩
state_before: α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝¹ : (i : α) → NormedAddCommGroup (E i)
ι : Type u_3
inst✝ : PseudoMetricSpace α
g : α → ι → ℝ
K : ℝ≥0
hg : ∀ (i : ι), LipschitzWith K fun x => g x i
a₀ : α
hga₀b : Memℓp (g a₀) ⊤
a : α
⊢ Memℓp (g a) ⊤
state_after: case intro
α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝¹ : (i : α) → NormedAddCommGroup (E i)
ι : Type u_3
inst✝ : PseudoMetricSpace α
g : α → ι → ℝ
K : ℝ≥0
hg : ∀ (i : ι), LipschitzWith K fun x => g x i
a₀ a : α
M : ℝ
hM : M ∈ upperBounds (Set.range fun i => ‖g a₀ i‖)
⊢ Memℓp (g a) ⊤

tactic: use ↑K * dist a a₀ + M
state_before: case intro
α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝¹ : (i : α) → NormedAddCommGroup (E i)
ι : Type u_3
inst✝ : PseudoMetricSpace α
g : α → ι → ℝ
K : ℝ≥0
hg : ∀ (i : ι), LipschitzWith K fun x => g x i
a₀ a : α
M : ℝ
hM : M ∈ upperBounds (Set.range fun i => ‖g a₀ i‖)
⊢ Memℓp (g a) ⊤
state_after: case h
α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝¹ : (i : α) → NormedAddCommGroup (E i)
ι : Type u_3
inst✝ : PseudoMetricSpace α
g : α → ι → ℝ
K : ℝ≥0
hg : ∀ (i : ι), LipschitzWith K fun x => g x i
a₀ a : α
M : ℝ
hM : M ∈ upperBounds (Set.range fun i => ‖g a₀ i‖)
⊢ ↑K * dist a a₀ + M ∈ upperBounds (Set.range fun i => ‖g a i‖)

tactic: rintro - ⟨i, rfl⟩
state_before: case h
α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝¹ : (i : α) → NormedAddCommGroup (E i)
ι : Type u_3
inst✝ : PseudoMetricSpace α
g : α → ι → ℝ
K : ℝ≥0
hg : ∀ (i : ι), LipschitzWith K fun x => g x i
a₀ a : α
M : ℝ
hM : M ∈ upperBounds (Set.range fun i => ‖g a₀ i‖)
⊢ ↑K * dist a a₀ + M ∈ upperBounds (Set.range fun i => ‖g a i‖)
state_after: case h.intro
α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝¹ : (i : α) → NormedAddCommGroup (E i)
ι : Type u_3
inst✝ : PseudoMetricSpace α
g : α → ι → ℝ
K : ℝ≥0
hg : ∀ (i : ι), LipschitzWith K fun x => g x i
a₀ a : α
M : ℝ
hM : M ∈ upperBounds (Set.range fun i => ‖g a₀ i‖)
i : ι
⊢ (fun i => ‖g a i‖) i ≤ ↑K * dist a a₀ + M

tactic: simp
state_before: α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝¹ : (i : α) → NormedAddCommGroup (E i)
ι : Type u_3
inst✝ : PseudoMetricSpace α
g : α → ι → ℝ
K : ℝ≥0
hg : ∀ (i : ι), LipschitzWith K fun x => g x i
a₀ a : α
M : ℝ
hM : M ∈ upperBounds (Set.range fun i => ‖g a₀ i‖)
i : ι
⊢ |g a i| = |g a i - g a₀ i + g a₀ i|
state_after: no goals

tactic: gcongr
state_before: α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝¹ : (i : α) → NormedAddCommGroup (E i)
ι : Type u_3
inst✝ : PseudoMetricSpace α
g : α → ι → ℝ
K : ℝ≥0
hg : ∀ (i : ι), LipschitzWith K fun x => g x i
a₀ a : α
M : ℝ
hM : M ∈ upperBounds (Set.range fun i => ‖g a₀ i‖)
i : ι
⊢ |g a i - g a₀ i| + |g a₀ i| ≤ ↑K * dist a a₀ + M
state_after: case h₁
α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝¹ : (i : α) → NormedAddCommGroup (E i)
ι : Type u_3
inst✝ : PseudoMetricSpace α
g : α → ι → ℝ
K : ℝ≥0
hg : ∀ (i : ι), LipschitzWith K fun x => g x i
a₀ a : α
M : ℝ
hM : M ∈ upperBounds (Set.range fun i => ‖g a₀ i‖)
i : ι
⊢ |g a i - g a₀ i| ≤ ↑K * dist a a₀

case h₂
α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝¹ : (i : α) → NormedAddCommGroup (E i)
ι : Type u_3
inst✝ : PseudoMetricSpace α
g : α → ι → ℝ
K : ℝ≥0
hg : ∀ (i : ι), LipschitzWith K fun x => g x i
a₀ a : α
M : ℝ
hM : M ∈ upperBounds (Set.range fun i => ‖g a₀ i‖)
i : ι
⊢ |g a₀ i| ≤ M

tactic: exact lipschitzWith_iff_dist_le_mul.1 (hg i) a a₀
state_before: case h₁
α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝¹ : (i : α) → NormedAddCommGroup (E i)
ι : Type u_3
inst✝ : PseudoMetricSpace α
g : α → ι → ℝ
K : ℝ≥0
hg : ∀ (i : ι), LipschitzWith K fun x => g x i
a₀ a : α
M : ℝ
hM : M ∈ upperBounds (Set.range fun i => ‖g a₀ i‖)
i : ι
⊢ |g a i - g a₀ i| ≤ ↑K * dist a a₀
state_after: no goals

tactic: exact hM ⟨i, rfl⟩
state_before: case h₂
α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝¹ : (i : α) → NormedAddCommGroup (E i)
ι : Type u_3
inst✝ : PseudoMetricSpace α
g : α → ι → ℝ
K : ℝ≥0
hg : ∀ (i : ι), LipschitzWith K fun x => g x i
a₀ a : α
M : ℝ
hM : M ∈ upperBounds (Set.range fun i => ‖g a₀ i‖)
i : ι
⊢ |g a₀ i| ≤ M
state_after: no goals