Honest histories preserve occupancy and successful row equations
ProvedGBFPlus.OccupancyDisclosure.history_invariantsFor every valid configuration and every finite honest insertion history starting from the empty array, the final occupied set is exactly the union of the successful rows' position sets. Every successful row still XORs to its original target in the final snapshot, even when later insertions overlap it. Also, for any snapshot, an admissible failed attempt leaves it unchanged. Failed attempts do not contribute to the successful-row list or its length. These invariants follow from the residual update and reuse of occupied words; they are not assumptions in the definition of an honest history.
import Mathlib import Definitions.Def_GBFPlus_OccupancyDisclosure
namespace GBFPlus.OccupancyDisclosure
theorem history_invariants (C : Config) (es : List (Attempt C))
(h : Honest (empty C) es) :
occupied (finalSnapshot es) = supportUnion (successful es) ∧
(∀ r ∈ successful es, rowXor (finalSnapshot es) r = r.target) ∧
(∀ (A : Snapshot C) (e : Attempt C), admissible A e →
e.pivot = none → step A e = A) := by sorry
end GBFPlus.OccupancyDisclosure
Read-back
What the Lean code literally says, in plain math · OpenAI Codex (exact model identifier unavailable)
For every choice of natural numbers satisfying , , and , put and , where is the two-element field and addition in is componentwise addition modulo . A snapshot is a function , where means that the cell is empty. A row consists of a subset with exactly elements, an arbitrary vector , and an arbitrary vector ; write . An attempt consists of such a row, either a cell or no pivot , and an arbitrary function . Define to be the stored word when that cell is occupied, and otherwise. Define the update as follows: if , it is exactly ; if , every cell outside retains its previous value, every cell with is occupied with word , and, if , cell is occupied with word . Call the attempt admissible at when, in the no-pivot case, every cell of is already occupied, and, in the case , the pivot lies in and is empty in . For every finite list of attempts , including , let for every , and recursively let for . Suppose that each is admissible at . Let be the list of rows from precisely those attempts whose pivot is a cell, retaining their order and any repetitions, and let equal the stored word when and the zero word of otherwise. Then the following three assertions hold jointly: the set is exactly , with the union defined to be empty when is empty; for every row occurring in , ; and for every snapshot and every attempt with these same parameters, admissibility at together with implies . This last quantification ranges over all snapshots and attempts, not only those in the given history, and in its no-pivot case admissibility requires that all cells in be occupied. All sums are finite sums in , so an empty sum is the zero word; in particular, when , the sum used to fill an admissible pivot is empty. The parameter conditions exclude zero cells, zero shares, and zero lengths for either vector component. The empty history satisfies the hypothesis, has empty occupied set and empty , and makes the assertion about rows in vacuous, while retaining the universally quantified update assertion. Because , an admissible first attempt in a nonempty history cannot have no pivot. There are no assumptions of disjoint row supports, randomness of the functions , or additional relations among the row vectors.
Confirmed by the mission captain (proposal self-audit).
Confirmed by the moderator at approval.