Theorem: spectrum_star_mul_self_nonneg
File: Mathlib/Analysis/NormedSpace/Star/ContinuousFunctionalCalculus/Instances.lean

tactic: set a := star b * b
state_before: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
⊢ ∀ x ∈ σ ℝ (star b * b), 0 ≤ x
state_after: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
⊢ ∀ x ∈ σ ℝ a, 0 ≤ x

tactic: have a_def : a = star b * b := rfl
state_before: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
⊢ ∀ x ∈ σ ℝ a, 0 ≤ x
state_after: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
⊢ ∀ x ∈ σ ℝ a, 0 ≤ x

tactic: let a_neg : A := cfc (fun x ↦ (- ContinuousMap.id ℝ ⊔ 0) x) a
state_before: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
⊢ ∀ x ∈ σ ℝ a, 0 ≤ x
state_after: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
⊢ ∀ x ∈ σ ℝ a, 0 ≤ x

tactic: set c := b * a_neg
state_before: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
⊢ ∀ x ∈ σ ℝ a, 0 ≤ x
state_after: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
⊢ ∀ x ∈ σ ℝ a, 0 ≤ x

tactic: have c_eq := star_mul_self_add_self_mul_star c
state_before: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
h_eq_a_neg : -(star c * c) = a_neg ^ 3
h_c_spec₀ : SpectrumRestricts (-(star c * c)) fun x => ContinuousMap.realToNNReal x
⊢ ∀ x ∈ σ ℝ a, 0 ≤ x
state_after: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
h_eq_a_neg : -(star c * c) = a_neg ^ 3
h_c_spec₀ : SpectrumRestricts (-(star c * c)) fun x => ContinuousMap.realToNNReal x
c_eq : star c * c + c * star c = 2 • (↑(ℜ c) * ↑(ℜ c) + ↑(ℑ c) * ↑(ℑ c))
⊢ ∀ x ∈ σ ℝ a, 0 ≤ x

