Theorem: IsLocalization.away_of_isUnit_of_bijective
File: Mathlib/RingTheory/Localization/Away/Basic.lean

tactic: rintro ⟨_, n, rfl⟩
state_before: R✝ : Type u_1
inst✝⁷ : CommSemiring R✝
M : Submonoid R✝
S✝ : Type u_2
inst✝⁶ : CommSemiring S✝
inst✝⁵ : Algebra R✝ S✝
P : Type u_3
inst✝⁴ : CommSemiring P
inst✝³ : IsLocalization M S✝
R : Type u_4
S : Type u_5
inst✝² : CommRing R
inst✝¹ : CommRing S
inst✝ : Algebra R S
r : R
hr : IsUnit r
H : Function.Bijective ⇑(algebraMap R S)
⊢ ∀ (y : ↥(Submonoid.powers r)), IsUnit ((algebraMap R S) ↑y)
state_after: case mk.intro
R✝ : Type u_1
inst✝⁷ : CommSemiring R✝
M : Submonoid R✝
S✝ : Type u_2
inst✝⁶ : CommSemiring S✝
inst✝⁵ : Algebra R✝ S✝
P : Type u_3
inst✝⁴ : CommSemiring P
inst✝³ : IsLocalization M S✝
R : Type u_4
S : Type u_5
inst✝² : CommRing R
inst✝¹ : CommRing S
inst✝ : Algebra R S
r : R
hr : IsUnit r
H : Function.Bijective ⇑(algebraMap R S)
n : ℕ
⊢ IsUnit ((algebraMap R S) ↑⟨(fun x => r ^ x) n, ⋯⟩)

tactic: exact (algebraMap R S).isUnit_map (hr.pow _)
state_before: case mk.intro
R✝ : Type u_1
inst✝⁷ : CommSemiring R✝
M : Submonoid R✝
S✝ : Type u_2
inst✝⁶ : CommSemiring S✝
inst✝⁵ : Algebra R✝ S✝
P : Type u_3
inst✝⁴ : CommSemiring P
inst✝³ : IsLocalization M S✝
R : Type u_4
S : Type u_5
inst✝² : CommRing R
inst✝¹ : CommRing S
inst✝ : Algebra R S
r : R
hr : IsUnit r
H : Function.Bijective ⇑(algebraMap R S)
n : ℕ
⊢ IsUnit ((algebraMap R S) ↑⟨(fun x => r ^ x) n, ⋯⟩)
state_after: no goals

tactic: obtain ⟨z', rfl⟩ := H.2 z
state_before: R✝ : Type u_1
inst✝⁷ : CommSemiring R✝
M : Submonoid R✝
S✝ : Type u_2
inst✝⁶ : CommSemiring S✝
inst✝⁵ : Algebra R✝ S✝
P : Type u_3
inst✝⁴ : CommSemiring P
inst✝³ : IsLocalization M S✝
R : Type u_4
S : Type u_5
inst✝² : CommRing R
inst✝¹ : CommRing S
inst✝ : Algebra R S
r : R
hr : IsUnit r
H : Function.Bijective ⇑(algebraMap R S)
z : S
⊢ ∃ x, z * (algebraMap R S) ↑x.2 = (algebraMap R S) x.1
state_after: case intro
R✝ : Type u_1
inst✝⁷ : CommSemiring R✝
M : Submonoid R✝
S✝ : Type u_2
inst✝⁶ : CommSemiring S✝
inst✝⁵ : Algebra R✝ S✝
P : Type u_3
inst✝⁴ : CommSemiring P
inst✝³ : IsLocalization M S✝
R : Type u_4
S : Type u_5
inst✝² : CommRing R
inst✝¹ : CommRing S
inst✝ : Algebra R S
r : R
hr : IsUnit r
H : Function.Bijective ⇑(algebraMap R S)
z' : R
⊢ ∃ x, (algebraMap R S) z' * (algebraMap R S) ↑x.2 = (algebraMap R S) x.1

tactic: exact ⟨⟨z', 1⟩, by simp⟩
state_before: case intro
R✝ : Type u_1
inst✝⁷ : CommSemiring R✝
M : Submonoid R✝
S✝ : Type u_2
inst✝⁶ : CommSemiring S✝
inst✝⁵ : Algebra R✝ S✝
P : Type u_3
inst✝⁴ : CommSemiring P
inst✝³ : IsLocalization M S✝
R : Type u_4
S : Type u_5
inst✝² : CommRing R
inst✝¹ : CommRing S
inst✝ : Algebra R S
r : R
hr : IsUnit r
H : Function.Bijective ⇑(algebraMap R S)
z' : R
⊢ ∃ x, (algebraMap R S) z' * (algebraMap R S) ↑x.2 = (algebraMap R S) x.1
state_after: no goals

