Documentation

Mathlib.Data.Multiset.Powerset

The powerset of a multiset #

powerset #

def Multiset.powersetAux {α : Type u_1} (l : List α) :

A helper function for the powerset of a multiset. Given a list l, returns a list of sublists of l as multisets.

Equations
Instances For
    @[simp]
    theorem Multiset.mem_powersetAux {α : Type u_1} {l : List α} {s : Multiset α} :
    def Multiset.powersetAux' {α : Type u_1} (l : List α) :

    Helper function for the powerset of a multiset. Given a list l, returns a list of sublists of l (using sublists'), as multisets.

    Equations
    Instances For
      @[simp]
      theorem Multiset.powerset_aux'_perm {α : Type u_1} {l₁ : List α} {l₂ : List α} (p : l₁ ~ l₂) :
      theorem Multiset.powersetAux_perm {α : Type u_1} {l₁ : List α} {l₂ : List α} (p : l₁ ~ l₂) :
      def Multiset.powerset {α : Type u_1} (s : Multiset α) :

      The power set of a multiset.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        theorem Multiset.powerset_coe {α : Type u_1} (l : List α) :
        Multiset.powerset l = ↑(List.map Multiset.ofList (List.sublists l))
        @[simp]
        theorem Multiset.powerset_coe' {α : Type u_1} (l : List α) :
        Multiset.powerset l = ↑(List.map Multiset.ofList (List.sublists' l))
        @[simp]
        @[simp]
        theorem Multiset.mem_powerset {α : Type u_1} {s : Multiset α} {t : Multiset α} :
        @[simp]
        theorem Multiset.card_powerset {α : Type u_1} (s : Multiset α) :
        Multiset.card (Multiset.powerset s) = 2 ^ Multiset.card s
        theorem Multiset.revzip_powersetAux {α : Type u_1} {l : List α} ⦃x : Multiset α × Multiset α (h : x List.revzip (Multiset.powersetAux l)) :
        x.fst + x.snd = l
        theorem Multiset.revzip_powersetAux' {α : Type u_1} {l : List α} ⦃x : Multiset α × Multiset α (h : x List.revzip (Multiset.powersetAux' l)) :
        x.fst + x.snd = l
        theorem Multiset.revzip_powersetAux_lemma {α : Type u} [DecidableEq α] (l : List α) {l' : List (Multiset α)} (H : ∀ ⦃x : Multiset α × Multiset α⦄, x List.revzip l'x.fst + x.snd = l) :
        List.revzip l' = List.map (fun x => (x, l - x)) l'
        theorem Multiset.revzip_powersetAux_perm {α : Type u_1} {l₁ : List α} {l₂ : List α} (p : l₁ ~ l₂) :

        powersetLen #

        def Multiset.powersetLenAux {α : Type u_1} (n : ) (l : List α) :

        Helper function for powersetLen. Given a list l, powersetLenAux n l is the list of sublists of length n, as multisets.

        Equations
        Instances For
          theorem Multiset.powersetLenAux_eq_map_coe {α : Type u_1} {n : } {l : List α} :
          @[simp]
          theorem Multiset.mem_powersetLenAux {α : Type u_1} {n : } {l : List α} {s : Multiset α} :
          s Multiset.powersetLenAux n l s l Multiset.card s = n
          @[simp]
          theorem Multiset.powersetLenAux_zero {α : Type u_1} (l : List α) :
          @[simp]
          theorem Multiset.powersetLenAux_nil {α : Type u_1} (n : ) :
          @[simp]
          theorem Multiset.powersetLenAux_perm {α : Type u_1} {n : } {l₁ : List α} {l₂ : List α} (p : l₁ ~ l₂) :
          def Multiset.powersetLen {α : Type u_1} (n : ) (s : Multiset α) :

          powersetLen n s is the multiset of all submultisets of s of length n.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            theorem Multiset.powersetLen_coe {α : Type u_1} (n : ) (l : List α) :
            Multiset.powersetLen n l = ↑(List.map Multiset.ofList (List.sublistsLen n l))
            @[simp]
            @[simp]
            @[simp]
            theorem Multiset.mem_powersetLen {α : Type u_1} {n : } {s : Multiset α} {t : Multiset α} :
            s Multiset.powersetLen n t s t Multiset.card s = n
            @[simp]
            theorem Multiset.card_powersetLen {α : Type u_1} (n : ) (s : Multiset α) :
            Multiset.card (Multiset.powersetLen n s) = Nat.choose (Multiset.card s) n
            theorem Multiset.powersetLen_mono {α : Type u_1} (n : ) {s : Multiset α} {t : Multiset α} (h : s t) :
            @[simp]
            theorem Multiset.powersetLen_empty {α : Type u_2} (n : ) {s : Multiset α} (h : Multiset.card s < n) :
            @[simp]
            theorem Multiset.powersetLen_card_add {α : Type u_1} (s : Multiset α) {i : } (hi : 0 < i) :
            Multiset.powersetLen (Multiset.card s + i) s = 0
            theorem Multiset.powersetLen_map {α : Type u_1} {β : Type u_2} (f : αβ) (n : ) (s : Multiset α) :
            theorem Multiset.bind_powerset_len {α : Type u_2} (S : Multiset α) :
            (Multiset.bind (Multiset.range (Multiset.card S + 1)) fun k => Multiset.powersetLen k S) = Multiset.powerset S

            Alias of the forward direction of Multiset.nodup_powerset.

            Alias of the reverse direction of Multiset.nodup_powerset.