Theorem: IsFractionRing.nontrivial
File: Mathlib/RingTheory/Localization/FractionRing.lean

tactic: apply nontrivial_of_ne
state_before: R✝ : Type ?u.417998
inst✝¹⁶ : CommRing R✝
M : Submonoid R✝
S✝ : Type ?u.418190
inst✝¹⁵ : CommRing S✝
inst✝¹⁴ : Algebra R✝ S✝
P : Type ?u.418427
inst✝¹³ : CommRing P
A : Type ?u.418433
inst✝¹² : CommRing A
inst✝¹¹ : IsDomain A
K : Type ?u.418607
B : Type ?u.418610
inst✝¹⁰ : CommRing B
inst✝⁹ : IsDomain B
inst✝⁸ : Field K
L : Type ?u.418787
inst✝⁷ : Field L
inst✝⁶ : Algebra A K
inst✝⁵ : IsFractionRing A K
g : A →+* L
R : Type u_1
S : Type u_2
inst✝⁴ : CommRing R
inst✝³ : Nontrivial R
inst✝² : CommRing S
inst✝¹ : Algebra R S
inst✝ : IsFractionRing R S
⊢ Nontrivial S

tactic: intro h
state_before: case h
R✝ : Type ?u.417998
inst✝¹⁶ : CommRing R✝
M : Submonoid R✝
S✝ : Type ?u.418190
inst✝¹⁵ : CommRing S✝
inst✝¹⁴ : Algebra R✝ S✝
P : Type ?u.418427
inst✝¹³ : CommRing P
A : Type ?u.418433
inst✝¹² : CommRing A
inst✝¹¹ : IsDomain A
K : Type ?u.418607
B : Type ?u.418610
inst✝¹⁰ : CommRing B
inst✝⁹ : IsDomain B
inst✝⁸ : Field K
L : Type ?u.418787
inst✝⁷ : Field L
inst✝⁶ : Algebra A K
inst✝⁵ : IsFractionRing A K
g : A →+* L
R : Type u_1
S : Type u_2
inst✝⁴ : CommRing R
inst✝³ : Nontrivial R
inst✝² : CommRing S
inst✝¹ : Algebra R S
inst✝ : IsFractionRing R S
⊢ ?x ≠ ?y

case x
R✝ : Type ?u.417998
inst✝¹⁶ : CommRing R✝
M : Submonoid R✝
S✝ : Type ?u.418190
inst✝¹⁵ : CommRing S✝
inst✝¹⁴ : Algebra R✝ S✝
P : Type ?u.418427
inst✝¹³ : CommRing P
A : Type ?u.418433
inst✝¹² : CommRing A
inst✝¹¹ : IsDomain A
K : Type ?u.418607
B : Type ?u.418610
inst✝¹⁰ : CommRing B
inst✝⁹ : IsDomain B
inst✝⁸ : Field K
L : Type ?u.418787
inst✝⁷ : Field L
inst✝⁶ : Algebra A K
inst✝⁵ : IsFractionRing A K
g : A →+* L
R : Type u_1
S : Type u_2
inst✝⁴ : CommRing R
inst✝³ : Nontrivial R
inst✝² : CommRing S
inst✝¹ : Algebra R S
inst✝ : IsFractionRing R S
⊢ S

case y
R✝ : Type ?u.417998
inst✝¹⁶ : CommRing R✝
M : Submonoid R✝
S✝ : Type ?u.418190
inst✝¹⁵ : CommRing S✝
inst✝¹⁴ : Algebra R✝ S✝
P : Type ?u.418427
inst✝¹³ : CommRing P
A : Type ?u.418433
inst✝¹² : CommRing A
inst✝¹¹ : IsDomain A
K : Type ?u.418607
B : Type ?u.418610
inst✝¹⁰ : CommRing B
inst✝⁹ : IsDomain B
inst✝⁸ : Field K
L : Type ?u.418787
inst✝⁷ : Field L
inst✝⁶ : Algebra A K
inst✝⁵ : IsFractionRing A K
g : A →+* L
R : Type u_1
S : Type u_2
inst✝⁴ : CommRing R
inst✝³ : Nontrivial R
inst✝² : CommRing S
inst✝¹ : Algebra R S
inst✝ : IsFractionRing R S
⊢ S

tactic: apply @zero_ne_one R
state_before: case h
R✝ : Type ?u.417998
inst✝¹⁶ : CommRing R✝
M : Submonoid R✝
S✝ : Type ?u.418190
inst✝¹⁵ : CommRing S✝
inst✝¹⁴ : Algebra R✝ S✝
P : Type ?u.418427
inst✝¹³ : CommRing P
A : Type ?u.418433
inst✝¹² : CommRing A
inst✝¹¹ : IsDomain A
K : Type ?u.418607
B : Type ?u.418610
inst✝¹⁰ : CommRing B
inst✝⁹ : IsDomain B
inst✝⁸ : Field K
L : Type ?u.418787
inst✝⁷ : Field L
inst✝⁶ : Algebra A K
inst✝⁵ : IsFractionRing A K
g : A →+* L
R : Type u_1
S : Type u_2
inst✝⁴ : CommRing R
inst✝³ : Nontrivial R
inst✝² : CommRing S
inst✝¹ : Algebra R S
inst✝ : IsFractionRing R S
h : ?x = ?y
⊢ False

