1CRYPTOMINISAT5(1) User Commands CRYPTOMINISAT5(1)
2
3
4
6 cryptominisat5 - SAT solver
7
9 A universal, fast SAT solver with XOR and Gaussian Elimination support.
10 Input can be either plain or gzipped DIMACS with XOR extension
11
12 cryptominisat5 [options] inputfile [drat-trim-file]
13
14 Preprocessor usage:
15 cryptominisat5 --preproc 1 [options] inputfile simpli‐
16 fied-cnf-file
17
18 cryptominisat5 --preproc 2 [options] solution-file
19
20 Main options:
21 -h [ --help ]
22 Print simple help
23
24 --hhelp
25 Print extensive help
26
27 -v [ --version ]
28 Print version info
29
30 --verb arg (=1)
31 [0-10] Verbosity of solver. 0 = only solution
32
33 -r [ --random ] arg (=0)
34 [0..] Random seed
35
36 -t [ --threads ] arg (=1)
37 Number of threads
38
39 --maxtime arg (=MAX)
40 Stop solving after this much time (s)
41
42 --maxconfl arg (=MAX)
43 Stop solving after this many conflicts
44
45 -m [ --mult ] arg (=4)
46 Time multiplier for all simplification cutoffs
47
48 --memoutmult arg (=1)
49 Multiplier for memory-out checks on variables and
50 clause-link-in, etc. Useful when you have limited memory.
51
52 -p [ --preproc ] arg (=0)
53 0 = normal run, 1 = preprocess and dump, 2 = read back dump and
54 solution to produce final solution
55
56 --polar arg (=auto)
57 {true,false,rnd,auto} Selects polarity mode. 'true' -> selects
58 only positive polarity when branching. 'false' -> selects only
59 negative polarity when branching. 'auto' -> selects last polar‐
60 ity used (also called 'caching')
61
62 Restart options:
63 --restart arg
64 {geom, glue, luby} Restart strategy to follow.
65
66 --gluehist arg (=50)
67 The size of the moving window for short-term glue history of
68 redundant clauses. If higher, the minimal number of conflicts
69 between restarts is longer
70
71 --blkrest arg (=1)
72 Perform blocking restarts as per Glucose 3.0
73
74 --blkrestlen arg (=5000)
75 Length of the long term trail size for blocking restart
76
77 --blkrestmultip arg (=1.4)
78 Multiplier used for blocking restart cut-off (called 'R' in Glu‐
79 cose 3.0)
80
81 --lwrbndblkrest arg (=10000)
82 Lower bound on blocking restart -- don't block before this many
83 conflicts
84
85 --locgmult arg (=0.80000000000000004) The multiplier used to determine
86 if we
87 should restart during glue-based restart
88
89 --brokengluerest arg (=1)
90 Should glue restart be broken as before 8e74cb5010bb4
91
92 --ratiogluegeom arg (=5)
93 Ratio of glue vs geometric restarts -- more is more glue
94
95 Printing options:
96 --verbstat arg (=1)
97 Change verbosity of statistics at the end of the solving [0..2]
98
99 --verbrestart arg (=0)
100 Print more thorough, but different stats
101
102 --verballrestarts arg (=0)
103 Print a line for every restart
104
105 -s [ --printsol ] arg (=1)
106 Print assignment if solution is SAT
107
108 --restartprint arg (=4096)
109 Print restart status lines at least every N conflicts
110
111 Propagation options:
112 --updateglueonanalysis arg (=1)
113 Update glues while analyzing
114
115 --otfhyper arg (=1)
116 Perform hyper-binary resolution at dec. level 1 after every
117 restart and during probing
118
119 Redundant clause options:
120 --gluecut0 arg (=3)
121 Glue value for lev 0 ('keep') cut
122
123 --gluecut1 arg (=6)
124 Glue value for lev 1 cut ('give another shot'
125
126 --adjustglue arg (=0.7)
127 If more than this % of clauses is LOW glue (level 0) then lower
128 the glue cutoff by 1 -- once and never again
129
130 --ml arg (=0)
131 Use ML model to guess clause effectiveness
132
133 --everylev1 arg (=10000)
134 Reduce lev1 clauses every N
135
136 --everylev2 arg (=15000)
137 Reduce lev2 clauses every N
138
139 --lev1usewithin arg (=30000)
140 Learnt clause must be used in lev1 within this timeframe or be
141 dropped to lev2
142
143 --dumpred arg
144 Dump redundant clauses of gluecut0&1 to this filename
145
146 --dumpredmaxlen arg (=10000)
147 When dumping redundant clauses, only dump clauses at most this
148 long
149
150 --dumpredmaxglue arg (=1000)
151 When dumping redundant clauses, only dump clauses with at most
152 this large glue
153
154 Variable branching options:
155 --vardecaystart arg (=0.8)
156 variable activity increase divider (MUST be smaller than multi‐
157 plier)
158
159 --vardecaymax arg (=0.95)
160 variable activity increase divider (MUST be smaller than multi‐
161 plier)
162
163 --vincstart arg (=1)
164 variable activity increase stars with this value. Make sure that
165 this multiplied by multiplier and divided by divider is larger
166 than itself
167
168 --freq arg (=0)
169 [0 - 1] freq. of picking var at random
170
171 --maple arg (=1)
172 Use maple-type variable picking sometimes
173
174 --maplemod arg (=3)
175 Use maple N-1 of N rounds. Normally, N is 2, so used every other
176 round. Set to 3 so it will use maple 2/3rds of the time.
177
178 --maplemorebump arg (=0)
179 Bump variable usefulness more when glue is HIGH
180
181 Conflict options:
182 --recur arg (=1)
183 Perform recursive minimisation
184
185 --moreminim arg (=1)
186 Perform strong minimisation at conflict gen.
187
188 --moremoreminim arg (=0)
189 Perform even stronger minimisation at conflict gen.
190
191 --moremorecachelimit arg (=400)
192 Time-out in microsteps for each more minimisation with cache.
193 Only active if 'moreminim' is on
194
195 --moremorestamp arg (=0)
196 Use cache for otf more minim of learnt clauses
197
198 --moremorealways arg (=0)
199 Always strong-minimise clause
200
201 --otfsubsume arg (=0)
202 Perform on-the-fly subsumption
203
204 Iterative solve options:
205 --maxsol arg (=1)
206 Search for given amount of solutions
207
208 --debuglib arg
209 MainSolver at specific 'solve()' points in CNF file
210
211 --dumpresult arg
212 Write solution(s) to this file
213
214 Probing options:
215 --bothprop arg (=1)
216 Do propagations solely to propagate the same value twice
217
218 --probe arg (=0)
219 Carry out probing
220
221 --probemaxm arg (=800)
222 Time in mega-bogoprops to perform probing
223
224 --transred arg (=1)
225 Remove useless binary clauses (transitive reduction)
226
227 --intree arg (=1)
228 Carry out intree-based probing
229
230 --intreemaxm arg (=1200)
231 Time in mega-bogoprops to perform intree probing
232
233 Stamping options:
234 --stamp arg (=0)
235 Use time stamping as per Heule&Jarvisalo&Biere paper
236
237 --cache arg (=0)
238 Use implication cache -- may use a lot of memory
239
240 --cachesize arg (=2048)
241 Maximum size of the implication cache in MB. It may temporarily
242 reach higher usage, but will be deleted&disabled if this limit
243 is reached.
244
245 --cachecutoff arg (=2000)
246 If the number of literals propagated by a literal is more than
247 this, it's not included into the implication cache
248
249 Simplification options:
250 --schedsimp arg (=1)
251 Perform simplification rounds. If 0, we never perform any.
252
253 --presimp arg (=0)
254 Perform simplification at the very start
255
256 --allpresimp arg (=0)
257 Perform simplification at EVERY start -- only matters in library
258 mode
259
260 -n [ --nonstop ] arg (=0)
261 Never stop the search() process in class SATSolver
262
263 --schedule arg
264 Schedule for simplification during run
265
266 --preschedule arg
267 Schedule for simplification at startup
268
269 --occsimp arg (=1)
270 Perform occurrence-list-based optimisations (variable elimina‐
271 tion, subsumption, bounded variable addition...)
272
273 --confbtwsimp arg (=50000)
274 Start first simplification after this many conflicts
275
276 --confbtwsimpinc arg (=1.3999999999999999)
277 Simp rounds increment by this power of N
278
279 --varelim arg (=1)
280 Perform variable elimination as per Een and Biere
281
282 --varelimto arg (=350)
283 Var elimination bogoprops M time limit
284
285 --varelimover arg (=32)
286 Do BVE until the resulting no. of clause increase is less than
287 X. Only power of 2 makes sense, i.e. 2,4,8...
288
289 --emptyelim arg (=1)
290 Perform empty resolvent elimination using bit-map trick
291
292 --strengthen arg (=1)
293 Perform clause contraction through self-subsuming resolution as
294 part of the occurrence-subsumption system
295
296 --bva arg (=0)
297 Perform bounded variable addition
298
299 --bvalim arg (=150000)
300 Maximum number of variables to add by BVA per call
301
302 --bva2lit arg (=1)
303 BVA with 2-lit difference hack, too. Beware, this reduces the
304 effectiveness of 1-lit diff
305
306 --bvato arg (=100)
307 BVA time limit in bogoprops M
308
309 --eratio arg (=norm: 1.6 preproc: 1)
310 Eliminate this ratio of free variables at most per variable
311 elimination iteration
312
313 --skipresol arg (=1)
314 Skip BVE resolvents in case they belong to a gate
315
316 --occredmax arg (=200)
317 Don't add to occur list any redundant clause larger than this
318
319 --occirredmaxmb arg (=2500)
320 Don't allow irredundant occur size to be beyond this many MB
321
322 --occredmaxmb arg (=600)
323 Don't allow redundant occur size to be beyond this many MB
324
325 --substimelim arg (=300)
326 Time-out in bogoprops M of subsumption of long clauses with long
327 clauses, after computing occur
328
329 --strstimelim arg (=300)
330 Time-out in bogoprops M of strengthening of long clauses with
331 long clauses, after computing occur
332
333 --agrelimtimelim arg (=300)
334 Time-out in bogoprops M of aggressive(=uses reverse distilla‐
335 tion) var-elimination
336
337 Equivalent literal options:
338 --scc arg (=1)
339 Find equivalent literals through SCC and replace them
340
341 --extscc arg (=1)
342 Perform SCC using cache
343
344 Component options:
345 --comps arg (=0)
346 Perform component-finding and separate handling
347
348 --compsfrom arg (=0)
349 Component finding only after this many simplification rounds
350
351 --compsvar arg (=1000000)
352 Only use components in case the number of variables is below
353 this limit
354
355 --compslimit arg (=500)
356 Limit how much time is spent in component-finding
357
358 XOR-related options:
359 --xor arg (=1)
360 Discover long XORs
361
362 --xorcache arg (=0)
363 Use cache when finding XORs. Finds a LOT more XORs, but takes a
364 lot more time
365
366 --varsperxorcut arg (=2)
367 Number of _real_ variables per XOR when cutting them. So 2 will
368 have XORs of size 4 because 1 = connecting to previous, 1 = con‐
369 necting to next, 2 in the midde. If the XOR is 4 long, it will
370 be just one 4-long XOR, no connectors
371
372 --echelonxor arg (=1)
373 Extract data from XORs through echelonization (TOP LEVEL ONLY)
374
375 --maxxormat arg (=400)
376 Maximum matrix size (=num elements) that we should try to echel‐
377 onize
378
379 Gate-related options:
380 --gates arg (=0)
381 Find gates. Disables all sub-options below
382
383 --gorshort arg (=1)
384 Shorten clauses with OR gates
385
386 --gandrem arg (=1)
387 Remove clauses with AND gates
388
389 --gateeqlit arg (=1)
390 Find equivalent literals using gates
391
392 --printgatedot arg (=0)
393 Print gate structure regularly to file 'gatesX.dot'
394
395 --gatefindto arg (=200)
396 Max time in bogoprops M to find gates
397
398 --shortwithgatesto arg (=200)
399 Max time to shorten with gates, bogoprops M
400
401 --remwithgatesto arg (=100)
402 Max time to remove with gates, bogoprops M
403
404 Misc options:
405 --distill arg (=1)
406 Regularly execute clause distillation
407
408 --distillmaxm arg (=20)
409 Maximum number of Mega-bogoprops(~time) to spend on vivify‐
410 ing/distilling long cls by enqueueing and propagating
411
412 --distillto arg (=120)
413 Maximum time in bogoprops M for distillation
414
415 Reconf options:
416 --reconfat arg (=2)
417 Reconfigure after this many simplifications
418
419 --reconf arg (=0)
420 Reconfigure after some time to this solver configuration [0..15]
421
422 Misc options:
423 --strcachemaxm arg (=30)
424 Maximum number of Mega-bogoprops(~time) to spend on vivifying
425 long irred cls through watches, cache and stamps
426
427 --renumber arg (=1)
428 Renumber variables to increase CPU cache efficiency
429
430 --savemem arg (=1)
431 Save memory by deallocating variable space after renumbering.
432 Only works if renumbering is active.
433
434 --implicitmanip arg (=1)
435 Subsume and strengthen implicit clauses with each other
436
437 --implsubsto arg (=100)
438 Timeout (in bogoprop Millions) of implicit subsumption
439
440 --implstrto arg (=200)
441 Timeout (in bogoprop Millions) of implicit strengthening
442
443 Normal run schedules:
444 Default schedule: handle-comps,scc-vrepl, cache-clean,
445 cache-tryboth,sub-impl, intree-probe,
446 probe,sub-str-cls-with-bin, distill-cls,scc-vrepl, sub-impl,
447 str-impl, sub-impl,occ-backw-sub-str, occ-clean-implicit,
448 occ-bve, occ-bva, occ-xor,str-impl, cache-clean,
449 sub-str-cls-with-bin, distill-cls,scc-vrepl, check-cache-size,
450 renumber
451
452 Schedule at startup: sub-impl,occ-backw-sub-str,
453 occ-clean-implicit, occ-bve,occ-backw-sub-str,
454 occ-xor,scc-vrepl,sub-cls-with-bin
455
456 Preproc run schedule:
457 handle-comps,scc-vrepl, cache-clean, cache-try‐
458 both,sub-impl,sub-str-cls-with-bin, distill-cls, scc-vrepl,
459 sub-impl,occ-backw-sub-str, occ-xor, occ-clean-implicit,
460 occ-bve, occ-bva,str-impl, cache-clean, sub-str-cls-with-bin,
461 distill-cls, scc-vrepl, sub-impl,str-impl, sub-impl,
462 sub-str-cls-with-bin,intree-probe, probe,must-renumber
463
465 Please don't hesitate to file any and all issues at:
466
467 https://github.com/msoos/cryptominisat/issues
468
470 cryptominisat5 is written and maintained by Mate Soos
471 soos.mate@gmail.com
472
474 cryptominisat5 is under the MIT license. Please see https://open‐
475 source.org/licenses/MIT for the full text
476
478 More documentation for the cryptominisat5 SAT solver can be found at
479 https://www.msoos.org/cryptominisat5/
480
481
482
483cryptominisat5 5.6.4 August 2018 CRYPTOMINISAT5(1)