Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions .claude/board/EPIPHANIES.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,13 @@
## 2026-07-23 — E-S10-COHERENCE-CLOSURE-DENSITY-1 — the S10 insight/mush null falsifier (D-DIA-V2-A) did its job on the FIRST build: it scored real=null=0 under the plan's draft formula and forced a two-part correction, converting a plausible-but-broken detector into a working one. The plan's S10 was `insight = clamp(Δcoherence + Δwonder − Δentropy, 0, 1) · [yield>θ]` with `coherence = (derived/total)·mean_expectation(derived)`. The mandatory size-preserving null (`insight_beats_size_preserving_null`: three deep `is_a` chains vs a SplitMix64 same-edge-count random rewiring) scored **real insight 0, null insight 0** — zero discrimination. The falsifier isolated TWO independent confounds, both fixed

**Status:** FINDING (measured: the null falsifier now passes real 0.82 > null; 3 insight tests + 46 nars-module tests green, clippy -D warnings clean). **Confidence:** High on the correction; the detector is now a WORKING discriminator on the synthetic chain-vs-random control, not yet exercised on a whole-book step (that is the V2-A→whole-book wire, next).

**Confound 1 — the `·mean_exp` coherence multiplier (deduction-attenuation inversion).** NAL deduction *correctly* attenuates confidence with chain depth (`c = c₁c₂f₁f₂`), so the DEEPEST, most-coherent transitive chains earn the LOWEST mean expectation. Multiplying closure by `mean_exp` therefore dragged coherence DOWN exactly when the graph closed MOST — the metric fought the very structure it was meant to reward. **Fix:** `coherence = closure density = derived/total` — a size-invariant ratio (coherent chains close densely: 30 edges → 135 derived → 0.82; random rewiring closes sparsely). This is the size-invariant structural signal S10 must key on.

