Theorem: PiLp.nnnorm_equiv_symm_single
File: Mathlib/Analysis/NormedSpace/PiLp.lean

tactic: clear x y
state_before: p : ℝ≥0∞
𝕜 : Type ?u.441057
𝕜' : Type ?u.441060
ι : Type u_1
α : ι → Type ?u.441068
β : ι → Type u_2
inst✝⁹ : Fintype ι
inst✝⁸ : Fact (1 ≤ p)
inst✝⁷ : NormedField 𝕜
inst✝⁶ : NormedField 𝕜'
inst✝⁵ : (i : ι) → SeminormedAddCommGroup (β i)
inst✝⁴ : (i : ι) → NormedSpace 𝕜 (β i)
c : 𝕜
x y : PiLp p β
x' y' : (i : ι) → β i
i✝ : ι
ι' : Type ?u.441269
inst✝³ : Fintype ι'
E : Type ?u.441275
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : DecidableEq ι
hp : Fact (1 ≤ p)
i : ι
b : β i
⊢ ‖↑(PiLp.equiv p β).symm (Pi.single i b)‖₊ = ‖b‖₊

tactic: haveI : Nonempty ι := ⟨i⟩
state_before: p : ℝ≥0∞
𝕜 : Type ?u.441057
𝕜' : Type ?u.441060
ι : Type u_1
α : ι → Type ?u.441068
β : ι → Type u_2
inst✝⁹ : Fintype ι
inst✝⁸ : Fact (1 ≤ p)
inst✝⁷ : NormedField 𝕜
inst✝⁶ : NormedField 𝕜'
inst✝⁵ : (i : ι) → SeminormedAddCommGroup (β i)
inst✝⁴ : (i : ι) → NormedSpace 𝕜 (β i)
c : 𝕜
x' y' : (i : ι) → β i
i✝ : ι
ι' : Type ?u.441269
inst✝³ : Fintype ι'
E : Type ?u.441275
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : DecidableEq ι
hp : Fact (1 ≤ p)
i : ι
b : β i
⊢ ‖↑(PiLp.equiv p β).symm (Pi.single i b)‖₊ = ‖b‖₊

tactic: simp_rw [nnnorm_eq_ciSup, equiv_symm_apply]
state_before: case top
p : ℝ≥0∞
𝕜 : Type ?u.441057
𝕜' : Type ?u.441060
ι : Type u_1
α : ι → Type ?u.441068
β : ι → Type u_2
inst✝⁹ : Fintype ι
inst✝⁸ : Fact (1 ≤ p)
inst✝⁷ : NormedField 𝕜
inst✝⁶ : NormedField 𝕜'
inst✝⁵ : (i : ι) → SeminormedAddCommGroup (β i)
inst✝⁴ : (i : ι) → NormedSpace 𝕜 (β i)
c : 𝕜
x' y' : (i : ι) → β i
i✝ : ι
ι' : Type ?u.441269
inst✝³ : Fintype ι'
E : Type ?u.441275
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : DecidableEq ι
i : ι
b : β i
this : Nonempty ι
hp : Fact (1 ≤ ⊤)
⊢ ‖↑(PiLp.equiv ⊤ β).symm (Pi.single i b)‖₊ = ‖b‖₊

tactic: refine' ciSup_eq_of_forall_le_of_forall_lt_exists_gt (fun j => _) fun n hn => ⟨i, hn.trans_eq _⟩
state_before: case top
p : ℝ≥0∞
𝕜 : Type ?u.441057
𝕜' : Type ?u.441060
ι : Type u_1
α : ι → Type ?u.441068
β : ι → Type u_2
inst✝⁹ : Fintype ι
inst✝⁸ : Fact (1 ≤ p)
inst✝⁷ : NormedField 𝕜
inst✝⁶ : NormedField 𝕜'
inst✝⁵ : (i : ι) → SeminormedAddCommGroup (β i)
inst✝⁴ : (i : ι) → NormedSpace 𝕜 (β i)
c : 𝕜
x' y' : (i : ι) → β i
i✝ : ι
ι' : Type ?u.441269
inst✝³ : Fintype ι'
E : Type ?u.441275
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : DecidableEq ι
i : ι
b : β i
this : Nonempty ι
hp : Fact (1 ≤ ⊤)
⊢ (⨆ (i_1 : ι), ‖Pi.single i b i_1‖₊) = ‖b‖₊

