Disqualification

A solver will be disqualified if it produces a wrong answer or a wrong certificate. Specifically, if an UNSAT proof is found to be incorrect by the proof checker you selected, or the reported SAT model is incorrect, the solver will be disqualified. A solver disqualified from the competition is not eligible to win any award. Disqualified solvers will be marked as such on the competition results page. 


Mandatory participation requirements for SAT solvers

    The source code of submitted SAT solvers must be made available (licensed for research purposes).

    Printing a model in case of a satisfiable instance is required for all tracks. Additionally, UNSAT certificates (proofs) are required for the Main track.

Satisfying Assignment
Value lines start with a lower case "v" followed by a space. Values are given as a space-separated list of non-contradictory literals. The negation of a literal is denoted by a minus sign immediately followed by the identifier of the variable. At least one literal of every clause needs to appear in the value lines. Note that partial satisfying assignments are allowed. The order of the literals does not matter. Value lines can have at most 4096 characters. So for most problems multiple value lines are necessary. The last value line must be terminated by a "0" (zero) to indicate the end of the satisfying assignment.
Certificates of Unsatisfiablity
All participants in the Main track of this competition must output proofs of unsatisfiabiliy, which must be written to a file called proof.out. Depending on which of the proof checkers DPR, GRAT or VeriPB is selected, proof.out is input to dpr-trim, gratgen or veripb respectively. The pipelines of verified proof checkers that we provide on StarExec are described in the following documents.

    Verified LRAT and LPR Proof Checking with cake_lpr
    by Yong Kiam Tan, Marijn J. H. Heule, and Magnus O. Myreen
    GRAT: a formally verified (UN)SAT proof checker
    by Peter Lammich
    Documentation of VeriPB and CakePB for the SAT Competition 2026
    by Markus Anders, Bart Bogaerts, Benjamin Bogø, Arthur Gontier, Wietze Koops, Ciaran McCreesh, Magnus O. Myreen, Jakob Nordström, Adrian Rebola-Pardo, Andy Oertel, and Yong Kiam Tan
    Verified Substitution Redundancy Checking
    by Cayden R. Codel, Jeremy Avigad, Marijn J. H. Heule


Submission Instructions

All sequential tracks will be run on the HoreKa Blue Instance of NHR@KIT in Karlsruhe using compute nodes with an 76 cores Intel Xeon Platinum 8368 CPU running 8 benchmarks in parallel. The solvers will be executed with a time limit of 5000 seconds and memory limit of 32GB.
Testing and Requirements

The solver should be able to be built and run on a system that conforms to the specification in the Computing Environment on Competition Machines section of the SoSy Lab Competition Scripts. The top-level directory of your solver should contain two scripts:

    build.sh, for building the solver.

    The build script should take no parameters and should be tested and work on the provided Docker image.
    run.sh, to run the solver.

    The run script should take two parameters: The first parameter is the path to the benchmark instance. The proof for UNSAT instances must be written to a file named proof.out and placed in the folder that your run script receives as the second parameter.

    Note that the answer line ("s SATISFIABLE" and "s UNSATISFIABLE") and the solution in case of a satisfiable instance (lines starting with "v") must still go to stdout (not to "proof.out").

Submission

The submission of the final version of a solver is via a private GitHub repository, which is to be made available to the organizers by the solver authors. After the solver submission deadline we will ask all the participants to make their repositories public.

