mirror of
https://github.com/GTBarkley/comm_alg.git
synced 2024-12-26 23:48:36 -06:00
commit
ca451e5ba6
3 changed files with 91 additions and 4 deletions
|
@ -1,4 +0,0 @@
|
||||||
import Mathlib.Tactic
|
|
||||||
def hello := "world"
|
|
||||||
|
|
||||||
-- Thank Grant for setting this up.
|
|
44
comm_alg/krull.lean
Normal file
44
comm_alg/krull.lean
Normal 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
|
47
comm_alg/resources.lean
Normal file
47
comm_alg/resources.lean
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
/-
|
||||||
|
We don't want to reinvent the wheel, but finding
|
||||||
|
things in Mathlib can be pretty annoying. This is
|
||||||
|
a temporary file intended to be a dumping ground for
|
||||||
|
useful lemmas and definitions
|
||||||
|
-/
|
||||||
|
import Mathlib.RingTheory.Ideal.Basic
|
||||||
|
import Mathlib.RingTheory.Noetherian
|
||||||
|
import Mathlib.RingTheory.Artinian
|
||||||
|
import Mathlib.Order.Height
|
||||||
|
import Mathlib.RingTheory.MvPolynomial.Basic
|
||||||
|
|
||||||
|
variable {R M : Type _} [CommRing R] [AddCommGroup M] [Module R M]
|
||||||
|
|
||||||
|
--ideals are defined
|
||||||
|
#check Ideal R
|
||||||
|
|
||||||
|
variable (I : Ideal R)
|
||||||
|
|
||||||
|
--as are prime and maximal (they are defined as typeclasses)
|
||||||
|
#check (I.IsPrime)
|
||||||
|
#check (I.IsMaximal)
|
||||||
|
|
||||||
|
--a module being Noetherian is also a class
|
||||||
|
#check IsNoetherian M
|
||||||
|
#check IsNoetherian I
|
||||||
|
|
||||||
|
--a ring is Noetherian if it is Noetherian as a module over itself
|
||||||
|
#check IsNoetherianRing R
|
||||||
|
|
||||||
|
--ditto for Artinian
|
||||||
|
#check IsArtinian M
|
||||||
|
#check IsArtinianRing R
|
||||||
|
|
||||||
|
--I can't find the theorem that an Artinian ring is noetherian. That could be a good
|
||||||
|
--thing to add at some point
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
--Here's the main defintion that will be helpful
|
||||||
|
#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
|
Loading…
Reference in a new issue