Finite equipartitions #
This file defines finite equipartitions, the partitions whose parts all are the same size up to a
difference of 1.
Main declarations #
Finpartition.IsEquipartition: Predicate for aFinpartitionto be an equipartition.Finpartition.IsEquipartition.exists_partPreservingEquiv: part-preserving enumeration of a finset equipped with an equipartition. Indices of elements in the same part are congruent modulo the number of parts.
def Finpartition.IsEquipartition {α : Type u_1} [DecidableEq α] {s : Finset α} (P : Finpartition s) :
An equipartition is a partition whose parts are all the same size, up to a difference of 1.
Equations
- P.IsEquipartition = (↑P.parts).EquitableOn Finset.card
Instances For
theorem Finpartition.not_isEquipartition {α : Type u_1} [DecidableEq α] {s : Finset α} {P : Finpartition s} :
theorem Set.Subsingleton.isEquipartition {α : Type u_1} [DecidableEq α] {s : Finset α} {P : Finpartition s} (h : (↑P.parts).Subsingleton) :
theorem Finpartition.IsEquipartition.average_le_card_part {α : Type u_1} [DecidableEq α] {s t : Finset α} {P : Finpartition s} (hP : P.IsEquipartition) (ht : t ∈ P.parts) :
theorem Finpartition.IsEquipartition.card_part_le_average_add_one {α : Type u_1} [DecidableEq α] {s t : Finset α} {P : Finpartition s} (hP : P.IsEquipartition) (ht : t ∈ P.parts) :
theorem Finpartition.IsEquipartition.card_large_parts_eq_mod {α : Type u_1} [DecidableEq α] {s : Finset α} {P : Finpartition s} (hP : P.IsEquipartition) :
An equipartition of a finset with n elements into k parts has
n % k parts of size n / k + 1.
theorem Finpartition.IsEquipartition.card_small_parts_eq_mod {α : Type u_1} [DecidableEq α] {s : Finset α} {P : Finpartition s} (hP : P.IsEquipartition) :
An equipartition of a finset with n elements into k parts has
n - n % k parts of size n / k.
theorem Finpartition.IsEquipartition.exists_partsEquiv {α : Type u_1} [DecidableEq α] {s : Finset α} {P : Finpartition s} (hP : P.IsEquipartition) :
There exists an enumeration of an equipartition's parts where larger parts map to smaller numbers and vice versa.
theorem Finpartition.IsEquipartition.exists_partPreservingEquiv {α : Type u_1} [DecidableEq α] {s : Finset α} {P : Finpartition s} (hP : P.IsEquipartition) :
Given a finset equipartitioned into k parts, its elements can be enumerated such that
elements in the same part have congruent indices modulo k.
Discrete and indiscrete finpartitions #
theorem Finpartition.top_isEquipartition {α : Type u_1} [DecidableEq α] (s : Finset α) [Decidable (s = ∅)] :
theorem Finpartition.indiscrete_isEquipartition {α : Type u_1} [DecidableEq α] (s : Finset α) {hs : s ≠ ∅} :