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

tactic: intro p hp0 hpp
state_before: R✝ : Type ?u.1246
A : Type ?u.1249
K : Type ?u.1252
inst✝⁸ : CommRing R✝
inst✝⁷ : CommRing A
inst✝⁶ : IsDomain A
inst✝⁵ : Field K
R : Type u_1
Rₘ : Type u_2
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
⊢ DimensionLEOne Rₘ

tactic: refine' Ideal.isMaximal_def.mpr ⟨hpp.ne_top, Ideal.maximal_of_no_maximal fun P hpP hPm => _⟩
state_before: R✝ : Type ?u.1246
A : Type ?u.1249
K : Type ?u.1252
inst✝⁸ : CommRing R✝
inst✝⁷ : CommRing A
inst✝⁶ : IsDomain A
inst✝⁵ : Field K
R : Type u_1
Rₘ : Type u_2
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 : Ideal.IsPrime p
⊢ Ideal.IsMaximal p

tactic: have hpP' : (⟨p, hpp⟩ : { p : Ideal Rₘ // p.IsPrime }) < ⟨P, hPm.isPrime⟩ := hpP
state_before: R✝ : Type ?u.1246
A : Type ?u.1249
K : Type ?u.1252
inst✝⁸ : CommRing R✝
inst✝⁷ : CommRing A
inst✝⁶ : IsDomain A
inst✝⁵ : Field K
R : Type u_1
Rₘ : Type u_2
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 : Ideal.IsPrime p
P : Ideal Rₘ
hpP : p < P
hPm : Ideal.IsMaximal P
⊢ False

tactic: rw [← (IsLocalization.orderIsoOfPrime M Rₘ).lt_iff_lt] at hpP'
state_before: R✝ : Type ?u.1246
A : Type ?u.1249
K : Type ?u.1252
inst✝⁸ : CommRing R✝
inst✝⁷ : CommRing A
inst✝⁶ : IsDomain A
inst✝⁵ : Field K
R : Type u_1
Rₘ : Type u_2
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 : Ideal.IsPrime p
P : Ideal Rₘ
hpP : p < P
hPm : Ideal.IsMaximal P
hpP' : { val := p, property := hpp } < { val := P, property := (_ : Ideal.IsPrime P) }
⊢ False

tactic: haveI : Ideal.IsPrime (Ideal.comap (algebraMap R Rₘ) p) :=
  ((IsLocalization.orderIsoOfPrime M Rₘ) ⟨p, hpp⟩).2.1
state_before: R✝ : Type ?u.1246
A : Type ?u.1249
K : Type ?u.1252
inst✝⁸ : CommRing R✝
inst✝⁷ : CommRing A
inst✝⁶ : IsDomain A
inst✝⁵ : Field K
R : Type u_1
Rₘ : Type u_2
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 : Ideal.IsPrime p
P : Ideal Rₘ
hpP : p < P
hPm : Ideal.IsMaximal P
hpP' :
  ↑(IsLocalization.orderIsoOfPrime M Rₘ) { val := p, property := hpp } <
    ↑(IsLocalization.orderIsoOfPrime M Rₘ) { val := P, property := (_ : Ideal.IsPrime P) }
⊢ 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.1246
A : Type ?u.1249
K : Type ?u.1252
inst✝⁸ : CommRing R✝
inst✝⁷ : CommRing A
inst✝⁶ : IsDomain A
inst✝⁵ : Field K
R : Type u_1
Rₘ : Type u_2
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 : Ideal.IsPrime p
P : Ideal Rₘ
hpP : p < P
hPm : Ideal.IsMaximal P
hpP' :
  ↑(IsLocalization.orderIsoOfPrime M Rₘ) { val := p, property := hpp } <
    ↑(IsLocalization.orderIsoOfPrime M Rₘ) { val := P, property := (_ : Ideal.IsPrime P) }
this : Ideal.IsPrime (Ideal.comap (algebraMap R Rₘ) p)
⊢ False

tactic: have _ : Ideal.comap (algebraMap R Rₘ) p < Ideal.comap (algebraMap R Rₘ) P := hpP'
state_before: R✝ : Type ?u.1246
A : Type ?u.1249
K : Type ?u.1252
inst✝⁸ : CommRing R✝
inst✝⁷ : CommRing A
inst✝⁶ : IsDomain A
inst✝⁵ : Field K
R : Type u_1
Rₘ : Type u_2
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 : Ideal.IsPrime p
P : Ideal Rₘ
hpP : p < P
hPm : Ideal.IsMaximal P
hpP' :
  ↑(IsLocalization.orderIsoOfPrime M Rₘ) { val := p, property := hpp } <
    ↑(IsLocalization.orderIsoOfPrime M Rₘ) { val := P, property := (_ : Ideal.IsPrime P) }
this✝ : Ideal.IsPrime (Ideal.comap (algebraMap R Rₘ) p)
this : Ideal.IsPrime (Ideal.comap (algebraMap R Rₘ) P)
⊢ False

tactic: refine' h.not_lt_lt ⊥ (Ideal.comap _ _) (Ideal.comap _ _) ⟨_, hpP'⟩
state_before: R✝ : Type ?u.1246
A : Type ?u.1249
K : Type ?u.1252
inst✝⁸ : CommRing R✝
inst✝⁷ : CommRing A
inst✝⁶ : IsDomain A
inst✝⁵ : Field K
R : Type u_1
Rₘ : Type u_2
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 : Ideal.IsPrime p
P : Ideal Rₘ
hpP : p < P
hPm : Ideal.IsMaximal P
hpP' :
  ↑(IsLocalization.orderIsoOfPrime M Rₘ) { val := p, property := hpp } <
    ↑(IsLocalization.orderIsoOfPrime M Rₘ) { val := P, property := (_ : Ideal.IsPrime P) }
this✝ : Ideal.IsPrime (Ideal.comap (algebraMap R Rₘ) p)
this : Ideal.IsPrime (Ideal.comap (algebraMap R Rₘ) P)
x✝ : Ideal.comap (algebraMap R Rₘ) p < Ideal.comap (algebraMap R Rₘ) P
⊢ False

tactic: exact IsLocalization.bot_lt_comap_prime _ _ hM _ hp0
state_before: R✝ : Type ?u.1246
A : Type ?u.1249
K : Type ?u.1252
inst✝⁸ : CommRing R✝
inst✝⁷ : CommRing A
inst✝⁶ : IsDomain A
inst✝⁵ : Field K
R : Type u_1
Rₘ : Type u_2
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 : Ideal.IsPrime p
P : Ideal Rₘ
hpP : p < P
hPm : Ideal.IsMaximal P
hpP' :
  ↑(IsLocalization.orderIsoOfPrime M Rₘ) { val := p, property := hpp } <
    ↑(IsLocalization.orderIsoOfPrime M Rₘ) { val := P, property := (_ : Ideal.IsPrime P) }
this✝ : Ideal.IsPrime (Ideal.comap (algebraMap R Rₘ) p)
this : Ideal.IsPrime (Ideal.comap (algebraMap R Rₘ) P)
x✝ : Ideal.comap (algebraMap R Rₘ) p < Ideal.comap (algebraMap R Rₘ) P
⊢ ⊥ < Ideal.comap (algebraMap R Rₘ) ↑{ val := p, property := hpp }