diff --git a/CommAlg/krull.lean b/CommAlg/krull.lean index e068760..79e81c2 100644 --- a/CommAlg/krull.lean +++ b/CommAlg/krull.lean @@ -72,31 +72,32 @@ lemma krullDim_eq_height [LocalRing R] : krullDim R = height (closedPoint R) := /-- The height of a prime `๐”ญ` is greater than `n` if and only if there is a chain of primes less than `๐”ญ` with length `n + 1`. -/ lemma lt_height_iff' {๐”ญ : PrimeSpectrum R} {n : โ„•โˆž} : -height ๐”ญ > n โ†” โˆƒ c : List (PrimeSpectrum R), c.Chain' (ยท < ยท) โˆง (โˆ€ ๐”ฎ โˆˆ c, ๐”ฎ < ๐”ญ) โˆง c.length = n + 1 := by - rcases n with _ | n - . constructor <;> intro h <;> exfalso +n < height ๐”ญ โ†” โˆƒ c : List (PrimeSpectrum R), c.Chain' (ยท < ยท) โˆง (โˆ€ ๐”ฎ โˆˆ c, ๐”ฎ < ๐”ญ) โˆง c.length = n + 1 := by + match n with + | โŠค => + constructor <;> intro h <;> exfalso . exact (not_le.mpr h) le_top . tauto - have (m : โ„•โˆž) : m > some n โ†” m โ‰ฅ some (n + 1) := by - symm - show (n + 1 โ‰ค m โ†” _ ) - apply ENat.add_one_le_iff - exact ENat.coe_ne_top _ - rw [this] - unfold Ideal.height - show ((โ†‘(n + 1):โ„•โˆž) โ‰ค _) โ†” โˆƒc, _ โˆง _ โˆง ((_ : WithTop โ„•) = (_:โ„•โˆž)) - rw [{J | J < ๐”ญ}.le_chainHeight_iff] - show (โˆƒ c, (List.Chain' _ c โˆง โˆ€๐”ฎ, ๐”ฎ โˆˆ c โ†’ ๐”ฎ < ๐”ญ) โˆง _) โ†” _ - constructor <;> rintro โŸจc, hcโŸฉ <;> use c - . tauto - . change _ โˆง _ โˆง (List.length c : โ„•โˆž) = n + 1 at hc - norm_cast at hc - tauto + | (n : โ„•) => + have (m : โ„•โˆž) : n < m โ†” (n + 1 : โ„•โˆž) โ‰ค m := by + symm + show (n + 1 โ‰ค m โ†” _ ) + apply ENat.add_one_le_iff + exact ENat.coe_ne_top _ + rw [this] + unfold Ideal.height + show ((โ†‘(n + 1):โ„•โˆž) โ‰ค _) โ†” โˆƒc, _ โˆง _ โˆง ((_ : WithTop โ„•) = (_:โ„•โˆž)) + rw [{J | J < ๐”ญ}.le_chainHeight_iff] + show (โˆƒ c, (List.Chain' _ c โˆง โˆ€๐”ฎ, ๐”ฎ โˆˆ c โ†’ ๐”ฎ < ๐”ญ) โˆง _) โ†” _ + constructor <;> rintro โŸจc, hcโŸฉ <;> use c + . tauto + . change _ โˆง _ โˆง (List.length c : โ„•โˆž) = n + 1 at hc + norm_cast at hc + tauto /-- Form of `lt_height_iff''` for rewriting with the height coerced to `WithBot โ„•โˆž`. -/ lemma lt_height_iff'' {๐”ญ : PrimeSpectrum R} {n : โ„•โˆž} : -height ๐”ญ > (n : WithBot โ„•โˆž) โ†” โˆƒ c : List (PrimeSpectrum R), c.Chain' (ยท < ยท) โˆง (โˆ€ ๐”ฎ โˆˆ c, ๐”ฎ < ๐”ญ) โˆง c.length = n + 1 := by - show (_ < _) โ†” _ +(n : WithBot โ„•โˆž) < height ๐”ญ โ†” โˆƒ c : List (PrimeSpectrum R), c.Chain' (ยท < ยท) โˆง (โˆ€ ๐”ฎ โˆˆ c, ๐”ฎ < ๐”ญ) โˆง c.length = n + 1 := by rw [WithBot.coe_lt_coe] exact lt_height_iff' @@ -158,7 +159,7 @@ lemma dim_le_zero_iff : krullDim R โ‰ค 0 โ†” โˆ€ I : PrimeSpectrum R, IsMaximal rw [hcontr] at h exact h h๐”ช.1 use ๐”ชp - show (_ : WithBot โ„•โˆž) > (0 : โ„•โˆž) + show (0 : โ„•โˆž) < (_ : WithBot โ„•โˆž) rw [lt_height_iff''] use [I] constructor @@ -169,7 +170,7 @@ lemma dim_le_zero_iff : krullDim R โ‰ค 0 โ†” โˆ€ I : PrimeSpectrum R, IsMaximal rwa [hI'] . simp . contrapose! h - change (_ : WithBot โ„•โˆž) > (0 : โ„•โˆž) at h + change (0 : โ„•โˆž) < (_ : WithBot โ„•โˆž) at h rw [lt_height_iff''] at h obtain โŸจc, _, hc2, hc3โŸฉ := h norm_cast at hc3