tactic: simp
state_before: R✝ : Type u_1
inst✝⁷ : CommSemiring R✝
M : Submonoid R✝
S✝ : Type u_2
inst✝⁶ : CommSemiring S✝
inst✝⁵ : Algebra R✝ S✝
P : Type u_3
inst✝⁴ : CommSemiring P
inst✝³ : IsLocalization M S✝
R : Type u_4
S : Type u_5
inst✝² : CommRing R
inst✝¹ : CommRing S
inst✝ : Algebra R S
r : R
hr : IsUnit r
H : Function.Bijective ⇑(algebraMap R S)
z' : R
⊢ (algebraMap R S) z' * (algebraMap R S) ↑(z', 1).2 = (algebraMap R S) (z', 1).1
state_after: no goals

tactic: erw [H.1.eq_iff]
state_before: R✝ : Type u_1
inst✝⁷ : CommSemiring R✝
M : Submonoid R✝
S✝ : Type u_2
inst✝⁶ : CommSemiring S✝
inst✝⁵ : Algebra R✝ S✝
P : Type u_3
inst✝⁴ : CommSemiring P
inst✝³ : IsLocalization M S✝
R : Type u_4
S : Type u_5
inst✝² : CommRing R
inst✝¹ : CommRing S
inst✝ : Algebra R S
r : R
hr : IsUnit r
H : Function.Bijective ⇑(algebraMap R S)
x y : R
⊢ (algebraMap R S) x = (algebraMap R S) y → ∃ c, ↑c * x = ↑c * y
state_after: R✝ : Type u_1
inst✝⁷ : CommSemiring R✝
M : Submonoid R✝
S✝ : Type u_2
inst✝⁶ : CommSemiring S✝
inst✝⁵ : Algebra R✝ S✝
P : Type u_3
inst✝⁴ : CommSemiring P
inst✝³ : IsLocalization M S✝
R : Type u_4
S : Type u_5
inst✝² : CommRing R
inst✝¹ : CommRing S
inst✝ : Algebra R S
r : R
hr : IsUnit r
H : Function.Bijective ⇑(algebraMap R S)
x y : R
⊢ x = y → ∃ c, ↑c * x = ↑c * y

tactic: rintro rfl
state_before: R✝ : Type u_1
inst✝⁷ : CommSemiring R✝
M : Submonoid R✝
S✝ : Type u_2
inst✝⁶ : CommSemiring S✝
inst✝⁵ : Algebra R✝ S✝
P : Type u_3
inst✝⁴ : CommSemiring P
inst✝³ : IsLocalization M S✝
R : Type u_4
S : Type u_5
inst✝² : CommRing R
inst✝¹ : CommRing S
inst✝ : Algebra R S
r : R
hr : IsUnit r
H : Function.Bijective ⇑(algebraMap R S)
x y : R
⊢ x = y → ∃ c, ↑c * x = ↑c * y
state_after: R✝ : Type u_1
inst✝⁷ : CommSemiring R✝
M : Submonoid R✝
S✝ : Type u_2
inst✝⁶ : CommSemiring S✝
inst✝⁵ : Algebra R✝ S✝
P : Type u_3
inst✝⁴ : CommSemiring P
inst✝³ : IsLocalization M S✝
R : Type u_4
S : Type u_5
inst✝² : CommRing R
inst✝¹ : CommRing S
inst✝ : Algebra R S
r : R
hr : IsUnit r
H : Function.Bijective ⇑(algebraMap R S)
x : R
⊢ ∃ c, ↑c * x = ↑c * x

tactic: exact ⟨1, rfl⟩
state_before: R✝ : Type u_1
inst✝⁷ : CommSemiring R✝
M : Submonoid R✝
S✝ : Type u_2
inst✝⁶ : CommSemiring S✝
inst✝⁵ : Algebra R✝ S✝
P : Type u_3
inst✝⁴ : CommSemiring P
inst✝³ : IsLocalization M S✝
R : Type u_4
S : Type u_5
inst✝² : CommRing R
inst✝¹ : CommRing S
inst✝ : Algebra R S
r : R
hr : IsUnit r
H : Function.Bijective ⇑(algebraMap R S)
x : R
⊢ ∃ c, ↑c * x = ↑c * x
state_after: no goals