Add minimal factoring Cube-and-Conquer workflow#54
Merged
Conversation
Collaborator
Author
|
HPC2 debug smoke completed successfully.
No pilot or full-table job has been submitted yet. |
Collaborator
Author
HPC2 materialization checkpointSlurm job
Logs remain under |
isPANN
marked this pull request as ready for review
July 22, 2026 08:40
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Why
The previous benchmark stack mixed several historical experiment paths. This change keeps the paper-facing factoring workflow small and makes the Rust solver responsible for structural cubing and optional online conquer, while Python remains focused on reproducible experiment orchestration and analysis.
User impact
The retained workflow can generate matching circuit/CNF factoring corpora, solve CNF directly with Kissat, generate and conquer march cubes, export all cubes from the structural Rust solver, or stream those cubes directly into a parallel Kissat pool. SAT streaming runs stop and terminate outstanding solver processes as soon as a model is found.
Validation
cargo test --all-targets— 109 passed.PYTHONPATH=. uv run pytest— 30 passed.Closes #51