fix(b-0197): correct DBSP Prop 3.5 → Theorem 3.3 misattribution + close (6th cycle close-row)#3893
Conversation
…se row (6th cycle close-row) #2-Ready pickup: row had embedded mechanical grep falsifier ready-to-do. 3 bare misattributions replaced with strikethrough + dated [corrected 2026-05-05:] annotation: - tools/lean4/Lean4/DbspChainRule.lean line 51 - tools/lean4/Lean4/DbspChainRule.lean line 203 - docs/research/chain-rule-proof-log.md line 113-114 Each correction cites Theorem 3.3 'Q^Delta = Q for LTI operators'. Original prose preserved via ~~...~~ strikethrough per witnessable- evolution discipline. Falsifier returns 0 bare references. Co-Authored-By: Claude <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Sixth close-row in the audit cycle. Replaces three bare "Prop 3.5"/"Proposition 3.5" misattributions in the Lean chain-rule proof and its research log with strikethrough+annotated corrections that cite Theorem 3.3, then marks B-0197 closed in the backlog and root index.
Changes:
- Corrects two misattributions in
tools/lean4/Lean4/DbspChainRule.lean(lines 51 and 202–203) with witnessable-evolution strikethrough and dated annotation citing Theorem 3.3. - Corrects the parallel misattribution in
docs/research/chain-rule-proof-log.md(lines 113–115). - Flips B-0197 to
status: closed, adds a Resolution section to the per-row file, and updatesdocs/BACKLOG.mdto render it as closed.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
tools/lean4/Lean4/DbspChainRule.lean |
Replace two bare Prop 3.5 references with Theorem 3.3 citations, preserving original prose via strikethrough. |
docs/research/chain-rule-proof-log.md |
Apply the same correction pattern to the proof-log narrative. |
docs/backlog/P2/B-0197-…md |
Frontmatter status: open → closed; appends Resolution + falsifier-pass + composes-with note. |
docs/BACKLOG.md |
Marks the B-0197 row checked in the generated index. |
Copilot reviewer flagged that my earlier sed fragmentation left
docs/research/chain-rule-proof-log.md line 115 ('naming the sub-property];')
as a dangling fragment with closing ] and ; that had no matching opening
punctuation.
Rewrote the passage as coherent prose: strikethrough preserves original
'smuggled in as a convention (Budiu et al. Proposition 3.5 uses it without
naming it)' as a single block; correction annotation cites Theorem 3.3.
Falsifier still passes: 0 bare references after this fix.
Co-Authored-By: Claude <noreply@anthropic.com>
… single-line regex compliance Prior fix used multi-line strikethrough (~~ opening line 113, closing line 114) which markdown renders correctly but row's embedded falsifier uses single-line regex (~~.*Prop. 3.5 on same line). Fix: re-open ~~ at start of line 114 so the line is self-contained for the falsifier. Adjacent ~~ blocks still render as continuous strikethrough in markdown. Falsifier now returns 0 bare references. Co-Authored-By: Claude <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 4 out of 4 changed files in this pull request and generated 2 comments.
Comments suppressed due to low confidence (2)
docs/research/chain-rule-proof-log.md:116
- The strikethrough markers in this correction are malformed. The intent appears to be striking out "smuggled in as a convention (Budiu et al. Proposition 3.5 uses it without naming it)", but the markup is
~~smuggled in as a\n~~convention (...)~~— three~~tokens. CommonMark/GFM will pair the first two (striking only "smuggled in as a") and leave a stray opening~~beforeconventionwhose closing pair is the trailing~~, producing the inverse of the intended rendering (the words "convention (Budiu...naming it)" get struck while "smuggled in as a" does not, or the markup degrades to literal tildes depending on the renderer). Either wrap the entire phrase in a single~~...~~span on one logical line, or use two well-formed spans.
delay*. At the DBSP paper level this is the LTI condition: ~~smuggled in as a
~~convention (Budiu et al. Proposition 3.5 uses it without naming it)~~
[corrected 2026-05-05: Budiu et al. Theorem 3.3 explicitly states `Q^Delta = Q` for LTI operators; the paper makes it explicit, not smuggled-in]; in Lean it must be an explicit part of the contract.
docs/research/chain-rule-proof-log.md:117
- The blank line that previously separated this paragraph from the
### Round-35 resolution — the hierarchyheading was removed in this edit, so line 117 now follows content directly. Markdownlint MD022 (and several renderers) require a blank line before headings; add one between line 116 and line 117.
[corrected 2026-05-05: Budiu et al. Theorem 3.3 explicitly states `Q^Delta = Q` for LTI operators; the paper makes it explicit, not smuggled-in]; in Lean it must be an explicit part of the contract.
### Round-35 resolution — the hierarchy
…for grammar Copilot review threads on PR #3893: 1. Proof-log line 112-113 had duplicate sentence (my Python edit's slice math left the original). Removed duplicate. 2. Lean lines 202-203 had two disconnected correction blocks. Rewrote as single coherent prose: 'LTI condition: ~~unspoken premise of Budiu et al. Proposition 3.5~~ Budiu et al. Theorem 3.3 [corrected 2026-05-05:...]'. Falsifier still passes: 0 bare references. Co-Authored-By: Claude <noreply@anthropic.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 1fa34f49ee
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Two findings on PR #3893 latest review: 1. MD022 at proof-log line 116: '### Round-35 resolution' heading needs blank line above. My earlier duplicate-line removal closed the gap. Re-inserted blank line. 2. Codex P1 thread: bump frontmatter last_updated to 2026-05-16 when closing row. Was 2026-05-05. Co-Authored-By: Claude <noreply@anthropic.com>
Copilot caught real markdown imbalance: 3 ~~ tokens across lines 113-114 (~~smuggled in as a ... ~~convention (...)~~). Intended single strikethrough span gets ambiguous render.
Fix: close ~~ at end of line 113 ('smuggled in as a~~') so each line is self-contained with 2 balanced tokens. Adjacent ~~..~~ blocks still render as continuous strikethrough.
Falsifier still passes: 0 bare references.
Co-Authored-By: Claude <noreply@anthropic.com>
Sixth actual close-row of the audit cycle. #2-Ready pickup: row had embedded mechanical grep falsifier ready-to-do; first instance that named the sub-class in catalog memory.
Text corrections shipped (3 bare misattributions)
tools/lean4/Lean4/DbspChainRule.leanline 51:~~unspoken premise (Budiu et al. Prop. 3.5)~~ LTI condition [corrected 2026-05-05: Theorem 3.3...]tools/lean4/Lean4/DbspChainRule.leanline 203:~~Budiu et al. Proposition 3.5~~ Budiu et al. Theorem 3.3 ([corrected 2026-05-05: ...])docs/research/chain-rule-proof-log.mdlines 113-114: same correction pattern, citingQ^Delta = Q for LTI operatorsEach correction cites Theorem 3.3 explicitly. Original prose preserved via
~~...~~strikethrough per witnessable-evolution discipline (acceptance criterion d).Falsifier verification
Row's embedded two-pass grep returns 0 bare references after this PR.
grep -nE "Prop\.? 3\.5|Proposition 3\.5"finds 3 matches;grep -v -E "~~.*Prop\.? 3\.5|~~.*Proposition 3\.5|\[corrected 2026-05-05"returns 0 bare lines.Acceptance verification
#2-Ready catalog vindication
This row was the FIRST instance that named the #2-Ready sub-class in the catalog. Closing it validates the catalog's prediction pattern: rows with embedded mechanical verifiers are pickup candidates for budget-healthy ticks.
🤖 Generated with Claude Code