Skip to content

feat(Combinatorics/SetFamily): Assouad's dual VC bound#38319

Open
Zetetic-Dhruv wants to merge 1 commit intoleanprover-community:masterfrom
Zetetic-Dhruv:dhruvgupta-zetesis/assouad-dual-vc
Open

feat(Combinatorics/SetFamily): Assouad's dual VC bound#38319
Zetetic-Dhruv wants to merge 1 commit intoleanprover-community:masterfrom
Zetetic-Dhruv:dhruvgupta-zetesis/assouad-dual-vc

Conversation

@Zetetic-Dhruv
Copy link
Copy Markdown

Adds the Finset-level form of Assouad's 1983 dual VC bound: if a family
𝒜 : Finset (Finset α) has VC dimension at most d, then for any
ground set X : Finset α the dual family
{𝒜.filter (· ∋ x) : x ∈ X} has VC dimension at most 2 ^ (d + 1) - 1.

New declarations (in Finset namespace):

  • dualFamily 𝒜 X: for each x ∈ X, the subfamily {A ∈ 𝒜 | x ∈ A}
  • mem_dualFamily (@[simp]): membership characterisation
  • exists_shatters_of_dualFamily_shatters: Assouad's bitstring-coding lemma
  • vcDim_dualFamily_le: the headline VC bound

Proof by Assouad's classical bitstring-coding argument. Sits on top of Finset.shatterer / Finset.vcDim from
Mathlib.Combinatorics.SetFamily.Shatter.

References:

  • P. Assouad, Densite et dimension, Ann. Inst. Fourier 33(3) (1983), Thm 2.13
  • J. Matousek, Lectures on Discrete Geometry, GTM 212, Springer, 2002, Section 10.3 Lemma 10.3.3

Open in Gitpod

Adds the Finset-level form of Assouad's 1983 dual VC bound: if a family
`𝒜 : Finset (Finset α)` has VC dimension at most `d`, then for any
ground set `X : Finset α` the dual family
`{𝒜.filter (· ∋ x) : x ∈ X}` has VC dimension at most `2 ^ (d + 1) - 1`.

New declarations (in `Finset` namespace):
- `dualFamily 𝒜 X`: for each `x ∈ X`, the subfamily `{A ∈ 𝒜 | x ∈ A}`
- `mem_dualFamily` (`@[simp]`): membership characterisation
- `exists_shatters_of_dualFamily_shatters`: Assouad's bitstring-coding lemma
- `vcDim_dualFamily_le`: the headline VC bound

Proof by Assouad's classical bitstring-coding argument. Sits on top of
`Finset.shatterer` / `Finset.vcDim` from
`Mathlib.Combinatorics.SetFamily.Shatter`.

References:
- P. Assouad, Densite et dimension, Ann. Inst. Fourier 33(3) (1983), Thm 2.13
- J. Matousek, Lectures on Discrete Geometry, GTM 212, Springer, 2002,
  Section 10.3 Lemma 10.3.3
@github-actions github-actions bot added the new-contributor This PR was made by a contributor with at most 5 merged PRs. Welcome to the community! label Apr 20, 2026
@github-actions
Copy link
Copy Markdown

Welcome new contributor!

Thank you for contributing to Mathlib! If you haven't done so already, please review our contribution guidelines, as well as the style guide and naming conventions. In particular, we kindly remind contributors that we have guidelines regarding the use of AI when making pull requests.

We use a review queue to manage reviews. If your PR does not appear there, it is probably because it is not successfully building (i.e., it doesn't have a green checkmark), has the awaiting-author tag, or another reason described in the Lifecycle of a PR. The review dashboard has a dedicated webpage which shows whether your PR is on the review queue, and (if not), why.

If you haven't already done so, please come to https://leanprover.zulipchat.com/, introduce yourself, and mention your new PR.

Thank you again for joining our community.

@github-actions
Copy link
Copy Markdown

PR summary 98261a9c88

Import changes for modified files

No significant changes to the import graph

Import changes for all files
Files Import difference
Mathlib.Combinatorics.SetFamily.DualVC (new file) 580

Declarations diff

+ dualFamily
+ exists_shatters_of_dualFamily_shatters
+ mem_dualFamily
+ vcDim_dualFamily_le

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).

@github-actions github-actions bot added the t-combinatorics Combinatorics label Apr 20, 2026
@Zetetic-Dhruv
Copy link
Copy Markdown
Author

@Shreyas4991 I have added the PR. Can you review it?

@Shreyas4991
Copy link
Copy Markdown
Collaborator

Will do sometime in the next 24 hours.

@Zetetic-Dhruv
Copy link
Copy Markdown
Author

Okay, thanks a lot. Let me know if I need to update anything.

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

Labels

new-contributor This PR was made by a contributor with at most 5 merged PRs. Welcome to the community! t-combinatorics Combinatorics

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants