feat(deduction-serve): Band v4-CM — conditional-membership fusion, decided (ADR-0259) #109

Merged
core-labs merged 1 commit from feat/conditional-membership-band into main 2026-07-24 17:40:53 +00:00
Owner

Summary

Composes v2-EN's connective grammar (if/then, or, and, either) with
v3-MEM's singular-membership sentence reading over one shared
per-individual atom space — the exact gap ADR-0258 §6.1 reserved:

If Socrates is a man then Socrates is mortal. Socrates is a man.
Therefore Socrates is mortal.
→ Given: if socrates is a man then socrates is mortal; socrates is a
man. Your premises entail: socrates is mortal.

This is genuine fusion, not just coexistence — a bare universal's
instantiated atom can unify (via the same closed morphology relation) with
a connective leaf's atom, deciding arguments neither band alone can:

All men are mortal. If Socrates is a philosopher then Socrates is a
man. Socrates is a philosopher. Therefore Socrates is mortal.
→ …Your premises entail: socrates is mortal.

  • generate/proof_chain/cond_member.py (new): checks for a connective
    token BEFORE the universal-lead check (load-bearing — stops a stray
    connective leaking into an opaque name/class run undetected); reuses
    v3-MEM's own _parse_singular/_parse_universal verbatim (already
    negation-aware, so no separate negation layer is needed here, unlike
    v2-EN's negation-blind opaque minter).
  • Four new shape-bands (en_condmem_fused/disjunctive/chain/conditional),
    each independently earning SERVE at the arena — 17 bands × 720 = 12,240
    cases, wrong=0, ledger re-sealed.
  • New hand-authored real-English eval lane v2_condmem/ (26 cases,
    content-disjoint): 26/26.
  • ds-mem-0024 promoted declined → unknown, not entailed — the first
    promotion in this corpus that doesn't land on entailed. That exact text
    never asserts its antecedent, so the newly-earned band's honest verdict
    is a non-commitment, not a new capability to showcase.
  • Composer wiring is a pure fallback tier tried strictly after v3-MEM:
    every previously-served argument stays byte-identical.

Test plan

  • core test --suite deductive -q — 160 passed (31 new reader-contract
    tests: flagship, modus tollens, both disjunctive spellings, the
    and-split-is-not-a-connective case, chains, the fusion mechanism
    itself incl. a no-cross-individual-leak check, band classification,
    full refusal vocabulary, both honesty caps, determinism).
  • Practice arena: all_bands_serve_licensed=True wrong_is_zero=True
    (17 bands).
  • Lane splits: v1 28/28 · v2_en 26/26 · v2_member 26/26 (post-
    promotion) · v2_condmem 26/26.
  • Smoke suite: 180 passed (twice, incl. the pre-push gate run).
  • Warmed-session lane: 10 passed (twice).
  • deduction_serving_enabled stays default-off; no behavior change
    for any existing user.

Note for the reviewer

While re-pinning the deduction_serve_v1 lane SHA I discovered
scripts/verify_lane_shas.py --update rewrites every lane's pin in one
pass and silently drops the pin for any lane that errors. I reverted
everything except the one line this change needed (see the diff — it's a
single-line edit), but that surfaced that miner_loop_closure,
curriculum_loop_closure, and demo_composition are already drifted on
main, independent of this branch. Not touched here; flagging for separate
follow-up.

