Skip to content

t27b: the interpreter counts folded checks -- CT-VERIFIED parity for the reference path (Refs #5980) - #12784

Merged
gHashTag merged 1 commit into
masterfrom
t27b/ct-verified-parity
Oct 27, 2026
Merged

gHashTag merged 1 commit into
masterfrom
t27b/ct-verified-parity

Conversation

@gHashTag

Copy link
Copy Markdown
Collaborator

Refs #5980, #12751, #12777 (the t27c side, landed). Refs #12778.

What this carries

The reference interpreter counted an all-constant-operand assert as NOTHING -- the same conflation the t27c report had before #12777. Now Interp carries ct_verified and both assert sites (Assert, AssertEq) route const-operand checks into it, so the reference path speaks the same three-state law (CHECKED / CT-VERIFIED / VACUOUS, specs/compiler/theory/toolchain.t27 report_state).

The vacuous.rs acceptance asserts the probe pair's t27b mirror: the CONSTANT_ONLY fixture counts (runtime asserts, ct) = (0, 3) -- CT-VERIFIED, not vacuous; the RUNTIME and LOOP fixtures pin (2, 0) and (4, 0) -- runtime asserts never leak into the ct count.

Scope note (honest)

The verdict layer (Outcome::Pass / pass_vacuous labels in main.rs) is NOT changed here: threading ct through Outcome touches every constructor and the lab's verdict readers -- that is the next, separate step recorded on #5980. This PR makes the COUNT exist and proves it with tests; nothing downstream re-classifies yet.

The foreign budget, by the law's own numbers

eval.rs 8 added / 11 deleted; vacuous.rs 13 / 11; total 21 / 22 -- net -1, shrink-only, per-file under the 40 cap, no label. The deletions are comment compression with identical meaning (the asserts doc 5 to 3 lines, the file header 4 to 3) and the increment branches folded to one line each.

Verification (measured on this tree)

cargo build -p t27b: 0 errors; cargo test --test vacuous: 3/3 green (the renamed acceptance plus the two runtime pins, both now also asserting ct = 0).

…ERIFIED/VACUOUS split reaches the reference path (Refs #12751, #5980)
@gHashTag
gHashTag enabled auto-merge (squash) October 27, 2026 05:57
@tri-claw

tri-claw Bot commented Oct 27, 2026

Copy link
Copy Markdown

Summary by t27-bees

The reference interpreter now tracks compile-time-verified checks (ct_verified) separately from runtime asserts. Previously, asserts with all-constant operands were silently ignored (neither counted nor executed), conflating them with vacuous passes. This change makes the reference path report the same three-state law (CHECKED / CT-VERIFIED / VACUOUS) as the t27c side, and the tests confirm folded checks count as CT-VERIFIED while runtime asserts never leak into that count.

Worth a look

  • cli/t27b/src/eval.rs:338-339 — The Assert and AssertEq branches now use single-line if/else increments. If is_const has side effects (unlikely for a predicate) or throws, the folding changes evaluation order; otherwise functionally identical.
  • cli/t27b/src/eval.rs:234 — ct_verified is initialized to 0 in Interp::new. If any code path constructs an Interp without going through new (none shown in diff), the field would be uninitialized.
  • cli/t27b/tests/vacuous.rs:26-27 — The helper parsed_ct returns (runtime, ct_verified) and sums across all tests in a program. If a future test adds multiple test functions with mixed assert types, the summed tuple still validates totals but loses per-test attribution.
  • cli/t27b/tests/vacuous.rs:43 — The renamed test constant_only_asserts_are_ct_verified_not_vacuous expects exactly 3 CT-verified checks. If the fixture CONSTANT_ONLY changes (adds/removes folded asserts), the test will fail and need updating — this is correct behavior but a maintenance touchpoint.
  • cli/t27b/src/eval.rs:205-207 — The doc comment for asserts was compressed and a new comment for ct_verified added. The meaning is preserved, but the old comment explicitly noted "A test that passes with this at 0 is a vacuous pass" which is now outdated since ct_verified can be non-zero; the new ct_verified comment clarifies the intent.

Read: 2 files, +21 -22, the whole diff. Head 0f05e25. Model: openai-compatible/nvidia/nemotron-3-ultra-550b-a55b. Commands: @t27-bees review | summary | help | pause | resume. Free for every repository.

@github-actions

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-10-27 06:03:21 UTC

Summary

Status Count
Total Open PRs 12
PRs with Failing Checks 12
PRs with All Checks Green 0
READY 0
FAILING 12
PENDING 0
NO CHECKS YET 0

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=67adcf31aff7 != manifest seal=87e5cbd3ad94.
    The committed NMSE numbers were certified against an older compiler.rs.
    Run scripts/reseal-check.sh locally for the two-step reseal command (advisory; not a merge gate).

@gHashTag
gHashTag merged commit f43efa7 into master Oct 27, 2026
28 of 36 checks passed
gHashTag added a commit that referenced this pull request Oct 27, 2026
…cked on #12784) (#12788)

* t27b: the interpreter counts folded checks as ct_verified -- the CT-VERIFIED/VACUOUS split reaches the reference path (Refs #12751, #5980)

* t27b: the verdict layer carries ct -- pass_ct labels the folded-only pass, the corpus report counts it apart (Refs #12751, #5980)
gHashTag added a commit that referenced this pull request Oct 27, 2026
…colours (#12808)

* spec(crons): the cards say what the workflows now do (#12776)

Closes #12775. Landed with trinity#1787 in the same hour. Admin per repo precedent.

* feat(t27os): the dsh head election law, its cron card, and the pilot node's public key (Closes #12782) (#12783)

- dsh_head_election: the hysteresis law -- the default head flips only
  after FLIP_STREAK (3) consecutive turn-sized challenger wins over a
  dead incumbent; probes are 100 tokens / 60 s (1-token probes gave
  false positives, measured 2026-10-26/27).
- mac-dsh-head-election cron card: ENABLED=false on purpose (card-first;
  the election glue lowers from the election spec and lands with it).
- .trinity/keys/2fed7065eb4439e4.pub: the mac-t27os pilot node's PUBLIC
  Ed25519 half (identity.t27 #12756 row) so its signed job receipts
  verify; the private key never enters the repository.

t27c test-report on this tree: 6+1 passes, 0 FAIL, 0 vacuous.

* feat(t27os): the LADDER -- the rung law for every LLM client on a node (Closes #12786) (#12787)

Named this night: a client points at the local ladder endpoint; the
ladder walks rungs in order (zai pool, own ollama, deepseek,
openrouter) and serves the first rung that answers a TURN-SIZED
request with 200. Fail closed at 503 naming the last refusal.
Loopback only.

Measured background: zai free pool flaps under load (2/5 and 1/5
turn-sized alive); the own ollama node went 7/7; openrouter's key
limit is not a balance (402); deepseek unfunded pays 402 per call --
the rung order encodes all of it. Live on mac-t27os: launchd
ai.t27.ladder, keys=5, a turn through the ladder served 200 in 3.2 s.

t27c test-report on this tree: 3 passes, 0 FAIL, 0 vacuous.

* t27b: the interpreter counts folded checks as ct_verified -- the CT-VERIFIED/VACUOUS split reaches the reference path (Refs #12751, #5980) (#12784)

* blog: the epic card reads its arrays directly -- the #5980 accessor workaround retires under the CT-VERIFIED law (Refs #12777) (#12785)

* t27b: pass_ct -- the verdict layer carries the CT-VERIFIED count (stacked on #12784) (#12788)

* t27b: the interpreter counts folded checks as ct_verified -- the CT-VERIFIED/VACUOUS split reaches the reference path (Refs #12751, #5980)

* t27b: the verdict layer carries ct -- pass_ct labels the folded-only pass, the corpus report counts it apart (Refs #12751, #5980)

* fix(network): restore the mac-t27os row clobbered by the KEYS-tab merge, and pin it to the canonical receipt key (Closes #12754, follows #12756) (#12790)

#12774's KEYS-tab work landed on a master without the mac-t27os row
(#12756) and silently dropped it: bindings fell back to 12, with zeros
at index 12. This re-lands the row on the current table AND upgrades it:
the receipt key is now dc1bf22de103cca3 -- created by `t27c receipt-key
init`, the canonical derivation -- replacing the hand-derived id from
the first landing. b_commit[12] is pinned to #12756's merge commit
(1a170f4...), the row-carrier per git blame. The tripwire drove
the fix: it refused the table until b_commit[12] was 40-hex.

t27c test-report: 6 passes, 0 FAIL, 0 vacuous.

* lab: the pass_ct reader -- the corpus aggregates count the compile-time-verified pass apart (Refs #12751, #5980) (#12789)

* feat(t27os): the next mark and own age on every key sub-row; the router actor laws; reuse challenge_ok (Closes #12753) (#12781)

keys.t27: next_mark_text, the sub-row grows to 32 for its second line.
glass_window: the serving key wears 'next', then its own last-check age
follows on the same line; the next-mark import. keys_fleet: keys_state +
row_state -- one row state from the route matrix and the key vault.
router_serve: serve_answer -- the wire composition of the walk.
router_actor: the accept loop as an actor -- bounded mailbox (8), one
pure step, faults close without killing the loop, backoff 30 after 16.
node_runner_tick_argv: digit/hexlower/hex32 were a copy of dispatch.t27's
challenge_ok -- reuse the law (the dupe ratchet is green again).
Seals: T27osKeys, T27osGlassWindow resealed against this tree.

keys 115, router 8, sock 3, serve 5, actor 4, fleet 5, transform 12,
node_runner_tick_argv 2, glass_window 92/92.
phi^2 + 1/phi^2 = 3 | TRINITY

* feat(t27os): the live mycelium rollout card for 27 petals and the live tap of lanes transitions and the recorded log into the work graph (Closes #12795, Closes #12796)

* feat(t27os): the plan card names the next unwired petal -- lowest wave first, ties by index (epic #12779)

* feat(t27os): the graph plane -- the tap ring folded into per-kind rows and shared-palette colours (Closes #12806)
gHashTag added a commit that referenced this pull request Oct 27, 2026
…colours (#12808)

* spec(crons): the cards say what the workflows now do (#12776)

Closes #12775. Landed with trinity#1787 in the same hour. Admin per repo precedent.

* feat(t27os): the dsh head election law, its cron card, and the pilot node's public key (Closes #12782) (#12783)

- dsh_head_election: the hysteresis law -- the default head flips only
  after FLIP_STREAK (3) consecutive turn-sized challenger wins over a
  dead incumbent; probes are 100 tokens / 60 s (1-token probes gave
  false positives, measured 2026-10-26/27).
- mac-dsh-head-election cron card: ENABLED=false on purpose (card-first;
  the election glue lowers from the election spec and lands with it).
- .trinity/keys/2fed7065eb4439e4.pub: the mac-t27os pilot node's PUBLIC
  Ed25519 half (identity.t27 #12756 row) so its signed job receipts
  verify; the private key never enters the repository.

t27c test-report on this tree: 6+1 passes, 0 FAIL, 0 vacuous.

* feat(t27os): the LADDER -- the rung law for every LLM client on a node (Closes #12786) (#12787)

Named this night: a client points at the local ladder endpoint; the
ladder walks rungs in order (zai pool, own ollama, deepseek,
openrouter) and serves the first rung that answers a TURN-SIZED
request with 200. Fail closed at 503 naming the last refusal.
Loopback only.

Measured background: zai free pool flaps under load (2/5 and 1/5
turn-sized alive); the own ollama node went 7/7; openrouter's key
limit is not a balance (402); deepseek unfunded pays 402 per call --
the rung order encodes all of it. Live on mac-t27os: launchd
ai.t27.ladder, keys=5, a turn through the ladder served 200 in 3.2 s.

t27c test-report on this tree: 3 passes, 0 FAIL, 0 vacuous.

* t27b: the interpreter counts folded checks as ct_verified -- the CT-VERIFIED/VACUOUS split reaches the reference path (Refs #12751, #5980) (#12784)

* blog: the epic card reads its arrays directly -- the #5980 accessor workaround retires under the CT-VERIFIED law (Refs #12777) (#12785)

* t27b: pass_ct -- the verdict layer carries the CT-VERIFIED count (stacked on #12784) (#12788)

* t27b: the interpreter counts folded checks as ct_verified -- the CT-VERIFIED/VACUOUS split reaches the reference path (Refs #12751, #5980)

* t27b: the verdict layer carries ct -- pass_ct labels the folded-only pass, the corpus report counts it apart (Refs #12751, #5980)

* fix(network): restore the mac-t27os row clobbered by the KEYS-tab merge, and pin it to the canonical receipt key (Closes #12754, follows #12756) (#12790)

(#12756) and silently dropped it: bindings fell back to 12, with zeros
at index 12. This re-lands the row on the current table AND upgrades it:
the receipt key is now dc1bf22de103cca3 -- created by `t27c receipt-key
init`, the canonical derivation -- replacing the hand-derived id from
the first landing. b_commit[12] is pinned to #12756's merge commit
(1a170f4...), the row-carrier per git blame. The tripwire drove
the fix: it refused the table until b_commit[12] was 40-hex.

t27c test-report: 6 passes, 0 FAIL, 0 vacuous.

* lab: the pass_ct reader -- the corpus aggregates count the compile-time-verified pass apart (Refs #12751, #5980) (#12789)

* feat(t27os): the next mark and own age on every key sub-row; the router actor laws; reuse challenge_ok (Closes #12753) (#12781)

keys.t27: next_mark_text, the sub-row grows to 32 for its second line.
glass_window: the serving key wears 'next', then its own last-check age
follows on the same line; the next-mark import. keys_fleet: keys_state +
row_state -- one row state from the route matrix and the key vault.
router_serve: serve_answer -- the wire composition of the walk.
router_actor: the accept loop as an actor -- bounded mailbox (8), one
pure step, faults close without killing the loop, backoff 30 after 16.
node_runner_tick_argv: digit/hexlower/hex32 were a copy of dispatch.t27's
challenge_ok -- reuse the law (the dupe ratchet is green again).
Seals: T27osKeys, T27osGlassWindow resealed against this tree.

keys 115, router 8, sock 3, serve 5, actor 4, fleet 5, transform 12,
node_runner_tick_argv 2, glass_window 92/92.
phi^2 + 1/phi^2 = 3 | TRINITY

* feat(t27os): the live mycelium rollout card for 27 petals and the live tap of lanes transitions and the recorded log into the work graph (Closes #12795, Closes #12796)

* feat(t27os): the plan card names the next unwired petal -- lowest wave first, ties by index (epic #12779)

* feat(t27os): the graph plane -- the tap ring folded into per-kind rows and shared-palette colours (Closes #12806)
gHashTag added a commit that referenced this pull request Oct 27, 2026
…h, live, on black (#12791)

* feat(t27os): the LIVE MYCELIUM band on the Queen screen -- the swarm's work graph, live, on black (Closes #12780)

* t27os: the graph plane -- the tap ring folded into per-kind rows and colours (#12808)

* spec(crons): the cards say what the workflows now do (#12776)

Closes #12775. Landed with trinity#1787 in the same hour. Admin per repo precedent.

* feat(t27os): the dsh head election law, its cron card, and the pilot node's public key (Closes #12782) (#12783)

- dsh_head_election: the hysteresis law -- the default head flips only
  after FLIP_STREAK (3) consecutive turn-sized challenger wins over a
  dead incumbent; probes are 100 tokens / 60 s (1-token probes gave
  false positives, measured 2026-10-26/27).
- mac-dsh-head-election cron card: ENABLED=false on purpose (card-first;
  the election glue lowers from the election spec and lands with it).
- .trinity/keys/2fed7065eb4439e4.pub: the mac-t27os pilot node's PUBLIC
  Ed25519 half (identity.t27 #12756 row) so its signed job receipts
  verify; the private key never enters the repository.

t27c test-report on this tree: 6+1 passes, 0 FAIL, 0 vacuous.

* feat(t27os): the LADDER -- the rung law for every LLM client on a node (Closes #12786) (#12787)

Named this night: a client points at the local ladder endpoint; the
ladder walks rungs in order (zai pool, own ollama, deepseek,
openrouter) and serves the first rung that answers a TURN-SIZED
request with 200. Fail closed at 503 naming the last refusal.
Loopback only.

Measured background: zai free pool flaps under load (2/5 and 1/5
turn-sized alive); the own ollama node went 7/7; openrouter's key
limit is not a balance (402); deepseek unfunded pays 402 per call --
the rung order encodes all of it. Live on mac-t27os: launchd
ai.t27.ladder, keys=5, a turn through the ladder served 200 in 3.2 s.

t27c test-report on this tree: 3 passes, 0 FAIL, 0 vacuous.

* t27b: the interpreter counts folded checks as ct_verified -- the CT-VERIFIED/VACUOUS split reaches the reference path (Refs #12751, #5980) (#12784)

* blog: the epic card reads its arrays directly -- the #5980 accessor workaround retires under the CT-VERIFIED law (Refs #12777) (#12785)

* t27b: pass_ct -- the verdict layer carries the CT-VERIFIED count (stacked on #12784) (#12788)

* t27b: the interpreter counts folded checks as ct_verified -- the CT-VERIFIED/VACUOUS split reaches the reference path (Refs #12751, #5980)

* t27b: the verdict layer carries ct -- pass_ct labels the folded-only pass, the corpus report counts it apart (Refs #12751, #5980)

* fix(network): restore the mac-t27os row clobbered by the KEYS-tab merge, and pin it to the canonical receipt key (Closes #12754, follows #12756) (#12790)

(#12756) and silently dropped it: bindings fell back to 12, with zeros
at index 12. This re-lands the row on the current table AND upgrades it:
the receipt key is now dc1bf22de103cca3 -- created by `t27c receipt-key
init`, the canonical derivation -- replacing the hand-derived id from
the first landing. b_commit[12] is pinned to #12756's merge commit
(1a170f4...), the row-carrier per git blame. The tripwire drove
the fix: it refused the table until b_commit[12] was 40-hex.

t27c test-report: 6 passes, 0 FAIL, 0 vacuous.

* lab: the pass_ct reader -- the corpus aggregates count the compile-time-verified pass apart (Refs #12751, #5980) (#12789)

* feat(t27os): the next mark and own age on every key sub-row; the router actor laws; reuse challenge_ok (Closes #12753) (#12781)

keys.t27: next_mark_text, the sub-row grows to 32 for its second line.
glass_window: the serving key wears 'next', then its own last-check age
follows on the same line; the next-mark import. keys_fleet: keys_state +
row_state -- one row state from the route matrix and the key vault.
router_serve: serve_answer -- the wire composition of the walk.
router_actor: the accept loop as an actor -- bounded mailbox (8), one
pure step, faults close without killing the loop, backoff 30 after 16.
node_runner_tick_argv: digit/hexlower/hex32 were a copy of dispatch.t27's
challenge_ok -- reuse the law (the dupe ratchet is green again).
Seals: T27osKeys, T27osGlassWindow resealed against this tree.

keys 115, router 8, sock 3, serve 5, actor 4, fleet 5, transform 12,
node_runner_tick_argv 2, glass_window 92/92.
phi^2 + 1/phi^2 = 3 | TRINITY

* feat(t27os): the live mycelium rollout card for 27 petals and the live tap of lanes transitions and the recorded log into the work graph (Closes #12795, Closes #12796)

* feat(t27os): the plan card names the next unwired petal -- lowest wave first, ties by index (epic #12779)

* feat(t27os): the graph plane -- the tap ring folded into per-kind rows and shared-palette colours (Closes #12806)
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