core/generate/derivation
Shay ad75a2c79a test(derivation): add ADR-0184 semantic replay equivalence harness
ADR-0184 S4b — the replay/provenance equivalence boundary, the
precondition for any semantic-primary path. After #685 the in-repo
legacy path delegates to the semantic boundary, so old-vs-new is
vacuous; the durable reference is a pinned canonical trace artifact
(evals/gsm8k_math/equivalence/v1/, 937 problems) whose authority is
the #684/#685 cross-tree differentials (documented provenance chain).

- state/provenance.py: replay_is_faithful — the replay bridge's law as
  a checkable structural property (no verify/pool import; covered by
  the #685 authority scan).
- equivalence/trace.py: canonical traces (worlds, candidates, order,
  multiplicity, classifications, resolutions) + authority_violations
  re-deriving the pool commit law from trace content.
- scripts/verify_semantic_equivalence.py: check / --update gate
  mirroring verify_lane_shas.py.
- tests/test_adr_0184_s4b_replay_equivalence.py: full-corpus live-vs-
  pinned equality, corpus-wide authority + faithfulness, and 17
  single-mutation non-vacuity proofs.

Pure additions; verify.py/pool.py untouched; no serving, CLAIMS,
metrics, or lane pins moved.
2026-06-10 14:35:22 -07:00
..
state test(derivation): add ADR-0184 semantic replay equivalence harness 2026-06-10 14:35:22 -07:00
__init__.py feat(derivation): define semantic-ledger candidate source boundary 2026-06-10 13:17:53 -07:00
accumulate.py feat(derivation): define semantic-ledger candidate source boundary 2026-06-10 13:17:53 -07:00
clauses.py feat(adr-0178-gb1): clause segmentation + clause-local sub-derivation 2026-05-28 17:19:50 -07:00
comparatives.py
compose.py feat(adr-0178-gb3a): clause-scoped referent guard — refuse cross-clause aggregation (#456) 2026-05-29 09:15:52 -07:00
extract.py feat(adr-0163-f2): EX-6 hyphen-bonded unit extraction — pseudo-accumulation confusers refuse (wrong 7->5) (#473) 2026-05-29 12:23:26 -07:00
goal_residual.py feat(r4): flip cv-0005 to serving — train_sample 6/44/0 -> 7/43/0 (ADR-0207 §5 step 2) 2026-06-03 22:20:12 -07:00
model.py
multistep.py feat(adr-0177-cp2a): cue-precision ledger training + measurement (+ unit hygiene) (#461) 2026-05-29 10:21:58 -07:00
pool.py feat(derivation): define semantic-ledger candidate source boundary 2026-06-10 13:17:53 -07:00
product_bridge.py feat(adr-0195): GSM8K product promotion bridge — serving 4/46/0 → 6/44/0, wrong=0 (#500) 2026-05-30 17:33:56 -07:00
r1_reconstruction.py feat(derivation): define semantic-ledger candidate source boundary 2026-06-10 13:17:53 -07:00
search.py feat(adr-0182): cross-composer disagreement pooling — distractor 0014 + disguised-polarity refuse (confuser wrong 5->2) (#476) 2026-05-29 13:22:19 -07:00
target.py feat(adr-0182): prior-state question guard — temporal-scope confuser refuses (confuser wrong 2->1, pair-tells ->0) (#480) 2026-05-29 14:22:28 -07:00
verify.py feat(derivation): math-serving reach seam — select_self_verified is policy-aware (ADR-0206 §5) 2026-06-06 15:46:14 -07:00