case x
R✝ : Type ?u.417998
inst✝¹⁶ : CommRing R✝
M : Submonoid R✝
S✝ : Type ?u.418190
inst✝¹⁵ : CommRing S✝
inst✝¹⁴ : Algebra R✝ S✝
P : Type ?u.418427
inst✝¹³ : CommRing P
A : Type ?u.418433
inst✝¹² : CommRing A
inst✝¹¹ : IsDomain A
K : Type ?u.418607
B : Type ?u.418610
inst✝¹⁰ : CommRing B
inst✝⁹ : IsDomain B
inst✝⁸ : Field K
L : Type ?u.418787
inst✝⁷ : Field L
inst✝⁶ : Algebra A K
inst✝⁵ : IsFractionRing A K
g : A →+* L
R : Type u_1
S : Type u_2
inst✝⁴ : CommRing R
inst✝³ : Nontrivial R
inst✝² : CommRing S
inst✝¹ : Algebra R S
inst✝ : IsFractionRing R S
⊢ S

case y
R✝ : Type ?u.417998
inst✝¹⁶ : CommRing R✝
M : Submonoid R✝
S✝ : Type ?u.418190
inst✝¹⁵ : CommRing S✝
inst✝¹⁴ : Algebra R✝ S✝
P : Type ?u.418427
inst✝¹³ : CommRing P
A : Type ?u.418433
inst✝¹² : CommRing A
inst✝¹¹ : IsDomain A
K : Type ?u.418607
B : Type ?u.418610
inst✝¹⁰ : CommRing B
inst✝⁹ : IsDomain B
inst✝⁸ : Field K
L : Type ?u.418787
inst✝⁷ : Field L
inst✝⁶ : Algebra A K
inst✝⁵ : IsFractionRing A K
g : A →+* L
R : Type u_1
S : Type u_2
inst✝⁴ : CommRing R
inst✝³ : Nontrivial R
inst✝² : CommRing S
inst✝¹ : Algebra R S
inst✝ : IsFractionRing R S
⊢ S

tactic: exact
  IsLocalization.injective S (le_of_eq rfl)
    (((algebraMap R S).map_zero.trans h).trans (algebraMap R S).map_one.symm)
state_before: case h.a
R✝ : Type ?u.417998
inst✝¹⁶ : CommRing R✝
M : Submonoid R✝
S✝ : Type ?u.418190
inst✝¹⁵ : CommRing S✝
inst✝¹⁴ : Algebra R✝ S✝
P : Type ?u.418427
inst✝¹³ : CommRing P
A : Type ?u.418433
inst✝¹² : CommRing A
inst✝¹¹ : IsDomain A
K : Type ?u.418607
B : Type ?u.418610
inst✝¹⁰ : CommRing B
inst✝⁹ : IsDomain B
inst✝⁸ : Field K
L : Type ?u.418787
inst✝⁷ : Field L
inst✝⁶ : Algebra A K
inst✝⁵ : IsFractionRing A K
g : A →+* L
R : Type u_1
S : Type u_2
inst✝⁴ : CommRing R
inst✝³ : Nontrivial R
inst✝² : CommRing S
inst✝¹ : Algebra R S
inst✝ : IsFractionRing R S
h : ?x = ?y
⊢ 0 = 1

case x
R✝ : Type ?u.417998
inst✝¹⁶ : CommRing R✝
M : Submonoid R✝
S✝ : Type ?u.418190
inst✝¹⁵ : CommRing S✝
inst✝¹⁴ : Algebra R✝ S✝
P : Type ?u.418427
inst✝¹³ : CommRing P
A : Type ?u.418433
inst✝¹² : CommRing A
inst✝¹¹ : IsDomain A
K : Type ?u.418607
B : Type ?u.418610
inst✝¹⁰ : CommRing B
inst✝⁹ : IsDomain B
inst✝⁸ : Field K
L : Type ?u.418787
inst✝⁷ : Field L
inst✝⁶ : Algebra A K
inst✝⁵ : IsFractionRing A K
g : A →+* L
R : Type u_1
S : Type u_2
inst✝⁴ : CommRing R
inst✝³ : Nontrivial R
inst✝² : CommRing S
inst✝¹ : Algebra R S
inst✝ : IsFractionRing R S
⊢ S

case y
R✝ : Type ?u.417998
inst✝¹⁶ : CommRing R✝
M : Submonoid R✝
S✝ : Type ?u.418190
inst✝¹⁵ : CommRing S✝
inst✝¹⁴ : Algebra R✝ S✝
P : Type ?u.418427
inst✝¹³ : CommRing P
A : Type ?u.418433
inst✝¹² : CommRing A
inst✝¹¹ : IsDomain A
K : Type ?u.418607
B : Type ?u.418610
inst✝¹⁰ : CommRing B
inst✝⁹ : IsDomain B
inst✝⁸ : Field K
L : Type ?u.418787
inst✝⁷ : Field L
inst✝⁶ : Algebra A K
inst✝⁵ : IsFractionRing A K
g : A →+* L
R : Type u_1
S : Type u_2
inst✝⁴ : CommRing R
inst✝³ : Nontrivial R
inst✝² : CommRing S
inst✝¹ : Algebra R S
inst✝ : IsFractionRing R S
⊢ S