[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : SeminormedRing 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
f : E → ℝ
add_le : ∀ (x y : E), f (x + y) ≤ f x + f y
smul : ∀ (a : 𝕜) (x : E), f (a • x) = ‖a‖ * f x
⊢ f 0 = 0
[PROOFSTEP]
rw [← zero_smul 𝕜 (0 : E), smul, norm_zero, zero_mul]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : SeminormedRing 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
f : E → ℝ
add_le : ∀ (x y : E), f (x + y) ≤ f x + f y
smul : ∀ (a : 𝕜) (x : E), f (a • x) = ‖a‖ * f x
x : E
⊢ f (-x) = f x
[PROOFSTEP]
rw [← neg_one_smul 𝕜, smul, norm_neg, ← smul, one_smul]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
f : E → ℝ
map_zero : f 0 = 0
add_le : ∀ (x y : E), f (x + y) ≤ f x + f y
smul_le : ∀ (r : 𝕜) (x : E), f (r • x) ≤ ‖r‖ * f x
r : 𝕜
x : E
⊢ f (r • x) = ‖r‖ * f x
[PROOFSTEP]
refine' le_antisymm (smul_le r x) _
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
f : E → ℝ
map_zero : f 0 = 0
add_le : ∀ (x y : E), f (x + y) ≤ f x + f y
smul_le : ∀ (r : 𝕜) (x : E), f (r • x) ≤ ‖r‖ * f x
r : 𝕜
x : E
⊢ ‖r‖ * f x ≤ f (r • x)
[PROOFSTEP]
by_cases h : r = 0
[GOAL]
case pos
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
f : E → ℝ
map_zero : f 0 = 0
add_le : ∀ (x y : E), f (x + y) ≤ f x + f y
smul_le : ∀ (r : 𝕜) (x : E), f (r • x) ≤ ‖r‖ * f x
r : 𝕜
x : E
h : r = 0
⊢ ‖r‖ * f x ≤ f (r • x)
[PROOFSTEP]
simp [h, map_zero]
[GOAL]
case neg
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
f : E → ℝ
map_zero : f 0 = 0
add_le : ∀ (x y : E), f (x + y) ≤ f x + f y
smul_le : ∀ (r : 𝕜) (x : E), f (r • x) ≤ ‖r‖ * f x
r : 𝕜
x : E
h : ¬r = 0
⊢ ‖r‖ * f x ≤ f (r • x)
[PROOFSTEP]
rw [← mul_le_mul_left (inv_pos.mpr (norm_pos_iff.mpr h))]
[GOAL]
case neg
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
f : E → ℝ
map_zero : f 0 = 0
add_le : ∀ (x y : E), f (x + y) ≤ f x + f y
smul_le : ∀ (r : 𝕜) (x : E), f (r • x) ≤ ‖r‖ * f x
r : 𝕜
x : E
h : ¬r = 0
⊢ ‖r‖⁻¹ * (‖r‖ * f x) ≤ ‖r‖⁻¹ * f (r • x)
[PROOFSTEP]
rw [inv_mul_cancel_left₀ (norm_ne_zero_iff.mpr h)]
[GOAL]
case neg
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
f : E → ℝ
map_zero : f 0 = 0
add_le : ∀ (x y : E), f (x + y) ≤ f x + f y
smul_le : ∀ (r : 𝕜) (x : E), f (r • x) ≤ ‖r‖ * f x
r : 𝕜
x : E
h : ¬r = 0
⊢ f x ≤ ‖r‖⁻¹ * f (r • x)
[PROOFSTEP]
specialize smul_le r⁻¹ (r • x)
[GOAL]
case neg
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
f : E → ℝ
map_zero : f 0 = 0
add_le : ∀ (x y : E), f (x + y) ≤ f x + f y
r : 𝕜
x : E
h : ¬r = 0
smul_le : f (r⁻¹ • r • x) ≤ ‖r⁻¹‖ * f (r • x)
⊢ f x ≤ ‖r‖⁻¹ * f (r • x)
[PROOFSTEP]
rw [norm_inv] at smul_le
[GOAL]
case neg
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
f : E → ℝ
map_zero : f 0 = 0
add_le : ∀ (x y : E), f (x + y) ≤ f x + f y
r : 𝕜
x : E
h : ¬r = 0
smul_le : f (r⁻¹ • r • x) ≤ ‖r‖⁻¹ * f (r • x)
⊢ f x ≤ ‖r‖⁻¹ * f (r • x)
[PROOFSTEP]
convert smul_le
[GOAL]
case h.e'_3.h.e'_1
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
f : E → ℝ
map_zero : f 0 = 0
add_le : ∀ (x y : E), f (x + y) ≤ f x + f y
r : 𝕜
x : E
h : ¬r = 0
smul_le : f (r⁻¹ • r • x) ≤ ‖r‖⁻¹ * f (r • x)
⊢ x = r⁻¹ • r • x
[PROOFSTEP]
simp [h]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : SeminormedRing 𝕜
inst✝¹ : AddGroup E
inst✝ : SMul 𝕜 E
f g : Seminorm 𝕜 E
h : (fun f => f.toFun) f = (fun f => f.toFun) g
⊢ f = g
[PROOFSTEP]
rcases f with ⟨⟨_⟩⟩
[GOAL]
case mk.mk
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : SeminormedRing 𝕜
inst✝¹ : AddGroup E
inst✝ : SMul 𝕜 E
g : Seminorm 𝕜 E
toFun✝ : E → ℝ
map_zero'✝ : toFun✝ 0 = 0
add_le'✝ : ∀ (r s : E), toFun✝ (r + s) ≤ toFun✝ r + toFun✝ s
neg'✝ : ∀ (r : E), toFun✝ (-r) = toFun✝ r
smul'✝ :
  ∀ (a : 𝕜) (x : E),
    AddGroupSeminorm.toFun { toFun := toFun✝, map_zero' := map_zero'✝, add_le' := add_le'✝, neg' := neg'✝ } (a • x) =
      ‖a‖ * AddGroupSeminorm.toFun { toFun := toFun✝, map_zero' := map_zero'✝, add_le' := add_le'✝, neg' := neg'✝ } x
h :
  (fun f => f.toFun)
      { toAddGroupSeminorm := { toFun := toFun✝, map_zero' := map_zero'✝, add_le' := add_le'✝, neg' := neg'✝ },
        smul' := smul'✝ } =
    (fun f => f.toFun) g
⊢ { toAddGroupSeminorm := { toFun := toFun✝, map_zero' := map_zero'✝, add_le' := add_le'✝, neg' := neg'✝ },
      smul' := smul'✝ } =
    g
[PROOFSTEP]
rcases g with ⟨⟨_⟩⟩
[GOAL]
case mk.mk.mk.mk
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : SeminormedRing 𝕜
inst✝¹ : AddGroup E
inst✝ : SMul 𝕜 E
toFun✝¹ : E → ℝ
map_zero'✝¹ : toFun✝¹ 0 = 0
add_le'✝¹ : ∀ (r s : E), toFun✝¹ (r + s) ≤ toFun✝¹ r + toFun✝¹ s
neg'✝¹ : ∀ (r : E), toFun✝¹ (-r) = toFun✝¹ r
smul'✝¹ :
  ∀ (a : 𝕜) (x : E),
    AddGroupSeminorm.toFun { toFun := toFun✝¹, map_zero' := map_zero'✝¹, add_le' := add_le'✝¹, neg' := neg'✝¹ }
        (a • x) =
      ‖a‖ *
        AddGroupSeminorm.toFun { toFun := toFun✝¹, map_zero' := map_zero'✝¹, add_le' := add_le'✝¹, neg' := neg'✝¹ } x
toFun✝ : E → ℝ
map_zero'✝ : toFun✝ 0 = 0
add_le'✝ : ∀ (r s : E), toFun✝ (r + s) ≤ toFun✝ r + toFun✝ s
neg'✝ : ∀ (r : E), toFun✝ (-r) = toFun✝ r
smul'✝ :
  ∀ (a : 𝕜) (x : E),
    AddGroupSeminorm.toFun { toFun := toFun✝, map_zero' := map_zero'✝, add_le' := add_le'✝, neg' := neg'✝ } (a • x) =
      ‖a‖ * AddGroupSeminorm.toFun { toFun := toFun✝, map_zero' := map_zero'✝, add_le' := add_le'✝, neg' := neg'✝ } x
h :
  (fun f => f.toFun)
      { toAddGroupSeminorm := { toFun := toFun✝¹, map_zero' := map_zero'✝¹, add_le' := add_le'✝¹, neg' := neg'✝¹ },
        smul' := smul'✝¹ } =
    (fun f => f.toFun)
      { toAddGroupSeminorm := { toFun := toFun✝, map_zero' := map_zero'✝, add_le' := add_le'✝, neg' := neg'✝ },
        smul' := smul'✝ }
⊢ { toAddGroupSeminorm := { toFun := toFun✝¹, map_zero' := map_zero'✝¹, add_le' := add_le'✝¹, neg' := neg'✝¹ },
      smul' := smul'✝¹ } =
    { toAddGroupSeminorm := { toFun := toFun✝, map_zero' := map_zero'✝, add_le' := add_le'✝, neg' := neg'✝ },
      smul' := smul'✝ }
[PROOFSTEP]
congr
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁵ : SeminormedRing 𝕜
inst✝⁴ : AddGroup E
inst✝³ : SMul 𝕜 E
p✝ : Seminorm 𝕜 E
c : 𝕜
x y : E
r✝ : ℝ
inst✝² : SMul R ℝ
inst✝¹ : SMul R ℝ≥0
inst✝ : IsScalarTower R ℝ≥0 ℝ
r : R
p : Seminorm 𝕜 E
src✝ : AddGroupSeminorm E := r • p.toAddGroupSeminorm
x✝¹ : 𝕜
x✝ : E
⊢ AddGroupSeminorm.toFun
      { toFun := fun x => r • ↑p x, map_zero' := (_ : AddGroupSeminorm.toFun src✝ 0 = 0),
        add_le' :=
          (_ :
            ∀ (r s : E),
              AddGroupSeminorm.toFun src✝ (r + s) ≤ AddGroupSeminorm.toFun src✝ r + AddGroupSeminorm.toFun src✝ s),
        neg' := (_ : ∀ (r : E), AddGroupSeminorm.toFun src✝ (-r) = AddGroupSeminorm.toFun src✝ r) }
      (x✝¹ • x✝) =
    ‖x✝¹‖ *
      AddGroupSeminorm.toFun
        { toFun := fun x => r • ↑p x, map_zero' := (_ : AddGroupSeminorm.toFun src✝ 0 = 0),
          add_le' :=
            (_ :
              ∀ (r s : E),
                AddGroupSeminorm.toFun src✝ (r + s) ≤ AddGroupSeminorm.toFun src✝ r + AddGroupSeminorm.toFun src✝ s),
          neg' := (_ : ∀ (r : E), AddGroupSeminorm.toFun src✝ (-r) = AddGroupSeminorm.toFun src✝ r) }
        x✝
[PROOFSTEP]
simp only [← smul_one_smul ℝ≥0 r (_ : ℝ), NNReal.smul_def, smul_eq_mul]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁵ : SeminormedRing 𝕜
inst✝⁴ : AddGroup E
inst✝³ : SMul 𝕜 E
p✝ : Seminorm 𝕜 E
c : 𝕜
x y : E
r✝ : ℝ
inst✝² : SMul R ℝ
inst✝¹ : SMul R ℝ≥0
inst✝ : IsScalarTower R ℝ≥0 ℝ
r : R
p : Seminorm 𝕜 E
src✝ : AddGroupSeminorm E := r • p.toAddGroupSeminorm
x✝¹ : 𝕜
x✝ : E
⊢ ↑(r • 1) * ↑p (x✝¹ • x✝) = ‖x✝¹‖ * (↑(r • 1) * ↑p x✝)
[PROOFSTEP]
rw [map_smul_eq_mul, mul_left_comm]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : SeminormedRing 𝕜
inst✝¹ : AddGroup E
inst✝ : SMul 𝕜 E
p✝ : Seminorm 𝕜 E
c : 𝕜
x✝ y : E
r : ℝ
p q : Seminorm 𝕜 E
src✝ : AddGroupSeminorm E := p.toAddGroupSeminorm + q.toAddGroupSeminorm
a : 𝕜
x : E
⊢ AddGroupSeminorm.toFun
      { toFun := fun x => ↑p x + ↑q x, map_zero' := (_ : AddGroupSeminorm.toFun src✝ 0 = 0),
        add_le' :=
          (_ :
            ∀ (r s : E),
              AddGroupSeminorm.toFun src✝ (r + s) ≤ AddGroupSeminorm.toFun src✝ r + AddGroupSeminorm.toFun src✝ s),
        neg' := (_ : ∀ (r : E), AddGroupSeminorm.toFun src✝ (-r) = AddGroupSeminorm.toFun src✝ r) }
      (a • x) =
    ‖a‖ *
      AddGroupSeminorm.toFun
        { toFun := fun x => ↑p x + ↑q x, map_zero' := (_ : AddGroupSeminorm.toFun src✝ 0 = 0),
          add_le' :=
            (_ :
              ∀ (r s : E),
                AddGroupSeminorm.toFun src✝ (r + s) ≤ AddGroupSeminorm.toFun src✝ r + AddGroupSeminorm.toFun src✝ s),
          neg' := (_ : ∀ (r : E), AddGroupSeminorm.toFun src✝ (-r) = AddGroupSeminorm.toFun src✝ r) }
        x
[PROOFSTEP]
simp only [map_smul_eq_mul, map_smul_eq_mul, mul_add]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : SeminormedRing 𝕜
inst✝¹ : AddGroup E
inst✝ : SMul 𝕜 E
p : Seminorm 𝕜 E
c : 𝕜
x y : E
r : ℝ
x✝¹ : Seminorm 𝕜 E
x✝ : ℕ
⊢ ↑(x✝ • x✝¹) = x✝ • ↑x✝¹
[PROOFSTEP]
rfl
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : SeminormedRing 𝕜
inst✝⁵ : AddGroup E
inst✝⁴ : SMul 𝕜 E
p : Seminorm 𝕜 E
c : 𝕜
x y : E
r : ℝ
inst✝³ : Monoid R
inst✝² : MulAction R ℝ
inst✝¹ : SMul R ℝ≥0
inst✝ : IsScalarTower R ℝ≥0 ℝ
⊢ ∀ (c : R) (x : Seminorm 𝕜 E), ↑(c • x) = c • ↑x
[PROOFSTEP]
intros
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : SeminormedRing 𝕜
inst✝⁵ : AddGroup E
inst✝⁴ : SMul 𝕜 E
p : Seminorm 𝕜 E
c : 𝕜
x y : E
r : ℝ
inst✝³ : Monoid R
inst✝² : MulAction R ℝ
inst✝¹ : SMul R ℝ≥0
inst✝ : IsScalarTower R ℝ≥0 ℝ
c✝ : R
x✝ : Seminorm 𝕜 E
⊢ ↑(c✝ • x✝) = c✝ • ↑x✝
[PROOFSTEP]
rfl
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : SeminormedRing 𝕜
inst✝⁵ : AddGroup E
inst✝⁴ : SMul 𝕜 E
p : Seminorm 𝕜 E
c : 𝕜
x y : E
r : ℝ
inst✝³ : Monoid R
inst✝² : DistribMulAction R ℝ
inst✝¹ : SMul R ℝ≥0
inst✝ : IsScalarTower R ℝ≥0 ℝ
⊢ ∀ (c : R) (x : Seminorm 𝕜 E), ↑(coeFnAddMonoidHom 𝕜 E) (c • x) = c • ↑(coeFnAddMonoidHom 𝕜 E) x
[PROOFSTEP]
intros
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : SeminormedRing 𝕜
inst✝⁵ : AddGroup E
inst✝⁴ : SMul 𝕜 E
p : Seminorm 𝕜 E
c : 𝕜
x y : E
r : ℝ
inst✝³ : Monoid R
inst✝² : DistribMulAction R ℝ
inst✝¹ : SMul R ℝ≥0
inst✝ : IsScalarTower R ℝ≥0 ℝ
c✝ : R
x✝ : Seminorm 𝕜 E
⊢ ↑(coeFnAddMonoidHom 𝕜 E) (c✝ • x✝) = c✝ • ↑(coeFnAddMonoidHom 𝕜 E) x✝
[PROOFSTEP]
rfl
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : SeminormedRing 𝕜
inst✝⁵ : AddGroup E
inst✝⁴ : SMul 𝕜 E
p : Seminorm 𝕜 E
c : 𝕜
x y : E
r : ℝ
inst✝³ : Semiring R
inst✝² : Module R ℝ
inst✝¹ : SMul R ℝ≥0
inst✝ : IsScalarTower R ℝ≥0 ℝ
⊢ ∀ (c : R) (x : Seminorm 𝕜 E), ↑(coeFnAddMonoidHom 𝕜 E) (c • x) = c • ↑(coeFnAddMonoidHom 𝕜 E) x
[PROOFSTEP]
intros
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : SeminormedRing 𝕜
inst✝⁵ : AddGroup E
inst✝⁴ : SMul 𝕜 E
p : Seminorm 𝕜 E
c : 𝕜
x y : E
r : ℝ
inst✝³ : Semiring R
inst✝² : Module R ℝ
inst✝¹ : SMul R ℝ≥0
inst✝ : IsScalarTower R ℝ≥0 ℝ
c✝ : R
x✝ : Seminorm 𝕜 E
⊢ ↑(coeFnAddMonoidHom 𝕜 E) (c✝ • x✝) = c✝ • ↑(coeFnAddMonoidHom 𝕜 E) x✝
[PROOFSTEP]
rfl
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁵ : SeminormedRing 𝕜
inst✝⁴ : AddGroup E
inst✝³ : SMul 𝕜 E
p✝ : Seminorm 𝕜 E
c : 𝕜
x✝ y✝ : E
r✝ : ℝ
inst✝² : SMul R ℝ
inst✝¹ : SMul R ℝ≥0
inst✝ : IsScalarTower R ℝ≥0 ℝ
r : R
p q : Seminorm 𝕜 E
x y : ℝ
⊢ r • max x y = max (r • x) (r • y)
[PROOFSTEP]
simpa only [← smul_eq_mul, ← NNReal.smul_def, smul_one_smul ℝ≥0 r (_ : ℝ)] using
  mul_max_of_nonneg x y (r • (1 : ℝ≥0) : ℝ≥0).coe_nonneg
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
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₂
f : E →ₛₗ[σ₁₂] E₂
src✝ : AddGroupSeminorm E := AddGroupSeminorm.comp p.toAddGroupSeminorm (LinearMap.toAddMonoidHom f)
x✝¹ : 𝕜
x✝ : E
⊢ AddGroupSeminorm.toFun
      { toFun := fun x => ↑p (↑f x), map_zero' := (_ : AddGroupSeminorm.toFun src✝ 0 = 0),
        add_le' :=
          (_ :
            ∀ (r s : E),
              AddGroupSeminorm.toFun src✝ (r + s) ≤ AddGroupSeminorm.toFun src✝ r + AddGroupSeminorm.toFun src✝ s),
        neg' := (_ : ∀ (r : E), AddGroupSeminorm.toFun src✝ (-r) = AddGroupSeminorm.toFun src✝ r) }
      (x✝¹ • x✝) =
    ‖x✝¹‖ *
      AddGroupSeminorm.toFun
        { toFun := fun x => ↑p (↑f x), map_zero' := (_ : AddGroupSeminorm.toFun src✝ 0 = 0),
          add_le' :=
            (_ :
              ∀ (r s : E),
                AddGroupSeminorm.toFun src✝ (r + s) ≤ AddGroupSeminorm.toFun src✝ r + AddGroupSeminorm.toFun src✝ s),
          neg' := (_ : ∀ (r : E), AddGroupSeminorm.toFun src✝ (-r) = AddGroupSeminorm.toFun src✝ r) }
        x✝
[PROOFSTEP]
simp only [map_smulₛₗ]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
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₂
f : E →ₛₗ[σ₁₂] E₂
src✝ : AddGroupSeminorm E := AddGroupSeminorm.comp p.toAddGroupSeminorm (LinearMap.toAddMonoidHom f)
x✝¹ : 𝕜
x✝ : E
⊢ ↑p (↑σ₁₂ x✝¹ • ↑f x✝) = ‖x✝¹‖ * ↑p (↑f x✝)
[PROOFSTEP]
rw [map_smul_eq_mul, RingHomIsometric.is_iso]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
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 q : Seminorm 𝕜 E
a b : ℝ≥0
hpq : p ≤ q
hab : a ≤ b
⊢ a • p ≤ b • q
[PROOFSTEP]
simp_rw [le_def]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
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 q : Seminorm 𝕜 E
a b : ℝ≥0
hpq : p ≤ q
hab : a ≤ b
⊢ ∀ (x : E), ↑(a • p) x ≤ ↑(b • q) x
[PROOFSTEP]
intro x
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
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 q : Seminorm 𝕜 E
a b : ℝ≥0
hpq : p ≤ q
hab : a ≤ b
x : E
⊢ ↑(a • p) x ≤ ↑(b • q) x
[PROOFSTEP]
exact mul_le_mul hab (hpq x) (map_nonneg p x) (NNReal.coe_nonneg b)
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
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) })
[PROOFSTEP]
induction' s using Finset.cons_induction_on with a s ha ih
[GOAL]
case h₁
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
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) })
[PROOFSTEP]
rw [Finset.sup_empty, Finset.sup_empty, coe_bot, _root_.bot_eq_zero, Pi.zero_apply]
[GOAL]
case h₁
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
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
[PROOFSTEP]
norm_cast
[GOAL]
case h₂
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
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) })
[PROOFSTEP]
rw [Finset.sup_cons, Finset.sup_cons, coe_sup, sup_eq_max, Pi.sup_apply, sup_eq_max, NNReal.coe_max, coe_mk, ih]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
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 ι
hs : Finset.Nonempty s
x : E
⊢ ∃ i, i ∈ s ∧ ↑(Finset.sup s p) x = ↑(p i) x
[PROOFSTEP]
rcases Finset.exists_mem_eq_sup s hs (fun i ↦ (⟨p i x, map_nonneg _ _⟩ : ℝ≥0)) with ⟨i, hi, hix⟩
[GOAL]
case intro.intro
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
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 ι
hs : Finset.Nonempty s
x : E
i : ι
hi : i ∈ s
hix :
  (Finset.sup s fun i => { val := ↑(p i) x, property := (_ : 0 ≤ ↑(p i) x) }) =
    { val := ↑(p i) x, property := (_ : 0 ≤ ↑(p i) x) }
