Published November 7, 2024 | Version 1.0.0
Software Open

Proof minimization source code bundle

Description

This archive contains the source code of our implementation of the resolution proof minimization and the experimental infrastructure we used to evaluate it.

General information

Our implementation is a Rust project which can be build by standard Rust toolchain on Linux (we use rustc 1.77.2). Compiling this project under Windows is problematic; this is a known issue with building CaDiCaL, which we use as a runtime dependency.

For optimal performance, please build in release mode. This can be achieved by command cargo build --release.

Proof minimization code

The proofmin directory contains the source code of the executable that produces short proofs given an input formula. If you are running this on small formulas, consider downloading Forqes and placing it into your PATH. For larger formulas, you may want enabling the following options:

  • --cadical to switch from the onboard DPLL implementation to CaDiCaL for proof completion;
  • --trivial-bounding and --no-dominance-pruning to disable pruning;
  • --max-subproblems-per-step $VALUE and --max-total-subproblems $VALUE to limit the search tree size by bounding respectively the branching factor and the queue size.

rustsat-cadical

We provide a hacked version of CaDiCaL v2 which outputs LRAT proof to a callback function; to integrate it in the Rust codebase, we also add the interoperability layer to the rustsat-cadical crate. 

lrat-score

To translate clausal proofs to a sequence of resolutions, we provide a utility program that parses an input formula and an LRAT proof, traces each of the propagations as a resolution step, and counts the total number of encountered clauses while accounting for the duplication.

For the sake of completeness, we include the baseline implementation as the short.py script from the peitl/short-proof repository on GitHub (commit hash 2c524cf; link to GitHub).

Files

proofmin.zip

Files (1.3 MB)

Name Size Download all
md5:c88c375cf89deb6b845007676697bfaf
1.2 MB Preview Download
md5:8d5d17cc4e8c3be115a172a97a70bf0e
83.7 kB Download

Additional details

Related works

Has part
Software: 10.1007/978-3-031-37703-7 (DOI)
Software: 10.1613/jair.1.12589 (DOI)
Software: 10.1016/j.jsc.2013.09.003 (DOI)

Dates

Created
2024-11-07

Software

Programming language
Rust