ADR-0264 — negative curriculum, premise scope, and what a curriculum band can earn (Phase A) #116

Merged
core-labs merged 1 commit from docs/adr-negative-curriculum into main 2026-07-25 23:21:43 +00:00
Owner

Phase A of the curriculum-license-loop arc. Design only — no production code, no flag, no default changed.

Merge before test/volume-honesty-invariant (Phase B), which is stacked on this branch. Merge-commit, not squash.

What this decides

Nine rules (R1–R9). Polarity is a row-level polarity field, absent ⇒ affirmative, so all 88 existing rows are unchanged. Negatives compile to the sentential-not form and must reuse the affirmative connective. Contradiction is rejected at ratification. Premise compilation becomes query-scoped. An empty scope is UNKNOWN. premise_count keeps reporting family size. The oracle learns polarity independently. A band's honest ceiling must be reported before anyone authors for it.

Three findings, each reversing something

1. polarity is read by nothing, and a negative row serves a confident wrong "Yes."

A row authored today with "polarity": "negative" compiles to the affirmative sentence, so the question it was written to refute answers entailed — surfaced as "Yes — my physics curriculum teaches that acceleration requires charge, directly." The independent oracle ignores the field for the same reason, so gold agrees with the wrong answer and wrong=0 stays green. This is the silent-failure class Phase A existed to prevent, now demonstrated rather than hypothesised. Sharpens ADR-0262 §5.2, which said only that refuted was "unreachable."

2. The 16-premise cap makes ADR-0262 §5.1's own remedy destroy the capability.

compile_premises emits every chain in the family; read_verb_argument refuses past MAX_PREMISE_SENTENCES = 16. Measured end to end: at 16 premises the band answers, at 17 it declines everything — including conservation requires symmetry, which works today.

§5.1 prescribes authoring ≈219 relations per band. §6 scopes premise-set scaling out on the grounds that "no current family exceeds 9" and the fix can wait. Those two sections are in contradiction: §5.1's remedy trips §6's deferred fix at row 17 and collapses the band for the remaining 202 rows.

Jointly, and this is the headline: a taught edge yields exactly one entailed question, so a band has ≤16 entailed cases against a 657-committed threshold. Reaching 657 needs a ledger ≥97.6% non-entailed, which §5.1 itself already rules unacceptable. No curriculum band can earn a SERVE license as the architecture stands, and the blocker is engineering, not content — inverting the conclusion two arcs closed on.

3. Eight of eleven bands cannot reach 657 even with unlimited authoring.

Honest volume is bounded by taught vocabulary, not corpus size, because a question routes only if exactly one served subject holds both terms. Physics has 16 lemmas.

band chains max honest n vs 657
curriculum_physics_causal 7 720 reachable (needs 91% of its space)
curriculum_physics_modal 9 480 impossible
curriculum_systems_software_causal 7 630 impossible
… 5 more at 210–420 impossible
curriculum_philosophy_theology_contrast 8 22,052 reachable
curriculum_philosophy_theology_modal 8 44,104 reachable

The plan of record's chosen first content target is one of the impossible ones. physics · modal was picked for having the most chains. Chain count is not the constraint. Retarget: philosophy_theology · modal — same 8-chain start, 67× the threshold.

Evidence

R5 is the only rule that could change an existing answer, so it is the only one carrying evidence: 8,520 routable questions, 0 verdict mismatches for both candidate scopes. Verdict-identity holds for any scope that is a superset of the query-atom rows, because each compiled premise mints one independent propositional atom. That is stronger than ADR-0262 §6's soundness argument — a merely sound narrowing can still lose true entailments, which is coverage loss in exactly the class the license counts, and is the ADR-0261 §5.1 shape. Physics gold is preserved exactly: entailed 14 / unknown 12 / declined 6.

Also confirms physics · modal holds 9 chains not 8 (physics-causal-008 declares operator_family: causal but its connective is requires, and the connective is the sole family authority) — which is where the plan's n=9 came from. And a correction to my own plan text: bands key on the connective-derived family, not the row's operator_family field, which no code in this path reads.

Cross-references

ADR-0262 §5.1, §5.2 and §6 carry forward-pointers; original text preserved unchanged. Added to INDEX-by-domain.md.

Reproduction

Four probes in docs/research/curriculum-premise-scope-2026-07-25.md, each runnable against a clean tree. The corpus-mutating one restores the file and asserts byte-identity.

[Verification]: uv sync --locked on canonical CPython 3.12.13; in-worktree core test --suite smoke -q 556 passed (555 baseline + 1 — the derived ratify-on-merge pin from #114 picked up ADR-0264 as a new parametrized case and discharged it), --suite deductive -q 285 passed.

Phase A of the curriculum-license-loop arc. **Design only** — no production code, no flag, no default changed. Merge **before** `test/volume-honesty-invariant` (Phase B), which is stacked on this branch. Merge-commit, not squash. ## What this decides Nine rules (R1–R9). Polarity is a row-level `polarity` field, absent ⇒ affirmative, so all 88 existing rows are unchanged. Negatives compile to the sentential-not form and **must reuse the affirmative connective**. Contradiction is rejected at ratification. Premise compilation becomes query-scoped. An empty scope is UNKNOWN. `premise_count` keeps reporting family size. The oracle learns polarity independently. A band's honest ceiling must be reported before anyone authors for it. ## Three findings, each reversing something **1. `polarity` is read by nothing, and a negative row serves a confident wrong "Yes."** A row authored today with `"polarity": "negative"` compiles to the *affirmative* sentence, so the question it was written to refute answers `entailed` — surfaced as *"Yes — my physics curriculum teaches that acceleration requires charge, directly."* The independent oracle ignores the field for the same reason, so **gold agrees with the wrong answer and `wrong=0` stays green.** This is the silent-failure class Phase A existed to prevent, now demonstrated rather than hypothesised. Sharpens ADR-0262 §5.2, which said only that `refuted` was "unreachable." **2. The 16-premise cap makes ADR-0262 §5.1's own remedy destroy the capability.** `compile_premises` emits every chain in the family; `read_verb_argument` refuses past `MAX_PREMISE_SENTENCES = 16`. Measured end to end: at 16 premises the band answers, at 17 it declines *everything* — including `conservation requires symmetry`, which works today. §5.1 prescribes authoring ≈219 relations per band. §6 scopes premise-set scaling out on the grounds that "no current family exceeds 9" and the fix can wait. Those two sections are in contradiction: §5.1's remedy trips §6's deferred fix at row 17 and collapses the band for the remaining 202 rows. Jointly, and this is the headline: a taught edge yields exactly one `entailed` question, so a band has **≤16 entailed cases** against a **657-committed** threshold. Reaching 657 needs a ledger ≥97.6% non-entailed, which §5.1 itself already rules unacceptable. **No curriculum band can earn a SERVE license as the architecture stands, and the blocker is engineering, not content** — inverting the conclusion two arcs closed on. **3. Eight of eleven bands cannot reach 657 even with unlimited authoring.** Honest volume is bounded by taught *vocabulary*, not corpus size, because a question routes only if exactly one served subject holds both terms. Physics has 16 lemmas. | band | chains | max honest n | vs 657 | |---|---|---|---| | curriculum_physics_causal | 7 | 720 | reachable (needs 91% of its space) | | **curriculum_physics_modal** | **9** | **480** | **impossible** | | curriculum_systems_software_causal | 7 | 630 | impossible | | … 5 more at 210–420 | | | impossible | | curriculum_philosophy_theology_contrast | 8 | 22,052 | reachable | | curriculum_philosophy_theology_modal | 8 | 44,104 | reachable | **The plan of record's chosen first content target is one of the impossible ones.** `physics · modal` was picked for having the most chains. Chain count is not the constraint. Retarget: `philosophy_theology · modal` — same 8-chain start, 67× the threshold. ## Evidence R5 is the only rule that could change an existing answer, so it is the only one carrying evidence: **8,520 routable questions, 0 verdict mismatches** for both candidate scopes. Verdict-identity holds for any scope that is a superset of the query-atom rows, because each compiled premise mints one *independent* propositional atom. That is stronger than ADR-0262 §6's soundness argument — a merely *sound* narrowing can still lose true entailments, which is coverage loss in exactly the class the license counts, and is the ADR-0261 §5.1 shape. Physics gold is preserved exactly: `entailed 14 / unknown 12 / declined 6`. Also confirms `physics · modal` holds **9** chains not 8 (`physics-causal-008` declares `operator_family: causal` but its connective is `requires`, and the connective is the sole family authority) — which is where the plan's `n=9` came from. And a correction to my own plan text: bands key on the *connective-derived* family, not the row's `operator_family` field, which no code in this path reads. ## Cross-references ADR-0262 §5.1, §5.2 and §6 carry forward-pointers; **original text preserved unchanged**. Added to `INDEX-by-domain.md`. ## Reproduction Four probes in `docs/research/curriculum-premise-scope-2026-07-25.md`, each runnable against a clean tree. The corpus-mutating one restores the file and asserts byte-identity. [Verification]: `uv sync --locked` on canonical CPython 3.12.13; in-worktree `core test --suite smoke -q` **556 passed** (555 baseline + 1 — the derived ratify-on-merge pin from #114 picked up ADR-0264 as a new parametrized case and discharged it), `--suite deductive -q` **285 passed**.
core-labs added 1 commit 2026-07-25 23:12:13 +00:00
Phase A of the curriculum-license-loop arc. Design only; no production code,
no flag, no default changed.

Rules R1-R9: polarity is a row-level field (absent => affirmative), negatives
compile to the sentential-not form and MUST reuse the affirmative connective
(atom identity), contradiction is rejected at ratification, premise
compilation becomes query-scoped, an empty scope is UNKNOWN, premise_count
keeps reporting family size, the oracle learns polarity independently, and a
band's honest ceiling must be reported before anyone authors for it.

Three findings, each measured in-tree and each reversing something:

1. `polarity` is read by nothing. A row authored to refute a question today
   serves a confident wrong "Yes" -- and the independent oracle ignores the
   field for the same reason, so gold agrees and wrong=0 stays green. This is
   the silent-failure class Phase A existed to prevent, now demonstrated.

2. The 16-premise honesty cap holds a family to <=16 chains; at 17 the band
   declines everything, including the taught positive that works today. So
   ADR-0262 §5.1's own remedy (author ~219 relations) destroys the capability
   at row 17, tripping the fix §6 deferred as a future contingency. Jointly:
   a band has <=16 entailed cases against a 657-committed threshold, so no
   curriculum band can earn SERVE until scoping lands. The blocker is
   engineering, not content -- inverting the conclusion two arcs closed on.

3. Honest volume is bounded by taught vocabulary, not corpus size. 8 of 11
   bands cannot reach 657 at all, including the plan's chosen first target
   physics·modal (ceiling 480, counting every possible question). Retargets
   Phase F to philosophy_theology·modal (ceiling 44,104, same 8-chain start).

R5 is the only rule that could change an existing answer, so it is the only
one carrying evidence: 8,520 routable questions, 0 verdict mismatches for both
candidate scopes. Verdict-identity holds for any scope that is a superset of
the query-atom rows, since each premise mints one independent atom. That is
stronger than ADR-0262 §6's soundness argument, and it is why this narrowing
is not the ADR-0261 §5.1 premise-dropping failure.

ADR-0262 §5.1/§5.2/§6 carry forward-pointers; original text preserved.

[Verification]: uv sync --locked on canonical CPython 3.12.13; in-worktree
`core test --suite smoke -q` 556 passed (555 baseline + 1: the derived
ratify-on-merge pin picked up ADR-0264 and discharged it), `--suite
deductive -q` 285 passed. Four probes reproducible from
docs/research/curriculum-premise-scope-2026-07-25.md; the corpus-mutating one
restores the file and asserts byte-identity.
core-labs merged commit f6cde8a8a3 into main 2026-07-25 23:21:43 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: core-labs/core#116
No description provided.