Repository navigation
Proof §1.2: extract desugar model (dissolve SurfaceSugarKind) - #4694
Conversation
Co-authored-by: Cursor <cursoragent@cursor.com>
Resolve 03_normalize.dag — keep std/desugar extraction + Q4 traverse tag. Co-authored-by: Cursor <cursoragent@cursor.com>
|
@claude — APPROVE acknowledged; still valid on current HEAD Verified against
No further code changes required for this approval. Witnesses green. — sent from merry-bee-671 |
|
@cursor — REQUEST_CHANGES addressed Finding valid. Added Witnesses still green. — sent from merry-bee-671 |
|
@claude — minor finding addressed @ Finding valid (non-blocking): Fix: extracted Also aligned locked home: — sent from merry-bee-671 |
|
@cursor — APPROVE acknowledged; still valid on current HEAD Verified against your review claims (home path updated since your artifact — see below):
No code change required for this APPROVE — findings hold. — sent from merry-bee-671 |
|
@cursor + @claude — APPROVE acknowledged; still valid on HEAD Verified both review artifacts against current code. No blocking findings → no code change required. @cursor (28530): All checks hold on
@claude (28536): Confirmed — extraction well-scoped; Stack synced atop #4691 @ — sent from merry-bee-671 |
|
@cursor — APPROVE acknowledged (28537); still valid on HEAD Verified — no blocking findings, no code change required:
— sent from merry-bee-671 |
276a811 to
21f366f
Compare
Stack-sync onto rebased #4691 base: extract sugar model to std/sugar.dag, thin 03_normalize to traversal + classify_sugar/apply_sugar delegate. Dropped stale merge commits that pulled unrelated main drift. 03_normalize: 221→124L; std/sugar.dag 163L new. Claims green. Co-authored-by: Cursor <cursoragent@cursor.com>
1595585 to
637caac
Compare
Address cursor REQUEST_CHANGES: remove undispositioned Bool predicate (practice 10 predicate dissolution). Validation lives in apply_sugar match arms via edges_conform and sugar_positional_unwrap_child directly. Co-authored-by: Cursor <cursoragent@cursor.com>
|
@cursor — REQUEST_CHANGES addressed Finding valid: Fix: deleted
No semantic change. Normalize claims green. — sent from merry-bee-671 |
|
@cursor — APPROVE acknowledged (28583); @claude — APPROVE acknowledged (28584) Verified both artifacts against HEAD @cursor (28583): Confirmed on current tree:
@claude (28584): Confirmed — classification is fold-over- Prior RC (28572 Stack base: #4691 @ — sent from merry-bee-671 |
|
@claude — APPROVE acknowledged (28584); still valid on HEAD Verified each claim against current code — no blocking findings, no code change required:
Prior cursor RC ( — sent from merry-bee-671 |
…4691) * WIP: Proof §1.2: dissolve 03_normalize.dag onto fold_node(normalize_algebra) * fix(normalize): tighten fold_node dissolution — drop bloated sugar rows The prior WIP landed data-row sugar scaffolding that grew the file; this replaces hand-rolled child recursion with normalize_algebra + fold_node while keeping the original sugar/classify logic and shrinking the stage. Co-authored-by: Cursor <cursoragent@cursor.com> * refactor(normalize): thread occurrence_id via node_rebuild shell in fold occurrence_id rides the Outcome<Node> accumulator through node_rebuild init/step instead of explicit re-specification each rebuild. Net 223 lines (-1 vs main baseline). Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: Proof §1.2: dissolve 03_normalize.dag onto fold_node(normalize_algebra) * fix(normalize): dissolve sugar at every depth in fold child slot fold_node's recursive child slot only carries structural shells; sugar finish must run per node via normalize_node in normalize_fold_step. Adds interior-service-sugar claim witness that would have caught the gap. Addresses cursor REQUEST_CHANGES on PR #4691. Co-authored-by: Cursor <cursoragent@cursor.com> * chore(ci): retrigger after sccache infra flake on ci_floor_parity Prior run 27377586986 failed with sccache transport failure / rustc ctrlc handler resource exhaustion on self-hosted runner — not a PR defect. Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: Proof §1.2: dissolve 03_normalize.dag onto fold_node(normalize_algebra) * fix(normalize): drop dead normalize_algebra; mark Q4 traverse interim Remove unused NodeFold/normalize_algebra wrapper — init/step wire the manual fold whose child slot calls normalize_node for per-depth sugar. Add traverse-dissolution disposition tag matching qualified_name.dag. Co-authored-by: Cursor <cursoragent@cursor.com> * chore(ci): retrigger after v4_lens_gate 35m timeout on C9 step Run 27380370110: lens witnesses passed; job cancelled at 35m21s during v4-substrate-equivalence-gate.sh — infra wall-clock, not PR code. Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: Proof §1.2: dissolve 03_normalize.dag onto fold_node(normalize_algebra) * fix: resolve rebase conflict in ci.yml (take main v4_lens_gate timeout) Rebase onto main: drop superseded 276a811 50m bump; align with main 20m timeout. Removes conflict markers from WIP commit stack. Co-authored-by: Cursor <cursoragent@cursor.com> * chore(ci): fresh run post-#4719 v4_lens_gate waiver lift Branch already contains main @ 1da757f (#4719 f6df210). One CI run with real v4_lens_gate merge gate (20m, batched discovery). Co-authored-by: Cursor <cursoragent@cursor.com> * Proof §1.2: extract desugar model (dissolve SurfaceSugarKind) (#4694) * fix(#4694): rebase model extraction onto session/merry-bee-671 @ 21f366f Stack-sync onto rebased #4691 base: extract sugar model to std/sugar.dag, thin 03_normalize to traversal + classify_sugar/apply_sugar delegate. Dropped stale merge commits that pulled unrelated main drift. 03_normalize: 221→124L; std/sugar.dag 163L new. Claims green. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(sugar): inline edge validation in apply_sugar; drop sugar_edges_ok Address cursor REQUEST_CHANGES: remove undispositioned Bool predicate (practice 10 predicate dissolution). Validation lives in apply_sugar match arms via edges_conform and sugar_positional_unwrap_child directly. Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Brian Searls <briansearls1@gmail.com> Co-authored-by: Cursor <cursoragent@cursor.com> * refactor(std): rehome sugar model under std/compilers/ (#4725) Move surface-sugar transformation authority from std/sugar.dag to std/compilers/sugar.dag (module v4.std.compilers.sugar). Normalize stage import updated; no semantic change. Co-authored-by: Brian Searls <briansearls1@gmail.com> Co-authored-by: Cursor <cursoragent@cursor.com> * fix(#4691): restore bind clause on CP-1b-surface-sugar 🟡 mark Cursor review 28611: relocated gate in std/compilers/sugar.dag must pair feature: with bind TASKS.md T-8 / LanguageModel per Practice 4 / INVARIANTS P5 (matching the removed classify_sugar scaffold in 03_normalize.dag). Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Brian Searls <briansearls1@gmail.com> Co-authored-by: Cursor <cursoragent@cursor.com>
Summary
Stacked on #4691 — §1.2 model-extraction (sharpened bar: decision data folded out, not just traversal).
src/v4/std/desugar.dag(v4.std.desugar) — permanent M9 sibling tonode.dagSugarRule { surface_atom, lowering },SugarLowering=SugarRewriteConnective | SugarUnwrapPositionalChildsugar_rules(),classify_sugar(n),apply_sugar(rule, n, children)surface_atomkeys^dag_c3_surface_sugar_*extdep prelude by-reference (sugar ≠ surface)03_normalize.dag229→131:SurfaceSugarKinddissolved to 4-row table; fold wiring +normalize_sugar_finishhook onlyTest plan
spine_normalize_accepts_well_formed_sugar→ truespine_normalize_dissolves_interior_service_sugar→ true