tactic: rw [← eq_sub_iff_add_eq', sub_eq_add_neg, ← sq, ← sq] at c_eq
state_before: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
h_eq_a_neg : -(star c * c) = a_neg ^ 3
h_c_spec₀ : SpectrumRestricts (-(star c * c)) fun x => ContinuousMap.realToNNReal x
c_eq : star c * c + c * star c = 2 • (↑(ℜ c) * ↑(ℜ c) + ↑(ℑ c) * ↑(ℑ c))
⊢ ∀ x ∈ σ ℝ a, 0 ≤ x
state_after: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
h_eq_a_neg : -(star c * c) = a_neg ^ 3
h_c_spec₀ : SpectrumRestricts (-(star c * c)) fun x => ContinuousMap.realToNNReal x
c_eq : c * star c = 2 • (↑(ℜ c) ^ 2 + ↑(ℑ c) ^ 2) + -(star c * c)
⊢ ∀ x ∈ σ ℝ a, 0 ≤ x

tactic: have h_c_spec₂ : SpectrumRestricts (star c * c) ContinuousMap.realToNNReal := by
  rw [SpectrumRestricts.nnreal_iff] at h_c_spec₁ ⊢
  intro x hx
  replace hx := Set.subset_diff_union _ {(0 : ℝ)} hx
  rw [spectrum.nonzero_mul_eq_swap_mul, Set.diff_union_self, Set.union_singleton,
    Set.mem_insert_iff] at hx
  obtain (rfl | hx) := hx
  exacts [le_rfl, h_c_spec₁ x hx]
state_before: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
h_eq_a_neg : -(star c * c) = a_neg ^ 3
h_c_spec₀ : SpectrumRestricts (-(star c * c)) fun x => ContinuousMap.realToNNReal x
c_eq : c * star c = 2 • (↑(ℜ c) ^ 2 + ↑(ℑ c) ^ 2) + -(star c * c)
h_c_spec₁ : SpectrumRestricts (c * star c) ⇑ContinuousMap.realToNNReal
⊢ ∀ x ∈ σ ℝ a, 0 ≤ x
state_after: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
h_eq_a_neg : -(star c * c) = a_neg ^ 3
h_c_spec₀ : SpectrumRestricts (-(star c * c)) fun x => ContinuousMap.realToNNReal x
c_eq : c * star c = 2 • (↑(ℜ c) ^ 2 + ↑(ℑ c) ^ 2) + -(star c * c)
h_c_spec₁ : SpectrumRestricts (c * star c) ⇑ContinuousMap.realToNNReal
h_c_spec₂ : SpectrumRestricts (star c * c) ⇑ContinuousMap.realToNNReal
⊢ ∀ x ∈ σ ℝ a, 0 ≤ x

tactic: rw [h_c_spec₂.eq_zero_of_neg (.star_mul_self c) h_c_spec₀, neg_zero] at h_eq_a_neg
state_before: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
h_eq_a_neg : -(star c * c) = a_neg ^ 3
h_c_spec₀ : SpectrumRestricts (-(star c * c)) fun x => ContinuousMap.realToNNReal x
c_eq : c * star c = 2 • (↑(ℜ c) ^ 2 + ↑(ℑ c) ^ 2) + -(star c * c)
h_c_spec₁ : SpectrumRestricts (c * star c) ⇑ContinuousMap.realToNNReal
h_c_spec₂ : SpectrumRestricts (star c * c) ⇑ContinuousMap.realToNNReal
⊢ ∀ x ∈ σ ℝ a, 0 ≤ x
state_after: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
h_eq_a_neg : 0 = a_neg ^ 3
h_c_spec₀ : SpectrumRestricts (-(star c * c)) fun x => ContinuousMap.realToNNReal x
c_eq : c * star c = 2 • (↑(ℜ c) ^ 2 + ↑(ℑ c) ^ 2) + -(star c * c)
h_c_spec₁ : SpectrumRestricts (c * star c) ⇑ContinuousMap.realToNNReal
h_c_spec₂ : SpectrumRestricts (star c * c) ⇑ContinuousMap.realToNNReal
⊢ ∀ x ∈ σ ℝ a, 0 ≤ x

tactic: simp only [a_neg] at h_eq_a_neg
state_before: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
h_eq_a_neg : 0 = a_neg ^ 3
h_c_spec₀ : SpectrumRestricts (-(star c * c)) fun x => ContinuousMap.realToNNReal x
c_eq : c * star c = 2 • (↑(ℜ c) ^ 2 + ↑(ℑ c) ^ 2) + -(star c * c)
h_c_spec₁ : SpectrumRestricts (c * star c) ⇑ContinuousMap.realToNNReal
h_c_spec₂ : SpectrumRestricts (star c * c) ⇑ContinuousMap.realToNNReal
⊢ ∀ x ∈ σ ℝ a, 0 ≤ x
state_after: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
h_eq_a_neg : 0 = cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a ^ 3
h_c_spec₀ : SpectrumRestricts (-(star c * c)) fun x => ContinuousMap.realToNNReal x
c_eq : c * star c = 2 • (↑(ℜ c) ^ 2 + ↑(ℑ c) ^ 2) + -(star c * c)
h_c_spec₁ : SpectrumRestricts (c * star c) ⇑ContinuousMap.realToNNReal
h_c_spec₂ : SpectrumRestricts (star c * c) ⇑ContinuousMap.realToNNReal
⊢ ∀ x ∈ σ ℝ a, 0 ≤ x

tactic: rw [← cfc_pow _ _ (ha := by aesop (add simp a)), ← cfc_zero a (R := ℝ)] at h_eq_a_neg
state_before: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
h_eq_a_neg : 0 = cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a ^ 3
h_c_spec₀ : SpectrumRestricts (-(star c * c)) fun x => ContinuousMap.realToNNReal x
c_eq : c * star c = 2 • (↑(ℜ c) ^ 2 + ↑(ℑ c) ^ 2) + -(star c * c)
h_c_spec₁ : SpectrumRestricts (c * star c) ⇑ContinuousMap.realToNNReal
h_c_spec₂ : SpectrumRestricts (star c * c) ⇑ContinuousMap.realToNNReal
⊢ ∀ x ∈ σ ℝ a, 0 ≤ x
state_after: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
h_eq_a_neg : cfc 0 a = cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x ^ 3) a
h_c_spec₀ : SpectrumRestricts (-(star c * c)) fun x => ContinuousMap.realToNNReal x
c_eq : c * star c = 2 • (↑(ℜ c) ^ 2 + ↑(ℑ c) ^ 2) + -(star c * c)
h_c_spec₁ : SpectrumRestricts (c * star c) ⇑ContinuousMap.realToNNReal
h_c_spec₂ : SpectrumRestricts (star c * c) ⇑ContinuousMap.realToNNReal
⊢ ∀ x ∈ σ ℝ a, 0 ≤ x

tactic: intro x hx
state_before: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
h_eq_a_neg : cfc 0 a = cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x ^ 3) a
h_c_spec₀ : SpectrumRestricts (-(star c * c)) fun x => ContinuousMap.realToNNReal x
c_eq : c * star c = 2 • (↑(ℜ c) ^ 2 + ↑(ℑ c) ^ 2) + -(star c * c)
h_c_spec₁ : SpectrumRestricts (c * star c) ⇑ContinuousMap.realToNNReal
h_c_spec₂ : SpectrumRestricts (star c * c) ⇑ContinuousMap.realToNNReal
⊢ ∀ x ∈ σ ℝ a, 0 ≤ x
state_after: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
h_eq_a_neg : cfc 0 a = cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x ^ 3) a
h_c_spec₀ : SpectrumRestricts (-(star c * c)) fun x => ContinuousMap.realToNNReal x
c_eq : c * star c = 2 • (↑(ℜ c) ^ 2 + ↑(ℑ c) ^ 2) + -(star c * c)
h_c_spec₁ : SpectrumRestricts (c * star c) ⇑ContinuousMap.realToNNReal
h_c_spec₂ : SpectrumRestricts (star c * c) ⇑ContinuousMap.realToNNReal
x : ℝ
hx : x ∈ σ ℝ a
⊢ 0 ≤ x

