Property (3), p. 978 — split is monotone in its second argument
ProvedPaigeTarjan.Coarsest.split_monotoneLet be a relation on a finite set , let and be partitions of with a refinement of , and let . Then
Monotonicity of is the step that carries the invariant of Lemma 2 from one refinement step to the next.
import Mathlib import Definitions.Def_PaigeTarjan_Coarsest_Basic
namespace PaigeTarjan.Coarsest
/-- Property (3), p. 978: `split` is monotone in its second argument — if `S ⊆ U` and `P` is a
refinement of `Q`, then `split(S, P)` is a refinement of `split(S, Q)`. -/
theorem split_monotone {U : Type*} [Fintype U] [DecidableEq U]
(E : U → U → Prop) [DecidableRel E] (P Q : Finset (Finset U)) (S : Finset U)
(hP : IsPartition P) (hQ : IsPartition Q) (hPQ : Refines P Q) :
Refines (split E S P) (split E S Q) := by sorry
end PaigeTarjan.Coarsest
Read-back
What the Lean code literally says, in plain math · claude-opus-5-5
Take a finite set with decidable equality, a decidable binary relation on , families and of subsets of , and a set . Assume:
- is a partition of ;
- is a partition of ;
- refines .
Then refines : every block of lies inside some block of . Here replaces each block by the nonempty sets among and , where .
Degenerate cases. If , all families involved are empty and the claim is vacuous. If , splitting leaves both partitions unchanged, and the claim reduces to the hypothesis that refines .
Confirmed by the mission captain (proposal self-audit).
Confirmed by the moderator at approval.