Vandermonde Count for Subsets of an Intersection
ProvedFunctionalInequalities.Analysis.Tensor.sum_choose_mul_card_filter_subset_readableThis is a finite-set identity expressing a Vandermonde convolution for two fixed subsets.
Let be a type with decidable equality, let be a finite subset of , let be a natural number, and let be -element subsets of . For each natural number from through , count the -element subsets of satisfying . Then
This identity is a reusable combinatorial summation formula, with the summands counting subsets of the intersection and weighting them by binomial coefficients.
Formalization Note The summation is implemented over Finset.range (d + 1), and the counted families use Finset.powersetCard followed by Finset.filter; binomial coefficients are represented by Nat.choose.
Original Lean declaration header
Within namespace FunctionalInequalities.Analysis.Tensor. Shown in its original module context. Proof omitted.
theorem sum_choose_mul_card_filter_subset (U : Finset α) {d : ℕ} {F F' : Finset α}
(hF : F ∈ U.powersetCard d) (hF' : F' ∈ U.powersetCard d) :
∑ s ∈ range (d + 1), d.choose s * ((U.powersetCard s).filter fun S => S ⊆ F ∩ F').card =
(d + (F ∩ F').card).choose d
Module navigation
Module: Analysis/Tensor/Symmetrization.
Previous: card_filter_union_subset · Next: sum_norm_sq_sum_filter.
Source excerpt, lines 196–199 · Frozen source 408915f.
import Definitions.Def_KLSModular_FunctionalInequalities_Analysis_Tensor_Symmetrization
open Finset
variable {α : Type*} [DecidableEq α]
theorem FunctionalInequalities.Analysis.Tensor.sum_choose_mul_card_filter_subset_readable (U : Finset α) {d : ℕ} {F F' : Finset α}
(hF : F ∈ U.powersetCard d) (hF' : F' ∈ U.powersetCard d) :
∑ s ∈ range (d + 1), d.choose s * ((U.powersetCard s).filter fun S => S ⊆ F ∩ F').card =
(d + (F ∩ F').card).choose d := by sorry