tactic: obtain rfl | hij := Decidable.eq_or_ne i j
state_before: case top.refine'_1
p : ℝ≥0∞
𝕜 : Type ?u.441057
𝕜' : Type ?u.441060
ι : Type u_1
α : ι → Type ?u.441068
β : ι → Type u_2
inst✝⁹ : Fintype ι
inst✝⁸ : Fact (1 ≤ p)
inst✝⁷ : NormedField 𝕜
inst✝⁶ : NormedField 𝕜'
inst✝⁵ : (i : ι) → SeminormedAddCommGroup (β i)
inst✝⁴ : (i : ι) → NormedSpace 𝕜 (β i)
c : 𝕜
x' y' : (i : ι) → β i
i✝ : ι
ι' : Type ?u.441269
inst✝³ : Fintype ι'
E : Type ?u.441275
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : DecidableEq ι
i : ι
b : β i
this : Nonempty ι
hp : Fact (1 ≤ ⊤)
j : ι
⊢ ‖Pi.single i b j‖₊ ≤ ‖b‖₊

tactic: rw [Pi.single_eq_same]
state_before: case top.refine'_1.inl
p : ℝ≥0∞
𝕜 : Type ?u.441057
𝕜' : Type ?u.441060
ι : Type u_1
α : ι → Type ?u.441068
β : ι → Type u_2
inst✝⁹ : Fintype ι
inst✝⁸ : Fact (1 ≤ p)
inst✝⁷ : NormedField 𝕜
inst✝⁶ : NormedField 𝕜'
inst✝⁵ : (i : ι) → SeminormedAddCommGroup (β i)
inst✝⁴ : (i : ι) → NormedSpace 𝕜 (β i)
c : 𝕜
x' y' : (i : ι) → β i
i✝ : ι
ι' : Type ?u.441269
inst✝³ : Fintype ι'
E : Type ?u.441275
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : DecidableEq ι
i : ι
b : β i
this : Nonempty ι
hp : Fact (1 ≤ ⊤)
⊢ ‖Pi.single i b i‖₊ ≤ ‖b‖₊