⊢ ∃ i, i ∈ s ∧ ↑(Finset.sup s p) x = ↑(p i) x
[PROOFSTEP]
rw [finset_sup_apply]
[GOAL]
case intro.intro
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
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 ι
hs : Finset.Nonempty s
x : E
i : ι
hi : i ∈ s
hix :
  (Finset.sup s fun i => { val := ↑(p i) x, property := (_ : 0 ≤ ↑(p i) x) }) =
    { val := ↑(p i) x, property := (_ : 0 ≤ ↑(p i) x) }
⊢ ∃ i, i ∈ s ∧ ↑(Finset.sup s fun i => { val := ↑(p i) x, property := (_ : 0 ≤ ↑(p i) x) }) = ↑(p i) x
[PROOFSTEP]
exact ⟨i, hi, congr_arg _ hix⟩
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
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 = 0 ∨ ∃ i, i ∈ s ∧ ↑(Finset.sup s p) x = ↑(p i) x
[PROOFSTEP]
rcases Finset.eq_empty_or_nonempty s with (rfl | hs)
[GOAL]
case inl
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
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 = 0 ∨ ∃ i, i ∈ ∅ ∧ ↑(Finset.sup ∅ p) x = ↑(p i) x
[PROOFSTEP]
left
[GOAL]
case inl.h
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
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 = 0
[PROOFSTEP]
rfl
[GOAL]
case inr
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
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
hs : Finset.Nonempty s
⊢ ↑(Finset.sup s p) x = 0 ∨ ∃ i, i ∈ s ∧ ↑(Finset.sup s p) x = ↑(p i) x
[PROOFSTEP]
right
[GOAL]
case inr.h
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
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
hs : Finset.Nonempty s
⊢ ∃ i, i ∈ s ∧ ↑(Finset.sup s p) x = ↑(p i) x
[PROOFSTEP]
exact exists_apply_eq_finset_sup p hs x
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
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 ι
C : ℝ≥0
⊢ Finset.sup s (C • p) = C • Finset.sup s p
[PROOFSTEP]
ext x
[GOAL]
case h
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
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 ι
C : ℝ≥0
x : E
⊢ ↑(Finset.sup s (C • p)) x = ↑(C • Finset.sup s p) x
[PROOFSTEP]
rw [smul_apply, finset_sup_apply, finset_sup_apply]
[GOAL]
case h
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
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 ι
C : ℝ≥0
x : E
⊢ ↑(Finset.sup s fun i => { val := ↑((C • p) i) x, property := (_ : 0 ≤ ↑((C • p) i) x) }) =
    C • ↑(Finset.sup s fun i => { val := ↑(p i) x, property := (_ : 0 ≤ ↑(p i) x) })
[PROOFSTEP]
symm
[GOAL]
case h
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
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 ι
C : ℝ≥0
x : E
⊢ C • ↑(Finset.sup s fun i => { val := ↑(p i) x, property := (_ : 0 ≤ ↑(p i) x) }) =
    ↑(Finset.sup s fun i => { val := ↑((C • p) i) x, property := (_ : 0 ≤ ↑((C • p) i) x) })
