2023-06-10 09:27:37 -05:00
|
|
|
|
/-
|
|
|
|
|
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
|
2023-06-12 12:22:57 -05:00
|
|
|
|
import Mathlib.RingTheory.FiniteType
|
2023-06-10 09:27:37 -05:00
|
|
|
|
import Mathlib.Order.Height
|
2023-06-10 10:13:10 -05:00
|
|
|
|
import Mathlib.RingTheory.MvPolynomial.Basic
|
2023-06-11 23:03:13 -05:00
|
|
|
|
import Mathlib.RingTheory.Ideal.Over
|
|
|
|
|
import Mathlib.AlgebraicGeometry.PrimeSpectrum.Basic
|
2023-06-11 23:18:21 -05:00
|
|
|
|
import Mathlib.Algebra.Homology.ShortExact.Abelian
|
2023-06-10 09:27:37 -05:00
|
|
|
|
|
|
|
|
|
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
|
2023-06-10 10:13:10 -05:00
|
|
|
|
#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
|
2023-06-11 23:03:13 -05:00
|
|
|
|
--hopefully there's good communication between them
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
--There's a preliminary version of the going up theorem
|
|
|
|
|
#check Ideal.exists_ideal_over_prime_of_isIntegral
|
|
|
|
|
|
|
|
|
|
--Theorems relating primes of a ring to primes of its localization
|
|
|
|
|
#check PrimeSpectrum.localization_comap_injective
|
|
|
|
|
#check PrimeSpectrum.localization_comap_range
|
|
|
|
|
--Theorems relating primes of a ring to primes of a quotient
|
2023-06-11 23:18:21 -05:00
|
|
|
|
#check PrimeSpectrum.range_comap_of_surjective
|
|
|
|
|
|
2023-06-12 12:22:57 -05:00
|
|
|
|
--There's a lot of theorems about finite-type algebras
|
|
|
|
|
#check Algebra.FiniteType.polynomial
|
|
|
|
|
#check Algebra.FiniteType.mvPolynomial
|
|
|
|
|
#check Algebra.FiniteType.of_surjective
|
|
|
|
|
|
2023-06-11 23:18:21 -05:00
|
|
|
|
-- There is a notion of short exact sequences but the number of theorems are lacking
|
|
|
|
|
-- For example, I couldn't find anything saying that for a ses 0 -> A -> B -> C -> 0
|
|
|
|
|
-- of R-modules, A and C being FG implies that B is FG
|
|
|
|
|
open CategoryTheory CategoryTheory.Limits CategoryTheory.Preadditive
|
|
|
|
|
|
|
|
|
|
variable {𝒜 : Type _} [Category 𝒜] [Abelian 𝒜]
|
2023-06-12 01:30:10 -05:00
|
|
|
|
variable {A B C : 𝒜} {f : A ⟶ B} {g : B ⟶ C} {h : LeftSplit f g} {h' : RightSplit f g}
|
2023-06-11 23:18:21 -05:00
|
|
|
|
|
|
|
|
|
#check ShortExact
|
|
|
|
|
#check ShortExact f g
|
|
|
|
|
-- There are some notion of splitting as well
|
|
|
|
|
#check Splitting
|
|
|
|
|
#check LeftSplit
|
|
|
|
|
#check LeftSplit f g
|
|
|
|
|
-- And there is a theorem that left split implies splitting
|
|
|
|
|
#check LeftSplit.splitting
|
2023-06-12 01:30:10 -05:00
|
|
|
|
#check LeftSplit.splitting h
|
|
|
|
|
-- Similar things are there for RightSplit as well
|
|
|
|
|
#check RightSplit.splitting
|
|
|
|
|
#check RightSplit.splitting h'
|
|
|
|
|
-- There's also a theorem about ismorphisms between short exact sequences
|
|
|
|
|
#check isIso_of_shortExact_of_isIso_of_isIso
|