Theorem: Ring.DimensionLEOne.localization
File: Mathlib/RingTheory/DedekindDomain/Dvr.lean

Proof steps:
state_before: R✝ : Type u_1
A : Type u_2
K : Type u_3
inst✝⁸ : CommRing R✝
inst✝⁷ : CommRing A
inst✝⁶ : IsDomain A
inst✝⁵ : Field K
R : Type u_4
Rₘ : Type u_5
inst✝⁴ : CommRing R
inst✝³ : IsDomain R
inst✝² : CommRing Rₘ
inst✝¹ : Algebra R Rₘ
M : Submonoid R
inst✝ : IsLocalization M Rₘ
hM : M ≤ R⁰
h : DimensionLEOne R
⊢ ∀ {p : Ideal Rₘ}, p ≠ ⊥ → p.IsPrime → p.IsMaximal
state_after: R✝ : Type u_1
A : Type u_2
K : Type u_3
inst✝⁸ : CommRing R✝
inst✝⁷ : CommRing A
inst✝⁶ : IsDomain A
inst✝⁵ : Field K
R : Type u_4
Rₘ : Type u_5
inst✝⁴ : CommRing R
inst✝³ : IsDomain R
inst✝² : CommRing Rₘ
inst✝¹ : Algebra R Rₘ
M : Submonoid R
inst✝ : IsLocalization M Rₘ
hM : M ≤ R⁰
h : DimensionLEOne R
p : Ideal Rₘ
hp0 : p ≠ ⊥
hpp : p.IsPrime
⊢ p.IsMaximal
tactic: intro p hp0 hpp
state_before: R✝ : Type u_1
A : Type u_2
K : Type u_3
inst✝⁸ : CommRing R✝
inst✝⁷ : CommRing A
inst✝⁶ : IsDomain A
inst✝⁵ : Field K
R : Type u_4
Rₘ : Type u_5
inst✝⁴ : CommRing R
inst✝³ : IsDomain R
inst✝² : CommRing Rₘ
inst✝¹ : Algebra R Rₘ
M : Submonoid R
inst✝ : IsLocalization M Rₘ
hM : M ≤ R⁰
h : DimensionLEOne R
p : Ideal Rₘ
hp0 : p ≠ ⊥
hpp : p.IsPrime
⊢ p.IsMaximal
state_after: R✝ : Type u_1
A : Type u_2
K : Type u_3
inst✝⁸ : CommRing R✝
inst✝⁷ : CommRing A
inst✝⁶ : IsDomain A
inst✝⁵ : Field K
R : Type u_4
Rₘ : Type u_5
inst✝⁴ : CommRing R
inst✝³ : IsDomain R
inst✝² : CommRing Rₘ
inst✝¹ : Algebra R Rₘ
M : Submonoid R
inst✝ : IsLocalization M Rₘ
hM : M ≤ R⁰
h : DimensionLEOne R
p : Ideal Rₘ
hp0 : p ≠ ⊥
hpp : p.IsPrime
P : Ideal Rₘ
hpP : p < P
hPm : P.IsMaximal
⊢ False
tactic: refine Ideal.isMaximal_def.mpr ⟨hpp.ne_top, Ideal.maximal_of_no_maximal fun P hpP hPm => ?_⟩
state_before: R✝ : Type u_1
A : Type u_2
K : Type u_3
inst✝⁸ : CommRing R✝
inst✝⁷ : CommRing A
inst✝⁶ : IsDomain A
inst✝⁵ : Field K
R : Type u_4
Rₘ : Type u_5
inst✝⁴ : CommRing R
inst✝³ : IsDomain R
inst✝² : CommRing Rₘ
inst✝¹ : Algebra R Rₘ
M : Submonoid R
inst✝ : IsLocalization M Rₘ
hM : M ≤ R⁰
h : DimensionLEOne R
p : Ideal Rₘ
hp0 : p ≠ ⊥
hpp : p.IsPrime
P : Ideal Rₘ
hpP : p < P
hPm : P.IsMaximal
⊢ False
state_after: R✝ : Type u_1
A : Type u_2
K : Type u_3
inst✝⁸ : CommRing R✝
inst✝⁷ : CommRing A
inst✝⁶ : IsDomain A
inst✝⁵ : Field K
R : Type u_4
Rₘ : Type u_5
inst✝⁴ : CommRing R
inst✝³ : IsDomain R
inst✝² : CommRing Rₘ
inst✝¹ : Algebra R Rₘ
M : Submonoid R
inst✝ : IsLocalization M Rₘ
hM : M ≤ R⁰
h : DimensionLEOne R
p : Ideal Rₘ
hp0 : p ≠ ⊥
hpp : p.IsPrime
P : Ideal Rₘ
hpP : p < P
hPm : P.IsMaximal
hpP' : ⟨p, hpp⟩ < ⟨P, ⋯⟩
⊢ False
tactic: have hpP' : (⟨p, hpp⟩ : { p : Ideal Rₘ // p.IsPrime }) < ⟨P, hPm.isPrime⟩ := hpP
state_before: R✝ : Type u_1
A : Type u_2
K : Type u_3
inst✝⁸ : CommRing R✝
inst✝⁷ : CommRing A
inst✝⁶ : IsDomain A
inst✝⁵ : Field K
R : Type u_4
Rₘ : Type u_5
inst✝⁴ : CommRing R
inst✝³ : IsDomain R
inst✝² : CommRing Rₘ
inst✝¹ : Algebra R Rₘ
M : Submonoid R
inst✝ : IsLocalization M Rₘ
hM : M ≤ R⁰
h : DimensionLEOne R
p : Ideal Rₘ
hp0 : p ≠ ⊥
hpp : p.IsPrime
P : Ideal Rₘ
hpP : p < P
hPm : P.IsMaximal
hpP' : ⟨p, hpp⟩ < ⟨P, ⋯⟩
⊢ False
state_after: R✝ : Type u_1
A : Type u_2
K : Type u_3
inst✝⁸ : CommRing R✝
inst✝⁷ : CommRing A
inst✝⁶ : IsDomain A
inst✝⁵ : Field K
R : Type u_4
Rₘ : Type u_5
inst✝⁴ : CommRing R
inst✝³ : IsDomain R
inst✝² : CommRing Rₘ
inst✝¹ : Algebra R Rₘ
M : Submonoid R
inst✝ : IsLocalization M Rₘ
hM : M ≤ R⁰
h : DimensionLEOne R
p : Ideal Rₘ
hp0 : p ≠ ⊥
hpp : p.IsPrime
P : Ideal Rₘ
hpP : p < P
hPm : P.IsMaximal
hpP' : (IsLocalization.orderIsoOfPrime M Rₘ) ⟨p, hpp⟩ < (IsLocalization.orderIsoOfPrime M Rₘ) ⟨P, ⋯⟩
⊢ False
tactic: rw [← (IsLocalization.orderIsoOfPrime M Rₘ).lt_iff_lt] at hpP'
state_before: R✝ : Type u_1
A : Type u_2
K : Type u_3
inst✝⁸ : CommRing R✝
inst✝⁷ : CommRing A
inst✝⁶ : IsDomain A
inst✝⁵ : Field K
R : Type u_4
Rₘ : Type u_5
inst✝⁴ : CommRing R
inst✝³ : IsDomain R
inst✝² : CommRing Rₘ
inst✝¹ : Algebra R Rₘ
M : Submonoid R
inst✝ : IsLocalization M Rₘ
hM : M ≤ R⁰
h : DimensionLEOne R
p : Ideal Rₘ
hp0 : p ≠ ⊥
hpp : p.IsPrime
P : Ideal Rₘ
hpP : p < P
hPm : P.IsMaximal
hpP' : (IsLocalization.orderIsoOfPrime M Rₘ) ⟨p, hpp⟩ < (IsLocalization.orderIsoOfPrime M Rₘ) ⟨P, ⋯⟩
⊢ False
state_after: R✝ : Type u_1
A : Type u_2
K : Type u_3
inst✝⁸ : CommRing R✝
inst✝⁷ : CommRing A
inst✝⁶ : IsDomain A
inst✝⁵ : Field K
R : Type u_4
Rₘ : Type u_5
inst✝⁴ : CommRing R
inst✝³ : IsDomain R
inst✝² : CommRing Rₘ
inst✝¹ : Algebra R Rₘ
M : Submonoid R
inst✝ : IsLocalization M Rₘ
hM : M ≤ R⁰
h : DimensionLEOne R
p : Ideal Rₘ
hp0 : p ≠ ⊥
hpp : p.IsPrime
P : Ideal Rₘ
hpP : p < P
hPm : P.IsMaximal
hpP' : (IsLocalization.orderIsoOfPrime M Rₘ) ⟨p, hpp⟩ < (IsLocalization.orderIsoOfPrime M Rₘ) ⟨P, ⋯⟩
this : (Ideal.comap (algebraMap R Rₘ) p).IsPrime
⊢ False
tactic: haveI : Ideal.IsPrime (Ideal.comap (algebraMap R Rₘ) p) :=
    ((IsLocalization.orderIsoOfPrime M Rₘ) ⟨p, hpp⟩).2.1
