Rigor-debt inventory
Rigor-debt inventory
A read-only pass over the mathematical docs, listing claims that are hand-waved, asserted-without-proof, or
explicitly unchecked — each tagged with the verification tier that would discharge it (see CONVENTIONS.md
§2). This is a triage menu, not a work order. Nothing here has been resolved or edited; the owner picks
which holes are worth closing. Where a step looks suspect it is flagged as a candidate to check, not
asserted wrong — resolution is the owner’s call.
Tier legend: sympy = algebra/identity · numeric = a claimed evaluation/constant · lean = theorem/structural.
Two kinds of entry are kept distinct:
verify:markers — AI-dischargeable per the working contract.- ⚠ modeling tensions — owner-territory: a modelling choice, not an algebra slip. Flag, don’t resolve.
physics/Resogram.md (pilot #1 — RUN 2026-06-15)
Outcomes of the first end-to-end verify: pilot. Instruments live in verify/resogram_*.py
(re-runnable: uv run verify/resogram_<handle>.py); discharged claims carry an inline
verified: attestation in the source. Per the working contract the AI surfaces ✗ findings
and leaves Resogram.md’s math untouched — every resolution below is the owner’s call.
- [
sol]verify:sympy— ✓ (partial); badge\sorry(open). The claimed analytical solutionx(t) = A cos(Ωt+φ)e^{-βt} + ∫…solvesẍ + 2βẋ + ω²(x−y) = 0,Ω := √(ω²−β²).verify/resogram_sol.pyconfirms symbolically that the homogeneous part solves the homogeneous ODE and that the convolution kernel satisfiesK(0)=0,K'(0)=ω²,K''+2βK'+ω²K=0; by the Leibniz rule these giveẍ+2βẋ+ω²x = ω²y, i.e. the full equation. Noverified:attestation yet: the convolution assembly rests on the (standard) Leibniz step rather than one end-to-end symbolic substitution — hence the in-prose badge stays\veq{sol}\sorry(the repo’s one remaining\sorry). (The integrand’s unbalanced-paren typo flagged here originally was owner-ratified + fixed 2026-06-15 via /relay human — render fix only, verdict unchanged.) - [
edot]verify:sympy— ✗→✓ RESOLVED;verify:lean— ✓ lean-attested (tiersympy+lean). Energy-rate chainė = ẋ(ẍ+ω²x) = −2βẋ² + ω²ẋy: the first equality holds. The second, as writtenė = −4βe − ω²(2βx² − ẋy), was wrong — off by−4βω²x²; corrected toė = −4βe + ω²(2βx² + ẋy)(owner-ratified 2026-06-15). The algebraic substitution step (ẋ(ẍ+ω²x)withẍ = −2βẋ − ω²(x−y)) is now attested at two tiers:resogram_edot.py@54710d91(SymPy,claim=b575864e) andResogram.lean@a036b80d(Lean4+Mathlib, same claim-hash — kernel-checked). SymPy-as-gate dataset: SymPy ✓ correctly predicted the lean-provable claim; this is one datapoint supporting SymPy as a cheap pre-filter for Lean targets. Attestation:verified:sympy+lean [edot] claim=b575864e by=resogram_edot.py@54710d91,Resogram.lean@a036b80d. - [
edot_deriv]verify:lean— ✓ lean-attested (tierleanonly, SymPy-blind). Derivative step:e = ½v² + ½ω²x²has time derivativeė = v(a + ω²x)— the pure calculus step (chain rule / product rule), with no equation of motion assumed. Proven in Lean4+Mathlib viaHasDerivAt.pow+HasDerivAt.const_mul+HasDerivAt.add(Resogram.lean@a036b80d,claim=f359c0bf). SymPy-blind: this is the contrast datapoint for the SymPy-as-gate eval — SymPy handles algebra symbolically butHasDerivAt(differentiability witness) is purely a Lean/Mathlib concern. Attestation:verified:lean [edot_deriv] claim=f359c0bf by=Resogram.lean@a036b80d. - [
drive]verify:sympy— ✓ (attestedclaim=67223e71). Fromė=0, ẋ≠0⟹y = 2(β/ω²)ẋ, and the ẋ-independent solutionẏ=−2βx,ÿ = −ω²y(drive at the free frequency ω, not the eigenfrequency Ω).verify/resogram_drive.py. - [
esol] (wascval)verify:numeric— ✗→✓ RESOLVED + handle renamed. “e ∝ (c + cos²(Ωt+φ))e^{−2βt}; too lazy to check whether c=0.” Answer: c ≠ 0. The free-oscillator energy ise = (A²/2)e^{−2βt}(ω² + β²cos2θ + βΩ sin2θ) = (A²ω/2)e^{−2βt}(ω + β cos(2(Ωt+φ)−δ)),δ=atan2(Ω,β). It carries a sin(2θ) term, so the stated zero-phase(c+cos²θ)form is not exact forβ≠0; forcing a match on the cos(2θ) coefficient givesc = Ω²/(2β²) ≠ 0. Owner adopted the exact form (/relay human2026-06-15); instrument re-pinned ✓. Handle renamedcval→esol(/meeting2026-06-15) — old name encoded the now-answered “find c” question.verify/resogram_esol.py. - [
eincr]verify:sympy— ✓ (attestedclaim=d4c18e3b). The energy-increase condition|y| > 2(β/ω²)|ẋ|withsign(y)=sign(ẋ)is equivalent toė>0and confirmed on both sign branches.verify/resogram_eincr.py.
Cluster opened by the esol adoption (/meeting 2026-06-15) — RESOLVED in-document by the owner
(commit 236fa1b, reconciled to REVIEW_ME 2026-06-15). Ticks are CLAIMs the next /relay review re-checks:
- energy-loss claim (id:559c) ✓. ¶ now cites
(edot.3)— the manifestly-≤0 first formė=−2βẋ². ymaint/yfreeexposition (id:0cb5) ✓ (acknowledged). Owner accepted as exposition; results ✓ (resogram_drive.py). Fuller steps deferred to subequation numbering (id:d2f4).- c-narrative (id:f9fe) ✓. Owner removed the dangling “too lazy to check whether c=0” sentence; kept the pre-solution handwaving ¶ as framed.
- sliding-average window (id:3999) ✓. Corrected
2Ω∫₀^{1/2Ω}→(Ω/π)∫₀^{π/Ω}(full-period average).
NEW, spun out of 236fa1b (tooling/render — AI-eligible):
- render regression (id:3b4c) ✓ FIXED.
\ltag{e}inside\begin{aligned}→ MathJaxmerror; fixed by splitting into two$$blocks (\ltag{e}+ ė-chain\ltag{edot}outer), owner-confirmed. Suite green. - subequation auto-numbering (id:d2f4, wishlist). Auto-derive
(edot.1)…(edot.4)handles so per-line tags render; also resolves the[edot]marker losing its active\ltag{edot}. Relates to R2/R3,.mw.
Pilot scorecard: 5 claims run · 5 ✓ (sol partial, drive, eincr, edot, esol) · 2 ✗ located,
owner-resolved (edot sign error, esol/cval c≠0). The loop ran end-to-end and survived two real errors
— which was the point. [edot] now carries a verify:lean attestation tier too (Lean4+Mathlib kernel-checked,
Resogram.lean@3c516103) — the algebraic step is the first sympy+lean dual-attested claim in this repo.
physics/acoustics.md (pilot #2)
verify:sympy— ideal-gas manipulation(1/ρ)∇p = (c²/γ)∇ln ρ + ∇(c²/γ)fromp = (c²/γ)ρ. Pre-confirmed 2026-07-07 (SymPy session probe, generalc²/γ(x⃗)+ρ(x⃗)): identity holds ✓ — the eventual instrument should green immediately once the owner places the marker.verify:sympy— viscous-term coefficient changes between equations:(u)has+⅓∇(∇·u)(line ~30) but the linearized momentum eq has+½∇(∇·u)(line ~54). SHARPENED 2026-07-07 (SymPy, session probe): the operatorΔu + c·∇(∇·u)is exactly linear inu(T(u+εv) = T(u)+εT(v)verified symbolically, component-wise 3D), so linearization cannot change the coefficient — the½on the linearized line is the suspect transcription (the compressible-Newtonian form with Stokes’ hypothesis is⅓). Owner fixes or ratifies; AI does not edit the line.verify:sympy— the mass-conservation Gauss/divergence step∭∇·(ρu) = ∯(ρu)·dn, and the “shoebox” conclusion thatn·(ρu)is continuous.verify:sympy— Green’s-first-identity step (Γ=n⟹∭(n·∇)ψ = ∯ψ dσ).verify:sympy— the vector-calculus identities used in the Helmholtz/continuity argument, e.g.n·(∇×a) = −∇·(n×a) + a·(∇×n). Pre-confirmed 2026-07-07 (SymPy session probe, general 3D fieldsn⃗(x⃗),a⃗(x⃗)): identity holds ✓.verify:lean— the full Helmholtz-decomposition continuity argument (singularity-freef ⟹ a, φcontinuous) as a structured proof, once the identities above are discharged.- ⚠ modeling tension (owner-territory): linearization “assume
u₀=0(which contradictsu₀≫uthough…)” — a modelling-assumption conflict the author already flagged. Surface only; the owner chooses the framing.
physics/lasercool.md
- Currently mostly conceptual (ASCII level diagrams + prose); few formal claims yet. Candidates as it grows:
verify:numeric— the relativistic-Doppler shift relation for the absorbed vs spontaneously-emitted photon (the asymmetry that yields net cooling) once written as a formula.- ⚠ modeling tension (owner-territory): the qualitative cooling/heating argument (red-shifted absorption ⟹ net cooling) is a physical-direction claim — the owner’s to develop; AI verifies only once it’s a formula.
physics/entropy.md (recovered page — markers placed 2026-06-18; sections added to this inventory 2026-07-07)
- [
meanE]/[be]/[fd]verify:sympy— ✓ DISCHARGED (relay seam id:e9e9, 2026-07-02): the finite-N mean-occupation closed form, its N→∞ Bose–Einstein limit, and the N=2 Fermi–Dirac case. Instrumentsverify/entropy_{meanE,be,fd}.py; attestations inphysics/entropy.toml; in-prose badges flipped\sympyc→\sympy. - [
lambertw]\leanc(open) — split per /meeting id:3d2a D1: the l.53–57 algebra chain → its own\sympychandle (OWNER places the split marker — REVIEW_ME box open, gates ROADMAP id:5d31); the W closed-form line →\definition; the W branch/domain claim stays Lean-queued (id:37cc). - ⚠ modeling note (owner-territory): the two-level BE/FD identification (“bosonic two-level system”) is a physical-interpretation claim wrapping verified algebra — interpretation stays the owner’s.
crypto/fhe.md (recovered page — markers placed 2026-06-18)
- [
stirling]\sympyc(open, GATED on owner): the constant term inΠ_n = log₂((2^n)!)’s expansion readsln√(2π)but base-2 consistency requireslog₂√(2π)(≈0.407-bit offset, confirmed symbolically + numerically — REVIEW_ME box, 2026-07-01/02). Instrumentverify/fhe_stirling.py(id:76e5) un-gates once the owner fixes or ratifies the line. - [
ocount]/[semidestr]/[bij24]\leanc(open) — combinatorial counts, Mathlib-tractable (Fintype.card_pi/Nat.choose+Finset.card/Fintype.card_perm); each awaits its own frozen-signature scoping per /meeting id:3d2a D2 (queue id:37cc). - Complementary numeric instrument (counter-indicator only, never the badge): regenerate the n=2 tables and
cross-check
crypto/fhe.ods(the spreadsheet IS the worked computation — a natural attestation target).
physics/wirohsh.md (recovered page — owner DEFERRED marker placement 2026-06-16)
- Candidates surfaced in REVIEW_ME (2026-06-16), unmarked by owner choice — kept here as the triage menu:
verify:sympythe tangential-Laplacian reductionΔ_φ = (∂_x sinφ − ∂_y cosφ)² = ∂_{φ̄}²;verify:sympythe 1D back-rotationf = f⁺(x−ct) + f⁻(x+ct). - Not yet markable: the page has unfinished derivations (empty
alignblocks near the end + theRefractionstub) — no closed claim to badge; an owner content question, not a tooling one.
physics/photon.md (recovered page — rough stub, no closed result)
- No
\veqcandidates yet (Ansatz only, no closed claim). - ⚠ structural caution (surfaced 2026-07-07, dreaming session §1.7 / TODO id:57e2 Q12): interpreting the
Gaussian ansatz’s
μ_α(x)as “the photon’s position” will collide with the Newton–Wigner non-localizability result (no position operator for massless helicity ≥1) — guard the interpretation before the algebra accumulates. Owner decides whether/how to meet it.
physics/toesnail.md (the QM spine)
verify:lean— uniqueness of the zero vector|0⟩(“for a given vector space the vector of norm zero is unique”, footnoteuniqueZero, marked “#TODO for later”).verify:lean— Cauchy–Schwarz: “for two unit vectors the inner-product length is≤1, with equality iff parallel/anti-parallel.” (Mathlib has this — a clean early Lean smoke target.)verify:lean— the stated inner-product axioms (conjugate symmetry, linearity, positive-definiteness) define an inner-product space; tie to Mathlib’sInnerProductSpacefor structural grounding.- ⚠ conceptual flag (owner-territory): eq
t1writes the coin state as∝ p|heads⟩ + (1−p)|tails⟩with probabilities as coefficients. In QM the coefficients are amplitudes (probabilities are |amplitude|²). This is plausibly a deliberate “math on demand” simplification — surface only; the owner decides whether to address it now or later in the narrative. - ⚠ out-of-scope flag: “#TODO: try and proof whether omniscience is impossible?” — ill-posed as a formal
claim without a definition; parked, not a
verify:leantarget yet.
Generated as Deliverable #0 of the 2026-06-15 design meeting. To act on an item, the owner promotes it to an
inline verify: marker in the source doc (per CONVENTIONS.md §2), and the AI discharges it findings-only.