Counting via involutions #
If σ is an involution on a finset s and every orbit {x, σ x} meets a
predicate p, then at least half of s satisfies p. This is the
combinatorial core of pairing arguments such as the Ehrenfeucht–Haussler–
Kearns–Valiant lower bound on PAC sample complexity.
Main statements #
Finset.card_filter_not_le_card_filter_of_involution: the elements ofsfailingpinject viaσinto those satisfyingp.Finset.card_div_two_le_card_filter_of_involution: at least half ofssatisfiesp.
theorem Finset.card_filter_not_le_card_filter_of_involution {α : Type u_1} {s : Finset α} {σ : α → α} {p : α → Prop} [DecidablePred p] (hσ : ∀ x ∈ s, σ (σ x) = x) (hσs : ∀ x ∈ s, σ x ∈ s) (hp : ∀ x ∈ s, p x ∨ p (σ x)) :
If σ is an involution on s and every orbit {x, σ x} meets p, then
σ injects the elements of s failing p into those satisfying p.
theorem Finset.card_div_two_le_card_filter_of_involution {α : Type u_1} {s : Finset α} {σ : α → α} {p : α → Prop} [DecidablePred p] (hσ : ∀ x ∈ s, σ (σ x) = x) (hσs : ∀ x ∈ s, σ x ∈ s) (hp : ∀ x ∈ s, p x ∨ p (σ x)) :
If σ is an involution on s and every orbit {x, σ x} meets p, then
at least half of s satisfies p.