added statements of lemmas we'd like to prove

This commit is contained in:
leopoldmayer 2023-06-10 08:13:10 -07:00
parent 97d219fe21
commit 1fd4e29c87
2 changed files with 52 additions and 1 deletions

44
comm_alg/krull.lean Normal file
View file

@ -0,0 +1,44 @@
import Mathlib.RingTheory.Ideal.Basic
import Mathlib.Order.Height
import Mathlib.RingTheory.PrincipalIdealDomain
import Mathlib.RingTheory.DedekindDomain.Basic
import Mathlib.RingTheory.Ideal.Quotient
import Mathlib.RingTheory.Localization.AtPrime
/- This file contains the definitions of height of an ideal, and the krull
dimension of a commutative ring.
There are also sorried statements of many of the theorems that would be
really nice to prove.
I'm imagining for this file to ultimately contain basic API for height and
krull dimension, and the theorems will probably end up other files,
depending on how long the proofs are, and what extra API needs to be
developed.
-/
variable {R : Type _} [CommRing R] (I : Ideal R)
namespace ideal
noncomputable def height : ℕ∞ := Set.chainHeight {J | J ≤ I ∧ J.IsPrime}
noncomputable def krull_dim (R : Type _) [CommRing R] := height ( : Ideal R)
--some propositions that would be nice to be able to eventually
lemma dim_eq_zero_iff_field : krull_dim R = 0 ↔ IsField R := sorry
#check Ring.DimensionLEOne
lemma dim_le_one_iff : krull_dim R ≤ 1 ↔ Ring.DimensionLEOne R := sorry
lemma dim_le_one_of_pid [IsDomain R] [IsPrincipalIdealRing R] : krull_dim R ≤ 1 := sorry
lemma dim_le_dim_polynomial_add_one [Nontrivial R] :
krull_dim R ≤ krull_dim (Polynomial R) + 1 := sorry
lemma dim_eq_dim_polynomial_add_one [Nontrivial R] [IsNoetherianRing R] :
krull_dim R = krull_dim (Polynomial R) + 1 := sorry
lemma height_eq_dim_localization [Ideal.IsPrime I] :
height I = krull_dim (Localization.AtPrime I) := sorry
lemma height_add_dim_quotient_le_dim : height I + krull_dim (R I) ≤ krull_dim R := sorry

View file

@ -8,6 +8,7 @@ import Mathlib.RingTheory.Ideal.Basic
import Mathlib.RingTheory.Noetherian import Mathlib.RingTheory.Noetherian
import Mathlib.RingTheory.Artinian import Mathlib.RingTheory.Artinian
import Mathlib.Order.Height import Mathlib.Order.Height
import Mathlib.RingTheory.MvPolynomial.Basic
variable {R M : Type _} [CommRing R] [AddCommGroup M] [Module R M] variable {R M : Type _} [CommRing R] [AddCommGroup M] [Module R M]
@ -38,3 +39,9 @@ variable (I : Ideal R)
--Here's the main defintion that will be helpful --Here's the main defintion that will be helpful
#check Set.chainHeight #check Set.chainHeight
--this is the polynomial ring R[x]
#check Polynomial R
--this is the polynomial ring with variables indexed by
#check MvPolynomial R
--hopefully there's good communication between them