tactic: rw [Pi.single_eq_of_ne' hij, nnnorm_zero]
state_before: case top.refine'_1.inr
p : ℝ≥0∞
𝕜 : Type ?u.441057
𝕜' : Type ?u.441060
ι : Type u_1
α : ι → Type ?u.441068
β : ι → Type u_2
inst✝⁹ : Fintype ι
inst✝⁸ : Fact (1 ≤ p)
inst✝⁷ : NormedField 𝕜
inst✝⁶ : NormedField 𝕜'
inst✝⁵ : (i : ι) → SeminormedAddCommGroup (β i)
inst✝⁴ : (i : ι) → NormedSpace 𝕜 (β i)
c : 𝕜
x' y' : (i : ι) → β i
i✝ : ι
ι' : Type ?u.441269
inst✝³ : Fintype ι'
E : Type ?u.441275
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : DecidableEq ι
i : ι
b : β i
this : Nonempty ι
hp : Fact (1 ≤ ⊤)
j : ι
hij : i ≠ j
⊢ ‖Pi.single i b j‖₊ ≤ ‖b‖₊

tactic: exact zero_le _
state_before: case top.refine'_1.inr
p : ℝ≥0∞
𝕜 : Type ?u.441057
𝕜' : Type ?u.441060
ι : Type u_1
α : ι → Type ?u.441068
β : ι → Type u_2
inst✝⁹ : Fintype ι
inst✝⁸ : Fact (1 ≤ p)
inst✝⁷ : NormedField 𝕜
inst✝⁶ : NormedField 𝕜'
inst✝⁵ : (i : ι) → SeminormedAddCommGroup (β i)
inst✝⁴ : (i : ι) → NormedSpace 𝕜 (β i)
c : 𝕜
x' y' : (i : ι) → β i
i✝ : ι
ι' : Type ?u.441269
inst✝³ : Fintype ι'
E : Type ?u.441275
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : DecidableEq ι
i : ι
b : β i
this : Nonempty ι
hp : Fact (1 ≤ ⊤)
j : ι
hij : i ≠ j
⊢ 0 ≤ ‖b‖₊

tactic: rw [Pi.single_eq_same]
state_before: case top.refine'_2
p : ℝ≥0∞
𝕜 : Type ?u.441057
𝕜' : Type ?u.441060
ι : Type u_1
α : ι → Type ?u.441068
β : ι → Type u_2
inst✝⁹ : Fintype ι
inst✝⁸ : Fact (1 ≤ p)
inst✝⁷ : NormedField 𝕜
inst✝⁶ : NormedField 𝕜'
inst✝⁵ : (i : ι) → SeminormedAddCommGroup (β i)
inst✝⁴ : (i : ι) → NormedSpace 𝕜 (β i)
c : 𝕜
x' y' : (i : ι) → β i
i✝ : ι
ι' : Type ?u.441269
inst✝³ : Fintype ι'
E : Type ?u.441275
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : DecidableEq ι
i : ι
b : β i
this : Nonempty ι
hp : Fact (1 ≤ ⊤)
n : ℝ≥0
hn : n < ‖b‖₊
⊢ ‖b‖₊ = ‖Pi.single i b i‖₊

tactic: have hp0 : (p : ℝ) ≠ 0 := by
  exact_mod_cast (zero_lt_one.trans_le <| Fact.out (p := 1 ≤ (p : ℝ≥0∞))).ne'
state_before: case coe
p✝ : ℝ≥0∞
𝕜 : Type ?u.441057
𝕜' : Type ?u.441060
ι : Type u_1
α : ι → Type ?u.441068
β : ι → Type u_2
inst✝⁹ : Fintype ι
inst✝⁸ : Fact (1 ≤ p✝)
inst✝⁷ : NormedField 𝕜
inst✝⁶ : NormedField 𝕜'
inst✝⁵ : (i : ι) → SeminormedAddCommGroup (β i)
inst✝⁴ : (i : ι) → NormedSpace 𝕜 (β i)
c : 𝕜
x' y' : (i : ι) → β i
i✝ : ι
ι' : Type ?u.441269
inst✝³ : Fintype ι'
E : Type ?u.441275
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : DecidableEq ι
i : ι
b : β i
this : Nonempty ι
p : ℝ≥0
hp : Fact (1 ≤ ↑p)
⊢ ‖↑(PiLp.equiv (↑p) β).symm (Pi.single i b)‖₊ = ‖b‖₊

tactic: rw [nnnorm_eq_sum ENNReal.coe_ne_top, ENNReal.coe_toReal, Fintype.sum_eq_single i,
  equiv_symm_apply, Pi.single_eq_same, ← NNReal.rpow_mul, one_div, mul_inv_cancel hp0,
  NNReal.rpow_one]
state_before: case coe
p✝ : ℝ≥0∞
𝕜 : Type ?u.441057
𝕜' : Type ?u.441060
ι : Type u_1
α : ι → Type ?u.441068
β : ι → Type u_2
inst✝⁹ : Fintype ι
inst✝⁸ : Fact (1 ≤ p✝)
inst✝⁷ : NormedField 𝕜
inst✝⁶ : NormedField 𝕜'
inst✝⁵ : (i : ι) → SeminormedAddCommGroup (β i)
inst✝⁴ : (i : ι) → NormedSpace 𝕜 (β i)
c : 𝕜
x' y' : (i : ι) → β i
i✝ : ι
ι' : Type ?u.441269
inst✝³ : Fintype ι'
E : Type ?u.441275
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : DecidableEq ι
i : ι
b : β i
this : Nonempty ι
p : ℝ≥0
hp : Fact (1 ≤ ↑p)
hp0 : ↑p ≠ 0
⊢ ‖↑(PiLp.equiv (↑p) β).symm (Pi.single i b)‖₊ = ‖b‖₊

tactic: intro j hij
state_before: case coe
p✝ : ℝ≥0∞
𝕜 : Type ?u.441057
𝕜' : Type ?u.441060
ι : Type u_1
α : ι → Type ?u.441068
β : ι → Type u_2
inst✝⁹ : Fintype ι
inst✝⁸ : Fact (1 ≤ p✝)
inst✝⁷ : NormedField 𝕜
inst✝⁶ : NormedField 𝕜'
inst✝⁵ : (i : ι) → SeminormedAddCommGroup (β i)
inst✝⁴ : (i : ι) → NormedSpace 𝕜 (β i)
c : 𝕜
x' y' : (i : ι) → β i
i✝ : ι
ι' : Type ?u.441269
inst✝³ : Fintype ι'
E : Type ?u.441275
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : DecidableEq ι
i : ι
b : β i
this : Nonempty ι
p : ℝ≥0
hp : Fact (1 ≤ ↑p)
hp0 : ↑p ≠ 0
⊢ ∀ (x : ι), x ≠ i → ‖↑(PiLp.equiv (↑p) β).symm (Pi.single i b) x‖₊ ^ ↑p = 0

tactic: rw [equiv_symm_apply, Pi.single_eq_of_ne hij, nnnorm_zero, NNReal.zero_rpow hp0]
state_before: case coe
p✝ : ℝ≥0∞
𝕜 : Type ?u.441057
𝕜' : Type ?u.441060
ι : Type u_1
α : ι → Type ?u.441068
β : ι → Type u_2
inst✝⁹ : Fintype ι
inst✝⁸ : Fact (1 ≤ p✝)
inst✝⁷ : NormedField 𝕜
inst✝⁶ : NormedField 𝕜'
inst✝⁵ : (i : ι) → SeminormedAddCommGroup (β i)
inst✝⁴ : (i : ι) → NormedSpace 𝕜 (β i)
c : 𝕜
x' y' : (i : ι) → β i
i✝ : ι
ι' : Type ?u.441269
inst✝³ : Fintype ι'
E : Type ?u.441275
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : DecidableEq ι
i : ι
b : β i
this : Nonempty ι
p : ℝ≥0
hp : Fact (1 ≤ ↑p)
hp0 : ↑p ≠ 0
j : ι
hij : j ≠ i
⊢ ‖↑(PiLp.equiv (↑p) β).symm (Pi.single i b) j‖₊ ^ ↑p = 0

tactic: exact_mod_cast (zero_lt_one.trans_le <| Fact.out (p := 1 ≤ (p : ℝ≥0∞))).ne'
state_before: p✝ : ℝ≥0∞
𝕜 : Type ?u.441057
𝕜' : Type ?u.441060
ι : Type u_1
α : ι → Type ?u.441068
β : ι → Type u_2
inst✝⁹ : Fintype ι
inst✝⁸ : Fact (1 ≤ p✝)
inst✝⁷ : NormedField 𝕜
inst✝⁶ : NormedField 𝕜'
inst✝⁵ : (i : ι) → SeminormedAddCommGroup (β i)
inst✝⁴ : (i : ι) → NormedSpace 𝕜 (β i)
c : 𝕜
x' y' : (i : ι) → β i
i✝ : ι
ι' : Type ?u.441269
inst✝³ : Fintype ι'
E : Type ?u.441275
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : DecidableEq ι
i : ι
b : β i
this : Nonempty ι
p : ℝ≥0
hp : Fact (1 ≤ ↑p)
⊢ ↑p ≠ 0