Documentation

Mathlib.Combinatorics.Enumerative.Partition

Partitions #

A partition of a natural number n is a way of writing n as a sum of positive integers, where the order does not matter: two sums that differ only in the order of their summands are considered the same partition. This notion is closely related to that of a composition of n, but in a composition of n the order does matter. A summand of the partition is called a part.

Main functions #

Implementation details #

The main motivation for this structure and its API is to show Euler's partition theorem, and related results.

The representation of a partition as a multiset is very handy as multisets are very flexible and already have a well-developed API.

TODO #

Link this to Young diagrams.

Tags #

Partition

References #

https://en.wikipedia.org/wiki/Partition_(number_theory)

structure Nat.Partition (n : ) :

A partition of n is a multiset of positive integers summing to n.

Instances For
    theorem Nat.Partition.ext {n : } {x y : n.Partition} (parts : x.parts = y.parts) :
    x = y
    theorem Nat.Partition.ext_iff {n : } {x y : n.Partition} :
    x = y x.parts = y.parts

    A composition induces a partition (just convert the list to a multiset).

    Equations
      Instances For
        def Nat.Partition.ofSums (n : ) (l : Multiset ) (hl : l.sum = n) :

        Given a multiset which sums to n, construct a partition of n with the same multiset, but without the zeros.

        Equations
          Instances For
            @[simp]
            theorem Nat.Partition.ofSums_parts (n : ) (l : Multiset ) (hl : l.sum = n) :
            (ofSums n l hl).parts = Multiset.filter (fun (x : ) => x 0) l

            A Multiset induces a partition on its sum.

            Equations
              Instances For
                @[simp]
                def Nat.Partition.ofSym {n : } {σ : Type u_1} (s : Sym σ n) [DecidableEq σ] :

                An element s of Sym σ n induces a partition given by its multiplicities.

                Equations
                  Instances For
                    @[simp]
                    theorem Nat.Partition.ofSym_map {n : } {σ : Type u_1} {τ : Type u_2} [DecidableEq σ] [DecidableEq τ] (e : σ τ) (s : Sym σ n) :
                    ofSym (Sym.map (⇑e) s) = ofSym s
                    def Nat.Partition.ofSymShapeEquiv {n : } {σ : Type u_1} {τ : Type u_2} [DecidableEq σ] [DecidableEq τ] (μ : n.Partition) (e : σ τ) :
                    { x : Sym σ n // ofSym x = μ } { x : Sym τ n // ofSym x = μ }

                    An equivalence between σ and τ induces an equivalence between the subtypes of Sym σ n and Sym τ n corresponding to a given partition.

                    Equations
                      Instances For

                        The partition of exactly one part.

                        Equations
                          Instances For
                            @[simp]
                            theorem Nat.Partition.indiscrete_parts {n : } (hn : n 0) :
                            @[simp]
                            theorem Nat.Partition.ofSym_one {σ : Type u_1} [DecidableEq σ] (s : Sym σ 1) :
                            theorem Nat.Partition.count_ofSums_of_ne_zero {n : } {l : Multiset } (hl : l.sum = n) {i : } (hi : i 0) :

                            The number of times a positive integer i appears in the partition ofSums n l hl is the same as the number of times it appears in the multiset l. (For i = 0, Partition.non_zero combined with Multiset.count_eq_zero_of_notMem gives that this is 0 instead.)

                            theorem Nat.Partition.count_ofSums_zero {n : } {l : Multiset } (hl : l.sum = n) :

                            Show there are finitely many partitions by considering the surjection from compositions to partitions.

                            Equations

                              The finset of those partitions in which every part is odd.

                              Equations
                                Instances For

                                  The finset of those partitions in which each part is used at most once.

                                  Equations
                                    Instances For

                                      The finset of those partitions in which every part is odd and used at most once.

                                      Equations
                                        Instances For