Skip to content

feat(SetTheory/Cardinal): Δ-system lemma#34246

Open
staroperator wants to merge 15 commits intoleanprover-community:masterfrom
staroperator:delta_system_lemma
Open

feat(SetTheory/Cardinal): Δ-system lemma#34246
staroperator wants to merge 15 commits intoleanprover-community:masterfrom
staroperator:delta_system_lemma

Conversation

@staroperator
Copy link
Copy Markdown
Collaborator

@staroperator staroperator commented Jan 22, 2026

We prove the Δ-system lemma, which says for any regular cardinal θ and infinite cardinal κ < θ, if ∀ c < θ, c ^< κ < θ, any θ-sized family of sets whose cardinalities are less than κ must contain a θ-sized Δ-system (this condition is called Δ-system property for θ and κ, noted as Δ(θ, k)). As a special case, Δ(ℵ₁, ℵ₀) ensures any uncountable family of finite sets must contain an uncountable Δ-system.


Open in Gitpod

@github-actions
Copy link
Copy Markdown

github-actions bot commented Jan 22, 2026

PR summary c3e588b468

Import changes exceeding 2%

% File
+8.15% Mathlib.Order.IsNormal

Import changes for modified files

Dependency changes

File Base Count Head Count Change
Mathlib.Order.IsNormal 405 438 +33 (+8.15%)
Import changes for all files
Files Import difference
Mathlib.Order.DirSupClosed 1
Mathlib.Topology.Order.IsNormal 3
Mathlib.Order.IsNormal 33
Mathlib.Order.Club (new file) 745
Mathlib.SetTheory.Cardinal.DeltaSystem (new file) 746

Declarations diff

+ Cardinal.IsRegular.card_eq_of_isStationary
+ Cardinal.IsRegular.isStationary_setOf_cof_eq
+ DeltaSystemProperty
+ DeltaSystemProperty.exists_pairwise_eq
+ DeltaSystemProperty.mono
+ DirSupClosed.mem_iff_of_antisymmRel
+ DirSupClosed.mem_imp_of_antisymmRel
+ DirSupClosed.of_isEmpty
+ DirSupClosedOn.of_isEmpty
+ DirSupInacc.mem_iff_of_antisymmRel
+ DirSupInacc.of_isEmpty
+ DirSupInaccOn.of_isEmpty
+ IsClub
+ IsClub.biInter
+ IsClub.ciSup_mem
+ IsClub.csSup_mem
+ IsClub.diag
+ IsClub.iInter
+ IsClub.inter
+ IsClub.isLUB_mem
+ IsClub.nonempty
+ IsClub.of_isEmpty
+ IsClub.sInter
+ IsClub.univ
+ IsLowerSet.dirSupInaccOn
+ IsStationary
+ IsStationary.inter_isClub
+ IsStationary.mono
+ IsStationary.nonempty
+ IsStationary.not_bddAbove
+ IsStationary.of_not_isCofinal_compl
+ IsStationary.univ
+ IsUpperSet.dirSupClosedOn
+ Order.IsNormal.isClub_fixedPoints
+ Set.Iio.coe_iInf
+ Set.Iio.coe_iSup
+ Set.Iio.coe_sInf
+ Set.Iio.coe_sSup
+ Set.Iio.conditionallyCompleteLinearOrderBot
+ Uncountable.exists_pairwise_inter_eq_finset
+ _root_.Order.cof_cardinal
+ _root_.Order.cof_ordinal
+ bddAbove_Iio_of_lt_cof
+ bddAbove_range_Iio_of_lt_cof
+ bddAbove_range_toType_of_lt_cof
+ bddAbove_toType_of_lt_cof
+ coe_bot
+ coe_sup
+ deltaSystemProperty_aleph0
+ deltaSystemProperty_aux
+ deltaSystemProperty_of_powerlt_lt
+ dirSupClosedOn_Iic
+ dirSupClosedOn_Ioi
+ dirSupClosedOn_iff_forall_sSup
+ dirSupClosedOn_singleton
+ dirSupClosed_Ioi
+ dirSupClosed_singleton
+ dirSupInaccOn_Iic
+ dirSupInaccOn_iff_forall_sSup
+ dirSupInacc_Iic
+ exists_isStationary_preimage_singleton
+ exists_isStationary_preimage_singleton_of_cardinalMk_range_lt_cof
+ exists_pairwise_inter_eq_finset
+ iSup_iterate_mem_fixedPoints
+ infinite_pigeonhole_card_range
+ instance [Lattice α] [IsLinearOrder α (· ≤ ·)] {a : α} : Lattice (Iio a)
+ instance {o : Ordinal} : WellFoundedLT (Set.Iio o) := ToType.mk.toOrderEmbedding.wellFoundedLT
+ isClub_Ioi
+ isClub_almost_fixed_points
+ isClub_empty_iff
+ isGreatest_Ioi_top
+ isLUB_congr_of_antisymmRel
+ isStationary_univ_iff
+ lift_powerlt
+ mk_Iio_Iio_ord_eq
+ mk_Iio_Iio_ord_lt
+ mk_bounded_set_le_powerlt
+ mk_bounded_subset_le_powerlt
+ mk_range_le_powerlt
+ noMaxOrder_Iio_ord
+ orderBot
+ powerlt_eq_zero_iff
+ powerlt_le_powerlt
+ powerlt_le_powerlt_right
+ powerlt_mono_right
+ powerlt_one
+ semilatticeSup

