Skip to content

Integrate reviewed reductions, graph explorer, and Rust 2024 migration - #1196

Merged
GiggleLiu merged 166 commits into
mainfrom
feat/polynomial-comparator-v1
Oct 29, 2026
Merged

GiggleLiu merged 166 commits into
mainfrom
feat/polynomial-comparator-v1

Conversation

@isPANN

@isPANN isPANN commented Oct 13, 2026 •

Copy link
Copy Markdown
Collaborator

The graph UI previously overstated growth and variant hardness, and some reductions could panic or produce objectives outside the target integer range. This integrates the reviewed fixes and their dependent reduction stack, then migrates all five workspace crates to Rust 2024.

pred path --compare and the browser share a polynomial comparison engine. Comparisons are relative to one batch of chosen certificates, exclude exact-cancellation families, and retain bounded strata. They describe certificate growth; they do not establish actual target-size ordering or running time. Browser summaries retain exact zero, use conservative O notation, and label the front as size-bound candidates. Explorer badges describe concrete-variant witness routes from SAT or to ILP. Load failures are visible in both modes. Inline math uses direct theme colors to avoid WebKit rasterizing filtered SVG glyphs; intentional colors and figure styling are preserved.

The folded PRs retain their individual review and merge records:

Builds on #1194's graph invariants. The substantive growth/complexity issues in #1219, #1220, and #1221 are excluded.

Compatibility: KSAT now defaults to K3. KSatisfiability<KN> and short-clause constructors are removed; persisted KN instances require migration. All five workspace crates declare Rust 1.88 as the minimum version.

Validation:

  • Independent semantic, integration, edition, and policy reviews passed. All recorded PR ancestry merges preserved the reviewed source tree.
  • make check: 7,194 tests passed, none skipped, plus formatting and all-target/all-feature Clippy. make paper and 23 Python pipeline tests passed. Later changes only touched website CSS, browser/provenance tests, and the dev-dependency lockfile.
  • Fresh production website verification passed 339 browser cases across Chromium, Firefox, and WebKit. Each engine passed 91 root, 16 recovery, and 6 nested-deployment cases. Generated contracts, TypeScript/lint, WASM, all production artifacts, source/provenance/hash checks, and final visual inspection passed. npm audit reports zero advisories.
  • WebKit math rendering has a dark/light pixel-reference regression with intentional colored glyph and stroke coverage. Explicit unavailable-data tests cover mixed known/unknown bounds. The changed native route fixture was independently checked against eight exact endpoint formulas and all 24 directional proof certificates.
  • All nine GitHub CI checks passed at d314b0b8bef7c7c7a879e626863b58d5e39ab080: format, Clippy, tests, macOS/Windows/RISC-V builds, coverage, Codecov patch, and Codecov project. Codecov reports 97.27654% patch and 97.18% project coverage; its comparison baseline is 48a9571.
  • Website candidate 4f57c65928759e2a04933856d64f178eea4119c2, the final PR head, and main merge a10ee83007296e686c4c7f94f70f70bddb92b078 share source tree 28ce6046853ed92f7835e0418461f7bc00dd1bb4.

isPANN and others added 30 commits October 12, 2026 22:03
Share exact polynomial algebra and partial-hull parameter composition. Add
checked Newton coverage and regular-valid witnesses, conservative final-front
filtering, transparent pred path output, and the schema-5 JSON view.

Document the generic semantics and limitations, include the self-contained
theory source, and exercise composition, comparison, rendering, and CLI behavior.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Set edition = "2024" for all four crates and rustfmt; pin
  style_edition = "2021" so this change carries no formatting churn.
- Apply cargo fix --edition (closure pattern binding modes); keep plain
  `expr` macro fragments since no caller passes `const {}` or `_`.
- Collapse nested ifs into let-chains per clippy::collapsible_if.
- Mark the illustrative #[reduction] syntax snippet as `text` so
  `make test` (--include-ignored) no longer tries to compile it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Drop the style_edition = "2021" pin and reformat. Formatting only:
2024 version-sorts imports and adjusts a few layout rules.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Edition 2024 needs Rust >= 1.85, but the let-chains this migration
introduces need 1.88 (dev-dependency proptest 1.12 needs 1.88 too).
Verified with `cargo +1.88 check --workspace --all-targets --all-features`.
The MSRV-aware resolver (default for edition 2024) picks uuid 1.26 for
rmcp on 1.88, since uuid 1.28 needs 1.89.

Also realign a format! string in ilp.rs that rustfmt cannot reflow.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The edition migration reflowed several error branches that no test
reached, failing the codecov patch target. Add tests asserting each
exact error: undersized num_vertices on graph construction, weight and
setup-time overflow in evaluate, ILP objective overflow, malformed
targets in rule extraction and gadget tapes, CLI after-help, and two
proc-macro rejection paths. Test code only.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
wait-ci reached emit_result(result, args.format) without defining
--format, so every run crashed with AttributeError after CI finished.
Add the option with the same choices and default as the other
subcommands, plus a parser regression test.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
b17d57d made create_pr look up the new PR by its head branch (so it
works from worktrees) but left the test asserting the old call without
head=. Assert the current call; production code is unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Use exact hybrid polynomial multiplication, reduced Newton supports, batched curve caches, and grouped comparison summaries to improve route scaling without changing verdicts.

Restore graph navigation, stream route rows before comparison, reuse idle WASM workers, load documentation and Atlas records on demand, and publish precomputed layout positions.

Add regression tests, reproducible 100/999-route benchmarks, and an architecture and performance report. Validation includes 7,105 Rust tests, 45 browser checks, Clippy, and 553,863 matching pair verdicts.
Preserve the runtime already used for the Stage 0 screenshots, interaction pilots and production checks. Keep this preparation separate from new accessibility fixes and later TypeScript migration.
Pin build-only tooling and prove TypeScript emission, CSS delivery and finalized CSP in two real browser pages. Verify strict checking independently with valid and invalid input and no JavaScript output. Production integration remains a separate increment; no application TypeScript is introduced.
@GiggleLiu

Copy link
Copy Markdown
Contributor

Review fixes

Pushed 6eaf2193debd31505bb3286033efa8fd367bfa7b. Exact zero displays as 0; coefficient/sign-stripped polynomial summaries use conservative O(...) and retain independent monomials. The UI now says “size-bound candidates” and “other routes”, with a visible explanation of the comparison domain.

Six focused Node tests, TypeScript/ESLint checks, production bundling, and desktop/mobile browser regressions pass. The full repaired stack, including Rust 2024, passed 7,194 native tests, formatting, Clippy, the paper build, and 23 Python pipeline tests at d96e7c8b84733dbdd5873e19b8bf1185c7e7396d. Independent review passed. Full website validation is running before the feature stack is consolidated and submitted to fresh required CI against main.

[Critical] Remove KSatisfiability KN variant and short-clause constructors
Declare exact parameter counts that constructions always produce
Tighten ILP num_nonzeros bounds to per-constraint counts
Tighten StaffScheduling and SWRTD QUBO size bounds
Add binary decision ILP to SAT and fix solution validators
Add staff-scheduling QUBO and tighten direct-reduction bounds
Add Phase 3 conditional direct QUBO reductions
Add Phase 1 direct QUBO encodings for scheduling and assignment
…nces-complexity

Fix SimultaneousIncongruences complexity to include the search period
…ad-structure

Rebuild the graph page: Explorer panel, growth filter and Turing toggle
@GiggleLiu
GiggleLiu changed the base branch from fix/simple-graph-invariant to main October 29, 2026 07:50
@GiggleLiu GiggleLiu changed the title [Critical] Compare reduction paths with a generic polynomial order Integrate reviewed reductions, graph explorer, and Rust 2024 migration Oct 29, 2026
Migrate workspace to Rust 2024 edition

@GiggleLiu GiggleLiu left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agentic Review Report: final integration

