Provided by: cryptominisat_5.8.0+dfsg1-2_amd64
NAME
cryptominisat5 - SAT solver
DESCRIPTION
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 [drat-trim-file] Preprocessor usage: cryptominisat5 --preproc 1 [options] inputfile simplified-cnf-file cryptominisat5 --preproc 2 [options] solution-file Main options: -h [ --help ] Print simple help --hhelp Print extensive help -v [ --version ] Print version info --verb arg (=1) [0-10] Verbosity of solver. 0 = only solution -r [ --random ] arg (=0) [0..] Random seed -t [ --threads ] arg (=1) Number of threads --maxtime arg Stop solving after this much time (s) --maxconfl arg Stop solving after this many conflicts -m [ --mult ] arg (=3) Time multiplier for all simplification cutoffs --memoutmult arg (=1) 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 -p [ --preproc ] arg (=0) 0 = normal run, 1 = preprocess and dump, 2 = read back dump and solution to produce final solution Polarity options: --polar arg (=auto) {true,false,rnd,auto} 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') --polarstablen arg (=4) When to use stable polarities. 0 = always, otherwise every n. Negative is special, see code --lucky arg (=20) Try computing lucky polarities --polarbestinvmult arg (=9) How often should we use inverted best polarities instead of stable --polarbestmult arg (=1000) How often should we use best polarities instead of stable Restart options: --restart arg {geom, glue, luby} Restart strategy to follow. --gluehist arg (=50) 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 --lwrbndblkrest arg (=10000) Lower bound on blocking restart -- don't block before this many conflicts --locgmult arg (=0.8) The multiplier used to determine if we should restart during glue-based restart --ratiogluegeom arg (=5) Ratio of glue vs geometric restarts -- more is more glue Printing options: --verbstat arg (=2) Change verbosity of statistics at the end of the solving [0..3] --verbrestart arg (=0) Print more thorough, but different stats --verballrestarts arg (=0) Print a line for every restart -s [ --printsol ] arg (=1) Print assignment if solution is SAT --restartprint arg (=8192) Print restart status lines at least every N conflicts --dumpresult arg Write solution(s) to this file Glue options: --updateglueonanalysis arg (=1) Update glues while analyzing --maxgluehistltlimited arg (=50) Maximum glue used by glue-based restart strategy when populating glue history. Propagation options: --diffdeclevelchrono arg (=20) Difference in decision level is more than this, perform chonological backtracking instead of non-chronological backtracking. Giving -1 means it is never turned on (overrides '--confltochrono -1' in this case). Redundant clause options: --gluecut0 arg (=3) Glue value for lev 0 ('keep') cut --gluecut1 arg (=6) Glue value for lev 1 cut ('give another shot' --adjustglue arg (=0.7) If more than this % of clauses is LOW glue (level 0) then lower the glue cutoff by 1 -- once and never again --everylev1 arg (=10000) Reduce lev1 clauses every N --everylev2 arg (=15000) Reduce lev2 clauses every N --lev1usewithin arg (=70000) Learnt clause must be used in lev1 within this timeframe or be dropped to lev2 --dumpred arg Dump redundant clauses of gluecut0&1 to this filename --dumpredmaxlen arg (=10000) When dumping redundant clauses, only dump clauses at most this long --dumpredmaxglue arg (=1000) When dumping redundant clauses, only dump clauses with at most this large glue Clause dumping after problem finishing: Variable branching options: --branchstr arg (=maple1+maple2+vsids2+maple1+maple2+vsids1) Branch strategy. E.g. 'vmtf+vsids+maple+rnd' Conflict options: --recur arg (=1) Perform recursive minimisation --moreminim arg (=1) Perform strong minimisation at conflict gen. --moremoreminim arg (=1) Perform even stronger minimisation at conflict gen. --moremorealways arg (=0) Always strong-minimise clause --decbased arg (=1) Create decision-based conflict clauses when the UIP clause is too large Iterative solve options: --maxsol arg (=1) Search for given amount of solutions. Thanks to Jannis Harder for the decision-based banning idea --nobansol Don't ban the solution once it's found --debuglib arg Parse special comments to run solve/simplify during parsing of CNF Probing options: --transred arg (=1) Remove useless binary clauses (transitive reduction) --intree arg (=1) Carry out intree-based probing --intreemaxm arg (=1200) Time in mega-bogoprops to perform intree probing --otfhyper arg (=1) Perform hyper-binary resolution during probing Stochastic Local Search options: --sls arg (=1) Run SLS during simplification --slstype arg (=ccnr) Which SLS to run. Allowed values: walksat, yalsat, ccnr, ccnr_yalsat --slsmaxmem arg (=500) Maximum number of MB to give to SLS solver. Doesn't run SLS solver if the memory usage would be more than this. --slseveryn arg (=2) Run SLS solver every N simplifications only --yalsatmems arg (=40) Run Yalsat with this many mems*million timeout. Limits time of yalsat run --walksatruns arg (=50) Max 'runs' for WalkSAT. Limits time of WalkSAT run --slsgetphase arg (=1) Get phase from SLS solver, set as new phase for CDCL --slsccnraspire arg (=1) Turn aspiration on/off for CCANR --slstobump arg (=100) How many variables to bump in CCNR --slstobumpmaxpervar arg (=100) How many times to bump an individual variable's activity in CCNR --slsbumptype arg (=6) How to calculate what variable to bump. 1 = clause-based, 2 = var-flip-based, 3 = var-score-based --slsoffset arg (=0) Should SLS set the VSIDS/Maple offsetsd Simplification schedules: --schedsimp arg (=1) Perform simplification rounds. If 0, we never perform any. --presimp arg (=0) Perform simplification at the very start --allpresimp arg (=0) Perform simplification at EVERY start -- only matters in library mode -n [ --nonstop ] arg (=0) Never stop the search() process in class SATSolver --maxnumsimppersolve arg (=25) Maximum number of simplifiactions to perform for every solve() call. After this, no more inprocessing will take place. --schedule arg Schedule for simplification during run --preschedule arg Schedule for simplification at startup --occsimp arg (=1) Perform occurrence-list-based optimisations (variable elimination, subsumption, bounded variable addition...) --confbtwsimp arg (=50000) Start first simplification after this many conflicts --confbtwsimpinc arg (=1.4) Simp rounds increment by this power of N Occ-based simplification memory limits: --occredmax arg (=200) Don't add to occur list any redundant clause larger than this --occredmaxmb arg (=600) Don't allow redundant occur size to be beyond this many MB --occirredmaxmb arg (=2500) Don't allow irredundant occur size to be beyond this many MB Ternary resolution: --tern arg (=1) Perform Ternary resolution' --terntimelim arg (=100) Time-out in bogoprops M of ternary resolution as per paper 'Look-Ahead Versus Look-Back for Satisfiability Problems' --ternkeep arg (=6) Keep ternary resolution clauses only if they are touched within this multiple of 'lev1usewithin' --terncreate arg (=1) Create only this multiple (of linked in cls) ternary resolution clauses per simp run --ternbincreate arg (=1) Allow ternary resolving to generate binary clauses Occ-based subsumption and strengthening time limits: --strengthen arg (=1) Perform clause contraction through self-subsuming resolution as part of the occurrence-subsumption system --substimelim arg (=300) Time-out in bogoprops M of subsumption of long clauses with long clauses, after computing occur --substimelimbinratio arg (=0.10000000000000001) Ratio of subsumption time limit to spend on sub&str long clauses with bin --substimelimlongratio arg (=0.90000000000000002) Ratio of subsumption time limit to spend on sub long clauses with long --strstimelim arg (=300) Time-out in bogoprops M of strengthening of long clauses with long clauses, after computing occur --sublonggothrough arg (=1) How many times go through subsume BVE options: --varelim arg (=1) Perform variable elimination as per Een and Biere --varelimto arg (=750) Var elimination bogoprops M time limit --varelimover arg (=32) Do BVE until the resulting no. of clause increase is less than X. Only power of 2 makes sense, i.e. 2,4,8... --emptyelim arg (=1) Perform empty resolvent elimination using bit-map trick --varelimmaxmb arg (=1000) Maximum extra MB of memory to use for new clauses during varelim --eratio arg (=1.6) Eliminate this ratio of free variables at most per variable elimination iteration --skipresol arg (=1) Skip BVE resolvents in case they belong to a gate BVA options: --bva arg (=1) Perform bounded variable addition --bvaeveryn arg (=7) Perform BVA only every N occ-simplify calls --bvalim arg (=250000) Maximum number of variables to add by BVA per call --bva2lit arg (=1) BVA with 2-lit difference hack, too. Beware, this reduces the effectiveness of 1-lit diff --bvato arg (=50) BVA time limit in bogoprops M Equivalent literal options: --scc arg (=1) Find equivalent literals through SCC and replace them Component options: --comps arg (=0) Perform component-finding and separate handling --compsfrom arg (=0) Component finding only after this many simplification rounds --compsvar arg (=1000000) Only use components in case the number of variables is below this limit --compslimit arg (=500) Limit how much time is spent in component-finding Memory saving options: --renumber arg (=1) Renumber variables to increase CPU cache efficiency --savemem arg (=1) Save memory by deallocating variable space after renumbering. Only works if renumbering is active. --mustrenumber arg (=0) Treat all 'renumber' strategies as 'must-renumber' --fullwatchconseveryn arg (=4000000) Consolidate watchlists fully once every N conflicts. Scheduled during simplification rounds. XOR-related options: --xor arg (=1) Discover long XORs --maxxorsize arg (=7) Maximum XOR size to find --xorfindtout arg (=400) Time limit for finding XORs --varsperxorcut arg (=2) 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 --maxxormat arg (=400) Maximum matrix size (=num elements) that we should try to echelonize --forcepreservexors arg (=0) Force preserving XORs when they have been found. Easier to make sure XORs are not lost through simplifiactions such as strenghtening --m4ri arg (=1) Use M4RI Gate-related options: --gates arg (=0) Find gates. Disables all sub-options below --gorshort arg (=1) Shorten clauses with OR gates --gandrem arg (=1) Remove clauses with AND gates --gateeqlit arg (=1) Find equivalent literals using gates --printgatedot arg (=0) Print gate structure regularly to file 'gatesX.dot' --gatefindto arg (=200) Max time in bogoprops M to find gates --shortwithgatesto arg (=200) Max time to shorten with gates, bogoprops M --remwithgatesto arg (=100) Max time to remove with gates, bogoprops M Gauss options: --maxmatrixrows arg (=5000) Set maximum no. of rows for gaussian matrix. Too large matricesshould bee discarded for reasons of efficiency --autodisablegauss arg (=1) Automatically disable gauss when performing badly --minmatrixrows arg (=3) Set minimum no. of rows for gaussian matrix. Normally, too small matrices are discarded for reasons of efficiency --maxnummatrices arg (=5) Maximum number of matrices to treat. --detachxor arg (=0) Detach and reattach XORs --useallmatrixes arg (=0) Force using all matrices --detachverb arg (=0) If set, verbosity for XOR detach code is upped, ignoring normal verbosity --gaussusefulcutoff arg (=0.20000000000000001) Turn off Gauss if less than this many usefulenss ratio is recorded Distill options: --distill arg (=1) Regularly execute clause distillation --distillmaxm arg (=20) Maximum number of Mega-bogoprops(~time) to spend on vivifying/distilling long cls by enqueueing and propagating --distillto arg (=120) Maximum time in bogoprops M for distillation --distillincconf arg (=0.02) Multiplier for current number of conflicts OTF distill --distillminconf arg (=10000) Minimum number of conflicts between OTF distill --distilltier1ratio arg (=0.029999999999999999) How much of tier 1 to distill Reconf options: --reconfat arg (=2) Reconfigure after this many simplifications --reconf arg (=0) Reconfigure after some time to this solver configuration [3,4,6,7,12,13,14,15,16] Misc options: --strmaxt arg (=30) Maximum MBP to spend on distilling long irred cls through watches --implicitmanip arg (=1) Subsume and strengthen implicit clauses with each other --implsubsto arg (=100) Timeout (in bogoprop Millions) of implicit subsumption --implstrto arg (=200) Timeout (in bogoprop Millions) of implicit strengthening --cardfind arg (=0) Find cardinality constraints Normal run schedules: Default schedule: handle-comps, scc-vrepl, sub-impl, intree-probe, sub-str-cls-with-bin, distill-cls, scc-vrepl, sub-impl, str-impl, sub-impl, breakid, occ-backw-sub-str, occ-clean-implicit, occ-bve, occ-bva, occ-ternary-res, occ-xor, card-find, cl-consolidate, str-impl, sub-str-cls-with-bin, distill-cls, scc-vrepl, renumber, bosphorus, sls, lucky Schedule at startup: sub-impl, breakid, occ-backw-sub-str, occ-clean-implicit, occ-bve, occ-ternary-res, occ-backw-sub-str, occ-xor, card-find, cl-consolidate, scc-vrepl, sub-cls-with-bin, bosphorus, sls, lucky Preproc run schedule: handle-comps, scc-vrepl, sub-impl, sub-str-cls-with-bin, distill-cls, scc-vrepl, sub-impl,breakid, occ-backw-sub-str, occ-clean-implicit, occ-bve, occ-bva,occ-ternary-res, occ-xor, cl-consolidate, str-impl, sub-str-cls-with-bin, distill-cls, scc-vrepl, sub-impl,str-impl, sub-impl, sub-str-cls-with-bin,intree-probe, must-renumber
BUG TRACKER
Please don't hesitate to file any and all issues at: https://github.com/msoos/cryptominisat/issues
AUTHORS
cryptominisat5 is written and maintained by Mate Soos soos.mate@gmail.com
COPYRIGHT
cryptominisat5 is under the MIT license. Please see https://opensource.org/licenses/MIT for the full text
SEE ALSO
More documentation for the cryptominisat5 SAT solver can be found at https://www.msoos.org/cryptominisat5/