## Summary Composes v2-EN's connective grammar (if/then, or, and, either) with v3-MEM's singular-membership sentence reading over one shared per-individual atom space — the exact gap ADR-0258 §6.1 reserved: > If Socrates is a man then Socrates is mortal. Socrates is a man. > Therefore Socrates is mortal. > → Given: if socrates is a man then socrates is mortal; socrates is a > man. Your premises entail: socrates is mortal. This is genuine **fusion**, not just coexistence — a bare universal's instantiated atom can unify (via the same closed morphology relation) with a connective leaf's atom, deciding arguments neither band alone can: > All men are mortal. If Socrates is a philosopher then Socrates is a > man. Socrates is a philosopher. Therefore Socrates is mortal. > → …Your premises entail: socrates is mortal. - `generate/proof_chain/cond_member.py` (new): checks for a connective token BEFORE the universal-lead check (load-bearing — stops a stray connective leaking into an opaque name/class run undetected); reuses v3-MEM's own `_parse_singular`/`_parse_universal` verbatim (already negation-aware, so no separate negation layer is needed here, unlike v2-EN's negation-blind opaque minter). - Four new shape-bands (`en_condmem_fused/disjunctive/chain/conditional`), each independently earning SERVE at the arena — 17 bands × 720 = 12,240 cases, wrong=0, ledger re-sealed. - New hand-authored real-English eval lane `v2_condmem/` (26 cases, content-disjoint): 26/26. - `ds-mem-0024` promoted **declined → unknown**, not entailed — the first promotion in this corpus that doesn't land on entailed. That exact text never asserts its antecedent, so the newly-earned band's honest verdict is a non-commitment, not a new capability to showcase. - Composer wiring is a pure fallback tier tried strictly after v3-MEM: every previously-served argument stays byte-identical. ## Test plan - [x] `core test --suite deductive -q` — 160 passed (31 new reader-contract tests: flagship, modus tollens, both disjunctive spellings, the and-split-is-not-a-connective case, chains, the fusion mechanism itself incl. a no-cross-individual-leak check, band classification, full refusal vocabulary, both honesty caps, determinism). - [x] Practice arena: `all_bands_serve_licensed=True wrong_is_zero=True` (17 bands). - [x] Lane splits: v1 28/28 · v2_en 26/26 · v2_member 26/26 (post- promotion) · v2_condmem 26/26. - [x] Smoke suite: 180 passed (twice, incl. the pre-push gate run). - [x] Warmed-session lane: 10 passed (twice). - [x] `deduction_serving_enabled` stays default-off; no behavior change for any existing user. ## Note for the reviewer While re-pinning the `deduction_serve_v1` lane SHA I discovered `scripts/verify_lane_shas.py --update` rewrites every lane's pin in one pass and silently drops the pin for any lane that errors. I reverted everything except the one line this change needed (see the diff — it's a single-line edit), but that surfaced that `miner_loop_closure`, `curriculum_loop_closure`, and `demo_composition` are already drifted on main, independent of this branch. Not touched here; flagging for separate follow-up.
core-labs added 1 commit 2026-07-24 17:24:32 +00:00
Composes v2-EN's connective grammar (if/then, or, and, either) with
v3-MEM's singular-membership sentence reading over one shared
per-individual atom space, so "If Socrates is a man then Socrates is
mortal. Socrates is a man. Therefore Socrates is mortal." decides — the
exact gap ADR-0258 §6.1 reserved. Genuinely fuses the two mechanisms: a
bare universal's instantiated atom can unify (via the same closed
morphology relation) with a connective leaf's atom, deciding arguments
neither band alone could.

- generate/proof_chain/cond_member.py: new reader. A sentence is checked
  for a connective token BEFORE the universal-lead check (so a stray
  connective can never leak into an opaque name/class run); reuses v3-MEM's
  own _parse_singular/_parse_universal verbatim (already negation-aware,
  so no separate negation layer is needed, unlike v2-EN's opaque minter).
  Four new shape-bands (fused/disjunctive/chain/conditional), each earning
  its own SERVE license.
- chat/deduction_surface.py: new fallback tier tried strictly after v3-MEM
  — pure widening, every previously-served argument stays byte-identical.
- evals/deduction_serve/practice/gold.py: 4 new synthetic template groups
  (20 templates), reusing the v3-MEM case generator; intended formulas
  cross-checked against the independent oracle (INV-25).
- evals/deduction_serve/v2_condmem/: 26 hand-authored real-English cases,
  content-disjoint from the synthetic corpus.
- ds-mem-0024 promoted declined -> unknown (not entailed — the antecedent
  is never asserted in that text; this is the first promotion in the
  corpus that doesn't land on entailed).
- Ledger re-sealed to 17 bands; deduction_serve_v1 lane SHA re-pinned
  (surgical single-line edit, not a blanket --update).

Verification: core test --suite deductive 160 passed (31 new reader
tests); practice arena 17 bands x 720 wrong=0, all SERVE-licensed; lane
splits v1 28/28, v2_en 26/26, v2_member 26/26, v2_condmem 26/26; smoke 180
passed; warmed_session 10 passed. Flag deduction_serving_enabled stays
default-off.
core-labs reviewed 2026-07-24 17:40:08 +00:00
core-labs left a comment
Author
Owner

Verdict: APPROVED FOR MERGE.

After reviewing the specific code implementations in the generate/proof_chain/ namespace, this PR successfully executes the exact architectural gap reserved in ADR-0258 §6.1. By achieving genuine semantic fusion between propositional connective grammar (v2-EN) and singular-membership ontology (v3-MEM), you have expanded the engine's epistemic frontier without compromising the deterministic baseline.

The implementation is mathematically sound, defensively engineered, and perfectly maps to our core tenets.

Verdict: APPROVED FOR MERGE. After reviewing the specific code implementations in the generate/proof_chain/ namespace, this PR successfully executes the exact architectural gap reserved in ADR-0258 §6.1. By achieving genuine semantic fusion between propositional connective grammar (v2-EN) and singular-membership ontology (v3-MEM), you have expanded the engine's epistemic frontier without compromising the deterministic baseline. The implementation is mathematically sound, defensively engineered, and perfectly maps to our core tenets.
core-labs merged commit 5224b5e006 into main 2026-07-24 17:40:53 +00:00
core-labs deleted branch feat/conditional-membership-band 2026-07-24 17:40:54 +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#109
No description provided.