Theorem: SpectrumRestricts.of_subset_range_algebraMap
File: Mathlib/Algebra/Algebra/Quasispectrum.lean

tactic: rw [mem_quasispectrum_iff] at hs
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
S : Type u_4
A : Type u_5
inst✝⁵ : Semifield R
inst✝⁴ : Semifield S
inst✝³ : Ring A
inst✝² : Algebra R S
inst✝¹ : Algebra R A
inst✝ : Algebra S A
a : A
f : S → R
hf : Function.LeftInverse f ⇑(algebraMap R S)
h : spectrum S a ⊆ Set.range ⇑(algebraMap R S)
s : S
hs : s ∈ quasispectrum S a
⊢ (algebraMap R S) (f s) = s
state_after: 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
S : Type u_4
A : Type u_5
inst✝⁵ : Semifield R
inst✝⁴ : Semifield S
inst✝³ : Ring A
inst✝² : Algebra R S
inst✝¹ : Algebra R A
inst✝ : Algebra S A
a : A
f : S → R
hf : Function.LeftInverse f ⇑(algebraMap R S)
h : spectrum S a ⊆ Set.range ⇑(algebraMap R S)
s : S
hs : s = 0 ∨ s ∈ spectrum S a
⊢ (algebraMap R S) (f s) = s

tactic: obtain (rfl | hs) := hs
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
S : Type u_4
A : Type u_5
inst✝⁵ : Semifield R
inst✝⁴ : Semifield S
inst✝³ : Ring A
inst✝² : Algebra R S
inst✝¹ : Algebra R A
inst✝ : Algebra S A
a : A
f : S → R
hf : Function.LeftInverse f ⇑(algebraMap R S)
h : spectrum S a ⊆ Set.range ⇑(algebraMap R S)
s : S
hs : s = 0 ∨ s ∈ spectrum S a
⊢ (algebraMap R S) (f s) = s
state_after: case inl
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
S : Type u_4
A : Type u_5
inst✝⁵ : Semifield R
inst✝⁴ : Semifield S
inst✝³ : Ring A
inst✝² : Algebra R S
inst✝¹ : Algebra R A
inst✝ : Algebra S A
a : A
f : S → R
hf : Function.LeftInverse f ⇑(algebraMap R S)
h : spectrum S a ⊆ Set.range ⇑(algebraMap R S)
⊢ (algebraMap R S) (f 0) = 0

case inr
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
S : Type u_4
A : Type u_5
inst✝⁵ : Semifield R
inst✝⁴ : Semifield S
inst✝³ : Ring A
inst✝² : Algebra R S
inst✝¹ : Algebra R A
inst✝ : Algebra S A
a : A
f : S → R
hf : Function.LeftInverse f ⇑(algebraMap R S)
h : spectrum S a ⊆ Set.range ⇑(algebraMap R S)
s : S
hs : s ∈ spectrum S a
⊢ (algebraMap R S) (f s) = s

tactic: simpa using hf 0
state_before: case inl
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
S : Type u_4
A : Type u_5
inst✝⁵ : Semifield R
inst✝⁴ : Semifield S
inst✝³ : Ring A
inst✝² : Algebra R S
inst✝¹ : Algebra R A
inst✝ : Algebra S A
a : A
f : S → R
hf : Function.LeftInverse f ⇑(algebraMap R S)
h : spectrum S a ⊆ Set.range ⇑(algebraMap R S)
⊢ (algebraMap R S) (f 0) = 0
state_after: no goals

tactic: obtain ⟨r, rfl⟩ := h hs
state_before: case inr
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
S : Type u_4
A : Type u_5
inst✝⁵ : Semifield R
inst✝⁴ : Semifield S
inst✝³ : Ring A
inst✝² : Algebra R S
inst✝¹ : Algebra R A
inst✝ : Algebra S A
a : A
f : S → R
hf : Function.LeftInverse f ⇑(algebraMap R S)
h : spectrum S a ⊆ Set.range ⇑(algebraMap R S)
s : S
hs : s ∈ spectrum S a
⊢ (algebraMap R S) (f s) = s
state_after: case inr.intro
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
S : Type u_4
A : Type u_5
inst✝⁵ : Semifield R
inst✝⁴ : Semifield S
inst✝³ : Ring A
inst✝² : Algebra R S
inst✝¹ : Algebra R A
inst✝ : Algebra S A
a : A
f : S → R
hf : Function.LeftInverse f ⇑(algebraMap R S)
h : spectrum S a ⊆ Set.range ⇑(algebraMap R S)
r : R
hs : (algebraMap R S) r ∈ spectrum S a
⊢ (algebraMap R S) (f ((algebraMap R S) r)) = (algebraMap R S) r

tactic: rw [hf r]
state_before: case inr.intro
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
S : Type u_4
A : Type u_5
inst✝⁵ : Semifield R
inst✝⁴ : Semifield S
inst✝³ : Ring A
inst✝² : Algebra R S
inst✝¹ : Algebra R A
inst✝ : Algebra S A
a : A
f : S → R
hf : Function.LeftInverse f ⇑(algebraMap R S)
h : spectrum S a ⊆ Set.range ⇑(algebraMap R S)
r : R
hs : (algebraMap R S) r ∈ spectrum S a
⊢ (algebraMap R S) (f ((algebraMap R S) r)) = (algebraMap R S) r
state_after: no goals