Skip to content

Commit ff96409

Browse files
anishrajeevjonasvanderschaafpre-commit-ci-lite[bot]
committed
feat(ModelTheory): Prove compactness of the type space (#32546)
Define the space of types and prove various topological properties of it (zero dimensional, totally separated, compact, baire). The goal is to formalize the proof of the Omitting Types Theorem - [ ] depends on: #32215 Co-authored-by: Jonas van der Schaaf <niet@jonasvanderschaaf.nl> Co-authored-by: Anishrajeev210 <37055371+Anishrajeev210@users.noreply.github.com> Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
1 parent 9bc51f5 commit ff96409

1 file changed

Lines changed: 30 additions & 1 deletion

File tree

Mathlib/ModelTheory/Topology/Types.lean

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/-
22
Copyright (c) 2025 Jonas van der Schaaf. All rights reserved.
33
Released under Apache 2.0 license as described in the file LICENSE.
4-
Authors: Jonas van der Schaaf
4+
Authors: Jonas van der Schaaf, Anish Rajeev
55
-/
66

77
module
@@ -10,6 +10,8 @@ public import Mathlib.ModelTheory.Types
1010
public import Mathlib.Topology.Bases
1111
public import Mathlib.Topology.Connected.TotallyDisconnected
1212
public import Mathlib.Topology.Compactness.Compact
13+
public import Mathlib.Topology.Connected.Separation
14+
public import Mathlib.Topology.Baire.LocallyCompactRegular
1315

1416
/-!
1517
# Topology on the space of complete types
@@ -68,5 +70,32 @@ public instance : TotallySeparatedSpace (CompleteType T α) := by
6870
refine ⟨T.typesWith ∼φ, isClopen_typesWith _, h, ?_⟩
6971
rwa [mem_compl_iff, mem_typesWith_iff, not_mem_iff, ← hφ, not_not, ← not_mem_iff]
7072

73+
instance : CompactSpace (T.CompleteType α) := by
74+
constructor
75+
rw [isCompact_iff_ultrafilter_le_nhds]
76+
intros F _
77+
refine ⟨⟨{φ | T.typesWith φ ∈ F}, ?_, ?_⟩, ?_⟩
78+
· intro φ x
79+
exact F.mem_of_superset Filter.univ_mem (fun p _ ↦ p.subset x)
80+
· rw [Theory.IsMaximal, Theory.isSatisfiable_iff_isFinitelySatisfiable]
81+
refine ⟨?_, ?_⟩
82+
· rw[Theory.IsFinitelySatisfiable]
83+
intro x hx
84+
have : ∀ φ ∈ x, T.typesWith φ ∈ F.toFilter := by intro φ hφ; exact hx hφ
85+
rw [← Filter.biInter_finset_mem x] at this
86+
obtain ⟨T, T_inter⟩ := F.neBot.nonempty_of_mem this
87+
have subset : (x : Set _) ⊆ T.toTheory := by rwa [Set.mem_iInter₂] at T_inter
88+
exact T.isMaximal.1.mono subset
89+
· intro φ
90+
simp only [mem_setOf_eq, typesWith_not]
91+
exact Ultrafilter.mem_or_compl_mem F (T.typesWith φ)
92+
· refine ⟨mem_univ _, ?_⟩
93+
· rw [nhds_generateFrom]
94+
apply le_iInf₂
95+
rintro _ ⟨hφ, φ, rfl⟩
96+
rw [Filter.le_principal_iff]
97+
exact hφ
98+
99+
instance : BaireSpace (T.CompleteType α) := BaireSpace.of_t2Space_locallyCompactSpace
71100

72101
end CompleteType

0 commit comments

Comments
 (0)