Catalog/VC/EpsilonNet/Contract.lean
1import Mathlib.Combinatorics.SetFamily.Shatter
2import Mathlib.Analysis.SpecialFunctions.Log.Basic
3
4namespace Catalog.VC.EpsilonNet
5
6variable {α : Type*} [DecidableEq α] [Fintype α]
7
8/-- `N` is an `ε`-net for set family `𝒜` under the uniform distribution
9 on the finite ground set `α`. Every `S ∈ 𝒜` whose density
10 `|S| / |α| ≥ ε` satisfies `N ∩ S ≠ ∅`. -/
11def IsEpsilonNet (𝒜 : Finset (Finset α)) (ε : ℝ) (N : Finset α) : Prop :=
12 ∀ S ∈ 𝒜, ε * (Fintype.card α : ℝ) ≤ (S.card : ℝ) → (N ∩ S).Nonempty
13
14end Catalog.VC.EpsilonNet
15