Theorem: Seminorm.finset_sup_apply
File: Mathlib/Analysis/Seminorm.lean

tactic: induction' s using Finset.cons_induction_on with a s ha ih
state_before: R : Type ?u.492548
R' : Type ?u.492551
𝕜 : Type u_1
𝕜₂ : Type ?u.492557
𝕜₃ : Type ?u.492560
𝕝 : Type ?u.492563
E : Type u_2
E₂ : Type ?u.492569
E₃ : Type ?u.492572
F : Type ?u.492575
G : Type ?u.492578
ι : Type u_3
inst✝¹⁸ : SeminormedRing 𝕜
inst✝¹⁷ : SeminormedRing 𝕜₂
inst✝¹⁶ : SeminormedRing 𝕜₃
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝¹⁵ : RingHomIsometric σ₁₂
σ₂₃ : 𝕜₂ →+* 𝕜₃
inst✝¹⁴ : RingHomIsometric σ₂₃
σ₁₃ : 𝕜 →+* 𝕜₃
inst✝¹³ : RingHomIsometric σ₁₃
inst✝¹² : AddCommGroup E
inst✝¹¹ : AddCommGroup E₂
inst✝¹⁰ : AddCommGroup E₃
inst✝⁹ : AddCommGroup F
inst✝⁸ : AddCommGroup G
inst✝⁷ : Module 𝕜 E
inst✝⁶ : Module 𝕜₂ E₂
inst✝⁵ : Module 𝕜₃ E₃
inst✝⁴ : Module 𝕜 F
inst✝³ : Module 𝕜 G
inst✝² : SMul R ℝ
inst✝¹ : SMul R ℝ≥0
inst✝ : IsScalarTower R ℝ≥0 ℝ
p : ι → Seminorm 𝕜 E
s : Finset ι
x : E
⊢ ↑(Finset.sup s p) x = ↑(Finset.sup s fun i => { val := ↑(p i) x, property := (_ : 0 ≤ ↑(p i) x) })

tactic: rw [Finset.sup_empty, Finset.sup_empty, coe_bot, _root_.bot_eq_zero, Pi.zero_apply]
state_before: case h₁
R : Type ?u.492548
R' : Type ?u.492551
𝕜 : Type u_1
𝕜₂ : Type ?u.492557
𝕜₃ : Type ?u.492560
𝕝 : Type ?u.492563
E : Type u_2
E₂ : Type ?u.492569
E₃ : Type ?u.492572
F : Type ?u.492575
G : Type ?u.492578
ι : Type u_3
inst✝¹⁸ : SeminormedRing 𝕜
inst✝¹⁷ : SeminormedRing 𝕜₂
inst✝¹⁶ : SeminormedRing 𝕜₃
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝¹⁵ : RingHomIsometric σ₁₂
σ₂₃ : 𝕜₂ →+* 𝕜₃
inst✝¹⁴ : RingHomIsometric σ₂₃
σ₁₃ : 𝕜 →+* 𝕜₃
inst✝¹³ : RingHomIsometric σ₁₃
inst✝¹² : AddCommGroup E
inst✝¹¹ : AddCommGroup E₂
inst✝¹⁰ : AddCommGroup E₃
inst✝⁹ : AddCommGroup F
inst✝⁸ : AddCommGroup G
inst✝⁷ : Module 𝕜 E
inst✝⁶ : Module 𝕜₂ E₂
inst✝⁵ : Module 𝕜₃ E₃
inst✝⁴ : Module 𝕜 F
inst✝³ : Module 𝕜 G
inst✝² : SMul R ℝ
inst✝¹ : SMul R ℝ≥0
inst✝ : IsScalarTower R ℝ≥0 ℝ
p : ι → Seminorm 𝕜 E
x : E
⊢ ↑(Finset.sup ∅ p) x = ↑(Finset.sup ∅ fun i => { val := ↑(p i) x, property := (_ : 0 ≤ ↑(p i) x) })

