Kruskal-Katona upper-shadow core #
This file proves the set-family upper-shadow minimization theorem used by the Boolean-isoperimetry argument.
The family of all r-element vertices in the N-cube.
Equations
- BooleanIsoperimetry.layer N r = {x : BooleanIsoperimetry.Cube N | Finset.card x = r}
Instances For
Local numeric upper-shadow value (identical to Shadow.upperShadow but defined
here so the Kruskal–Katona core is strictly upstream of Shadow.lean):
upperShadowVal N r t = H N (binomPrefix N r + t) - binomPrefix N (r+1).
Equations
- BooleanIsoperimetry.upperShadowVal N r t = BooleanIsoperimetry.H N (BooleanIsoperimetry.binomPrefix N r + t) - BooleanIsoperimetry.binomPrefix N (r + 1)
Instances For
The layer-r part of the simplicial initial segment with local size t.
Equations
- BooleanIsoperimetry.layerInitSeg N r t = {x ∈ BooleanIsoperimetry.simplicialInitSeg N (BooleanIsoperimetry.binomPrefix N r + t) | Finset.card x = r}
Instances For
The layer-r + 1 upper shadow of a uniform family in layer r.
Equations
- BooleanIsoperimetry.upperLayerShadow N r A = {x ∈ A.upShadow | Finset.card x = r + 1}
Instances For
Kruskal--Katona upper-shadow minimization in project language #
The next theorem is the single-layer Macaulay/Kruskal--Katona input needed by
the Frankl--Füredi paired-compression layer. It is deliberately stated with the
real set-family upper shadow upperLayerShadow, not the numerical
upperShadow wrapper.
The complement of a simplicial layer initial segment is a colex initial segment. This is the remaining order-orientation bridge needed to feed the project's layer initial segments into mathlib's lower-shadow Kruskal--Katona theorem.
On a fixed Hamming layer, the project order takes larger binary/colex values
first; complementation changes a larger r-set value into a smaller
(N-r)-set value. Thus complements of project initial segments are ordinary
colex initial segments.
Upper-shadow Kruskal--Katona target. Among all r-uniform families in
the N-cube with the same cardinality, the simplicial layer initial segment has
minimum upper shadow in layer r+1.
This is the project-language form of the mathlib KK theorem transported from lower shadows through complementation, with the fixed-card simplicial order identified with the corresponding colex/opposite-colex layer order.
Numeric corollary of upperLayerShadow_min: the numerical scaffold
upperShadow is bounded by the actual upper shadow of every same-size
r-uniform family.