tactic: by_contra! hx'
state_before: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
h_eq_a_neg : cfc 0 a = cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x ^ 3) a
h_c_spec₀ : SpectrumRestricts (-(star c * c)) fun x => ContinuousMap.realToNNReal x
c_eq : c * star c = 2 • (↑(ℜ c) ^ 2 + ↑(ℑ c) ^ 2) + -(star c * c)
h_c_spec₁ : SpectrumRestricts (c * star c) ⇑ContinuousMap.realToNNReal
h_c_spec₂ : SpectrumRestricts (star c * c) ⇑ContinuousMap.realToNNReal
x : ℝ
hx : x ∈ σ ℝ a
⊢ 0 ≤ x
state_after: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
h_eq_a_neg : cfc 0 a = cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x ^ 3) a
h_c_spec₀ : SpectrumRestricts (-(star c * c)) fun x => ContinuousMap.realToNNReal x
c_eq : c * star c = 2 • (↑(ℜ c) ^ 2 + ↑(ℑ c) ^ 2) + -(star c * c)
h_c_spec₁ : SpectrumRestricts (c * star c) ⇑ContinuousMap.realToNNReal
h_c_spec₂ : SpectrumRestricts (star c * c) ⇑ContinuousMap.realToNNReal
x : ℝ
hx : x ∈ σ ℝ a
hx' : x < 0
⊢ False

tactic: rw [← neg_pos] at hx'
state_before: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
h_eq_a_neg : cfc 0 a = cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x ^ 3) a
h_c_spec₀ : SpectrumRestricts (-(star c * c)) fun x => ContinuousMap.realToNNReal x
c_eq : c * star c = 2 • (↑(ℜ c) ^ 2 + ↑(ℑ c) ^ 2) + -(star c * c)
h_c_spec₁ : SpectrumRestricts (c * star c) ⇑ContinuousMap.realToNNReal
h_c_spec₂ : SpectrumRestricts (star c * c) ⇑ContinuousMap.realToNNReal
x : ℝ
hx : x ∈ σ ℝ a
hx' : x < 0
⊢ False
state_after: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
h_eq_a_neg : cfc 0 a = cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x ^ 3) a
h_c_spec₀ : SpectrumRestricts (-(star c * c)) fun x => ContinuousMap.realToNNReal x
c_eq : c * star c = 2 • (↑(ℜ c) ^ 2 + ↑(ℑ c) ^ 2) + -(star c * c)
h_c_spec₁ : SpectrumRestricts (c * star c) ⇑ContinuousMap.realToNNReal
h_c_spec₂ : SpectrumRestricts (star c * c) ⇑ContinuousMap.realToNNReal
x : ℝ
hx : x ∈ σ ℝ a
hx' : 0 < -x
⊢ False

tactic: apply (pow_pos hx' 3).ne
state_before: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
h_eq_a_neg : cfc 0 a = cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x ^ 3) a
h_c_spec₀ : SpectrumRestricts (-(star c * c)) fun x => ContinuousMap.realToNNReal x
c_eq : c * star c = 2 • (↑(ℜ c) ^ 2 + ↑(ℑ c) ^ 2) + -(star c * c)
h_c_spec₁ : SpectrumRestricts (c * star c) ⇑ContinuousMap.realToNNReal
h_c_spec₂ : SpectrumRestricts (star c * c) ⇑ContinuousMap.realToNNReal
x : ℝ
hx : x ∈ σ ℝ a
hx' : 0 < -x
⊢ False
state_after: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
h_eq_a_neg : cfc 0 a = cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x ^ 3) a
h_c_spec₀ : SpectrumRestricts (-(star c * c)) fun x => ContinuousMap.realToNNReal x
c_eq : c * star c = 2 • (↑(ℜ c) ^ 2 + ↑(ℑ c) ^ 2) + -(star c * c)
h_c_spec₁ : SpectrumRestricts (c * star c) ⇑ContinuousMap.realToNNReal
h_c_spec₂ : SpectrumRestricts (star c * c) ⇑ContinuousMap.realToNNReal
x : ℝ
hx : x ∈ σ ℝ a
hx' : 0 < -x
⊢ 0 = (-x) ^ 3

tactic: have h_eqOn := eqOn_of_cfc_eq_cfc (ha := IsSelfAdjoint.star_mul_self b) h_eq_a_neg
state_before: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
h_eq_a_neg : cfc 0 a = cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x ^ 3) a
h_c_spec₀ : SpectrumRestricts (-(star c * c)) fun x => ContinuousMap.realToNNReal x
c_eq : c * star c = 2 • (↑(ℜ c) ^ 2 + ↑(ℑ c) ^ 2) + -(star c * c)
h_c_spec₁ : SpectrumRestricts (c * star c) ⇑ContinuousMap.realToNNReal
h_c_spec₂ : SpectrumRestricts (star c * c) ⇑ContinuousMap.realToNNReal
x : ℝ
hx : x ∈ σ ℝ a
hx' : 0 < -x
⊢ 0 = (-x) ^ 3
state_after: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
h_eq_a_neg : cfc 0 a = cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x ^ 3) a
h_c_spec₀ : SpectrumRestricts (-(star c * c)) fun x => ContinuousMap.realToNNReal x
c_eq : c * star c = 2 • (↑(ℜ c) ^ 2 + ↑(ℑ c) ^ 2) + -(star c * c)
h_c_spec₁ : SpectrumRestricts (c * star c) ⇑ContinuousMap.realToNNReal
h_c_spec₂ : SpectrumRestricts (star c * c) ⇑ContinuousMap.realToNNReal
x : ℝ
hx : x ∈ σ ℝ a
hx' : 0 < -x
h_eqOn : Set.EqOn 0 (fun x => (-ContinuousMap.id ℝ ⊔ 0) x ^ 3) (σ ℝ a)
⊢ 0 = (-x) ^ 3

