Theorem: quasispectrum_eq_spectrum_union
File: Mathlib/Algebra/Algebra/Quasispectrum.lean

Proof steps:
state_before: R✝ : Type u_1
A✝ : Type u_2
inst✝⁷ : CommSemiring R✝
inst✝⁶ : NonUnitalRing A✝
inst✝⁵ : Module R✝ A✝
inst✝⁴ : IsScalarTower R✝ A✝ A✝
inst✝³ : SMulCommClass R✝ A✝ A✝
R : Type u_3
A : Type u_4
inst✝² : CommSemiring R
inst✝¹ : Ring A
inst✝ : Algebra R A
a : A
⊢ quasispectrum R a = spectrum R a ∪ {r | ¬IsUnit r}
state_after: case h
R✝ : Type u_1
A✝ : Type u_2
inst✝⁷ : CommSemiring R✝
inst✝⁶ : NonUnitalRing A✝
inst✝⁵ : Module R✝ A✝
inst✝⁴ : IsScalarTower R✝ A✝ A✝
inst✝³ : SMulCommClass R✝ A✝ A✝
R : Type u_3
A : Type u_4
inst✝² : CommSemiring R
inst✝¹ : Ring A
inst✝ : Algebra R A
a : A
r : R
⊢ r ∈ quasispectrum R a ↔ r ∈ spectrum R a ∪ {r | ¬IsUnit r}
tactic: ext r
state_before: case h
R✝ : Type u_1
A✝ : Type u_2
inst✝⁷ : CommSemiring R✝
inst✝⁶ : NonUnitalRing A✝
inst✝⁵ : Module R✝ A✝
inst✝⁴ : IsScalarTower R✝ A✝ A✝
inst✝³ : SMulCommClass R✝ A✝ A✝
R : Type u_3
A : Type u_4
inst✝² : CommSemiring R
inst✝¹ : Ring A
inst✝ : Algebra R A
a : A
r : R
⊢ r ∈ quasispectrum R a ↔ r ∈ spectrum R a ∪ {r | ¬IsUnit r}
state_after: case h
R✝ : Type u_1
A✝ : Type u_2
inst✝⁷ : CommSemiring R✝
inst✝⁶ : NonUnitalRing A✝
inst✝⁵ : Module R✝ A✝
inst✝⁴ : IsScalarTower R✝ A✝ A✝
inst✝³ : SMulCommClass R✝ A✝ A✝
R : Type u_3
A : Type u_4
inst✝² : CommSemiring R
inst✝¹ : Ring A
inst✝ : Algebra R A
a : A
r : R
⊢ r ∈ {r | ∀ (hr : IsUnit r), ¬IsQuasiregular (-(hr.unit⁻¹ • a))} ↔ r ∈ spectrum R a ∪ {r | ¬IsUnit r}
tactic: rw [quasispectrum]
state_before: case h
R✝ : Type u_1
A✝ : Type u_2
inst✝⁷ : CommSemiring R✝
inst✝⁶ : NonUnitalRing A✝
inst✝⁵ : Module R✝ A✝
inst✝⁴ : IsScalarTower R✝ A✝ A✝
inst✝³ : SMulCommClass R✝ A✝ A✝
R : Type u_3
A : Type u_4
inst✝² : CommSemiring R
inst✝¹ : Ring A
inst✝ : Algebra R A
a : A
r : R
⊢ r ∈ {r | ∀ (hr : IsUnit r), ¬IsQuasiregular (-(hr.unit⁻¹ • a))} ↔ r ∈ spectrum R a ∪ {r | ¬IsUnit r}
state_after: case h
R✝ : Type u_1
A✝ : Type u_2
inst✝⁷ : CommSemiring R✝
inst✝⁶ : NonUnitalRing A✝
inst✝⁵ : Module R✝ A✝
inst✝⁴ : IsScalarTower R✝ A✝ A✝
inst✝³ : SMulCommClass R✝ A✝ A✝
R : Type u_3
A : Type u_4
inst✝² : CommSemiring R
inst✝¹ : Ring A
inst✝ : Algebra R A
a : A
r : R
⊢ (∀ (hr : IsUnit r), ¬IsQuasiregular (-(hr.unit⁻¹ • a))) ↔ IsUnit r → ¬IsUnit ((algebraMap R A) r - a)
tactic: simp only [Set.mem_setOf_eq, Set.mem_union, ← imp_iff_or_not, spectrum.mem_iff]
state_before: case h
R✝ : Type u_1
A✝ : Type u_2
inst✝⁷ : CommSemiring R✝
inst✝⁶ : NonUnitalRing A✝
inst✝⁵ : Module R✝ A✝
inst✝⁴ : IsScalarTower R✝ A✝ A✝
inst✝³ : SMulCommClass R✝ A✝ A✝
R : Type u_3
A : Type u_4
inst✝² : CommSemiring R
inst✝¹ : Ring A
inst✝ : Algebra R A
a : A
r : R
⊢ (∀ (hr : IsUnit r), ¬IsQuasiregular (-(hr.unit⁻¹ • a))) ↔ IsUnit r → ¬IsUnit ((algebraMap R A) r - a)
state_after: case h.a.h.a
R✝ : Type u_1
A✝ : Type u_2
inst✝⁷ : CommSemiring R✝
inst✝⁶ : NonUnitalRing A✝
inst✝⁵ : Module R✝ A✝
inst✝⁴ : IsScalarTower R✝ A✝ A✝
inst✝³ : SMulCommClass R✝ A✝ A✝
R : Type u_3
A : Type u_4
inst✝² : CommSemiring R
inst✝¹ : Ring A
inst✝ : Algebra R A
a : A
r : R
hr : IsUnit r
⊢ ¬IsQuasiregular (-(hr.unit⁻¹ • a)) ↔ ¬IsUnit ((algebraMap R A) r - a)
tactic: congr! 1 with hr
state_before: case h.a.h.a
R✝ : Type u_1
A✝ : Type u_2
inst✝⁷ : CommSemiring R✝
inst✝⁶ : NonUnitalRing A✝
inst✝⁵ : Module R✝ A✝
inst✝⁴ : IsScalarTower R✝ A✝ A✝
inst✝³ : SMulCommClass R✝ A✝ A✝
R : Type u_3
A : Type u_4
inst✝² : CommSemiring R
inst✝¹ : Ring A
inst✝ : Algebra R A
a : A
r : R
hr : IsUnit r
⊢ ¬IsQuasiregular (-(hr.unit⁻¹ • a)) ↔ ¬IsUnit ((algebraMap R A) r - a)
state_after: case h.a.h.a
R✝ : Type u_1
A✝ : Type u_2
inst✝⁷ : CommSemiring R✝
inst✝⁶ : NonUnitalRing A✝
inst✝⁵ : Module R✝ A✝
inst✝⁴ : IsScalarTower R✝ A✝ A✝
inst✝³ : SMulCommClass R✝ A✝ A✝
R : Type u_3
A : Type u_4
inst✝² : CommSemiring R
inst✝¹ : Ring A
inst✝ : Algebra R A
a : A
r : R
hr : IsUnit r
⊢ IsUnit (1 - hr.unit⁻¹ • a) ↔ IsUnit (r • 1 - a)
tactic: rw [not_iff_not, isQuasiregular_iff_isUnit, ← sub_eq_add_neg, Algebra.algebraMap_eq_smul_one]
state_before: case h.a.h.a
R✝ : Type u_1
A✝ : Type u_2
inst✝⁷ : CommSemiring R✝
inst✝⁶ : NonUnitalRing A✝
inst✝⁵ : Module R✝ A✝
inst✝⁴ : IsScalarTower R✝ A✝ A✝
inst✝³ : SMulCommClass R✝ A✝ A✝
R : Type u_3
A : Type u_4
inst✝² : CommSemiring R
inst✝¹ : Ring A
inst✝ : Algebra R A
a : A
r : R
hr : IsUnit r
⊢ IsUnit (1 - hr.unit⁻¹ • a) ↔ IsUnit (r • 1 - a)
state_after: no goals
tactic: exact (IsUnit.smul_sub_iff_sub_inv_smul hr.unit a).symm