|
| 1 | +/- |
| 2 | +Copyright (c) 2020 Kenji Nakagawa. All rights reserved. |
| 3 | +Released under Apache 2.0 license as described in the file LICENSE. |
| 4 | +Authors: Kenji Nakagawa, Anne Baanen, Filippo A. E. Nuccio |
| 5 | +-/ |
| 6 | +import ring_theory.discrete_valuation_ring |
| 7 | +import ring_theory.fractional_ideal |
| 8 | +import ring_theory.ideal.over |
| 9 | + |
| 10 | +/-! |
| 11 | +# Dedekind domains |
| 12 | +
|
| 13 | +This file defines the notion of a Dedekind domain (or Dedekind ring), |
| 14 | +giving three equivalent definitions (TODO: and shows that they are equivalent). |
| 15 | +
|
| 16 | +## Main definitions |
| 17 | +
|
| 18 | + - `is_dedekind_domain` defines a Dedekind domain as a commutative ring that is not a field, |
| 19 | + Noetherian, integrally closed in its field of fractions and has Krull dimension exactly one. |
| 20 | + `is_dedekind_domain_iff` shows that this does not depend on the choice of field of fractions. |
| 21 | + - `is_dedekind_domain_dvr` alternatively defines a Dedekind domain as an integral domain that is not a field, |
| 22 | + Noetherian, and the localization at every nonzero prime ideal is a discrete valuation ring. |
| 23 | + - `is_dedekind_domain_inv` alternatively defines a Dedekind domain as an integral domain that is not a field, |
| 24 | + and every nonzero fractional ideal is invertible. |
| 25 | + - `is_dedekind_domain_inv_iff` shows that this does note depend on the choice of field of fractions. |
| 26 | +
|
| 27 | +## Implementation notes |
| 28 | +
|
| 29 | +The definitions that involve a field of fractions choose a canonical field of fractions, |
| 30 | +but are independent of that choice. The `..._iff` lemmas express this independence. |
| 31 | +
|
| 32 | +## References |
| 33 | +
|
| 34 | +* [D. Marcus, *Number Fields*][marcus1977number] |
| 35 | +* [J.W.S. Cassels, A. Frölich, *Algebraic Number Theory*][cassels1967algebraic] |
| 36 | +
|
| 37 | +## Tags |
| 38 | +
|
| 39 | +dedekind domain, dedekind ring |
| 40 | +-/ |
| 41 | + |
| 42 | +variables (R A K : Type*) [comm_ring R] [integral_domain A] [field K] |
| 43 | + |
| 44 | +/-- A ring `R` has Krull dimension at most one if all nonzero prime ideals are maximal. -/ |
| 45 | +def ring.dimension_le_one : Prop := |
| 46 | +∀ p ≠ (⊥ : ideal R), p.is_prime → p.is_maximal |
| 47 | + |
| 48 | +open ideal ring |
| 49 | + |
| 50 | +namespace ring |
| 51 | + |
| 52 | +lemma dimension_le_one.principal_ideal_ring |
| 53 | + [is_principal_ideal_ring A] : dimension_le_one A := |
| 54 | +λ p nonzero prime, by { haveI := prime, exact is_prime.to_maximal_ideal nonzero } |
| 55 | + |
| 56 | +lemma dimension_le_one.integral_closure [nontrivial R] [algebra R A] |
| 57 | + (h : dimension_le_one R) : dimension_le_one (integral_closure R A) := |
| 58 | +begin |
| 59 | + intros p ne_bot prime, |
| 60 | + haveI := prime, |
| 61 | + refine integral_closure.is_maximal_of_is_maximal_comap p |
| 62 | + (h _ (integral_closure.comap_ne_bot ne_bot) _), |
| 63 | + apply is_prime.comap |
| 64 | +end |
| 65 | +end ring |
| 66 | + |
| 67 | +/-- |
| 68 | +A Dedekind domain is an integral domain that is Noetherian, integrally closed, and |
| 69 | +has Krull dimension exactly one (`not_is_field` and `dimension_le_one`). |
| 70 | +
|
| 71 | +The integral closure condition is independent of the choice of field of fractions: |
| 72 | +use `is_dedekind_domain_iff` to prove `is_dedekind_domain` for a given `fraction_map`. |
| 73 | +
|
| 74 | +This is the default implementation, but there are equivalent definitions, |
| 75 | +`is_dedekind_domain_dvr` and `is_dedekind_domain_inv`. |
| 76 | +TODO: Prove that these are actually equivalent definitions. |
| 77 | +-/ |
| 78 | +class is_dedekind_domain : Prop := |
| 79 | +(not_is_field : ¬ is_field A) |
| 80 | +(is_noetherian_ring : is_noetherian_ring A) |
| 81 | +(dimension_le_one : dimension_le_one A) |
| 82 | +(is_integrally_closed : integral_closure A (fraction_ring A) = ⊥) |
| 83 | + |
| 84 | +/-- An integral domain is a Dedekind domain iff and only if it is not a field, is Noetherian, has dimension ≤ 1, |
| 85 | +and is integrally closed in a given fraction field. |
| 86 | +In particular, this definition does not depend on the choice of this fraction field. -/ |
| 87 | +lemma is_dedekind_domain_iff (f : fraction_map A K) : |
| 88 | + is_dedekind_domain A ↔ |
| 89 | + (¬ is_field A) ∧ is_noetherian_ring A ∧ dimension_le_one A ∧ |
| 90 | + integral_closure A f.codomain = ⊥ := |
| 91 | +⟨λ ⟨hf, hr, hd, hi⟩, ⟨hf, hr, hd, |
| 92 | + by rw [←integral_closure_map_alg_equiv (fraction_ring.alg_equiv_of_quotient f), |
| 93 | + hi, algebra.map_bot]⟩, |
| 94 | + λ ⟨hf, hr, hd, hi⟩, ⟨hf, hr, hd, |
| 95 | + by rw [←integral_closure_map_alg_equiv (fraction_ring.alg_equiv_of_quotient f).symm, |
| 96 | + hi, algebra.map_bot]⟩⟩ |
| 97 | + |
| 98 | +/-- |
| 99 | +A Dedekind domain is an integral domain that is not a field, is Noetherian, and the localization at |
| 100 | +every nonzero prime is a discrete valuation ring. |
| 101 | +
|
| 102 | +This is equivalent to `is_dedekind_domain`. |
| 103 | +TODO: prove the equivalence. |
| 104 | +-/ |
| 105 | +structure is_dedekind_domain_dvr : Prop := |
| 106 | +(not_is_field : ¬ is_field A) |
| 107 | +(is_noetherian_ring : is_noetherian_ring A) |
| 108 | +(is_dvr_at_nonzero_prime : ∀ P ≠ (⊥ : ideal A), P.is_prime → |
| 109 | + discrete_valuation_ring (localization.at_prime P)) |
| 110 | + |
| 111 | +/-- |
| 112 | +A Dedekind domain is an integral domain that is not a field such that every fractional ideal has an inverse. |
| 113 | +
|
| 114 | +This is equivalent to `is_dedekind_domain`. |
| 115 | +TODO: prove the equivalence. |
| 116 | +-/ |
| 117 | +structure is_dedekind_domain_inv : Prop := |
| 118 | +(not_is_field : ¬ is_field A) |
| 119 | +(mul_inv_cancel : ∀ I ≠ (⊥ : fractional_ideal (fraction_ring.of A)), I * I⁻¹ = 1) |
| 120 | + |
| 121 | +section |
| 122 | + |
| 123 | +open ring.fractional_ideal |
| 124 | + |
| 125 | +lemma is_dedekind_domain_inv_iff (f : fraction_map A K) : |
| 126 | + is_dedekind_domain_inv A ↔ |
| 127 | + (¬ is_field A) ∧ (∀ I ≠ (⊥ : fractional_ideal f), I * I⁻¹ = 1) := |
| 128 | +begin |
| 129 | + split; rintros ⟨hf, hi⟩; use hf; intros I hI, |
| 130 | + { have := hi (map (fraction_ring.alg_equiv_of_quotient f).symm.to_alg_hom I) (map_ne_zero _ hI), |
| 131 | + erw [← map_inv, ← fractional_ideal.map_mul] at this, |
| 132 | + convert congr_arg (map (fraction_ring.alg_equiv_of_quotient f).to_alg_hom) this; |
| 133 | + simp only [alg_equiv.to_alg_hom_eq_coe, map_symm_map, map_one] }, |
| 134 | + { have := hi (map (fraction_ring.alg_equiv_of_quotient f).to_alg_hom I) (map_ne_zero _ hI), |
| 135 | + erw [← map_inv, ← fractional_ideal.map_mul] at this, |
| 136 | + convert congr_arg (map (fraction_ring.alg_equiv_of_quotient f).symm.to_alg_hom) this; |
| 137 | + simp only [alg_equiv.to_alg_hom_eq_coe, map_map_symm, map_one] } |
| 138 | +end |
| 139 | + |
| 140 | +end |
0 commit comments