tactic: simpa [sup_eq_left.mpr hx'.le] using h_eqOn hx
state_before: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
h_eq_a_neg : cfc 0 a = cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x ^ 3) a
h_c_spec₀ : SpectrumRestricts (-(star c * c)) fun x => ContinuousMap.realToNNReal x
c_eq : c * star c = 2 • (↑(ℜ c) ^ 2 + ↑(ℑ c) ^ 2) + -(star c * c)
h_c_spec₁ : SpectrumRestricts (c * star c) ⇑ContinuousMap.realToNNReal
h_c_spec₂ : SpectrumRestricts (star c * c) ⇑ContinuousMap.realToNNReal
x : ℝ
hx : x ∈ σ ℝ a
hx' : 0 < -x
h_eqOn : Set.EqOn 0 (fun x => (-ContinuousMap.id ℝ ⊔ 0) x ^ 3) (σ ℝ a)
⊢ 0 = (-x) ^ 3
state_after: no goals

tactic: simp only [c, a_neg, star_mul]
state_before: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
⊢ -(star c * c) = a_neg ^ 3
state_after: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
⊢ -(star (cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a) * star b * (b * cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a)) =
    cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a ^ 3

tactic: rw [← mul_assoc, mul_assoc _ _ b, ← cfc_star, ← cfc_id' ℝ (star b * b), a_def, ← neg_mul]
state_before: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
⊢ -(star (cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a) * star b * (b * cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a)) =
    cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a ^ 3
state_after: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
⊢ -(cfc (fun x => star ((-ContinuousMap.id ℝ ⊔ 0) x)) (star b * b) * cfc (fun x => x) (star b * b)) *
      cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) (star b * b) =
    cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) (star b * b) ^ 3

tactic: rw [← cfc_mul _ _ (star b * b) (by simp; fun_prop), neg_mul]
state_before: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
⊢ -(cfc (fun x => star ((-ContinuousMap.id ℝ ⊔ 0) x)) (star b * b) * cfc (fun x => x) (star b * b)) *
      cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) (star b * b) =
    cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) (star b * b) ^ 3
state_after: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
⊢ -(cfc (fun x => star ((-ContinuousMap.id ℝ ⊔ 0) x) * x) (star b * b) *
        cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) (star b * b)) =
    cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) (star b * b) ^ 3

tactic: simp only [ContinuousMap.coe_neg, ContinuousMap.coe_id, Pi.sup_apply, Pi.neg_apply,
  star_trivial]
state_before: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
⊢ -(cfc (fun x => star ((-ContinuousMap.id ℝ ⊔ 0) x) * x) (star b * b) *
        cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) (star b * b)) =
    cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) (star b * b) ^ 3
state_after: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
⊢ -(cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x * x) (star b * b) *
        cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) (star b * b)) =
    cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) (star b * b) ^ 3

tactic: rw [← cfc_mul .., ← cfc_neg .., ← cfc_pow ..]
state_before: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
⊢ -(cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x * x) (star b * b) *
        cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) (star b * b)) =
    cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) (star b * b) ^ 3
state_after: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
⊢ cfc (fun x => -((-ContinuousMap.id ℝ ⊔ 0) x * x * (-ContinuousMap.id ℝ ⊔ 0) x)) (star b * b) =
    cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x ^ 3) (star b * b)

tactic: congr
state_before: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
⊢ cfc (fun x => -((-ContinuousMap.id ℝ ⊔ 0) x * x * (-ContinuousMap.id ℝ ⊔ 0) x)) (star b * b) =
    cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x ^ 3) (star b * b)
state_after: case e_f
A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
⊢ (fun x => -((-ContinuousMap.id ℝ ⊔ 0) x * x * (-ContinuousMap.id ℝ ⊔ 0) x)) = fun x => (-ContinuousMap.id ℝ ⊔ 0) x ^ 3

tactic: ext x
state_before: case e_f
A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
⊢ (fun x => -((-ContinuousMap.id ℝ ⊔ 0) x * x * (-ContinuousMap.id ℝ ⊔ 0) x)) = fun x => (-ContinuousMap.id ℝ ⊔ 0) x ^ 3
state_after: case e_f.h
A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
x : ℝ
⊢ -((-ContinuousMap.id ℝ ⊔ 0) x * x * (-ContinuousMap.id ℝ ⊔ 0) x) = (-ContinuousMap.id ℝ ⊔ 0) x ^ 3

tactic: by_cases hx : x ≤ 0
state_before: case e_f.h
A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
x : ℝ
⊢ -((-ContinuousMap.id ℝ ⊔ 0) x * x * (-ContinuousMap.id ℝ ⊔ 0) x) = (-ContinuousMap.id ℝ ⊔ 0) x ^ 3
state_after: case pos
A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
x : ℝ
hx : x ≤ 0
⊢ -((-ContinuousMap.id ℝ ⊔ 0) x * x * (-ContinuousMap.id ℝ ⊔ 0) x) = (-ContinuousMap.id ℝ ⊔ 0) x ^ 3

