Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
0951d6c
WIP: GroupCompletion grounding lane — numeric tower next layer, desig…
briansrls Jul 25, 2026
eb3a06f
WIP: GroupCompletion grounding lane — numeric tower next layer, desig…
briansrls Jul 25, 2026
cb763d3
Emitter checkpoint-order fix (b): zero-param alias decl consults full…
briansrls Jul 25, 2026
fd58f97
Merge remote-tracking branch 'origin/main' into session/eager-crane-304
briansrls Jul 25, 2026
cc24e11
chore: regenerate drifted generated artifacts (ci auto-heal)
Jul 25, 2026
3577ba7
Merge remote-tracking branch 'origin/session/eager-crane-304' into se…
briansrls Jul 25, 2026
b10a048
DESIGN.md: annotate GroupCompletion open thread with sharp-bee-290's …
briansrls Jul 25, 2026
d66cd2f
WIP: GroupCompletion grounding lane — numeric tower next layer, desig…
briansrls Jul 25, 2026
1aa0183
WIP: GroupCompletion grounding lane — numeric tower next layer, desig…
briansrls Jul 25, 2026
cefef96
WIP: GroupCompletion grounding lane — numeric tower next layer, desig…
briansrls Jul 25, 2026
ca3e1e3
docs: reconcile GroupCompletion design-doc status with shipped state
briansrls Jul 25, 2026
b5066db
WIP: GroupCompletion grounding lane — numeric tower next layer, desig…
briansrls Jul 25, 2026
e832853
docs: record measured deep-seven burn-down receipt in plan doc §5
briansrls Jul 25, 2026
062cb85
Merge remote-tracking branch 'origin/main' into session/eager-crane-304
briansrls Jul 25, 2026
4598a9e
docs: fold FieldOfFractions into the completion-pattern note (nod 1)
briansrls Jul 25, 2026
315e413
WIP: GroupCompletion grounding lane — numeric tower next layer, desig…
briansrls Jul 25, 2026
36eeb24
Revert experimental FieldOfFractions bodying (verification-only, not …
briansrls Jul 25, 2026
721cef6
docs: link hollow-alias-construction-wall.md from DESIGN.md open threads
briansrls Jul 25, 2026
6361cc6
chore: regenerate drifted generated artifacts (ci auto-heal)
Jul 25, 2026
e0e1d11
WIP: GroupCompletion grounding lane — numeric tower next layer, desig…
briansrls Jul 25, 2026
a0d8e6c
Merge ci-auto-heal (DESIGN.md bullet removed pre-fix) with design_doc…
briansrls Jul 25, 2026
fc65d03
WIP: GroupCompletion grounding lane — numeric tower next layer, desig…
briansrls Jul 25, 2026
c07e25a
Merge origin/main (picks up #7204 batch-3 budget raise, #7169-era roa…
briansrls Jul 25, 2026
f0bf981
WIP: GroupCompletion grounding lane — numeric tower next layer, desig…
briansrls Jul 25, 2026
a11f122
WIP: GroupCompletion grounding lane — numeric tower next layer, desig…
briansrls Jul 25, 2026
a995eab
WIP: GroupCompletion grounding lane — numeric tower next layer, desig…
briansrls Jul 25, 2026
b76c07c
WIP: GroupCompletion grounding lane — numeric tower next layer, desig…
briansrls Jul 25, 2026
1986c29
WIP: GroupCompletion grounding lane — numeric tower next layer, desig…
briansrls Jul 25, 2026
c0ceb60
WIP: GroupCompletion grounding lane — numeric tower next layer, desig…
briansrls Jul 25, 2026
a5530e7
WIP: GroupCompletion grounding lane — numeric tower next layer, desig…
briansrls Jul 25, 2026
eb5f8f0
chore: regenerate drifted generated artifacts (ci auto-heal)
Jul 25, 2026
34674c9
Fix orphaned groupcompletion-pair-construction-design.md doc reference
briansrls Jul 25, 2026
dcb091f
Merge origin/session/eager-crane-304 (CI auto-heal race, identical tree)
briansrls Jul 25, 2026
806423f
Merge GroupCompletion grounding lane from eager-crane-304
briansrls Jul 25, 2026
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
2 changes: 1 addition & 1 deletion DESIGN.md
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ hollow alias (minimality ≠ grounding) · state-space conflation (an `Option`/`
- **enforcement intent — ask once, compile forever.** The operator's recurring standing directives (enforce complexity repo-wide; lenses must be live; lenses must self-apply; scope must not silently narrow; model must not carry dual representations; a failure arm must refuse, never widen — no absorbing fallbacks, §5) are redundant governance work (§2) re-paid each conversation — the operator performing the missing meta-lens by hand. Model each as a durable `StandingIntent` row and gate the relationship (intent ⇄ `LensContract` ⇄ coverage receipt) fail-closed: a mechanism *claiming enforcement* is complete only when it satisfies the `StandingIntent` — named live consumer, declared scope not narrowed, red control, self-application or explicit exemption — else Unknown/Refused, never silently green. One new authority (`StandingIntent`); everything else extends existing machinery — the registry (`LensRegistryEntryV0` → `LensContract`), reusing `ConstructionJustification` / `subject_roster` and consuming `intent_linearity` / `self_applying_lenses` for the fractal (§7) layer (the same property applied to the code, the lens, the subject producer, the registry, and the acceptance template). Default enforcement scope = whole corpus; under-scope is a failing receipt unless explicitly justified. → [enforcement-intent design](docs/plans/enforcement-intent-design.md)
- can a lens mechanically diagnose the *leaf-side* of decomposition (§2)? (operator-parked)
- **hollow-alias construction wall — DRAFT, design-note-first (sharp-bee-290 mandate).** A bodyless (`PhantomData`-collapsing) declaration reached by construction is a §5 unwritable-class candidate, not a validation check: `GroupCompletion<M>` (PR #7197, infra-blocked) and `FieldOfFractions<R>` (PR #7210, record body { num, denom } content-reviewed clean pending CI + approvals) are two grounded specimens, neither merged to main yet; a third, the emit-side companion, is the `checkpoint_scalar_phantom` class — a checkpoint scalar (arity 0 in Rust) reached with a phantom type arg (`GroupCompletion<Nat>`, `Compose<Int, MachineWidth<>>`) cannot legally render as `i64<T>` (E0109), documented in-code at `src/v1/stage0/src/v1_compiler_emit_rust.rs:746` and converging with vivid's ~50-finding `checkpoint_scalar_phantom` E0107 bucket and loyal-raven's dotted-path `GroupCompletion<v2.std.nat.Nat>` E0308 finding — tracked as Root-4, separately gated, not this note's scope. This note's own rule: bodyless + construction-reached ⇒ refuse; bodyless + `= Node`-aliased (the existing 11-occurrence declared-abstract idiom) ⇒ legitimate; bodyless + never construction-reached (pure type-tag, e.g. `Hardware`) ⇒ legitimate. Sequencing is lens-first (a pure structural `Node`-tree reader, not grep — the doc's own census section is a case study in why grep false-positives ~1,739 hits), promoted to a typechecker refusal only once proven zero-false-positive corpus-wide. No code lands from this note yet. → [hollow-alias construction wall](docs/plans/hollow-alias-construction-wall.md)
- the model↔realization fork is systemic, and where unfinished it fails open: every primitive is modeled as a coproduct and realized as a native `Value`, reconciled by per-site bridges, so coverage is accidental and non-compositional. `match` bridges `Int→Zero/Succ` but `Value::eq` has no `Int↔Variant` arm, so `nat_add(85, 32) == 117` silently compared `false` at its `_ => false` chokepoint — a §5 fail-open, not the §2/§7 redundancy the 🟡 dissolve-on markers track. **Landed:** the *numeric tower* fork now fails closed — `eval_binop`'s `BinOp::Eq`/`Ne` raises `InterpError::CrossRepresentationEquality` when a `false` result is *explained* by a native `Int`/`Float` vs `Nat`-coproduct straddle (recursive: catches `nat_add == nat_add` and `[nat_add(1,1)] == [2]`), with `Value::eq` left infallible so it stays the single `CanonKey` map-key authority. The discriminating witness is `cross_representation_equality_test` (forks → typed error; reconciled/native → `true`; genuine diffs `1 == 2`/`Succ{..} == Zero` → `false`, not error). **Remaining:** (a) the same straddle for `Bool True|False` over `Value::Bool` (no `==` site in the corpus today) and `Optional/Witness` over `Value::Null` — the latter resists a blanket guard because `Value::Null` is the overloaded `None`/`Absent`/miss sentinel and `present == None` (131 sites) is a *legitimate* `false`, so it needs grounding, not an error arm; (b) the root fix (§1/§2/§7) — ground each primitive into its realization. **Numeric tower: GROUNDED** (#5428, 2026-06-21) — Nat construction-side grounded (`Zero → Int(0)`, `Succ{prev:Int(k)} → Int(k+1)`); native form == modeled form; `eval_binop` `CrossRepresentationEquality` guard is dead-in-corpus for numerics, kept as fail-closed backstop until the `Value::Null` split lands (guard removal bundled with that work, fenced out of this window). **Remaining:** `Value::Null` split — Optional/Witness/miss into own carriers (~131 sites; the deeper root, its own runway). (operator: `==` fail-closed, 2026-06-20)
- the model↔realization fork is systemic, and where unfinished it fails open: every primitive is modeled as a coproduct and realized as a native `Value`, reconciled by per-site bridges, so coverage is accidental and non-compositional. `match` bridges `Int→Zero/Succ` but `Value::eq` has no `Int↔Variant` arm, so `nat_add(85, 32) == 117` silently compared `false` at its `_ => false` chokepoint — a §5 fail-open, not the §2/§7 redundancy the 🟡 dissolve-on markers track. **Landed:** the *numeric tower* fork now fails closed — `eval_binop`'s `BinOp::Eq`/`Ne` raises `InterpError::CrossRepresentationEquality` when a `false` result is *explained* by a native `Int`/`Float` vs `Nat`-coproduct straddle (recursive: catches `nat_add == nat_add` and `[nat_add(1,1)] == [2]`), with `Value::eq` left infallible so it stays the single `CanonKey` map-key authority. The discriminating witness is `cross_representation_equality_test` (forks → typed error; reconciled/native → `true`; genuine diffs `1 == 2`/`Succ{..} == Zero` → `false`, not error). **Remaining:** (a) the same straddle for `Bool True|False` over `Value::Bool` (no `==` site in the corpus today) and `Optional/Witness` over `Value::Null` — the latter resists a blanket guard because `Value::Null` is the overloaded `None`/`Absent`/miss sentinel and `present == None` (131 sites) is a *legitimate* `false`, so it needs grounding, not an error arm; (b) the root fix (§1/§2/§7) — ground each primitive into its realization. **Numeric tower: GROUNDED** (#5428, 2026-06-21) — Nat construction-side grounded (`Zero → Int(0)`, `Succ{prev:Int(k)} → Int(k+1)`); native form == modeled form; `eval_binop` `CrossRepresentationEquality` guard is dead-in-corpus for numerics, kept as fail-closed backstop until the `Value::Null` split lands (guard removal bundled with that work, fenced out of this window). **Remaining:** `Value::Null` split — Optional/Witness/miss into own carriers (~131 sites; the deeper root, its own runway). (operator: `==` fail-closed, 2026-06-20) · **Next layer (PR #7197, open, not yet merged):** `dag/std/algebra.dag:38`'s `GroupCompletion<M>` is hollow (bodyless — no fields at all), forked a second time by `src/v2/std/integer.dag`'s independent redeclaration — the emitted-Rust operator-trait surface #5428 left uncovered renders it as `PhantomData`. PR #7197 grounds `GroupCompletion<M>` as the Grothendieck pair construction (`{pos: M, neg: M}`) at its single authority, deletes the v2 duplicate in favor of importing it (§2/§3), collapses a native-`Int`-fielded pair construction in `eval_record_lit` (mirrors #5428's `Succ{prev}` collapse), and swaps the emitter's zero-param alias-decl branch to the single-authority `rust_scalar_checkpoint_render_base` so the `Int → i64` checkpoint fires under both corpus representations. Content-reviewed clean; CI in progress. → [GroupCompletion pair-construction design](docs/plans/groupcompletion-pair-construction-design.md)
- the remaining deleted-`docs/` references in `.dag` comments — provenance / `bind:` pointers into the bankrupted `docs/` tree (e.g. `docs/planning/*`, `design-*.md`) — fold into the dep-graph reform, not a blind repoint. (The named-corpus ledger marks — `Practice N`, and `INVARIANTS` / `THESIS` / `MODELING` / `RELEASE_TODO` / … citations — were swept: dropped, or re-homed to DESIGN.md §-anchors.)
- floor shared-computation memoization — M1 entry-closure memo LANDED (#6999, merge dc2aa25684); post-merge validation (msg_1879f052) shows ~0% batch-wall recovery on capped hosts — fixes are mechanism-correct but discovery loads each entry once/worker; residual ~18min owed to #6848 once-per-entry bare-reference fixpoint + cap-saturation throttle (§1.4). Receipts: [floor-time namespace-walk diagnosis](docs/plans/floor-time-namespace-walk-regression-diagnosis.md) §5. M2: RunnableCompile node gated on v2.std.determinism #5941): [design sketch](docs/plans/floor-shared-compute-memoization.md)
- **#6985 witness-discovery cascade — diagnosis-complete, two confirmed failure classes, both block further stripping.** The initial `pullable()`-never-pulls-arity-zero read was refuted by execution on the `parallelism.dag` restore (DESIGN §5). Two real classes were then confirmed by execution: **Class A** — a re-export-through-partial-strip (qualified-import/re-export mismatch), closed by import-from-definer wave ordering or PR-4 (namespace-resolution-design.md §8). **Class B** — a stripped file's own bare cross-module references resolve only by **pool-membership coincidence**: `resolve_in` finds the target module exactly when some *unrelated* unstripped import elsewhere in the currently-assembled closure has already dragged it into the pool, never from the bare-reference closure itself binding it. A reconciliation probe on an already-stripped `dag/extdeps` file (`bmc/types.dag`) reproduced the identical failure under a narrower closure, confirming this is corpus-wide accidental coverage, not a per-file property — batch-1's ~74 files are green today only because enough unrelated files elsewhere still happen to import the same targets. **This blocks all further `dag/**` import-stripping** until a closure-independent binding fix or a provable-coverage construction check lands. Named side findings, not yet fixed: a LOUDNESS gap (an opaque unlocatable diagnostic for some but not all Class B failure shapes) and an untested zero-arity fn/data-by-value claim. → [import-strip witness-discovery cascade diagnosis](docs/plans/import-strip-witness-discovery-cascade-diagnosis.md)
Expand Down
Loading
Loading