Skip to content

Commit bd1b696

Browse files
thomaskwaringtwwar
andcommitted
feat(Order/PrimeSeparator): remove unnecessary hypotheses (leanprover-community#38951)
In `mem_ideal_sup_principal`, boundedness and distributivity were unused, and in `prime_ideal_of_disjoint_filter_ideal`, boundedness was only used to produce an element of the filter `F`, which is already nonempty by definition. Co-authored-by: twwar <tom.waring@unimelb.edu.au>
1 parent 8472f0d commit bd1b696

1 file changed

Lines changed: 12 additions & 19 deletions

File tree

Mathlib/Order/PrimeSeparator.lean

Lines changed: 12 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ public import Mathlib.Order.Zorn
1111
/-!
1212
# Separating prime filters and ideals
1313
14-
In a bounded distributive lattice, if $F$ is a filter, $I$ is an ideal, and $F$ and $I$ are
14+
In a distributive lattice, if $F$ is a filter, $I$ is an ideal, and $F$ and $I$ are
1515
disjoint, then there exists a prime ideal $J$ containing $I$ with $J$ still disjoint from $F$.
1616
This theorem is a crucial ingredient to [Stone's][Sto1938] duality for bounded distributive
1717
lattices. The construction of the separator relies on Zorn's lemma.
@@ -28,31 +28,26 @@ ideal, filter, prime, distributive lattice
2828

2929
public section
3030

31-
3231
universe u
3332
variable {α : Type*}
3433

3534
open Order Ideal Set
3635

37-
variable [DistribLattice α] [BoundedOrder α]
38-
39-
variable {F : PFilter α} {I : Ideal α}
40-
41-
namespace DistribLattice
42-
43-
44-
lemma mem_ideal_sup_principal (a b : α) (J : Ideal α) : b ∈ J ⊔ principal a ↔ ∃ j ∈ J, b ≤ j ⊔ a :=
36+
lemma Lattice.mem_ideal_sup_principal [Lattice α] (a b : α) (J : Ideal α) :
37+
b ∈ J ⊔ principal a ↔ ∃ j ∈ J, b ≤ j ⊔ a :=
4538
fun ⟨j, ⟨jJ, _, ha', bja'⟩⟩ => ⟨j, jJ, le_trans bja' (sup_le_sup_left ha' j)⟩,
4639
fun ⟨j, hj, hbja⟩ => ⟨j, hj, a, le_refl a, hbja⟩⟩
4740

48-
set_option linter.style.whitespace false in -- manual alignment is not recognised
49-
theorem prime_ideal_of_disjoint_filter_ideal (hFI : Disjoint (F : Set α) (I : Set α)) :
41+
@[deprecated (since := "2026-06-11")] alias DistribLattice.mem_ideal_sup_principal :=
42+
Lattice.mem_ideal_sup_principal
43+
44+
theorem DistribLattice.prime_ideal_of_disjoint_filter_ideal [DistribLattice α]
45+
{F : PFilter α} {I : Ideal α} (hFI : Disjoint (F : Set α) (I : Set α)) :
5046
∃ J : Ideal α, (IsPrime J) ∧ I ≤ J ∧ Disjoint (F : Set α) J := by
5147
-- Let S be the set of ideals containing I and disjoint from F.
5248
set S : Set (Set α) := { J : Set α | IsIdeal J ∧ I ≤ J ∧ Disjoint (F : Set α) J }
5349
-- Then I is in S...
54-
have IinS : ↑I ∈ S := by
55-
refine ⟨Order.Ideal.isIdeal I, by trivial⟩
50+
have IinS : ↑I ∈ S := ⟨Order.Ideal.isIdeal I, by trivial⟩
5651
-- ...and S contains upper bounds for any non-empty chains.
5752
have chainub : ∀ c ⊆ S, IsChain (· ⊆ ·) c → c.Nonempty → ∃ ub ∈ S, ∀ s ∈ c, s ⊆ ub := by
5853
intro c hcS hcC hcNe
@@ -72,7 +67,7 @@ theorem prime_ideal_of_disjoint_filter_ideal (hFI : Disjoint (F : Set α) (I : S
7267
-- By construction, J contains I and is disjoint from F. It remains to prove that J is prime.
7368
refine ⟨?_, ⟨IJ, JF⟩⟩
7469
-- First note that J is proper: ⊤ ∈ F so ⊤ ∉ J because F and J are disjoint.
75-
have Jpr : IsProper J := isProper_of_notMem (Set.disjoint_left.1 JF F.top_mem)
70+
have Jpr : IsProper J := isProper_of_notMem (Set.disjoint_left.1 JF F.nonempty.some_mem)
7671
-- Suppose that a₁ ∉ J, a₂ ∉ J. We need to prove that a₁ ⊔ a₂ ∉ J.
7772
rw [isPrime_iff_mem_or_mem]
7873
intro a₁ a₂
@@ -104,8 +99,8 @@ theorem prime_ideal_of_disjoint_filter_ideal (hFI : Disjoint (F : Set α) (I : S
10499
let ⟨c₁, ⟨c₁F, c₁J₁⟩⟩ := Set.not_disjoint_iff.1 J₁F
105100
let ⟨c₂, ⟨c₂F, c₂J₂⟩⟩ := Set.not_disjoint_iff.1 J₂F
106101
-- Using the definition of Jᵢ, we can pick bᵢ ∈ J such that cᵢ ≤ bᵢ ⊔ aᵢ.
107-
let ⟨b₁, ⟨b₁J, cba₁⟩⟩ := (mem_ideal_sup_principal a₁ c₁ J).1 c₁J₁
108-
let ⟨b₂, ⟨b₂J, cba₂⟩⟩ := (mem_ideal_sup_principal a₂ c₂ J).1 c₂J₂
102+
let ⟨b₁, ⟨b₁J, cba₁⟩⟩ := (Lattice.mem_ideal_sup_principal a₁ c₁ J).1 c₁J₁
103+
let ⟨b₂, ⟨b₂J, cba₂⟩⟩ := (Lattice.mem_ideal_sup_principal a₂ c₂ J).1 c₂J₂
109104
-- Since J is an ideal, we have b := b₁ ⊔ b₂ ∈ J.
110105
let b := b₁ ⊔ b₂
111106
have bJ : b ∈ J := sup_mem b₁J b₂J
@@ -128,5 +123,3 @@ theorem prime_ideal_of_disjoint_filter_ideal (hFI : Disjoint (F : Set α) (I : S
128123
-- TODO: Define prime filters in Mathlib so that the following corollary can be stated and proved.
129124
-- theorem prime_filter_of_disjoint_filter_ideal (hFI : Disjoint (F : Set α) (I : Set α)) :
130125
-- ∃ G : PFilter α, (IsPrime G) ∧ F ≤ G ∧ Disjoint (G : Set α) I := by sorry
131-
132-
end DistribLattice

0 commit comments

Comments
 (0)