Documentation-only amendment to ADR-0114. Locks in the 10-point falsifiable proof framework that any future `expert` ledger-tier promotion (ADR-0120+) MUST require. The obligations: 1. Sealed-holdout discipline 2. OOD surface variation ≥ 0.95 of public 3. Every correct answer ships with replay-equal trace 4. Refusal is first-class; misparse rate zero; zero `wrong` answers 5. Reasoning-isolation perturbation suite (invariance + predictable change) 6. Compositional-depth curve flat within documented ε 7. Frontier-baseline comparison on identical items, published 8. Adversarial generation; misparse rate zero 9. Determinism across release boundaries 10. Operation provenance via the pack (not hardcoded strings) Each obligation is load-bearing and falsifiable: a domain that cannot satisfy any one stays at `audit-passed`. ADR-0114a binds ADR-0116..ADR-0120 to carry the obligations into implementation; ADR-0120 finally invokes all ten as hard gates. The audit-passed tier (ADR-0106/0109/0113) is unaffected. The two tiers measure orthogonal properties: audit-passed verifies CORE claim-shape compliance (transformer-unreachable invariants); expert verifies capability with anti-overfitting proof. No code change. Pure forward contract for the next phase of work. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
15 KiB
ADR-0114a — Anti-Overfitting Proof Obligations for expert Promotion
Status: Accepted (documentation-only; no code change) Date: 2026-05-22 Author: CORE agents + reviewers Type: Amendment to ADR-0114 Depends on: ADR-0091, ADR-0105, ADR-0106, ADR-0109, ADR-0113, ADR-0114, ADR-0115
Context
ADR-0113 reserved the expert namespace for a future ledger tier above
audit-passed. ADR-0114 laid out a 7-phase arc toward a first expert
promotion (GSM8K-math), with ADR-0120 designated as the eventual
"first expert promotion contract."
The intervening discussion surfaced a load-bearing question: how
does CORE prove a domain's expert claim is reasoning from concepts
rather than pattern-matching from seen examples? This is the
distinguishing question for any capability claim beyond the structural
asymmetries audit-passed already verifies. An LLM scoring 95% on a
benchmark may be memorizing or surface-pattern-matching; the claim
"reasons from concepts" requires structural evidence that cannot be
faked.
The audit-passed gate does not need this discussion — it verifies
claim shapes (signed digest, replay determinism, typed refusal,
exact recall) that transformer LLMs structurally cannot produce
regardless of accuracy. But the moment a domain reaches for expert
on a public benchmark, that's a raw-capability comparison, and the
"is it actually reasoning?" question is the only credibility-bearing
question.
ADR-0114a writes down, before any expert promotion code is built,
the 10-point proof framework that ADR-0120's promotion contract must
enforce.
Decision
The eventual expert promotion contract (ADR-0120) MUST require all
ten obligations below. Each obligation is load-bearing and
falsifiable: a domain that cannot satisfy any one of them stays at
audit-passed.
These obligations apply to every expert promotion, not just
GSM8K-math. Future expert domains (symbolic logic, DSL codegen,
etc.) inherit the same framework; per-domain specializations may
add further requirements but cannot weaken these.
Obligation 1 — Sealed-holdout discipline
Requirement. The capability benchmark must include a held-out split that is never read by any CORE component during development. Holdout sealing per ADR-0105 (age-encrypted, recipient-keyed).
Falsification. If commit history shows any access to the holdout cases during the window between dev-set authoring and the release event, the promotion is invalid.
Status. Substrate already in place (ADR-0105 sealed holdouts; ADR-0114 §5 GSM8K-test-set-is-holdout commitment). Per-lane enforcement lands in ADR-0119.
Obligation 2 — OOD surface variation must score ≥ 0.95 of dev
Requirement. A capability lane that scores S on its public
split must score ≥ 0.95 · S on a programmatically-derived
out-of-distribution split that holds the underlying graph constant
but varies surface form:
- Entity-name renaming
- Unit relabeling (apples → nebulae, dollars → drachmas)
- Number-magnitude scaling (multiply all by k; for linear-arithmetic domains, answer must scale by k)
- Independent-sentence reordering
If CORE handles graph G correctly, it should handle every surface that lexes to graph G. A drop > 5% from public to OOD signals surface-feature dependence rather than reasoning from concepts.
Falsification. Score the same graphs through three surface
renderings; if the lowest-scoring rendering falls below
0.95 · public_score, the promotion is invalid.
Status. OOD generator authoring required. Likely ADR-0118 (stepped realizer extension can do double duty) or a separate ADR-0118a.
Obligation 3 — Every correct answer ships with a replay-equal trace
Requirement. For every problem CORE marks "correct" on the
public + holdout splits, an inspectable SolutionTrace artifact
exists with:
- Ordered sequence of operations
- Each operation tagged with the pack-lemma identifier it invokes (operation provenance)
- A byte-deterministic trace hash
- Verifier (ADR-0117) re-applies the trace and reproduces the declared answer
Falsification. If any "correct" answer cannot be paired with a trace whose replay reproduces the answer, the promotion is invalid. A trace that reproduces the wrong answer is more useful than no trace at all — the wrong answer is then known to be a real CORE mistake, not a fake reasoning artifact.
Status. Trace produced by ADR-0116 (solver). Verifier in ADR-0117.
Obligation 4 — Refusal is a first-class outcome; misparse rate is zero
Requirement. Every problem produces exactly one of three outcomes:
correct— answer matches ground truth AND trace replayswrong— answer differs from ground truth (trace may still replay)refused— typedParseError/SolveErrorwith a reason naming the unsupported construction
The expert threshold per ADR-0120 must require zero wrong
answers. A high refused rate is acceptable and informative; a
nonzero wrong rate fails the gate. CORE cannot claim to reason if
it sometimes produces silent confabulations.
The distinction vs. LLMs is intentional: a frontier LLM scoring 95% on GSM8K typically has ~5% wrong and ~0% refused (it confabulates when uncertain). CORE's expert claim requires the opposite shape: high correct + nonzero refused + zero wrong.
Falsification. Any verified wrong answer on the public or holdout split — where "verified wrong" means the trace replays but yields a value differing from ground truth — invalidates the promotion.
Status. Parser (ADR-0115 Phase 1.3) already enforces typed refusal; solver (ADR-0116) must enforce the same discipline. The zero-wrong-on-public requirement is per-domain calibration; ADR-0120 sets it.
Obligation 5 — Reasoning-isolation perturbation suite
Requirement. A programmatic perturbation generator produces an unbounded test suite by applying invariance-preserving and invariance-breaking transforms to dev/holdout cases:
| Transform | Expected behavior |
|---|---|
| Rename all entities | Answer unchanged |
| Rename all units | Answer unchanged |
| Multiply all numbers by k | Answer × k (linear domains); changes predictably (general) |
| Reorder independent sentences | Answer unchanged |
| Swap order of non-commuting operations | Answer changes predictably |
| Replace verb with synonym in registry | Answer unchanged |
CORE must pass 100% of invariance-preserving perturbations and produce the predicted change on every invariance-breaking one. A pattern-matcher that learned superficial features fails some perturbations; a system reasoning from concepts passes all.
Falsification. ≥ 1% perturbation failure on any single transform class invalidates the promotion.
Status. Generator authoring required. New ADR (likely ADR-0119 subsidiary or its own).
Obligation 6 — Compositional-depth curve published
Requirement. Score correctness as a function of reasoning depth
(number of operations in the ground-truth graph). Publish the depth-
vs-accuracy curve from depth 1 through the maximum depth in the
benchmark. The curve must be approximately flat — accuracy at
depth N should not drop by more than 1 − (1 − ε)^N for some
documented ε, where ε represents per-step parser/solver error.
A monotonically-decreasing curve indicates probabilistic accumulation of errors; a flat curve indicates the architecture handles N-step problems by the same mechanism as 1-step problems.
For comparison, LLM GSM8K curves typically decay sharply past depth 4-5. CORE's curve should not.
Falsification. If any depth bucket scores below (1 − ε)^N
for the documented ε, the promotion is invalid (or ε must be
raised, with justification, in the published curve).
Status. Measurement only; no new code. Computed at promotion time.
Obligation 7 — Frontier-baseline comparison on identical items
Requirement. Run the holdout split through at least one frontier LLM baseline (citation-only, no live API call) and publish:
- Both raw scores
- A per-item disagreement matrix (CORE-correct × LLM-correct, -wrong, -refused/n/a; CORE-refused × LLM-correct, -wrong; etc.)
- Trace replay verification for every CORE-correct answer
The interesting cell — and the honest one to publish — is "LLM correct ∧ CORE refused". Those are problems where rule-based grammar caps out; refusing them is correct behavior but it leaves capability on the table. The size of this cell is a public, durable measurement of CORE's current grammar coverage vs. frontier LLM breadth. ADR-0120's expert threshold sets a maximum acceptable size.
Falsification. If the comparison report cannot demonstrate trace replay on every CORE-correct answer, the promotion is invalid.
Status. Pattern established by ADR-0045 (long-context comparison); GSM8K equivalent landed in ADR-0119.
Obligation 8 — Adversarial generation; misparse rate zero
Requirement. A separate generator produces problems specifically designed to exploit weak grammar / solver coverage:
- Edge-case phrasings within the documented grammar
- Problems combining patterns in untested ways
- Problems with deceptive surface (e.g. red-herring numbers)
Every adversarial problem must produce one of: correct, refused,
or — never — silent misparse. A misparse is defined as: parser
produces a graph that does NOT correspond to the surface meaning AND
the resulting answer is wrong.
Misparse rate must be zero on the adversarial suite. Refused rate may be arbitrarily high; that's the safe failure mode.
Falsification. Any single observed misparse (graph + answer disagreement with the surface) invalidates the promotion.
Status. Generator authoring required; likely under ADR-0119.
Obligation 9 — Determinism across release boundaries
Requirement. Same problem text + same pack revision + same solver revision → byte-equal trace hash across N runs (N ≥ 100) and across at least one re-build of the runtime (proves no floating-point-platform drift, no thread-order drift, no random seed drift).
Falsification. Any non-determinism observation invalidates the promotion until the source is identified and eliminated.
Status. Already an architectural invariant of CORE (versor-closure, replay-determinism). Per-lane test gates run at promotion time.
Obligation 10 — Operation provenance via the pack
Requirement. Every operation in every published SolutionTrace
dispatches through a math-pack (or relevant-domain-pack) lemma
identifier, not a hardcoded string in solver code. The trace
includes the resolved lemma id for every operation, and changing the
pack changes the resolved set deterministically.
This obligation makes "reasons from concepts" architecturally true rather than rhetorical. Without it, the parser-to-pack binding is informal and the claim "the math pack provides the operation vocabulary" is decorative.
Falsification. If any operation in a published trace cannot resolve to a pack-lemma id, the promotion is invalid.
Status. Currently informal (parser hardcodes verb→operation-kind mapping in ADR-0115 Phase 1.3). Closing this gap is in-scope for ADR-0116 (solver). ADR-0114a documents the requirement; ADR-0116 implements the binding.
Acceptance & enforcement
ADR-0114a is a documentation-only contract. No code lands with this ADR.
It binds future ADRs:
- ADR-0116 (solver) — must add operation-provenance binding (#10) and trace shape that supports #3.
- ADR-0117 (verifier) — must produce replay-verdicts that support #3 and #9.
- ADR-0118 / ADR-0118a (realizer + OOD surface generator) — must produce OOD-rendering capability for #2.
- ADR-0119 (GSM8K eval lane) — must wire #1, #6, #7, #8 into the lane runner.
- ADR-0120 (first expert promotion contract) — must require all 10 obligations as hard gates, including the explicit numeric thresholds (zero wrong; ≥ 0.95·S on OOD; flat depth curve within documented ε).
Each downstream ADR cites which obligation it discharges. ADR-0120 finally invokes all ten.
Invariants
adr_0114a_obligations_enumerated
The 10 obligations above are the complete, ordered list. Adding an obligation, removing one, or weakening one requires a numbered amendment ADR. The list itself is sticky.
adr_0114a_no_silent_overfit
Any future expert promotion ADR that omits one of the ten
obligations from its acceptance criteria is invalid. Reviewers
checking promotion ADRs MUST verify the obligations checklist is
populated. Skipping the checklist is grounds for refusal at review.
adr_0114a_audit_passed_unaffected
ADR-0114a does NOT amend ADR-0106 / ADR-0109 / ADR-0113. The
audit-passed gate continues to verify CORE claim-shape compliance
(signed digest + replay determinism + typed refusal + exact recall)
without any of these ten obligations. The two tiers measure
orthogonal properties.
Out of scope
- Specific numeric thresholds. Those belong to ADR-0120 (e.g. "depth curve ε ≤ 0.02"; "OOD score ≥ 0.95 · public_score"). ADR-0114a documents the shape of each obligation, not the numbers.
- Implementation of the perturbation generator. Future ADR.
- Implementation of the adversarial generator. Future ADR.
- LLM-vendor selection for #7 (frontier comparison). ADR-0045 set the convention (citation, not live API); ADR-0119 picks the specific baseline.
- Domains beyond mathematics_logic. The framework is domain-agnostic; each future expert domain (symbolic logic, DSL codegen, ...) inherits it. Per-domain specializations may add obligations but cannot remove any of these ten.
- Writing / open-prose capability. Even with all ten obligations
satisfied, prose-domain
expertclaims need additional discussion (what "correct" means for prose is fuzzily defined); deferred per ADR-0114 §Phase F.
Consequences
- The repo carries a public, dated commitment to a falsifiable proof
framework for any future
expertclaim. The "are you sure you're reasoning, not pattern-matching?" question has a written answer: the 10 obligations, every one checkable. - ADR-0116 / ADR-0117 / ADR-0118 / ADR-0119 / ADR-0120 each gain a subset of these obligations as scope items. Each downstream ADR cites which obligations it discharges.
- The
audit-passedtier and theexperttier remain cleanly distinguished. Audit-passed verifies claim shapes (transformer-unreachable invariants); expert verifies capability with anti-overfitting proof. A domain can be one without the other, though in practiceaudit-passedis a prerequisite forexpert. - External readers (reviewers, investors, skeptics) now have
an enumerated checklist to evaluate any future
expertclaim against. Promotions that omit obligations are easily distinguished from promotions that satisfy them.
Open candidate directions (no ADR yet)
- Cross-domain transfer probes. Once two domains land at
expert, can CORE solve a problem that requires combining operations from both packs (e.g. physics-units-aware arithmetic)? Not part of these 10 obligations but a natural next-tier question. - Adversarial generation budget. How many adversarial problems is "enough" for #8? Likely answer: keep generating until refused rate stabilizes. ADR-0119 picks the convention.
- Frontier baseline freshness. ADR-0045's citation freezes vendor numbers at a point in time. Frontier scores drift up; CORE's comparison should be re-cited periodically. The cadence is a governance choice deferred to a future ADR.