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

tactic: apply nontrivial_of_ne
state_before: R✝ : Type u_1
inst✝¹⁶ : CommRing R✝
M : Submonoid R✝
S✝ : Type u_2
inst✝¹⁵ : CommRing S✝
inst✝¹⁴ : Algebra R✝ S✝
P : Type u_3
inst✝¹³ : CommRing P
A : Type u_4
inst✝¹² : CommRing A
inst✝¹¹ : IsDomain A
K : Type u_5
B : Type u_6
inst✝¹⁰ : CommRing B
inst✝⁹ : IsDomain B
inst✝⁸ : Field K
L : Type u_7
inst✝⁷ : Field L
inst✝⁶ : Algebra A K
inst✝⁵ : IsFractionRing A K
g : A →+* L
R : Type u_8
S : Type u_9
inst✝⁴ : CommRing R
inst✝³ : Nontrivial R
inst✝² : CommRing S
inst✝¹ : Algebra R S
inst✝ : IsFractionRing R S
⊢ Nontrivial S
state_after: case h
R✝ : Type u_1
inst✝¹⁶ : CommRing R✝
M : Submonoid R✝
S✝ : Type u_2
inst✝¹⁵ : CommRing S✝
inst✝¹⁴ : Algebra R✝ S✝
P : Type u_3
inst✝¹³ : CommRing P
A : Type u_4
inst✝¹² : CommRing A
inst✝¹¹ : IsDomain A
K : Type u_5
B : Type u_6
inst✝¹⁰ : CommRing B
inst✝⁹ : IsDomain B
inst✝⁸ : Field K
L : Type u_7
inst✝⁷ : Field L
inst✝⁶ : Algebra A K
inst✝⁵ : IsFractionRing A K
g : A →+* L
R : Type u_8
S : Type u_9
inst✝⁴ : CommRing R
inst✝³ : Nontrivial R
inst✝² : CommRing S
inst✝¹ : Algebra R S
inst✝ : IsFractionRing R S
⊢ ?x ≠ ?y

case x
R✝ : Type u_1
inst✝¹⁶ : CommRing R✝
M : Submonoid R✝
S✝ : Type u_2
inst✝¹⁵ : CommRing S✝
inst✝¹⁴ : Algebra R✝ S✝
P : Type u_3
inst✝¹³ : CommRing P
A : Type u_4
inst✝¹² : CommRing A
inst✝¹¹ : IsDomain A
K : Type u_5
B : Type u_6
inst✝¹⁰ : CommRing B
inst✝⁹ : IsDomain B
inst✝⁸ : Field K
L : Type u_7
inst✝⁷ : Field L
inst✝⁶ : Algebra A K
inst✝⁵ : IsFractionRing A K
g : A →+* L
R : Type u_8
S : Type u_9
inst✝⁴ : CommRing R
inst✝³ : Nontrivial R
inst✝² : CommRing S
inst✝¹ : Algebra R S
inst✝ : IsFractionRing R S
⊢ S

case y
R✝ : Type u_1
inst✝¹⁶ : CommRing R✝
M : Submonoid R✝
S✝ : Type u_2
inst✝¹⁵ : CommRing S✝
inst✝¹⁴ : Algebra R✝ S✝
P : Type u_3
inst✝¹³ : CommRing P
A : Type u_4
inst✝¹² : CommRing A
inst✝¹¹ : IsDomain A
K : Type u_5
B : Type u_6
inst✝¹⁰ : CommRing B
inst✝⁹ : IsDomain B
inst✝⁸ : Field K
L : Type u_7
inst✝⁷ : Field L
inst✝⁶ : Algebra A K
inst✝⁵ : IsFractionRing A K
g : A →+* L
R : Type u_8
S : Type u_9
inst✝⁴ : CommRing R
inst✝³ : Nontrivial R
inst✝² : CommRing S
inst✝¹ : Algebra R S
inst✝ : IsFractionRing R S
⊢ S

