MINISAT(1)
π MINISAT(1) β the minisat page, but make it make sense π
okay bestie, sit down, hydrate, because we're reading the minisat manual page together and it's actually SO good. this is from the General Commands Manual section, and it's about a fast and lightweight SAT solver. yes. we're doing boolean satisfiability today. it's giving STEM baddie. π§β¨
πΈ NAME πΈ
minisat β fast and lightweight SAT solver. that's it, that's the whole name section, she's concise and she knows it π
π¦ SYNOPSIS π¦
minisat [options] input-file result-output-file
okay so here's the deal: minisat takes as input a plain or gzipped DIMACS formatted file. whether that problem is satisfiable gets told to you two ways β through standard output and through the return value. two receipts, one answer. periodt. π
β¨ DESCRIPTION β¨
this page documents briefly the minisat command, so don't come for it for being short, it's doing exactly what it promised. π
MiniSat is a minimalistic, open-source SAT solver, built to help researchers and developers alike get started on SAT. and babes, she didn't just participate β she won all the industrial categories of the SAT 2005 competition. π iconic behaviour. so MiniSat is a great starting point both for future research in SAT and for applications that use SAT.
now, the science bit, because you deserve to know: even though the satisfiability problem of Boolean formulas (SAT) is NP complete, SAT solvers are often able to decide it in a reasonable time frame. and because every other NP complete problem is reducible to SAT, these solvers have lowkey become a general purpose tool for that whole class of problems. it's giving "one solver to rule them all" energy fr fr. π₯
π OPTIONS π
one bullet per option, no skipping, we're eating the whole plate:
--help,--help-verbβ shows a summary of the options (and--help-verbgives you the verbose version, because sometimes you want the whole essay π ).-pre,-no-preβ turn preprocessing on (that's the default, bestie) or off.-verb {0,1,2}β sets how chatty the informational output is. set it to0for silent mode (girl is not talking), defaults to1.-cpu-lim <unsigned>β puts a limit on CPU time in seconds, defaults to2147483647.-mem-lim <unsigned>β puts a limit on memory usage in MB, defaults to2147483647.-dimacs <output-file>β prints the (possibly preprocessed) input problem in DIMACS format and then stops. like, prints and dips. π«Ά-luby,-no-lubyβ enable (default) or disable the Luby restart sequence.-rnd-init,-no-rnd-initβ randomize the initial activity values. defaults to off, so she's predictable unless you ask otherwise.-gc-frac <double>β the fraction of wasted memory allowed before a garbage collection gets triggered. non-negative, defaults to0.2.-rinc <double>β the page literally just lists this one with no description, so that's all we got, no cap. π-var-decay <double>β variable activity decay factor,0 <= value <= 1, defaults to0.95.-cla-decay <double>β clause activity decay factor,0 <= value <= 1, defaults to0.999.-rnd-freq <double>β how often the decision heuristic tries to pick a random variable,0 <= value <= 1, defaults to0.-rnd-seed <double>β the random seed for random variable selection, non-negative, defaults to9.16483e+07.-phase-saving {0,1,2}β controls the level of phase saving:0=none,1=limited,2=full. defaults to2(full send, always).-ccmin-mode {0,1,2}β controls conflict clause minimization:0=none,1=basic,2=deep. defaults to2.-rfirst <int>β the base restart interval, positive, defaults to100.-rcheck,-no-rcheckβ enable the (costly) or disable the (default) checking for redundant clauses. yes the costly one is opt-in, she's not doing that for free. π-asymm,-no-asymmβ shrink clauses by asymmetric branching. disabled by default.-elim,-no-elimβ perform variable elimination. enabled by default.-simp-gc-frac <double>β the fraction of wasted memory allowed before a garbage collection is triggered during simplification. non-negative, defaults to0.5.-sub-lim <int>β don't check if subsumption is against a clause larger than this value,-1 <= value, defaults to1000.-1means no limit.-cl-lim <int>β variables are not eliminated if they produce a resolvent with a length above this limit,-1 <= value, defaults to20.-1means no limit.-grow <int>β number of additional clauses that may be introduced when eliminating a variable. defaults to0.
π EXIT CODES π
okay this part actually matters, write it down bestie, the vibes are in the numbers:
0β if parsing the command line options fails, usage information is requested, or output of the input problem in DIMACS format succeeds.1β if interrupted bySIGINTor if an input file cannot be read.3β if parsing the input fails.10β if found satisfiable. π20β if found unsatisfiable.
lowkey obsessed with how 0 covers both "you asked for help" and "you typed it wrong". she contains multitudes.
π AUTHOR π
minisat was written by Niklas Een, Niklas Sorensson. β¨
this manual page was written by Michael Tautschnig <mt@debian.org>, for the Debian project (but may be used by others). shoutout, we love a documentation queen. π«Ά
β SEE ALSO β
nope, there isn't one β this page keeps her circle small. π
and that's the whole page, you ate it. π
β¨ this was the minisat manual page, September 3, 2011 edition, bestie β go solve something NP complete, i believe in you. ππ¦π
π¦ where this page comes from
- debian bookworm: minisat 1:2.2.1-5+b3
- debian trixie: minisat 1:2.2.1-8
- fedora 43: minisat2 2.2.1-22.fc43 Β· MIT
- fedora 44: minisat2 2.2.1-23.fc44 Β· MIT
- ubuntu jammy: minisat 1:2.2.1-5build2
- ubuntu noble: minisat 1:2.2.1-8build1
- ubuntu questing: minisat 1:2.2.1-8build1
- ubuntu resolute: minisat 1:2.2.1-8build2
- ubuntu stonking: minisat 1:2.2.1-8build2
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms