Skip to content

feat(machines): add focused plain automation prerequisites - #801

Merged
SamuelSchlesinger merged 5 commits into
mainfrom
feat/plain-automation-support-750-codex
Oct 24, 2026
Merged

SamuelSchlesinger merged 5 commits into
mainfrom
feat/plain-automation-support-750-codex

Conversation

@SamuelSchlesinger

@SamuelSchlesinger SamuelSchlesinger commented Oct 24, 2026 •

Copy link
Copy Markdown
Collaborator

Add 30 ordinary plain polynomial-time rules at their existing topic homes, plus the exact plain Toda sharpTest counterpart. These cover the measured list/membership, Boolean, unary/binary arithmetic, encoded-word, padding, captured iteration and captured fold obligations needed by the direct plain polytime backend. Preserve complete named premises, joint captured inputs, distinct raw/framed encodings, unary counts, and polynomial growth contracts. Proofs reuse existing machine certificates; existing runtime programs are unchanged.

This is the shared prerequisite for #750/#456/#558. The driver change is a separate PR, and the broader #608 migration remains open. The obsolete expected scan failure becomes the same positive statement with missing-list/callback negatives; the original Contracts/Tactic/PlainDriver suites are retained.

Validation at exact b11240eae9c3ea3ab974f1ff87ae6c01afdca900: all six local gates pass. The focused captured word-copy and framed-fold clients pass. Ordinary direct fun_prop fixtures use zero transition depth; the captured fixtures explicitly apply the plain rules with plain callback proofs. These support fixtures alone do not establish direct-driver parity: execution of the preserved growth/callback negatives and actual driver clients belongs to the separate driver handoff. Exact hosted CI 40098895793 and independent final approval remain required before enqueue.

Framework friction: the measured generic rules live in their shared Machines homes, with the exact Toda endpoint in its existing module. This PR adds no deriving attribute, registry, local Crypto copy or new proof engine.

No selected claim, program, domain or quantitative theorem changes. The catalogue remains 14 abstracts/19 headlines; abstract text and rendered claims need no change. Independent review of this no-impact assessment accompanies the source review. Codex authored and checked the change under coordinator direction; no author approval is claimed.

Expose 21 ordinary plain statements at their canonical topic homes plus Toda sharpTest at its existing domain. Retain every source context, encoding, count/width/growth assumption and numeric bound; reuse existing machine proofs locally. Original declarations and programs are unchanged. Direct support clients distinguish raw bits from framed lists and retain missing-premise negative controls. This is the bounded support prerequisite for #750 direct plain polytime dispatch, not the whole #608 calculus migration.
Add only measured ordinary rules: bitsAppend, unary_sub, bitsPadWord, and encoding_comp derived from existing plain copy/composition. The encoding rule solves the original Toda captured-width obligations without named padding; actual SavedPrediction framing and OneWayNormalization padding shapes pass with transitions disabled. Preserve unary width premises and both missing-padding-premise negatives. No runtime definition, new machine algorithm or resource contract changes.
@SamuelSchlesinger

Copy link
Copy Markdown
Collaborator Author

The direct-plain driver’s full library gate measured three additional missing ordinary rules: unary multiplication, fixed unary powers, and unary-indexed raw-bit slicing. They are being added at their existing Nat/List homes, with the exact Seed polynomial and Stretch slicing clients, a missing-count negative and rejection of a uniform unary runtime exponent. Existing Crypto assertions are not changed or cast back to raw goals. The currently published 2a6666f3 remains an all-six-pass checkpoint; I will publish the final updated support head and validation before requesting its exact-head verdict.

The full direct-plain driver library gate measured these exact missing primitives: unary multiplication, fixed unary powers, and computed raw-bit take. Restate only their existing uniform contracts, preserving unary count encoding and compile-time exponent. Actual Seed and Stretch shapes pass with transitions disabled; a uniform unary runtime exponent and a missing count certificate remain rejected. Original Crypto statements/scripts are unchanged.

SamuelSchlesinger commented Oct 24, 2026 •

Copy link
Copy Markdown
Collaborator Author

Independent review by coordinator-reviewer-codex-20261023 (not Samuel): APPROVED at exact head b11240eae9c3ea3ab974f1ff87ae6c01afdca900. The actual feature merge base is 82a7d99aa6773d73bdc27c6e94ecdcaa20247ce8.

I reviewed the complete 30 generic ordinary rules plus the exact Toda counterpart, reusing unchanged calculus mathematics. Full captured inputs, encodings, instances and named premises are retained. Unary multiplication and fixed powers keep their unary representation; the exponent is fixed outside the runtime function. Raw-bit slicing retains both computed-word and unary-count certificates. encoding_comp reads the representation already produced; Toda retains its complete nested verifier inputs and unary R/Z contract.

The two captured-loop counterparts preserve the joint input/state/element certificates, unary iteration count, packaged list/reader/size evidence, and the same input-dependent polynomial growth proof. Fold growth remains required for every accumulator only on elements of the runtime list. All transports are proof-local; existing runtime definitions and raw declarations remain unchanged.

The Seed/Stretch fixtures match actual clients. Fixed-power versus runtime-exponent and missing-input controls are meaningful with function-property transitions disabled. The new word-copy and framed-fold examples cover zero/empty and nonzero cases through explicit rule applications; zero transition depth covers their callback proofs. They are positive fixtures, not new whole-driver growth-negative tests. Original contract/tactic suites and their missing-callback/growth/count/encoding controls are byte-identical and remain part of the separate driver-parity validation.

No selected abstract, headline scope or rendering input changes. The corrected PR body matches this scope. Exact-head CI 40098895793 is SUCCESS: all six gates and the tidy-statement ratchet passed, and I verified the full run head SHA. The author's local gates are additional evidence; I did not run a fresh library build. Ready for enqueue at this exact head. The separate driver’s parity and the broader #671/#608 migration remain open.

Restore measured baseline-pass/direct-driver-fail captured iteration capability with exactly the original iterateWithInput and foldlWithInput bounded-growth statements. Preserve joint machine certificates, packaged reader/size interfaces, membership-scoped fold growth and proof-only input-dependent polynomial bounds. Existing raw statements and all runtime definitions remain unchanged. Actual runtime-word repetition and framed-element captured-fold clients pass strict checks; baseline/direct parity fixture is preserved under /tmp/codex-750-captured-iteration-probe.lean.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant