aere-research/formal-consensus/anchor_rewrite_bound_roundfree_smt.RESULT.txt

56 lines
5.1 KiB
Plaintext

anchor_rewrite_bound_roundfree_smt.py -- MEASURED 2026-10-07 (second form, after two adversarial reviews)
Windows 11, python 3.14.4, z3-solver 4.16.0. Commands: `python anchor_rewrite_bound_roundfree_smt.py`,
`python anchor_rewrite_bound_roundfree_smt.py --plant-bounds`, `python run_consensus_verification.py`.
=== the model alone: 28 checks, exit 0 ===
PROVED [LEMMA ] 0.001s L0a HASH CHAIN STEP (different parent hash -> different block hash)
PROVED [LEMMA ] 0.000s L0b R1 UNDER THE HASH (different certificate -> different anchor hash)
CEX-FOUND [NEG-CTRL] 0.002s P0c certificate outside the hashed pre-image witness cert_alt=0 cert_hon=1
PROVED [PROOF ] 0.005s P1a REWRITE BOUND, baseline: at most 32 blocks (F above 20,746,736)
PROVED [PROOF ] 0.006s P1b PREFIX KEPT, baseline: the latest anchor's parent and below
CEX-FOUND [CONFIG ] 0.006s C1a 32-block witness, forked AT the latest anchor witness F=a_last=20746768 Hp=20746799 (32 blocks)
CEX-FOUND [NEG-CTRL] 0.004s N1 K_eff=0 -> 1000 blocks accepted witness F=20746737 Hp=20747736
CEX-FOUND [NEG-CTRL] 0.006s N2 adversary with every PQ key -> 1000 blocks witness F=20746737 Hp=20747736
PROVED [PROOF ] 0.007s P2a REWRITE BOUND, corrected: at most 33 blocks
PROVED [PROOF ] 0.008s P2b PREFIX KEPT, corrected: the grandparent and below
CEX-FOUND [CONFIG ] 0.007s C1b 33-block witness, fork at the latest anchor's parent witness F=20966863 a_last=20966864 Hp=20966895 (33 blocks)
PROVED [PROOF ] 0.008s P2c fewer than K_eff=7 honest sibling seals -> 32 again
CEX-FOUND [NEG-CTRL] 0.006s N3 siblings over any parent (A3 dropped) -> 1000 blocks witness F=20746737 Hp=20747736
PROVED [PROOF ] 0.007s P4a PARTIAL COMPROMISE: K_eff=7, j=6 PQ keys -> still 33
PROVED [PROOF ] 0.007s P4b PARTIAL COMPROMISE: j=6, the extra block needs K_eff-j=1 honest sibling seal
CEX-FOUND [NEG-CTRL] 0.006s N4a j = K_eff = 7 PQ keys -> 1000 blocks accepted witness F=20746737 Hp=20747736
PROVED [PROOF ] 0.005s P5a FOLLOWER K_eff=1, no PQ key: 32 holds
PROVED [PROOF ] 0.007s P5b FOLLOWER K_eff=1, siblings: 33 holds
CEX-FOUND [CONFIG ] 0.007s C5c FOLLOWER: ONE honest sibling seal buys the 33rd block witness F=20966863 a_last=20966864 Hp=20966895
CEX-FOUND [NEG-CTRL] 0.006s N5d FOLLOWER K_eff=1 with ONE PQ key -> 1000 blocks witness F=20746737 Hp=20747736
PROVED [PROOF ] 0.005s P6a DATED 128-INTERVAL WINDOW, baseline: at most 128 (any K_eff >= 1)
PROVED [PROOF ] 0.007s P6b DATED 128-INTERVAL WINDOW, corrected: at most 129
CEX-FOUND [CONFIG ] 0.006s C6c 128-block witness in the window witness F=a_last=17226096 Hp=17226223
PROVED [PROOF ] 0.352s P3a REFERENCE: hash chain unrolled 1280 heights, no re-convergence at a_ref = F + d
CEX-FOUND [NEG-CTRL] 0.350s N3a hash not covering the parent -> re-convergence witness F=13014001 d=1280
PROVED [PROOF ] 0.009s P3b REFERENCE + BOUND: everything through a_ref kept, at most 33 above the fork
CEX-FOUND [NEG-CTRL] 0.010s P3c no reference -> a short divergence below an anchor accepted witness F=20746766 Hp=20746767 H=a_ref=20746768
PROVED [DEFN ] 0.002s D1 below stage 5 a header needs Q=7 classical keys (arithmetic restatement, not counted)
checks by kind: PROOF 13, LEMMA 2, CONFIG 4, DEFN 1, NEG-CTRL 8 (all as expected; 0 FAILED)
=== control of the control: `--plant-bounds` (every claimed bound lowered by one), exit 1 ===
FAILED (z3=sat): P1a, P2a, P2c, P4a, P4b, P5a, P5b, P6a, P6b, P3b -- exactly the ten bound proofs; the bounds are tight.
=== whole suite the same day: `python run_consensus_verification.py`, exit 0 ===
models run: 37 passed: 37 (16 consensus + 11 contract + 10 application)
verdict lines: 301 PROVED 159 CEX-FOUND 0 FAILED
wall time: 36.73 s (slowest: qbft_safety_smt.py 19.53 s; this model 4.38 s inside the suite)
coverage: 37 of 37 *_smt.py files wired; RESULT: ALL MODELS PASS
=== what changed from the first form of the same day (reviewed adversarially the same day) ===
- P3a was an arithmetic tautology (the conclusion added as a premise); it is now the unrolled hash chain with
its own negative control N3a. C1c (now D1) is labelled DEFN and not counted as a proof; P0a/P0b are LEMMA.
- K_eff and the adversary's post-quantum keys j are explicit: bounded iff j < K_eff (P4a / N4a); the
published from-genesis follower runs at K_eff = 1 (SPEC 6.4): P5a/P5b/C5c/N5d.
- the headline histories are confined to the regime in force today (fork above 20,746,736: interval 32,
K = 7); the dated 128-interval window (2026-09-05 .. 2026-09-29) has its own proofs P6a/P6b (128 / 129).
- the 33-block witness C1b forks at the latest anchor's parent (a_last = F + 1), as the text says.
- the A1/A2 caps: seals over honest blocks are capped at N (made before any key leaked), honest seals over a
sibling at N - j; the first draft of this form capped both at N - j and N2/N4a came out FAILED for that
reason (contradictory axioms, not a property): corrected before anything was recorded.