The prior blocking findings are resolved in reviewed head d314b0b8bef7c7c7a879e626863b58d5e39ab080, targeting main. Approved on code review, with fresh main CI and Codecov still required before merge.

Structural and semantic

  • Browser growth summaries preserve exact zero, use conservative upper-bound notation after discarding signs and coefficients, and retain independent monomials. Route-front labels describe size-bound candidates and explain the generic comparison domain. They do not claim actual size or runtime superiority.
  • Explorer status follows concrete-variant witness routes. It no longer infers hardness or available solvers from family-level reachability. Shared load errors are visible in both modes.
  • The scheduling allocation and complete matrix-objective range blockers are fixed with checked bounds and boundary regressions. The SetSplitting clause bound and fallible SAT construction fix landed separately in #1195 and are included here.
  • The accepted exact-width K-SAT change includes corrected proofs and examples. The graph and K-SAT API breaks were accepted by the maintainer. SimultaneousIncongruences now has a documented exhaustive-search upper bound; this review does not establish the literature-best general bound.
  • All five crates are included in the independently reviewed Rust 2024 migration. Integration conflicts and the changed route-comparison fixture were separately reviewed; all eight endpoint formulas and 24 directional certificates were checked independently.
  • Individual PR merge records are preserved. Ancestry-only merges reproduce the tested source tree exactly: 28ce6046853ed92f7835e0418461f7bc00dd1bb4. The blocked growth/complexity changes in #1219, #1220, and #1221 are absent.

Quality and verification

  • make check: 7,194 tests passed with none skipped, plus formatting and all-target/all-feature Clippy. make paper and 23 pipeline tests passed.
  • The final changes after that native gate are limited to website CSS, browser/provenance tests, and the dev-dependency lockfile. Native source is unchanged.
  • Fresh complete production website verification passed at 4f57c65928759e2a04933856d64f178eea4119c2, whose tree is identical to this PR head. All 339 browser cases passed across Chromium, Firefox, and WebKit, including recovery and nested deployment. Build, WASM, frontend contracts, TypeScript/lint, artifact hashes, provenance, and source-unchanged checks passed.
  • Visual inspection exposed a WebKit inline-math filter defect after the first full run. A narrow CSS correction passed independent review, old-CSS failure controls, dark/light pixel-reference regressions in all three engines, and the fresh full verifier. The new test's loading race was fixed and checked against a delayed real response. The provenance unit test retains actual report/hash assertions while stubbing only expensive external tool invocations.
  • The updated PR body describes the consolidated scope and compatibility implications. Feedback sources were rechecked; no new material concern was found. Fresh main CI and Codecov remain the final merge gate and are not represented as completed by this review.

Policy audit

GATE: PASS. Prior independent semantic, edition, integration, and final CSS reviews found no unresolved harm signals. No secrets, generated exports, build/cache artifacts, conflict markers, scratch files, or production debug probes were introduced by the reviewed fixes. Final GitHub merge trees match the reviewed candidate.

@codecov

codecov Bot commented Oct 29, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 97.27654% with 39 lines in your changes missing coverage. Please review.
✅ Project coverage is 97.18%. Comparing base (48a9571) to head (d314b0b).
⚠️ Report is 4 commits behind head on main.

Files with missing lines Patch % Lines
problemreductions-web/src/lib.rs 92.98% 16 Missing ⚠️
src/poly_compare/mod.rs 98.02% 15 Missing ⚠️
src/poly_compare/lp.rs 93.33% 5 Missing ⚠️
src/path_search.rs 96.96% 3 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1196      +/-   ##
==========================================
+ Coverage   97.03%   97.18%   +0.15%     
==========================================
  Files        1103     1146      +43     
  Lines      145876   151076    +5200     
==========================================
+ Hits       141545   146819    +5274     
+ Misses       4331     4257      -74     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@GiggleLiu
GiggleLiu merged commit a10ee83 into main Oct 29, 2026
9 checks passed
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.

3 participants