You can run this locally as follows
## summary with just the declaration names:
./scripts/pr_summary/declarations_diff.sh <optional_commit>

## more verbose report:
./scripts/pr_summary/declarations_diff.sh long <optional_commit>

The doc-module for scripts/pr_summary/declarations_diff.sh contains some details about this script.


No changes to technical debt.

You can run this locally as

./scripts/reporting/technical-debt-metrics.sh pr_summary
  • The relative value is the weighted sum of the differences with weight given by the inverse of the current value of the statistic.
  • The absolute value is the relative value divided by the total sum of the inverses of the current values (i.e. the weighted average of the differences).

@mathlib4-dependent-issues-bot mathlib4-dependent-issues-bot added the blocked-by-other-PR This PR depends on another PR (this label is automatically managed by a bot) label Jan 22, 2026
@joneugster joneugster added the t-set-theory Set theory label Feb 1, 2026
@staroperator staroperator force-pushed the delta_system_lemma branch 2 times, most recently from 7542801 to 957d805 Compare February 2, 2026 18:10
@mathlib-dependent-issues mathlib-dependent-issues bot removed the blocked-by-other-PR This PR depends on another PR (this label is automatically managed by a bot) label Feb 22, 2026
@mathlib-merge-conflicts
Copy link
Copy Markdown

This pull request has conflicts, please merge master and resolve them.

@mathlib-merge-conflicts mathlib-merge-conflicts bot added the merge-conflict The PR has a merge conflict with master, and needs manual merging. (this label is managed by a bot) label Mar 9, 2026
Copy link
Copy Markdown
Collaborator

@vihdzp vihdzp left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you merge master?

Comment thread Mathlib/SetTheory/Cardinal/DeltaSystem.lean Outdated
include h hκ hθ hθ' in
private lemma delta_system_property_aux {ι : Type u} {ρ : Ordinal.{u}} {f : ι → Set θ.ord.ToType}
(hι : θ ≤ #ι) (hf : ∀ i, #(f i) < κ) (hρ : ρ < κ.ord) (hρ' : ∀ i, typeLT (f i) = ρ) :
∃ (s : Set ι) (t : Set θ.ord.ToType), θ ≤ #s ∧ s.Pairwise (f · ∩ f · = t) := by
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ordinal.ToType has its use cases, but I don't think this is one of them. Why not just use Iio θ.ord?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I change to Iio now, but the order instance and lemmas are missing. I have made #38266 for this.

Comment thread Mathlib/SetTheory/Cardinal/DeltaSystem.lean Outdated
Comment thread Mathlib/SetTheory/Cardinal/DeltaSystem.lean Outdated
@staroperator staroperator added the awaiting-author A reviewer has asked the author a question or requested changes. label Apr 14, 2026
@github-actions github-actions bot added large-import Automatically added label for PRs with a significant increase in transitive imports and removed merge-conflict The PR has a merge conflict with master, and needs manual merging. (this label is managed by a bot) labels Apr 20, 2026
@mathlib-dependent-issues
Copy link
Copy Markdown

@mathlib-dependent-issues mathlib-dependent-issues bot added the blocked-by-other-PR This PR depends on another PR (this label is automatically managed by a bot) label Apr 20, 2026
@staroperator
Copy link
Copy Markdown
Collaborator Author

I have reproved the Δ-system lemma via Fodor's lemma (following Kunen's 2011 edition), which is much easier to read than the previous elementary proof. (I thought this should golf a lot, but seems not.)

@staroperator staroperator removed the awaiting-author A reviewer has asked the author a question or requested changes. label Apr 20, 2026
@vihdzp
Copy link
Copy Markdown
Collaborator

vihdzp commented Apr 20, 2026

I'll take a closer look at this PR once all the dependents are taken care of.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

blocked-by-other-PR This PR depends on another PR (this label is automatically managed by a bot) large-import Automatically added label for PRs with a significant increase in transitive imports t-set-theory Set theory

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants