Theorem: StarSubalgebra.isUnit_coe_inv_mem
File: Mathlib/Analysis/NormedSpace/Star/ContinuousFunctionalCalculus.lean

tactic: have hx := h.star.mul 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✝ S : StarSubalgebra ℂ A
hS : IsClosed ↑S
x : A
h : IsUnit x
hxS : x ∈ S
⊢ ↑h.unit⁻¹ ∈ S
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✝ S : StarSubalgebra ℂ A
hS : IsClosed ↑S
x : A
h : IsUnit x
hxS : x ∈ S
hx : IsUnit (star x * x)
⊢ ↑h.unit⁻¹ ∈ S

tactic: suffices this : (↑hx.unit⁻¹ : A) ∈ S by
  rw [← one_mul (↑h.unit⁻¹ : A), ← hx.unit.inv_mul, mul_assoc, IsUnit.unit_spec, mul_assoc,
    h.mul_val_inv, mul_one]
  exact mul_mem this (star_mem hxS)
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✝ S : StarSubalgebra ℂ A
hS : IsClosed ↑S
x : A
h : IsUnit x
hxS : x ∈ S
hx : IsUnit (star x * x)
⊢ ↑h.unit⁻¹ ∈ S
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✝ S : StarSubalgebra ℂ A
hS : IsClosed ↑S
x : A
h : IsUnit x
hxS : x ∈ S
hx : IsUnit (star x * x)
⊢ ↑hx.unit⁻¹ ∈ S

tactic: refine le_of_isClosed_of_mem ℂ hS (mul_mem (star_mem hxS) hxS) ?_
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✝ S : StarSubalgebra ℂ A
hS : IsClosed ↑S
x : A
h : IsUnit x
hxS : x ∈ S
hx : IsUnit (star x * x)
⊢ ↑hx.unit⁻¹ ∈ S
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✝ S : StarSubalgebra ℂ A
hS : IsClosed ↑S
x : A
h : IsUnit x
hxS : x ∈ S
hx : IsUnit (star x * x)
⊢ ↑hx.unit⁻¹ ∈ elementalStarAlgebra ℂ (star x * x)

tactic: haveI := (IsSelfAdjoint.star_mul_self x).isStarNormal
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✝ S : StarSubalgebra ℂ A
hS : IsClosed ↑S
x : A
h : IsUnit x
hxS : x ∈ S
hx : IsUnit (star x * x)
⊢ ↑hx.unit⁻¹ ∈ elementalStarAlgebra ℂ (star x * x)
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✝ S : StarSubalgebra ℂ A
hS : IsClosed ↑S
x : A
h : IsUnit x
hxS : x ∈ S
hx : IsUnit (star x * x)
this : IsStarNormal (star x * x)
⊢ ↑hx.unit⁻¹ ∈ elementalStarAlgebra ℂ (star x * x)

tactic: have hx' := elementalStarAlgebra.isUnit_of_isUnit_of_isStarNormal hx
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✝ S : StarSubalgebra ℂ A
hS : IsClosed ↑S
x : A
h : IsUnit x
hxS : x ∈ S
hx : IsUnit (star x * x)
this : IsStarNormal (star x * x)
⊢ ↑hx.unit⁻¹ ∈ elementalStarAlgebra ℂ (star x * x)
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✝ S : StarSubalgebra ℂ A
hS : IsClosed ↑S
x : A
h : IsUnit x
hxS : x ∈ S
hx : IsUnit (star x * x)
this : IsStarNormal (star x * x)
hx' : IsUnit ⟨star x * x, ⋯⟩
⊢ ↑hx.unit⁻¹ ∈ elementalStarAlgebra ℂ (star x * x)

tactic: convert (↑hx'.unit⁻¹ : elementalStarAlgebra ℂ (star x * x)).prop using 1
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✝ S : StarSubalgebra ℂ A
hS : IsClosed ↑S
x : A
h : IsUnit x
hxS : x ∈ S
hx : IsUnit (star x * x)
this : IsStarNormal (star x * x)
hx' : IsUnit ⟨star x * x, ⋯⟩
⊢ ↑hx.unit⁻¹ ∈ elementalStarAlgebra ℂ (star x * x)
state_after: case h.e'_4
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✝ S : StarSubalgebra ℂ A
hS : IsClosed ↑S
x : A
h : IsUnit x
hxS : x ∈ S
hx : IsUnit (star x * x)
this : IsStarNormal (star x * x)
hx' : IsUnit ⟨star x * x, ⋯⟩
⊢ ↑hx.unit⁻¹ = ↑↑hx'.unit⁻¹

tactic: refine left_inv_eq_right_inv hx.unit.inv_mul ?_
state_before: case h.e'_4
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✝ S : StarSubalgebra ℂ A
hS : IsClosed ↑S
x : A
h : IsUnit x
hxS : x ∈ S
hx : IsUnit (star x * x)
this : IsStarNormal (star x * x)
hx' : IsUnit ⟨star x * x, ⋯⟩
⊢ ↑hx.unit⁻¹ = ↑↑hx'.unit⁻¹
state_after: case h.e'_4
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✝ S : StarSubalgebra ℂ A
hS : IsClosed ↑S
x : A
h : IsUnit x
hxS : x ∈ S
hx : IsUnit (star x * x)
this : IsStarNormal (star x * x)
hx' : IsUnit ⟨star x * x, ⋯⟩
⊢ ↑hx.unit * ↑↑hx'.unit⁻¹ = 1

tactic: exact (congr_arg ((↑) : _ → A) hx'.unit.mul_inv)
state_before: case h.e'_4
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✝ S : StarSubalgebra ℂ A
hS : IsClosed ↑S
x : A
h : IsUnit x
hxS : x ∈ S
hx : IsUnit (star x * x)
this : IsStarNormal (star x * x)
hx' : IsUnit ⟨star x * x, ⋯⟩
⊢ ↑hx.unit * ↑↑hx'.unit⁻¹ = 1
state_after: no goals

tactic: rw [← one_mul (↑h.unit⁻¹ : A), ← hx.unit.inv_mul, mul_assoc, IsUnit.unit_spec, mul_assoc,
  h.mul_val_inv, mul_one]
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✝ S : StarSubalgebra ℂ A
hS : IsClosed ↑S
x : A
h : IsUnit x
hxS : x ∈ S
hx : IsUnit (star x * x)
this : ↑hx.unit⁻¹ ∈ S
⊢ ↑h.unit⁻¹ ∈ S
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✝ S : StarSubalgebra ℂ A
hS : IsClosed ↑S
x : A
h : IsUnit x
hxS : x ∈ S
hx : IsUnit (star x * x)
this : ↑hx.unit⁻¹ ∈ S
⊢ ↑hx.unit⁻¹ * star x ∈ S

tactic: exact mul_mem this (star_mem hxS)
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✝ S : StarSubalgebra ℂ A
hS : IsClosed ↑S
x : A
h : IsUnit x
hxS : x ∈ S
hx : IsUnit (star x * x)
this : ↑hx.unit⁻¹ ∈ S
⊢ ↑hx.unit⁻¹ * star x ∈ S
state_after: no goals