Merge pull request #81 from GTBarkley/jayden

need to add more
This commit is contained in:
Jidong Wang 2023-06-15 21:38:47 -07:00 committed by GitHub
commit fc5d177176
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -43,7 +43,6 @@ class IsLocallyNilpotent {R : Type _} [CommRing R] (I : Ideal R) : Prop :=
#check Ideal.IsLocallyNilpotent #check Ideal.IsLocallyNilpotent
end Ideal end Ideal
-- Repeats the definition of the length of a module by Monalisa -- Repeats the definition of the length of a module by Monalisa
variable (R : Type _) [CommRing R] (I J : Ideal R) variable (R : Type _) [CommRing R] (I J : Ideal R)
variable (M : Type _) [AddCommMonoid M] [Module R M] variable (M : Type _) [AddCommMonoid M] [Module R M]
@ -71,7 +70,7 @@ lemma ring_Noetherian_iff_spec_Noetherian : IsNoetherianRing R
sorry sorry
-- how do I apply an instance to prove one direction? -- how do I apply an instance to prove one direction?
-- Stacks Lemma 5.9.2:
-- Use TopologicalSpace.NoetherianSpace.exists_finset_irreducible : -- Use TopologicalSpace.NoetherianSpace.exists_finset_irreducible :
-- Every closed subset of a noetherian space is a finite union -- Every closed subset of a noetherian space is a finite union
-- of irreducible closed subsets. -- of irreducible closed subsets.
@ -169,7 +168,7 @@ abbrev Prod_of_localization :=
def foo : Prod_of_localization R →+* R where def foo : Prod_of_localization R →+* R where
toFun := sorry toFun := sorry
invFun := sorry -- invFun := sorry
left_inv := sorry left_inv := sorry
right_inv := sorry right_inv := sorry
map_mul' := sorry map_mul' := sorry
@ -198,6 +197,13 @@ lemma primes_of_Artinian_are_maximal
lemma dim_le_zero_Noetherian_iff_Artinian (R : Type _) [CommRing R] : lemma dim_le_zero_Noetherian_iff_Artinian (R : Type _) [CommRing R] :
IsNoetherianRing R ∧ Ideal.krullDim R ≤ 0 ↔ IsArtinianRing R := by IsNoetherianRing R ∧ Ideal.krullDim R ≤ 0 ↔ IsArtinianRing R := by
constructor constructor
rintro ⟨RisNoetherian, dimzero⟩
rw [ring_Noetherian_iff_spec_Noetherian] at RisNoetherian
let Z := irreducibleComponents (PrimeSpectrum R)
have Zfinite : Set.Finite Z := by
-- apply TopologicalSpace.NoetherianSpace.finite_irreducibleComponents ?_
sorry
sorry sorry
intro RisArtinian intro RisArtinian
constructor constructor
@ -207,81 +213,7 @@ lemma dim_le_zero_Noetherian_iff_Artinian (R : Type _) [CommRing R] :
intro I intro I
apply primes_of_Artinian_are_maximal apply primes_of_Artinian_are_maximal
-- Use TopologicalSpace.NoetherianSpace.exists_finset_irreducible :
-- Trash bin
-- lemma Artinian_has_finite_max_ideal
-- [IsArtinianRing R] : Finite (MaximalSpectrum R) := by
-- by_contra infinite
-- simp only [not_finite_iff_infinite] at infinite
-- let m' : ↪ MaximalSpectrum R := Infinite.natEmbedding (MaximalSpectrum R)
-- have m'inj := m'.injective
-- let m'' : → Ideal R := fun n : ↦ ⨅ k ∈ range n, (m' k).asIdeal
-- let f : → Ideal R := fun n : ↦ (m' n).asIdeal
-- have DCC : ∃ n : , ∀ k : , n ≤ k → m'' n = m'' k := by
-- apply IsArtinian.monotone_stabilizes {
-- toFun := m''
-- monotone' := sorry
-- }
-- cases' DCC with n DCCn
-- specialize DCCn (n+1)
-- specialize DCCn (Nat.le_succ n)
-- let F : Fin (n + 1) → MaximalSpectrum R := fun k ↦ m' k
-- have comaximal : ∀ (i j : Fin (n + 1)), (i ≠ j) → (F i).asIdeal ⊔ (F j).asIdeal =
-- ( : Ideal R) := by
-- intro i j distinct
-- apply Ideal.IsMaximal.coprime_of_ne
-- exact (F i).IsMaximal
-- exact (F j).IsMaximal
-- have : (F i) ≠ (F j) := by
-- apply Function.Injective.ne m'inj
-- contrapose! distinct
-- exact Fin.ext distinct
-- intro h
-- apply this
-- exact MaximalSpectrum.ext _ _ h
-- let CRT1 : (R ⨅ (i : Fin (n + 1)), ((F i).asIdeal))
-- ≃+* ((i : Fin (n + 1)) → R (F i).asIdeal) :=
-- Ideal.quotientInfRingEquivPiQuotient
-- (fun i ↦ (F i).asIdeal) comaximal
-- let CRT2 : (R ⨅ (i : Fin (n + 1)), ((F i).asIdeal))
-- ≃+* ((i : Fin (n + 1)) → R (F i).asIdeal) :=
-- Ideal.quotientInfRingEquivPiQuotient
-- (fun i ↦ (F i).asIdeal) comaximal
-- have comaximal : ∀ (n : ) (i j : Fin n), (i ≠ j) → ((F n) i).asIdeal ⊔ ((F n) j).asIdeal =
-- ( : Ideal R) := by
-- intro n i j distinct
-- apply Ideal.IsMaximal.coprime_of_ne
-- exact (F n i).IsMaximal
-- exact (F n j).IsMaximal
-- have : (F n i) ≠ (F n j) := by
-- apply Function.Injective.ne m'inj
-- contrapose! distinct
-- exact Fin.ext distinct
-- intro h
-- apply this
-- exact MaximalSpectrum.ext _ _ h
-- let CRT : (n : ) → (R ⨅ (i : Fin n), ((F n) i).asIdeal)
-- ≃+* ((i : Fin n) → R ((F n) i).asIdeal) :=
-- fun n ↦ Ideal.quotientInfRingEquivPiQuotient
-- (fun i ↦ (F n i).asIdeal) (comaximal n)
-- have DCC : ∃ n : , ∀ k : , n ≤ k → m'' n = m'' k := by
-- apply IsArtinian.monotone_stabilizes {
-- toFun := m''
-- monotone' := sorry
-- }
-- cases' DCC with n DCCn
-- specialize DCCn (n+1)
-- specialize DCCn (Nat.le_succ n)
-- let CRT1 := CRT n
-- let CRT2 := CRT (n + 1)