core/evals/deduction_serve/report.json
Shay ab6da7765e feat(deduction-serve): Band v4-CM — conditional-membership fusion, decided (ADR-0259)
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.
2026-07-24 10:14:00 -07:00

103 lines
1.9 KiB
JSON

{
"aggregate": {
"correct": 106,
"declined": 0,
"n": 106,
"wrong": 0
},
"all_correct": true,
"arc": "deduction-serve",
"lane": "deduction_serve",
"schema_version": 1,
"splits": {
"v1": {
"all_cases_correct": true,
"by_gold": {
"declined": 4,
"entailed": 10,
"invalid": 1,
"refuted": 5,
"unknown": 5,
"valid": 3
},
"correct_by_gold": {
"declined": 4,
"entailed": 10,
"invalid": 1,
"refuted": 5,
"unknown": 5,
"valid": 3
},
"counts": {
"correct": 28,
"declined": 0,
"wrong": 0
},
"n": 28
},
"v2_condmem": {
"all_cases_correct": true,
"by_gold": {
"declined": 7,
"entailed": 10,
"refuted": 4,
"unknown": 5
},
"correct_by_gold": {
"declined": 7,
"entailed": 10,
"refuted": 4,
"unknown": 5
},
"counts": {
"correct": 26,
"declined": 0,
"wrong": 0
},
"n": 26
},
"v2_en": {
"all_cases_correct": true,
"by_gold": {
"declined": 5,
"entailed": 14,
"refuted": 3,
"unknown": 4
},
"correct_by_gold": {
"declined": 5,
"entailed": 14,
"refuted": 3,
"unknown": 4
},
"counts": {
"correct": 26,
"declined": 0,
"wrong": 0
},
"n": 26
},
"v2_member": {
"all_cases_correct": true,
"by_gold": {
"declined": 6,
"entailed": 12,
"refuted": 3,
"unknown": 5
},
"correct_by_gold": {
"declined": 6,
"entailed": 12,
"refuted": 3,
"unknown": 5
},
"counts": {
"correct": 26,
"declined": 0,
"wrong": 0
},
"n": 26
}
},
"wrong_is_zero": true
}