case neg
A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
x : ℝ
hx : ¬x ≤ 0
⊢ -((-ContinuousMap.id ℝ ⊔ 0) x * x * (-ContinuousMap.id ℝ ⊔ 0) x) = (-ContinuousMap.id ℝ ⊔ 0) x ^ 3

tactic: simp
state_before: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
⊢ ContinuousOn (fun x => star ((-ContinuousMap.id ℝ ⊔ 0) x)) (σ ℝ (star b * b))
state_after: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
⊢ ContinuousOn (fun x => -x ⊔ 0) (σ ℝ (star b * b))

tactic: fun_prop
state_before: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
⊢ ContinuousOn (fun x => -x ⊔ 0) (σ ℝ (star b * b))
state_after: no goals

tactic: rw [← neg_nonneg] at hx
state_before: case pos
A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
x : ℝ
hx : x ≤ 0
⊢ -((-ContinuousMap.id ℝ ⊔ 0) x * x * (-ContinuousMap.id ℝ ⊔ 0) x) = (-ContinuousMap.id ℝ ⊔ 0) x ^ 3
state_after: case pos
A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
x : ℝ
hx : 0 ≤ -x
⊢ -((-ContinuousMap.id ℝ ⊔ 0) x * x * (-ContinuousMap.id ℝ ⊔ 0) x) = (-ContinuousMap.id ℝ ⊔ 0) x ^ 3

tactic: simp [sup_eq_left.mpr hx, pow_succ]
state_before: case pos
A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
x : ℝ
hx : 0 ≤ -x
⊢ -((-ContinuousMap.id ℝ ⊔ 0) x * x * (-ContinuousMap.id ℝ ⊔ 0) x) = (-ContinuousMap.id ℝ ⊔ 0) x ^ 3
state_after: no goals

tactic: rw [not_le, ← neg_neg_iff_pos] at hx
state_before: case neg
A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
x : ℝ
hx : ¬x ≤ 0
⊢ -((-ContinuousMap.id ℝ ⊔ 0) x * x * (-ContinuousMap.id ℝ ⊔ 0) x) = (-ContinuousMap.id ℝ ⊔ 0) x ^ 3
state_after: case neg
A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
x : ℝ
hx : -x < 0
⊢ -((-ContinuousMap.id ℝ ⊔ 0) x * x * (-ContinuousMap.id ℝ ⊔ 0) x) = (-ContinuousMap.id ℝ ⊔ 0) x ^ 3

tactic: simp [sup_eq_right.mpr hx.le]
state_before: case neg
A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
x : ℝ
hx : -x < 0
⊢ -((-ContinuousMap.id ℝ ⊔ 0) x * x * (-ContinuousMap.id ℝ ⊔ 0) x) = (-ContinuousMap.id ℝ ⊔ 0) x ^ 3
state_after: no goals

tactic: simp only [SpectrumRestricts.nnreal_iff, h_eq_a_neg]
state_before: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
h_eq_a_neg : -(star c * c) = a_neg ^ 3
⊢ SpectrumRestricts (-(star c * c)) fun x => ContinuousMap.realToNNReal x
state_after: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
h_eq_a_neg : -(star c * c) = a_neg ^ 3
⊢ ∀ x ∈ σ ℝ (a_neg ^ 3), 0 ≤ x

tactic: rw [← cfc_pow _ _ (ha := .star_mul_self b)]
state_before: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
h_eq_a_neg : -(star c * c) = a_neg ^ 3
⊢ ∀ x ∈ σ ℝ (a_neg ^ 3), 0 ≤ x
state_after: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
h_eq_a_neg : -(star c * c) = a_neg ^ 3
⊢ ∀ x ∈ σ ℝ (cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x ^ 3) a), 0 ≤ x

tactic: simp only [cfc_map_spectrum (R := ℝ) (fun x => (-ContinuousMap.id ℝ ⊔ 0) x ^ 3) (star b * b)]
state_before: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
h_eq_a_neg : -(star c * c) = a_neg ^ 3
⊢ ∀ x ∈ σ ℝ (cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x ^ 3) a), 0 ≤ x
state_after: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
h_eq_a_neg : -(star c * c) = a_neg ^ 3
⊢ ∀ x ∈ (fun x => (-ContinuousMap.id ℝ ⊔ 0) x ^ 3) '' σ ℝ (star b * b), 0 ≤ x

tactic: rintro - ⟨x, -, rfl⟩
state_before: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
h_eq_a_neg : -(star c * c) = a_neg ^ 3
⊢ ∀ x ∈ (fun x => (-ContinuousMap.id ℝ ⊔ 0) x ^ 3) '' σ ℝ (star b * b), 0 ≤ x
state_after: case intro.intro
A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
h_eq_a_neg : -(star c * c) = a_neg ^ 3
x : ℝ
⊢ 0 ≤ (fun x => (-ContinuousMap.id ℝ ⊔ 0) x ^ 3) x

tactic: simp
state_before: case intro.intro
A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
h_eq_a_neg : -(star c * c) = a_neg ^ 3
x : ℝ
⊢ 0 ≤ (fun x => (-ContinuousMap.id ℝ ⊔ 0) x ^ 3) x
state_after: no goals

