Repository navigation
refactor(machines): retire superseded tidy list combinators - #2008
Conversation
Reuse the plain InO map rule for the unchanged space-only mapping bound, remove four superseded tidy declarations, and test captured-parameter mapping including empty lists. Lower the two baseline entries from freshly compiled module metadata. Focused strict builds, hygiene and aggregate checks pass; full hosted validation required. AI-assisted with Codex; independent review recorded on the PR.
|
The plain The new captured-parameter fill client covers both Boolean values and an empty list. The author's strict focused build passed for the affected modules, InSpacePlain tests and Universal.Complexity; full hosted validation is pending. No curated abstract statement changes. I inspected the source, resource conversions, references, imports and final deltas without editing or running builds. |
|
|
SamuelSchlesinger
left a comment
There was a problem hiding this comment.
reviewer-claude-e6cf7b0d-10 (Claude Code, Opus; Claude fleet, outside this PR's fleet). Verdict at ea97f8c: APPROVE. Agent review, not human approval.
- The PR removes four tidy declarations:
ComputableTidilyInO.findWith,.filterWithand.mapWith, andComputableTidilyInSpace.mapWith. None has a remaining reference on the branch. The step helpers they used (findStep,filterStep,mapStep, theirfoldl_*lemmas andlength_encList_filter_le) are still used by the plainBigO/Lists.leanand byLists.lean, so nothing is left dead. - The statement of
ComputableInSpace.mapWithis unchanged, including its full charged-space expression. Its proof is nowexists_inOfollowed byof_inO (ComputableInO.mapWith …). That replaces a copy of the fold argument with the plain rule, which is the intended direction for #862. - The baseline drops 32→29 for
BigO.leanand 45→44 forInSpaceLib.lean, matching the four removals. The-- vendored:note records the local adaptation of the vendored file, and the credit to Christian Reitwiessner's construction is kept inBigO/Lists.lean. fill_inSpaceis a real client: a captured parameter, linear space, andrflchecks on empty and nonempty lists. Hosted CI is green at this head.
Nit, optional: the module docstring of BigO.lean now reads ".foldl, .foldlWith: left folds with a parameter", but only foldlWith takes a parameter.
|
auditor-claude-e6cf7b0d-22 (Claude Code, Opus; Claude fleet). Statement-level audit of ea97f8c: no public statement is lost. This is not a full review.
|
Main retired the tidy list combinators (#2008), stated stepWith_inO in the plain calculus (#1777) and replaced the tidy decoder certificate with exists_computableInDegree_decodeDesc (#1863). Use the plain mapWith, stepWith_inO.tidy and the plain decoder with .tidy bridges, following the pattern those PRs used for existing clients. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015DLg8kwPs8yi7ePPdtoNvG
…#800) (cslib-community#1852) * wip(universal): interfaces for the O(t log t) windowed simulation (cslib-community#800) * wip(divconq): trace lemma and case-analysis certificates * wip: plain-form interfaces; case-analysis certificates * wip(universal): interfaces for the windowed cost analysis (cslib-community#800) * wip: local copy of the plain divConq stub (coordinator's WIP file does not build) * wip(divconq): fix module structure * wip(divconq): round certificates * feat(universal): prove universal_eq_sim for the windowed simulation (cslib-community#800) * wip(divconq): round and halt certificates * feat(turing): linear-time unary take and drop on encoded lists (cslib-community#800) A native one-work-tape machine (Internal/KernelTakeDropUnary.lean) copies the unary count to its work tape and streams the encoded list once, moving the work head at each element boundary: 3 * |input| + 2 steps, n + 2 cells. - ComputableInDegree.takeUnary / .dropUnary (plain, degree 1 1) in Combinators/TakeDropUnary.lean (no public tidy statements). - ComputableTidilyInDegree.dropUnary in Complexity/Lists.lean upgraded in place from degree 2 to degree 1 via the tidy normal form. AI-assisted (Jetski worker B). * feat(universal): prove the windowed size bounds (cslib-community#800) Replace the sorries in Universal/WindowedBound.lean: the size of windowed configurations, the invariant after cutting, simulating and pasting, the output bounds and the unfolding sim_add_two. * wip(universal): cutting, pasting and halving certificates (cslib-community#800) * wip(stack-loop): runs between shifted configurations and word-moving machines (cslib-community#800) * feat(universal): size facts for the windowed simulation and tests (cslib-community#800) * feat(divconq): divide and conquer from the stack loop * chore: regenerate Complexity.lean * feat(universal): prove initProb_inO, the cost of the initial windows (cslib-community#800) Binary-to-unary conversion by a doubling left fold over the reversed binary digits (time O((t + 1) * (L + 1))), the input recoded by four passes of the finite-state rewrite true -> true, false -> true false, the input window cut with the linear-time unary take (through a single private wrapper), and the blank work windows built by replicate. * style: line lengths * feat(universal): certificates for windowed cutting, pasting, stepping and halving (cslib-community#800) * wip(universal): D&C parts and node/base cost bounds for the windowed simulation (cslib-community#800) * feat(universal): the universal function in time O(t log t) (cslib-community#800) * wip(stack-loop): tape layout and phases of the stack-loop machine (cslib-community#800) * docs(universal): document the windowed cost certificates (cslib-community#800) * fix(divconq): keep tidy helpers private; review doc fixes * fix(turing): keep vendored Lists.lean faithful; doc and test nits (cslib-community#800) Review S1: revert the Complexity/Lists.lean hunk (tidy dropUnary keeps crei's degree-2 proof) and drop the docs/test mentioning the tidy dropUnary. Nits: split the KernelTakeDropUnary module docstring title onto its own line and add a blank line before `module` in the test file. * wip(stack-loop): the run of the stack-loop machine (cslib-community#800) * style: line lengths * test(divconq): smoke test instantiating ComputableInO.divConq (cslib-community#800) * feat(stack-loop): prove ComputableInO.stackLoop natively (cslib-community#800) * chore(stack-loop): register modules, fix lints (cslib-community#800) * feat(Hierarchy/ShortDesc): decide shortness in linear time Halve the unary length of the word once per bit of the framed description with a finite-state transducer inside the cumulative-cost unary stream; the costs n + n/2 + ... sum to O(n). Replaces the quadratic certificate; Time and Space build unchanged. * feat(Hierarchy/TimePolylog): time hierarchy with a polylogarithmic gap (cslib-community#800) With the O(t log t) universal simulation, the clocked diagonal on short descriptions runs in time O(n + polylog(n) * J log J); derive DTIME f ⊂ DTIME g for a clock J beating c * f + c (eventually or frequently) and for time-constructible f >= n with (f + 1) * (log (f + 1) + 1) ^ k <= g, for an absolute exponent k. Extract the logarithmic-clock domination lemma from LogClock, and update Time/LogClock docs and the ROADMAP hierarchy bullet. * doc(upstream): record the windowed universal simulation * doc: literature mapping, ROADMAP milestone, narrower public imports (review) * style: line length * style: line length * refactor(stack-loop): address review — reuse whileCond, targeted expose, private helpers (cslib-community#800) * doc(roadmap): define N, D, M in the cslib-community#800 entry * style(universal): replace non-terminal simp with simp only in Windowed (cslib-community#800) Addresses the source-hygiene finding on Windowed.lean:730 from reviewer-codex-edemaine's review of ba6a94a. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015DLg8kwPs8yi7ePPdtoNvG * fix(universal): adapt WindowedParts and TimePolylog to main (cslib-community#800) Main retired the tidy list combinators (cslib-community#2008), stated stepWith_inO in the plain calculus (cslib-community#1777) and replaced the tidy decoder certificate with exists_computableInDegree_decodeDesc (cslib-community#1863). Use the plain mapWith, stepWith_inO.tidy and the plain decoder with .tidy bridges, following the pattern those PRs used for existing clients. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015DLg8kwPs8yi7ePPdtoNvG --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Retires the superseded tidy InO
findWith,filterWith, andmapWithrules after #1773’s plain migration, plus the unused tidy spacemapWithwrapper. The existing plain space theorem now follows from the plain InO rule in four lines, replacing another fold proof while preserving its full charged-space expression. All in-repository clients use the retained plain interface; no aliases are added.The tidy baseline drops by four declarations (
BigO32→29,InSpaceLib45→44). The measured update used freshly compiled module metadata; the global checker needs the whole-library artifacts supplied by CI. A concrete captured-parameter mapping client checks linear space and empty/nonempty outputs. Strict affected-module/client builds, hygiene and aggregate checks passed locally. Full validation: hosted Lean CI.Part of #862; the broader tidy-calculus deletion remains open. Selected formal abstracts and their semantics are unaffected. Source credit is preserved. AI assistance: Codex implementation and independent non-author review, recorded below against the committed revision.