Partitions generated by functions and by families #
The partition of a finite type generated by a function s : ι → β has the fibres of s as its
blocks, i and j sharing a block when s i = s j; every partition of ι is generated by the
function sending each element to its block (ofFun_part). A finite family φ : ι → α in a
Boolean algebra generates a partition of ⊤ whose parts are its nonzero minterms, the meets
±φ i over all i. Permutations of ι act on its partitions by relabelling, and the multiset
of block sizes is invariant.
Main definitions #
Finpartition.ofFun s: the partition ofιgenerated bys.minterm φ σ: the meet ofφ ifor theiwithσ itrue and of(φ i)ᶜfor the others.Finpartition.minterms φ: the partition of⊤into the nonzero minterms ofφ.Finpartition.equivPartsMinterms φ: the nonzero minterms correspond to the polarity assignments at which the minterm does not vanish.Finpartition.partSizes P: the multiset of the sizes of the blocks.- The action of
Equiv.Perm ιonFinpartition (univ : Finset ι).
Main results #
Finpartition.ofFun_congr: the partition depends only on which values coincide.Finpartition.ofFun_le_ofFun_iff,Finpartition.le_iff_factorsThrough_part: one partition refines another exactly when the generator or block map of the second factors through that of the first.Finpartition.sum_parts_eq_sum_preimage_part: a sum over the parts is a sum over the fibres of the block map.disjoint_minterm,sup_minterm: distinct minterms are disjoint and the minterms join to⊤.Finpartition.minterms_sumElim: the minterms of a union of two families are the meet of the two partitions.Finpartition.ofFun_part: every partition is generated by its blocks.Finpartition.partSizes_ofFun: the block sizes are the multiplicities of the values.Finpartition.partSizes_smul: relabelling a partition by a permutation keeps its block sizes.
[UPSTREAM] candidates for Mathlib.Order.Partition.Finpartition.
Minterms #
The minterms of a family join to ⊤.
The multiset of the sizes of the blocks.
Equations
- P.partSizes = Multiset.map Finset.card P.parts.val
Instances For
The block sizes add up to the size of the partitioned set.
In the discrete partition every element is alone in its block.
The partition of ι generated by s puts two elements in one block when s takes the same
value at both.
Equations
- Finpartition.ofFun s = Finpartition.ofSetoid (Setoid.ker s)
Instances For
The partition generated by a function depends only on which of its values coincide.
Every partition of ι is generated by the function sending each element to its block.
Summing a function of the parts that vanishes at ∅ is summing it over the fibres of the
block map.
The block sizes of the partition generated by s are the multiplicities of its values.
One generated partition refines another exactly when the second generator factors through the first.
A partition refines another exactly when the block map of the second factors through that of the first.
Composing the block map of a generated partition with g generates the same partition as
composing the generator with g.
Relabelling by permutations #
A permutation σ of ι relabels a partition of ι, moving each block B to σ '' B.
Equations
- Finpartition.instMulActionPermFinsetUniv_linglib = { smul := fun (σ : Equiv.Perm ι) (P : Finpartition Finset.univ) => Finpartition.ofFun (P.part ∘ ⇑σ⁻¹), mul_smul := ⋯, one_smul := ⋯ }
Relabelling preserves the block sizes.
The partition into minterms #
The partition of ⊤ generated by a family has its nonzero minterms as parts.
Equations
- Finpartition.minterms φ = Finpartition.ofErase (Finset.image (minterm φ) Finset.univ) ⋯ ⋯
Instances For
The nonzero minterms of a family correspond to the polarity assignments at which its minterm does not vanish.
Equations
- Finpartition.equivPartsMinterms φ = Equiv.ofBijective (fun (σ : { σ : ι → Bool // minterm φ σ ≠ ⊥ }) => ⟨minterm φ ↑σ, ⋯⟩) ⋯
Instances For
A family has as many nonzero minterms as polarity assignments at which its minterm does not vanish.
Reindexing a family does not change its minterms.
The minterms of the union of two families form the meet of their partitions into minterms.