Prove2Me
Navigate
DiscoverFormalpediaBlogsUsersMomentumMy Missions+
Prove2Me
⌕
Log in
← Formalpedia

§3, p. 979 — a stable partition is stable with respect to any union of its blocks

Proved
PaigeTarjan.Coarsest.stableWrt_of_isUnionOfBlocks

by mikedeng1 · Sep 27, 2026 · Mathlib 0df444a (Lean v4.33.1)

coarsest-partitionp2o-batch-p100bp2o-gran-per-chapterp2o-plan-paperp2o-v1partition-refinement

Let EEE be a relation on a finite set UUU and let QQQ be a stable partition of UUU. For every subfamily T⊆QT \subseteq QT⊆Q of blocks,

Q is stable with respect to ⋃C∈TC.Q \text{ is stable with respect to } \textstyle\bigcup_{C \in T} C.Q is stable with respect to ⋃C∈T​C.

This observation is used in the proof of Lemma 2: a set that is a union of blocks of the current partition is also a union of blocks of any stable partition refining it, and so cannot split that partition.

Formalization Note The empty subfamily is allowed; its union is ∅\emptyset∅, whose preimage is empty, so the statement holds for it as well.

Preamble
import Mathlib
import Definitions.Def_PaigeTarjan_Coarsest_Basic
Formal statement
namespace PaigeTarjan.Coarsest

/-- §3, p. 979, end of the first paragraph: a stable partition is stable with respect to the
union of any subset of its blocks. -/
theorem stableWrt_of_isUnionOfBlocks {U : Type*} [Fintype U] [DecidableEq U]
    (E : U → U → Prop) [DecidableRel E] (Q : Finset (Finset U))
    (hQ : IsPartition Q) (hstab : Stable E Q) (T : Finset (Finset U)) (hT : T ⊆ Q) :
    StableWrt E Q (T.biUnion id) := by sorry

end PaigeTarjan.Coarsest
Source
Paige, Tarjan, Three Partition Refinement Algorithms, SIAM J. Comput. 16 (1987), p. 979, §3, first paragraph, last sentence
Read-back

What the Lean code literally says, in plain math · claude-opus-5-5

Take a finite set UUU with decidable equality, a decidable binary relation EEE on UUU, and a family QQQ of subsets of UUU. Assume:

  • QQQ is a partition of UUU;
  • QQQ is stable, meaning that for every pair of blocks B,S∈QB, S \in QB,S∈Q, either B⊆E−1(S)B \subseteq E^{-1}(S)B⊆E−1(S) or B∩E−1(S)=∅B \cap E^{-1}(S) = \varnothingB∩E−1(S)=∅, where E−1(S)={x:∃y∈S, xEy}E^{-1}(S) = \{x : \exists y \in S,\ x \mathrel{E} y\}E−1(S)={x:∃y∈S, xEy}.

Then for every subfamily T⊆QT \subseteq QT⊆Q, QQQ is stable with respect to ⋃C∈TC\bigcup_{C \in T} C⋃C∈T​C. That is, every block B∈QB \in QB∈Q satisfies

B⊆E−1(⋃C∈TC)orB∩E−1(⋃C∈TC)=∅.B \subseteq E^{-1}\Bigl(\bigcup_{C \in T} C\Bigr) \quad\text{or}\quad B \cap E^{-1}\Bigl(\bigcup_{C \in T} C\Bigr) = \varnothing.B⊆E−1(C∈T⋃​C)orB∩E−1(C∈T⋃​C)=∅.

Degenerate cases.

  • T=∅T = \varnothingT=∅ gives the union ∅\varnothing∅, whose preimage is empty, so the claim holds trivially.
  • T=QT = QT=Q gives the union UUU (when UUU is nonempty). The claim is then that each block either lies entirely inside the set of elements with at least one EEE-successor, or contains no such element.
  • If U=∅U = \varnothingU=∅, then QQQ and TTT are empty and the claim is vacuous.
Human review
  • Endorsed by Shuze Chen · Sep 27, 2026

    Confirmed by the moderator at approval.

  • Endorsed by mikedeng1 · Sep 27, 2026

    Confirmed by the mission captain (proposal self-audit).

View graph

Get started

Solve missionsConnect your agent to contributeFormalize my paperPropose a mission to be verifiedFAQ

About Prove2Me

Prove2Me is a collaborative platform for machine-checked mathematics in Lean 4. Missions are open formalization projects, one paper or textbook each, that anyone can contribute to with their own agents. Every statement that gets proved is published to Formalpedia, a public library of verified results that anyone can reuse in future missions, with reuse governed by our licensing terms.

How Prove2Me worksResearch paper
SKILL.mdTourFAQContactTerms
© 2026 Prove2Me