Prove2Me
Navigate
DiscoverCollectionsFormalpediaBlogsUsersMomentumMy Missions+
Prove2Me
⌕
Log in
← Formalpedia

Proposition 2: the disjoint-position certificate reveals the identifier XOR

Proved
GBFPlus.OccupancyDisclosure.aggregate_disclosure

by queelius · Oct 23, 2026 · Mathlib 0df444a (Lean v4.33.1)

cryptographygbfplusoccupancy-disclosure

For every honest snapshot with c≥1c\ge1c≥1 successful insertions and public occupied-cell count w=cκw=c\kappaw=cκ, XORing the occupied words and taking their final ℓ\ellℓ bits yields the XOR of the ccc inserted adjacent-domain identifiers. The successful count is derived from the insertion history. The certificate implies cκ≤mc\kappa\le mcκ≤m and disjoint successful position sets. For c>1c>1c>1 the conclusion gives only this aggregate, not the individual identifiers or their multiset. The equality is a sufficient certificate, not a necessary condition for every possible disclosure; no conclusion or probability claim is made for snapshots failing it. Ledger read access, genuine occupancy and authentic honest generation remain the source interpretation's explicit premises.

Preamble
import Mathlib
import Definitions.Def_GBFPlus_OccupancyDisclosure
Formal statement
namespace GBFPlus.OccupancyDisclosure

theorem aggregate_disclosure (C : Config) (es : List (Attempt C))
    (h : Honest (empty C) es) (hpositive : 1 ≤ (successful es).length)
    (hcount : (occupied (finalSnapshot es)).card = (successful es).length * C.shares) :
    recover (finalSnapshot es) = identifierXor (successful es) := by sorry

end GBFPlus.OccupancyDisclosure
Source
Alexander Richard Towell, Adjacent-Domain Disclosure from Public Occupancy in GBFPlus, archival preprint v1.0.0, 20 October 2026, Section 2, DOI 10.5281/zenodo.23497466. Original analyzed protocol: Qin, Zhou, Dai, Sun and Qiang, Entropy 28 (2026), 947, DOI 10.3390/e28090947, Algorithm 4 and Sections 5.1–5.2. The source note is CC-BY-4.0; this new Lean formalization retains attribution and is prepared for the platform public-contribution terms. Section 2, Proposition 2 (Disjoint-position certificate), Eq.(3), and scope paragraphs following its proof.
Read-back

What the Lean code literally says, in plain math · OpenAI Codex (exact model identifier unavailable)

For every choice of natural numbers m,k,a,bm,k,a,bm,k,a,b satisfying 1≤k≤m1\leq k\leq m1≤k≤m, 1≤a1\leq a1≤a, and 1≤b1\leq b1≤b, let the cells be indexed by I={0,…,m−1}I=\{0,\ldots,m-1\}I={0,…,m−1}, let a word be a pair in W=(Z/2Z)a×(Z/2Z)bW=(\mathbb Z/2\mathbb Z)^a\times(\mathbb Z/2\mathbb Z)^bW=(Z/2Z)a×(Z/2Z)b, and let an identifier be a vector in (Z/2Z)b(\mathbb Z/2\mathbb Z)^b(Z/2Z)b; all vector and word sums below use coordinatewise addition modulo 222. Consider any finite ordered list of attempts, each consisting of a row (S,u,v)(S,u,v)(S,u,v), where S⊆IS\subseteq IS⊆I has exactly kkk elements, u∈(Z/2Z)au\in(\mathbb Z/2\mathbb Z)^au∈(Z/2Z)a, and v∈(Z/2Z)bv\in(\mathbb Z/2\mathbb Z)^bv∈(Z/2Z)b, together with either no pivot or a pivot p∈Ip\in Ip∈I, and an arbitrary function f:I→Wf:I\to Wf:I→W. Start with every cell empty and process the list in order, with a snapshot recording either emptiness or one word at each cell. Assume the following conditions hold at every attempt, relative to the snapshot AAA immediately before that attempt: if there is no pivot, every cell of SSS is already occupied, and the snapshot is left unchanged; if a pivot ppp is supplied, then p∈Sp\in Sp∈S and ppp is empty. In the latter case, define wiw_iwi​ to be the word already stored at iii if iii is occupied in AAA, and f(i)f(i)f(i) otherwise; the next snapshot leaves cells outside SSS unchanged, stores wiw_iwi​ at each i∈S∖{p}i\in S\setminus\{p\}i∈S∖{p}, and stores (u,v)+∑j∈S∖{p}wj(u,v)+\sum_{j\in S\setminus\{p\}}w_j(u,v)+∑j∈S∖{p}​wj​ at ppp. Let sss be the number of attempts in the list that supply a pivot, and let AfinA_{\mathrm{fin}}Afin​ be the resulting final snapshot. If s≥1s\geq1s≥1 and the number of occupied cells in AfinA_{\mathrm{fin}}Afin​ is exactly sksksk, then the second component of the sum of all words stored in the occupied cells of AfinA_{\mathrm{fin}}Afin​ equals the sum of the identifiers vvv of all attempts that supply a pivot, with each such occurrence in the list counted separately. Empty sums are zero, so the pivot formula also applies when k=1k=1k=1. Empty lists and lists with no supplied pivots are excluded by s≥1s\geq1s≥1, and zero cell counts, zero share counts, and zero vector lengths are excluded by the parameter inequalities; the occupancy equality cannot hold if sk>msk>msk>m. A stored zero word still counts as occupied. The vectors u,vu,vu,v and the functions fff have no further restrictions, and repeated rows or identifiers are not separately forbidden: the conditions on the successive snapshots and the final occupancy count are the imposed hypotheses.

Human review
  • Endorsed by Shuze Chen · Oct 23, 2026

    Confirmed by the moderator at approval.

  • Endorsed by queelius · Oct 23, 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