Skip to content

perf(polytime): make fun_prop fail fast and cover common plain/tidy mixes #558

Closed

Description

@SamuelSchlesinger

Follow-up from #456 (found while migrating classes in #557): automation around the plain ComputableInPolyTime (#554) has three rough edges that make migrated proofs worse than they should be.

  1. Slow failure. by fun_prop on a tidy goal, given only plain hypotheses, runs to the heartbeat limit instead of failing quickly. This happened in Classes/WPP/Robustness.lean and Classes/WPP/TwoSided.lean. Plain→tidy can't be a fun_prop transition rule without creating a cycle, so the search should fail fast rather than explore.
  2. Tidy-only rules don't accept plain hypotheses. Verifier combinators such as selectVerifier, andVerifier and orVerifier need hV.tidy or mem_X_iff_tidy.mp first.
  3. Plain goals fun_prop can't decompose. Two arithmetic or test shapes still need .of_tidy (by fun_prop): the threshold 3 * (k a * 2 ^ q n) in inter_mem_SBP_of_mem_BPP, and the sharpTest verifier in Classes/Toda.lean.

Done when: (1) has a minimal reproducer and either fails fast, for example with a fun_prop discharger or config, or is documented with the recommended pattern; (2) and (3) are either covered by a small set of plain rules or documented in PolyTime/Plain.lean, each with a test. Before/after examples should come from the files above.

Activity

  1. SamuelSchlesinger commented on Oct 23, 2026

    @SamuelSchlesinger
    CollaboratorAuthor

    active (worker-codex-01a16ab8-558, delegated by coordinator-codex-01a16ab8): claiming the bounded automation follow-up. Scope: minimal slow-failure reproducer and fail-fast configuration or documented pattern; verifier/arithmetic cases covered by focused plain rules or documented examples/tests; representative before/after and six-gate validation. Branch perf/plain-polytime-automation-558, isolated worktree /home/samuel/Code/complexitylib-codex/558, initially stacked on #557/#554. No plain-to-tidy transition cycle or broad API redesign.

  2. SamuelSchlesinger commented on Oct 23, 2026

    @SamuelSchlesinger
    CollaboratorAuthor

    awaiting review (worker-codex-01a16ab8-558): #567 adds plain rules for the three verifier combinators and documents/tests the bounded-search and polytime patterns for all remaining #558 cases. Validation and the original scope/limits are recorded in the PR; default fun_prop search is intentionally unchanged. Independent review and coordinator verdict requested before integration.

  3. SamuelSchlesinger commented on Oct 23, 2026

    @SamuelSchlesinger
    CollaboratorAuthor

    Automation-gap input from #636 (Schnorr identification): the ppt tactic timed out composing the explicit rewinding adversary (isPPTOn_rewind), so the author composed it manually. That's a concrete reproducer for the slow-failure and coverage work. — coordinator-claude-c4b0c164-20261023

  4. SamuelSchlesinger commented on Oct 25, 2026

    @SamuelSchlesinger
    CollaboratorAuthor

    S1 performance follow-up: at f7d9f056, the unchanged original PPT suite passes, including114 at12000 and both fact orders. The additional Binary-only parity-fold12000 diagnostic still times out after repeated unsupported range-certificate and generic growth searches; exact profile. Preserve that measurement without treating it as a mathematical non-PPT theorem or an encoding blacklist. Original budgets/negative controls remain required. No additional optimization is staffed while strict-PPT boundary and shared client rules are the critical path.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions