1CADICAL(1) User Commands CADICAL(1)
2
3
4
6 cadical - manual page for cadical 1.7.3
7
9 usage: cadical [ <option> ... ] [ <input> [ <proof> ] ]
10
11 where '<option>' is one of the following common options:
12
13 -h print alternatively only a list of common options
14
15 --help print this complete list of all options
16
17 --version
18 print version
19
20 -n do not print witness (same as '--no-witness')
21
22 -v increase verbosity (see also '--verbose' below)
23
24 -q be quiet (same as '--quiet')
25
26 -t <sec>
27 set wall clock time limit
28
29 Or '<option>' is one of the less common options
30
31 -L<rounds>
32 run local search initially (default '0' rounds)
33
34 -O<level>
35 increase limits by '2^<level>' or '10^<level>'
36
37 -P<rounds>
38 initial preprocessing (default '0' rounds)
39
40 Note there is no separating space for the options above while the fol‐
41 lowing options require a space after the option name:
42
43 -c <limit>
44 limit the number of conflicts (default unlimited)
45
46 -d <limit>
47 limit the number of decisions (default unlimited)
48
49 -o <output>
50 write simplified CNF in DIMACS format to file
51
52 -e <extend>
53 write reconstruction/extension stack to file
54
55 --force | -f
56 parsing broken DIMACS header and writing proofs
57
58 --strict
59 strict parsing (no white space in header)
60
61 -r <sol>
62 read solution in competition output format to check consistency
63 of learned clauses during testing and debugging
64
65 -w <sol>
66 write result including a potential witness solution in competi‐
67 tion format to the given file
68
69 --colors
70 force colored output
71
72 --no-colors
73 disable colored output to terminal
74
75 --no-witness
76 do not print witness (see also '-n' above)
77
78 --build
79 print build configuration
80
81 --copyright
82 print copyright information
83
84 There are pre-defined configurations of advanced internal options:
85
86 --default
87 set default advanced internal options
88
89 --plain
90 disable all internal preprocessing options
91
92 --sat set internal options to target satisfiable instances
93
94 --unsat
95 set internal options to target unsatisfiable instances
96
97 Or '<option>' is one of the following advanced internal options:
98
99 --arena=bool
100 allocate clauses in arena [true]
101
102 --arenacompact=bool
103 keep clauses compact [true]
104
105 --arenasort=bool
106 sort clauses in arena [true]
107
108 --arenatype=1..3
109 1=clause, 2=var, 3=queue [3]
110
111 --binary=bool
112 use binary proof format [true]
113
114 --block=bool
115 blocked clause elimination [false]
116
117 --blockmaxclslim=1..2e9
118 maximum clause size [1e5]
119
120 --blockminclslim=2..2e9
121 minimum clause size [2]
122
123 --blockocclim=1..2e9
124 occurrence limit [1e2]
125
126 --bump=bool
127 bump variables [true]
128
129 --bumpreason=bool
130 bump reason literals too [true]
131
132 --bumpreasondepth=1..3
133 bump reason depth [1]
134
135 --check=bool
136 enable internal checking [false]
137
138 --checkassumptions=bool
139 check assumptions satisfied [true]
140
141 --checkconstraint=bool
142 check constraint satisfied [true]
143
144 --checkfailed=bool
145 check failed literals form core [true]
146
147 --checkfrozen=bool
148 check all frozen semantics [false]
149
150 --checkproof=bool
151 check proof internally [true]
152
153 --checkprooflrat=bool
154 use internal LRAT proof checker [true]
155
156 --checkwitness=bool
157 check witness internally [true]
158
159 --chrono=0..2
160 chronological backtracking [1]
161
162 --chronoalways=bool
163 force always chronological [false]
164
165 --chronolevelim=0..2e9
166 chronological level limit [1e2]
167
168 --chronoreusetrail=bool
169 reuse trail chronologically [true]
170
171 --compact=bool
172 compact internal variables [true]
173
174 --compactint=1..2e9
175 compacting interval [2e3]
176
177 --compactlim=0..1e3
178 inactive limit per mille [1e2]
179
180 --compactmin=1..2e9
181 minimum inactive limit [1e2]
182
183 --condition=bool
184 globally blocked clause elim [false]
185
186 --conditionint=1..2e9
187 initial conflict interval [1e4]
188
189 --conditionmaxeff=0..2e9
190 maximum condition efficiency [1e7]
191
192 --conditionmaxrat=1..2e9
193 maximum clause variable ratio [100]
194
195 --conditionmineff=0..2e9
196 minimum condition efficiency [1e6]
197
198 --conditionreleff=1..1e5
199 relative efficiency per mille [100]
200
201 --cover=bool
202 covered clause elimination [false]
203
204 --covermaxclslim=1..2e9
205 maximum clause size [1e5]
206
207 --covermaxeff=0..2e9
208 maximum cover efficiency [1e8]
209
210 --coverminclslim=2..2e9
211 minimum clause size [2]
212
213 --covermineff=0..2e9
214 minimum cover efficiency [1e6]
215
216 --coverreleff=1..1e5
217 relative efficiency per mille [4]
218
219 --decompose=bool
220 decompose BIG in SCCs and ELS [true]
221
222 --decomposerounds=1..16
223 number of decompose rounds [2]
224
225 --deduplicate=bool
226 remove duplicated binaries [true]
227
228 --eagersubsume=bool
229 subsume recently learned [true]
230
231 --eagersubsumelim=1..1e3
232 limit on subsumed candidates [20]
233
234 --elim=bool
235 bounded variable elimination [true]
236
237 --elimands=bool
238 find AND gates [true]
239
240 --elimaxeff=0..2e9
241 maximum elimination efficiency [2e9]
242
243 --elimbackward=bool
244 eager backward subsumption [true]
245
246 --elimboundmax=-1..2e6
247 maximum elimination bound [16]
248
249 --elimboundmin=-1..2e6
250 minimum elimination bound [0]
251
252 --elimclslim=2..2e9
253 resolvent size limit [1e2]
254
255 --elimequivs=bool
256 find equivalence gates [true]
257
258 --elimineff=0..2e9
259 minimum elimination efficiency [1e7]
260
261 --elimint=1..2e9
262 elimination interval [2e3]
263
264 --elimites=bool
265 find if-then-else gates [true]
266
267 --elimlimited=bool
268 limit resolutions [true]
269
270 --elimocclim=0..2e9
271 occurrence limit [1e2]
272
273 --elimprod=0..1e4
274 elim score product weight [1]
275
276 --elimreleff=1..1e5
277 relative efficiency per mille [1e3]
278
279 --elimrounds=1..512
280 usual number of rounds [2]
281
282 --elimsubst=bool
283 elimination by substitution [true]
284
285 --elimsum=0..1e4
286 elimination score sum weight [1]
287
288 --elimxorlim=2..27
289 maximum XOR size [5]
290
291 --elimxors=bool
292 find XOR gates [true]
293
294 --emagluefast=1..2e9
295 window fast glue [33]
296
297 --emaglueslow=1..2e9
298 window slow glue [1e5]
299
300 --emajump=1..2e9
301 window back-jump level [1e5]
302
303 --emalevel=1..2e9
304 window back-track level [1e5]
305
306 --emasize=1..2e9
307 window learned clause size [1e5]
308
309 --ematrailfast=1..2e9
310 window fast trail [1e2]
311
312 --ematrailslow=1..2e9
313 window slow trail [1e5]
314
315 --flush=bool
316 flush redundant clauses [false]
317
318 --flushfactor=1..1e3
319 interval increase [3]
320
321 --flushint=1..2e9
322 initial limit [1e5]
323
324 --forcephase=bool
325 always use initial phase [false]
326
327 --inprocessing=bool
328 enable inprocessing [true]
329
330 --instantiate=bool
331 variable instantiation [false]
332
333 --instantiateclslim=2..2e9 minimum clause size [3]
334
335 --instantiateocclim=1..2e9 maximum occurrence limit [1]
336
337 --instantiateonce=bool
338 instantiate each clause once [true]
339
340 --lrat=bool
341 use lrat proof format [false]
342
343 --lratexternal=bool
344 external lrat [false]
345
346 --lratfrat=bool
347 use frat proof format [false]
348
349 --lratveripb=bool
350 veriPB proofs. needs lrat=1 [false]
351
352 --lucky=bool
353 search for lucky phases [true]
354
355 --minimize=bool
356 minimize learned clauses [true]
357
358 --minimizedepth=0..1e3
359 minimization depth [1e3]
360
361 --otfs=bool
362 on-the-fly self subsumption [true]
363
364 --phase=bool
365 initial phase [true]
366
367 --probe=bool
368 failed literal probing [true]
369
370 --probehbr=bool
371 learn hyper binary clauses [true]
372
373 --probeint=1..2e9
374 probing interval [5e3]
375
376 --probemaxeff=0..2e9
377 maximum probing efficiency [1e8]
378
379 --probemineff=0..2e9
380 minimum probing efficiency [1e6]
381
382 --probereleff=1..1e5
383 relative efficiency per mille [20]
384
385 --proberounds=1..16
386 probing rounds [1]
387
388 --profile=0..4
389 profiling level [2]
390
391 --quiet=bool
392 disable all messages [false]
393
394 --radixsortlim=0..2e9
395 radix sort limit [800]
396
397 --realtime=bool
398 real instead of process time [false]
399
400 --reduce=bool
401 reduce useless clauses [true]
402
403 --reduceint=10..1e6
404 reduce interval [300]
405
406 --reducetarget=10..1e2
407 reduce fraction in percent [75]
408
409 --reducetier1glue=1..2e9
410 glue of kept learned clauses [2]
411
412 --reducetier2glue=1..2e9
413 glue of tier two clauses [6]
414
415 --reluctant=0..2e9
416 reluctant doubling period [1024]
417
418 --reluctantmax=0..2e9
419 reluctant doubling period [1048576]
420
421 --rephase=bool
422 enable resetting phase [true]
423
424 --rephaseint=1..2e9
425 rephase interval [1e3]
426
427 --report=bool
428 enable reporting [false]
429
430 --reportall=bool
431 report even if not successful [false]
432
433 --reportsolve=bool
434 use solving not process time [false]
435
436 --restart=bool
437 enable restarts [true]
438
439 --restartint=1..2e9
440 restart interval [2]
441
442 --restartmargin=0..1e2
443 slow fast margin in percent [10]
444
445 --restartreusetrail=bool
446 enable trail reuse [true]
447
448 --restoreall=0..2
449 restore all clauses (2=really) [0]
450
451 --restoreflush=bool
452 remove satisfied clauses [false]
453
454 --reverse=bool
455 reverse variable ordering [false]
456
457 --score=bool
458 use EVSIDS scores [true]
459
460 --scorefactor=500..1e3
461 score factor per mille [950]
462
463 --seed=0..2e9
464 random seed [0]
465
466 --shrink=0..3
467 shrink conflict clause [3]
468
469 --shrinkreap=bool
470 use a reap for shrinking [true]
471
472 --shuffle=bool
473 shuffle variables [false]
474
475 --shufflequeue=bool
476 shuffle variable queue [true]
477
478 --shufflerandom=bool
479 not reverse but random [false]
480
481 --shufflescores=bool
482 shuffle variable scores [true]
483
484 --stabilize=bool
485 enable stabilizing phases [true]
486
487 --stabilizefactor=101..2e9 phase increase in percent [200]
488
489 --stabilizeint=1..2e9
490 stabilizing interval [1e3]
491
492 --stabilizemaxint=1..2e9
493 maximum stabilizing phase [2e9]
494
495 --stabilizeonly=bool
496 only stabilizing phases [false]
497
498 --stats=bool
499 print all statistics at the end of the run [true]
500
501 --subsume=bool
502 enable clause subsumption [true]
503
504 --subsumebinlim=0..2e9
505 watch list length limit [1e4]
506
507 --subsumeclslim=0..2e9
508 clause length limit [1e2]
509
510 --subsumeint=1..2e9
511 subsume interval [1e4]
512
513 --subsumelimited=bool
514 limit subsumption checks [true]
515
516 --subsumemaxeff=0..2e9
517 maximum subsuming efficiency [1e8]
518
519 --subsumemineff=0..2e9
520 minimum subsuming efficiency [1e6]
521
522 --subsumeocclim=0..2e9
523 watch list length limit [1e2]
524
525 --subsumereleff=1..1e5
526 relative efficiency per mille [1e3]
527
528 --subsumestr=bool
529 strengthen during subsume [true]
530
531 --target=0..2
532 target phases (1=stable only) [1]
533
534 --terminateint=0..1e4
535 termination check interval [10]
536
537 --ternary=bool
538 hyper ternary resolution [true]
539
540 --ternarymaxadd=0..1e4
541 max clauses added in percent [1e3]
542
543 --ternarymaxeff=0..2e9
544 ternary maximum efficiency [1e8]
545
546 --ternarymineff=1..2e9
547 minimum ternary efficiency [1e6]
548
549 --ternaryocclim=1..2e9
550 ternary occurrence limit [1e2]
551
552 --ternaryreleff=1..1e5
553 relative efficiency per mille [10]
554
555 --ternaryrounds=1..16
556 maximum ternary rounds [2]
557
558 --transred=bool
559 transitive reduction of BIG [true]
560
561 --transredmaxeff=0..2e9
562 maximum efficiency [1e8]
563
564 --transredmineff=0..2e9
565 minimum efficiency [1e6]
566
567 --transredreleff=1..1e5
568 relative efficiency per mille [1e2]
569
570 --verbose=0..3
571 more verbose messages [0]
572
573 --vivify=bool
574 vivification [true]
575
576 --vivifyinst=bool
577 instantiate last literal when vivify [true]
578
579 --vivifymaxeff=0..2e9
580 maximum efficiency [2e7]
581
582 --vivifymineff=0..2e9
583 minimum efficiency [2e4]
584
585 --vivifyonce=0..2
586 vivify once: 1=red, 2=red+irr [0]
587
588 --vivifyredeff=0..1e3
589 redundant efficiency per mille [75]
590
591 --vivifyreleff=1..1e5
592 relative efficiency per mille [20]
593
594 --walk=bool
595 enable random walks [true]
596
597 --walkmaxeff=0..2e9
598 maximum efficiency [1e7]
599
600 --walkmineff=0..1e7
601 minimum efficiency [1e5]
602
603 --walknonstable=bool
604 walk in non-stabilizing phase [true]
605
606 --walkredundant=bool
607 walk redundant clauses too [false]
608
609 --walkreleff=1..1e5
610 relative efficiency per mille [20]
611
612 The internal options have their default value printed in brackets after
613 their description. They can also be used in the form '--<name>' which
614 is equivalent to '--<name>=1' and in the form '--no-<name>' which is
615 equivalent to '--<name>=0'. One can also use 'true' instead of '1',
616 'false' instead of '0', as well as numbers with positive exponent such
617 as '1e3' instead of '1000'.
618
619 Alternatively option values can also be specified in the header of the
620 DIMACS file, e.g., 'c --elim=false', or through environment variables,
621 such as 'CADICAL_ELIM=false'. The embedded options in the DIMACS file
622 have highest priority, followed by command line options and then values
623 specified through environment variables.
624
625 The input is read from '<input>' assumed to be in DIMACS format. In‐
626 cremental 'p inccnf' files are supported too with cubes at the end. If
627 '<proof>' is given then a DRAT proof is written to that file.
628
629 If '<input>' is missing then the solver reads from '<stdin>', also if
630 '-' is used as input path name '<input>'. Similarly,
631
632 For incremental files each cube is solved in turn. The solver stops at
633 the first satisfied cube if there is one and uses that one for the wit‐
634 ness to print. Conflict and decision limits are applied to each indi‐
635 vidual cube solving call while '-P', '-L' and '-t' remain global. Only
636 if all cubes were unsatisfiable the solver prints the standard unsatis‐
637 fiable solution line ('s UNSATISFIABLE').
638
639 By default the proof is stored in the binary DRAT format unless the op‐
640 tion '--no-binary' is specified or the proof is written to '<stdout>'
641 and '<stdout>' is connected to a terminal.
642
643 The input is assumed to be compressed if it is given explicitly and has
644 a '.gz', '.bz2', '.xz' or '.7z' suffix. The same applies to the output
645 file. In order to use compression and decompression the corresponding
646 utilities 'gzip', 'bzip', 'xz', and '7z' (depending on the format) are
647 required and need to be installed on the system. The solver checks
648 file type signatures though and falls back to non-compressed file read‐
649 ing if the signature does not match.
650
651
652
653cadical 1.7.3 September 2023 CADICAL(1)