state_before: R✝ : Type u_1
A : Type u_2
K : Type u_3
inst✝⁸ : CommRing R✝
inst✝⁷ : CommRing A
inst✝⁶ : IsDomain A
inst✝⁵ : Field K
R : Type u_4
Rₘ : Type u_5
inst✝⁴ : CommRing R
inst✝³ : IsDomain R
inst✝² : CommRing Rₘ
inst✝¹ : Algebra R Rₘ
M : Submonoid R
inst✝ : IsLocalization M Rₘ
hM : M ≤ R⁰
h : DimensionLEOne R
p : Ideal Rₘ
hp0 : p ≠ ⊥
hpp : p.IsPrime
P : Ideal Rₘ
hpP : p < P
hPm : P.IsMaximal
hpP' : (IsLocalization.orderIsoOfPrime M Rₘ) ⟨p, hpp⟩ < (IsLocalization.orderIsoOfPrime M Rₘ) ⟨P, ⋯⟩
this : (Ideal.comap (algebraMap R Rₘ) p).IsPrime
⊢ False
state_after: R✝ : Type u_1
A : Type u_2
K : Type u_3
inst✝⁸ : CommRing R✝
inst✝⁷ : CommRing A
inst✝⁶ : IsDomain A
inst✝⁵ : Field K
R : Type u_4
Rₘ : Type u_5
inst✝⁴ : CommRing R
inst✝³ : IsDomain R
inst✝² : CommRing Rₘ
inst✝¹ : Algebra R Rₘ
M : Submonoid R
inst✝ : IsLocalization M Rₘ
hM : M ≤ R⁰
h : DimensionLEOne R
p : Ideal Rₘ
hp0 : p ≠ ⊥
hpp : p.IsPrime
P : Ideal Rₘ
hpP : p < P
hPm : P.IsMaximal
hpP' : (IsLocalization.orderIsoOfPrime M Rₘ) ⟨p, hpp⟩ < (IsLocalization.orderIsoOfPrime M Rₘ) ⟨P, ⋯⟩
this✝ : (Ideal.comap (algebraMap R Rₘ) p).IsPrime
this : (Ideal.comap (algebraMap R Rₘ) P).IsPrime
⊢ False
tactic: haveI : Ideal.IsPrime (Ideal.comap (algebraMap R Rₘ) P) :=
    ((IsLocalization.orderIsoOfPrime M Rₘ) ⟨P, hPm.isPrime⟩).2.1
