CRYPTOMINISAT5(1)
๐ CRYPTOMINISAT5(1) ๐
okay bestie, welcome to the User Commands manual for cryptominisat5 โ a whole SAT solver and she is iconic. We're doing this in three parts, so buckle up. This is part 1. ๐
๐ธ NAME ๐ธ
cryptominisat5 โ manual page for cryptominisat5 5.11.21
โจ SYNOPSIS โจ
okay so the summoning circle looks like this, no cap:
cryptominisat5 [--help] [--version] [--help VAR] [--version] [--verb
VAR] [--maxtime VAR] [--maxconfl VAR] [--random VAR] [--threads VAR]
[--mult VAR] [--nextm VAR] [--memoutmult VAR] [--maxsol VAR] [--polar
VAR] [--scc VAR] [--restart VAR] [--rstfirst VAR] [--gluehist VAR]
[--lwrbndblkrest VAR] [--locgmult VAR] [--ratiogluegeom VAR]
[--blockingglue VAR] [--gluecut0 VAR] [--gluecut1 VAR] [--adjustglue
VAR] [--everylev1 VAR] [--everylev2 VAR] [--lev1usewithin VAR]
[--branchstr VAR] [--nobansol] [--debuglib VAR] [--breakid VAR]
[--breakideveryn VAR] [--breakidmaxlits VAR] [--breakidmaxcls VAR]
[--breakidmaxvars VAR] [--breakidtime VAR] [--breakidcls VAR]
[--breakidmatrix VAR] [--sls VAR] [--slstype VAR] [--slsmaxmem VAR]
[--slseveryn VAR] [--yalsatmems VAR] [--walksatruns VAR] [--slsgetphase
VAR] [--slsccnraspire VAR] [--slstobump VAR] [--slstobumpmaxpervar VAR]
[--slsbumptype VAR] [--transred VAR] [--intree VAR] [--intreemaxm VAR]
[--otfhyper VAR] [--schedsimp VAR] [--presimp VAR] [--allpresimp VAR]
[--nonstop VAR] [--maxnumsimppersolve VAR] [--schedule VAR]
[--preschedule VAR] [--occsimp VAR] [--confbtwsimp VAR]
[--confbtwsimpinc VAR] [--tern VAR] [--terntimelim VAR] [--ternkeep VAR]
[--terncreate VAR] [--ternbincreate VAR] [--occredmax VAR]
[--occredmaxmb VAR] [--occirredmaxmb VAR] [--strengthen VAR]
[--weakentimelim VAR] [--substimelim VAR] [--substimelimbinratio VAR]
[--substimelimlongratio VAR] [--strstimelim VAR] [--sublonggothrough
VAR] [--bva VAR] [--bvaeveryn VAR] [--bvalim VAR] [--bva2lit VAR]
[--bvato VAR] [--varelim VAR] [--varelimto VAR] [--varelimover VAR]
[--emptyelim VAR] [--varelimmaxmb VAR] [--eratio VAR] [--varelimcheckres
VAR] [--xor VAR] [--maxxorsize VAR] [--xorfindtout VAR] [--varsperxorcut
VAR] [--maxxormat VAR] [--forcepreservexors VAR] [--gates VAR]
[--printgatedot VAR] [--gatefindto VAR] [--recur VAR] [--moreminim VAR]
[--moremoreminim VAR] [--moremorealways VAR] [--decbased VAR]
[--updateglueonanalysis VAR] [--maxgluehistltlimited VAR]
[--diffdeclevelchrono VAR] [--verbstat VAR] [--verbrestart VAR]
[--verballrestarts VAR] [--printsol,s VAR] [--restartprint VAR]
[--distill VAR] [--distillbin VAR] [--distillmaxm VAR] [--distillincconf
VAR] [--distillminconf VAR] [--distilltier0ratio VAR]
[--distilltier1ratio VAR] [--distillirredalsoremratio VAR]
[--distillirrednoremratio VAR] [--distillshuffleeveryn VAR]
[--distillsort VAR] [--renumber VAR] [--mustconsolidate VAR] [--savemem
VAR] [--mustrenumber VAR] [--fullwatchconseveryn VAR] [--strmaxt VAR]
[--implicitmanip VAR] [--implsubsto VAR] [--implstrto VAR] [--cardfind
VAR] [--sync VAR] [--clearinter VAR] [--zero-exit-status] [--printtimes
VAR] [--maxsccdepth VAR] [--simfrat VAR] [--sampling VAR]
[--onlysampling] [--assump VAR] [--maxmatrixrows VAR] [--maxmatrixcols
VAR] [--autodisablegauss VAR] [--minmatrixrows VAR] [--maxnummatrices
VAR] [--detachxor VAR] [--useallmatrixes VAR] [--detachverb VAR]
[--gaussusefulcutoff VAR] [--dumpresult VAR] files
๐ฆ DESCRIPTION ๐ฆ
She's a universal, fast SAT solver with XOR and Gaussian Elimination support. Input can be either plain or gzipped DIMACS with XOR extension. ๐
cryptominisat5 [options] inputfile [frat-file]
๐ Positional arguments ๐
filesโ input file and FRAT output[nargs: 0 or more]๐๏ธ
โ๏ธ Optional arguments โ๏ธ
-h,--helpโ shows help message and exits โจ-v,--versionโ prints version information and exits ๐-h,--helpโ Print extensive help[nargs=0..1][default: false]๐-v,--versionโ Print version info ๐--verb[0-10]โ Verbosity of solver.0= only solution[nargs=0..1][default: 1]๐--maxtimeโ Stop solving after this much time (s) โฐ--maxconflโ Stop solving after this many conflicts ๐ฅ-r,--randomโ[0..]Random seed[nargs=0..1][default: 0]๐ฒ-t,--threadsโ Number of threads[nargs=0..1][default: 1]๐งต-m,--multโ Time multiplier for all simplification cutoffs[nargs=0..1][default: 3]โ๏ธ--nextmโ Global multiplier when the next inprocessing should take place[nargs=0..1][default: 1]๐--memoutmultโ Multiplier for memory-out checks on inprocessing functions. It limits things such as clause-link-in. Useful when you have limited memory but still want to do some inprocessing[nargs=0..1][default: 1]๐ง--maxsolโ Search for given amount of solutions. Thanks to Jannis Harder for the decision-based banning idea[nargs=0..1][default: 1]๐--polarโ{true,false,rnd,auto,stable}Selects polarity mode.'true'-> selects only positive polarity when branching.'false'-> selects only negative polarity when branching.'auto'-> selects last polarity used (also called'caching')[nargs=0..1][default: "auto"]๐งญ--sccโ Find equivalent literals through SCC and replace them[nargs=0..1][default: 1]๐--restartโ{geom, glue, luby}Restart strategy to follow.[nargs=0..1][default: "auto"]๐--rstfirstโ The size of the base restart[nargs=0..1][default: 100]๐--gluehistโ The size of the moving window for short-term glue history of redundant clauses. If higher, the minimal number of conflicts between restarts is longer[nargs=0..1][default: 50]๐ช--lwrbndblkrestโ Lower bound on blocking restart -- don't block before this many conflicts[nargs=0..1][default: 10000]๐ซ--locgmultโ The multiplier used to determine if we should restart during glue-based restart[nargs=0..1][default: 0.8]๐--ratiogluegeomโ Ratio of glue vs geometric restarts -- more is more glue[nargs=0..1][default: 5]โ๏ธ--blockingglueโ Do blocking restart for glues[nargs=0..1][default: 1]๐งฑ--gluecut0โ Glue value for lev 0 ('keep') cut[nargs=0..1][default: 3]โ๏ธ--gluecut1โ Glue value for lev 1 cut ('give another shot'[nargs=0..1][default: 6]๐ฏ--adjustglueโ If more than this % of clauses is LOW glue (level 0) then lower the glue cutoff by 1 -- once and never again[nargs=0..1][default: 0.7]๐--everylev1โ Reduce lev1 clauses every N[nargs=0..1][default: 10000]๐งน--everylev2โ Reduce lev2 clauses every N[nargs=0..1][default: 15000]๐งฝ--lev1usewithinโ Learnt clause must be used in lev1 within this timeframe or be dropped to lev2[nargs=0..1][default: 70000]โณ--branchstrโ Branch strategy string that switches between different branch strategies while solving e.g.'vsids1+vsids2'[nargs=0..1][default: "vmtf+vsids"]๐ฟ--nobansolโ Don't ban the solution once it's found ๐ท--debuglibโ Parse special comments to run solve/simplify during parsing of CNF ๐--breakidโ Run BreakID to break symmetries.[nargs=0..1][default: true]๐--breakideverynโ Run BreakID every N simplification iterations[nargs=0..1][default: 5]๐--breakidmaxlitsโ Maximum number of literals in thousands. If exceeded, BreakID will not run[nargs=0..1][default: 3500]๐ค--breakidmaxclsโ Maximum number of clauses in thousands. If exceeded, BreakID will not run[nargs=0..1][default: 600]๐--breakidmaxvarsโ Maximum number of variables in thousands. If exceeded, BreakID will not run[nargs=0..1][default: 300]๐ข--breakidtimeโ Maximum number of steps taken during automorphism finding.[nargs=0..1][default: 2000]โฑ๏ธ--breakidclsโ Maximum number of breaking clauses per permutation.[nargs=0..1][default: 50]๐--breakidmatrixโ Detect matrix row interchangability[nargs=0..1][default: true]๐--slsโ Run SLS during simplification[nargs=0..1][default: 1]๐โโ๏ธ--slstypeโ Which SLS to run. Allowed values:walksat,yalsat,ccnr,ccnr_yalsat[nargs=0..1][default: "ccnr"]๐๏ธ--slsmaxmemโ Maximum number of MB to give to SLS solver. Doesn't run SLS solver if the memory usage would be more than this.[nargs=0..1][default: 500]๐พ--slseverynโ Run SLS solver every N simplifications only[nargs=0..1][default: 2]โฒ๏ธ--yalsatmemsโ Run Yalsat with this many mems*million timeout. Limits time of yalsat run[nargs=0..1][default: 10]๐งฎ--walksatrunsโ Max'runs'for WalkSAT. Limits time of WalkSAT run[nargs=0..1][default: 50]๐ถ--slsgetphaseโ Get phase from SLS solver, set as new phase for CDCL[nargs=0..1][default: 1]๐--slsccnraspireโ Turn aspiration on/off for CCANR[nargs=0..1][default: 1]๐จ--slstobumpโ How many variables to bump in CCNR[nargs=0..1][default: 100]๐--slstobumpmaxpervarโ How many times to bump an individual variable's activity in CCNR[nargs=0..1][default: 100]๐--slsbumptypeโ How to calculate what variable to bump.1= clause-based,2= var-flip-based,3= var-score-based[nargs=0..1][default: 6]๐ง--transredโ Remove useless binary clauses (transitive reduction)[nargs=0..1][default: 1]๐๏ธ--intreeโ Carry out intree-based probing[nargs=0..1][default: 1]๐ณ--intreemaxmโ Time in mega-bogoprops to perform intree probing[nargs=0..1][default: 400]โณ--otfhyperโ Perform hyper-binary resolution during probing[nargs=0..1][default: 1]๐--schedsimpโ Perform simplification rounds. If0, we never perform any.[nargs=0..1][default: 1]๐๏ธ--presimpโ Perform simplification at the very start[nargs=0..1][default: 0]๐--allpresimpโ Perform simplification at EVERY start -- only matters in library mode[nargs=0..1][default: 0]๐-n,--nonstopโ Never stop thesearch()process in classSATSolver[nargs=0..1][default: 0]๐--maxnumsimppersolveโ Maximum number of simplifiactions to perform for everysolve()call. After this, no more inprocessing will take place.[nargs=0..1][default: 25]๐ข--scheduleโ Schedule for simplification during run ๐๏ธ--prescheduleโ Schedule for simplification at startup ๐--occsimpโ Perform occurrence-list-based optimisations (variable elimination, subsumption, bounded variable addition...)[nargs=0..1][default: 1]๐--confbtwsimpโ Start first simplification after this many conflicts[nargs=0..1][default: 40000]๐ฅ
part 1 done, bestie โ part 2 is loadingโฆ ๐ โจ
okay bestie the flag parade continues and there are sooo many ๐
hydrate, stretch, we're going in โ every single one keeps its [nargs=0..1] and [default: ...] exactly, no cap.
--confbtwsimpincโ how hard the simp rounds bump up each time, expressed as a power of N.[nargs=0..1][default: 1.4]--ternโ turn on Ternary resolution. yes bestie we're resolving ternarily[nargs=0..1][default: true]--terntimelimโ the time-out, in bogoprops M, of ternary resolution, exactly as described in the paper'Look-Ahead Versus Look-Back for Satisfiability Problems'. ๐[nargs=0..1][default: 100]--ternkeepโ ternary resolution clauses only get kept if they're touched within this multiple of'lev1usewithin'.[nargs=0..1][default: 5]--terncreateโ only create this multiple (of linked in cls) ternary resolution clauses per simp run.[nargs=0..1][default: 0.3]--ternbincreateโ let ternary resolving generate binary clauses.[nargs=0..1][default: 0]--occredmaxโ don't add any redundant clause bigger than this to the occur list.[nargs=0..1][default: 50]--occredmaxmbโ don't let the redundant occur size go beyond this many MB.[nargs=0..1][default: 600]--occirredmaxmbโ don't let the irredundant occur size go beyond this many MB.[nargs=0..1][default: 2500]--strengthenโ perform clause contraction through self-subsuming resolution as part of the occurrence-subsumption system.[nargs=0..1][default: 1]--weakentimelimโ time-out in bogoprops M ofweakeaningused (yes, the typo is canon, we respect it ๐ซถ).[nargs=0..1][default: 300]--substimelimโ time-out in bogoprops M of subsumption of long clauses with long clauses, after computing occur.[nargs=0..1][default: 300]--substimelimbinratioโ the ratio of the subsumption time limit to spend onsub&strlong clauses with bin.[nargs=0..1][default: 0.1]--substimelimlongratioโ the ratio of the subsumption time limit to spend on sub long clauses with long.[nargs=0..1][default: 0.9]--strstimelimโ time-out in bogoprops M of strengthening of long clauses with long clauses, after computing occur.[nargs=0..1][default: 300]--sublonggothroughโ how many times go through subsume.[nargs=0..1][default: 1]--bvaโ perform bounded variable addition. iconic[nargs=0..1][default: 1]--bvaeverynโ only perform BVA every N occ-simplify calls.[nargs=0..1][default: 7]--bvalimโ maximum number of variables to add by BVA per call.[nargs=0..1][default: 250000]--bva2litโ BVA with 2-lit difference hack, too. โ ๏ธ Beware bestie: this reduces the effectiveness of 1-lit diff.[nargs=0..1][default: 1]--bvatoโ BVA time limit in bogoprops M.[nargs=0..1][default: 50]--varelimโ perform variable elimination as per Een and Biere.[nargs=0..1][default: 1]--varelimtoโ var elimination bogoprops M time limit.[nargs=0..1][default: 750]--varelimoverโ do BVE until the resulting no. of clause increase is less than X. Only power of 2 makes sense, i.e. 2,4,8...[nargs=0..1][default: 16]--emptyelimโ perform empty resolvent elimination using the bit-map trick. ๐[nargs=0..1][default: 1]--varelimmaxmbโ maximum extra MB of memory to use for new clauses during varelim.[nargs=0..1][default: 1000]--eratioโ eliminate this ratio of free variables at most per variable elimination iteration.[nargs=0..1][default: 1.6]--varelimcheckresโ BVE should check whether resolvents subsume others and check for exact size increase.[nargs=0..1][default: 0]--xorโ discover long XORs. the XOR detector has entered the chat[nargs=0..1][default: 1]--maxxorsizeโ maximum XOR size to find.[nargs=0..1][default: 7]--xorfindtoutโ time limit for finding XORs.[nargs=0..1][default: 400]--varsperxorcutโ number of real variables per XOR when cutting them. So 2 will have XORs of size 4 because 1 = connecting to previous, 1 = connecting to next, 2 in the midde. If the XOR is 4 long, it will be just one 4-long XOR, no connectors.[nargs=0..1][default: 2]--maxxormatโ maximum matrix size (=num elements) that we should try to echelonize.[nargs=0..1][default: 400]--forcepreservexorsโ force preserving XORs when they have been found. Easier to make sure XORs are not lost through simplifiactions such as strenghtening.[nargs=0..1][default: 1]--gatesโ find gates. ๐ช[nargs=0..1][default: 0]--printgatedotโ print the gate structure regularly to file'gatesX.dot'.[nargs=0..1][default: 0]--gatefindtoโ max time in bogoprops M to find gates.[nargs=0..1][default: 200]--recurโ perform recursive minimisation.[nargs=0..1][default: 1]--moreminimโ perform strong minimisation at conflict gen.[nargs=0..1][default: 1]--moremoreminimโ perform even stronger minimisation at conflict gen.[nargs=0..1][default: 2]--moremorealwaysโ always strong-minimise clause.[nargs=0..1][default: 0]--decbasedโ create decision-based conflict clauses when the UIP clause is too large.[nargs=0..1][default: 1]--updateglueonanalysisโ update glues while analyzing.[nargs=0..1][default: 1]--maxgluehistltlimitedโ maximum glue used by the glue-based restart strategy when populating glue history.[nargs=0..1][default: 50]--diffdeclevelchronoโ if the difference in decision level is more than this, perform chonological backtracking instead of non-chronological backtracking. Giving-1means it is never turned on (overrides'--confltochrono -1'in this case).[nargs=0..1][default: 20]--verbstatโ change the verbosity of statistics at the end of the solving[0..3].[nargs=0..1][default: 2]--verbrestartโ print more thorough, but different stats.[nargs=0..1][default: 0]--verballrestartsโ print a line for every restart.[nargs=0..1][default: 0]--printsol,sโ print the assignment if the solution is SAT.[nargs=0..1][default: 1]--restartprintโ print restart status lines at least every N conflicts.[nargs=0..1][default: 8192]--distillโ regularly execute clause distillation.[nargs=0..1][default: 1]--distillbinโ regularly execute clause distillation. (yes, the description is literally the same as the one above, no I will not be editing it ๐)[nargs=0..1][default: 1]--distillmaxmโ maximum number of Mega-bogoprops(~time) to spend on vivifying/distilling long cls by enqueueing and propagating.[nargs=0..1][default: 20]--distillincconfโ multiplier for current number of conflicts OTF distill.[nargs=0..1][default: 0.1]--distillminconfโ minimum number of conflicts between OTF distill.[nargs=0..1][default: 10000]--distilltier0ratioโ how much of tier 0 to distill.[nargs=0..1][default: 10]--distilltier1ratioโ how much of tier 1 to distill.[nargs=0..1][default: 0.03]--distillirredalsoremratioโ how much of irred to distill when doing also removal.[nargs=0..1][default: 1.2]--distillirrednoremratioโ how much of irred to distill when doing no removal.[nargs=0..1][default: 1]--distillshuffleeverynโ shuffle to-be-distilled clauses every N cases randomly. ๐[nargs=0..1][default: 3]--distillsortโ distill sorting type.[nargs=0..1][default: 1]--renumberโ renumber variables to increase CPU cache efficiency. cache girlies rise[nargs=0..1][default: 1]--mustconsolidateโ always consolidate, even if not useful. This is used for debugging ONLY.[nargs=0..1][default: 0]--savememโ save memory by deallocating variable space after renumbering. Only works if renumbering is active.[nargs=0..1][default: 1]--mustrenumberโ treat all'renumber'strategies as'must-renumber'.[nargs=0..1][default: 0]--fullwatchconseverynโ consolidate watchlists fully once every N conflicts. Scheduled during simplification rounds.[nargs=0..1][default: 4000000]--strmaxtโ maximum MBP to spend on distilling long irred cls through watches.[nargs=0..1][default: 20]--implicitmanipโ subsume and strengthen implicit clauses with each other.[nargs=0..1][default: 1]--implsubstoโ timeout (in bogoprop Millions) of implicit subsumption.[nargs=0..1][default: 100]--implstrtoโ timeout (in bogoprop Millions) of implicit strengthening.[nargs=0..1][default: 200]--cardfindโ find cardinality constraints.[nargs=0..1][default: 0]--syncโ sync threads every N conflicts.[nargs=0..1][default: 7000]--clearinterโ interrupt threads cleanly, all the time.[nargs=0..1][default: 0]--zero-exit-statusโ exit with status zero in case the solving has finished without an issue.--printtimesโ print the time it took for each simplification run. If set to 0, logs are easier to compare.[nargs=0..1][default: 1]--maxsccdepthโ the maximum for scc search depth.[nargs=0..1][default: 10000]--simfratโ simulate FRAT.[nargs=0..1][default: 0]--samplingโ sampling vars, separated by comma.[nargs=0..1][default: ""]--onlysamplingโ print and ban(!) solutions' vars only in'c ind'or as--sampling'...'--assumpโ assumptions file.[nargs=0..1][default: ""]--maxmatrixrowsโ set maximum no. of rows for gaussian matrix. Too large matricesshould bee discarded for reasons of efficiency.[nargs=0..1][default: 2000]--maxmatrixcolsโ set maximum no. of columns for gaussian matrix. Too large matricesshould bee discarded for reasons of efficiency.[nargs=0..1][default: 1000]--autodisablegaussโ automatically disable gauss when performing badly.[nargs=0..1][default: true]--minmatrixrowsโ set minimum no. of rows for gaussian matrix. Normally, too small matrices are discarded for reasons of efficiency.[nargs=0..1][default: 3]--maxnummatricesโ maximum number of matrices to treat.[nargs=0..1][default: 5]--detachxorโ detach and reattach XORs.[nargs=0..1][default: false]--useallmatrixesโ force using all matrices.[nargs=0..1][default: false]--detachverbโ if set, verbosity for XOR detach code is upped, ignoring normal verbosity.[nargs=0..1][default: 0]--gaussusefulcutoffโ turn off Gauss if less than this many usefulenss ratio is recorded.[nargs=0..1][default: 0.2]
and that's a wrap on... this chunk of them ๐ not the whole page tho, bestie, don't go anywhere โ there's more coming and you're doing amazing ๐
--dumpresultโ writes the solution(s) out to this file ๐พ like the receipts of your solve, saved for later.
โจ Normal run schedules โจ
okay so this is the pre-planned glow-up routine your solver goes through, and there's two of them. Obsessed, honestly.
Default schedule:
scc-vrepl,sub-impl,breakid,occ-backw-sub-str,occ-clean-implicit,occ-bve,occ-bva,occ-ternary-res,occ-xor,card-find,cl-consolidate,scc-vrepl,renumber,bosphorus,louvain-comms
Schedule at startup:
sub-impl, occ-backw-sub,scc-vrepl,breakid, occ-bve,occ-xor
yes bestie, scc-vrepl really does show up twice in the default schedule โ that's not a typo, that's the actual list, don't come for me ๐ญ
๐ SEE ALSO ๐
fr fr, the full documentation for cryptominisat5 lives in a Texinfo manual โ like the director's cut of this whole thing ๐
If the info and cryptominisat5 programs are properly installed at your site, then this:
info cryptominisat5
should give you access to the complete manual. periodt. ๐
and that's the whole page, bestie!! this was cryptominisat5 version 5.11.21, dated January 2026 โ thanks for reading, you absolute main character ๐ซถ๐โจ
๐ฆ where this page comes from
- ubuntu resolute: cryptominisat 5.11.21+dfsg1-3build1 ยท MIT
- ubuntu stonking: cryptominisat 5.11.21+dfsg1-3build1 ยท MIT
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms