Theorem: elementalStarAlgebra.isUnit_of_isUnit_of_isStarNormal
File: Mathlib/Analysis/CstarAlgebra/ContinuousFunctionalCalculus/Basic.lean

Proof steps:
state_before: A : Type u_1
inst✝⁶ : NormedRing A
inst✝⁵ : NormedAlgebra ℂ A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : StarModule ℂ A
inst✝¹ : CompleteSpace A
a : A
inst✝ : IsStarNormal a
S : StarSubalgebra ℂ A
h : IsUnit a
⊢ IsUnit ⟨a, ⋯⟩
state_after: A : Type u_1
inst✝⁶ : NormedRing A
inst✝⁵ : NormedAlgebra ℂ A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : StarModule ℂ A
inst✝¹ : CompleteSpace A
a : A
inst✝ : IsStarNormal a
S : StarSubalgebra ℂ A
h : IsUnit a
a✝ : Nontrivial A
⊢ IsUnit ⟨a, ⋯⟩
tactic: nontriviality A
state_before: A : Type u_1
inst✝⁶ : NormedRing A
inst✝⁵ : NormedAlgebra ℂ A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : StarModule ℂ A
inst✝¹ : CompleteSpace A
a : A
inst✝ : IsStarNormal a
S : StarSubalgebra ℂ A
h : IsUnit a
a✝ : Nontrivial A
⊢ IsUnit ⟨a, ⋯⟩
state_after: A : Type u_1
inst✝⁶ : NormedRing A
inst✝⁵ : NormedAlgebra ℂ A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : StarModule ℂ A
inst✝¹ : CompleteSpace A
a : A
inst✝ : IsStarNormal a
S : StarSubalgebra ℂ A
h : IsUnit a
a✝ : Nontrivial A
a' : ↥(elementalStarAlgebra ℂ a) := ⟨a, ⋯⟩
⊢ IsUnit a'
tactic: set a' : elementalStarAlgebra ℂ a := ⟨a, self_mem ℂ a⟩
state_before: A : Type u_1
inst✝⁶ : NormedRing A
inst✝⁵ : NormedAlgebra ℂ A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : StarModule ℂ A
inst✝¹ : CompleteSpace A
a : A
inst✝ : IsStarNormal a
S : StarSubalgebra ℂ A
h : IsUnit a
a✝ : Nontrivial A
a' : ↥(elementalStarAlgebra ℂ a) := ⟨a, ⋯⟩
⊢ IsUnit a'
state_after: A : Type u_1
inst✝⁶ : NormedRing A
inst✝⁵ : NormedAlgebra ℂ A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : StarModule ℂ A
inst✝¹ : CompleteSpace A
a : A
inst✝ : IsStarNormal a
S : StarSubalgebra ℂ A
h : IsUnit a
a✝ : Nontrivial A
a' : ↥(elementalStarAlgebra ℂ a) := ⟨a, ⋯⟩
⊢ IsUnit (star a' * a')
tactic: suffices IsUnit (star a' * a') from (IsUnit.mul_iff.1 this).2
state_before: A : Type u_1
inst✝⁶ : NormedRing A
inst✝⁵ : NormedAlgebra ℂ A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : StarModule ℂ A
inst✝¹ : CompleteSpace A
a : A
inst✝ : IsStarNormal a
S : StarSubalgebra ℂ A
h : IsUnit a
a✝ : Nontrivial A
a' : ↥(elementalStarAlgebra ℂ a) := ⟨a, ⋯⟩
⊢ IsUnit (star a' * a')
state_after: A : Type u_1
inst✝⁶ : NormedRing A
inst✝⁵ : NormedAlgebra ℂ A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : StarModule ℂ A
inst✝¹ : CompleteSpace A
a : A
inst✝ : IsStarNormal a
S : StarSubalgebra ℂ A
a✝ : Nontrivial A
a' : ↥(elementalStarAlgebra ℂ a) := ⟨a, ⋯⟩
h : IsUnit (star a * a)
⊢ IsUnit (star a' * a')
tactic: replace h := (show Commute (star a) a from star_comm_self' a).isUnit_mul_iff.2 ⟨h.star, h⟩
state_before: A : Type u_1
inst✝⁶ : NormedRing A
inst✝⁵ : NormedAlgebra ℂ A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : StarModule ℂ A
inst✝¹ : CompleteSpace A
a : A
inst✝ : IsStarNormal a
S : StarSubalgebra ℂ A
a✝ : Nontrivial A
a' : ↥(elementalStarAlgebra ℂ a) := ⟨a, ⋯⟩
h : IsUnit (star a * a)
⊢ IsUnit (star a' * a')
state_after: A : Type u_1
inst✝⁶ : NormedRing A
inst✝⁵ : NormedAlgebra ℂ A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : StarModule ℂ A
inst✝¹ : CompleteSpace A
a : A
inst✝ : IsStarNormal a
S : StarSubalgebra ℂ A
a✝ : Nontrivial A
a' : ↥(elementalStarAlgebra ℂ a) := ⟨a, ⋯⟩
h : IsUnit (star a * a)
h₁ : ↑‖star a * a‖ ≠ 0
⊢ IsUnit (star a' * a')
tactic: have h₁ : (‖star a * a‖ : ℂ) ≠ 0 := Complex.ofReal_ne_zero.mpr (norm_ne_zero_iff.mpr h.ne_zero)
state_before: A : Type u_1
inst✝⁶ : NormedRing A
inst✝⁵ : NormedAlgebra ℂ A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : StarModule ℂ A
inst✝¹ : CompleteSpace A
a : A
inst✝ : IsStarNormal a
S : StarSubalgebra ℂ A
a✝ : Nontrivial A
a' : ↥(elementalStarAlgebra ℂ a) := ⟨a, ⋯⟩
h : IsUnit (star a * a)
h₁ : ↑‖star a * a‖ ≠ 0
⊢ IsUnit (star a' * a')
state_after: A : Type u_1
inst✝⁶ : NormedRing A
inst✝⁵ : NormedAlgebra ℂ A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : StarModule ℂ A
inst✝¹ : CompleteSpace A
a : A
inst✝ : IsStarNormal a
S : StarSubalgebra ℂ A
a✝ : Nontrivial A
a' : ↥(elementalStarAlgebra ℂ a) := ⟨a, ⋯⟩
h : IsUnit (star a * a)
h₁ : ↑‖star a * a‖ ≠ 0
u : (↥(elementalStarAlgebra ℂ a))ˣ :=
  (Units.map ↑(algebraMap ℂ ↥(elementalStarAlgebra ℂ a))) (Units.mk0 (↑‖star a * a‖) h₁)
⊢ IsUnit (star a' * a')
tactic: set u : Units (elementalStarAlgebra ℂ a) :=
    Units.map (algebraMap ℂ (elementalStarAlgebra ℂ a)).toMonoidHom (Units.mk0 _ h₁)
state_before: A : Type u_1
inst✝⁶ : NormedRing A
inst✝⁵ : NormedAlgebra ℂ A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : StarModule ℂ A
inst✝¹ : CompleteSpace A
a : A
inst✝ : IsStarNormal a
S : StarSubalgebra ℂ A
a✝ : Nontrivial A
a' : ↥(elementalStarAlgebra ℂ a) := ⟨a, ⋯⟩
h : IsUnit (star a * a)
h₁ : ↑‖star a * a‖ ≠ 0
u : (↥(elementalStarAlgebra ℂ a))ˣ :=
  (Units.map ↑(algebraMap ℂ ↥(elementalStarAlgebra ℂ a))) (Units.mk0 (↑‖star a * a‖) h₁)
⊢ IsUnit (star a' * a')
state_after: A : Type u_1
inst✝⁶ : NormedRing A
inst✝⁵ : NormedAlgebra ℂ A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : StarModule ℂ A
inst✝¹ : CompleteSpace A
a : A
inst✝ : IsStarNormal a
S : StarSubalgebra ℂ A
a✝ : Nontrivial A
a' : ↥(elementalStarAlgebra ℂ a) := ⟨a, ⋯⟩
h : IsUnit (star a * a)
h₁ : ↑‖star a * a‖ ≠ 0
u : (↥(elementalStarAlgebra ℂ a))ˣ :=
  (Units.map ↑(algebraMap ℂ ↥(elementalStarAlgebra ℂ a))) (Units.mk0 (↑‖star a * a‖) h₁)
⊢ ‖star a' * a' - ↑u‖ < ‖↑u⁻¹‖⁻¹
tactic: refine ⟨u.ofNearby _ ?_, rfl⟩
state_before: A : Type u_1
inst✝⁶ : NormedRing A
inst✝⁵ : NormedAlgebra ℂ A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : StarModule ℂ A
inst✝¹ : CompleteSpace A
a : A
inst✝ : IsStarNormal a
S : StarSubalgebra ℂ A
a✝ : Nontrivial A
a' : ↥(elementalStarAlgebra ℂ a) := ⟨a, ⋯⟩
h : IsUnit (star a * a)
h₁ : ↑‖star a * a‖ ≠ 0
u : (↥(elementalStarAlgebra ℂ a))ˣ :=
  (Units.map ↑(algebraMap ℂ ↥(elementalStarAlgebra ℂ a))) (Units.mk0 (↑‖star a * a‖) h₁)
⊢ ‖star a' * a' - ↑u‖ < ‖↑u⁻¹‖⁻¹
state_after: A : Type u_1
inst✝⁶ : NormedRing A
inst✝⁵ : NormedAlgebra ℂ A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : StarModule ℂ A
inst✝¹ : CompleteSpace A
a : A
inst✝ : IsStarNormal a
S : StarSubalgebra ℂ A
a✝ : Nontrivial A
a' : ↥(elementalStarAlgebra ℂ a) := ⟨a, ⋯⟩
h : IsUnit (star a * a)
h₁ : ↑‖star a * a‖ ≠ 0
u : (↥(elementalStarAlgebra ℂ a))ˣ :=
  (Units.map ↑(algebraMap ℂ ↥(elementalStarAlgebra ℂ a))) (Units.mk0 (↑‖star a * a‖) h₁)
⊢ ‖star a' * a' - (algebraMap ℂ ↥(elementalStarAlgebra ℂ a)) ↑‖star a * a‖‖ < ‖star a * a‖
tactic: simp only [u, Units.coe_map, Units.val_inv_eq_inv_val, RingHom.toMonoidHom_eq_coe, Units.val_mk0,
    Units.coe_map_inv, MonoidHom.coe_coe, norm_algebraMap', norm_inv, Complex.norm_eq_abs,
    Complex.abs_ofReal, abs_norm, inv_inv]
state_before: A : Type u_1
inst✝⁶ : NormedRing A
inst✝⁵ : NormedAlgebra ℂ A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : StarModule ℂ A
inst✝¹ : CompleteSpace A
a : A
inst✝ : IsStarNormal a
S : StarSubalgebra ℂ A
a✝ : Nontrivial A
a' : ↥(elementalStarAlgebra ℂ a) := ⟨a, ⋯⟩
h : IsUnit (star a * a)
h₁ : ↑‖star a * a‖ ≠ 0
u : (↥(elementalStarAlgebra ℂ a))ˣ :=
  (Units.map ↑(algebraMap ℂ ↥(elementalStarAlgebra ℂ a))) (Units.mk0 (↑‖star a * a‖) h₁)
h₂ : ∀ z ∈ spectrum ℂ ((algebraMap ℂ A) ↑‖star a * a‖ - star a * a), ‖z‖₊ < ‖star a * a‖₊
⊢ ‖star a' * a' - (algebraMap ℂ ↥(elementalStarAlgebra ℂ a)) ↑‖star a * a‖‖ < ‖star a * a‖
state_after: no goals
tactic: exact ENNReal.coe_lt_coe.1
    (calc
      (‖star a' * a' - algebraMap ℂ _ ‖star a * a‖‖₊ : ℝ≥0∞) =
          ‖algebraMap ℂ A ‖star a * a‖ - star a * a‖₊ := by
        rw [← nnnorm_neg, neg_sub]; rfl
      _ = spectralRadius ℂ (algebraMap ℂ A ‖star a * a‖ - star a * a) := by
        refine (IsSelfAdjoint.spectralRadius_eq_nnnorm ?_).symm
        rw [IsSelfAdjoint, star_sub, star_mul, star_star, ← algebraMap_star_comm]
        congr!
        exact RCLike.conj_ofReal _
      _ < ‖star a * a‖₊ := spectrum.spectralRadius_lt_of_forall_lt _ h₂)