Skip to content

Commit 3881a2b

Browse files
committed
feat(Topology/KrullDimension): add subspace dimension inequality (#29728)
This PR proves that subspaces have Krull dimension at most that of the ambient space: dim(Y) ≤ dim(X) for Y ⊆ X (theorem topologicalKrullDim_subspace_le). Supporting results about IrreducibleCloseds were refactored and moved from KrullDimension.lean to Closeds.lean for better modularity. Note: Some code/documentation generated with AI assistance (Gemini).
1 parent ae73289 commit 3881a2b

File tree

2 files changed

+63
-30
lines changed

2 files changed

+63
-30
lines changed
Lines changed: 28 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
/-
22
Copyright (c) 2024 Jujian Zhang. All rights reserved.
33
Released under Apache 2.0 license as described in the file LICENSE.
4-
Authors: Jujian Zhang, Fangming Li
4+
Authors: Jujian Zhang, Fangming Li, Alessandro D'Angelo
55
-/
66
import Mathlib.Order.KrullDimension
7+
import Mathlib.Topology.Irreducible
78
import Mathlib.Topology.Homeomorph.Lemmas
89
import Mathlib.Topology.Sets.Closeds
910

@@ -13,9 +14,18 @@ import Mathlib.Topology.Sets.Closeds
1314
The Krull dimension of a topological space is the order-theoretic Krull dimension applied to the
1415
collection of all its subsets that are closed and irreducible. Unfolding this definition, it is
1516
the length of longest series of closed irreducible subsets ordered by inclusion.
17+
18+
## Main results
19+
20+
- `topologicalKrullDim_subspace_le`: For any subspace Y ⊆ X, we have dim(Y) ≤ dim(X)
21+
22+
## Implementation notes
23+
24+
The proofs use order-preserving maps between posets of irreducible closed sets to establish
25+
dimension inequalities.
1626
-/
1727

18-
open Order TopologicalSpace Topology
28+
open Set Function Order TopologicalSpace Topology TopologicalSpace.IrreducibleCloseds
1929

2030
/--
2131
The Krull dimension of a topological space is the supremum of lengths of chains of
@@ -26,39 +36,28 @@ noncomputable def topologicalKrullDim (T : Type*) [TopologicalSpace T] : WithBot
2636

2737
variable {X Y : Type*} [TopologicalSpace X] [TopologicalSpace Y]
2838

29-
/--
30-
Map induced on irreducible closed subsets by a closed continuous map `f`.
31-
This is just a wrapper around the image of `f` together with proofs that it
32-
preserves irreducibility (by continuity) and closedness (since `f` is closed).
33-
-/
34-
def IrreducibleCloseds.map {f : X → Y} (hf1 : Continuous f) (hf2 : IsClosedMap f)
35-
(c : IrreducibleCloseds X) :
36-
IrreducibleCloseds Y where
37-
carrier := f '' c
38-
isIrreducible' := c.isIrreducible.image f hf1.continuousOn
39-
isClosed' := hf2 c c.isClosed
39+
/-!
40+
### Main dimension theorems -/
4041

41-
/--
42-
Taking images under a closed embedding is strictly monotone on the preorder of irreducible closeds.
43-
-/
44-
lemma IrreducibleCloseds.map_strictMono {f : X → Y} (hf : IsClosedEmbedding f) :
45-
StrictMono (IrreducibleCloseds.map hf.continuous hf.isClosedMap) :=
46-
fun ⦃_ _⦄ UltV ↦ hf.injective.image_strictMono UltV
42+
/-- If `f : Y → X` is inducing, then `dim(Y) ≤ dim(X)`. -/
43+
theorem IsInducing.topologicalKrullDim_le {f : Y → X} (hf : IsInducing f) :
44+
topologicalKrullDim Y ≤ topologicalKrullDim X :=
45+
krullDim_le_of_strictMono _ (map_strictMono_of_isInducing hf)
4746

48-
/--
49-
If `f : X → Y` is a closed embedding, then the Krull dimension of `X` is less than or equal
50-
to the Krull dimension of `Y`.
51-
-/
52-
theorem IsClosedEmbedding.topologicalKrullDim_le (f : X → Y) (hf : IsClosedEmbedding f) :
53-
topologicalKrullDim X ≤ topologicalKrullDim Y :=
54-
krullDim_le_of_strictMono _ (IrreducibleCloseds.map_strictMono hf)
47+
@[deprecated (since := "2025-10-19")]
48+
alias IsClosedEmbedding.topologicalKrullDim_le := IsInducing.topologicalKrullDim_le
5549

5650
/-- The topological Krull dimension is invariant under homeomorphisms -/
5751
theorem IsHomeomorph.topologicalKrullDim_eq (f : X → Y) (h : IsHomeomorph f) :
5852
topologicalKrullDim X = topologicalKrullDim Y :=
5953
have fwd : topologicalKrullDim X ≤ topologicalKrullDim Y :=
60-
IsClosedEmbedding.topologicalKrullDim_le f h.isClosedEmbedding
54+
IsInducing.topologicalKrullDim_le h.isClosedEmbedding.toIsInducing
6155
have bwd : topologicalKrullDim Y ≤ topologicalKrullDim X :=
62-
IsClosedEmbedding.topologicalKrullDim_le (h.homeomorph f).symm
63-
(h.homeomorph f).symm.isClosedEmbedding
56+
IsInducing.topologicalKrullDim_le (h.homeomorph f).symm.isClosedEmbedding.toIsInducing
6457
le_antisymm fwd bwd
58+
59+
/-- The topological Krull dimension of any subspace is at most the dimension of the
60+
ambient space. -/
61+
theorem topologicalKrullDim_subspace_le (X : Type*) [TopologicalSpace X] (Y : Set X) :
62+
topologicalKrullDim Y ≤ topologicalKrullDim X :=
63+
IsInducing.topologicalKrullDim_le IsInducing.subtypeVal

Mathlib/Topology/Sets/Closeds.lean

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@ For a topological space `α`,
1919
-/
2020

2121

22-
open Order OrderDual Set
22+
open Order OrderDual Set Topology
23+
2324

2425
variable {ι α β : Type*} [TopologicalSpace α] [TopologicalSpace β]
2526

@@ -428,6 +429,39 @@ order isomorphism. -/
428429
def orderIsoSubtype' : IrreducibleCloseds α ≃o { x : Set α // IsClosed x ∧ IsIrreducible x } :=
429430
equivSubtype'.toOrderIso (fun _ _ h ↦ h) (fun _ _ h ↦ h)
430431

432+
/-! ### Partial order structure on irreducible closed sets and maps thereof.-/
433+
434+
/-- The map on irreducible closed sets induced by a continuous map `f`. -/
435+
def map (f : β → α) (hf : Continuous f)
436+
(c : IrreducibleCloseds β) : IrreducibleCloseds α where
437+
carrier := closure (f '' c)
438+
isIrreducible' := c.isIrreducible.image f hf.continuousOn |>.closure
439+
isClosed' := isClosed_closure
440+
441+
@[simp]
442+
lemma coe_map (f : β → α) (hf : Continuous f) (s : IrreducibleCloseds β) :
443+
(map f hf s : Set α) = closure (f '' s) :=
444+
rfl
445+
446+
lemma map_mono {f : β → α} (hf : Continuous f) : Monotone (map f hf) :=
447+
fun _ _ h_le => closure_mono <| Set.image_mono h_le
448+
449+
/-- The map `IrreducibleCloseds.map` is injective when `f` is inducing.
450+
This relies on the property of embeddings that a closed set in the domain is the preimage
451+
of the closure of its image. -/
452+
lemma map_injective_of_isInducing {f : β → α} (hf : IsInducing f) :
453+
Function.Injective (map f hf.continuous) := by
454+
intro A B h_images_eq
455+
apply SetLike.coe_injective
456+
replace h_images_eq : closure (f '' A) = closure (f '' B) := congr($h_images_eq)
457+
rw [← A.isClosed.closure_eq, hf.closure_eq_preimage_closure_image, h_images_eq,
458+
← hf.closure_eq_preimage_closure_image, B.isClosed.closure_eq]
459+
460+
/-- The map `IrreducibleCloseds.map` is strictly monotone when `f` is inducing. -/
461+
lemma map_strictMono_of_isInducing {f : β → α} (hf : IsInducing f) :
462+
StrictMono (map f hf.continuous) :=
463+
Monotone.strictMono_of_injective (map_mono hf.continuous) (map_injective_of_isInducing hf)
464+
431465
end IrreducibleCloseds
432466

433467
end TopologicalSpace

0 commit comments

Comments
 (0)