[PROOFSTEP]
exact congr_arg ((↑) : ℝ≥0 → ℝ) (NNReal.mul_finset_sup C s (fun i ↦ ⟨p i x, map_nonneg _ _⟩))
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
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 ι
⊢ Finset.sup s p ≤ ∑ i in s, p i
[PROOFSTEP]
classical
refine' Finset.sup_le_iff.mpr _
intro i hi
rw [Finset.sum_eq_sum_diff_singleton_add hi, le_add_iff_nonneg_left]
exact bot_le
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
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 ι
⊢ Finset.sup s p ≤ ∑ i in s, p i
[PROOFSTEP]
refine' Finset.sup_le_iff.mpr _
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
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 ι
⊢ ∀ (b : ι), b ∈ s → p b ≤ ∑ i in s, p i
[PROOFSTEP]
intro i hi
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
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 ι
i : ι
hi : i ∈ s
⊢ p i ≤ ∑ i in s, p i
[PROOFSTEP]
rw [Finset.sum_eq_sum_diff_singleton_add hi, le_add_iff_nonneg_left]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
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 ι
i : ι
hi : i ∈ s
⊢ 0 ≤ ∑ x in s \ {i}, p x
[PROOFSTEP]
exact bot_le
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
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
a : ℝ
ha : 0 ≤ a
h : ∀ (i : ι), i ∈ s → ↑(p i) x ≤ a
⊢ ↑(Finset.sup s p) x ≤ a
[PROOFSTEP]
lift a to ℝ≥0 using ha
[GOAL]
case intro
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
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
a : ℝ≥0
h : ∀ (i : ι), i ∈ s → ↑(p i) x ≤ ↑a
⊢ ↑(Finset.sup s p) x ≤ ↑a
[PROOFSTEP]
rw [finset_sup_apply, NNReal.coe_le_coe]
[GOAL]
case intro
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
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
a : ℝ≥0
h : ∀ (i : ι), i ∈ s → ↑(p i) x ≤ ↑a
⊢ (Finset.sup s fun i => { val := ↑(p i) x, property := (_ : 0 ≤ ↑(p i) x) }) ≤ a
[PROOFSTEP]
exact Finset.sup_le h
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
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
a : ℝ
ha : 0 < a
h : ∀ (i : ι), i ∈ s → ↑(p i) x < a
⊢ ↑(Finset.sup s p) x < a
[PROOFSTEP]
lift a to ℝ≥0 using ha.le
[GOAL]
case intro
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
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
a : ℝ≥0
ha : 0 < ↑a
h : ∀ (i : ι), i ∈ s → ↑(p i) x < ↑a
⊢ ↑(Finset.sup s p) x < ↑a
[PROOFSTEP]
rw [finset_sup_apply, NNReal.coe_lt_coe, Finset.sup_lt_iff]
[GOAL]
case intro
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
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
a : ℝ≥0
ha : 0 < ↑a
h : ∀ (i : ι), i ∈ s → ↑(p i) x < ↑a
⊢ ∀ (b : ι), b ∈ s → { val := ↑(p b) x, property := (_ : 0 ≤ ↑(p b) x) } < a
[PROOFSTEP]
exact h
[GOAL]
case intro
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
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
a : ℝ≥0
ha : 0 < ↑a
h : ∀ (i : ι), i ∈ s → ↑(p i) x < ↑a
⊢ ⊥ < a
[PROOFSTEP]
exact NNReal.coe_pos.mpr ha
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : SeminormedRing 𝕜
inst✝⁵ : SeminormedCommRing 𝕜₂
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝⁴ : RingHomIsometric σ₁₂
inst✝³ : AddCommGroup E
inst✝² : AddCommGroup E₂
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜₂ E₂
p : Seminorm 𝕜₂ E₂
f : E →ₛₗ[σ₁₂] E₂
c : 𝕜₂
x✝ : E
⊢ ↑(comp p (c • f)) x✝ = ↑(‖c‖₊ • comp p f) x✝
[PROOFSTEP]
rw [comp_apply, smul_apply, LinearMap.smul_apply, map_smul_eq_mul, NNReal.smul_def, coe_nnnorm, smul_eq_mul, comp_apply]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p q : Seminorm 𝕜 E
x : E
⊢ 0 ∈ lowerBounds (range fun u => ↑p u + ↑q (x - u))
[PROOFSTEP]
rintro _ ⟨x, rfl⟩
[GOAL]
case intro
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p q : Seminorm 𝕜 E
x✝ x : E
⊢ 0 ≤ (fun u => ↑p u + ↑q (x✝ - u)) x
[PROOFSTEP]
dsimp
[GOAL]
case intro
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p q : Seminorm 𝕜 E
x✝ x : E
⊢ 0 ≤ ↑p x + ↑q (x✝ - x)
[PROOFSTEP]
positivity
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ q✝ : Seminorm 𝕜 E
x : E
p q : Seminorm 𝕜 E
src✝ : AddGroupSeminorm E := p.toAddGroupSeminorm ⊓ q.toAddGroupSeminorm
⊢ ∀ (a : 𝕜) (x : E),
    AddGroupSeminorm.toFun
        { toFun := fun x => ⨅ (u : E), ↑p u + ↑q (x - u), map_zero' := (_ : AddGroupSeminorm.toFun src✝ 0 = 0),
          add_le' :=
            (_ :
              ∀ (r s : E),
                AddGroupSeminorm.toFun src✝ (r + s) ≤ AddGroupSeminorm.toFun src✝ r + AddGroupSeminorm.toFun src✝ s),
          neg' := (_ : ∀ (r : E), AddGroupSeminorm.toFun src✝ (-r) = AddGroupSeminorm.toFun src✝ r) }
        (a • x) =
      ‖a‖ *
        AddGroupSeminorm.toFun
          { toFun := fun x => ⨅ (u : E), ↑p u + ↑q (x - u), map_zero' := (_ : AddGroupSeminorm.toFun src✝ 0 = 0),
            add_le' :=
              (_ :
                ∀ (r s : E),
                  AddGroupSeminorm.toFun src✝ (r + s) ≤ AddGroupSeminorm.toFun src✝ r + AddGroupSeminorm.toFun src✝ s),
            neg' := (_ : ∀ (r : E), AddGroupSeminorm.toFun src✝ (-r) = AddGroupSeminorm.toFun src✝ r) }
          x
[PROOFSTEP]
intro a x
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ q✝ : Seminorm 𝕜 E
x✝ : E
p q : Seminorm 𝕜 E
src✝ : AddGroupSeminorm E := p.toAddGroupSeminorm ⊓ q.toAddGroupSeminorm
a : 𝕜
x : E
⊢ AddGroupSeminorm.toFun
      { toFun := fun x => ⨅ (u : E), ↑p u + ↑q (x - u), map_zero' := (_ : AddGroupSeminorm.toFun src✝ 0 = 0),
        add_le' :=
          (_ :
            ∀ (r s : E),
              AddGroupSeminorm.toFun src✝ (r + s) ≤ AddGroupSeminorm.toFun src✝ r + AddGroupSeminorm.toFun src✝ s),
        neg' := (_ : ∀ (r : E), AddGroupSeminorm.toFun src✝ (-r) = AddGroupSeminorm.toFun src✝ r) }
      (a • x) =
    ‖a‖ *
      AddGroupSeminorm.toFun
        { toFun := fun x => ⨅ (u : E), ↑p u + ↑q (x - u), map_zero' := (_ : AddGroupSeminorm.toFun src✝ 0 = 0),
          add_le' :=
            (_ :
              ∀ (r s : E),
                AddGroupSeminorm.toFun src✝ (r + s) ≤ AddGroupSeminorm.toFun src✝ r + AddGroupSeminorm.toFun src✝ s),
          neg' := (_ : ∀ (r : E), AddGroupSeminorm.toFun src✝ (-r) = AddGroupSeminorm.toFun src✝ r) }
        x
[PROOFSTEP]
obtain rfl | ha := eq_or_ne a 0
[GOAL]
case inl
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ q✝ : Seminorm 𝕜 E
x✝ : E
p q : Seminorm 𝕜 E
src✝ : AddGroupSeminorm E := p.toAddGroupSeminorm ⊓ q.toAddGroupSeminorm
x : E
⊢ AddGroupSeminorm.toFun
      { toFun := fun x => ⨅ (u : E), ↑p u + ↑q (x - u), map_zero' := (_ : AddGroupSeminorm.toFun src✝ 0 = 0),
        add_le' :=
          (_ :
            ∀ (r s : E),
              AddGroupSeminorm.toFun src✝ (r + s) ≤ AddGroupSeminorm.toFun src✝ r + AddGroupSeminorm.toFun src✝ s),
        neg' := (_ : ∀ (r : E), AddGroupSeminorm.toFun src✝ (-r) = AddGroupSeminorm.toFun src✝ r) }
      (0 • x) =
    ‖0‖ *
      AddGroupSeminorm.toFun
        { toFun := fun x => ⨅ (u : E), ↑p u + ↑q (x - u), map_zero' := (_ : AddGroupSeminorm.toFun src✝ 0 = 0),
          add_le' :=
            (_ :
              ∀ (r s : E),
                AddGroupSeminorm.toFun src✝ (r + s) ≤ AddGroupSeminorm.toFun src✝ r + AddGroupSeminorm.toFun src✝ s),
          neg' := (_ : ∀ (r : E), AddGroupSeminorm.toFun src✝ (-r) = AddGroupSeminorm.toFun src✝ r) }
        x
[PROOFSTEP]
rw [norm_zero, zero_mul, zero_smul]
[GOAL]
case inl
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ q✝ : Seminorm 𝕜 E
x✝ : E
p q : Seminorm 𝕜 E
src✝ : AddGroupSeminorm E := p.toAddGroupSeminorm ⊓ q.toAddGroupSeminorm
x : E
⊢ AddGroupSeminorm.toFun
      { toFun := fun x => ⨅ (u : E), ↑p u + ↑q (x - u), map_zero' := (_ : AddGroupSeminorm.toFun src✝ 0 = 0),
        add_le' :=
          (_ :
            ∀ (r s : E),
              AddGroupSeminorm.toFun src✝ (r + s) ≤ AddGroupSeminorm.toFun src✝ r + AddGroupSeminorm.toFun src✝ s),
        neg' := (_ : ∀ (r : E), AddGroupSeminorm.toFun src✝ (-r) = AddGroupSeminorm.toFun src✝ r) }
      0 =
    0
[PROOFSTEP]
refine'
  ciInf_eq_of_forall_ge_of_forall_gt_exists_lt (fun i => add_nonneg (map_nonneg _ _) (map_nonneg _ _)) fun x hx =>
    ⟨0, by rwa [map_zero, sub_zero, map_zero, add_zero]⟩
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ q✝ : Seminorm 𝕜 E
x✝¹ : E
p q : Seminorm 𝕜 E
src✝ : AddGroupSeminorm E := p.toAddGroupSeminorm ⊓ q.toAddGroupSeminorm
x✝ : E
x : ℝ
hx : 0 < x
⊢ ↑p 0 + ↑q (0 - 0) < x
[PROOFSTEP]
rwa [map_zero, sub_zero, map_zero, add_zero]
[GOAL]
case inr
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ q✝ : Seminorm 𝕜 E
x✝ : E
p q : Seminorm 𝕜 E
src✝ : AddGroupSeminorm E := p.toAddGroupSeminorm ⊓ q.toAddGroupSeminorm
a : 𝕜
x : E
ha : a ≠ 0
⊢ AddGroupSeminorm.toFun
      { toFun := fun x => ⨅ (u : E), ↑p u + ↑q (x - u), map_zero' := (_ : AddGroupSeminorm.toFun src✝ 0 = 0),
        add_le' :=
          (_ :
            ∀ (r s : E),
              AddGroupSeminorm.toFun src✝ (r + s) ≤ AddGroupSeminorm.toFun src✝ r + AddGroupSeminorm.toFun src✝ s),
        neg' := (_ : ∀ (r : E), AddGroupSeminorm.toFun src✝ (-r) = AddGroupSeminorm.toFun src✝ r) }
      (a • x) =
    ‖a‖ *
      AddGroupSeminorm.toFun
        { toFun := fun x => ⨅ (u : E), ↑p u + ↑q (x - u), map_zero' := (_ : AddGroupSeminorm.toFun src✝ 0 = 0),
          add_le' :=
            (_ :
              ∀ (r s : E),
                AddGroupSeminorm.toFun src✝ (r + s) ≤ AddGroupSeminorm.toFun src✝ r + AddGroupSeminorm.toFun src✝ s),
          neg' := (_ : ∀ (r : E), AddGroupSeminorm.toFun src✝ (-r) = AddGroupSeminorm.toFun src✝ r) }
        x
[PROOFSTEP]
simp_rw [Real.mul_iInf_of_nonneg (norm_nonneg a), mul_add, ← map_smul_eq_mul p, ← map_smul_eq_mul q, smul_sub]
[GOAL]
case inr
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ q✝ : Seminorm 𝕜 E
x✝ : E
p q : Seminorm 𝕜 E
src✝ : AddGroupSeminorm E := p.toAddGroupSeminorm ⊓ q.toAddGroupSeminorm
a : 𝕜
x : E
ha : a ≠ 0
⊢ ⨅ (u : E), ↑p u + ↑q (a • x - u) = ⨅ (i : E), ↑p (a • i) + ↑q (a • x - a • i)
[PROOFSTEP]
refine' Function.Surjective.iInf_congr ((a⁻¹ • ·) : E → E) (fun u => ⟨a • u, inv_smul_smul₀ ha u⟩) fun u => _
[GOAL]
case inr
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ q✝ : Seminorm 𝕜 E
x✝ : E
p q : Seminorm 𝕜 E
src✝ : AddGroupSeminorm E := p.toAddGroupSeminorm ⊓ q.toAddGroupSeminorm
a : 𝕜
x : E
ha : a ≠ 0
u : E
⊢ ↑p (a • (fun x => a⁻¹ • x) u) + ↑q (a • x - a • (fun x => a⁻¹ • x) u) = ↑p u + ↑q (a • x - u)
[PROOFSTEP]
rw [smul_inv_smul₀ ha]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ q✝ : Seminorm 𝕜 E
x✝ : E
src✝ : SemilatticeSup (Seminorm 𝕜 E) := instSemilatticeSup
p q : Seminorm 𝕜 E
x : E
⊢ ↑p x + ↑q (x - x) ≤ (fun f => ↑f) p x
[PROOFSTEP]
simp only [sub_self, map_zero, add_zero]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ q✝ : Seminorm 𝕜 E
x✝ : E
src✝ : SemilatticeSup (Seminorm 𝕜 E) := instSemilatticeSup
p q : Seminorm 𝕜 E
x : E
⊢ ↑p x ≤ ↑p x
[PROOFSTEP]
rfl
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ q✝ : Seminorm 𝕜 E
x✝ : E
src✝ : SemilatticeSup (Seminorm 𝕜 E) := instSemilatticeSup
p q : Seminorm 𝕜 E
x : E
⊢ ↑p 0 + ↑q (x - 0) ≤ (fun f => ↑f) q x
[PROOFSTEP]
simp only [sub_self, map_zero, zero_add, sub_zero]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ q✝ : Seminorm 𝕜 E
x✝ : E
src✝ : SemilatticeSup (Seminorm 𝕜 E) := instSemilatticeSup
p q : Seminorm 𝕜 E
x : E
⊢ ↑q x ≤ ↑q x
[PROOFSTEP]
rfl
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
p✝ q✝ : Seminorm 𝕜 E
x : E
inst✝² : SMul R ℝ
inst✝¹ : SMul R ℝ≥0
inst✝ : IsScalarTower R ℝ≥0 ℝ
r : R
p q : Seminorm 𝕜 E
⊢ r • (p ⊓ q) = r • p ⊓ r • q
[PROOFSTEP]
ext
[GOAL]
case h
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
p✝ q✝ : Seminorm 𝕜 E
x : E
inst✝² : SMul R ℝ
inst✝¹ : SMul R ℝ≥0
inst✝ : IsScalarTower R ℝ≥0 ℝ
r : R
p q : Seminorm 𝕜 E
x✝ : E
⊢ ↑(r • (p ⊓ q)) x✝ = ↑(r • p ⊓ r • q) x✝
[PROOFSTEP]
simp_rw [smul_apply, inf_apply, smul_apply, ← smul_one_smul ℝ≥0 r (_ : ℝ), NNReal.smul_def, smul_eq_mul,
  Real.mul_iInf_of_nonneg (NNReal.coe_nonneg _), mul_add]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p q : Seminorm 𝕜 E
x : E
s : Set (Seminorm 𝕜 E)
h : BddAbove (FunLike.coe '' s)
⊢ iSup (fun p => ↑↑p) 0 = 0
[PROOFSTEP]
rw [iSup_apply, ← @Real.ciSup_const_zero s]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p q : Seminorm 𝕜 E
x : E
s : Set (Seminorm 𝕜 E)
h : BddAbove (FunLike.coe '' s)
⊢ ⨆ (i : ↑s), ↑↑i 0 = ⨆ (x : ↑s), 0
[PROOFSTEP]
congr!
[GOAL]
case h.e'_4.h
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p q : Seminorm 𝕜 E
x : E
s : Set (Seminorm 𝕜 E)
h : BddAbove (FunLike.coe '' s)
x✝ : ↑s
⊢ ↑↑x✝ 0 = 0
[PROOFSTEP]
rename_i _ _ _ i
[GOAL]
case h.e'_4.h
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p q : Seminorm 𝕜 E
x : E
s : Set (Seminorm 𝕜 E)
h : BddAbove (FunLike.coe '' s)
i : ↑s
⊢ ↑↑i 0 = 0
[PROOFSTEP]
exact map_zero i.1
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p q : Seminorm 𝕜 E
x✝ : E
s : Set (Seminorm 𝕜 E)
h : BddAbove (FunLike.coe '' s)
x y : E
⊢ iSup (fun p => ↑↑p) (x + y) ≤ iSup (fun p => ↑↑p) x + iSup (fun p => ↑↑p) y
[PROOFSTEP]
rcases h with ⟨q, hq⟩
[GOAL]
case intro
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p q✝ : Seminorm 𝕜 E
x✝ : E
s : Set (Seminorm 𝕜 E)
x y : E
q : E → ℝ
hq : q ∈ upperBounds (FunLike.coe '' s)
⊢ iSup (fun p => ↑↑p) (x + y) ≤ iSup (fun p => ↑↑p) x + iSup (fun p => ↑↑p) y
[PROOFSTEP]
obtain rfl | h := s.eq_empty_or_nonempty
[GOAL]
case intro.inl
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p q✝ : Seminorm 𝕜 E
x✝ x y : E
q : E → ℝ
hq : q ∈ upperBounds (FunLike.coe '' ∅)
⊢ iSup (fun p => ↑↑p) (x + y) ≤ iSup (fun p => ↑↑p) x + iSup (fun p => ↑↑p) y
[PROOFSTEP]
simp [Real.ciSup_empty]
[GOAL]
case intro.inr
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p q✝ : Seminorm 𝕜 E
x✝ : E
s : Set (Seminorm 𝕜 E)
x y : E
q : E → ℝ
hq : q ∈ upperBounds (FunLike.coe '' s)
h : Set.Nonempty s
⊢ iSup (fun p => ↑↑p) (x + y) ≤ iSup (fun p => ↑↑p) x + iSup (fun p => ↑↑p) y
[PROOFSTEP]
haveI : Nonempty ↑s := h.coe_sort
[GOAL]
case intro.inr
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p q✝ : Seminorm 𝕜 E
x✝ : E
s : Set (Seminorm 𝕜 E)
x y : E
q : E → ℝ
hq : q ∈ upperBounds (FunLike.coe '' s)
h : Set.Nonempty s
this : Nonempty ↑s
⊢ iSup (fun p => ↑↑p) (x + y) ≤ iSup (fun p => ↑↑p) x + iSup (fun p => ↑↑p) y
[PROOFSTEP]
simp only [iSup_apply]
[GOAL]
case intro.inr
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p q✝ : Seminorm 𝕜 E
x✝ : E
s : Set (Seminorm 𝕜 E)
x y : E
q : E → ℝ
hq : q ∈ upperBounds (FunLike.coe '' s)
h : Set.Nonempty s
this : Nonempty ↑s
⊢ ⨆ (i : ↑s), ↑↑i (x + y) ≤ (⨆ (i : ↑s), ↑↑i x) + ⨆ (i : ↑s), ↑↑i y
[PROOFSTEP]
refine'
  ciSup_le fun i =>
    ((i : Seminorm 𝕜 E).add_le' x y).trans <|
      add_le_add (le_ciSup (f := fun i => (Subtype.val i : Seminorm 𝕜 E).toFun x) ⟨q x, _⟩ i)
        (le_ciSup (f := fun i => (Subtype.val i : Seminorm 𝕜 E).toFun y) ⟨q y, _⟩ i)
[GOAL]
case intro.inr.refine'_1
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p q✝ : Seminorm 𝕜 E
x✝ : E
s : Set (Seminorm 𝕜 E)
x y : E
q : E → ℝ
hq : q ∈ upperBounds (FunLike.coe '' s)
h : Set.Nonempty s
this : Nonempty ↑s
i : ↑s
⊢ q x ∈ upperBounds (range fun i => AddGroupSeminorm.toFun (↑i).toAddGroupSeminorm x)
[PROOFSTEP]
rw [mem_upperBounds, forall_range_iff]
[GOAL]
case intro.inr.refine'_2
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p q✝ : Seminorm 𝕜 E
x✝ : E
s : Set (Seminorm 𝕜 E)
x y : E
q : E → ℝ
hq : q ∈ upperBounds (FunLike.coe '' s)
h : Set.Nonempty s
this : Nonempty ↑s
i : ↑s
⊢ q y ∈ upperBounds (range fun i => AddGroupSeminorm.toFun (↑i).toAddGroupSeminorm y)
[PROOFSTEP]
rw [mem_upperBounds, forall_range_iff]
[GOAL]
case intro.inr.refine'_1
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p q✝ : Seminorm 𝕜 E
x✝ : E
s : Set (Seminorm 𝕜 E)
x y : E
q : E → ℝ
hq : q ∈ upperBounds (FunLike.coe '' s)
h : Set.Nonempty s
this : Nonempty ↑s
i : ↑s
⊢ ∀ (i : { x // x ∈ s }), AddGroupSeminorm.toFun (↑i).toAddGroupSeminorm x ≤ q x
[PROOFSTEP]
exact fun j => hq (mem_image_of_mem _ j.2) _
[GOAL]
case intro.inr.refine'_2
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p q✝ : Seminorm 𝕜 E
x✝ : E
s : Set (Seminorm 𝕜 E)
x y : E
q : E → ℝ
hq : q ∈ upperBounds (FunLike.coe '' s)
h : Set.Nonempty s
this : Nonempty ↑s
i : ↑s
⊢ ∀ (i : { x // x ∈ s }), AddGroupSeminorm.toFun (↑i).toAddGroupSeminorm y ≤ q y
[PROOFSTEP]
exact fun j => hq (mem_image_of_mem _ j.2) _
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p q : Seminorm 𝕜 E
x✝ : E
s : Set (Seminorm 𝕜 E)
h : BddAbove (FunLike.coe '' s)
x : E
⊢ iSup (fun p => ↑↑p) (-x) = iSup (fun p => ↑↑p) x
[PROOFSTEP]
simp only [iSup_apply]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p q : Seminorm 𝕜 E
x✝ : E
s : Set (Seminorm 𝕜 E)
h : BddAbove (FunLike.coe '' s)
x : E
⊢ ⨆ (i : ↑s), ↑↑i (-x) = ⨆ (i : ↑s), ↑↑i x
[PROOFSTEP]
congr! 2
[GOAL]
case h.e'_4.h
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p q : Seminorm 𝕜 E
x✝¹ : E
s : Set (Seminorm 𝕜 E)
h : BddAbove (FunLike.coe '' s)
x : E
x✝ : ↑s
⊢ ↑↑x✝ (-x) = ↑↑x✝ x
[PROOFSTEP]
rename_i _ _ _ i
[GOAL]
case h.e'_4.h
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p q : Seminorm 𝕜 E
x✝ : E
s : Set (Seminorm 𝕜 E)
h : BddAbove (FunLike.coe '' s)
x : E
i : ↑s
⊢ ↑↑i (-x) = ↑↑i x
[PROOFSTEP]
exact i.1.neg' _
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p q : Seminorm 𝕜 E
x✝ : E
s : Set (Seminorm 𝕜 E)
h : BddAbove (FunLike.coe '' s)
a : 𝕜
x : E
⊢ AddGroupSeminorm.toFun
      { toFun := ⨆ (p : ↑s), ↑↑p, map_zero' := (_ : iSup (fun p => ↑↑p) 0 = 0),
        add_le' := (_ : ∀ (x y : E), iSup (fun p => ↑↑p) (x + y) ≤ iSup (fun p => ↑↑p) x + iSup (fun p => ↑↑p) y),
        neg' := (_ : ∀ (x : E), iSup (fun p => ↑↑p) (-x) = iSup (fun p => ↑↑p) x) }
      (a • x) =
    ‖a‖ *
      AddGroupSeminorm.toFun
        { toFun := ⨆ (p : ↑s), ↑↑p, map_zero' := (_ : iSup (fun p => ↑↑p) 0 = 0),
          add_le' := (_ : ∀ (x y : E), iSup (fun p => ↑↑p) (x + y) ≤ iSup (fun p => ↑↑p) x + iSup (fun p => ↑↑p) y),
          neg' := (_ : ∀ (x : E), iSup (fun p => ↑↑p) (-x) = iSup (fun p => ↑↑p) x) }
        x
[PROOFSTEP]
simp only [iSup_apply]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p q : Seminorm 𝕜 E
x✝ : E
s : Set (Seminorm 𝕜 E)
h : BddAbove (FunLike.coe '' s)
a : 𝕜
x : E
⊢ ⨆ (i : ↑s), ↑↑i (a • x) = ‖a‖ * ⨆ (i : ↑s), ↑↑i x
[PROOFSTEP]
rw [← smul_eq_mul, Real.smul_iSup_of_nonneg (norm_nonneg a) fun i : s => (i : Seminorm 𝕜 E) x]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p q : Seminorm 𝕜 E
x✝ : E
s : Set (Seminorm 𝕜 E)
h : BddAbove (FunLike.coe '' s)
a : 𝕜
x : E
⊢ ⨆ (i : ↑s), ↑↑i (a • x) = ⨆ (i : ↑s), ‖a‖ • ↑↑i x
[PROOFSTEP]
congr!
[GOAL]
case h.e'_4.h
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p q : Seminorm 𝕜 E
x✝¹ : E
s : Set (Seminorm 𝕜 E)
h : BddAbove (FunLike.coe '' s)
a : 𝕜
x : E
x✝ : ↑s
⊢ ↑↑x✝ (a • x) = ‖a‖ • ↑↑x✝ x
[PROOFSTEP]
rename_i _ _ _ i
[GOAL]
case h.e'_4.h
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p q : Seminorm 𝕜 E
x✝ : E
s : Set (Seminorm 𝕜 E)
h : BddAbove (FunLike.coe '' s)
a : 𝕜
x : E
i : ↑s
⊢ ↑↑i (a • x) = ‖a‖ • ↑↑i x
[PROOFSTEP]
exact i.1.smul' a x
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ q : Seminorm 𝕜 E
x✝ : E
s : Set (Seminorm 𝕜 E)
H : BddAbove (FunLike.coe '' s)
p : Seminorm 𝕜 E
hp : p ∈ s
x : E
⊢ (fun f => ↑f) p x ≤ (fun f => ↑f) (sSup s) x
[PROOFSTEP]
dsimp
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ q : Seminorm 𝕜 E
x✝ : E
s : Set (Seminorm 𝕜 E)
H : BddAbove (FunLike.coe '' s)
p : Seminorm 𝕜 E
hp : p ∈ s
x : E
⊢ ↑p x ≤ ↑(sSup s) x
[PROOFSTEP]
rw [Seminorm.coe_sSup_eq' H, iSup_apply]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ q : Seminorm 𝕜 E
x✝ : E
s : Set (Seminorm 𝕜 E)
H : BddAbove (FunLike.coe '' s)
p : Seminorm 𝕜 E
hp : p ∈ s
x : E
⊢ ↑p x ≤ ⨆ (i : ↑s), ↑↑i x
[PROOFSTEP]
rcases H with ⟨q, hq⟩
[GOAL]
case intro
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ q✝ : Seminorm 𝕜 E
x✝ : E
s : Set (Seminorm 𝕜 E)
p : Seminorm 𝕜 E
hp : p ∈ s
x : E
q : E → ℝ
hq : q ∈ upperBounds (FunLike.coe '' s)
⊢ ↑p x ≤ ⨆ (i : ↑s), ↑↑i x
[PROOFSTEP]
exact le_ciSup ⟨q x, forall_range_iff.mpr fun i : s => hq (mem_image_of_mem _ i.2) x⟩ ⟨p, hp⟩
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ q : Seminorm 𝕜 E
x : E
p : ι → Seminorm 𝕜 E
⊢ BddAbove (range p) ↔ ∀ (x : E), BddAbove (range fun i => ↑(p i) x)
[PROOFSTEP]
rw [Seminorm.bddAbove_iff, ← range_comp, bddAbove_range_pi]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ q : Seminorm 𝕜 E
x : E
p : ι → Seminorm 𝕜 E
⊢ (∀ (a : E), BddAbove (range fun i => (FunLike.coe ∘ p) i a)) ↔ ∀ (x : E), BddAbove (range fun i => ↑(p i) x)
[PROOFSTEP]
rfl
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι✝ : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ q : Seminorm 𝕜 E
x : E
ι : Type u_13
p : ι → Seminorm 𝕜 E
hp : BddAbove (range p)
⊢ ↑(⨆ (i : ι), p i) = ⨆ (i : ι), ↑(p i)
[PROOFSTEP]
rw [← sSup_range, Seminorm.coe_sSup_eq hp]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι✝ : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ q : Seminorm 𝕜 E
x : E
ι : Type u_13
p : ι → Seminorm 𝕜 E
hp : BddAbove (range p)
⊢ ⨆ (p_1 : ↑(range p)), ↑↑p_1 = ⨆ (i : ι), ↑(p i)
[PROOFSTEP]
exact iSup_range' (fun p : Seminorm 𝕜 E => (p : E → ℝ)) p
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p q : Seminorm 𝕜 E
x✝ : E
s : Set (Seminorm 𝕜 E)
hp : BddAbove s
x : E
⊢ ↑(sSup s) x = ⨆ (p : ↑s), ↑↑p x
[PROOFSTEP]
rw [Seminorm.coe_sSup_eq hp, iSup_apply]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι✝ : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ q : Seminorm 𝕜 E
x✝ : E
ι : Type u_13
p : ι → Seminorm 𝕜 E
hp : BddAbove (range p)
x : E
⊢ ↑(⨆ (i : ι), p i) x = ⨆ (i : ι), ↑(p i) x
[PROOFSTEP]
rw [Seminorm.coe_iSup_eq hp, iSup_apply]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p q : Seminorm 𝕜 E
x : E
⊢ sSup ∅ = ⊥
[PROOFSTEP]
ext
[GOAL]
case h
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p q : Seminorm 𝕜 E
x x✝ : E
⊢ ↑(sSup ∅) x✝ = ↑⊥ x✝
[PROOFSTEP]
rw [Seminorm.sSup_apply bddAbove_empty, Real.ciSup_empty]
[GOAL]
case h
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p q : Seminorm 𝕜 E
x x✝ : E
⊢ 0 = ↑⊥ x✝
[PROOFSTEP]
rfl
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p q : Seminorm 𝕜 E
x : E
s : Set (Seminorm 𝕜 E)
hs₁ : BddAbove s
hs₂ : Set.Nonempty s
⊢ IsLUB s (sSup s)
[PROOFSTEP]
refine' ⟨fun p hp x => _, fun p hp x => _⟩
[GOAL]
case refine'_1
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ q : Seminorm 𝕜 E
x✝ : E
s : Set (Seminorm 𝕜 E)
hs₁ : BddAbove s
hs₂ : Set.Nonempty s
p : Seminorm 𝕜 E
hp : p ∈ s
x : E
⊢ (fun f => ↑f) p x ≤ (fun f => ↑f) (sSup s) x
[PROOFSTEP]
haveI : Nonempty ↑s := hs₂.coe_sort
[GOAL]
case refine'_2
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ q : Seminorm 𝕜 E
x✝ : E
s : Set (Seminorm 𝕜 E)
hs₁ : BddAbove s
hs₂ : Set.Nonempty s
p : Seminorm 𝕜 E
hp : p ∈ upperBounds s
x : E
⊢ (fun f => ↑f) (sSup s) x ≤ (fun f => ↑f) p x
[PROOFSTEP]
haveI : Nonempty ↑s := hs₂.coe_sort
[GOAL]
case refine'_1
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ q : Seminorm 𝕜 E
x✝ : E
s : Set (Seminorm 𝕜 E)
hs₁ : BddAbove s
hs₂ : Set.Nonempty s
p : Seminorm 𝕜 E
hp : p ∈ s
x : E
this : Nonempty ↑s
⊢ (fun f => ↑f) p x ≤ (fun f => ↑f) (sSup s) x
[PROOFSTEP]
dsimp
[GOAL]
case refine'_2
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ q : Seminorm 𝕜 E
x✝ : E
s : Set (Seminorm 𝕜 E)
hs₁ : BddAbove s
hs₂ : Set.Nonempty s
p : Seminorm 𝕜 E
hp : p ∈ upperBounds s
x : E
this : Nonempty ↑s
⊢ (fun f => ↑f) (sSup s) x ≤ (fun f => ↑f) p x
[PROOFSTEP]
dsimp
[GOAL]
case refine'_1
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ q : Seminorm 𝕜 E
x✝ : E
s : Set (Seminorm 𝕜 E)
hs₁ : BddAbove s
hs₂ : Set.Nonempty s
p : Seminorm 𝕜 E
hp : p ∈ s
x : E
this : Nonempty ↑s
⊢ ↑p x ≤ ↑(sSup s) x
[PROOFSTEP]
rw [Seminorm.coe_sSup_eq hs₁, iSup_apply]
[GOAL]
case refine'_2
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ q : Seminorm 𝕜 E
x✝ : E
s : Set (Seminorm 𝕜 E)
hs₁ : BddAbove s
hs₂ : Set.Nonempty s
p : Seminorm 𝕜 E
hp : p ∈ upperBounds s
x : E
this : Nonempty ↑s
⊢ ↑(sSup s) x ≤ ↑p x
[PROOFSTEP]
rw [Seminorm.coe_sSup_eq hs₁, iSup_apply]
[GOAL]
case refine'_1
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ q : Seminorm 𝕜 E
x✝ : E
s : Set (Seminorm 𝕜 E)
hs₁ : BddAbove s
hs₂ : Set.Nonempty s
p : Seminorm 𝕜 E
hp : p ∈ s
x : E
this : Nonempty ↑s
⊢ ↑p x ≤ ⨆ (i : ↑s), ↑↑i x
[PROOFSTEP]
rcases hs₁ with ⟨q, hq⟩
[GOAL]
case refine'_1.intro
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ q✝ : Seminorm 𝕜 E
x✝ : E
s : Set (Seminorm 𝕜 E)
hs₂ : Set.Nonempty s
p : Seminorm 𝕜 E
hp : p ∈ s
x : E
this : Nonempty ↑s
q : Seminorm 𝕜 E
hq : q ∈ upperBounds s
⊢ ↑p x ≤ ⨆ (i : ↑s), ↑↑i x
[PROOFSTEP]
exact le_ciSup ⟨q x, forall_range_iff.mpr fun i : s => hq i.2 x⟩ ⟨p, hp⟩
[GOAL]
case refine'_2
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ q : Seminorm 𝕜 E
x✝ : E
s : Set (Seminorm 𝕜 E)
hs₁ : BddAbove s
hs₂ : Set.Nonempty s
p : Seminorm 𝕜 E
hp : p ∈ upperBounds s
x : E
this : Nonempty ↑s
⊢ ⨆ (i : ↑s), ↑↑i x ≤ ↑p x
[PROOFSTEP]
exact ciSup_le fun q => hp q.2 x
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : SeminormedRing 𝕜
inst✝¹ : AddCommGroup E
inst✝ : SMul 𝕜 E
p : Seminorm 𝕜 E
x y : E
r : ℝ
hr : 0 < r
⊢ x ∈ ball p x r
[PROOFSTEP]
simp [hr]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : SeminormedRing 𝕜
inst✝¹ : AddCommGroup E
inst✝ : SMul 𝕜 E
p : Seminorm 𝕜 E
x y : E
r : ℝ
hr : 0 ≤ r
⊢ x ∈ closedBall p x r
[PROOFSTEP]
simp [hr]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : SeminormedRing 𝕜
inst✝¹ : AddCommGroup E
inst✝ : SMul 𝕜 E
p : Seminorm 𝕜 E
x y : E
r : ℝ
⊢ y ∈ ball p 0 r ↔ ↑p y < r
[PROOFSTEP]
rw [mem_ball, sub_zero]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : SeminormedRing 𝕜
inst✝¹ : AddCommGroup E
inst✝ : SMul 𝕜 E
p : Seminorm 𝕜 E
x y : E
r : ℝ
⊢ y ∈ closedBall p 0 r ↔ ↑p y ≤ r
[PROOFSTEP]
rw [mem_closedBall, sub_zero]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : SeminormedRing 𝕜
inst✝¹ : AddCommGroup E
inst✝ : SMul 𝕜 E
p : Seminorm 𝕜 E
x✝ y : E
r✝ : ℝ
x : E
r : ℝ
⊢ closedBall p x r = ⋂ (ρ : ℝ) (_ : ρ > r), ball p x ρ
[PROOFSTEP]
ext y
[GOAL]
case h
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : SeminormedRing 𝕜
inst✝¹ : AddCommGroup E
inst✝ : SMul 𝕜 E
p : Seminorm 𝕜 E
x✝ y✝ : E
r✝ : ℝ
x : E
r : ℝ
y : E
⊢ y ∈ closedBall p x r ↔ y ∈ ⋂ (ρ : ℝ) (_ : ρ > r), ball p x ρ
[PROOFSTEP]
simp_rw [mem_closedBall, mem_iInter₂, mem_ball, ← forall_lt_iff_le']
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : SeminormedRing 𝕜
inst✝¹ : AddCommGroup E
inst✝ : SMul 𝕜 E
p : Seminorm 𝕜 E
x✝ y : E
r : ℝ
x : E
hr : 0 < r
⊢ ball 0 x r = univ
[PROOFSTEP]
rw [Set.eq_univ_iff_forall, ball]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : SeminormedRing 𝕜
inst✝¹ : AddCommGroup E
inst✝ : SMul 𝕜 E
p : Seminorm 𝕜 E
x✝ y : E
r : ℝ
x : E
hr : 0 < r
⊢ ∀ (x_1 : E), x_1 ∈ {y | ↑0 (y - x) < r}
[PROOFSTEP]
simp [hr]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : SeminormedRing 𝕜
inst✝¹ : AddCommGroup E
inst✝ : SMul 𝕜 E
p✝ : Seminorm 𝕜 E
x✝ y : E
r✝ : ℝ
p : Seminorm 𝕜 E
c : ℝ≥0
hc : 0 < c
r : ℝ
x : E
⊢ ball (c • p) x r = ball p x (r / ↑c)
[PROOFSTEP]
ext
[GOAL]
case h
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : SeminormedRing 𝕜
inst✝¹ : AddCommGroup E
inst✝ : SMul 𝕜 E
p✝ : Seminorm 𝕜 E
x✝¹ y : E
r✝ : ℝ
p : Seminorm 𝕜 E
c : ℝ≥0
hc : 0 < c
r : ℝ
x x✝ : E
⊢ x✝ ∈ ball (c • p) x r ↔ x✝ ∈ ball p x (r / ↑c)
[PROOFSTEP]
rw [mem_ball, mem_ball, smul_apply, NNReal.smul_def, smul_eq_mul, mul_comm, lt_div_iff (NNReal.coe_pos.mpr hc)]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : SeminormedRing 𝕜
inst✝¹ : AddCommGroup E
inst✝ : SMul 𝕜 E
p✝ : Seminorm 𝕜 E
x✝ y : E
r✝ : ℝ
p : Seminorm 𝕜 E
c : ℝ≥0
hc : 0 < c
r : ℝ
x : E
⊢ closedBall (c • p) x r = closedBall p x (r / ↑c)
[PROOFSTEP]
ext
[GOAL]
case h
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : SeminormedRing 𝕜
inst✝¹ : AddCommGroup E
inst✝ : SMul 𝕜 E
p✝ : Seminorm 𝕜 E
x✝¹ y : E
r✝ : ℝ
p : Seminorm 𝕜 E
c : ℝ≥0
hc : 0 < c
r : ℝ
x x✝ : E
⊢ x✝ ∈ closedBall (c • p) x r ↔ x✝ ∈ closedBall p x (r / ↑c)
[PROOFSTEP]
rw [mem_closedBall, mem_closedBall, smul_apply, NNReal.smul_def, smul_eq_mul, mul_comm,
  le_div_iff (NNReal.coe_pos.mpr hc)]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : SeminormedRing 𝕜
inst✝¹ : AddCommGroup E
inst✝ : SMul 𝕜 E
p✝ : Seminorm 𝕜 E
x y : E
r✝ : ℝ
p q : Seminorm 𝕜 E
e : E
r : ℝ
⊢ ball (p ⊔ q) e r = ball p e r ∩ ball q e r
[PROOFSTEP]
simp_rw [ball, ← Set.setOf_and, coe_sup, Pi.sup_apply, sup_lt_iff]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : SeminormedRing 𝕜
inst✝¹ : AddCommGroup E
inst✝ : SMul 𝕜 E
p✝ : Seminorm 𝕜 E
x y : E
r✝ : ℝ
p q : Seminorm 𝕜 E
e : E
r : ℝ
⊢ closedBall (p ⊔ q) e r = closedBall p e r ∩ closedBall q e r
[PROOFSTEP]
simp_rw [closedBall, ← Set.setOf_and, coe_sup, Pi.sup_apply, sup_le_iff]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : SeminormedRing 𝕜
inst✝¹ : AddCommGroup E
inst✝ : SMul 𝕜 E
p✝ : Seminorm 𝕜 E
x y : E
r✝ : ℝ
p : ι → Seminorm 𝕜 E
s : Finset ι
H : Finset.Nonempty s
e : E
r : ℝ
⊢ ball (Finset.sup' s H p) e r = Finset.inf' s H fun i => ball (p i) e r
[PROOFSTEP]
induction' H using Finset.Nonempty.cons_induction with a a s ha hs ih
[GOAL]
case h₀
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : SeminormedRing 𝕜
inst✝¹ : AddCommGroup E
inst✝ : SMul 𝕜 E
p✝ : Seminorm 𝕜 E
x y : E
r✝ : ℝ
p : ι → Seminorm 𝕜 E
s : Finset ι
e : E
r : ℝ
a : ι
⊢ ball (Finset.sup' {a} (_ : Finset.Nonempty {a}) p) e r =
    Finset.inf' {a} (_ : Finset.Nonempty {a}) fun i => ball (p i) e r
[PROOFSTEP]
classical simp
[GOAL]
case h₀
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : SeminormedRing 𝕜
inst✝¹ : AddCommGroup E
inst✝ : SMul 𝕜 E
p✝ : Seminorm 𝕜 E
x y : E
r✝ : ℝ
p : ι → Seminorm 𝕜 E
s : Finset ι
e : E
r : ℝ
a : ι
⊢ ball (Finset.sup' {a} (_ : Finset.Nonempty {a}) p) e r =
    Finset.inf' {a} (_ : Finset.Nonempty {a}) fun i => ball (p i) e r
[PROOFSTEP]
simp
[GOAL]
case h₁
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : SeminormedRing 𝕜
inst✝¹ : AddCommGroup E
inst✝ : SMul 𝕜 E
p✝ : Seminorm 𝕜 E
x y : E
r✝ : ℝ
p : ι → Seminorm 𝕜 E
s✝ : Finset ι
e : E
r : ℝ
a : ι
s : Finset ι
ha : ¬a ∈ s
hs : Finset.Nonempty s
ih : ball (Finset.sup' s hs p) e r = Finset.inf' s hs fun i => ball (p i) e r
⊢ ball (Finset.sup' (Finset.cons a s ha) (_ : Finset.Nonempty (Finset.cons a s ha)) p) e r =
    Finset.inf' (Finset.cons a s ha) (_ : Finset.Nonempty (Finset.cons a s ha)) fun i => ball (p i) e r
[PROOFSTEP]
rw [Finset.sup'_cons hs, Finset.inf'_cons hs, ball_sup]
  -- Porting note: `rw` can't use `inf_eq_inter` here, but `simp` can?
[GOAL]
case h₁
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : SeminormedRing 𝕜
inst✝¹ : AddCommGroup E
inst✝ : SMul 𝕜 E
p✝ : Seminorm 𝕜 E
x y : E
r✝ : ℝ
p : ι → Seminorm 𝕜 E
s✝ : Finset ι
e : E
r : ℝ
a : ι
s : Finset ι
ha : ¬a ∈ s
hs : Finset.Nonempty s
ih : ball (Finset.sup' s hs p) e r = Finset.inf' s hs fun i => ball (p i) e r
⊢ ball (p a) e r ∩ ball (Finset.sup' s hs p) e r = ball (p a) e r ⊓ Finset.inf' s hs fun i => ball (p i) e r
[PROOFSTEP]
simp only [inf_eq_inter, ih]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : SeminormedRing 𝕜
inst✝¹ : AddCommGroup E
inst✝ : SMul 𝕜 E
p✝ : Seminorm 𝕜 E
x y : E
r✝ : ℝ
p : ι → Seminorm 𝕜 E
s : Finset ι
H : Finset.Nonempty s
e : E
r : ℝ
⊢ closedBall (Finset.sup' s H p) e r = Finset.inf' s H fun i => closedBall (p i) e r
[PROOFSTEP]
induction' H using Finset.Nonempty.cons_induction with a a s ha hs ih
[GOAL]
case h₀
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : SeminormedRing 𝕜
inst✝¹ : AddCommGroup E
inst✝ : SMul 𝕜 E
p✝ : Seminorm 𝕜 E
x y : E
r✝ : ℝ
p : ι → Seminorm 𝕜 E
s : Finset ι
e : E
r : ℝ
a : ι
⊢ closedBall (Finset.sup' {a} (_ : Finset.Nonempty {a}) p) e r =
    Finset.inf' {a} (_ : Finset.Nonempty {a}) fun i => closedBall (p i) e r
[PROOFSTEP]
classical simp
[GOAL]
case h₀
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : SeminormedRing 𝕜
inst✝¹ : AddCommGroup E
inst✝ : SMul 𝕜 E
p✝ : Seminorm 𝕜 E
x y : E
r✝ : ℝ
p : ι → Seminorm 𝕜 E
s : Finset ι
e : E
r : ℝ
a : ι
⊢ closedBall (Finset.sup' {a} (_ : Finset.Nonempty {a}) p) e r =
    Finset.inf' {a} (_ : Finset.Nonempty {a}) fun i => closedBall (p i) e r
[PROOFSTEP]
simp
[GOAL]
case h₁
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : SeminormedRing 𝕜
inst✝¹ : AddCommGroup E
inst✝ : SMul 𝕜 E
p✝ : Seminorm 𝕜 E
x y : E
r✝ : ℝ
p : ι → Seminorm 𝕜 E
s✝ : Finset ι
e : E
r : ℝ
a : ι
s : Finset ι
ha : ¬a ∈ s
hs : Finset.Nonempty s
ih : closedBall (Finset.sup' s hs p) e r = Finset.inf' s hs fun i => closedBall (p i) e r
⊢ closedBall (Finset.sup' (Finset.cons a s ha) (_ : Finset.Nonempty (Finset.cons a s ha)) p) e r =
    Finset.inf' (Finset.cons a s ha) (_ : Finset.Nonempty (Finset.cons a s ha)) fun i => closedBall (p i) e r
[PROOFSTEP]
rw [Finset.sup'_cons hs, Finset.inf'_cons hs, closedBall_sup]
  -- Porting note: `rw` can't use `inf_eq_inter` here, but `simp` can?
[GOAL]
case h₁
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : SeminormedRing 𝕜
inst✝¹ : AddCommGroup E
inst✝ : SMul 𝕜 E
p✝ : Seminorm 𝕜 E
x y : E
r✝ : ℝ
p : ι → Seminorm 𝕜 E
s✝ : Finset ι
e : E
r : ℝ
a : ι
s : Finset ι
ha : ¬a ∈ s
hs : Finset.Nonempty s
ih : closedBall (Finset.sup' s hs p) e r = Finset.inf' s hs fun i => closedBall (p i) e r
⊢ closedBall (p a) e r ∩ closedBall (Finset.sup' s hs p) e r =
    closedBall (p a) e r ⊓ Finset.inf' s hs fun i => closedBall (p i) e r
[PROOFSTEP]
simp only [inf_eq_inter, ih]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : SeminormedRing 𝕜
inst✝¹ : AddCommGroup E
inst✝ : SMul 𝕜 E
p✝ : Seminorm 𝕜 E
x y : E
r : ℝ
p : Seminorm 𝕜 E
r₁ r₂ : ℝ
x₁ x₂ : E
⊢ ball p x₁ r₁ + ball p x₂ r₂ ⊆ ball p (x₁ + x₂) (r₁ + r₂)
[PROOFSTEP]
rintro x ⟨y₁, y₂, hy₁, hy₂, rfl⟩
[GOAL]
case intro.intro.intro.intro
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : SeminormedRing 𝕜
inst✝¹ : AddCommGroup E
inst✝ : SMul 𝕜 E
p✝ : Seminorm 𝕜 E
x y : E
r : ℝ
p : Seminorm 𝕜 E
r₁ r₂ : ℝ
x₁ x₂ y₁ y₂ : E
hy₁ : y₁ ∈ ball p x₁ r₁
hy₂ : y₂ ∈ ball p x₂ r₂
⊢ (fun x x_1 => x + x_1) y₁ y₂ ∈ ball p (x₁ + x₂) (r₁ + r₂)
[PROOFSTEP]
rw [mem_ball, add_sub_add_comm]
[GOAL]
case intro.intro.intro.intro
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : SeminormedRing 𝕜
inst✝¹ : AddCommGroup E
inst✝ : SMul 𝕜 E
p✝ : Seminorm 𝕜 E
x y : E
r : ℝ
p : Seminorm 𝕜 E
r₁ r₂ : ℝ
x₁ x₂ y₁ y₂ : E
hy₁ : y₁ ∈ ball p x₁ r₁
hy₂ : y₂ ∈ ball p x₂ r₂
⊢ ↑p (y₁ - x₁ + (y₂ - x₂)) < r₁ + r₂
[PROOFSTEP]
exact (map_add_le_add p _ _).trans_lt (add_lt_add hy₁ hy₂)
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : SeminormedRing 𝕜
inst✝¹ : AddCommGroup E
inst✝ : SMul 𝕜 E
p✝ : Seminorm 𝕜 E
x y : E
r : ℝ
p : Seminorm 𝕜 E
r₁ r₂ : ℝ
x₁ x₂ : E
⊢ closedBall p x₁ r₁ + closedBall p x₂ r₂ ⊆ closedBall p (x₁ + x₂) (r₁ + r₂)
[PROOFSTEP]
rintro x ⟨y₁, y₂, hy₁, hy₂, rfl⟩
[GOAL]
case intro.intro.intro.intro
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : SeminormedRing 𝕜
inst✝¹ : AddCommGroup E
inst✝ : SMul 𝕜 E
p✝ : Seminorm 𝕜 E
x y : E
r : ℝ
p : Seminorm 𝕜 E
r₁ r₂ : ℝ
x₁ x₂ y₁ y₂ : E
hy₁ : y₁ ∈ closedBall p x₁ r₁
hy₂ : y₂ ∈ closedBall p x₂ r₂
⊢ (fun x x_1 => x + x_1) y₁ y₂ ∈ closedBall p (x₁ + x₂) (r₁ + r₂)
[PROOFSTEP]
rw [mem_closedBall, add_sub_add_comm]
[GOAL]
case intro.intro.intro.intro
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : SeminormedRing 𝕜
inst✝¹ : AddCommGroup E
inst✝ : SMul 𝕜 E
p✝ : Seminorm 𝕜 E
x y : E
r : ℝ
p : Seminorm 𝕜 E
r₁ r₂ : ℝ
x₁ x₂ y₁ y₂ : E
hy₁ : y₁ ∈ closedBall p x₁ r₁
hy₂ : y₂ ∈ closedBall p x₂ r₂
⊢ ↑p (y₁ - x₁ + (y₂ - x₂)) ≤ r₁ + r₂
[PROOFSTEP]
exact (map_add_le_add p _ _).trans (add_le_add hy₁ hy₂)
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : SeminormedRing 𝕜
inst✝¹ : AddCommGroup E
inst✝ : SMul 𝕜 E
p✝ : Seminorm 𝕜 E
x y✝ : E
r✝ : ℝ
p : Seminorm 𝕜 E
x₁ x₂ y : E
r : ℝ
⊢ x₁ - x₂ ∈ ball p y r ↔ x₁ ∈ ball p (x₂ + y) r
[PROOFSTEP]
simp_rw [mem_ball, sub_sub]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : SeminormedRing 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : SeminormedRing 𝕜₂
inst✝² : AddCommGroup E₂
inst✝¹ : Module 𝕜₂ E₂
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝ : RingHomIsometric σ₁₂
p : Seminorm 𝕜₂ E₂
f : E →ₛₗ[σ₁₂] E₂
x : E
r : ℝ
⊢ ball (comp p f) x r = ↑f ⁻¹' ball p (↑f x) r
[PROOFSTEP]
ext
[GOAL]
case h
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : SeminormedRing 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : SeminormedRing 𝕜₂
inst✝² : AddCommGroup E₂
inst✝¹ : Module 𝕜₂ E₂
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝ : RingHomIsometric σ₁₂
p : Seminorm 𝕜₂ E₂
f : E →ₛₗ[σ₁₂] E₂
x : E
r : ℝ
x✝ : E
⊢ x✝ ∈ ball (comp p f) x r ↔ x✝ ∈ ↑f ⁻¹' ball p (↑f x) r
[PROOFSTEP]
simp_rw [ball, mem_preimage, comp_apply, Set.mem_setOf_eq, map_sub]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : SeminormedRing 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : SeminormedRing 𝕜₂
inst✝² : AddCommGroup E₂
inst✝¹ : Module 𝕜₂ E₂
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝ : RingHomIsometric σ₁₂
p : Seminorm 𝕜₂ E₂
f : E →ₛₗ[σ₁₂] E₂
x : E
r : ℝ
⊢ closedBall (comp p f) x r = ↑f ⁻¹' closedBall p (↑f x) r
[PROOFSTEP]
ext
[GOAL]
case h
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : SeminormedRing 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : SeminormedRing 𝕜₂
inst✝² : AddCommGroup E₂
inst✝¹ : Module 𝕜₂ E₂
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝ : RingHomIsometric σ₁₂
p : Seminorm 𝕜₂ E₂
f : E →ₛₗ[σ₁₂] E₂
x : E
r : ℝ
x✝ : E
⊢ x✝ ∈ closedBall (comp p f) x r ↔ x✝ ∈ ↑f ⁻¹' closedBall p (↑f x) r
[PROOFSTEP]
simp_rw [closedBall, mem_preimage, comp_apply, Set.mem_setOf_eq, map_sub]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : SeminormedRing 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : SeminormedRing 𝕜₂
inst✝² : AddCommGroup E₂
inst✝¹ : Module 𝕜₂ E₂
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝ : RingHomIsometric σ₁₂
p : Seminorm 𝕜 E
r : ℝ
⊢ ↑p ⁻¹' Metric.ball 0 r = {x | ↑p x < r}
[PROOFSTEP]
ext x
[GOAL]
case h
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : SeminormedRing 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : SeminormedRing 𝕜₂
inst✝² : AddCommGroup E₂
inst✝¹ : Module 𝕜₂ E₂
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝ : RingHomIsometric σ₁₂
p : Seminorm 𝕜 E
r : ℝ
x : E
⊢ x ∈ ↑p ⁻¹' Metric.ball 0 r ↔ x ∈ {x | ↑p x < r}
[PROOFSTEP]
simp only [mem_setOf, mem_preimage, mem_ball_zero_iff, Real.norm_of_nonneg (map_nonneg p _)]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : SeminormedRing 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : SeminormedRing 𝕜₂
inst✝² : AddCommGroup E₂
inst✝¹ : Module 𝕜₂ E₂
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝ : RingHomIsometric σ₁₂
p : Seminorm 𝕜 E
r : ℝ
⊢ ↑p ⁻¹' Metric.closedBall 0 r = {x | ↑p x ≤ r}
[PROOFSTEP]
ext x
[GOAL]
case h
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : SeminormedRing 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : SeminormedRing 𝕜₂
inst✝² : AddCommGroup E₂
inst✝¹ : Module 𝕜₂ E₂
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝ : RingHomIsometric σ₁₂
p : Seminorm 𝕜 E
r : ℝ
x : E
⊢ x ∈ ↑p ⁻¹' Metric.closedBall 0 r ↔ x ∈ {x | ↑p x ≤ r}
[PROOFSTEP]
simp only [mem_setOf, mem_preimage, mem_closedBall_zero_iff, Real.norm_of_nonneg (map_nonneg p _)]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : SeminormedRing 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : SeminormedRing 𝕜₂
inst✝² : AddCommGroup E₂
inst✝¹ : Module 𝕜₂ E₂
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝ : RingHomIsometric σ₁₂
p : Seminorm 𝕜 E
r : ℝ
⊢ ball p 0 r = ↑p ⁻¹' Metric.ball 0 r
[PROOFSTEP]
rw [ball_zero_eq, preimage_metric_ball]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : SeminormedRing 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : SeminormedRing 𝕜₂
inst✝² : AddCommGroup E₂
inst✝¹ : Module 𝕜₂ E₂
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝ : RingHomIsometric σ₁₂
p : Seminorm 𝕜 E
r : ℝ
⊢ closedBall p 0 r = ↑p ⁻¹' Metric.closedBall 0 r
[PROOFSTEP]
rw [closedBall_zero_eq, preimage_metric_closedBall]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : SeminormedRing 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : SeminormedRing 𝕜₂
inst✝² : AddCommGroup E₂
inst✝¹ : Module 𝕜₂ E₂
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝ : RingHomIsometric σ₁₂
p : Seminorm 𝕜 E
r : ℝ
⊢ Balanced 𝕜 (ball p 0 r)
[PROOFSTEP]
rintro a ha x ⟨y, hy, hx⟩
[GOAL]
case intro.intro
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : SeminormedRing 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : SeminormedRing 𝕜₂
inst✝² : AddCommGroup E₂
inst✝¹ : Module 𝕜₂ E₂
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝ : RingHomIsometric σ₁₂
p : Seminorm 𝕜 E
r : ℝ
a : 𝕜
ha : ‖a‖ ≤ 1
x y : E
hy : y ∈ ball p 0 r
hx : (fun x => a • x) y = x
⊢ x ∈ ball p 0 r
[PROOFSTEP]
rw [mem_ball_zero, ← hx, map_smul_eq_mul]
[GOAL]
case intro.intro
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : SeminormedRing 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : SeminormedRing 𝕜₂
inst✝² : AddCommGroup E₂
inst✝¹ : Module 𝕜₂ E₂
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝ : RingHomIsometric σ₁₂
p : Seminorm 𝕜 E
r : ℝ
a : 𝕜
ha : ‖a‖ ≤ 1
x y : E
hy : y ∈ ball p 0 r
hx : (fun x => a • x) y = x
⊢ ‖a‖ * ↑p y < r
[PROOFSTEP]
calc
  _ ≤ p y := mul_le_of_le_one_left (map_nonneg p _) ha
  _ < r := by rwa [mem_ball_zero] at hy
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : SeminormedRing 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : SeminormedRing 𝕜₂
inst✝² : AddCommGroup E₂
inst✝¹ : Module 𝕜₂ E₂
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝ : RingHomIsometric σ₁₂
p : Seminorm 𝕜 E
r : ℝ
a : 𝕜
ha : ‖a‖ ≤ 1
x y : E
hy : y ∈ ball p 0 r
hx : (fun x => a • x) y = x
⊢ ↑p y < r
[PROOFSTEP]
rwa [mem_ball_zero] at hy
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : SeminormedRing 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : SeminormedRing 𝕜₂
inst✝² : AddCommGroup E₂
inst✝¹ : Module 𝕜₂ E₂
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝ : RingHomIsometric σ₁₂
p : Seminorm 𝕜 E
r : ℝ
⊢ Balanced 𝕜 (closedBall p 0 r)
[PROOFSTEP]
rintro a ha x ⟨y, hy, hx⟩
[GOAL]
case intro.intro
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : SeminormedRing 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : SeminormedRing 𝕜₂
inst✝² : AddCommGroup E₂
inst✝¹ : Module 𝕜₂ E₂
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝ : RingHomIsometric σ₁₂
p : Seminorm 𝕜 E
r : ℝ
a : 𝕜
ha : ‖a‖ ≤ 1
x y : E
hy : y ∈ closedBall p 0 r
hx : (fun x => a • x) y = x
⊢ x ∈ closedBall p 0 r
[PROOFSTEP]
rw [mem_closedBall_zero, ← hx, map_smul_eq_mul]
[GOAL]
case intro.intro
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : SeminormedRing 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : SeminormedRing 𝕜₂
inst✝² : AddCommGroup E₂
inst✝¹ : Module 𝕜₂ E₂
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝ : RingHomIsometric σ₁₂
p : Seminorm 𝕜 E
r : ℝ
a : 𝕜
ha : ‖a‖ ≤ 1
x y : E
hy : y ∈ closedBall p 0 r
hx : (fun x => a • x) y = x
⊢ ‖a‖ * ↑p y ≤ r
[PROOFSTEP]
calc
  _ ≤ p y := mul_le_of_le_one_left (map_nonneg p _) ha
  _ ≤ r := by rwa [mem_closedBall_zero] at hy
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : SeminormedRing 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : SeminormedRing 𝕜₂
inst✝² : AddCommGroup E₂
inst✝¹ : Module 𝕜₂ E₂
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝ : RingHomIsometric σ₁₂
p : Seminorm 𝕜 E
r : ℝ
a : 𝕜
ha : ‖a‖ ≤ 1
x y : E
hy : y ∈ closedBall p 0 r
hx : (fun x => a • x) y = x
⊢ ↑p y ≤ r
[PROOFSTEP]
rwa [mem_closedBall_zero] at hy
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : SeminormedRing 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : SeminormedRing 𝕜₂
inst✝² : AddCommGroup E₂
inst✝¹ : Module 𝕜₂ E₂
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝ : RingHomIsometric σ₁₂
p✝ : Seminorm 𝕜 E
p : ι → Seminorm 𝕜 E
s : Finset ι
x : E
r : ℝ
hr : 0 < r
⊢ ball (Finset.sup s p) x r = ⋂ (i : ι) (_ : i ∈ s), ball (p i) x r
[PROOFSTEP]
lift r to NNReal using hr.le
[GOAL]
case intro
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : SeminormedRing 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : SeminormedRing 𝕜₂
inst✝² : AddCommGroup E₂
inst✝¹ : Module 𝕜₂ E₂
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝ : RingHomIsometric σ₁₂
p✝ : Seminorm 𝕜 E
p : ι → Seminorm 𝕜 E
s : Finset ι
x : E
r : ℝ≥0
hr : 0 < ↑r
⊢ ball (Finset.sup s p) x ↑r = ⋂ (i : ι) (_ : i ∈ s), ball (p i) x ↑r
[PROOFSTEP]
simp_rw [ball, iInter_setOf, finset_sup_apply, NNReal.coe_lt_coe, Finset.sup_lt_iff (show ⊥ < r from hr), ←
  NNReal.coe_lt_coe, coe_mk]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : SeminormedRing 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : SeminormedRing 𝕜₂
inst✝² : AddCommGroup E₂
inst✝¹ : Module 𝕜₂ E₂
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝ : RingHomIsometric σ₁₂
p✝ : Seminorm 𝕜 E
p : ι → Seminorm 𝕜 E
s : Finset ι
x : E
r : ℝ
hr : 0 ≤ r
⊢ closedBall (Finset.sup s p) x r = ⋂ (i : ι) (_ : i ∈ s), closedBall (p i) x r
[PROOFSTEP]
lift r to NNReal using hr
[GOAL]
case intro
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : SeminormedRing 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : SeminormedRing 𝕜₂
inst✝² : AddCommGroup E₂
inst✝¹ : Module 𝕜₂ E₂
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝ : RingHomIsometric σ₁₂
p✝ : Seminorm 𝕜 E
p : ι → Seminorm 𝕜 E
s : Finset ι
x : E
r : ℝ≥0
⊢ closedBall (Finset.sup s p) x ↑r = ⋂ (i : ι) (_ : i ∈ s), closedBall (p i) x ↑r
[PROOFSTEP]
simp_rw [closedBall, iInter_setOf, finset_sup_apply, NNReal.coe_le_coe, Finset.sup_le_iff, ← NNReal.coe_le_coe, coe_mk]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : SeminormedRing 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : SeminormedRing 𝕜₂
inst✝² : AddCommGroup E₂
inst✝¹ : Module 𝕜₂ E₂
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝ : RingHomIsometric σ₁₂
p✝ : Seminorm 𝕜 E
p : ι → Seminorm 𝕜 E
s : Finset ι
x : E
r : ℝ
hr : 0 < r
⊢ ball (Finset.sup s p) x r = Finset.inf s fun i => ball (p i) x r
[PROOFSTEP]
rw [Finset.inf_eq_iInf]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : SeminormedRing 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : SeminormedRing 𝕜₂
inst✝² : AddCommGroup E₂
inst✝¹ : Module 𝕜₂ E₂
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝ : RingHomIsometric σ₁₂
p✝ : Seminorm 𝕜 E
p : ι → Seminorm 𝕜 E
s : Finset ι
x : E
r : ℝ
hr : 0 < r
⊢ ball (Finset.sup s p) x r = ⨅ (a : ι) (_ : a ∈ s), ball (p a) x r
[PROOFSTEP]
exact ball_finset_sup_eq_iInter _ _ _ hr
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : SeminormedRing 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : SeminormedRing 𝕜₂
inst✝² : AddCommGroup E₂
inst✝¹ : Module 𝕜₂ E₂
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝ : RingHomIsometric σ₁₂
p✝ : Seminorm 𝕜 E
p : ι → Seminorm 𝕜 E
s : Finset ι
x : E
r : ℝ
hr : 0 ≤ r
⊢ closedBall (Finset.sup s p) x r = Finset.inf s fun i => closedBall (p i) x r
[PROOFSTEP]
rw [Finset.inf_eq_iInf]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : SeminormedRing 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : SeminormedRing 𝕜₂
inst✝² : AddCommGroup E₂
inst✝¹ : Module 𝕜₂ E₂
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝ : RingHomIsometric σ₁₂
p✝ : Seminorm 𝕜 E
p : ι → Seminorm 𝕜 E
s : Finset ι
x : E
r : ℝ
hr : 0 ≤ r
⊢ closedBall (Finset.sup s p) x r = ⨅ (a : ι) (_ : a ∈ s), closedBall (p a) x r
[PROOFSTEP]
exact closedBall_finset_sup_eq_iInter _ _ _ hr
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : SeminormedRing 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : SeminormedRing 𝕜₂
inst✝² : AddCommGroup E₂
inst✝¹ : Module 𝕜₂ E₂
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝ : RingHomIsometric σ₁₂
p✝ p : Seminorm 𝕜 E
r₁ r₂ : ℝ
⊢ Metric.ball 0 r₁ • ball p 0 r₂ ⊆ ball p 0 (r₁ * r₂)
[PROOFSTEP]
rw [Set.subset_def]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : SeminormedRing 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : SeminormedRing 𝕜₂
inst✝² : AddCommGroup E₂
inst✝¹ : Module 𝕜₂ E₂
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝ : RingHomIsometric σ₁₂
p✝ p : Seminorm 𝕜 E
r₁ r₂ : ℝ
⊢ ∀ (x : E), x ∈ Metric.ball 0 r₁ • ball p 0 r₂ → x ∈ ball p 0 (r₁ * r₂)
[PROOFSTEP]
intro x hx
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : SeminormedRing 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : SeminormedRing 𝕜₂
inst✝² : AddCommGroup E₂
inst✝¹ : Module 𝕜₂ E₂
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝ : RingHomIsometric σ₁₂
p✝ p : Seminorm 𝕜 E
r₁ r₂ : ℝ
x : E
hx : x ∈ Metric.ball 0 r₁ • ball p 0 r₂
⊢ x ∈ ball p 0 (r₁ * r₂)
[PROOFSTEP]
rw [Set.mem_smul] at hx
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : SeminormedRing 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : SeminormedRing 𝕜₂
inst✝² : AddCommGroup E₂
inst✝¹ : Module 𝕜₂ E₂
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝ : RingHomIsometric σ₁₂
p✝ p : Seminorm 𝕜 E
r₁ r₂ : ℝ
x : E
hx : ∃ x_1 y, x_1 ∈ Metric.ball 0 r₁ ∧ y ∈ ball p 0 r₂ ∧ x_1 • y = x
⊢ x ∈ ball p 0 (r₁ * r₂)
[PROOFSTEP]
rcases hx with ⟨a, y, ha, hy, hx⟩
[GOAL]
case intro.intro.intro.intro
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : SeminormedRing 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : SeminormedRing 𝕜₂
inst✝² : AddCommGroup E₂
inst✝¹ : Module 𝕜₂ E₂
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝ : RingHomIsometric σ₁₂
p✝ p : Seminorm 𝕜 E
r₁ r₂ : ℝ
x : E
a : 𝕜
y : E
ha : a ∈ Metric.ball 0 r₁
hy : y ∈ ball p 0 r₂
hx : a • y = x
⊢ x ∈ ball p 0 (r₁ * r₂)
[PROOFSTEP]
rw [← hx, mem_ball_zero, map_smul_eq_mul]
[GOAL]
case intro.intro.intro.intro
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : SeminormedRing 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : SeminormedRing 𝕜₂
inst✝² : AddCommGroup E₂
inst✝¹ : Module 𝕜₂ E₂
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝ : RingHomIsometric σ₁₂
p✝ p : Seminorm 𝕜 E
r₁ r₂ : ℝ
x : E
a : 𝕜
y : E
ha : a ∈ Metric.ball 0 r₁
hy : y ∈ ball p 0 r₂
hx : a • y = x
⊢ ‖a‖ * ↑p y < r₁ * r₂
[PROOFSTEP]
gcongr
[GOAL]
case intro.intro.intro.intro.a
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : SeminormedRing 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : SeminormedRing 𝕜₂
inst✝² : AddCommGroup E₂
inst✝¹ : Module 𝕜₂ E₂
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝ : RingHomIsometric σ₁₂
p✝ p : Seminorm 𝕜 E
r₁ r₂ : ℝ
x : E
a : 𝕜
y : E
ha : a ∈ Metric.ball 0 r₁
hy : y ∈ ball p 0 r₂
hx : a • y = x
⊢ ‖a‖ < r₁
[PROOFSTEP]
exact mem_ball_zero_iff.mp ha
[GOAL]
case intro.intro.intro.intro.a
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : SeminormedRing 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : SeminormedRing 𝕜₂
inst✝² : AddCommGroup E₂
inst✝¹ : Module 𝕜₂ E₂
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝ : RingHomIsometric σ₁₂
p✝ p : Seminorm 𝕜 E
r₁ r₂ : ℝ
x : E
a : 𝕜
y : E
ha : a ∈ Metric.ball 0 r₁
hy : y ∈ ball p 0 r₂
hx : a • y = x
⊢ ↑p y < r₂
[PROOFSTEP]
exact p.mem_ball_zero.mp hy
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : SeminormedRing 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : SeminormedRing 𝕜₂
inst✝² : AddCommGroup E₂
inst✝¹ : Module 𝕜₂ E₂
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝ : RingHomIsometric σ₁₂
p✝ p : Seminorm 𝕜 E
r₁ r₂ : ℝ
⊢ Metric.closedBall 0 r₁ • closedBall p 0 r₂ ⊆ closedBall p 0 (r₁ * r₂)
[PROOFSTEP]
rw [Set.subset_def]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : SeminormedRing 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : SeminormedRing 𝕜₂
inst✝² : AddCommGroup E₂
inst✝¹ : Module 𝕜₂ E₂
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝ : RingHomIsometric σ₁₂
p✝ p : Seminorm 𝕜 E
r₁ r₂ : ℝ
⊢ ∀ (x : E), x ∈ Metric.closedBall 0 r₁ • closedBall p 0 r₂ → x ∈ closedBall p 0 (r₁ * r₂)
[PROOFSTEP]
intro x hx
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : SeminormedRing 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : SeminormedRing 𝕜₂
inst✝² : AddCommGroup E₂
inst✝¹ : Module 𝕜₂ E₂
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝ : RingHomIsometric σ₁₂
p✝ p : Seminorm 𝕜 E
r₁ r₂ : ℝ
x : E
hx : x ∈ Metric.closedBall 0 r₁ • closedBall p 0 r₂
⊢ x ∈ closedBall p 0 (r₁ * r₂)
[PROOFSTEP]
rw [Set.mem_smul] at hx
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : SeminormedRing 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : SeminormedRing 𝕜₂
inst✝² : AddCommGroup E₂
inst✝¹ : Module 𝕜₂ E₂
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝ : RingHomIsometric σ₁₂
p✝ p : Seminorm 𝕜 E
r₁ r₂ : ℝ
x : E
hx : ∃ x_1 y, x_1 ∈ Metric.closedBall 0 r₁ ∧ y ∈ closedBall p 0 r₂ ∧ x_1 • y = x
⊢ x ∈ closedBall p 0 (r₁ * r₂)
[PROOFSTEP]
rcases hx with ⟨a, y, ha, hy, hx⟩
[GOAL]
case intro.intro.intro.intro
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : SeminormedRing 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : SeminormedRing 𝕜₂
inst✝² : AddCommGroup E₂
inst✝¹ : Module 𝕜₂ E₂
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝ : RingHomIsometric σ₁₂
p✝ p : Seminorm 𝕜 E
r₁ r₂ : ℝ
x : E
a : 𝕜
y : E
ha : a ∈ Metric.closedBall 0 r₁
hy : y ∈ closedBall p 0 r₂
hx : a • y = x
⊢ x ∈ closedBall p 0 (r₁ * r₂)
[PROOFSTEP]
rw [← hx, mem_closedBall_zero, map_smul_eq_mul]
[GOAL]
case intro.intro.intro.intro
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : SeminormedRing 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : SeminormedRing 𝕜₂
inst✝² : AddCommGroup E₂
inst✝¹ : Module 𝕜₂ E₂
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝ : RingHomIsometric σ₁₂
p✝ p : Seminorm 𝕜 E
r₁ r₂ : ℝ
x : E
a : 𝕜
y : E
ha : a ∈ Metric.closedBall 0 r₁
hy : y ∈ closedBall p 0 r₂
hx : a • y = x
⊢ ‖a‖ * ↑p y ≤ r₁ * r₂
[PROOFSTEP]
rw [mem_closedBall_zero_iff] at ha
[GOAL]
case intro.intro.intro.intro
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : SeminormedRing 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : SeminormedRing 𝕜₂
inst✝² : AddCommGroup E₂
inst✝¹ : Module 𝕜₂ E₂
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝ : RingHomIsometric σ₁₂
p✝ p : Seminorm 𝕜 E
r₁ r₂ : ℝ
x : E
a : 𝕜
y : E
ha : ‖a‖ ≤ r₁
hy : y ∈ closedBall p 0 r₂
hx : a • y = x
⊢ ‖a‖ * ↑p y ≤ r₁ * r₂
[PROOFSTEP]
gcongr
[GOAL]
case intro.intro.intro.intro.b0
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : SeminormedRing 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : SeminormedRing 𝕜₂
inst✝² : AddCommGroup E₂
inst✝¹ : Module 𝕜₂ E₂
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝ : RingHomIsometric σ₁₂
p✝ p : Seminorm 𝕜 E
r₁ r₂ : ℝ
x : E
a : 𝕜
y : E
ha : ‖a‖ ≤ r₁
hy : y ∈ closedBall p 0 r₂
hx : a • y = x
⊢ 0 ≤ r₁
[PROOFSTEP]
exact (norm_nonneg a).trans ha
[GOAL]
case intro.intro.intro.intro.h₂
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : SeminormedRing 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : SeminormedRing 𝕜₂
inst✝² : AddCommGroup E₂
inst✝¹ : Module 𝕜₂ E₂
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝ : RingHomIsometric σ₁₂
p✝ p : Seminorm 𝕜 E
r₁ r₂ : ℝ
x : E
a : 𝕜
y : E
ha : ‖a‖ ≤ r₁
hy : y ∈ closedBall p 0 r₂
hx : a • y = x
⊢ ↑p y ≤ r₂
[PROOFSTEP]
exact p.mem_closedBall_zero.mp hy
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : SeminormedRing 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : SeminormedRing 𝕜₂
inst✝² : AddCommGroup E₂
inst✝¹ : Module 𝕜₂ E₂
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝ : RingHomIsometric σ₁₂
p✝ p : Seminorm 𝕜 E
x : E
r : ℝ
hr : r ≤ 0
⊢ ball p x r = ∅
[PROOFSTEP]
ext
[GOAL]
case h
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : SeminormedRing 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : SeminormedRing 𝕜₂
inst✝² : AddCommGroup E₂
inst✝¹ : Module 𝕜₂ E₂
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝ : RingHomIsometric σ₁₂
p✝ p : Seminorm 𝕜 E
x : E
r : ℝ
hr : r ≤ 0
x✝ : E
⊢ x✝ ∈ ball p x r ↔ x✝ ∈ ∅
[PROOFSTEP]
rw [Seminorm.mem_ball, Set.mem_empty_iff_false, iff_false_iff, not_lt]
[GOAL]
case h
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : SeminormedRing 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : SeminormedRing 𝕜₂
inst✝² : AddCommGroup E₂
inst✝¹ : Module 𝕜₂ E₂
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝ : RingHomIsometric σ₁₂
p✝ p : Seminorm 𝕜 E
x : E
r : ℝ
hr : r ≤ 0
x✝ : E
⊢ r ≤ ↑p (x✝ - x)
[PROOFSTEP]
exact hr.trans (map_nonneg p _)
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : SeminormedRing 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : SeminormedRing 𝕜₂
inst✝² : AddCommGroup E₂
inst✝¹ : Module 𝕜₂ E₂
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝ : RingHomIsometric σ₁₂
p✝ p : Seminorm 𝕜 E
x : E
r : ℝ
hr : r < 0
⊢ closedBall p x r = ∅
[PROOFSTEP]
ext
[GOAL]
case h
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : SeminormedRing 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : SeminormedRing 𝕜₂
inst✝² : AddCommGroup E₂
inst✝¹ : Module 𝕜₂ E₂
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝ : RingHomIsometric σ₁₂
p✝ p : Seminorm 𝕜 E
x : E
r : ℝ
hr : r < 0
x✝ : E
⊢ x✝ ∈ closedBall p x r ↔ x✝ ∈ ∅
[PROOFSTEP]
rw [Seminorm.mem_closedBall, Set.mem_empty_iff_false, iff_false_iff, not_le]
[GOAL]
case h
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : SeminormedRing 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : SeminormedRing 𝕜₂
inst✝² : AddCommGroup E₂
inst✝¹ : Module 𝕜₂ E₂
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝ : RingHomIsometric σ₁₂
p✝ p : Seminorm 𝕜 E
x : E
r : ℝ
hr : r < 0
x✝ : E
⊢ r < ↑p (x✝ - x)
[PROOFSTEP]
exact hr.trans_le (map_nonneg _ _)
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : SeminormedRing 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : SeminormedRing 𝕜₂
inst✝² : AddCommGroup E₂
inst✝¹ : Module 𝕜₂ E₂
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝ : RingHomIsometric σ₁₂
p : Seminorm 𝕜 E
x : E
r : ℝ
hx : x ∈ ball p 0 r
⊢ -x ∈ ball p 0 r
[PROOFSTEP]
simpa only [mem_ball_zero, map_neg_eq_map] using hx
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : SeminormedRing 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : SeminormedRing 𝕜₂
inst✝² : AddCommGroup E₂
inst✝¹ : Module 𝕜₂ E₂
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝ : RingHomIsometric σ₁₂
p✝ p : Seminorm 𝕜 E
r : ℝ
x : E
⊢ -ball p x r = ball p (-x) r
[PROOFSTEP]
ext
[GOAL]
case h
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : SeminormedRing 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : SeminormedRing 𝕜₂
inst✝² : AddCommGroup E₂
inst✝¹ : Module 𝕜₂ E₂
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝ : RingHomIsometric σ₁₂
p✝ p : Seminorm 𝕜 E
r : ℝ
x x✝ : E
⊢ x✝ ∈ -ball p x r ↔ x✝ ∈ ball p (-x) r
[PROOFSTEP]
rw [Set.mem_neg, mem_ball, mem_ball, ← neg_add', sub_neg_eq_add, map_neg_eq_map]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ : Seminorm 𝕜 E
A B : Set E
a : 𝕜
r✝ : ℝ
x : E
p : ι → Seminorm 𝕜 E
hp : BddAbove (range p)
e : E
r : ℝ
hr : 0 < r
⊢ closedBall (⨆ (i : ι), p i) e r = ⋂ (i : ι), closedBall (p i) e r
[PROOFSTEP]
cases isEmpty_or_nonempty ι
[GOAL]
case inl
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ : Seminorm 𝕜 E
A B : Set E
a : 𝕜
r✝ : ℝ
x : E
p : ι → Seminorm 𝕜 E
hp : BddAbove (range p)
e : E
r : ℝ
hr : 0 < r
h✝ : IsEmpty ι
⊢ closedBall (⨆ (i : ι), p i) e r = ⋂ (i : ι), closedBall (p i) e r
[PROOFSTEP]
rw [iSup_of_empty', iInter_of_empty, Seminorm.sSup_empty]
[GOAL]
case inl
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ : Seminorm 𝕜 E
A B : Set E
a : 𝕜
r✝ : ℝ
x : E
p : ι → Seminorm 𝕜 E
hp : BddAbove (range p)
e : E
r : ℝ
hr : 0 < r
h✝ : IsEmpty ι
⊢ closedBall ⊥ e r = univ
[PROOFSTEP]
exact closedBall_bot _ hr
[GOAL]
case inr
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ : Seminorm 𝕜 E
A B : Set E
a : 𝕜
r✝ : ℝ
x : E
p : ι → Seminorm 𝕜 E
hp : BddAbove (range p)
e : E
r : ℝ
hr : 0 < r
h✝ : Nonempty ι
⊢ closedBall (⨆ (i : ι), p i) e r = ⋂ (i : ι), closedBall (p i) e r
[PROOFSTEP]
ext x
[GOAL]
case inr.h
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ : Seminorm 𝕜 E
A B : Set E
a : 𝕜
r✝ : ℝ
x✝ : E
p : ι → Seminorm 𝕜 E
hp : BddAbove (range p)
e : E
r : ℝ
hr : 0 < r
h✝ : Nonempty ι
x : E
⊢ x ∈ closedBall (⨆ (i : ι), p i) e r ↔ x ∈ ⋂ (i : ι), closedBall (p i) e r
[PROOFSTEP]
have := Seminorm.bddAbove_range_iff.mp hp (x - e)
[GOAL]
case inr.h
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ : Seminorm 𝕜 E
A B : Set E
a : 𝕜
r✝ : ℝ
x✝ : E
p : ι → Seminorm 𝕜 E
hp : BddAbove (range p)
e : E
r : ℝ
hr : 0 < r
h✝ : Nonempty ι
x : E
this : BddAbove (range fun i => ↑(p i) (x - e))
⊢ x ∈ closedBall (⨆ (i : ι), p i) e r ↔ x ∈ ⋂ (i : ι), closedBall (p i) e r
[PROOFSTEP]
simp only [mem_closedBall, mem_iInter, Seminorm.iSup_apply hp, ciSup_le_iff this]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ : Seminorm 𝕜 E
A B : Set E
a : 𝕜
r✝ : ℝ
x : E
p : Seminorm 𝕜 E
k : 𝕜
r : ℝ
⊢ ball p 0 (‖k‖ * r) ⊆ k • ball p 0 r
[PROOFSTEP]
rcases eq_or_ne k 0 with (rfl | hk)
[GOAL]
case inl
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ : Seminorm 𝕜 E
A B : Set E
a : 𝕜
r✝ : ℝ
x : E
p : Seminorm 𝕜 E
r : ℝ
⊢ ball p 0 (‖0‖ * r) ⊆ 0 • ball p 0 r
[PROOFSTEP]
rw [norm_zero, zero_mul, ball_eq_emptyset _ le_rfl]
[GOAL]
case inl
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ : Seminorm 𝕜 E
A B : Set E
a : 𝕜
r✝ : ℝ
x : E
p : Seminorm 𝕜 E
r : ℝ
⊢ ∅ ⊆ 0 • ball p 0 r
[PROOFSTEP]
exact empty_subset _
[GOAL]
case inr
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ : Seminorm 𝕜 E
A B : Set E
a : 𝕜
r✝ : ℝ
x : E
p : Seminorm 𝕜 E
k : 𝕜
r : ℝ
hk : k ≠ 0
⊢ ball p 0 (‖k‖ * r) ⊆ k • ball p 0 r
[PROOFSTEP]
intro x
[GOAL]
case inr
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ : Seminorm 𝕜 E
A B : Set E
a : 𝕜
r✝ : ℝ
x✝ : E
p : Seminorm 𝕜 E
k : 𝕜
r : ℝ
hk : k ≠ 0
x : E
⊢ x ∈ ball p 0 (‖k‖ * r) → x ∈ k • ball p 0 r
[PROOFSTEP]
rw [Set.mem_smul_set, Seminorm.mem_ball_zero]
[GOAL]
case inr
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ : Seminorm 𝕜 E
A B : Set E
a : 𝕜
r✝ : ℝ
x✝ : E
p : Seminorm 𝕜 E
k : 𝕜
r : ℝ
hk : k ≠ 0
x : E
⊢ ↑p x < ‖k‖ * r → ∃ y, y ∈ ball p 0 r ∧ k • y = x
[PROOFSTEP]
refine' fun hx => ⟨k⁻¹ • x, _, _⟩
[GOAL]
case inr.refine'_1
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ : Seminorm 𝕜 E
A B : Set E
a : 𝕜
r✝ : ℝ
x✝ : E
p : Seminorm 𝕜 E
k : 𝕜
r : ℝ
hk : k ≠ 0
x : E
hx : ↑p x < ‖k‖ * r
⊢ k⁻¹ • x ∈ ball p 0 r
[PROOFSTEP]
rwa [Seminorm.mem_ball_zero, map_smul_eq_mul, norm_inv, ← mul_lt_mul_left <| norm_pos_iff.mpr hk, ← mul_assoc, ←
  div_eq_mul_inv ‖k‖ ‖k‖, div_self (ne_of_gt <| norm_pos_iff.mpr hk), one_mul]
[GOAL]
case inr.refine'_2
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ : Seminorm 𝕜 E
A B : Set E
a : 𝕜
r✝ : ℝ
x✝ : E
p : Seminorm 𝕜 E
k : 𝕜
r : ℝ
hk : k ≠ 0
x : E
hx : ↑p x < ‖k‖ * r
⊢ k • k⁻¹ • x = x
[PROOFSTEP]
rw [← smul_assoc, smul_eq_mul, ← div_eq_mul_inv, div_self hk, one_smul]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ : Seminorm 𝕜 E
A B : Set E
a : 𝕜
r✝ : ℝ
x : E
p : Seminorm 𝕜 E
k : 𝕜
r : ℝ
hk : k ≠ 0
⊢ k • ball p 0 r = ball p 0 (‖k‖ * r)
[PROOFSTEP]
ext
[GOAL]
case h
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ : Seminorm 𝕜 E
A B : Set E
a : 𝕜
r✝ : ℝ
x : E
p : Seminorm 𝕜 E
k : 𝕜
r : ℝ
hk : k ≠ 0
x✝ : E
⊢ x✝ ∈ k • ball p 0 r ↔ x✝ ∈ ball p 0 (‖k‖ * r)
[PROOFSTEP]
rw [mem_smul_set_iff_inv_smul_mem₀ hk, p.mem_ball_zero, p.mem_ball_zero, map_smul_eq_mul, norm_inv, ← div_eq_inv_mul,
  div_lt_iff (norm_pos_iff.2 hk), mul_comm]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ : Seminorm 𝕜 E
A B : Set E
a : 𝕜
r✝ : ℝ
x : E
p : Seminorm 𝕜 E
k : 𝕜
r : ℝ
⊢ k • closedBall p 0 r ⊆ closedBall p 0 (‖k‖ * r)
[PROOFSTEP]
rintro x ⟨y, hy, h⟩
[GOAL]
case intro.intro
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ : Seminorm 𝕜 E
A B : Set E
a : 𝕜
r✝ : ℝ
x✝ : E
p : Seminorm 𝕜 E
k : 𝕜
r : ℝ
x y : E
hy : y ∈ closedBall p 0 r
h : (fun x => k • x) y = x
⊢ x ∈ closedBall p 0 (‖k‖ * r)
[PROOFSTEP]
rw [Seminorm.mem_closedBall_zero, ← h, map_smul_eq_mul]
[GOAL]
case intro.intro
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ : Seminorm 𝕜 E
A B : Set E
a : 𝕜
r✝ : ℝ
x✝ : E
p : Seminorm 𝕜 E
k : 𝕜
r : ℝ
x y : E
hy : y ∈ closedBall p 0 r
h : (fun x => k • x) y = x
⊢ ‖k‖ * ↑p y ≤ ‖k‖ * r
[PROOFSTEP]
rw [Seminorm.mem_closedBall_zero] at hy
[GOAL]
case intro.intro
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ : Seminorm 𝕜 E
A B : Set E
a : 𝕜
r✝ : ℝ
x✝ : E
p : Seminorm 𝕜 E
k : 𝕜
r : ℝ
x y : E
hy : ↑p y ≤ r
h : (fun x => k • x) y = x
⊢ ‖k‖ * ↑p y ≤ ‖k‖ * r
[PROOFSTEP]
gcongr
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ : Seminorm 𝕜 E
A B : Set E
a : 𝕜
r✝ : ℝ
x : E
p : Seminorm 𝕜 E
k : 𝕜
r : ℝ
hk : 0 < ‖k‖
⊢ k • closedBall p 0 r = closedBall p 0 (‖k‖ * r)
[PROOFSTEP]
refine' subset_antisymm smul_closedBall_subset _
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ : Seminorm 𝕜 E
A B : Set E
a : 𝕜
r✝ : ℝ
x : E
p : Seminorm 𝕜 E
k : 𝕜
r : ℝ
hk : 0 < ‖k‖
⊢ closedBall p 0 (‖k‖ * r) ⊆ k • closedBall p 0 r
[PROOFSTEP]
intro x
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ : Seminorm 𝕜 E
A B : Set E
a : 𝕜
r✝ : ℝ
x✝ : E
p : Seminorm 𝕜 E
k : 𝕜
r : ℝ
hk : 0 < ‖k‖
x : E
⊢ x ∈ closedBall p 0 (‖k‖ * r) → x ∈ k • closedBall p 0 r
[PROOFSTEP]
rw [Set.mem_smul_set, Seminorm.mem_closedBall_zero]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ : Seminorm 𝕜 E
A B : Set E
a : 𝕜
r✝ : ℝ
x✝ : E
p : Seminorm 𝕜 E
k : 𝕜
r : ℝ
hk : 0 < ‖k‖
x : E
⊢ ↑p x ≤ ‖k‖ * r → ∃ y, y ∈ closedBall p 0 r ∧ k • y = x
[PROOFSTEP]
refine' fun hx => ⟨k⁻¹ • x, _, _⟩
[GOAL]
case refine'_1
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ : Seminorm 𝕜 E
A B : Set E
a : 𝕜
r✝ : ℝ
x✝ : E
p : Seminorm 𝕜 E
k : 𝕜
r : ℝ
hk : 0 < ‖k‖
x : E
hx : ↑p x ≤ ‖k‖ * r
⊢ k⁻¹ • x ∈ closedBall p 0 r
[PROOFSTEP]
rwa [Seminorm.mem_closedBall_zero, map_smul_eq_mul, norm_inv, ← mul_le_mul_left hk, ← mul_assoc, ←
  div_eq_mul_inv ‖k‖ ‖k‖, div_self (ne_of_gt hk), one_mul]
[GOAL]
case refine'_2
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ : Seminorm 𝕜 E
A B : Set E
a : 𝕜
r✝ : ℝ
x✝ : E
p : Seminorm 𝕜 E
k : 𝕜
r : ℝ
hk : 0 < ‖k‖
x : E
hx : ↑p x ≤ ‖k‖ * r
⊢ k • k⁻¹ • x = x
[PROOFSTEP]
rw [← smul_assoc, smul_eq_mul, ← div_eq_mul_inv, div_self (norm_pos_iff.mp hk), one_smul]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ : Seminorm 𝕜 E
A B : Set E
a : 𝕜
r : ℝ
x : E
p : Seminorm 𝕜 E
r₁ r₂ : ℝ
hr₁ : 0 < r₁
⊢ Absorbs 𝕜 (ball p 0 r₁) (ball p 0 r₂)
[PROOFSTEP]
rcases exists_pos_lt_mul hr₁ r₂ with ⟨r, hr₀, hr⟩
[GOAL]
case intro.intro
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ : Seminorm 𝕜 E
A B : Set E
a : 𝕜
r✝ : ℝ
x : E
p : Seminorm 𝕜 E
r₁ r₂ : ℝ
hr₁ : 0 < r₁
r : ℝ
hr₀ : 0 < r
hr : r₂ < r * r₁
⊢ Absorbs 𝕜 (ball p 0 r₁) (ball p 0 r₂)
[PROOFSTEP]
refine' ⟨r, hr₀, fun a ha x hx => _⟩
[GOAL]
case intro.intro
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ : Seminorm 𝕜 E
A B : Set E
a✝ : 𝕜
r✝ : ℝ
x✝ : E
p : Seminorm 𝕜 E
r₁ r₂ : ℝ
hr₁ : 0 < r₁
r : ℝ
hr₀ : 0 < r
hr : r₂ < r * r₁
a : 𝕜
ha : r ≤ ‖a‖
x : E
hx : x ∈ ball p 0 r₂
⊢ x ∈ a • ball p 0 r₁
[PROOFSTEP]
rw [smul_ball_zero (norm_pos_iff.1 <| hr₀.trans_le ha), p.mem_ball_zero]
[GOAL]
case intro.intro
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ : Seminorm 𝕜 E
A B : Set E
a✝ : 𝕜
r✝ : ℝ
x✝ : E
p : Seminorm 𝕜 E
r₁ r₂ : ℝ
hr₁ : 0 < r₁
r : ℝ
hr₀ : 0 < r
hr : r₂ < r * r₁
a : 𝕜
ha : r ≤ ‖a‖
x : E
hx : x ∈ ball p 0 r₂
⊢ ↑p x < ‖a‖ * r₁
[PROOFSTEP]
rw [p.mem_ball_zero] at hx
[GOAL]
case intro.intro
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ : Seminorm 𝕜 E
A B : Set E
a✝ : 𝕜
r✝ : ℝ
x✝ : E
p : Seminorm 𝕜 E
r₁ r₂ : ℝ
hr₁ : 0 < r₁
r : ℝ
hr₀ : 0 < r
hr : r₂ < r * r₁
a : 𝕜
ha : r ≤ ‖a‖
x : E
hx : ↑p x < r₂
⊢ ↑p x < ‖a‖ * r₁
[PROOFSTEP]
exact hx.trans (hr.trans_le <| by gcongr)
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ : Seminorm 𝕜 E
A B : Set E
a✝ : 𝕜
r✝ : ℝ
x✝ : E
p : Seminorm 𝕜 E
r₁ r₂ : ℝ
hr₁ : 0 < r₁
r : ℝ
hr₀ : 0 < r
hr : r₂ < r * r₁
a : 𝕜
ha : r ≤ ‖a‖
x : E
hx : ↑p x < r₂
⊢ r * r₁ ≤ ‖a‖ * r₁
[PROOFSTEP]
gcongr
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p : Seminorm 𝕜 E
A B : Set E
a : 𝕜
r : ℝ
x : E
hpr : ↑p x < r
⊢ Absorbent 𝕜 (ball p x r)
[PROOFSTEP]
refine' (p.absorbent_ball_zero <| sub_pos.2 hpr).subset fun y hy => _
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p : Seminorm 𝕜 E
A B : Set E
a : 𝕜
r : ℝ
x : E
hpr : ↑p x < r
y : E
hy : y ∈ ball p 0 (r - ↑p x)
⊢ y ∈ ball p x r
[PROOFSTEP]
rw [p.mem_ball_zero] at hy
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p : Seminorm 𝕜 E
A B : Set E
a : 𝕜
r : ℝ
x : E
hpr : ↑p x < r
y : E
hy : ↑p y < r - ↑p x
⊢ y ∈ ball p x r
[PROOFSTEP]
exact p.mem_ball.2 ((map_sub_le_add p _ _).trans_lt <| add_lt_of_lt_sub_right hy)
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p : Seminorm 𝕜 E
A B : Set E
a : 𝕜
r : ℝ
x : E
hpr : ↑p x < r
⊢ Absorbent 𝕜 (closedBall p x r)
[PROOFSTEP]
refine' (p.absorbent_closedBall_zero <| sub_pos.2 hpr).subset fun y hy => _
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p : Seminorm 𝕜 E
A B : Set E
a : 𝕜
r : ℝ
x : E
hpr : ↑p x < r
y : E
hy : y ∈ closedBall p 0 (r - ↑p x)
⊢ y ∈ closedBall p x r
[PROOFSTEP]
rw [p.mem_closedBall_zero] at hy
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p : Seminorm 𝕜 E
A B : Set E
a : 𝕜
r : ℝ
x : E
hpr : ↑p x < r
y : E
hy : ↑p y ≤ r - ↑p x
⊢ y ∈ closedBall p x r
[PROOFSTEP]
exact p.mem_closedBall.2 ((map_sub_le_add p _ _).trans <| add_le_of_le_sub_right hy)
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ : Seminorm 𝕜 E
A B : Set E
a✝ : 𝕜
r✝ : ℝ
x : E
p : Seminorm 𝕜 E
y : E
r : ℝ
a : 𝕜
ha : a ≠ 0
x✝ : E
⊢ x✝ ∈ (fun x x_1 => x • x_1) a ⁻¹' ball p y r ↔ x✝ ∈ ball p (a⁻¹ • y) (r / ‖a‖)
[PROOFSTEP]
rw [mem_preimage, mem_ball, mem_ball, lt_div_iff (norm_pos_iff.mpr ha), mul_comm, ← map_smul_eq_mul p, smul_sub,
  smul_inv_smul₀ ha]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : NormedSpace ℝ 𝕜
inst✝² : Module 𝕜 E
inst✝¹ : SMul ℝ E
inst✝ : IsScalarTower ℝ 𝕜 E
p : Seminorm 𝕜 E
⊢ ConvexOn ℝ univ ↑p
[PROOFSTEP]
refine' ⟨convex_univ, fun x _ y _ a b ha hb _ => _⟩
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : NormedSpace ℝ 𝕜
inst✝² : Module 𝕜 E
inst✝¹ : SMul ℝ E
inst✝ : IsScalarTower ℝ 𝕜 E
p : Seminorm 𝕜 E
x : E
x✝² : x ∈ univ
y : E
x✝¹ : y ∈ univ
a b : ℝ
ha : 0 ≤ a
hb : 0 ≤ b
x✝ : a + b = 1
⊢ ↑p (a • x + b • y) ≤ a • ↑p x + b • ↑p y
[PROOFSTEP]
calc
  p (a • x + b • y) ≤ p (a • x) + p (b • y) := map_add_le_add p _ _
  _ = ‖a • (1 : 𝕜)‖ * p x + ‖b • (1 : 𝕜)‖ * p y := by
    rw [← map_smul_eq_mul p, ← map_smul_eq_mul p, smul_one_smul, smul_one_smul]
  _ = a * p x + b * p y := by
    rw [norm_smul, norm_smul, norm_one, mul_one, mul_one, Real.norm_of_nonneg ha, Real.norm_of_nonneg hb]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : NormedSpace ℝ 𝕜
inst✝² : Module 𝕜 E
inst✝¹ : SMul ℝ E
inst✝ : IsScalarTower ℝ 𝕜 E
p : Seminorm 𝕜 E
x : E
x✝² : x ∈ univ
y : E
x✝¹ : y ∈ univ
a b : ℝ
ha : 0 ≤ a
hb : 0 ≤ b
x✝ : a + b = 1
⊢ ↑p (a • x) + ↑p (b • y) = ‖a • 1‖ * ↑p x + ‖b • 1‖ * ↑p y
[PROOFSTEP]
rw [← map_smul_eq_mul p, ← map_smul_eq_mul p, smul_one_smul, smul_one_smul]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : NormedSpace ℝ 𝕜
inst✝² : Module 𝕜 E
inst✝¹ : SMul ℝ E
inst✝ : IsScalarTower ℝ 𝕜 E
p : Seminorm 𝕜 E
x : E
x✝² : x ∈ univ
y : E
x✝¹ : y ∈ univ
a b : ℝ
ha : 0 ≤ a
hb : 0 ≤ b
x✝ : a + b = 1
⊢ ‖a • 1‖ * ↑p x + ‖b • 1‖ * ↑p y = a * ↑p x + b * ↑p y
[PROOFSTEP]
rw [norm_smul, norm_smul, norm_one, mul_one, mul_one, Real.norm_of_nonneg ha, Real.norm_of_nonneg hb]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : NormedSpace ℝ 𝕜
inst✝² : Module 𝕜 E
inst✝¹ : Module ℝ E
inst✝ : IsScalarTower ℝ 𝕜 E
p : Seminorm 𝕜 E
x : E
r : ℝ
⊢ Convex ℝ (ball p x r)
[PROOFSTEP]
convert (p.convexOn.translate_left (-x)).convex_lt r
[GOAL]
case h.e'_6
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : NormedSpace ℝ 𝕜
inst✝² : Module 𝕜 E
inst✝¹ : Module ℝ E
inst✝ : IsScalarTower ℝ 𝕜 E
p : Seminorm 𝕜 E
x : E
r : ℝ
⊢ ball p x r = {x_1 | x_1 ∈ (fun z => -x + z) ⁻¹' univ ∧ (↑p ∘ fun z => z + -x) x_1 < r}
[PROOFSTEP]
ext y
[GOAL]
case h.e'_6.h
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : NormedSpace ℝ 𝕜
inst✝² : Module 𝕜 E
inst✝¹ : Module ℝ E
inst✝ : IsScalarTower ℝ 𝕜 E
p : Seminorm 𝕜 E
x : E
r : ℝ
y : E
⊢ y ∈ ball p x r ↔ y ∈ {x_1 | x_1 ∈ (fun z => -x + z) ⁻¹' univ ∧ (↑p ∘ fun z => z + -x) x_1 < r}
[PROOFSTEP]
rw [preimage_univ, sep_univ, p.mem_ball, sub_eq_add_neg]
[GOAL]
case h.e'_6.h
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : NormedSpace ℝ 𝕜
inst✝² : Module 𝕜 E
inst✝¹ : Module ℝ E
inst✝ : IsScalarTower ℝ 𝕜 E
p : Seminorm 𝕜 E
x : E
r : ℝ
y : E
⊢ ↑p (y + -x) < r ↔ y ∈ {x_1 | (↑p ∘ fun z => z + -x) x_1 < r}
[PROOFSTEP]
rfl
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : NormedSpace ℝ 𝕜
inst✝² : Module 𝕜 E
inst✝¹ : Module ℝ E
inst✝ : IsScalarTower ℝ 𝕜 E
p : Seminorm 𝕜 E
x : E
r : ℝ
⊢ Convex ℝ (closedBall p x r)
[PROOFSTEP]
rw [closedBall_eq_biInter_ball]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : NormedSpace ℝ 𝕜
inst✝² : Module 𝕜 E
inst✝¹ : Module ℝ E
inst✝ : IsScalarTower ℝ 𝕜 E
p : Seminorm 𝕜 E
x : E
r : ℝ
⊢ Convex ℝ (⋂ (ρ : ℝ) (_ : ρ > r), ball p x ρ)
[PROOFSTEP]
exact convex_iInter₂ fun _ _ => convex_ball _ _ _
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
𝕜' : Type u_13
inst✝⁷ : NormedField 𝕜
inst✝⁶ : SeminormedRing 𝕜'
inst✝⁵ : NormedAlgebra 𝕜 𝕜'
inst✝⁴ : NormOneClass 𝕜'
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜' E
inst✝¹ : SMul 𝕜 E
inst✝ : IsScalarTower 𝕜 𝕜' E
p : Seminorm 𝕜' E
a : 𝕜
x : E
⊢ AddGroupSeminorm.toFun p.toAddGroupSeminorm (a • x) = ‖a‖ * AddGroupSeminorm.toFun p.toAddGroupSeminorm x
[PROOFSTEP]
rw [← smul_one_smul 𝕜' a x, p.smul', norm_smul, norm_one, mul_one]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁵ : NontriviallyNormedField 𝕜
inst✝⁴ : SeminormedRing 𝕝
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : Module 𝕝 E
inst✝ : TopologicalSpace E
p : Seminorm 𝕝 E
hp : ∀ (r : ℝ), r > 0 → closedBall p 0 r ∈ 𝓝 0
⊢ ContinuousAt (↑p) 0
[PROOFSTEP]
simp_rw [Seminorm.closedBall_zero_eq_preimage_closedBall] at hp
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁵ : NontriviallyNormedField 𝕜
inst✝⁴ : SeminormedRing 𝕝
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : Module 𝕝 E
inst✝ : TopologicalSpace E
p : Seminorm 𝕝 E
hp : ∀ (r : ℝ), r > 0 → ↑p ⁻¹' Metric.closedBall 0 r ∈ 𝓝 0
⊢ ContinuousAt (↑p) 0
[PROOFSTEP]
rwa [ContinuousAt, Metric.nhds_basis_closedBall.tendsto_right_iff, map_zero]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : SeminormedRing 𝕝
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : Module 𝕝 E
inst✝¹ : TopologicalSpace E
inst✝ : ContinuousConstSMul 𝕜 E
p : Seminorm 𝕜 E
r : ℝ
hp : closedBall p 0 r ∈ 𝓝 0
⊢ ContinuousAt (↑p) 0
[PROOFSTEP]
let r' := max 1 r
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : SeminormedRing 𝕝
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : Module 𝕝 E
inst✝¹ : TopologicalSpace E
inst✝ : ContinuousConstSMul 𝕜 E
p : Seminorm 𝕜 E
r : ℝ
hp : closedBall p 0 r ∈ 𝓝 0
r' : ℝ := max 1 r
⊢ ContinuousAt (↑p) 0
[PROOFSTEP]
have hr' : 0 < r' := lt_max_of_lt_left one_pos
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : SeminormedRing 𝕝
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : Module 𝕝 E
inst✝¹ : TopologicalSpace E
inst✝ : ContinuousConstSMul 𝕜 E
p : Seminorm 𝕜 E
r : ℝ
hp : closedBall p 0 r ∈ 𝓝 0
r' : ℝ := max 1 r
hr' : 0 < r'
⊢ ContinuousAt (↑p) 0
[PROOFSTEP]
have hp' : p.closedBall 0 r' ∈ (𝓝 0 : Filter E) := mem_of_superset hp (closedBall_mono <| le_max_right _ _)
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : SeminormedRing 𝕝
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : Module 𝕝 E
inst✝¹ : TopologicalSpace E
inst✝ : ContinuousConstSMul 𝕜 E
p : Seminorm 𝕜 E
r : ℝ
hp : closedBall p 0 r ∈ 𝓝 0
r' : ℝ := max 1 r
hr' : 0 < r'
hp' : closedBall p 0 r' ∈ 𝓝 0
⊢ ContinuousAt (↑p) 0
[PROOFSTEP]
refine' continuousAt_zero_of_forall' _
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : SeminormedRing 𝕝
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : Module 𝕝 E
inst✝¹ : TopologicalSpace E
inst✝ : ContinuousConstSMul 𝕜 E
p : Seminorm 𝕜 E
r : ℝ
hp : closedBall p 0 r ∈ 𝓝 0
r' : ℝ := max 1 r
hr' : 0 < r'
hp' : closedBall p 0 r' ∈ 𝓝 0
⊢ ∀ (r : ℝ), r > 0 → closedBall p 0 r ∈ 𝓝 0
[PROOFSTEP]
intro ε hε
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : SeminormedRing 𝕝
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : Module 𝕝 E
inst✝¹ : TopologicalSpace E
inst✝ : ContinuousConstSMul 𝕜 E
p : Seminorm 𝕜 E
r : ℝ
hp : closedBall p 0 r ∈ 𝓝 0
r' : ℝ := max 1 r
hr' : 0 < r'
hp' : closedBall p 0 r' ∈ 𝓝 0
ε : ℝ
hε : ε > 0
⊢ closedBall p 0 ε ∈ 𝓝 0
[PROOFSTEP]
rcases exists_norm_lt 𝕜 (div_pos hε hr') with ⟨k, hk0, hkε⟩
[GOAL]
case intro.intro
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : SeminormedRing 𝕝
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : Module 𝕝 E
inst✝¹ : TopologicalSpace E
inst✝ : ContinuousConstSMul 𝕜 E
p : Seminorm 𝕜 E
r : ℝ
hp : closedBall p 0 r ∈ 𝓝 0
r' : ℝ := max 1 r
hr' : 0 < r'
hp' : closedBall p 0 r' ∈ 𝓝 0
ε : ℝ
hε : ε > 0
k : 𝕜
hk0 : 0 < ‖k‖
hkε : ‖k‖ < ε / r'
⊢ closedBall p 0 ε ∈ 𝓝 0
[PROOFSTEP]
have hk0' := norm_pos_iff.mp hk0
[GOAL]
case intro.intro
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : SeminormedRing 𝕝
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : Module 𝕝 E
inst✝¹ : TopologicalSpace E
inst✝ : ContinuousConstSMul 𝕜 E
p : Seminorm 𝕜 E
r : ℝ
hp : closedBall p 0 r ∈ 𝓝 0
r' : ℝ := max 1 r
hr' : 0 < r'
hp' : closedBall p 0 r' ∈ 𝓝 0
ε : ℝ
hε : ε > 0
k : 𝕜
hk0 : 0 < ‖k‖
hkε : ‖k‖ < ε / r'
hk0' : k ≠ 0
⊢ closedBall p 0 ε ∈ 𝓝 0
[PROOFSTEP]
have := (set_smul_mem_nhds_zero_iff hk0').mpr hp'
[GOAL]
case intro.intro
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : SeminormedRing 𝕝
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : Module 𝕝 E
inst✝¹ : TopologicalSpace E
inst✝ : ContinuousConstSMul 𝕜 E
p : Seminorm 𝕜 E
r : ℝ
hp : closedBall p 0 r ∈ 𝓝 0
r' : ℝ := max 1 r
hr' : 0 < r'
hp' : closedBall p 0 r' ∈ 𝓝 0
ε : ℝ
hε : ε > 0
k : 𝕜
hk0 : 0 < ‖k‖
hkε : ‖k‖ < ε / r'
hk0' : k ≠ 0
this : k • closedBall p 0 r' ∈ 𝓝 0
⊢ closedBall p 0 ε ∈ 𝓝 0
[PROOFSTEP]
refine' Filter.mem_of_superset this (smul_set_subset_iff.mpr fun x hx => _)
[GOAL]
case intro.intro
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : SeminormedRing 𝕝
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : Module 𝕝 E
inst✝¹ : TopologicalSpace E
inst✝ : ContinuousConstSMul 𝕜 E
p : Seminorm 𝕜 E
r : ℝ
hp : closedBall p 0 r ∈ 𝓝 0
r' : ℝ := max 1 r
hr' : 0 < r'
hp' : closedBall p 0 r' ∈ 𝓝 0
ε : ℝ
hε : ε > 0
k : 𝕜
hk0 : 0 < ‖k‖
hkε : ‖k‖ < ε / r'
hk0' : k ≠ 0
this : k • closedBall p 0 r' ∈ 𝓝 0
x : E
hx : x ∈ closedBall p 0 r'
⊢ k • x ∈ closedBall p 0 ε
[PROOFSTEP]
rw [mem_closedBall_zero, map_smul_eq_mul, ← div_mul_cancel ε hr'.ne.symm]
[GOAL]
case intro.intro
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : SeminormedRing 𝕝
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : Module 𝕝 E
inst✝¹ : TopologicalSpace E
inst✝ : ContinuousConstSMul 𝕜 E
p : Seminorm 𝕜 E
r : ℝ
hp : closedBall p 0 r ∈ 𝓝 0
r' : ℝ := max 1 r
hr' : 0 < r'
hp' : closedBall p 0 r' ∈ 𝓝 0
ε : ℝ
hε : ε > 0
k : 𝕜
hk0 : 0 < ‖k‖
hkε : ‖k‖ < ε / r'
hk0' : k ≠ 0
this : k • closedBall p 0 r' ∈ 𝓝 0
x : E
hx : x ∈ closedBall p 0 r'
⊢ ‖k‖ * ↑p x ≤ ε / r' * r'
[PROOFSTEP]
gcongr
[GOAL]
case intro.intro.h₂
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : SeminormedRing 𝕝
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : Module 𝕝 E
inst✝¹ : TopologicalSpace E
inst✝ : ContinuousConstSMul 𝕜 E
p : Seminorm 𝕜 E
r : ℝ
hp : closedBall p 0 r ∈ 𝓝 0
r' : ℝ := max 1 r
hr' : 0 < r'
hp' : closedBall p 0 r' ∈ 𝓝 0
ε : ℝ
hε : ε > 0
k : 𝕜
hk0 : 0 < ‖k‖
hkε : ‖k‖ < ε / r'
hk0' : k ≠ 0
this : k • closedBall p 0 r' ∈ 𝓝 0
x : E
hx : x ∈ closedBall p 0 r'
⊢ ↑p x ≤ r'
[PROOFSTEP]
exact p.mem_closedBall_zero.mp hx
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : SeminormedRing 𝕝
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : Module 𝕝 E
inst✝¹ : UniformSpace E
inst✝ : UniformAddGroup E
p : Seminorm 𝕝 E
hp : ContinuousAt (↑p) 0
⊢ UniformContinuous ↑p
[PROOFSTEP]
have hp : Filter.Tendsto p (𝓝 0) (𝓝 0) := map_zero p ▸ hp
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : SeminormedRing 𝕝
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : Module 𝕝 E
inst✝¹ : UniformSpace E
inst✝ : UniformAddGroup E
p : Seminorm 𝕝 E
hp✝ : ContinuousAt (↑p) 0
hp : Tendsto (↑p) (𝓝 0) (𝓝 0)
⊢ UniformContinuous ↑p
[PROOFSTEP]
rw [UniformContinuous, uniformity_eq_comap_nhds_zero_swapped, Metric.uniformity_eq_comap_nhds_zero,
  Filter.tendsto_comap_iff]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : SeminormedRing 𝕝
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : Module 𝕝 E
inst✝¹ : UniformSpace E
inst✝ : UniformAddGroup E
p : Seminorm 𝕝 E
hp✝ : ContinuousAt (↑p) 0
hp : Tendsto (↑p) (𝓝 0) (𝓝 0)
⊢ Tendsto ((fun p => dist p.fst p.snd) ∘ fun x => (↑p x.fst, ↑p x.snd)) (comap (fun x => x.fst - x.snd) (𝓝 0)) (𝓝 0)
[PROOFSTEP]
exact
  tendsto_of_tendsto_of_tendsto_of_le_of_le tendsto_const_nhds (hp.comp Filter.tendsto_comap) (fun xy => dist_nonneg)
    fun xy => p.norm_sub_map_le_sub _ _
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : SeminormedRing 𝕝
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : Module 𝕝 E
inst✝¹ : TopologicalSpace E
inst✝ : TopologicalAddGroup E
p : Seminorm 𝕝 E
hp : ContinuousAt (↑p) 0
⊢ Continuous ↑p
[PROOFSTEP]
letI := TopologicalAddGroup.toUniformSpace E
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : SeminormedRing 𝕝
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : Module 𝕝 E
inst✝¹ : TopologicalSpace E
inst✝ : TopologicalAddGroup E
p : Seminorm 𝕝 E
hp : ContinuousAt (↑p) 0
this : UniformSpace E := TopologicalAddGroup.toUniformSpace E
⊢ Continuous ↑p
[PROOFSTEP]
haveI : UniformAddGroup E := comm_topologicalAddGroup_is_uniform
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : SeminormedRing 𝕝
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : Module 𝕝 E
inst✝¹ : TopologicalSpace E
inst✝ : TopologicalAddGroup E
p : Seminorm 𝕝 E
hp : ContinuousAt (↑p) 0
this✝ : UniformSpace E := TopologicalAddGroup.toUniformSpace E
this : UniformAddGroup E
⊢ Continuous ↑p
[PROOFSTEP]
exact (Seminorm.uniformContinuous_of_continuousAt_zero hp).continuous
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : SeminormedRing 𝕝
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : Module 𝕝 E
inst✝¹ : TopologicalSpace E
inst✝ : TopologicalAddGroup E
p q : Seminorm 𝕝 E
hq : Continuous ↑q
hpq : p ≤ q
⊢ Continuous ↑p
[PROOFSTEP]
refine
  Seminorm.continuous_of_forall
    (fun r hr ↦ Filter.mem_of_superset (IsOpen.mem_nhds ?_ <| q.mem_ball_self hr) (ball_antitone hpq))
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : SeminormedRing 𝕝
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : Module 𝕝 E
inst✝¹ : TopologicalSpace E
inst✝ : TopologicalAddGroup E
p q : Seminorm 𝕝 E
hq : Continuous ↑q
hpq : p ≤ q
r : ℝ
hr : r > 0
⊢ IsOpen (ball q 0 r)
[PROOFSTEP]
rw [ball_zero_eq]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : SeminormedRing 𝕝
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : Module 𝕝 E
inst✝¹ : TopologicalSpace E
inst✝ : TopologicalAddGroup E
p q : Seminorm 𝕝 E
hq : Continuous ↑q
hpq : p ≤ q
r : ℝ
hr : r > 0
⊢ IsOpen {y | ↑q y < r}
[PROOFSTEP]
exact isOpen_lt hq continuous_const
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁵ : NontriviallyNormedField 𝕜
inst✝⁴ : SeminormedRing 𝕝
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : Module 𝕝 E
inst✝ : TopologicalSpace E
p : Seminorm 𝕝 E
hp : Continuous ↑p
r : ℝ
hr : 0 < r
this : Tendsto (↑p) (𝓝 0) (𝓝 0)
⊢ ball p 0 r ∈ 𝓝 0
[PROOFSTEP]
simpa only [p.ball_zero_eq] using this (Iio_mem_nhds hr)
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p : Seminorm 𝕜 E
c : 𝕜
hc : 1 < ‖c‖
ε : ℝ
εpos : 0 < ε
x : E
hx : ↑p x ≠ 0
⊢ ∃ n, c ^ n ≠ 0 ∧ ↑p (c ^ n • x) < ε ∧ ε / ‖c‖ ≤ ↑p (c ^ n • x) ∧ ‖c ^ n‖⁻¹ ≤ ε⁻¹ * ‖c‖ * ↑p x
[PROOFSTEP]
have xεpos : 0 < (p x) / ε := div_pos ((Ne.symm hx).le_iff_lt.1 (map_nonneg p x)) εpos
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p : Seminorm 𝕜 E
c : 𝕜
hc : 1 < ‖c‖
ε : ℝ
εpos : 0 < ε
x : E
hx : ↑p x ≠ 0
xεpos : 0 < ↑p x / ε
⊢ ∃ n, c ^ n ≠ 0 ∧ ↑p (c ^ n • x) < ε ∧ ε / ‖c‖ ≤ ↑p (c ^ n • x) ∧ ‖c ^ n‖⁻¹ ≤ ε⁻¹ * ‖c‖ * ↑p x
[PROOFSTEP]
rcases exists_mem_Ico_zpow xεpos hc with ⟨n, hn⟩
[GOAL]
case intro
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p : Seminorm 𝕜 E
c : 𝕜
hc : 1 < ‖c‖
ε : ℝ
εpos : 0 < ε
x : E
hx : ↑p x ≠ 0
xεpos : 0 < ↑p x / ε
n : ℤ
hn : ↑p x / ε ∈ Ico (‖c‖ ^ n) (‖c‖ ^ (n + 1))
⊢ ∃ n, c ^ n ≠ 0 ∧ ↑p (c ^ n • x) < ε ∧ ε / ‖c‖ ≤ ↑p (c ^ n • x) ∧ ‖c ^ n‖⁻¹ ≤ ε⁻¹ * ‖c‖ * ↑p x
[PROOFSTEP]
have cpos : 0 < ‖c‖ := lt_trans (zero_lt_one : (0 : ℝ) < 1) hc
[GOAL]
case intro
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p : Seminorm 𝕜 E
c : 𝕜
hc : 1 < ‖c‖
ε : ℝ
εpos : 0 < ε
x : E
hx : ↑p x ≠ 0
xεpos : 0 < ↑p x / ε
n : ℤ
hn : ↑p x / ε ∈ Ico (‖c‖ ^ n) (‖c‖ ^ (n + 1))
cpos : 0 < ‖c‖
⊢ ∃ n, c ^ n ≠ 0 ∧ ↑p (c ^ n • x) < ε ∧ ε / ‖c‖ ≤ ↑p (c ^ n • x) ∧ ‖c ^ n‖⁻¹ ≤ ε⁻¹ * ‖c‖ * ↑p x
[PROOFSTEP]
have cnpos : 0 < ‖c ^ (n + 1)‖ := by rw [norm_zpow]; exact lt_trans xεpos hn.2
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p : Seminorm 𝕜 E
c : 𝕜
hc : 1 < ‖c‖
ε : ℝ
εpos : 0 < ε
x : E
hx : ↑p x ≠ 0
xεpos : 0 < ↑p x / ε
n : ℤ
hn : ↑p x / ε ∈ Ico (‖c‖ ^ n) (‖c‖ ^ (n + 1))
cpos : 0 < ‖c‖
⊢ 0 < ‖c ^ (n + 1)‖
[PROOFSTEP]
rw [norm_zpow]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p : Seminorm 𝕜 E
c : 𝕜
hc : 1 < ‖c‖
ε : ℝ
εpos : 0 < ε
x : E
hx : ↑p x ≠ 0
xεpos : 0 < ↑p x / ε
n : ℤ
hn : ↑p x / ε ∈ Ico (‖c‖ ^ n) (‖c‖ ^ (n + 1))
cpos : 0 < ‖c‖
⊢ 0 < ‖c‖ ^ (n + 1)
[PROOFSTEP]
exact lt_trans xεpos hn.2
[GOAL]
case intro
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p : Seminorm 𝕜 E
c : 𝕜
hc : 1 < ‖c‖
ε : ℝ
εpos : 0 < ε
x : E
hx : ↑p x ≠ 0
xεpos : 0 < ↑p x / ε
n : ℤ
hn : ↑p x / ε ∈ Ico (‖c‖ ^ n) (‖c‖ ^ (n + 1))
cpos : 0 < ‖c‖
cnpos : 0 < ‖c ^ (n + 1)‖
⊢ ∃ n, c ^ n ≠ 0 ∧ ↑p (c ^ n • x) < ε ∧ ε / ‖c‖ ≤ ↑p (c ^ n • x) ∧ ‖c ^ n‖⁻¹ ≤ ε⁻¹ * ‖c‖ * ↑p x
[PROOFSTEP]
refine ⟨-(n + 1), ?_, ?_, ?_, ?_⟩
[GOAL]
case intro.refine_1
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p : Seminorm 𝕜 E
c : 𝕜
hc : 1 < ‖c‖
ε : ℝ
εpos : 0 < ε
x : E
hx : ↑p x ≠ 0
xεpos : 0 < ↑p x / ε
n : ℤ
hn : ↑p x / ε ∈ Ico (‖c‖ ^ n) (‖c‖ ^ (n + 1))
cpos : 0 < ‖c‖
cnpos : 0 < ‖c ^ (n + 1)‖
⊢ c ^ (-(n + 1)) ≠ 0
[PROOFSTEP]
show c ^ (-(n + 1)) ≠ 0
[GOAL]
case intro.refine_1
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p : Seminorm 𝕜 E
c : 𝕜
hc : 1 < ‖c‖
ε : ℝ
εpos : 0 < ε
x : E
hx : ↑p x ≠ 0
xεpos : 0 < ↑p x / ε
n : ℤ
hn : ↑p x / ε ∈ Ico (‖c‖ ^ n) (‖c‖ ^ (n + 1))
cpos : 0 < ‖c‖
cnpos : 0 < ‖c ^ (n + 1)‖
⊢ c ^ (-(n + 1)) ≠ 0
[PROOFSTEP]
exact zpow_ne_zero _ (norm_pos_iff.1 cpos)
[GOAL]
case intro.refine_2
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p : Seminorm 𝕜 E
c : 𝕜
hc : 1 < ‖c‖
ε : ℝ
εpos : 0 < ε
x : E
hx : ↑p x ≠ 0
xεpos : 0 < ↑p x / ε
n : ℤ
hn : ↑p x / ε ∈ Ico (‖c‖ ^ n) (‖c‖ ^ (n + 1))
cpos : 0 < ‖c‖
cnpos : 0 < ‖c ^ (n + 1)‖
⊢ ↑p (c ^ (-(n + 1)) • x) < ε
[PROOFSTEP]
show p ((c ^ (-(n + 1))) • x) < ε
[GOAL]
case intro.refine_2
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p : Seminorm 𝕜 E
c : 𝕜
hc : 1 < ‖c‖
ε : ℝ
εpos : 0 < ε
x : E
hx : ↑p x ≠ 0
xεpos : 0 < ↑p x / ε
n : ℤ
hn : ↑p x / ε ∈ Ico (‖c‖ ^ n) (‖c‖ ^ (n + 1))
cpos : 0 < ‖c‖
cnpos : 0 < ‖c ^ (n + 1)‖
⊢ ↑p (c ^ (-(n + 1)) • x) < ε
[PROOFSTEP]
rw [map_smul_eq_mul, zpow_neg, norm_inv, ← div_eq_inv_mul, div_lt_iff cnpos, mul_comm, norm_zpow]
[GOAL]
case intro.refine_2
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p : Seminorm 𝕜 E
c : 𝕜
hc : 1 < ‖c‖
ε : ℝ
εpos : 0 < ε
x : E
hx : ↑p x ≠ 0
xεpos : 0 < ↑p x / ε
n : ℤ
hn : ↑p x / ε ∈ Ico (‖c‖ ^ n) (‖c‖ ^ (n + 1))
cpos : 0 < ‖c‖
cnpos : 0 < ‖c ^ (n + 1)‖
⊢ ↑p x < ‖c‖ ^ (n + 1) * ε
[PROOFSTEP]
exact (div_lt_iff εpos).1 (hn.2)
[GOAL]
case intro.refine_3
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p : Seminorm 𝕜 E
c : 𝕜
hc : 1 < ‖c‖
ε : ℝ
εpos : 0 < ε
x : E
hx : ↑p x ≠ 0
xεpos : 0 < ↑p x / ε
n : ℤ
hn : ↑p x / ε ∈ Ico (‖c‖ ^ n) (‖c‖ ^ (n + 1))
cpos : 0 < ‖c‖
cnpos : 0 < ‖c ^ (n + 1)‖
⊢ ε / ‖c‖ ≤ ↑p (c ^ (-(n + 1)) • x)
[PROOFSTEP]
show ε / ‖c‖ ≤ p (c ^ (-(n + 1)) • x)
[GOAL]
case intro.refine_3
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p : Seminorm 𝕜 E
c : 𝕜
hc : 1 < ‖c‖
ε : ℝ
εpos : 0 < ε
x : E
hx : ↑p x ≠ 0
xεpos : 0 < ↑p x / ε
n : ℤ
hn : ↑p x / ε ∈ Ico (‖c‖ ^ n) (‖c‖ ^ (n + 1))
cpos : 0 < ‖c‖
cnpos : 0 < ‖c ^ (n + 1)‖
⊢ ε / ‖c‖ ≤ ↑p (c ^ (-(n + 1)) • x)
[PROOFSTEP]
rw [zpow_neg, div_le_iff cpos, map_smul_eq_mul, norm_inv, norm_zpow, zpow_add₀ (ne_of_gt cpos), zpow_one, mul_inv_rev,
  mul_comm, ← mul_assoc, ← mul_assoc, mul_inv_cancel (ne_of_gt cpos), one_mul, ← div_eq_inv_mul,
  le_div_iff (zpow_pos_of_pos cpos _), mul_comm]
[GOAL]
case intro.refine_3
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p : Seminorm 𝕜 E
c : 𝕜
hc : 1 < ‖c‖
ε : ℝ
εpos : 0 < ε
x : E
hx : ↑p x ≠ 0
xεpos : 0 < ↑p x / ε
n : ℤ
hn : ↑p x / ε ∈ Ico (‖c‖ ^ n) (‖c‖ ^ (n + 1))
cpos : 0 < ‖c‖
cnpos : 0 < ‖c ^ (n + 1)‖
⊢ ‖c‖ ^ n * ε ≤ ↑p x
[PROOFSTEP]
exact (le_div_iff εpos).1 hn.1
[GOAL]
case intro.refine_4
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p : Seminorm 𝕜 E
c : 𝕜
hc : 1 < ‖c‖
ε : ℝ
εpos : 0 < ε
x : E
hx : ↑p x ≠ 0
xεpos : 0 < ↑p x / ε
n : ℤ
hn : ↑p x / ε ∈ Ico (‖c‖ ^ n) (‖c‖ ^ (n + 1))
cpos : 0 < ‖c‖
cnpos : 0 < ‖c ^ (n + 1)‖
⊢ ‖c ^ (-(n + 1))‖⁻¹ ≤ ε⁻¹ * ‖c‖ * ↑p x
[PROOFSTEP]
show ‖(c ^ (-(n + 1)))‖⁻¹ ≤ ε⁻¹ * ‖c‖ * p x
[GOAL]
case intro.refine_4
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p : Seminorm 𝕜 E
c : 𝕜
hc : 1 < ‖c‖
ε : ℝ
εpos : 0 < ε
x : E
hx : ↑p x ≠ 0
xεpos : 0 < ↑p x / ε
n : ℤ
hn : ↑p x / ε ∈ Ico (‖c‖ ^ n) (‖c‖ ^ (n + 1))
cpos : 0 < ‖c‖
cnpos : 0 < ‖c ^ (n + 1)‖
⊢ ‖c ^ (-(n + 1))‖⁻¹ ≤ ε⁻¹ * ‖c‖ * ↑p x
[PROOFSTEP]
have : ε⁻¹ * ‖c‖ * p x = ε⁻¹ * p x * ‖c‖ := by ring
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p : Seminorm 𝕜 E
c : 𝕜
hc : 1 < ‖c‖
ε : ℝ
εpos : 0 < ε
x : E
hx : ↑p x ≠ 0
xεpos : 0 < ↑p x / ε
n : ℤ
hn : ↑p x / ε ∈ Ico (‖c‖ ^ n) (‖c‖ ^ (n + 1))
cpos : 0 < ‖c‖
cnpos : 0 < ‖c ^ (n + 1)‖
⊢ ε⁻¹ * ‖c‖ * ↑p x = ε⁻¹ * ↑p x * ‖c‖
[PROOFSTEP]
ring
[GOAL]
case intro.refine_4
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p : Seminorm 𝕜 E
c : 𝕜
hc : 1 < ‖c‖
ε : ℝ
εpos : 0 < ε
x : E
hx : ↑p x ≠ 0
xεpos : 0 < ↑p x / ε
n : ℤ
hn : ↑p x / ε ∈ Ico (‖c‖ ^ n) (‖c‖ ^ (n + 1))
cpos : 0 < ‖c‖
cnpos : 0 < ‖c ^ (n + 1)‖
this : ε⁻¹ * ‖c‖ * ↑p x = ε⁻¹ * ↑p x * ‖c‖
⊢ ‖c ^ (-(n + 1))‖⁻¹ ≤ ε⁻¹ * ‖c‖ * ↑p x
[PROOFSTEP]
rw [zpow_neg, norm_inv, inv_inv, norm_zpow, zpow_add₀ (ne_of_gt cpos), zpow_one, this, ← div_eq_inv_mul]
[GOAL]
case intro.refine_4
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p : Seminorm 𝕜 E
c : 𝕜
hc : 1 < ‖c‖
ε : ℝ
εpos : 0 < ε
x : E
hx : ↑p x ≠ 0
xεpos : 0 < ↑p x / ε
n : ℤ
hn : ↑p x / ε ∈ Ico (‖c‖ ^ n) (‖c‖ ^ (n + 1))
cpos : 0 < ‖c‖
cnpos : 0 < ‖c ^ (n + 1)‖
this : ε⁻¹ * ‖c‖ * ↑p x = ε⁻¹ * ↑p x * ‖c‖
⊢ ‖c‖ ^ n * ‖c‖ ≤ ↑p x / ε * ‖c‖
[PROOFSTEP]
exact mul_le_mul_of_nonneg_right hn.1 (norm_nonneg _)
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p q : Seminorm 𝕜 E
ε C : ℝ
ε_pos : 0 < ε
c : 𝕜
hc : 1 < ‖c‖
hf : ∀ (x : E), ε / ‖c‖ ≤ ↑p x → ↑p x < ε → ↑q x ≤ C * ↑p x
x : E
hx : ↑p x ≠ 0
⊢ ↑q x ≤ C * ↑p x
[PROOFSTEP]
rcases p.rescale_to_shell hc ε_pos hx with ⟨δ, hδ, δxle, leδx, -⟩
[GOAL]
case intro.intro.intro.intro
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p q : Seminorm 𝕜 E
ε C : ℝ
ε_pos : 0 < ε
c : 𝕜
hc : 1 < ‖c‖
hf : ∀ (x : E), ε / ‖c‖ ≤ ↑p x → ↑p x < ε → ↑q x ≤ C * ↑p x
x : E
hx : ↑p x ≠ 0
δ : 𝕜
hδ : δ ≠ 0
δxle : ↑p (δ • x) < ε
leδx : ε / ‖c‖ ≤ ↑p (δ • x)
⊢ ↑q x ≤ C * ↑p x
[PROOFSTEP]
simpa only [map_smul_eq_mul, mul_left_comm C, mul_le_mul_left (norm_pos_iff.2 hδ)] using hf (δ • x) leδx δxle
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p : ι → Seminorm 𝕜 E
s : Finset ι
q : Seminorm 𝕜 E
ε : ℝ
C : ℝ≥0
ε_pos : 0 < ε
c : 𝕜
hc : 1 < ‖c‖
hf : ∀ (x : E), (∀ (i : ι), i ∈ s → ↑(p i) x < ε) → ∀ (j : ι), j ∈ s → ε / ‖c‖ ≤ ↑(p j) x → ↑q x ≤ ↑(C • p j) x
x : E
hx : ∃ j, j ∈ s ∧ ↑(p j) x ≠ 0
⊢ ↑q x ≤ ↑(C • Finset.sup s p) x
[PROOFSTEP]
rcases hx with ⟨j, hj, hjx⟩
[GOAL]
case intro.intro
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p : ι → Seminorm 𝕜 E
s : Finset ι
q : Seminorm 𝕜 E
ε : ℝ
C : ℝ≥0
ε_pos : 0 < ε
c : 𝕜
hc : 1 < ‖c‖
hf : ∀ (x : E), (∀ (i : ι), i ∈ s → ↑(p i) x < ε) → ∀ (j : ι), j ∈ s → ε / ‖c‖ ≤ ↑(p j) x → ↑q x ≤ ↑(C • p j) x
x : E
j : ι
hj : j ∈ s
hjx : ↑(p j) x ≠ 0
⊢ ↑q x ≤ ↑(C • Finset.sup s p) x
[PROOFSTEP]
have : (s.sup p) x ≠ 0 := ne_of_gt ((hjx.symm.lt_of_le $ map_nonneg _ _).trans_le (le_finset_sup_apply hj))
[GOAL]
case intro.intro
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p : ι → Seminorm 𝕜 E
s : Finset ι
q : Seminorm 𝕜 E
ε : ℝ
C : ℝ≥0
ε_pos : 0 < ε
c : 𝕜
hc : 1 < ‖c‖
hf : ∀ (x : E), (∀ (i : ι), i ∈ s → ↑(p i) x < ε) → ∀ (j : ι), j ∈ s → ε / ‖c‖ ≤ ↑(p j) x → ↑q x ≤ ↑(C • p j) x
x : E
j : ι
hj : j ∈ s
hjx : ↑(p j) x ≠ 0
this : ↑(Finset.sup s p) x ≠ 0
⊢ ↑q x ≤ ↑(C • Finset.sup s p) x
[PROOFSTEP]
refine (s.sup p).bound_of_shell_smul q ε_pos hc (fun y hle hlt ↦ ?_) this
[GOAL]
case intro.intro
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p : ι → Seminorm 𝕜 E
s : Finset ι
q : Seminorm 𝕜 E
ε : ℝ
C : ℝ≥0
ε_pos : 0 < ε
c : 𝕜
hc : 1 < ‖c‖
hf : ∀ (x : E), (∀ (i : ι), i ∈ s → ↑(p i) x < ε) → ∀ (j : ι), j ∈ s → ε / ‖c‖ ≤ ↑(p j) x → ↑q x ≤ ↑(C • p j) x
x : E
j : ι
hj : j ∈ s
hjx : ↑(p j) x ≠ 0
this : ↑(Finset.sup s p) x ≠ 0
y : E
hle : ε / ‖c‖ ≤ ↑(Finset.sup s p) y
hlt : ↑(Finset.sup s p) y < ε
⊢ ↑q y ≤ ↑(C • Finset.sup s p) y
[PROOFSTEP]
rcases exists_apply_eq_finset_sup p ⟨j, hj⟩ y with ⟨i, hi, hiy⟩
[GOAL]
case intro.intro.intro.intro
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p : ι → Seminorm 𝕜 E
s : Finset ι
q : Seminorm 𝕜 E
ε : ℝ
C : ℝ≥0
ε_pos : 0 < ε
c : 𝕜
hc : 1 < ‖c‖
hf : ∀ (x : E), (∀ (i : ι), i ∈ s → ↑(p i) x < ε) → ∀ (j : ι), j ∈ s → ε / ‖c‖ ≤ ↑(p j) x → ↑q x ≤ ↑(C • p j) x
x : E
j : ι
hj : j ∈ s
hjx : ↑(p j) x ≠ 0
this : ↑(Finset.sup s p) x ≠ 0
y : E
hle : ε / ‖c‖ ≤ ↑(Finset.sup s p) y
hlt : ↑(Finset.sup s p) y < ε
i : ι
hi : i ∈ s
hiy : ↑(Finset.sup s p) y = ↑(p i) y
⊢ ↑q y ≤ ↑(C • Finset.sup s p) y
[PROOFSTEP]
rw [smul_apply, hiy]
[GOAL]
case intro.intro.intro.intro
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p : ι → Seminorm 𝕜 E
s : Finset ι
q : Seminorm 𝕜 E
ε : ℝ
C : ℝ≥0
ε_pos : 0 < ε
c : 𝕜
hc : 1 < ‖c‖
hf : ∀ (x : E), (∀ (i : ι), i ∈ s → ↑(p i) x < ε) → ∀ (j : ι), j ∈ s → ε / ‖c‖ ≤ ↑(p j) x → ↑q x ≤ ↑(C • p j) x
x : E
j : ι
hj : j ∈ s
hjx : ↑(p j) x ≠ 0
this : ↑(Finset.sup s p) x ≠ 0
y : E
hle : ε / ‖c‖ ≤ ↑(Finset.sup s p) y
hlt : ↑(Finset.sup s p) y < ε
i : ι
hi : i ∈ s
hiy : ↑(Finset.sup s p) y = ↑(p i) y
⊢ ↑q y ≤ C • ↑(p i) y
[PROOFSTEP]
exact hf y (fun k hk ↦ (le_finset_sup_apply hk).trans_lt hlt) i hi (hiy ▸ hle)
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NontriviallyNormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p : ι → Seminorm 𝕜 E
s : Set E
hs : Absorbent 𝕜 s
h : ∀ (x : E), x ∈ s → BddAbove (range fun i => ↑(p i) x)
⊢ BddAbove (range p)
[PROOFSTEP]
rw [Seminorm.bddAbove_range_iff]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NontriviallyNormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p : ι → Seminorm 𝕜 E
s : Set E
hs : Absorbent 𝕜 s
h : ∀ (x : E), x ∈ s → BddAbove (range fun i => ↑(p i) x)
⊢ ∀ (x : E), BddAbove (range fun i => ↑(p i) x)
[PROOFSTEP]
intro x
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NontriviallyNormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p : ι → Seminorm 𝕜 E
s : Set E
hs : Absorbent 𝕜 s
h : ∀ (x : E), x ∈ s → BddAbove (range fun i => ↑(p i) x)
x : E
⊢ BddAbove (range fun i => ↑(p i) x)
[PROOFSTEP]
rcases hs x with ⟨r, hr, hrx⟩
[GOAL]
case intro.intro
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NontriviallyNormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p : ι → Seminorm 𝕜 E
s : Set E
hs : Absorbent 𝕜 s
h : ∀ (x : E), x ∈ s → BddAbove (range fun i => ↑(p i) x)
x : E
r : ℝ
hr : 0 < r
hrx : ∀ (a : 𝕜), r ≤ ‖a‖ → x ∈ a • s
⊢ BddAbove (range fun i => ↑(p i) x)
[PROOFSTEP]
rcases exists_lt_norm 𝕜 r with ⟨k, hk⟩
[GOAL]
case intro.intro.intro
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NontriviallyNormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p : ι → Seminorm 𝕜 E
s : Set E
hs : Absorbent 𝕜 s
h : ∀ (x : E), x ∈ s → BddAbove (range fun i => ↑(p i) x)
x : E
r : ℝ
hr : 0 < r
hrx : ∀ (a : 𝕜), r ≤ ‖a‖ → x ∈ a • s
k : 𝕜
hk : r < ‖k‖
⊢ BddAbove (range fun i => ↑(p i) x)
[PROOFSTEP]
have hk0 : k ≠ 0 := norm_pos_iff.mp (hr.trans hk)
[GOAL]
case intro.intro.intro
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NontriviallyNormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p : ι → Seminorm 𝕜 E
s : Set E
hs : Absorbent 𝕜 s
h : ∀ (x : E), x ∈ s → BddAbove (range fun i => ↑(p i) x)
x : E
r : ℝ
hr : 0 < r
hrx : ∀ (a : 𝕜), r ≤ ‖a‖ → x ∈ a • s
k : 𝕜
hk : r < ‖k‖
hk0 : k ≠ 0
⊢ BddAbove (range fun i => ↑(p i) x)
[PROOFSTEP]
have : k⁻¹ • x ∈ s := by
  rw [← mem_smul_set_iff_inv_smul_mem₀ hk0]
  exact hrx k hk.le
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NontriviallyNormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p : ι → Seminorm 𝕜 E
s : Set E
hs : Absorbent 𝕜 s
h : ∀ (x : E), x ∈ s → BddAbove (range fun i => ↑(p i) x)
x : E
r : ℝ
hr : 0 < r
hrx : ∀ (a : 𝕜), r ≤ ‖a‖ → x ∈ a • s
k : 𝕜
hk : r < ‖k‖
hk0 : k ≠ 0
⊢ k⁻¹ • x ∈ s
[PROOFSTEP]
rw [← mem_smul_set_iff_inv_smul_mem₀ hk0]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NontriviallyNormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p : ι → Seminorm 𝕜 E
s : Set E
hs : Absorbent 𝕜 s
h : ∀ (x : E), x ∈ s → BddAbove (range fun i => ↑(p i) x)
x : E
r : ℝ
hr : 0 < r
hrx : ∀ (a : 𝕜), r ≤ ‖a‖ → x ∈ a • s
k : 𝕜
hk : r < ‖k‖
hk0 : k ≠ 0
⊢ x ∈ k • s
[PROOFSTEP]
exact hrx k hk.le
[GOAL]
case intro.intro.intro
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NontriviallyNormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p : ι → Seminorm 𝕜 E
s : Set E
hs : Absorbent 𝕜 s
h : ∀ (x : E), x ∈ s → BddAbove (range fun i => ↑(p i) x)
x : E
r : ℝ
hr : 0 < r
hrx : ∀ (a : 𝕜), r ≤ ‖a‖ → x ∈ a • s
k : 𝕜
hk : r < ‖k‖
hk0 : k ≠ 0
this : k⁻¹ • x ∈ s
⊢ BddAbove (range fun i => ↑(p i) x)
[PROOFSTEP]
rcases h (k⁻¹ • x) this with ⟨M, hM⟩
[GOAL]
case intro.intro.intro.intro
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NontriviallyNormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p : ι → Seminorm 𝕜 E
s : Set E
hs : Absorbent 𝕜 s
h : ∀ (x : E), x ∈ s → BddAbove (range fun i => ↑(p i) x)
x : E
r : ℝ
hr : 0 < r
hrx : ∀ (a : 𝕜), r ≤ ‖a‖ → x ∈ a • s
k : 𝕜
hk : r < ‖k‖
hk0 : k ≠ 0
this : k⁻¹ • x ∈ s
M : ℝ
hM : M ∈ upperBounds (range fun i => ↑(p i) (k⁻¹ • x))
⊢ BddAbove (range fun i => ↑(p i) x)
[PROOFSTEP]
refine ⟨‖k‖ * M, forall_range_iff.mpr fun i ↦ ?_⟩
[GOAL]
case intro.intro.intro.intro
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NontriviallyNormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p : ι → Seminorm 𝕜 E
s : Set E
hs : Absorbent 𝕜 s
h : ∀ (x : E), x ∈ s → BddAbove (range fun i => ↑(p i) x)
x : E
r : ℝ
hr : 0 < r
hrx : ∀ (a : 𝕜), r ≤ ‖a‖ → x ∈ a • s
k : 𝕜
hk : r < ‖k‖
hk0 : k ≠ 0
this : k⁻¹ • x ∈ s
M : ℝ
hM : M ∈ upperBounds (range fun i => ↑(p i) (k⁻¹ • x))
i : ι
⊢ ↑(p i) x ≤ ‖k‖ * M
[PROOFSTEP]
have := (forall_range_iff.mp hM) i
[GOAL]
case intro.intro.intro.intro
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NontriviallyNormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p : ι → Seminorm 𝕜 E
s : Set E
hs : Absorbent 𝕜 s
h : ∀ (x : E), x ∈ s → BddAbove (range fun i => ↑(p i) x)
x : E
r : ℝ
hr : 0 < r
hrx : ∀ (a : 𝕜), r ≤ ‖a‖ → x ∈ a • s
k : 𝕜
hk : r < ‖k‖
hk0 : k ≠ 0
this✝ : k⁻¹ • x ∈ s
M : ℝ
hM : M ∈ upperBounds (range fun i => ↑(p i) (k⁻¹ • x))
i : ι
this : ↑(p i) (k⁻¹ • x) ≤ M
⊢ ↑(p i) x ≤ ‖k‖ * M
[PROOFSTEP]
rwa [map_smul_eq_mul, norm_inv, inv_mul_le_iff (hr.trans hk)] at this
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
r : ℝ
⊢ Seminorm.ball (normSeminorm 𝕜 E) = Metric.ball
[PROOFSTEP]
ext x r y
[GOAL]
case h.h.h
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
r✝ : ℝ
x : E
r : ℝ
y : E
⊢ y ∈ Seminorm.ball (normSeminorm 𝕜 E) x r ↔ y ∈ Metric.ball x r
[PROOFSTEP]
simp only [Seminorm.mem_ball, Metric.mem_ball, coe_normSeminorm, dist_eq_norm]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
r : ℝ
x : E
hr : 0 < r
⊢ Absorbent 𝕜 (Metric.ball 0 r)
[PROOFSTEP]
rw [← ball_normSeminorm 𝕜]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
r : ℝ
x : E
hr : 0 < r
⊢ Absorbent 𝕜 (Seminorm.ball (normSeminorm 𝕜 E) 0 r)
[PROOFSTEP]
exact (normSeminorm _ _).absorbent_ball_zero hr
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
r : ℝ
x : E
hx : ‖x‖ < r
⊢ Absorbent 𝕜 (Metric.ball x r)
[PROOFSTEP]
rw [← ball_normSeminorm 𝕜]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
r : ℝ
x : E
hx : ‖x‖ < r
⊢ Absorbent 𝕜 (Seminorm.ball (normSeminorm 𝕜 E) x r)
[PROOFSTEP]
exact (normSeminorm _ _).absorbent_ball hx
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
r : ℝ
x : E
⊢ Balanced 𝕜 (Metric.ball 0 r)
[PROOFSTEP]
rw [← ball_normSeminorm 𝕜]
[GOAL]
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
r : ℝ
x : E
⊢ Balanced 𝕜 (Seminorm.ball (normSeminorm 𝕜 E) 0 r)
[PROOFSTEP]
exact (normSeminorm _ _).balanced_ball_zero r