Union folds depend only on the delivered set
complete
Concrete adaptation of the standard semilattice convergence proof attributed to crdt-lean Convergence.lean. Induction identifies each union fold with the supremum of its finite delivered set; equal delivered sets then give equal folded states. This independent proof passes locally with the pinned runtime and discrete dependency profile. It establishes the exact safety proposition, including reordering and repeated update states, and assumes no network fairness or delivery guarantee.
Lean proof and verification output
by
have collapse : ∀ (xs : List (Finset Nat)), xs.foldr (fun update state => update ∪ state) ∅ = xs.toFinset.sup id := by
intro xs
induction xs with
| nil => simp
| cons x xs ih => simp [ih, Finset.sup_insert]
intro xs ys equal
rw [collapse, collapse, equal]Preview only · 0.00 MiB. Download the full file below.
Checked against statement 1d5fdcc48cc7.
Independent checker: not_run. What this means
'_private.0.OA_target' depends on axioms: [propext, Classical.choice, Quot.sound] OA_target : OA_statement
Axioms: propext, Classical.choice, Quot.sound