Pajor's inequality for multiclass concept classes, with no hypotheses on the domain, the label type or the family: the traces of π on S are at most as many as the pair-cubes of π supported inside S.
The count runs on a split of the family at a point where two traces differ, taking one branch per realised value with no residual bucket. A cube of a branch never constrains the split point, so a cube pair-shattered by ΞΌ branches is counted ΞΌ times on the left and supplies 1 + ΞΌ.choose 2 cubes on the right, which closes the accounting because ΞΌ β€ 1 + ΞΌ.choose 2 for ΞΌ β₯ 1, with equality exactly at ΞΌ β {1, 2}. An infinite trace family forces infinitely many one-point cubes and both sides are β€.
At Y = Bool this specialises to encard_image_inter_le_encard_shatters, which is encard_image_inter_le_encard_shatters_of_multiclass below. The pair-cube is Natarajan's shattering witness for spaces of functions, from p. 81 of On learning sets and functions; see the module docstring.
β {X : Type u_1} {Y : Type u_2} (π : Set (X β Y)) (S : Set X), (S.restrict '' π).encard β€ (pairCubes π S).encardRelations
- GeneralisesMTH.C-2026-6001
At Y = Bool this specialises to Pajor's inequality.
Asserted by
Dhruv Gupta - Shares definitions withMTH.C-2026-6006
Built on the same pair patterns and pair-shattering; neither implies the other.
Asserted by
Dhruv Gupta
- Declencard_image_restrict_le_encard_pairCubesDeclaration kindtheorem
β {X : Type u_1} {Y : Type u_2} (π : Set (X β Y)) (S : Set X), (S.restrict '' π).encard β€ (pairCubes π S).encard - Declinfinite_pairCubes_of_infinite_image_restrictDeclaration kindtheorem
Infinitely many traces force infinitely many cubes. Either the family disagrees at infinitely many points of
S, each of which carries a one-point cube, or it realises infinitely many labels at one point, which carries infinitely many one-point cubes. The proof runs the contrapositive: finitely many cubes bound both the disagreement set and, above each of its points, the set of realised labels, and a trace is determined by its values on the disagreement set, so the traces embed in a finite product. This is what makes the multiclass inequality hypothesis-free, asinfinite_setOf_shattersdoes in the binary case.β {X : Type u_1} {Y : Type u_2} {π : Set (X β Y)} {S : Set X}, (S.restrict '' π).Infinite β (pairCubes π S).Infinite - DeclsingCube_right_injectiveDeclaration kindtheorem
β {X : Type u_1} {Y : Type u_2} (z : X) (u : Y), Function.Injective (singCubeβ z u) - DeclsingCube_apply_selfDeclaration kindtheorem
β {X : Type u_1} {Y : Type u_2} (z : X) (u v : Y), singCubeβ z u v z = pairOfβ u vUses
Used by
- DeclsingCube_mem_pairCubesDeclaration kindtheorem
β {X : Type u_1} {Y : Type u_2} {π : Set (X β Y)} {S : Set X} {u v : Y} {z : X}, z β S β (β c β π, c z = u) β (β c β π, c z = v) β singCubeβ z u v β pairCubes π S - DeclpairSupport_singCubeDeclaration kindtheorem
β {X : Type u_1} {Y : Type u_2} {u v : Y} (z : X), u β v β pairSupport (singCubeβ z u v) = {z} - Declexists_injOn_pairCubesDeclaration kindtheorem
The whole accounting, as one injection from traces to cubes.
At a point where two traces differ, every realised value gets its own branch, and a trace is routed by the value it takes there. The branch injections supplied by the induction hypothesis land in cubes that avoid that point, and a cube pair-shattered by
ΞΌbranches carriesΞΌtraces intoΞΌof the1 + ΞΌ.choose 2cubes available above it: the cube itself for the branch selected as the anchor, and one graft for each of the otherΞΌ - 1. Injectivity is read off the graft, sincepairOf u Β·is injective and the pattern below the new point is recovered by evaluating away from it.β {X : Type u_1} {Y : Type u_2} (S : Set X) (N : β) (π : Set (X β Y)), (S.restrict '' π).Finite β (S.restrict '' π).ncard β€ N β β Ο, Set.MapsTo Ο (S.restrict '' π) (pairCubes π S) β§ Set.InjOn Ο (S.restrict '' π)Uses
- DeclpairOf_right_injectiveDeclaration kindtheorem
β {Y : Type u_2} (u : Y), Function.Injective (pairOfβ u)Uses
- Declncard_image_restrict_sep_ltDeclaration kindtheorem
Splitting off one realised value at a point of
Swhere the family is not constant strictly lowers the number of traces, because a second value survives outside the branch.β {X : Type u_1} {Y : Type u_2} {π : Set (X β Y)} {S : Set X} {x : X} {u : Y}, x β S β β {c : X β Y}, c β π β c x β u β (S.restrict '' π).Finite β (S.restrict '' {d | d β π β§ d x = u}).ncard < (S.restrict '' π).ncardUsed by
- Decldisjoint_image_restrict_sepDeclaration kindtheorem
Two branches at one point of
Scut disjoint families of traces.β {X : Type u_1} {Y : Type u_2} {π : Set (X β Y)} {S : Set X} {x : X} {u v : Y}, x β S β u β v β Disjoint (S.restrict '' {d | d β π β§ d x = u}) (S.restrict '' {d | d β π β§ d x = v})Used by
- Declmem_pairCubes_graft_pairOfDeclaration kindtheorem
β {X : Type u_1} {Y : Type u_2} {π : Set (X β Y)} {S : Set X} {P : X β Set Y} {x : X} {u v : Y}, x β S β P β pairCubes {c | c β π β§ c x = u} S β P β pairCubes {c | c β π β§ c x = v} S β graft P x (pairOfβ u v) β pairCubes π SUses
- DeclpairSupport_graft_subsetDeclaration kindtheorem
β {X : Type u_1} {Y : Type u_2} {S : Set X} {P : X β Set Y} {x : X}, x β S β pairSupport P β S β β (s : Set Y), pairSupport (graft P x s) β SUses
Used by
- DeclpairShatters_graftDeclaration kindtheorem
The graft. A pattern pair-shattered by the branch at
aand by the branch atbextends by one unconstrained point carrying the pair{a, b}there to a pattern pair-shattered by the whole family. The selection at the new point names the branch that realises it. This is the multiclass exchange step, and it mirrorsShatters.insert.The two labels are not required to differ. Distinctness is what makes the result a pair pattern, and it enters at
mem_pairCubes_graft_pairOf, not here.β {X : Type u_1} {Y : Type u_2} {π : Set (X β Y)} {P : X β Set Y} {x : X} {a b : Y}, P x = β β PairShatters {c | c β π β§ c x = a} P β PairShatters {c | c β π β§ c x = b} P β PairShatters π (graft P x {a, b})Used by
- DeclpairSupport_graftDeclaration kindtheorem
β {X : Type u_1} {Y : Type u_2} (P : X β Set Y) (x : X) {s : Set Y}, s.Nonempty β pairSupport (graft P x s) = insert x (pairSupport P) - DeclpairOf_isPairPatternDeclaration kindtheorem
β {Y : Type u_2} (u v : Y), pairOfβ u v = β β¨ (pairOfβ u v).encard = 2Used by
- DeclpairOf_selfDeclaration kindtheorem
β {Y : Type u_2} {u v : Y}, u = v β pairOfβ u v = β - DeclpairOf_of_neDeclaration kindtheorem
β {Y : Type u_2} {u v : Y}, u β v β pairOfβ u v = {u, v} - DeclisPairPattern_graftDeclaration kindtheorem
β {X : Type u_1} {Y : Type u_2} {P : X β Set Y}, IsPairPattern P β β (x : X) {s : Set Y}, s = β β¨ s.encard = 2 β IsPairPattern (graft P x s)Used by
- Declgraft_empty_selfDeclaration kindtheorem
β {X : Type u_1} {Y : Type u_2} {P : X β Set Y} {x : X}, P x = β β graft P x β = PUsed by
- DeclPairShatters.monoDeclaration kindtheorem
β {X : Type u_1} {Y : Type u_2} {π π : Set (X β Y)} {P : X β Set Y}, π β π β PairShatters π P β PairShatters π PUsed by
- Declgraft_eq_graftDeclaration kindtheorem
β {X : Type u_1} {Y : Type u_2} {P P' : X β Set Y} {x : X}, P x = β β P' x = β β β {s s' : Set Y}, graft P x s = graft P' x s' β P = P' β§ s = s'Used by
- Declgraft_selfDeclaration kindtheorem
β {X : Type u_1} {Y : Type u_2} (P : X β Set Y) (x : X) (s : Set Y), graft P x s x = s - Declgraft_of_neDeclaration kindtheorem
β {X : Type u_1} {Y : Type u_2} {x z : X} (P : X β Set Y) (s : Set Y), z β x β graft P x s z = P z - Declexists_sel_atDeclaration kindtheorem
The single-point case: an admissible label at
xextends to a selection taking it there.β {X : Type u_1} {Y : Type u_2} {P : X β Set Y} {x : X} {u : Y}, u β P x β β Ο, Ο x = u β§ β β¦z : Xβ¦, z β pairSupport P β Ο z β P zUses
- Declexists_selDeclaration kindtheorem
A choice of admissible labels prescribed on part of the domain extends to a selection for the whole pattern. The prescribed values arrive as a total function, so off the support there is always a label to copy and no hypothesis on
Yis needed.β {X : Type u_1} {Y : Type u_2} {P : X β Set Y} {B : Set X} {Ο : X β Y}, (β β¦z : Xβ¦, z β B β z β pairSupport P β Ο z β P z) β β Ο, (β β¦z : Xβ¦, z β pairSupport P β Ο z β P z) β§ Set.EqOn Ο Ο BUsed by
- Declexists_injOn_of_subsingletonDeclaration kindtheorem
β {X : Type u_1} {Y : Type u_2} {π : Set (X β Y)} {S : Set X}, (S.restrict '' π).Subsingleton β β Ο, Set.MapsTo Ο (S.restrict '' π) (pairCubes π S) β§ Set.InjOn Ο (S.restrict '' π)Used by
- Declconst_empty_mem_pairCubesDeclaration kindtheorem
The unconstrained pattern is a cube of every nonempty family. It is the multiclass reading of
shatters_bot.β {X : Type u_1} {Y : Type u_2} {π : Set (X β Y)} (S : Set X), π.Nonempty β (fun x => β ) β pairCubes π S - DeclpairSupport_const_emptyDeclaration kindtheorem
β {X : Type u_1} {Y : Type u_2}, (pairSupport fun x => β ) = β - DefinitionIsPairPatterndef
A pattern is a pair pattern when it offers either no constraint or exactly two labels at each point. The two labels are recorded as a set, so their order carries no information.
{X : Type u_1} β {Y : Type u_2} β (X β Set Y) β Prop - DefinitionPairShattersdef
A family pair-shatters a pattern when every choice of one admissible label per constrained point is realised by some member.
{X : Type u_1} β {Y : Type u_2} β Set (X β Y) β (X β Set Y) β Prop - Definitiongraftdef
Overwrite a pattern at one point. Stated without a decidable equality on
X, since the two branches are separated by a hypothesis rather than by a test.{X : Type u_1} β {Y : Type u_2} β (X β Set Y) β X β Set Y β X β Set Y - DefinitionpairCubesdef
The pair-cubes of
πoverS: pair patterns supported insideSand pair-shattered byπ.{X : Type u_1} β {Y : Type u_2} β Set (X β Y) β Set X β Set (X β Set Y) - DefinitionpairOfdef
The unordered pair
{u, v}, degenerating to the empty set whenu = v. Carrying the degenerate case inside the pair lets one formula cover both branches of the injection.{Y : Type u_2} β Y β Y β Set Y - DefinitionpairSupportdef
The points at which a pattern constrains a concept.
{X : Type u_1} β {Y : Type u_2} β (X β Set Y) β Set X - DefinitionsingCubedef
The cube supported at the single point
z, offering the labelsuandvthere.{X : Type u_1} β {Y : Type u_2} β X β Y β Y β X β Set Y
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
- fd764e365885
- Verified
- 2026-09-24T00:00:00Z