Skip to content

B2 evaluate ballot proof#5

Merged
orange-dot merged 3 commits into
mainfrom
b2-evaluate-ballot-proof
Jul 4, 2026
Merged

B2 evaluate ballot proof#5
orange-dot merged 3 commits into
mainfrom
b2-evaluate-ballot-proof

Conversation

@orange-dot

Copy link
Copy Markdown
Owner

B2 evaluate ballot proof

orange-dot and others added 3 commits July 4, 2026 14:25
README still said the heartbeat lemmas (B1/B3) were "stated, not yet
discharged" in two places, contradicting docs/VERIFICATION_PLAN.md (B1/B2/B3
all DONE) and the actual sorry-free proofs in EkkHeartbeat.thy. The B1/B3
proof (8929ba5) postdates the callback-field struct change (fa50091), so the
lemmas hold against the current headers.

- intro and Current Status now report B1/B3 discharged alongside B2
- Verification section names the lemmas: B1 init totality (loop terminates),
  B3 health-transition validator refinement + set_neighbor_health field write

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…ild green

The 2026-06-19 "Remaining" note said the real l4v C parser still had to run and
called a local l4v+Isabelle install unavailable. The environment is now
provisioned (~/verification: pinned Isabelle + l4v + AutoCorres) and the real
build passes: EkkBase lifts the callback-inclusive TUs and EkkVerification
builds green (B1/B2/B3, sorry-free). Append a dated 2026-07-04 status with a
reproduce command; keep the 06-19 snapshot as history.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Cross-check of every verifiable claim against the .thy proofs and the TLA
model turned up three mismatches:

- docs/tla/EkkConsensus.cfg: header comment said MaxBallots=2, MaxInflight=8;
  the model (EkkConsensus.tla) and docs/tla/README.md use 1/6/2. MaxBallots=1
  is the bound that makes TLC terminate, so this was not cosmetic.
- L4V_PARSEABILITY_PLAN.md: said "seven verified core TUs"; the gate
  (check-verification-parse.sh) covers eight and self-reports "8 core TUs"
  since 989ca77 single-sourced the B2 core into ekk_consensus_eval.c.
- VERIFICATION_PLAN.md Track A: the proposed TLA file layout was never built
  as named. Added an as-built note: only EkkConsensus.tla exists (A2);
  heartbeat (A1) went to Isabelle B3; topology (A3) stays a stretch goal.

All B1/B2/B3 lemma names, preconditions, specs, invariant names, and the
threshold constant already matched.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@orange-dot orange-dot merged commit be82c3b into main Jul 4, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant