docs(ADR-0131): add proof-corridor hardening implementation plan
Docs-only coordination artifact for the ADR-0131 post-GSM8K pivot. Adds an implementation plan that defines the composite proof corridor, claim boundaries, phase sequencing, and non-negotiable acceptance gates.
This commit is contained in:
parent
922045e086
commit
d04c433eda
1 changed files with 334 additions and 0 deletions
334
docs/implementation/ADR-0131-proof-corridor-plan.md
Normal file
334
docs/implementation/ADR-0131-proof-corridor-plan.md
Normal file
|
|
@ -0,0 +1,334 @@
|
||||||
|
# ADR-0131 Proof Corridor Hardening Plan
|
||||||
|
|
||||||
|
**Status:** Coordination / implementation plan
|
||||||
|
**Date:** 2026-05-23
|
||||||
|
**Branch:** `docs/adr-0131-proof-corridor-hardening`
|
||||||
|
**Scope:** Docs-only guardrail for the post-GSM8K pivot.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Executive verdict
|
||||||
|
|
||||||
|
The ADR-0122 through ADR-0128 math arc produced a useful and honest result:
|
||||||
|
|
||||||
|
```text
|
||||||
|
GSM8K-style coverage: 0 correct / 0 wrong / all refused
|
||||||
|
```
|
||||||
|
|
||||||
|
That result should not be treated as a failure of the project doctrine. It is evidence that the current deterministic math substrate is preserving the most important invariant (`wrong == 0`) while refusing problems whose natural-language shape exceeds the parser grammar contract.
|
||||||
|
|
||||||
|
The pivot in ADR-0131 is therefore directionally correct: stop optimizing the `mathematics_logic` expert gate around raw GSM8K coverage and retarget it to a composite proof corridor that measures CORE's actual strengths:
|
||||||
|
|
||||||
|
1. deterministic symbolic exactness,
|
||||||
|
2. internal consistency with ratified teaching substrate,
|
||||||
|
3. bounded natural-language grammar competence,
|
||||||
|
4. refusal-first behavior on out-of-contract inputs,
|
||||||
|
5. sealed-eval discipline and byte-equal replay.
|
||||||
|
|
||||||
|
The danger now is over-reading the first symbolic-equivalence v1 lane. A narrow 30-case, single-variable, integer-polynomial normalizer result is useful as a substrate bootstrap. It is not, by itself, expert proof.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Claim boundaries
|
||||||
|
|
||||||
|
### Proven enough to rely on
|
||||||
|
|
||||||
|
- The GSM8K parser-expansion path is a poor promotion gate for the current architecture.
|
||||||
|
- `wrong == 0` remains the correct hard invariant.
|
||||||
|
- Candidate-graph parsing plus verifier filtering is the right topology for bounded grammar work.
|
||||||
|
- ADR-0131's three-benchmark composite pattern is the right replacement shape.
|
||||||
|
|
||||||
|
### Not yet proven
|
||||||
|
|
||||||
|
- General mathematical reasoning.
|
||||||
|
- GSM8K competence.
|
||||||
|
- Broad natural-language word-problem competence.
|
||||||
|
- `mathematics_logic` expert promotion.
|
||||||
|
- That symbolic-equivalence v1 is powered by the full CORE runtime rather than a deterministic adjacent normalizer.
|
||||||
|
- That learning / teaching-corpus growth scales without corrupting invariants.
|
||||||
|
|
||||||
|
### Language to avoid until the composite gate passes
|
||||||
|
|
||||||
|
Do not describe ADR-0131.1 v1 as:
|
||||||
|
|
||||||
|
- "math expert proof",
|
||||||
|
- "CORE solves algebra",
|
||||||
|
- "expert promotion achieved",
|
||||||
|
- "GSM8K replacement completed",
|
||||||
|
- "general math reasoning",
|
||||||
|
- "model-level proof" unless the runtime integration and replay artifact demonstrate that boundary.
|
||||||
|
|
||||||
|
Preferred language:
|
||||||
|
|
||||||
|
> "ADR-0131.1 establishes the first symbolic-equivalence substrate and lane scaffold. It is one component of the larger composite expert-promotion corridor."
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## The proof corridor
|
||||||
|
|
||||||
|
ADR-0131 should mature into a single executable corridor:
|
||||||
|
|
||||||
|
```text
|
||||||
|
symbolic exactness
|
||||||
|
+ CORE-native teaching consistency
|
||||||
|
+ bounded-grammar word problems
|
||||||
|
+ adversarial refusal probes
|
||||||
|
+ sealed holdouts
|
||||||
|
+ byte-equal replay
|
||||||
|
+ expert-claim artifact
|
||||||
|
```
|
||||||
|
|
||||||
|
A pass on any one lane is insufficient. A pass on all three lanes, with `wrong == 0` and sealed/replay evidence, is the meaningful claim.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Phase plan
|
||||||
|
|
||||||
|
### Phase 0131.1.B — Harden symbolic equivalence
|
||||||
|
|
||||||
|
Purpose: turn the current v1 substrate into the real Benchmark 1 described by ADR-0131.
|
||||||
|
|
||||||
|
Required work:
|
||||||
|
|
||||||
|
- Expand dataset from 30 hand-curated cases to approximately 300-500 cases.
|
||||||
|
- Add a public split and sealed holdout using the ADR-0119.7 / ADR-0105 sealing pattern.
|
||||||
|
- Add multi-variable polynomial support (`x`, `y`, `z`, etc.).
|
||||||
|
- Add exact rational coefficients with `Fraction`; no floats.
|
||||||
|
- Add equation normalization by moving both sides to canonical zero form.
|
||||||
|
- Add randomized/property-generated cases with committed seeds.
|
||||||
|
- Add metamorphic checks:
|
||||||
|
- term reordering,
|
||||||
|
- adding zero,
|
||||||
|
- multiplying by one,
|
||||||
|
- distributing nested parentheses,
|
||||||
|
- expand/factor equivalence where supported.
|
||||||
|
- Add adversarial refusal cases:
|
||||||
|
- unsupported functions,
|
||||||
|
- malformed syntax,
|
||||||
|
- unsupported symbolic division until rational expressions are implemented,
|
||||||
|
- variable/scope violations,
|
||||||
|
- overflow/size caps.
|
||||||
|
- Pin byte-equal `report.json` replay.
|
||||||
|
|
||||||
|
Acceptance:
|
||||||
|
|
||||||
|
```text
|
||||||
|
correct_rate >= 0.95 on public split
|
||||||
|
correct_rate >= 0.95 on sealed holdout
|
||||||
|
wrong == 0 on both
|
||||||
|
report replay byte-equal
|
||||||
|
all refusal reasons typed and stable
|
||||||
|
```
|
||||||
|
|
||||||
|
Implementation caution:
|
||||||
|
|
||||||
|
The normalizer may remain deterministic and symbolic, but the report must distinguish:
|
||||||
|
|
||||||
|
| Layer | What it proves |
|
||||||
|
|---|---|
|
||||||
|
| normalizer | algebraic canonicalization works |
|
||||||
|
| lane runner | benchmark method works |
|
||||||
|
| CORE integration | runtime can invoke / expose the capability |
|
||||||
|
| promotion artifact | expert claim is auditable |
|
||||||
|
|
||||||
|
Do not collapse these into one claim.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Phase 0131.2 — CORE-native teaching-corpus eval
|
||||||
|
|
||||||
|
Purpose: prove internal consistency with ratified teaching substrate, without self-deceptive self-grading.
|
||||||
|
|
||||||
|
Required work:
|
||||||
|
|
||||||
|
- Define `evals/math_teaching_corpus_lane/`.
|
||||||
|
- Source cases from ratified math, numerics, and units packs.
|
||||||
|
- Include pack provenance and entry IDs in every case.
|
||||||
|
- Verify replay against the same pack versions.
|
||||||
|
- Add mutation/refusal probes for unratified or contradictory pack changes.
|
||||||
|
- Include correction-store examples only after review/proposal state is explicit.
|
||||||
|
- Track trace hashes and report byte-equality across replay.
|
||||||
|
|
||||||
|
Acceptance:
|
||||||
|
|
||||||
|
```text
|
||||||
|
correct_rate >= 0.95
|
||||||
|
wrong == 0
|
||||||
|
trace_hash byte-equal across replay
|
||||||
|
case provenance complete
|
||||||
|
unratified / contradictory cases refuse
|
||||||
|
```
|
||||||
|
|
||||||
|
Design warning:
|
||||||
|
|
||||||
|
This lane must not become circular. It is allowed to test internal consistency; it must not be the only proof of external capability.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Phase 0131.3 — Bounded-grammar word-problem lane
|
||||||
|
|
||||||
|
Purpose: replace the false "arbitrary GSM8K" target with an honest, inspectable natural-language grammar contract.
|
||||||
|
|
||||||
|
Required work:
|
||||||
|
|
||||||
|
- Define a closed grammar-shape registry, for example:
|
||||||
|
- `canonical_has_buys`,
|
||||||
|
- `canonical_has_uses`,
|
||||||
|
- `there_are_count`,
|
||||||
|
- `substance_qualifier`,
|
||||||
|
- `compare_additive`,
|
||||||
|
- `compare_multiplicative`,
|
||||||
|
- `unit_canonicalization`,
|
||||||
|
- `indefinite_quantifier_refusal`.
|
||||||
|
- Build approximately 150 cases.
|
||||||
|
- Each case must include:
|
||||||
|
- `case_id`,
|
||||||
|
- `shape_category`,
|
||||||
|
- source text,
|
||||||
|
- expected graph shape,
|
||||||
|
- expected answer or expected refusal,
|
||||||
|
- required pack entries,
|
||||||
|
- expected trace/replay artifact.
|
||||||
|
- Include adversarial near-miss cases that superficially resemble valid grammar but must refuse.
|
||||||
|
- Freeze grammar before evaluation; do not add cases that require future grammar expansion.
|
||||||
|
|
||||||
|
Acceptance:
|
||||||
|
|
||||||
|
```text
|
||||||
|
correct_rate >= 0.95 on public split
|
||||||
|
correct_rate >= 0.95 on sealed holdout
|
||||||
|
wrong == 0 including adversarial probes
|
||||||
|
out-of-grammar cases refuse with typed reason
|
||||||
|
trace/report replay byte-equal
|
||||||
|
```
|
||||||
|
|
||||||
|
Design warning:
|
||||||
|
|
||||||
|
This lane should not be "small GSM8K." It should be a formal, externally inspectable grammar proof.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Phase 0131.4 — Promotion gate wiring
|
||||||
|
|
||||||
|
Purpose: convert ADR-0131 from proposal/docs into executable promotion machinery.
|
||||||
|
|
||||||
|
Required work:
|
||||||
|
|
||||||
|
- Update `formation/ratify.py` as needed.
|
||||||
|
- Update `formation/promote.py` for `mathematics_logic` expert gate composition.
|
||||||
|
- Add a composite report builder.
|
||||||
|
- Include GSM8K stress-lane disclosure in the expert claim artifact.
|
||||||
|
- Require all three ADR-0131 benchmark lanes before promotion can pass.
|
||||||
|
|
||||||
|
Acceptance command target:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
core promote mathematics_logic --tier expert --report reports/math_expert_v1.json
|
||||||
|
```
|
||||||
|
|
||||||
|
The promotion should fail closed unless every lane result is present, fresh, digest-verified, and replay-compatible.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Phase 0131.5 — ADR-0120 amendment
|
||||||
|
|
||||||
|
Purpose: formally revise the original expert promotion contract.
|
||||||
|
|
||||||
|
Required work:
|
||||||
|
|
||||||
|
- Amend ADR-0120 or add companion ADR documenting the exact replacement of the GSM8K `correct_rate` requirement.
|
||||||
|
- Preserve the other ADR-0120 checks unless explicitly superseded.
|
||||||
|
- State that GSM8K remains a stress/disclosure lane, not a promotion gate.
|
||||||
|
- Record why this is not goalpost shifting:
|
||||||
|
- repeated zero-lift evidence,
|
||||||
|
- invariant preservation,
|
||||||
|
- new composite gate is stricter on `wrong == 0`,
|
||||||
|
- public/holdout replay discipline remains.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Phase 0131.6 — Final promotion attempt
|
||||||
|
|
||||||
|
Purpose: make one auditable `mathematics_logic` expert attempt.
|
||||||
|
|
||||||
|
Acceptance:
|
||||||
|
|
||||||
|
- Benchmark 1 passes public + sealed.
|
||||||
|
- Benchmark 2 passes replay and provenance checks.
|
||||||
|
- Benchmark 3 passes public + sealed.
|
||||||
|
- GSM8K stress result is disclosed honestly.
|
||||||
|
- Expert claims artifact includes digest, report paths, lane SHAs, and reviewer decision.
|
||||||
|
- Failure opens a named blocker ADR; success produces an accepted promotion ADR.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Immediate recommendation for the next engineer
|
||||||
|
|
||||||
|
Do not expand GSM8K parser work next.
|
||||||
|
|
||||||
|
Do not treat symbolic-equivalence v1 as proof of expert capability.
|
||||||
|
|
||||||
|
The highest-leverage next implementation branch is:
|
||||||
|
|
||||||
|
```text
|
||||||
|
feat/adr-0131-1b-symbolic-equivalence-hardening
|
||||||
|
```
|
||||||
|
|
||||||
|
Target that branch at Phase 0131.1.B only:
|
||||||
|
|
||||||
|
1. expand normalizer scope,
|
||||||
|
2. expand dataset,
|
||||||
|
3. add property/metamorphic tests,
|
||||||
|
4. add sealed holdout,
|
||||||
|
5. pin replay determinism,
|
||||||
|
6. keep claim language narrow.
|
||||||
|
|
||||||
|
That branch should not mix in Benchmark 2, Benchmark 3, or promotion wiring.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Non-negotiable gates
|
||||||
|
|
||||||
|
Every phase must preserve:
|
||||||
|
|
||||||
|
```text
|
||||||
|
wrong == 0
|
||||||
|
fail closed on missing evidence
|
||||||
|
typed refusals for out-of-scope inputs
|
||||||
|
byte-equal replay where claimed
|
||||||
|
sealed holdouts for external-facing lanes
|
||||||
|
no expert claim until the full composite gate passes
|
||||||
|
```
|
||||||
|
|
||||||
|
These gates are more important than coverage.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Reviewer checklist
|
||||||
|
|
||||||
|
Before merging any ADR-0131 follow-up, ask:
|
||||||
|
|
||||||
|
1. Does this PR increase proof strength, or merely increase apparent coverage?
|
||||||
|
2. Does it preserve `wrong == 0` under adversarial near-miss cases?
|
||||||
|
3. Does it distinguish normalizer/tool capability from CORE runtime/model capability?
|
||||||
|
4. Is the dataset sealed where external claims depend on it?
|
||||||
|
5. Is replay byte-equal?
|
||||||
|
6. Are refusal reasons typed and stable?
|
||||||
|
7. Is claim language narrower than the evidence?
|
||||||
|
8. Does the branch keep one coherent scope?
|
||||||
|
|
||||||
|
If any answer is no, the PR should not promote capability claims.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Strategic public framing
|
||||||
|
|
||||||
|
The public-safe claim should be:
|
||||||
|
|
||||||
|
> CORE demonstrates bounded-domain verified reasoning with deterministic replay, auditable traces, refusal-first behavior, and sealed-eval discipline.
|
||||||
|
|
||||||
|
The claim should not be:
|
||||||
|
|
||||||
|
> CORE broadly beats LLMs at math.
|
||||||
|
|
||||||
|
The former is true to the architecture. The latter is not yet proven.
|
||||||
Loading…
Reference in a new issue