Theorem: IsFractionRing.mk'_eq_one_iff_eq
File: Mathlib/RingTheory/Localization/FractionRing.lean

tactic: refine' ⟨_, fun hxy => by rw [hxy, mk'_self']⟩
state_before: R : Type ?u.224271
inst✝¹¹ : CommRing R
M : Submonoid R
S : Type ?u.224463
inst✝¹⁰ : CommRing S
inst✝⁹ : Algebra R S
P : Type ?u.224700
inst✝⁸ : CommRing P
A : Type u_1
inst✝⁷ : CommRing A
inst✝⁶ : IsDomain A
K : Type u_2
B : Type ?u.224883
inst✝⁵ : CommRing B
inst✝⁴ : IsDomain B
inst✝³ : Field K
L : Type ?u.225060
inst✝² : Field L
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
g : A →+* L
x : A
y : { x // x ∈ nonZeroDivisors A }
⊢ mk' K x y = 1 ↔ x = ↑y

tactic: rw [hxy, mk'_self']
state_before: R : Type ?u.224271
inst✝¹¹ : CommRing R
M : Submonoid R
S : Type ?u.224463
inst✝¹⁰ : CommRing S
inst✝⁹ : Algebra R S
P : Type ?u.224700
inst✝⁸ : CommRing P
A : Type u_1
inst✝⁷ : CommRing A
inst✝⁶ : IsDomain A
K : Type u_2
B : Type ?u.224883
inst✝⁵ : CommRing B
inst✝⁴ : IsDomain B
inst✝³ : Field K
L : Type ?u.225060
inst✝² : Field L
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
g : A →+* L
x : A
y : { x // x ∈ nonZeroDivisors A }
hxy : x = ↑y
⊢ mk' K x y = 1

tactic: intro hxy
state_before: R : Type ?u.224271
inst✝¹¹ : CommRing R
M : Submonoid R
S : Type ?u.224463
inst✝¹⁰ : CommRing S
inst✝⁹ : Algebra R S
P : Type ?u.224700
inst✝⁸ : CommRing P
A : Type u_1
inst✝⁷ : CommRing A
inst✝⁶ : IsDomain A
K : Type u_2
B : Type ?u.224883
inst✝⁵ : CommRing B
inst✝⁴ : IsDomain B
inst✝³ : Field K
L : Type ?u.225060
inst✝² : Field L
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
g : A →+* L
x : A
y : { x // x ∈ nonZeroDivisors A }
⊢ mk' K x y = 1 → x = ↑y

tactic: have hy : (algebraMap A K) ↑y ≠ (0 : K) :=
  IsFractionRing.to_map_ne_zero_of_mem_nonZeroDivisors y.property
state_before: R : Type ?u.224271
inst✝¹¹ : CommRing R
M : Submonoid R
S : Type ?u.224463
inst✝¹⁰ : CommRing S
inst✝⁹ : Algebra R S
P : Type ?u.224700
inst✝⁸ : CommRing P
A : Type u_1
inst✝⁷ : CommRing A
inst✝⁶ : IsDomain A
K : Type u_2
B : Type ?u.224883
inst✝⁵ : CommRing B
inst✝⁴ : IsDomain B
inst✝³ : Field K
L : Type ?u.225060
inst✝² : Field L
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
g : A →+* L
x : A
y : { x // x ∈ nonZeroDivisors A }
hxy : mk' K x y = 1
⊢ x = ↑y

tactic: rw [IsFractionRing.mk'_eq_div, div_eq_one_iff_eq hy] at hxy
state_before: R : Type ?u.224271
inst✝¹¹ : CommRing R
M : Submonoid R
S : Type ?u.224463
inst✝¹⁰ : CommRing S
inst✝⁹ : Algebra R S
P : Type ?u.224700
inst✝⁸ : CommRing P
A : Type u_1
inst✝⁷ : CommRing A
inst✝⁶ : IsDomain A
K : Type u_2
B : Type ?u.224883
inst✝⁵ : CommRing B
inst✝⁴ : IsDomain B
inst✝³ : Field K
L : Type ?u.225060
inst✝² : Field L
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
g : A →+* L
x : A
y : { x // x ∈ nonZeroDivisors A }
hxy : mk' K x y = 1
hy : ↑(algebraMap A K) ↑y ≠ 0
⊢ x = ↑y

tactic: exact IsFractionRing.injective A K hxy
state_before: R : Type ?u.224271
inst✝¹¹ : CommRing R
M : Submonoid R
S : Type ?u.224463
inst✝¹⁰ : CommRing S
inst✝⁹ : Algebra R S
P : Type ?u.224700
inst✝⁸ : CommRing P
A : Type u_1
inst✝⁷ : CommRing A
inst✝⁶ : IsDomain A
K : Type u_2
B : Type ?u.224883
inst✝⁵ : CommRing B
inst✝⁴ : IsDomain B
inst✝³ : Field K
L : Type ?u.225060
inst✝² : Field L
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
g : A →+* L
x : A
y : { x // x ∈ nonZeroDivisors A }
hxy : ↑(algebraMap A K) x = ↑(algebraMap A K) ↑y
hy : ↑(algebraMap A K) ↑y ≠ 0
⊢ x = ↑y