tactic: rw [c_eq]
state_before: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
h_eq_a_neg : -(star c * c) = a_neg ^ 3
h_c_spec₀ : SpectrumRestricts (-(star c * c)) fun x => ContinuousMap.realToNNReal x
c_eq : c * star c = 2 • (↑(ℜ c) ^ 2 + ↑(ℑ c) ^ 2) + -(star c * c)
⊢ SpectrumRestricts (c * star c) ⇑ContinuousMap.realToNNReal
state_after: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
h_eq_a_neg : -(star c * c) = a_neg ^ 3
h_c_spec₀ : SpectrumRestricts (-(star c * c)) fun x => ContinuousMap.realToNNReal x
c_eq : c * star c = 2 • (↑(ℜ c) ^ 2 + ↑(ℑ c) ^ 2) + -(star c * c)
⊢ SpectrumRestricts (2 • (↑(ℜ c) ^ 2 + ↑(ℑ c) ^ 2) + -(star c * c)) ⇑ContinuousMap.realToNNReal

tactic: refine SpectrumRestricts.nnreal_add ?_ ?_ ?_ h_c_spec₀
state_before: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
h_eq_a_neg : -(star c * c) = a_neg ^ 3
h_c_spec₀ : SpectrumRestricts (-(star c * c)) fun x => ContinuousMap.realToNNReal x
c_eq : c * star c = 2 • (↑(ℜ c) ^ 2 + ↑(ℑ c) ^ 2) + -(star c * c)
⊢ SpectrumRestricts (2 • (↑(ℜ c) ^ 2 + ↑(ℑ c) ^ 2) + -(star c * c)) ⇑ContinuousMap.realToNNReal
state_after: case refine_1
A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
h_eq_a_neg : -(star c * c) = a_neg ^ 3
h_c_spec₀ : SpectrumRestricts (-(star c * c)) fun x => ContinuousMap.realToNNReal x
c_eq : c * star c = 2 • (↑(ℜ c) ^ 2 + ↑(ℑ c) ^ 2) + -(star c * c)
⊢ IsSelfAdjoint (2 • (↑(ℜ c) ^ 2 + ↑(ℑ c) ^ 2))

case refine_2
A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
h_eq_a_neg : -(star c * c) = a_neg ^ 3
h_c_spec₀ : SpectrumRestricts (-(star c * c)) fun x => ContinuousMap.realToNNReal x
c_eq : c * star c = 2 • (↑(ℜ c) ^ 2 + ↑(ℑ c) ^ 2) + -(star c * c)
⊢ IsSelfAdjoint (-(star c * c))

case refine_3
A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
h_eq_a_neg : -(star c * c) = a_neg ^ 3
h_c_spec₀ : SpectrumRestricts (-(star c * c)) fun x => ContinuousMap.realToNNReal x
c_eq : c * star c = 2 • (↑(ℜ c) ^ 2 + ↑(ℑ c) ^ 2) + -(star c * c)
⊢ SpectrumRestricts (2 • (↑(ℜ c) ^ 2 + ↑(ℑ c) ^ 2)) ⇑ContinuousMap.realToNNReal

tactic: exact IsSelfAdjoint.smul (by rfl) <| ((ℜ c).prop.pow 2).add ((ℑ c).prop.pow 2)
state_before: case refine_1
A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
h_eq_a_neg : -(star c * c) = a_neg ^ 3
h_c_spec₀ : SpectrumRestricts (-(star c * c)) fun x => ContinuousMap.realToNNReal x
c_eq : c * star c = 2 • (↑(ℜ c) ^ 2 + ↑(ℑ c) ^ 2) + -(star c * c)
⊢ IsSelfAdjoint (2 • (↑(ℜ c) ^ 2 + ↑(ℑ c) ^ 2))
state_after: no goals

tactic: rfl
state_before: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
h_eq_a_neg : -(star c * c) = a_neg ^ 3
h_c_spec₀ : SpectrumRestricts (-(star c * c)) fun x => ContinuousMap.realToNNReal x
c_eq : c * star c = 2 • (↑(ℜ c) ^ 2 + ↑(ℑ c) ^ 2) + -(star c * c)
⊢ IsSelfAdjoint 2
state_after: no goals

tactic: exact (IsSelfAdjoint.star_mul_self c).neg
state_before: case refine_2
A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
h_eq_a_neg : -(star c * c) = a_neg ^ 3
h_c_spec₀ : SpectrumRestricts (-(star c * c)) fun x => ContinuousMap.realToNNReal x
c_eq : c * star c = 2 • (↑(ℜ c) ^ 2 + ↑(ℑ c) ^ 2) + -(star c * c)
⊢ IsSelfAdjoint (-(star c * c))
state_after: no goals

