Skip to content

CnC comparison environment: region-branching cuber + kissat conquer + baseline Makefile#17

Merged
isPANN merged 2 commits into
mainfrom
cnc-comparison-env
Jul 11, 2026
Merged

CnC comparison environment: region-branching cuber + kissat conquer + baseline Makefile#17
isPANN merged 2 commits into
mainfrom
cnc-comparison-env

Conversation

@isPANN

@isPANN isPANN commented Jul 11, 2026

Copy link
Copy Markdown
Collaborator

What

Builds the Cube-and-Conquer (CnC) comparison environment so our region-branching
cuber can be measured head-to-head against the standard cuber baselines on the
same CNF, with the same conquer solver — the fair-comparison setup the paper
reviewers asked for.

Purely additive: src/solver.rs is byte-identical to main (the core
bbsat search is untouched). New module + tooling only.

Changes

  • src/cube.rsgenerate_cubes: uses the region-branching rule as a CnC
    cuber. Descends the branch tree and emits the decision-literal path as a cube
    once |σ_dec|·|σ_all| > θ (the paper's cutoff). No component decomposition (a
    cube is a whole-formula partial assignment), every branch explored to a leaf;
    reuses the existing node primitives (findbest / propagation / reductions). Two
    unit tests.
  • benchmarks/conquer_cubes.py — one harness that conquers a cube file
    (march_cu's a <lits> 0 iCNF, which our cuber also emits over the same
    variable numbering) with kissat and reports the per-cube difficulty
    distribution (CV / P95 / P99 = the uniformity metric) plus the cutoff-proxy vs
    realized-difficulty Spearman.
  • cnc-tools/{Makefile,README.md,.gitignore} — one-command setup
    (cd cnc-tools && make) that builds cadical, kissat, and march_cu from
    upstream source and clones Proofix (the SAT 2025 proof-prefix cuber the
    reviewers named). Idempotent, self-cleaning; only the recipe is tracked, the
    built binaries are git-ignored.

Not included (by design)

  • examples/gen_cubes.rs — the CLI that drives generate_cubes, kept local per
    the repo's examples/ gitignore convention.
  • The γ-share search-tree instrumentation lives on a separate branch
    (gamma-share-only), out of this PR to keep the core solver untouched here.

Test

cargo test green (93 existing + 2 new cube tests); pipeline validated
end-to-end (bi / march_cu / Proofix cubes → kissat conquer) locally.

isPANN and others added 2 commits July 11, 2026 14:12
src/cube.rs: generate_cubes uses the region-branching rule as a CnC
cuber — descend the branch tree, emit the decision-literal path as a
cube once |sigma_dec|*|sigma_all| > theta (the paper's cutoff). No
component split (a cube is a whole-formula partial assignment) and every
branch explored to a leaf; reuses the node primitives (findbest,
propagation, reductions). benchmarks/conquer_cubes.py solves each cube
with kissat and reports the per-cube difficulty distribution (CV/P95/P99
= the uniformity metric) and the cutoff-proxy vs realized-difficulty
Spearman. examples/gen_cubes.rs (gitignored, per project convention)
emits march_cu's iCNF 'a <lits> 0' format so one harness drives either
cuber on the same CNF.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DER3ZNDekiqXfmLH7XDVXh
make (in cnc-tools/) builds cadical, kissat, and march_cu from upstream
source and clones Proofix into bin/ + proofix/, so the fair-comparison
baselines reconstruct on any machine. Idempotent (existing binaries
skipped); self-cleaning (source trees removed, only ~2MB of
self-contained binaries kept). Only the Makefile + README (the recipe)
are tracked; .gitignore excludes the generated bin/, proofix/, .build/.

Answers the CnC fair-comparison goal: march_cu (lookahead), Proofix
(proof-prefix, SAT 2025 — the reviewer-requested baseline), plus
cadical/kissat conquerers, all buildable with one command.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DER3ZNDekiqXfmLH7XDVXh
@isPANN isPANN merged commit 0c14d3c into main Jul 11, 2026
1 check passed
@isPANN isPANN deleted the cnc-comparison-env branch July 11, 2026 06:21
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