Coarse three-block partition refinements, triangular inversion, and bipartite masked ranks
Abstract
Refinement counts between two- and three-block finite set partitions invert the upper-sum operator on coarse partitions and double the off-diagonal rank of symmetric binary matrices across bipartitions.
On the poset of set partitions of Fin q ordered by refinement (rho <= sigma when every block of rho lies in a block of sigma), the two-block and three-block strata form a two-step upper interval beneath the trivial one-block partition. Counting three-block refinements of each two-block partition expresses the unweighted sum over two- and three-block partitions as a linear combination of upper sums, proves triangular surjectivity of the refinement-transpose weight map, shows that upper sums on two- and three-block partitions determine all upper sums, and identifies the F2-rank of a bipartition-masked symmetric matrix as twice the rank of its off-diagonal rectangular block.
Definition 1.1 (Finite party partitions).
Formalization. D5/S3/Combinatorics/Partitions/CoarseThreeBlockRefinement.PartyPartition (✓ std3).
Source. Repository-derived.
Commentary.
A party partition of Fin q is a finite partition of Finset.univ into pairwise disjoint nonempty blocks whose union is all of Fin q, ordered by block refinement.
Definition 1.2 (Stratum of k-block partitions).
Formalization. D5/S3/Combinatorics/Partitions/CoarseThreeBlockRefinement.partitionsOfCard (✓ std3).
Source. Repository-derived.
Commentary.
Filters the finite set of all partitions of Fin q to those with exactly k nonempty blocks.
Definition 1.3 (Coarse two- and three-block partitions).
Formalization. D5/S3/Combinatorics/Partitions/CoarseThreeBlockRefinement.twoOrThreePartitions (✓ std3).
Source. Repository-derived.
Commentary.
The union of the two-block and three-block partition strata of Fin q.
Definition 1.4 (Partitions with at least two blocks).
Formalization. D5/S3/Combinatorics/Partitions/CoarseThreeBlockRefinement.nontrivialPartitions (✓ std3).
Source. Repository-derived.
Commentary.
Collects all partitions of Fin q having two or more blocks, excluding only the indiscrete one-block partition when q >= 1.
Definition 1.5 (Bundled block of an element).
Formalization. D5/S3/Combinatorics/Partitions/CoarseThreeBlockRefinement.partOf (✓ std3).
Source. Repository-derived.
Commentary.
Maps each element c in Fin q to the unique block of pi containing c, typed as a member of pi.parts.
Definition 1.6 (Coarse-grained colouring along a block listing).
Formalization. D5/S3/Combinatorics/Partitions/CoarseThreeBlockRefinement.coarseCol (✓ std3).
Source. Repository-derived.
Commentary.
Composes a colouring col : Fin N to Fin q with the block map of pi and the inverse of an equivalence B : Fin k to pi.parts.
Definition 1.7 (Partition-masked binary matrix).
Formalization. D5/S3/Combinatorics/Partitions/CoarseThreeBlockRefinement.maskedAdj (✓ std3).
Source. Repository-derived.
Commentary.
Zeroes entries of Gamma whose row and column indices are assigned by col to the same block of pi, retaining entries across distinct blocks.
Definition 1.8 (Rank of the partition-masked matrix).
Formalization. D5/S3/Combinatorics/Partitions/CoarseThreeBlockRefinement.partitionRank (✓ std3).
Source. Repository-derived.
Commentary.
The matrix rank over ZMod 2 of maskedAdj(Gamma, col, pi).
Definition 1.9 (Off-diagonal rectangular submatrix across two party subsets).
Formalization. D5/S3/Combinatorics/Partitions/CoarseThreeBlockRefinement.offDiagBlock (✓ std3).
Source. Repository-derived.
Commentary.
Restricts Gamma to rows whose colour lies in X and columns whose colour lies in Y.
Definition 1.10 (Upper sum over two- and three-block coarsenings).
Formalization. D5/S3/Combinatorics/Partitions/CoarseThreeBlockRefinement.upperRankSum (✓ std3).
Source. Repository-derived.
Commentary.
Sums a real-valued function r over all two- and three-block partitions sigma of Fin q refined by rho.
Definition 1.11 (Weighted refinement sum on a coarse partition).
Formalization. D5/S3/Combinatorics/Partitions/CoarseThreeBlockRefinement.coarseWeight (✓ std3).
Source. Repository-derived.
Commentary.
Aggregates c(rho) weighted by the integer power 3^{2 - |rho|} over all partitions rho <= sigma with at least two blocks.
Theorem 1.12 (Stirling identities, k-block partition cardinality, and three-block refinements of a bipartition).
Proof. Machine-checked in Lean as D5/S3/Combinatorics/Partitions/CoarseThreeBlockRefinement.stirling_and_three_block_refinement_count (✓ std3). ∎
Source. Repository-derived.
Commentary.
Establishes S(m, 2) = 2^{m-1} - 1 for m >= 1 and 2(S(q, 2) + S(q, 3)) = 3^{q-1} - 1 for q >= 1 by induction on the Stirling recurrence, proves |partitionsOfCard(q, k)| = S(q, k) by counting functions Fin q to Fin k fibrewise by kernel partition and injective block colouring against the falling-factorial power expansion, and proves that every two-block partition sigma = {X, Y} has S(|X|, 2) + S(|Y|, 2) = 2^{|X|-1} + 2^{|Y|-1} - 2 three-block refinements obtained by keeping one block intact and splitting the other into two nonempty parts.
Theorem 1.13 (Upper-sum reduction, poset Fubini identity, triangular surjectivity, and coarse determination).
Proof. Machine-checked in Lean as D5/S3/Combinatorics/Partitions/CoarseThreeBlockRefinement.coarse_upper_sum_reduction_and_triangular_inversion (✓ std3). ∎
Source. Repository-derived.
Commentary.
For q >= 3, every three-block partition pi has upperRankSum(r, pi) = r(pi) + sum_{sigma in Pi_2(q), pi <= sigma} r(sigma) while every two-block partition sigma has upperRankSum(r, sigma) = r(sigma); exchanging the order of summation counts each two-block sigma once per three-block refinement, giving coefficient 1 - (2^{|X|-1} + 2^{|Y|-1} - 2) = 3 - 2^{|X|-1} - 2^{|Y|-1}. Exchanging summation over rho <= sigma yields the transpose identity pairing upperRankSum against coarseWeight. Because coarseWeight is triangular with nonzero diagonal entries 1 on Pi_2(q) and 1/3 on Pi_3(q), explicit back-substitution produces a preimage c supported on twoOrThreePartitions(q) for any target weight w, while matching upper sums on Pi_2(q) and Pi_3(q) uniquely determine r on twoOrThreePartitions(q) and hence upperRankSum(r, rho) for every partition rho.
Theorem 1.14 (Rank doubling for symmetric matrices masked by a two-block partition).
Proof. Machine-checked in Lean as D5/S3/Combinatorics/Partitions/CoarseThreeBlockRefinement.bipartite_masked_antidiagonal_rank (✓ std3). ∎
Source. Repository-derived.
Commentary.
For a symmetric matrix Gamma over ZMod 2 and a two-block partition sigma with distinct blocks X and Y, reindexing Fin N by the disjoint union of the X-coloured and Y-coloured coordinates conjugates maskedAdj(Gamma, col, sigma) to the block anti-diagonal matrix [[0, B], [B^T, 0]] where B = offDiagBlock(Gamma, col, X, Y). Its column space splits as the direct sum of range(B) and range(B^T), so rank(maskedAdj) = rank(B) + rank(B^T) = 2 rank(B).
References
- Truth anchor:
D5/S3/Combinatorics/Partitions/CoarseThreeBlockRefinement.PartyPartition - Truth anchor:
D5/S3/Combinatorics/Partitions/CoarseThreeBlockRefinement.bipartite_masked_antidiagonal_rank - Truth anchor:
D5/S3/Combinatorics/Partitions/CoarseThreeBlockRefinement.coarseCol - Truth anchor:
D5/S3/Combinatorics/Partitions/CoarseThreeBlockRefinement.coarseWeight - Truth anchor:
D5/S3/Combinatorics/Partitions/CoarseThreeBlockRefinement.coarse_upper_sum_reduction_and_triangular_inversion - Truth anchor:
D5/S3/Combinatorics/Partitions/CoarseThreeBlockRefinement.maskedAdj - Truth anchor:
D5/S3/Combinatorics/Partitions/CoarseThreeBlockRefinement.nontrivialPartitions - Truth anchor:
D5/S3/Combinatorics/Partitions/CoarseThreeBlockRefinement.offDiagBlock - Truth anchor:
D5/S3/Combinatorics/Partitions/CoarseThreeBlockRefinement.partOf - Truth anchor:
D5/S3/Combinatorics/Partitions/CoarseThreeBlockRefinement.partitionRank - Truth anchor:
D5/S3/Combinatorics/Partitions/CoarseThreeBlockRefinement.partitionsOfCard - Truth anchor:
D5/S3/Combinatorics/Partitions/CoarseThreeBlockRefinement.stirling_and_three_block_refinement_count - Truth anchor:
D5/S3/Combinatorics/Partitions/CoarseThreeBlockRefinement.twoOrThreePartitions - Truth anchor:
D5/S3/Combinatorics/Partitions/CoarseThreeBlockRefinement.upperRankSum