**Confound 2 — the `−Δentropy` insight term (a VSA-world import that doesn't transfer to term-logic).** `truth_entropy` = confidence-distribution Shannon spread. On EVERY productive term-logic step it RISES (premises peak at one confidence bin; deduction spreads derivations across all bins) — measured `Δent = +0.88` on the coherent step, swamping `Δcoh = +0.82` → clamp to 0. The free-energy "entropy descends on insight" pole is real in the **VSA-codebook world** (where `likelihood = cosine-vs-codebook` and a good match sharpens the distribution), but it does NOT transfer to the pure **term-logic arena**: there is no codebook, and any confidence-based surprise measure *anti-correlates* with coherent depth for a CORRECT epistemic reason (deep transitive conclusions genuinely ARE weakly held — "Abraham's father's…'s father is a man" is uncertain after many hops). **Fix:** `−Δent` is REMOVED from insight (`insight = clamp(Δcoh + Δwonder, 0, 1)·gate`); entropy stays in the mush **stall** term (`stall = entropy·(1−|Δcoh|)`) where its sign is CORRECT — entropy WITH a coherence change is attenuated (low stall), entropy WITHOUT coherence change IS the stall pole of mush. The asymmetry is the resolution: entropy-paired-with-coherence = insight; entropy-alone = mush.

**The lesson banked.** (1) The size-preserving null is not ceremony — it caught a detector that scored identically on structured and random input, the exact D-SRS-3b "composite = size" failure shape, and forced the fix before the code shipped. (2) **Free-energy poles are substrate-specific:** a term borrowed from the VSA-codebook free-energy compose (`(1−likelihood)+kl`) can invert sign in the term-logic arena; port the CONCEPT (surprise descends on insight), re-derive the PROXY per substrate, and let the null falsifier arbitrate. Refs: `E-BASIN-WIDTH` (the size-preserving-null discipline), `E-WHOLE-BOOK-REASONING-RUN-1` (the arena this scores steps over), `nars/insight.rs` (`Snapshot`/`InsightMush`/`detect`/`flow_state`), `dialectic-engine-v1.md` §1 S10, `dialectic-engine-v1.md` §4 (D-DIA-V2-A).

## 2026-07-23 — E-WHOLE-BOOK-REASONING-RUN-1 — the whole KJV ran through the ACTUAL reasoning layer (not the encode) for the first time, via the SoC seam, and it falsified two real things while validating the core. `deepnsm-v2 bible_wave --export` (inbound leg) emitted the whole-book belief stream (31,327 SPO → 21,714 distinct statements: 3,072 `is_a`/copular rows, 28,255 verb rows); `lance-graph-planner --example reason_whole_book` (reasoning layer) ingested it into a `BeliefArena` and ran copula-gated `close_transitive` + the five tactics. This is the first time the dialectic engine reasoned over a whole real corpus

**Status:** FINDING (measured, reproducible: the two examples + `/tmp/pg10.txt` PG#10 KJV, local-only). **Confidence:** High on the measured results; the concept-lift and Morton-scale directions are next-work, not built.
Expand Down
3 changes: 2 additions & 1 deletion .claude/board/STATUS_BOARD.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@ Plan: `.claude/plans/dialectic-engine-v1.md` (six operator pillars + S1-S12 synt
|---|---|---|---|---|
| D-DIA-V0 | Belief arena falsifying slice (triple-keyed + in-place stamped revision + copula-gated transitivity) | lance-graph | Shipped (all 4 registered gates green first run) | `deepnsm-v2/src/belief.rs`; 90 tests + clippy clean; `E-DIALECTIC-ENGINE-SYNTHESIS-1` |
| D-DIA-V1 | The five tactics (RCR/TR/ASC/CAS/CR) over the Belief arena + throttles + ReasoningGap | lance-graph | Shipped (PR #816; lance-graph-planner `nars/{belief,tactics}` over `TruthValue`; 17 nars + 233 planner tests) | plan §3, §4 |
| D-DIA-V2 | The loop: bias→recipe LUT, byte-lane council, texture window, insight/mush + null falsifier | lance-graph | Queued | plan §4 |
| D-DIA-V2-A | insight/mush S10 detector + size-preserving null falsifier | lance-graph | Shipped (`nars/insight.rs`; null falsifier caught + fixed 2 formula confounds — `E-S10-COHERENCE-CLOSURE-DENSITY-1`; 3 insight + 46 nars tests, clippy clean) | plan §1 S10, §4 |
| D-DIA-V2-B | The loop: bias→recipe tactic-LUT, byte-lane council, texture window | lance-graph | Queued | plan §4 |
| D-DIA-V3 | Dissolution → field rung-elevation (the cathedral floors) + Staunen↔Wisdom flow accounting | lance-graph | Queued | plan §4 |
| D-DIA-V4 | 64k SIMT lowering (Boolean-reachability semiring + second-pass truth) | lance-graph | Queued | plan §4, S1 |
| D-DIA-V5 | Reach-out felt integration (dull shadow vs insight) + qualia ablation falsifier | lance-graph | Queued | plan §3.6, S12 |
Expand Down
40 changes: 40 additions & 0 deletions .claude/plans/dialectic-engine-v1.md
Original file line number Diff line number Diff line change
Expand Up @@ -179,9 +179,49 @@ stamps) and felt form (Datapath, texture) are one event read from two buckets.
> exploration), `FlowState`/`mul`, `kanban` (contract + planner
> style_strategy) before wiring. Reuse the one engine; probe-first on any
> "detects insight" claim.
> **✅ V2-A SHIPPED (2026-07-23):** `nars/insight.rs` — `Snapshot`/
> `InsightMush`/`detect`/`flow_state`, reusing contract `GraphSignals` +
> `FlowState` (nothing invented). The MANDATORY null falsifier
> (`insight_beats_size_preserving_null`) did its job on the first build:
> it scored real=null=0 under the draft `clamp(Δcoh+Δwonder−Δent)` formula
> and forced a TWO-part correction (`E-S10-COHERENCE-CLOSURE-DENSITY-1`):
> (1) `coherence = closure density (derived/total)` — the `·mean_exp`
> multiplier inverted under NAL deduction attenuation (deep chains earn the
> lowest expectation); (2) `−Δentropy` REMOVED from insight (confidence-
> spread rises on every productive term-logic step — a VSA-codebook pole
> that does not transfer to term-logic); entropy's correct home is the mush
> `stall` term. Final: `insight = clamp(Δcoh+Δwonder,0,1)·[yield>θ]`. 3
> insight + 46 nars tests green, clippy clean. NOT yet wired to a whole-book
> step (V2-A→whole-book measurement is next). THEN V2-B below.
- **V3:** dissolution detection + field elevation (S11) — the cathedral floors;
Staunen↔Wisdom flow accounting; epiphany attractors (rate-normalized, S9).
- **V4:** the 64k SIMT lowering — Boolean-reachability semiring + truth second
pass (S1), masks, sweeps — only after V0–V3 green at small scale.
> **Column size is a capacity knob, NOT a cache constant (operator, 2026-07-23).**
> The 64k column (64k×512 B = 32 MB) is a cache convenience (server-L3-resident
> working set), not an architectural constant — 256k/128 MB or 512k/256 MB are
> easily affordable. The knob to grow is column CAPACITY (rows in RAM); the
> INVARIANT knob is the Morton TILE (the swept, cache-resident unit). They
> DECOUPLE under Morton-tile top-k: you sweep one tile, never the whole column,
> so cache behavior is invariant to total column size. Morton width scales fine
> (64k axis = u16 → u32 code; 512k = u19 → u38, still u64). What growing the
> column DOES change: brute O(N²) pair enumeration goes 16×/64× worse
> (`close_transitive`'s book-scale 92k-derived / 12–17 s already shows the
> shape) — so a bigger column makes the Morton-tile top-k substrate MANDATORY,
> not optional. Column growth is affordable ONLY with the retrieval mechanism,
> which is exactly why V4 is the Morton lowering, not a wider brute sweep.
> (Distinct from the GUID cascade's per-tier 64k = 256×256 centroid tile, which
> is codebook cardinality / canon — untouched by column length.)
> **LAB ceiling = 4M rows / 2 GB (operator, 2026-07-23).** The three regimes:
> (1) **production** = 64k / 32 MB (L3-cache-resident, the hot canonical size);
> (2) **affordable growth** = 256k–512k / 128–256 MB (DRAM, still cheap);
> (3) **LAB PoC ceiling = 4M / 2 GB** (`4,194,304 × 512 B = 2 GiB` exactly) —
> the upper bound for an *exceptional* proof-of-concept, **correctness-first,
> optimize later** (the lab-vs-canonical posture applied to field size). A 4M
> field is fine to HOLD resident and prove a result over; it is NOT fine to
> brute-sweep (O(N²) = 1.6×10¹³ pairs), so even a lab PoC at 4M runs the sweep
> Morton-tiled — the ceiling raises CAPACITY, never licenses brute enumeration.
> Morton width still fits: 4M axis = u22 → u44 code (u64). The lab result is a
> falsifier; the Morton-tile top-k is the production optimization that follows.
- **V5:** reach-out integration (spider/arXiv → §3.6 felt criterion) + the
qualia ablation falsifier (S12).
Loading
Loading