state_before: R✝ : Type u_1
A : Type u_2
K : Type u_3
inst✝⁸ : CommRing R✝
inst✝⁷ : CommRing A
inst✝⁶ : IsDomain A
inst✝⁵ : Field K
R : Type u_4
Rₘ : Type u_5
inst✝⁴ : CommRing R
inst✝³ : IsDomain R
inst✝² : CommRing Rₘ
inst✝¹ : Algebra R Rₘ
M : Submonoid R
inst✝ : IsLocalization M Rₘ
hM : M ≤ R⁰
h : DimensionLEOne R
p : Ideal Rₘ
hp0 : p ≠ ⊥
hpp : p.IsPrime
P : Ideal Rₘ
hpP : p < P
hPm : P.IsMaximal
hpP' : (IsLocalization.orderIsoOfPrime M Rₘ) ⟨p, hpp⟩ < (IsLocalization.orderIsoOfPrime M Rₘ) ⟨P, ⋯⟩
this✝ : (Ideal.comap (algebraMap R Rₘ) p).IsPrime
this : (Ideal.comap (algebraMap R Rₘ) P).IsPrime
⊢ False
state_after: R✝ : Type u_1
A : Type u_2
K : Type u_3
inst✝⁸ : CommRing R✝
inst✝⁷ : CommRing A
inst✝⁶ : IsDomain A
inst✝⁵ : Field K
R : Type u_4
Rₘ : Type u_5
inst✝⁴ : CommRing R
inst✝³ : IsDomain R
inst✝² : CommRing Rₘ
inst✝¹ : Algebra R Rₘ
M : Submonoid R
inst✝ : IsLocalization M Rₘ
hM : M ≤ R⁰
h : DimensionLEOne R
p : Ideal Rₘ
hp0 : p ≠ ⊥
hpp : p.IsPrime
P : Ideal Rₘ
hpP : p < P
hPm : P.IsMaximal
hpP' : (IsLocalization.orderIsoOfPrime M Rₘ) ⟨p, hpp⟩ < (IsLocalization.orderIsoOfPrime M Rₘ) ⟨P, ⋯⟩
this✝ : (Ideal.comap (algebraMap R Rₘ) p).IsPrime
this : (Ideal.comap (algebraMap R Rₘ) P).IsPrime
hlt : Ideal.comap (algebraMap R Rₘ) p < Ideal.comap (algebraMap R Rₘ) P
⊢ False
tactic: have hlt : Ideal.comap (algebraMap R Rₘ) p < Ideal.comap (algebraMap R Rₘ) P := hpP'
state_before: R✝ : Type u_1
A : Type u_2
K : Type u_3
inst✝⁸ : CommRing R✝
inst✝⁷ : CommRing A
inst✝⁶ : IsDomain A
inst✝⁵ : Field K
R : Type u_4
Rₘ : Type u_5
inst✝⁴ : CommRing R
inst✝³ : IsDomain R
inst✝² : CommRing Rₘ
inst✝¹ : Algebra R Rₘ
M : Submonoid R
inst✝ : IsLocalization M Rₘ
hM : M ≤ R⁰
h : DimensionLEOne R
p : Ideal Rₘ
hp0 : p ≠ ⊥
hpp : p.IsPrime
P : Ideal Rₘ
hpP : p < P
hPm : P.IsMaximal
hpP' : (IsLocalization.orderIsoOfPrime M Rₘ) ⟨p, hpp⟩ < (IsLocalization.orderIsoOfPrime M Rₘ) ⟨P, ⋯⟩
this✝ : (Ideal.comap (algebraMap R Rₘ) p).IsPrime
this : (Ideal.comap (algebraMap R Rₘ) P).IsPrime
hlt : Ideal.comap (algebraMap R Rₘ) p < Ideal.comap (algebraMap R Rₘ) P
⊢ False
state_after: R✝ : Type u_1
A : Type u_2
K : Type u_3
inst✝⁸ : CommRing R✝
inst✝⁷ : CommRing A
inst✝⁶ : IsDomain A
inst✝⁵ : Field K
R : Type u_4
Rₘ : Type u_5
inst✝⁴ : CommRing R
inst✝³ : IsDomain R
inst✝² : CommRing Rₘ
inst✝¹ : Algebra R Rₘ
M : Submonoid R
inst✝ : IsLocalization M Rₘ
hM : M ≤ R⁰
h : DimensionLEOne R
p : Ideal Rₘ
hp0 : p ≠ ⊥
hpp : p.IsPrime
P : Ideal Rₘ
hpP : p < P
hPm : P.IsMaximal
hpP' : (IsLocalization.orderIsoOfPrime M Rₘ) ⟨p, hpp⟩ < (IsLocalization.orderIsoOfPrime M Rₘ) ⟨P, ⋯⟩
this✝ : (Ideal.comap (algebraMap R Rₘ) p).IsPrime
this : (Ideal.comap (algebraMap R Rₘ) P).IsPrime
hlt : Ideal.comap (algebraMap R Rₘ) p < Ideal.comap (algebraMap R Rₘ) P
⊢ ⊥ < Ideal.comap (algebraMap R Rₘ) p
tactic: refine h.not_lt_lt ⊥ (Ideal.comap _ _) (Ideal.comap _ _) ⟨?_, hlt⟩
state_before: R✝ : Type u_1
A : Type u_2
K : Type u_3
inst✝⁸ : CommRing R✝
inst✝⁷ : CommRing A
inst✝⁶ : IsDomain A
inst✝⁵ : Field K
R : Type u_4
Rₘ : Type u_5
inst✝⁴ : CommRing R
inst✝³ : IsDomain R
inst✝² : CommRing Rₘ
inst✝¹ : Algebra R Rₘ
M : Submonoid R
inst✝ : IsLocalization M Rₘ
hM : M ≤ R⁰
h : DimensionLEOne R
p : Ideal Rₘ
hp0 : p ≠ ⊥
hpp : p.IsPrime
P : Ideal Rₘ
hpP : p < P
hPm : P.IsMaximal
hpP' : (IsLocalization.orderIsoOfPrime M Rₘ) ⟨p, hpp⟩ < (IsLocalization.orderIsoOfPrime M Rₘ) ⟨P, ⋯⟩
this✝ : (Ideal.comap (algebraMap R Rₘ) p).IsPrime
this : (Ideal.comap (algebraMap R Rₘ) P).IsPrime
hlt : Ideal.comap (algebraMap R Rₘ) p < Ideal.comap (algebraMap R Rₘ) P
⊢ ⊥ < Ideal.comap (algebraMap R Rₘ) p
state_after: no goals
tactic: exact IsLocalization.bot_lt_comap_prime _ _ hM _ hp0