Documentation

Mathlib.Combinatorics.SetFamily.AhlswedeZhang

The Ahlswede-Zhang identity #

This file proves the Ahlswede-Zhang identity, which is a nontrivial relation between the size of the "truncated unions" of a set family. It sharpens the Lubell-Yamamoto-Meshalkin inequality Finset.sum_card_slice_div_choose_le_one, by making explicit the correction term.

For a set family 𝒜 over a ground set of size n, the Ahlswede-Zhang identity states that the sum of |⋂ B ∈ 𝒜, B ⊆ A, B|/(|A| * n.choose |A|) over all set A is exactly 1. This implies the LYM inequality since for an antichain 𝒜 and every A ∈ 𝒜 we have |⋂ B ∈ 𝒜, B ⊆ A, B|/(|A| * n.choose |A|) = 1 / n.choose |A|.

Main declarations #

References #

Truncated supremum, truncated infimum #

def Finset.truncatedSup {α : Type u_1} [SemilatticeSup α] [OrderTop α] [DecidableRel fun (x x_1 : α) => x x_1] (s : Finset α) (a : α) :
α

The supremum of the elements of s less than a if there are some, otherwise .

Equations
Instances For
    theorem Finset.truncatedSup_of_mem {α : Type u_1} [SemilatticeSup α] [OrderTop α] [DecidableRel fun (x x_1 : α) => x x_1] {s : Finset α} {a : α} (h : a lowerClosure s) :
    Finset.truncatedSup s a = Finset.sup' (Finset.filter (fun (b : α) => a b) s) (_ : (Finset.filter (fun (b : α) => a b) s).Nonempty) id
    theorem Finset.truncatedSup_of_not_mem {α : Type u_1} [SemilatticeSup α] [OrderTop α] [DecidableRel fun (x x_1 : α) => x x_1] {s : Finset α} {a : α} (h : alowerClosure s) :
    @[simp]
    theorem Finset.truncatedSup_empty {α : Type u_1} [SemilatticeSup α] [OrderTop α] [DecidableRel fun (x x_1 : α) => x x_1] (a : α) :
    @[simp]
    theorem Finset.truncatedSup_singleton {α : Type u_1} [SemilatticeSup α] [OrderTop α] [DecidableRel fun (x x_1 : α) => x x_1] (b : α) (a : α) :
    Finset.truncatedSup {b} a = if a b then b else
    theorem Finset.le_truncatedSup {α : Type u_1} [SemilatticeSup α] [OrderTop α] [DecidableRel fun (x x_1 : α) => x x_1] {s : Finset α} {a : α} :
    theorem Finset.map_truncatedSup {α : Type u_1} {β : Type u_2} [SemilatticeSup α] [OrderTop α] [DecidableRel fun (x x_1 : α) => x x_1] [SemilatticeSup β] [BoundedOrder β] [DecidableRel fun (x x_1 : β) => x x_1] (e : α ≃o β) (s : Finset α) (a : α) :
    theorem Finset.truncatedSup_union {α : Type u_1} [SemilatticeSup α] [OrderTop α] [DecidableRel fun (x x_1 : α) => x x_1] {s : Finset α} {t : Finset α} {a : α} [DecidableEq α] (hs : a lowerClosure s) (ht : a lowerClosure t) :
    theorem Finset.truncatedSup_union_left {α : Type u_1} [SemilatticeSup α] [OrderTop α] [DecidableRel fun (x x_1 : α) => x x_1] {s : Finset α} {t : Finset α} {a : α} [DecidableEq α] (hs : a lowerClosure s) (ht : alowerClosure t) :
    theorem Finset.truncatedSup_union_right {α : Type u_1} [SemilatticeSup α] [OrderTop α] [DecidableRel fun (x x_1 : α) => x x_1] {s : Finset α} {t : Finset α} {a : α} [DecidableEq α] (hs : alowerClosure s) (ht : a lowerClosure t) :
    theorem Finset.truncatedSup_union_of_not_mem {α : Type u_1} [SemilatticeSup α] [OrderTop α] [DecidableRel fun (x x_1 : α) => x x_1] {s : Finset α} {t : Finset α} {a : α} [DecidableEq α] (hs : alowerClosure s) (ht : alowerClosure t) :
    theorem Finset.truncatedSup_of_isAntichain {α : Type u_1} [SemilatticeSup α] [OrderTop α] [DecidableRel fun (x x_1 : α) => x x_1] {s : Finset α} {a : α} (hs : IsAntichain (fun (x x_1 : α) => x x_1) s) (ha : a s) :
    def Finset.truncatedInf {α : Type u_1} [SemilatticeInf α] [BoundedOrder α] [DecidableRel fun (x x_1 : α) => x x_1] (s : Finset α) (a : α) :
    α

    The infimum of the elements of s less than a if there are some, otherwise .

    Equations
    Instances For
      theorem Finset.truncatedInf_of_mem {α : Type u_1} [SemilatticeInf α] [BoundedOrder α] [DecidableRel fun (x x_1 : α) => x x_1] {s : Finset α} {a : α} (h : a upperClosure s) :
      Finset.truncatedInf s a = Finset.inf' (Finset.filter (fun (x : α) => x a) s) (_ : (Finset.filter (fun (x : α) => x a) s).Nonempty) id
      theorem Finset.truncatedInf_of_not_mem {α : Type u_1} [SemilatticeInf α] [BoundedOrder α] [DecidableRel fun (x x_1 : α) => x x_1] {s : Finset α} {a : α} (h : aupperClosure s) :
      theorem Finset.truncatedInf_le {α : Type u_1} [SemilatticeInf α] [BoundedOrder α] [DecidableRel fun (x x_1 : α) => x x_1] {s : Finset α} {a : α} :
      @[simp]
      theorem Finset.truncatedInf_empty {α : Type u_1} [SemilatticeInf α] [BoundedOrder α] [DecidableRel fun (x x_1 : α) => x x_1] (a : α) :
      @[simp]
      theorem Finset.truncatedInf_singleton {α : Type u_1} [SemilatticeInf α] [BoundedOrder α] [DecidableRel fun (x x_1 : α) => x x_1] (b : α) (a : α) :
      Finset.truncatedInf {b} a = if b a then b else
      theorem Finset.map_truncatedInf {α : Type u_1} {β : Type u_2} [SemilatticeInf α] [BoundedOrder α] [DecidableRel fun (x x_1 : α) => x x_1] [SemilatticeInf β] [BoundedOrder β] [DecidableRel fun (x x_1 : β) => x x_1] (e : α ≃o β) (s : Finset α) (a : α) :
      theorem Finset.truncatedInf_union {α : Type u_1} [SemilatticeInf α] [BoundedOrder α] [DecidableRel fun (x x_1 : α) => x x_1] {s : Finset α} {t : Finset α} {a : α} [DecidableEq α] (hs : a upperClosure s) (ht : a upperClosure t) :
      theorem Finset.truncatedInf_union_left {α : Type u_1} [SemilatticeInf α] [BoundedOrder α] [DecidableRel fun (x x_1 : α) => x x_1] {s : Finset α} {t : Finset α} {a : α} [DecidableEq α] (hs : a upperClosure s) (ht : aupperClosure t) :
      theorem Finset.truncatedInf_union_right {α : Type u_1} [SemilatticeInf α] [BoundedOrder α] [DecidableRel fun (x x_1 : α) => x x_1] {s : Finset α} {t : Finset α} {a : α} [DecidableEq α] (hs : aupperClosure s) (ht : a upperClosure t) :
      theorem Finset.truncatedInf_union_of_not_mem {α : Type u_1} [SemilatticeInf α] [BoundedOrder α] [DecidableRel fun (x x_1 : α) => x x_1] {s : Finset α} {t : Finset α} {a : α} [DecidableEq α] (hs : aupperClosure s) (ht : aupperClosure t) :
      theorem Finset.truncatedInf_of_isAntichain {α : Type u_1} [SemilatticeInf α] [BoundedOrder α] [DecidableRel fun (x x_1 : α) => x x_1] {s : Finset α} {a : α} (hs : IsAntichain (fun (x x_1 : α) => x x_1) s) (ha : a s) :
      theorem Finset.truncatedSup_infs {α : Type u_1} [DistribLattice α] [BoundedOrder α] [DecidableEq α] [DecidableRel fun (x x_1 : α) => x x_1] {s : Finset α} {t : Finset α} {a : α} (hs : a lowerClosure s) (ht : a lowerClosure t) :
      theorem Finset.truncatedInf_sups {α : Type u_1} [DistribLattice α] [BoundedOrder α] [DecidableEq α] [DecidableRel fun (x x_1 : α) => x x_1] {s : Finset α} {t : Finset α} {a : α} (hs : a upperClosure s) (ht : a upperClosure t) :
      theorem Finset.truncatedSup_infs_of_not_mem {α : Type u_1} [DistribLattice α] [BoundedOrder α] [DecidableEq α] [DecidableRel fun (x x_1 : α) => x x_1] {s : Finset α} {t : Finset α} {a : α} (ha : alowerClosure s lowerClosure t) :
      theorem Finset.truncatedInf_sups_of_not_mem {α : Type u_1} [DistribLattice α] [BoundedOrder α] [DecidableEq α] [DecidableRel fun (x x_1 : α) => x x_1] {s : Finset α} {t : Finset α} {a : α} (ha : aupperClosure s upperClosure t) :
      @[simp]
      theorem Finset.compl_truncatedSup {α : Type u_1} [BooleanAlgebra α] [DecidableRel fun (x x_1 : α) => x x_1] (s : Finset α) (a : α) :
      @[simp]
      theorem Finset.compl_truncatedInf {α : Type u_1} [BooleanAlgebra α] [DecidableRel fun (x x_1 : α) => x x_1] (s : Finset α) (a : α) :
      theorem Finset.card_truncatedSup_union_add_card_truncatedSup_infs {α : Type u_1} [DecidableEq α] [Fintype α] (𝒜 : Finset (Finset α)) (ℬ : Finset (Finset α)) (s : Finset α) :
      (Finset.truncatedSup (𝒜 ) s).card + (Finset.truncatedSup (𝒜 ) s).card = (Finset.truncatedSup 𝒜 s).card + (Finset.truncatedSup s).card
      theorem Finset.card_truncatedInf_union_add_card_truncatedInf_sups {α : Type u_1} [DecidableEq α] [Fintype α] (𝒜 : Finset (Finset α)) (ℬ : Finset (Finset α)) (s : Finset α) :
      (Finset.truncatedInf (𝒜 ) s).card + (Finset.truncatedInf (𝒜 ) s).card = (Finset.truncatedInf 𝒜 s).card + (Finset.truncatedInf s).card
      def AhlswedeZhang.infSum {α : Type u_1} [Fintype α] [DecidableEq α] (𝒜 : Finset (Finset α)) :

      Weighted sum of the size of the truncated infima of a set family. Relevant to the Ahlswede-Zhang identity.

      Equations
      Instances For
        def AhlswedeZhang.supSum {α : Type u_1} [Fintype α] [DecidableEq α] (𝒜 : Finset (Finset α)) :

        Weighted sum of the size of the truncated suprema of a set family. Relevant to the Ahlswede-Zhang identity.

        Equations
        Instances For
          theorem AhlswedeZhang.IsAntichain.le_infSum {α : Type u_1} [Fintype α] [DecidableEq α] {𝒜 : Finset (Finset α)} (h𝒜 : IsAntichain (fun (x x_1 : Finset α) => x x_1) 𝒜) (h𝒜₀ : 𝒜) :
          (Finset.sum 𝒜 fun (s : Finset α) => ((Nat.choose (Fintype.card α) s.card))⁻¹) AhlswedeZhang.infSum 𝒜
          @[simp]
          theorem AhlswedeZhang.supSum_singleton {α : Type u_1} [Fintype α] [DecidableEq α] {s : Finset α} [Nonempty α] (hs : s Finset.univ) :

          The Ahlswede-Zhang Identity.

          theorem AhlswedeZhang.supSum_of_not_univ_mem {α : Type u_1} [Fintype α] [DecidableEq α] {𝒜 : Finset (Finset α)} [Nonempty α] (h𝒜₁ : 𝒜.Nonempty) (h𝒜₂ : Finset.univ𝒜) :
          theorem AhlswedeZhang.infSum_eq_one {α : Type u_1} [Fintype α] [DecidableEq α] {𝒜 : Finset (Finset α)} [Nonempty α] (h𝒜₁ : 𝒜.Nonempty) (h𝒜₀ : 𝒜) :

          The Ahlswede-Zhang Identity.