mirror of
https://github.com/Smaug123/agdaproofs
synced 2025-10-13 23:58:38 +00:00
Progress towards UFDs (#88)
This commit is contained in:
@@ -20,15 +20,21 @@ open import Rings.Ideals.Lemmas R
|
||||
open import Rings.Units.Definition R
|
||||
open import Rings.Irreducibles.Lemmas intDom
|
||||
open import Rings.Units.Lemmas R
|
||||
open import Rings.Ideals.Prime.Definition {R = R}
|
||||
open import Rings.Ideals.Prime.Lemmas {R = R}
|
||||
open import Rings.Primes.Definition intDom
|
||||
open import Rings.Primes.Lemmas intDom
|
||||
open import Rings.Ideals.Principal.Lemmas R
|
||||
open import Rings.Ideals.Maximal.Lemmas {R = R}
|
||||
|
||||
open Ring R
|
||||
open Setoid S
|
||||
open Equivalence eq
|
||||
|
||||
irreducibleImpliesMaximalIdeal : (r : A) → Irreducible r → {d : _} → MaximalIdeal (generatedIdeal r) {d}
|
||||
MaximalIdeal.notContained (irreducibleImpliesMaximalIdeal r irred {d}) = 1R
|
||||
MaximalIdeal.notContainedIsNotContained (irreducibleImpliesMaximalIdeal r irred {d}) = Irreducible.nonunit irred
|
||||
MaximalIdeal.isMaximal (irreducibleImpliesMaximalIdeal r irred {d}) {biggerPred} bigger biggerContains (outsideR , (biggerContainsOutside ,, notInR)) {x} = biggerPrincipal' (unitImpliesGeneratedIdealEverything w {x})
|
||||
irreducibleImpliesMaximalIdeal : {r : A} → Irreducible r → {d : _} → MaximalIdeal (generatedIdeal r) {d}
|
||||
MaximalIdeal.notContained (irreducibleImpliesMaximalIdeal {r} irred {d}) = 1R
|
||||
MaximalIdeal.notContainedIsNotContained (irreducibleImpliesMaximalIdeal {r} irred {d}) = Irreducible.nonunit irred
|
||||
MaximalIdeal.isMaximal (irreducibleImpliesMaximalIdeal {r} irred {d}) {biggerPred} bigger biggerContains (outsideR , (biggerContainsOutside ,, notInR)) {x} = biggerPrincipal' (unitImpliesGeneratedIdealEverything w {x})
|
||||
where
|
||||
biggerGen : A
|
||||
biggerGen = PrincipalIdeal.generator (pid bigger)
|
||||
@@ -51,3 +57,18 @@ MaximalIdeal.isMaximal (irreducibleImpliesMaximalIdeal r irred {d}) {biggerPred}
|
||||
v r|bg | assoc = notInR (associateImpliesGeneratedIdealsEqual' assoc (PrincipalIdeal.genGenerates (pid bigger) biggerContainsOutside))
|
||||
w : Unit biggerGen
|
||||
w = dividesIrreducibleImpliesUnit irred u v
|
||||
|
||||
primeIdealIsMaximal : {c : _} {pred : A → Set c} → {i : Ideal pred} → (nonzero : Sg A (λ a → ((a ∼ 0R) → False) && pred a)) → PrimeIdeal i → {d : _} → MaximalIdeal i {d}
|
||||
primeIdealIsMaximal {pred = pred} {i} (m , (m!=0 ,, predM)) prime {d = d} = maximalIdealWellDefined (generatedIdeal (PrincipalIdeal.generator princ)) i (memberDividesImpliesMember i (PrincipalIdeal.genIsInIdeal princ)) (PrincipalIdeal.genGenerates princ) isMaximal
|
||||
where
|
||||
princ : PrincipalIdeal i
|
||||
princ = pid i
|
||||
isPrime : Prime (PrincipalIdeal.generator princ)
|
||||
isPrime = primeIdealImpliesPrime (λ gen=0 → PrimeIdeal.notContainedIsNotContained prime (exFalso (m!=0 (generatorZeroImpliesAllZero princ gen=0 predM)))) (primeIdealWellDefined i (generatedIdeal (PrincipalIdeal.generator princ)) (PrincipalIdeal.genGenerates princ) (memberDividesImpliesMember i (PrincipalIdeal.genIsInIdeal princ)) prime)
|
||||
isIrreducible : Irreducible (PrincipalIdeal.generator princ)
|
||||
isIrreducible = primeIsIrreducible isPrime
|
||||
isMaximal : MaximalIdeal (generatedIdeal (PrincipalIdeal.generator princ)) {d}
|
||||
isMaximal = irreducibleImpliesMaximalIdeal isIrreducible {d}
|
||||
|
||||
irreducibleImpliesPrime : {x : A} → Irreducible x → Prime x
|
||||
irreducibleImpliesPrime {x} irred = primeIdealImpliesPrime (Irreducible.nonzero irred) (idealMaximalImpliesIdealPrime (generatedIdeal x) (irreducibleImpliesMaximalIdeal irred))
|
||||
|
Reference in New Issue
Block a user