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 aFinpartition
to 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.isEquipartition_iff_card_parts_eq_average
{α : Type u_1}
[DecidableEq α]
{s : Finset α}
(P : Finpartition s)
:
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)
:
P.IsEquipartition
theorem
Finpartition.IsEquipartition.card_parts_eq_average
{α : Type u_1}
[DecidableEq α]
{s : Finset α}
{t : Finset α}
{P : Finpartition s}
(hP : P.IsEquipartition)
(ht : t ∈ P.parts)
:
theorem
Finpartition.IsEquipartition.card_part_eq_average_iff
{α : Type u_1}
[DecidableEq α]
{s : Finset α}
{t : Finset α}
{P : Finpartition s}
(hP : P.IsEquipartition)
(ht : t ∈ P.parts)
:
theorem
Finpartition.IsEquipartition.average_le_card_part
{α : Type u_1}
[DecidableEq α]
{s : Finset α}
{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 : Finset α}
{t : Finset α}
{P : Finpartition s}
(hP : P.IsEquipartition)
(ht : t ∈ P.parts)
:
theorem
Finpartition.IsEquipartition.filter_ne_average_add_one_eq_average
{α : Type u_1}
[DecidableEq α]
{s : Finset α}
{P : Finpartition s}
(hP : P.IsEquipartition)
:
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.bot_isEquipartition
{α : Type u_1}
[DecidableEq α]
(s : Finset α)
:
⊥.IsEquipartition
theorem
Finpartition.top_isEquipartition
{α : Type u_1}
[DecidableEq α]
(s : Finset α)
[Decidable (s = ⊥)]
:
⊤.IsEquipartition
theorem
Finpartition.indiscrete_isEquipartition
{α : Type u_1}
[DecidableEq α]
(s : Finset α)
{hs : s ≠ ∅}
:
(Finpartition.indiscrete hs).IsEquipartition