tactic: rw [nsmul_eq_smul_cast ℝ]
state_before: case refine_3
A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
h_eq_a_neg : -(star c * c) = a_neg ^ 3
h_c_spec₀ : SpectrumRestricts (-(star c * c)) fun x => ContinuousMap.realToNNReal x
c_eq : c * star c = 2 • (↑(ℜ c) ^ 2 + ↑(ℑ c) ^ 2) + -(star c * c)
⊢ SpectrumRestricts (2 • (↑(ℜ c) ^ 2 + ↑(ℑ c) ^ 2)) ⇑ContinuousMap.realToNNReal
state_after: case refine_3
A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
h_eq_a_neg : -(star c * c) = a_neg ^ 3
h_c_spec₀ : SpectrumRestricts (-(star c * c)) fun x => ContinuousMap.realToNNReal x
c_eq : c * star c = 2 • (↑(ℜ c) ^ 2 + ↑(ℑ c) ^ 2) + -(star c * c)
⊢ SpectrumRestricts (↑2 • (↑(ℜ c) ^ 2 + ↑(ℑ c) ^ 2)) ⇑ContinuousMap.realToNNReal

tactic: refine (ℜ c).2.sq_spectrumRestricts.nnreal_add ((ℜ c).2.pow 2) ((ℑ c).2.pow 2)
  (ℑ c).2.sq_spectrumRestricts |>.smul_of_nonneg <| by norm_num
state_before: case refine_3
A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
h_eq_a_neg : -(star c * c) = a_neg ^ 3
h_c_spec₀ : SpectrumRestricts (-(star c * c)) fun x => ContinuousMap.realToNNReal x
c_eq : c * star c = 2 • (↑(ℜ c) ^ 2 + ↑(ℑ c) ^ 2) + -(star c * c)
⊢ SpectrumRestricts (↑2 • (↑(ℜ c) ^ 2 + ↑(ℑ c) ^ 2)) ⇑ContinuousMap.realToNNReal
state_after: no goals

tactic: norm_num
state_before: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
h_eq_a_neg : -(star c * c) = a_neg ^ 3
h_c_spec₀ : SpectrumRestricts (-(star c * c)) fun x => ContinuousMap.realToNNReal x
c_eq : c * star c = 2 • (↑(ℜ c) ^ 2 + ↑(ℑ c) ^ 2) + -(star c * c)
⊢ 0 ≤ ↑2
state_after: no goals

tactic: rw [SpectrumRestricts.nnreal_iff] at h_c_spec₁ ⊢
state_before: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
h_eq_a_neg : -(star c * c) = a_neg ^ 3
h_c_spec₀ : SpectrumRestricts (-(star c * c)) fun x => ContinuousMap.realToNNReal x
c_eq : c * star c = 2 • (↑(ℜ c) ^ 2 + ↑(ℑ c) ^ 2) + -(star c * c)
h_c_spec₁ : SpectrumRestricts (c * star c) ⇑ContinuousMap.realToNNReal
⊢ SpectrumRestricts (star c * c) ⇑ContinuousMap.realToNNReal
state_after: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
h_eq_a_neg : -(star c * c) = a_neg ^ 3
h_c_spec₀ : SpectrumRestricts (-(star c * c)) fun x => ContinuousMap.realToNNReal x
c_eq : c * star c = 2 • (↑(ℜ c) ^ 2 + ↑(ℑ c) ^ 2) + -(star c * c)
h_c_spec₁ : ∀ x ∈ σ ℝ (c * star c), 0 ≤ x
⊢ ∀ x ∈ σ ℝ (star c * c), 0 ≤ x

tactic: intro x hx
state_before: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
h_eq_a_neg : -(star c * c) = a_neg ^ 3
h_c_spec₀ : SpectrumRestricts (-(star c * c)) fun x => ContinuousMap.realToNNReal x
c_eq : c * star c = 2 • (↑(ℜ c) ^ 2 + ↑(ℑ c) ^ 2) + -(star c * c)
h_c_spec₁ : ∀ x ∈ σ ℝ (c * star c), 0 ≤ x
⊢ ∀ x ∈ σ ℝ (star c * c), 0 ≤ x
state_after: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
h_eq_a_neg : -(star c * c) = a_neg ^ 3
h_c_spec₀ : SpectrumRestricts (-(star c * c)) fun x => ContinuousMap.realToNNReal x
c_eq : c * star c = 2 • (↑(ℜ c) ^ 2 + ↑(ℑ c) ^ 2) + -(star c * c)
h_c_spec₁ : ∀ x ∈ σ ℝ (c * star c), 0 ≤ x
x : ℝ
hx : x ∈ σ ℝ (star c * c)
⊢ 0 ≤ x

tactic: replace hx := Set.subset_diff_union _ {(0 : ℝ)} hx
state_before: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
h_eq_a_neg : -(star c * c) = a_neg ^ 3
h_c_spec₀ : SpectrumRestricts (-(star c * c)) fun x => ContinuousMap.realToNNReal x
c_eq : c * star c = 2 • (↑(ℜ c) ^ 2 + ↑(ℑ c) ^ 2) + -(star c * c)
h_c_spec₁ : ∀ x ∈ σ ℝ (c * star c), 0 ≤ x
x : ℝ
hx : x ∈ σ ℝ (star c * c)
⊢ 0 ≤ x
state_after: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
h_eq_a_neg : -(star c * c) = a_neg ^ 3
h_c_spec₀ : SpectrumRestricts (-(star c * c)) fun x => ContinuousMap.realToNNReal x
c_eq : c * star c = 2 • (↑(ℜ c) ^ 2 + ↑(ℑ c) ^ 2) + -(star c * c)
h_c_spec₁ : ∀ x ∈ σ ℝ (c * star c), 0 ≤ x
x : ℝ
hx : x ∈ σ ℝ (star c * c) \ {0} ∪ {0}
⊢ 0 ≤ x

