Skip to content

Commit e9d4384

Browse files
committed
feat(Spectrum/Prime/Topology): Ring.KrullDimLE.eq_bot_or_eq_top (leanprover-community#33607)
Given a local ring `R` which is also a domain with `Ring.KrullDimLE 1 R` (or equivalently `Ring.DimensionLEOne`) a prime is either `⊥` or`⊤`. The application I have in mind is `IsDiscreteValuationRing R`. Co-authored-by: Xavier Genereux <xaviergenereux@hotmail.com>
1 parent a11a7dd commit e9d4384

2 files changed

Lines changed: 20 additions & 11 deletions

File tree

Mathlib/Order/KrullDimension.lean

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -615,14 +615,6 @@ lemma krullDim_le_one_iff : krullDim α ≤ 1 ↔ ∀ x : α, IsMin x ∨ IsMax
615615
· rintro ⟨x, ⟨y, hxy⟩, z, hzx⟩
616616
exact ⟨⟨2, ![y, x, z], fun i ↦ by fin_cases i <;> simpa⟩, by simp⟩
617617

618-
lemma krullDim_le_one_iff_forall_isMax {α : Type*} [PartialOrder α] [OrderBot α] :
619-
krullDim α ≤ 1 ↔ ∀ x : α, x ≠ ⊥ → IsMax x := by
620-
simp [krullDim_le_one_iff, ← or_iff_not_imp_left]
621-
622-
lemma krullDim_le_one_iff_forall_isMin {α : Type*} [PartialOrder α] [OrderTop α] :
623-
krullDim α ≤ 1 ↔ ∀ x : α, x ≠ ⊤ → IsMin x := by
624-
simp [krullDim_le_one_iff, ← or_iff_not_imp_right]
625-
626618
lemma krullDim_pos_iff : 0 < krullDim α ↔ ∃ x y : α, x < y := by
627619
contrapose!
628620
simp_rw [← isMax_iff_forall_not_lt, ← krullDim_nonpos_iff_forall_isMax]
@@ -645,6 +637,10 @@ section PartialOrder
645637

646638
variable {α : Type*} [PartialOrder α]
647639

640+
lemma krullDim_le_one_iff_forall_isMax [OrderBot α] :
641+
krullDim α ≤ 1 ↔ ∀ x : α, x ≠ ⊥ → IsMax x := by
642+
simp [krullDim_le_one_iff, ← or_iff_not_imp_left]
643+
648644
lemma krullDim_eq_zero_iff_of_orderBot [OrderBot α] :
649645
krullDim α = 0 ↔ Subsingleton α :=
650646
fun H ↦ subsingleton_of_forall_eq ⊥ fun _ ↦ le_bot_iff.mp
@@ -656,6 +652,10 @@ lemma krullDim_pos_iff_of_orderBot [OrderBot α] :
656652
← ne_eq, ← lt_or_lt_iff_ne, or_iff_right]
657653
simp [Order.krullDim_nonneg]
658654

655+
lemma krullDim_le_one_iff_forall_isMin [OrderTop α] :
656+
krullDim α ≤ 1 ↔ ∀ x : α, x ≠ ⊤ → IsMin x := by
657+
simp [krullDim_le_one_iff, ← or_iff_not_imp_right]
658+
659659
lemma krullDim_eq_zero_iff_of_orderTop [OrderTop α] :
660660
krullDim α = 0 ↔ Subsingleton α :=
661661
fun H ↦ subsingleton_of_forall_eq ⊤ fun _ ↦ top_le_iff.mp
@@ -667,6 +667,10 @@ lemma krullDim_pos_iff_of_orderTop [OrderTop α] :
667667
← ne_eq, ← lt_or_lt_iff_ne, or_iff_right]
668668
simp [Order.krullDim_nonneg]
669669

670+
lemma krullDim_le_one_iff_of_boundedOrder [BoundedOrder α] :
671+
krullDim α ≤ 1 ↔ ∀ x : α, x = ⊥ ∨ x = ⊤ := by
672+
simp [Order.krullDim_le_one_iff]
673+
670674
end PartialOrder
671675

672676
lemma krullDim_eq_length_of_finiteDimensionalOrder [FiniteDimensionalOrder α] :
@@ -909,9 +913,8 @@ section calculations
909913

910914
lemma krullDim_eq_one_iff_of_boundedOrder {α : Type*} [PartialOrder α] [BoundedOrder α] :
911915
krullDim α = 1 ↔ IsSimpleOrder α := by
912-
rw [le_antisymm_iff, krullDim_le_one_iff, WithBot.one_le_iff_pos,
913-
Order.krullDim_pos_iff_of_orderBot, isSimpleOrder_iff]
914-
simp only [isMin_iff_eq_bot, isMax_iff_eq_top, and_comm]
916+
rw [le_antisymm_iff, krullDim_le_one_iff_of_boundedOrder, WithBot.one_le_iff_pos,
917+
Order.krullDim_pos_iff_of_orderBot, isSimpleOrder_iff, and_comm]
915918

916919
@[simp] lemma krullDim_of_isSimpleOrder {α : Type*} [PartialOrder α] [BoundedOrder α]
917920
[IsSimpleOrder α] : krullDim α = 1 :=

Mathlib/RingTheory/Spectrum/Prime/Topology.lean

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1216,6 +1216,8 @@ instance : OrderTop (PrimeSpectrum R) where
12161216
top := closedPoint R
12171217
le_top := fun _ ↦ le_maximalIdeal Ideal.IsPrime.ne_top'
12181218

1219+
instance [IsDomain R] : BoundedOrder (PrimeSpectrum R) where
1220+
12191221
@[simp]
12201222
theorem PrimeSpectrum.asIdeal_top : (⊤ : PrimeSpectrum R).asIdeal = IsLocalRing.maximalIdeal R :=
12211223
rfl
@@ -1261,6 +1263,10 @@ lemma isClosed_singleton_closedPoint : IsClosed {closedPoint R} := by
12611263
rw [PrimeSpectrum.isClosed_singleton_iff_isMaximal, closedPoint]
12621264
infer_instance
12631265

1266+
theorem Ring.KrullDimLE.eq_bot_or_eq_top [IsDomain R] [Ring.KrullDimLE 1 R]
1267+
(x : PrimeSpectrum R) : x = ⊥ ∨ x = ⊤ :=
1268+
Order.krullDim_le_one_iff_of_boundedOrder.mp Order.KrullDimLE.krullDim_le _
1269+
12641270
end IsLocalRing
12651271

12661272
section KrullDimension

0 commit comments

Comments
 (0)