tactic: norm_cast
state_before: case h₁
R : Type ?u.492548
R' : Type ?u.492551
𝕜 : Type u_1
𝕜₂ : Type ?u.492557
𝕜₃ : Type ?u.492560
𝕝 : Type ?u.492563
E : Type u_2
E₂ : Type ?u.492569
E₃ : Type ?u.492572
F : Type ?u.492575
G : Type ?u.492578
ι : Type u_3
inst✝¹⁸ : SeminormedRing 𝕜
inst✝¹⁷ : SeminormedRing 𝕜₂
inst✝¹⁶ : SeminormedRing 𝕜₃
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝¹⁵ : RingHomIsometric σ₁₂
σ₂₃ : 𝕜₂ →+* 𝕜₃
inst✝¹⁴ : RingHomIsometric σ₂₃
σ₁₃ : 𝕜 →+* 𝕜₃
inst✝¹³ : RingHomIsometric σ₁₃
inst✝¹² : AddCommGroup E
inst✝¹¹ : AddCommGroup E₂
inst✝¹⁰ : AddCommGroup E₃
inst✝⁹ : AddCommGroup F
inst✝⁸ : AddCommGroup G
inst✝⁷ : Module 𝕜 E
inst✝⁶ : Module 𝕜₂ E₂
inst✝⁵ : Module 𝕜₃ E₃
inst✝⁴ : Module 𝕜 F
inst✝³ : Module 𝕜 G
inst✝² : SMul R ℝ
inst✝¹ : SMul R ℝ≥0
inst✝ : IsScalarTower R ℝ≥0 ℝ
p : ι → Seminorm 𝕜 E
x : E
⊢ 0 = ↑0

tactic: rw [Finset.sup_cons, Finset.sup_cons, coe_sup, sup_eq_max, Pi.sup_apply, sup_eq_max,
  NNReal.coe_max, coe_mk, ih]
state_before: case h₂
R : Type ?u.492548
R' : Type ?u.492551
𝕜 : Type u_1
𝕜₂ : Type ?u.492557
𝕜₃ : Type ?u.492560
𝕝 : Type ?u.492563
E : Type u_2
E₂ : Type ?u.492569
E₃ : Type ?u.492572
F : Type ?u.492575
G : Type ?u.492578
ι : Type u_3
inst✝¹⁸ : SeminormedRing 𝕜
inst✝¹⁷ : SeminormedRing 𝕜₂
inst✝¹⁶ : SeminormedRing 𝕜₃
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝¹⁵ : RingHomIsometric σ₁₂
σ₂₃ : 𝕜₂ →+* 𝕜₃
inst✝¹⁴ : RingHomIsometric σ₂₃
σ₁₃ : 𝕜 →+* 𝕜₃
inst✝¹³ : RingHomIsometric σ₁₃
inst✝¹² : AddCommGroup E
inst✝¹¹ : AddCommGroup E₂
inst✝¹⁰ : AddCommGroup E₃
inst✝⁹ : AddCommGroup F
inst✝⁸ : AddCommGroup G
inst✝⁷ : Module 𝕜 E
inst✝⁶ : Module 𝕜₂ E₂
inst✝⁵ : Module 𝕜₃ E₃
inst✝⁴ : Module 𝕜 F
inst✝³ : Module 𝕜 G
inst✝² : SMul R ℝ
inst✝¹ : SMul R ℝ≥0
inst✝ : IsScalarTower R ℝ≥0 ℝ
p : ι → Seminorm 𝕜 E
x : E
a : ι
s : Finset ι
ha : ¬a ∈ s
ih : ↑(Finset.sup s p) x = ↑(Finset.sup s fun i => { val := ↑(p i) x, property := (_ : 0 ≤ ↑(p i) x) })
⊢ ↑(Finset.sup (Finset.cons a s ha) p) x =
    ↑(Finset.sup (Finset.cons a s ha) fun i => { val := ↑(p i) x, property := (_ : 0 ≤ ↑(p i) x) })