# LymphoSAT-verified -- SAT Competition 2026 Entry

LymphoSAT is a modular SAT solver consisting of 126 specialized targeted solvers and a generic fallback solver for unrecognized problems.

All targeted solvers are constructed from scratch, each tailoring data structures and solving strategies to a specific family of problems.

The fallback solver is derived from `kissat-public` (entered in the 2025 SAT Competition), but has been modified to emit pseudo-boolean proofs (instead of DRAT) and tuned to run a bit faster (algorithms are largely unchanged).

## Testing

For testing, you can use the `docker_build.sh` script to build a docker image. This is a two part build, the first docker image is the competition image verbatim, the second just copies the solver and runs `./build.sh` inside.

Once built, you can use `docker_run.sh` to test running the built solver:
```
./docker_run.sh <formula.cnf> <out.pbp>
```

## Notes

Our build system relies on `cmake` (which is bundled in `third-party` since its not provided in the competition image). Note that this is precompiled for x86_64, you won't be able to build the solver on a different architecture. Note also that most solvers are compiled with `-march=icelake-server -mtune=icelake-server` (targeting  HoreKa Blue), so your CPU needs to be Ice Lake or newer.

Tiny build note: use `./build.sh` for the Ice Lake tuned build, or `./generic-build.sh` for a more portable build.

## Verified mode

This solver runs LymphoSAT normally, and then validates the generated model (for SAT) or runs `veripb` (for UNSAT) to verify the proof, returning `s UNKNOWN` if either is invalid. So it is expected to be slower than LymphoSAT with more assurance about correctness.
