Shelah's ded bound on the traces of a family of finite VC dimension. On an infinite ground set a family of finite VC dimension traces at most ded #A sets, and by mk_image_inter_range_cut_eq_ded the bound is attained. The infiniteness of A is not decorative: see exists_finite_ground_hasVCDimLE_not_mk_image_inter_le_ded.
∀ {α : Type u} {𝒜 : Set (Set α)} {A : Set α} {d : ℕ},
HasVCDimLE d 𝒜 → A.Infinite → Cardinal.mk ↑((fun x => A ∩ x) '' 𝒜) ≤ ded (Cardinal.mk ↑A)Relations
- Limited byMTH.C-2026-6008
No cardinal function smaller than ded bounds the traces, which places ded at the exact strength of the bound.
Asserted by
Dhruv Gupta
- DeclHasVCDimLE.mk_image_inter_le_dedDeclaration kindtheorem
∀ {α : Type u} {𝒜 : Set (Set α)} {A : Set α} {d : ℕ}, HasVCDimLE d 𝒜 → A.Infinite → Cardinal.mk ↑((fun x => A ∩ x) '' 𝒜) ≤ ded (Cardinal.mk ↑A) - Declexists_shatters_of_ded_lt_mk_image_interDeclaration kindtheorem
Shelah's theorem. A family that traces more than
ded #Asets on an infinite ground setAshatters finite subsets ofAof every size. The proof takes a subsetB ⊆ Aof least cardinality on which the family still traces more thanded #Asets, enumeratesBby an initial ordinal so that every proper initial segment is smaller thanBand therefore carries at mostded #Atraces, prunes the tree of traces along that enumeration to the nodes at least(ded #A)⁺members pass through, and walks down the pruned tree collecting one point per step.The conclusion cannot be strengthened to an infinite shattered set: the finite subsets of
ℕshatter every finite set and no infinite one.The statement is due to Shelah. Both expositions used here, Adler, Introduction to theories without the independence property, Theorem 23, and Simon, A Guide to NIP Theories, Proposition 2.69, state it for the space of complete
φ-types over a parameter set rather than for a set family, and the reading under which a completeφ-type overAis a trace onAand the independence property is the shattering of arbitrarily large finite sets is the standard translation of that statement, not a form either source asserts.∀ {α : Type u} {𝒜 : Set (Set α)} {A : Set α}, A.Infinite → ded (Cardinal.mk ↑A) < Cardinal.mk ↑((fun x => A ∩ x) '' 𝒜) → ∀ (n : ℕ), ∃ S ⊆ A, S.Finite ∧ S.ncard = n ∧ Shatters 𝒜 S - Declmk_Iio_lt_ordDeclaration kindtheorem
∀ {ν : Cardinal.{u}} (w : ν.ord.ToType), Cardinal.mk ↑(Set.Iio w) < ν - Declexists_shatter_tuple_of_enumDeclaration kindtheorem
Shelah's argument in the tree language: an enumeration of a ground set of size
μall of whose initial segments carry at mostθtraces, withded μ ≤ θand more thanθtraces on the whole set, yields for eachna set ofnindices on which𝒜cuts out every pattern. The ceilingθ⁺is regular, so the pruning ofmk_sdiff_core_ltapplies and the core keeps the whole width.∀ {α : Type u} {𝒜 : Set (Set α)} {W : Type u} {e : W → α} [inst : LinearOrder W] [WellFoundedLT W] {μ θ : Cardinal.{u}}, Cardinal.aleph0 ≤ μ → Cardinal.mk W = μ → Cardinal.aleph0 ≤ θ → ded μ ≤ θ → (∀ (w : W), Cardinal.mk ↑((fun x => e '' Set.Iic w ∩ x) '' 𝒜) ≤ θ) → θ < Cardinal.mk ↑((fun x => Set.range e ∩ x) '' 𝒜) → ∀ (n : ℕ), ∃ S, S.Finite ∧ S.ncard = n ∧ ∀ (σ : Set W), ∃ C ∈ 𝒜, ∀ x ∈ S, e x ∈ C ↔ x ∈ σUses
- Declself_le_dedDeclaration kindtheorem
∀ (κ : Cardinal.{u}), κ ≤ ded κ - Declmk_truncate_image_enc_imageDeclaration kindtheorem
The level-
wnodes of the tree of codes are the traces on the initial segmente '' Iic w.∀ {α : Type u} {𝒜 : Set (Set α)} {W : Type u} {e : W → α} [inst : LinearOrder W] (w : W), Cardinal.mk ↑(truncate w '' enc✝ e '' 𝒜) = Cardinal.mk ↑((fun x => e '' Set.Iic w ∩ x) '' 𝒜)Used by
- Decltruncate_enc_eq_iffDeclaration kindtheorem
∀ {α W : Type u} {e : W → α} {C C' : Set α} [inst : LinearOrder W] {w : W}, truncate w (enc✝ e C) = truncate w (enc✝ e C') ↔ ∀ v ≤ w, e v ∈ C ↔ e v ∈ C'Used by
- Declmk_sdiff_core_ltDeclaration kindtheorem
Pruning to the core costs fewer than
lammembers: a member outside the core has a narrow truncation, the narrow nodes at one level are fewer thanlamand carry fewer thanlammembers each, and there are fewer thanlamlevels. Regularity oflamcloses both sums.∀ {W : Type u} [inst : LinearOrder W] {β : Type u} [inst_1 : LinearOrder β] [inst_2 : OrderBot β] {F : Set (Lex (W → β))} {lam : Cardinal.{u}}, lam.IsRegular → Cardinal.mk W < lam → (∀ (w : W), Cardinal.mk ↑(truncate w '' F) < lam) → Cardinal.mk ↑(F \ core✝ lam F) < lamUsed by
- Declmk_image_inter_range_le_mk_enc_imageDeclaration kindtheorem
The traces on the range of
eare at most as many as the codes alonge, two members with the same code agreeing at every index.∀ {α : Type u} {𝒜 : Set (Set α)} {W : Type u} {e : W → α}, Cardinal.mk ↑((fun x => Set.range e ∩ x) '' 𝒜) ≤ Cardinal.mk ↑(enc✝ e '' 𝒜)Used by
- Declmk_image_le_mk_imageDeclaration kindtheorem
If
gseparates at most as much asfdoes ons, thenf '' sis no larger thang '' s.∀ {β γ δ : Type u} {s : Set β} {f : β → γ} {g : β → δ}, (∀ x ∈ s, ∀ y ∈ s, g x = g y → f x = f y) → Cardinal.mk ↑(f '' s) ≤ Cardinal.mk ↑(g '' s) - Declinter_eq_inter_iffDeclaration kindtheorem
∀ {α : Type u} {C C' D : Set α}, D ∩ C = D ∩ C' ↔ ∀ a ∈ D, a ∈ C ↔ a ∈ C' - Declenc_eq_iffDeclaration kindtheorem
∀ {α W : Type u} {e : W → α} {C C' : Set α}, enc✝ e C = enc✝ e C' ↔ ∀ (w : W), e w ∈ C ↔ e w ∈ C'Uses
- Declenc_apply_eq_iffDeclaration kindtheorem
∀ {α W : Type u} {e : W → α} {C C' : Set α} {w : W}, ofLex (enc✝ e C) w = ofLex (enc✝ e C') w ↔ (e w ∈ C ↔ e w ∈ C') - Declexists_shatter_tupleDeclaration kindtheorem
The induction that produces the shattered points. In a two-valued tree whose core is wide, every wide node carries, for each
n, a set ofnindices above its own level on which the members ofFbelow it realise every pattern. The step spends the wide node:lt_mk_big_fibergives more thanμwide nodes below it,exists_levelconcentrates them on one level, the pigeonhole on finite index sets returns two of them with a common tuple, and the index where the two disagree is the new point. Its position, strictly above the old level and at or below the new one, is what keeps the points distinct. This is the combinatorial form of the claim proved by induction in Adler, Theorem 23, and in Simon, Proposition 2.69.∀ {W : Type u} [inst : LinearOrder W] [WellFoundedLT W] {F : Set (Lex (W → WithBot (ULift.{u, 0} Bool)))} {μ lam : Cardinal.{u}}, Cardinal.aleph0 ≤ μ → Cardinal.mk W = μ → lam.IsRegular → Cardinal.mk ↑(F \ core✝ lam F) < lam → ded μ < lam → (∀ g ∈ F, ∀ (x : W), ofLex g x = valIn✝ ∨ ofLex g x = valOut✝) → ∀ (n : ℕ) (w : W), ∀ p ∈ bigAt✝ lam F w, ∃ S, S.Finite ∧ S.ncard = n ∧ (∀ x ∈ S, w < x) ∧ ∀ (σ : Set W), ∃ g ∈ F, truncate w g = p ∧ ∀ x ∈ S, ofLex g x = valIn✝ ↔ x ∈ σUses
Used by
- Declval_of_mem_image_truncateDeclaration kindtheorem
A node inherits two-valuedness from the members it truncates.
∀ {W : Type u} [inst : LinearOrder W] {F : Set (Lex (W → WithBot (ULift.{u, 0} Bool)))} {q : Lex (W → WithBot (ULift.{u, 0} Bool))} {x v : W}, (∀ g ∈ F, ∀ (y : W), ofLex g y = valIn✝ ∨ ofLex g y = valOut✝) → q ∈ truncate v '' F → x ≤ v → ofLex q x = valIn✝ ∨ ofLex q x = valOut✝Used by
- DeclofLex_truncate_of_leDeclaration kindtheorem
Below the level of truncation the sequence is unchanged.
∀ {W : Type u} [inst : LinearOrder W] {β : Type u} [inst_1 : LinearOrder β] [inst_2 : OrderBot β] {v : W} {g : Lex (W → β)} {x : W}, x ≤ v → ofLex (truncate v g) x = ofLex g xUses
- Declmk_setOf_finite_ncard_leDeclaration kindtheorem
The finite subsets of an infinite
Wof a prescribed size are at most#Wmany. This is the pigeonhole that forces two nodes at one level to carry the same tuple.∀ {W : Type u}, Cardinal.aleph0 ≤ Cardinal.mk W → ∀ (n : ℕ), Cardinal.mk ↑{S | S.Finite ∧ S.ncard = n} ≤ Cardinal.mk WUsed by
- Decllt_of_mk_ltDeclaration kindtheorem
The level found by
exists_levellies strictly above the node's own level: at or below it the fibre is a single node, hence too small.∀ {W : Type u} [inst : LinearOrder W] {β : Type u} [inst_1 : LinearOrder β] [inst_2 : OrderBot β] {F : Set (Lex (W → β))} {lam μ : Cardinal.{u}} {v w : W} {p : Lex (W → β)}, Cardinal.aleph0 ≤ μ → μ < Cardinal.mk ↑{q | q ∈ bigAt✝ lam F v ∧ truncate w q = p} → w < vUsed by
- Decllt_mk_big_fiberDeclaration kindtheorem
The step at which
dedenters the argument. Below a wide nodep, the core members extendingpare at leastlammany, and they form a set of branches whose nodes are the wide nodes extendingptogether with the truncations ofpitself. The tree bound therefore caps them bydedof that node set, so if the wide nodes extendingpwere at mostμthe count would be at mostded (μ + #W), which is belowlam.∀ {W : Type u} [inst : LinearOrder W] {β : Type u} [inst_1 : LinearOrder β] [inst_2 : OrderBot β] {F : Set (Lex (W → β))} {lam μ : Cardinal.{u}} {w : W} {p : Lex (W → β)} [WellFoundedLT W], lam.IsRegular → Cardinal.mk ↑(F \ core✝ lam F) < lam → p ∈ bigAt✝ lam F w → ded (μ + Cardinal.mk W) < lam → μ < Cardinal.mk ↑{q | q ∈ big✝ lam F ∧ truncate w q = p}Used by
- Decltruncate_truncateDeclaration kindtheorem
∀ {W : Type u} [inst : LinearOrder W] {β : Type u} [inst_1 : LinearOrder β] [inst_2 : OrderBot β] (w v : W) (b : Lex (W → β)), truncate w (truncate v b) = truncate (min w v) b - Declmk_le_ded_of_truncate_memDeclaration kindtheorem
The tree bound: a set
𝒮of sequences all of whose truncations lie in𝒟has at mostded #𝒟elements. Equivalently, a tree with at mostκnodes has at mostded κbranches. The order is taken on𝒮 ∪ 𝒟with𝒟as the dense subset: givenf < gthere, eitherglies in𝒟and brackets the pair by itself, orglies in𝒮and the truncation ofgat the first index wherefandgdiffer lies between them.∀ {W : Type u} [inst : LinearOrder W] {β : Type u} [inst_1 : LinearOrder β] [inst_2 : OrderBot β] [WellFoundedLT W] {𝒮 𝒟 : Set (Lex (W → β))} {κ : Cardinal.{u}}, (∀ f ∈ 𝒮, ∀ (w : W), truncate w f ∈ 𝒟) → Cardinal.mk ↑𝒟 ≤ κ → Cardinal.mk ↑𝒮 ≤ ded κUsed by
- Decltruncate_leDeclaration kindtheorem
∀ {W : Type u} [inst : LinearOrder W] {β : Type u} [inst_1 : LinearOrder β] [inst_2 : OrderBot β] [WellFoundedLT W] (w : W) (b : Lex (W → β)), truncate w b ≤ bUsed by
- Declmk_le_dedDeclaration kindtheorem
The defining property of
ded, in the form used downstream: a linear order with a dense subset of size at mostκhas at mostded κpoints.∀ {κ : Cardinal.{u}} {J : Type u} [inst : LinearOrder J] {E : Set J}, Cardinal.mk ↑E ≤ κ → IsDenseIn E → Cardinal.mk J ≤ ded κUses
Used by
- Decllt_truncateDeclaration kindtheorem
∀ {W : Type u} [inst : LinearOrder W] {β : Type u} [inst_1 : LinearOrder β] [inst_2 : OrderBot β] {a b : Lex (W → β)} {w : W}, (∀ j < w, ofLex a j = ofLex b j) → ofLex a w < ofLex b w → a < truncate w bUsed by
- Decltruncate_applyDeclaration kindtheorem
∀ {W : Type u} [inst : LinearOrder W] {β : Type u} [inst_1 : LinearOrder β] [inst_2 : OrderBot β] (w : W) (b : Lex (W → β)) (v : W), ofLex (truncate w b) v = if v ≤ w then ofLex b v else ⊥ - Decllex_lt_iffDeclaration kindtheorem
∀ {W : Type u} [inst : LinearOrder W] {β : Type u} [inst_1 : LinearOrder β] {a b : Lex (W → β)}, a < b ↔ ∃ i, (∀ j < i, ofLex a j = ofLex b j) ∧ ofLex a i < ofLex b i - Declle_mk_core_fiberDeclaration kindtheorem
A wide node stays wide inside the core, the pruning having removed fewer than
lammembers.∀ {W : Type u} [inst : LinearOrder W] {β : Type u} [inst_1 : LinearOrder β] [inst_2 : OrderBot β] {F : Set (Lex (W → β))} {lam : Cardinal.{u}} {w : W} {p : Lex (W → β)}, lam.IsRegular → Cardinal.mk ↑(F \ core✝ lam F) < lam → p ∈ bigAt✝ lam F w → lam ≤ Cardinal.mk ↑{g | g ∈ core✝ lam F ∧ truncate w g = p}Used by
- Declexists_levelDeclaration kindtheorem
The wide nodes below a fixed node spread over the levels, so if they are more than
μin total and the levels are at mostμ, one level already carries more thanμof them.∀ {W : Type u} [inst : LinearOrder W] {β : Type u} [inst_1 : LinearOrder β] [inst_2 : OrderBot β] {F : Set (Lex (W → β))} {lam μ : Cardinal.{u}} {w : W} {p : Lex (W → β)}, Cardinal.aleph0 ≤ μ → Cardinal.mk W ≤ μ → μ < Cardinal.mk ↑{q | q ∈ big✝ lam F ∧ truncate w q = p} → ∃ v, μ < Cardinal.mk ↑{q | q ∈ bigAt✝ lam F v ∧ truncate w q = p}Used by
- Declenc_apply_eq_valIn_orDeclaration kindtheorem
∀ {α W : Type u} {e : W → α} (C : Set α) (w : W), ofLex (enc✝ e C) w = valIn✝ ∨ ofLex (enc✝ e C) w = valOut✝Uses
Used by
- Declenc_apply_eq_valIn_iffDeclaration kindtheorem
∀ {α W : Type u} {e : W → α} (C : Set α) (w : W), ofLex (enc✝ e C) w = valIn✝ ↔ e w ∈ CUsed by
- DeclvalIn_ne_valOutDeclaration kindtheorem
valIn✝ ≠ valOut✝
- Declenc_applyDeclaration kindtheorem
∀ {α W : Type u} {e : W → α} {C : Set α} (w : W), ofLex (enc✝ e C) w = if e w ∈ C then valIn✝ else valOut✝ - Declexists_minimal_subsetDeclaration kindtheorem
The reduction that makes the tree small. Among the subsets of
Awhose trace family outrunsθthere is one of least cardinality,Cardinalbeing well-ordered. Along an enumeration of that subset every proper initial segment carries at mostθtraces, which is what the tree bound needs and what a well-order ofAitself does not supply.∀ {α : Type u} {𝒜 : Set (Set α)} {A : Set α} {θ : Cardinal.{u}}, θ < Cardinal.mk ↑((fun x => A ∩ x) '' 𝒜) → ∃ B ⊆ A, θ < Cardinal.mk ↑((fun x => B ∩ x) '' 𝒜) ∧ ∀ B' ⊆ A, Cardinal.mk ↑B' < Cardinal.mk ↑B → Cardinal.mk ↑((fun x => B' ∩ x) '' 𝒜) ≤ θ - Declded_le_dedDeclaration kindtheorem
∀ {κ₁ κ₂ : Cardinal.{u}}, κ₁ ≤ κ₂ → ded κ₁ ≤ ded κ₂ - Declself_mem_dedSetDeclaration kindtheorem
∀ (κ : Cardinal.{u}), κ ∈ dedSet✝ κUses
Used by
- DeclisDenseIn_univDeclaration kindtheorem
∀ {I : Type u_1} [inst : Preorder I], IsDenseIn Set.univUsed by
- DeclbddAbove_dedSetDeclaration kindtheorem
∀ (κ : Cardinal.{u}), BddAbove (dedSet✝ κ)Uses
- DecldedSet_leDeclaration kindtheorem
∀ {κ c : Cardinal.{u}}, c ∈ dedSet✝ κ → c ≤ 2 ^ (κ + κ)Used by
- DeclIsDenseIn.mk_le_two_pow_mulDeclaration kindtheorem
A linear order with a dense subset
Dhas at most2 ^ #D * 2 ^ #Dpoints, since a point is determined by the pair of cuts it induces onD.∀ {J : Type u} [inst : LinearOrder J] {E : Set J}, IsDenseIn E → Cardinal.mk J ≤ 2 ^ Cardinal.mk ↑E * 2 ^ Cardinal.mk ↑EUsed by
- DeclcutCode_injectiveDeclaration kindtheorem
∀ {I : Type u_1} {D : Set I} [inst : LinearOrder I], IsDenseIn D → Function.Injective (cutCode✝ D)Uses
Used by
- DeclcutCode_neDeclaration kindtheorem
∀ {I : Type u_1} {D : Set I} [inst : LinearOrder I], IsDenseIn D → ∀ {x y : I}, x < y → cutCode✝ D x ≠ cutCode✝ D yUsed by
- Hypothesish𝒜
HasVCDimLE d 𝒜
- HypothesishA
A.Infinite
A set family
𝒜has VC dimension at mostdif all the sets it shatters have size at mostd.{α : Type u_1} → ℕ → Set (Set α) → Prop- DefinitionIsDenseIndef
Dis dense in a preorderIwhen every paira < bbrackets a point ofD, that is, when there isd ∈ Dwitha ≤ d ≤ b. On a linear order without jumps this agrees with strict betweenness; on an order with jumps it is strictly weaker, and it is the form under whichdedbounds the size of the order.{I : Type u_1} → [Preorder I] → Set I → Prop A set family
𝒜shatters a setAif all subsets ofAcan be obtained as the intersection ofAwith some element of the set family. We also say thatAis traced by𝒜.{α : Type u_1} → [SemilatticeInf α] → Set α → α → Prop- Definitionbigdef
The wide nodes of the tree of truncations of
F, at all levels.{W : Type u} → [LinearOrder W] → {β : Type u} → [inst : LinearOrder β] → [OrderBot β] → Cardinal.{u} → Set (Lex (W → β)) → Set (Lex (W → β)) - DefinitionbigAtdef
The level-
wtruncations ofFthat at leastlammembers ofFextend.{W : Type u} → [LinearOrder W] → {β : Type u} → [inst : LinearOrder β] → [OrderBot β] → Cardinal.{u} → Set (Lex (W → β)) → W → Set (Lex (W → β)) - Definitioncoredef
The members of
Fall of whose truncations are wide.{W : Type u} → [LinearOrder W] → {β : Type u} → [inst : LinearOrder β] → [OrderBot β] → Cardinal.{u} → Set (Lex (W → β)) → Set (Lex (W → β)) - DefinitioncutCodedef
The pair of cuts a point of
Iinduces onD.{I : Type u_1} → [Preorder I] → (D : Set I) → I → Set ↑D × Set ↑D - Definitiondeddef
ded κis the supremum of the cardinalities of the linear orders that admit a dense subset of size at mostκ. The supremum is taken over a set of cardinals bounded above by2 ^ (κ + κ), so it is not a junk value. Carriers are restricted toType u, which does not move the supremum, every witness having size at most2 ^ (κ + κ).Cardinal.{u} → Cardinal.{u} - DefinitiondedSetdef
The set of cardinalities of linear orders with a dense subset of size at most
κ.Cardinal.{u} → Set Cardinal.{u} - Definitionencdef
The code of
Calong an indexingeof the ground set.{α W : Type u} → (W → α) → Set α → Lex (W → WithBot (ULift.{u, 0} Bool)) - Definitiontruncatedef
The sequence agreeing with
bup towand equal to⊥above it.{W : Type u} → [LinearOrder W] → {β : Type u} → [inst : LinearOrder β] → [OrderBot β] → W → Lex (W → β) → Lex (W → β) - DefinitionvalIndef
The two defined values of the alphabet coding a partial trace;
⊥marks the positions where the trace is undefined.WithBot (ULift.{u, 0} Bool) - DefinitionvalOutdef
WithBot (ULift.{u, 0} Bool)
Verification
- Replay
- accepted
- Axioms
- Classical.choiceQuot.soundpropext
- Statement identity
- not-applicable
- Substrate
- Lean 4 kernel v4.31.0
- Dictionary pin
- design-lab@5802df4 · initial
- Frozen export
- 7f14a7125689
- Verified
- 2026-09-24T00:00:00Z