tactic: rw [spectrum.nonzero_mul_eq_swap_mul, Set.diff_union_self, Set.union_singleton,
  Set.mem_insert_iff] at hx
state_before: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
h_eq_a_neg : -(star c * c) = a_neg ^ 3
h_c_spec₀ : SpectrumRestricts (-(star c * c)) fun x => ContinuousMap.realToNNReal x
c_eq : c * star c = 2 • (↑(ℜ c) ^ 2 + ↑(ℑ c) ^ 2) + -(star c * c)
h_c_spec₁ : ∀ x ∈ σ ℝ (c * star c), 0 ≤ x
x : ℝ
hx : x ∈ σ ℝ (star c * c) \ {0} ∪ {0}
⊢ 0 ≤ x
state_after: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
h_eq_a_neg : -(star c * c) = a_neg ^ 3
h_c_spec₀ : SpectrumRestricts (-(star c * c)) fun x => ContinuousMap.realToNNReal x
c_eq : c * star c = 2 • (↑(ℜ c) ^ 2 + ↑(ℑ c) ^ 2) + -(star c * c)
h_c_spec₁ : ∀ x ∈ σ ℝ (c * star c), 0 ≤ x
x : ℝ
hx : x = 0 ∨ x ∈ σ ℝ (c * star c)
⊢ 0 ≤ x

tactic: obtain (rfl | hx) := hx
state_before: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
h_eq_a_neg : -(star c * c) = a_neg ^ 3
h_c_spec₀ : SpectrumRestricts (-(star c * c)) fun x => ContinuousMap.realToNNReal x
c_eq : c * star c = 2 • (↑(ℜ c) ^ 2 + ↑(ℑ c) ^ 2) + -(star c * c)
h_c_spec₁ : ∀ x ∈ σ ℝ (c * star c), 0 ≤ x
x : ℝ
hx : x = 0 ∨ x ∈ σ ℝ (c * star c)
⊢ 0 ≤ x
state_after: case inl
A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
h_eq_a_neg : -(star c * c) = a_neg ^ 3
h_c_spec₀ : SpectrumRestricts (-(star c * c)) fun x => ContinuousMap.realToNNReal x
c_eq : c * star c = 2 • (↑(ℜ c) ^ 2 + ↑(ℑ c) ^ 2) + -(star c * c)
h_c_spec₁ : ∀ x ∈ σ ℝ (c * star c), 0 ≤ x
⊢ 0 ≤ 0

case inr
A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
h_eq_a_neg : -(star c * c) = a_neg ^ 3
h_c_spec₀ : SpectrumRestricts (-(star c * c)) fun x => ContinuousMap.realToNNReal x
c_eq : c * star c = 2 • (↑(ℜ c) ^ 2 + ↑(ℑ c) ^ 2) + -(star c * c)
h_c_spec₁ : ∀ x ∈ σ ℝ (c * star c), 0 ≤ x
x : ℝ
hx : x ∈ σ ℝ (c * star c)
⊢ 0 ≤ x

tactic: exacts [le_rfl, h_c_spec₁ x hx]
state_before: case inl
A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
h_eq_a_neg : -(star c * c) = a_neg ^ 3
h_c_spec₀ : SpectrumRestricts (-(star c * c)) fun x => ContinuousMap.realToNNReal x
c_eq : c * star c = 2 • (↑(ℜ c) ^ 2 + ↑(ℑ c) ^ 2) + -(star c * c)
h_c_spec₁ : ∀ x ∈ σ ℝ (c * star c), 0 ≤ x
⊢ 0 ≤ 0

case inr
A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
h_eq_a_neg : -(star c * c) = a_neg ^ 3
h_c_spec₀ : SpectrumRestricts (-(star c * c)) fun x => ContinuousMap.realToNNReal x
c_eq : c * star c = 2 • (↑(ℜ c) ^ 2 + ↑(ℑ c) ^ 2) + -(star c * c)
h_c_spec₁ : ∀ x ∈ σ ℝ (c * star c), 0 ≤ x
x : ℝ
hx : x ∈ σ ℝ (c * star c)
⊢ 0 ≤ x
state_after: no goals

tactic: aesop (add simp a)
state_before: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
b : A
a : A := star b * b
a_def : a = star b * b
a_neg : A := cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a
c : A := b * a_neg
h_eq_a_neg : 0 = cfc (fun x => (-ContinuousMap.id ℝ ⊔ 0) x) a ^ 3
h_c_spec₀ : SpectrumRestricts (-(star c * c)) fun x => ContinuousMap.realToNNReal x
c_eq : c * star c = 2 • (↑(ℜ c) ^ 2 + ↑(ℑ c) ^ 2) + -(star c * c)
h_c_spec₁ : SpectrumRestricts (c * star c) ⇑ContinuousMap.realToNNReal
h_c_spec₂ : SpectrumRestricts (star c * c) ⇑ContinuousMap.realToNNReal
⊢ IsSelfAdjoint a
state_after: no goals