tactic: intro h
state_before: case h
R✝ : Type u_1
inst✝¹⁶ : CommRing R✝
M : Submonoid R✝
S✝ : Type u_2
inst✝¹⁵ : CommRing S✝
inst✝¹⁴ : Algebra R✝ S✝
P : Type u_3
inst✝¹³ : CommRing P
A : Type u_4
inst✝¹² : CommRing A
inst✝¹¹ : IsDomain A
K : Type u_5
B : Type u_6
inst✝¹⁰ : CommRing B
inst✝⁹ : IsDomain B
inst✝⁸ : Field K
L : Type u_7
inst✝⁷ : Field L
inst✝⁶ : Algebra A K
inst✝⁵ : IsFractionRing A K
g : A →+* L
R : Type u_8
S : Type u_9
inst✝⁴ : CommRing R
inst✝³ : Nontrivial R
inst✝² : CommRing S
inst✝¹ : Algebra R S
inst✝ : IsFractionRing R S
⊢ ?x ≠ ?y
state_after: case h
R✝ : Type u_1
inst✝¹⁶ : CommRing R✝
M : Submonoid R✝
S✝ : Type u_2
inst✝¹⁵ : CommRing S✝
inst✝¹⁴ : Algebra R✝ S✝
P : Type u_3
inst✝¹³ : CommRing P
A : Type u_4
inst✝¹² : CommRing A
inst✝¹¹ : IsDomain A
K : Type u_5
B : Type u_6
inst✝¹⁰ : CommRing B
inst✝⁹ : IsDomain B
inst✝⁸ : Field K
L : Type u_7
inst✝⁷ : Field L
inst✝⁶ : Algebra A K
inst✝⁵ : IsFractionRing A K
g : A →+* L
R : Type u_8
S : Type u_9
inst✝⁴ : CommRing R
inst✝³ : Nontrivial R
inst✝² : CommRing S
inst✝¹ : Algebra R S
inst✝ : IsFractionRing R S
h : ?x = ?y
⊢ False

tactic: apply @zero_ne_one R
state_before: case h
R✝ : Type u_1
inst✝¹⁶ : CommRing R✝
M : Submonoid R✝
S✝ : Type u_2
inst✝¹⁵ : CommRing S✝
inst✝¹⁴ : Algebra R✝ S✝
P : Type u_3
inst✝¹³ : CommRing P
A : Type u_4
inst✝¹² : CommRing A
inst✝¹¹ : IsDomain A
K : Type u_5
B : Type u_6
inst✝¹⁰ : CommRing B
inst✝⁹ : IsDomain B
inst✝⁸ : Field K
L : Type u_7
inst✝⁷ : Field L
inst✝⁶ : Algebra A K
inst✝⁵ : IsFractionRing A K
g : A →+* L
R : Type u_8
S : Type u_9
inst✝⁴ : CommRing R
inst✝³ : Nontrivial R
inst✝² : CommRing S
inst✝¹ : Algebra R S
inst✝ : IsFractionRing R S
h : ?x = ?y
⊢ False
state_after: case h.a
R✝ : Type u_1
inst✝¹⁶ : CommRing R✝
M : Submonoid R✝
S✝ : Type u_2
inst✝¹⁵ : CommRing S✝
inst✝¹⁴ : Algebra R✝ S✝
P : Type u_3
inst✝¹³ : CommRing P
A : Type u_4
inst✝¹² : CommRing A
inst✝¹¹ : IsDomain A
K : Type u_5
B : Type u_6
inst✝¹⁰ : CommRing B
inst✝⁹ : IsDomain B
inst✝⁸ : Field K
L : Type u_7
inst✝⁷ : Field L
inst✝⁶ : Algebra A K
inst✝⁵ : IsFractionRing A K
g : A →+* L
R : Type u_8
S : Type u_9
inst✝⁴ : CommRing R
inst✝³ : Nontrivial R
inst✝² : CommRing S
inst✝¹ : Algebra R S
inst✝ : IsFractionRing R S
h : ?x = ?y
⊢ 0 = 1

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_1
inst✝¹⁶ : CommRing R✝
M : Submonoid R✝
S✝ : Type u_2
inst✝¹⁵ : CommRing S✝
inst✝¹⁴ : Algebra R✝ S✝
P : Type u_3
inst✝¹³ : CommRing P
A : Type u_4
inst✝¹² : CommRing A
inst✝¹¹ : IsDomain A
K : Type u_5
B : Type u_6
inst✝¹⁰ : CommRing B
inst✝⁹ : IsDomain B
inst✝⁸ : Field K
L : Type u_7
inst✝⁷ : Field L
inst✝⁶ : Algebra A K
inst✝⁵ : IsFractionRing A K
g : A →+* L
R : Type u_8
S : Type u_9
inst✝⁴ : CommRing R
inst✝³ : Nontrivial R
inst✝² : CommRing S
inst✝¹ : Algebra R S
inst✝ : IsFractionRing R S
h : ?x = ?y
⊢ 0 = 1
state_after: no goals