OS Manuals

/usr/bin/cadical

CaDiCaL simplified satisfiability solver

From cadical 3.0.1-r3 (enterprise-packages), captured 2026-11-08 by running cadical --help (exit 0). permalink

usage: cadical [ <option> ... ] [ <input> [ <proof> ] ]

where '<option>' is one of the following common options:

  -h             print alternatively only a list of common options
  --help         print this complete list of all options
  --version      print version

  -n             do not print witness (same as '--no-witness')
  -v             increase verbosity (see also '--verbose' below)
  -q             be quiet (same as '--quiet')
  -t <sec>       set wall clock time limit

Or '<option>' is one of the less common options

  -L<rounds>     run local search initially (default '0' rounds)
  -O<level>      increase limits by '2^<level>' or '10^<level>'
  -P<rounds>     initial preprocessing (default '0' rounds)

Note there is no separating space for the options above while the
following options require a space after the option name:

  -c <limit>     limit the number of conflicts (default unlimited)
  -d <limit>     limit the number of decisions (default unlimited)

  -o <output>    write simplified CNF in DIMACS format to file
  -e <extend>    write reconstruction/extension stack to file

  --force | -f   parsing broken DIMACS header and writing proofs
  --strict       strict parsing (no white space in header)

  -r <sol>       read solution in competition output format
                 to check consistency of learned clauses
                 during testing and debugging

  -w <sol>       write result including a potential witness
                 solution in competition format to the given file

  --colors       force colored output
  --no-colors    disable colored output to terminal
  --no-witness   do not print witness (see also '-n' above)

  --build        print build configuration
  --copyright    print copyright information

There are pre-defined configurations of advanced internal options:

  --default      set default advanced internal options
  --plain        disable all internal preprocessing options
  --sat          set internal options to target satisfiable instances
  --unsat        set internal options to target unsatisfiable instances

Or '<option>' is one of the following advanced internal options:

  --arena=bool               allocate clauses in arena [true]
  --arenacompact=bool        keep clauses compact [true]
  --arenasort=bool           sort clauses in arena [true]
  --arenatype=1..3           1=clause, 2=var, 3=queue [3]
  --backbone=0..2            binary clause backbone [1]
  --backboneeffort=0..1e5    binary effort in per mile [20]
  --backbonemaxrounds=0..1e5 backbone rounds limit [1e3]
  --backbonerounds=0..1e5    backbone rounds limit [100]
  --backbonethresh=0..1e9    delay if ticks smaller thresh*clauses [5]
  --binary=bool              use binary proof format [true]
  --block=bool               blocked clause elimination [false]
  --blockmaxclslim=1..2e9    maximum clause size [1e5]
  --blockminclslim=2..2e9    minimum clause size [2]
  --blockocclim=1..2e9       occurrence limit [1e2]
  --bump=bool                bump variables [true]
  --bumpreason=bool          bump reason literals too [true]
  --bumpreasondepth=1..3     bump reason depth [1]
  --bumpreasonlimit=1..2e9   bump reason limit [10]
  --bumpreasonrate=1..2e9    bump reason decision rate [100]
  --check=bool               enable internal checking [false]
  --checkassumptions=bool    check assumptions satisfied [true]
  --checkconstraint=bool     check constraint satisfied [true]
  --checkfailed=bool         check failed literals form core [true]
  --checkfrozen=bool         check all frozen semantics [false]
  --checkproof=0..3          1=drat, 2=lrat, 3=both [3]
  --checkwitness=bool        check witness internally [true]
  --chrono=0..2              chronological backtracking [1]
  --chronoalways=bool        force always chronological [false]
  --chronolevelim=0..2e9     chronological level limit [1e2]
  --chronoreusetrail=bool    reuse trail chronologically [true]
  --compact=bool             compact internal variables [true]
  --compactint=1..2e9        compacting interval [2e3]
  --compactlim=0..1e3        inactive limit per mille [1e2]
  --compactmin=1..2e9        minimum inactive limit [1e2]
  --condition=bool           globally blocked clause elim [false]
  --conditioneffort=1..1e5   relative efficiency per mille [100]
  --conditionint=1..2e9      initial conflict interval [1e4]
  --conditionmaxeff=0..2e9   maximum condition efficiency [1e7]
  --conditionmaxrat=1..2e9   maximum clause variable ratio [100]
  --conditionmineff=0..2e9   minimum condition efficiency [0]
  --congruence=bool          congruence closure [true]
  --congruenceand=bool       extract AND gates [true]
  --congruenceandarity=2..5e7 AND gate arity limit [1e6]
  --congruencebinaries=bool  extract binary and strengthen ternary clauses [true]
  --congruenceite=bool       extract ITE gates [true]
  --congruencexor=bool       extract XOR gates [true]
  --congruencexorarity=2..31 XOR gate arity limit [4]
  --congruencexorcounts=1..5e6 XOR gate round [1]
  --cover=bool               covered clause elimination [false]
  --covereffort=1..1e5       relative efficiency per mille [4]
  --covermaxclslim=1..2e9    maximum clause size [1e5]
  --covermaxeff=0..2e9       maximum cover efficiency [1e8]
  --coverminclslim=2..2e9    minimum clause size [2]
  --covermineff=0..2e9       minimum cover efficiency [0]
  --decompose=bool           decompose BIG in SCCs and ELS [true]
  --decomposerounds=1..16    number of decompose rounds [2]
  --deduplicate=bool         remove duplicated binaries [true]
  --deduplicateallinit=bool  remove duplicated clauses once before solving [false]
  --eagersubsume=bool        subsume recently learned [true]
  --eagersubsumelim=1..1e3   limit on subsumed candidates [20]
  --elevate=-1..3            elevate during clause addition [2]
  --elim=bool                bounded variable elimination [true]
  --elimands=bool            find AND gates [true]
  --elimbackward=bool        eager backward subsumption [true]
  --elimboundmax=-1..2e6     maximum elimination bound [16]
  --elimboundmin=-1..2e6     minimum elimination bound [0]
  --elimclslim=2..2e9        resolvent size limit [1e2]
  --elimdef=bool             mine definitions with kitten [false]
  --elimdefcores=1..100      number of unsat cores [1]
  --elimdefticks=0..2e9      kitten ticks limit [2e5]
  --elimeffort=1..1e5        relative efficiency per mille [1e3]
  --elimequivs=bool          find equivalence gates [true]
  --elimint=1..2e9           elimination interval [2e3]
  --elimites=bool            find if-then-else gates [true]
  --elimlimited=bool         limit resolutions [true]
  --elimmaxeff=0..2e9        maximum elimination efficiency [2e9]
  --elimmineff=0..2e9        minimum elimination efficiency [1e7]
  --elimocclim=0..2e9        occurrence limit [1e2]
  --elimprod=0..1e4          elim score product weight [1]
  --elimrounds=1..512        usual number of rounds [2]
  --elimsubst=bool           elimination by substitution [true]
  --elimsum=0..1e4           elimination score sum weight [1]
  --elimxorlim=2..27         maximum XOR size [5]
  --elimxors=bool            find XOR gates [true]
  --emadecisions=1..2e9      window decision rate [1e5]
  --emagluefast=1..2e9       window fast glue [33]
  --emaglueslow=1..2e9       window slow glue [1e5]
  --emajump=1..2e9           window back-jump level [1e5]
  --emalevel=1..2e9          window back-track level [1e5]
  --emasize=1..2e9           window learned clause size [1e5]
  --ematrailfast=1..2e9      window fast trail [1e2]
  --ematrailslow=1..2e9      window slow trail [1e5]
  --exteagerreasons=bool     eagerly ask for all reasons (0: only when needed) [false]
  --exteagerrecalc=bool      after eagerly asking for reasons recalculate all levels (0: trust the external tool) [true]
  --exttracecalls=bool       trace propagator call-backs when tracing API calls [false]
  --factor=bool              bounded variable addition [false]
  --factorcandrounds=0..2e9  candidates reduction rounds [2]
  --factorcheck=0..2         API checks that variables have been declared (1 = only with factor on, 2 = always) [1]
  --factordelay=0..12        delay bounded variable addition between eliminations [4]
  --factoreffort=0..1e6      relative effort per mille [50]
  --factoriniticks=1..1e6    initial effort in millions [300]
  --factorsize=2..2e9        clause size limit [5]
  --factorthresh=0..100      delay if ticks smaller thresh*clauses [7]
  --factorunbump=bool        extension variable with lowest importance [1: as in kissat] [true]
  --fastelim=bool            fast BVE during preprocessing [true]
  --fastelimbound=1..1e3     fast BVE bound during preprocessing [8]
  --fastelimclslim=2..2e9    fast BVE resolvent size limit [1e2]
  --fastelimocclim=1..2e9    fast BVE occurence limit during preprocessing [100]
  --fastelimrounds=1..512    number of fastelim rounds [4]
  --flush=bool               flush redundant clauses [false]
  --flushfactor=1..1e3       interval increase [3]
  --flushint=1..2e9          initial limit [1e5]
  --forcephase=bool          always use initial phase [false]
  --frat=0..2                1=frat(lrat), 2=frat(drat) [0]
  --idrup=bool               incremental proof format [false]
  --ilb=0..2                 ILB (incremental lazy backtrack) (0: no, 1: assumptions only, 2: everything) [0]
  --incdecay=0..4            decay clauses when doing incremental clauses [1]
  --incdecayint=1..2e9       decay interval when doing incremental clauses [1e6]
  --inprobeint=1..2e9        inprobing interval [100]
  --inprobing=bool           enable probe inprocessing [true]
  --inprocessing=bool        enable general inprocessing [true]
  --instantiate=bool         variable instantiation [false]
  --instantiateclslim=2..2e9 minimum clause size [3]
  --instantiateocclim=1..2e9 maximum occurrence limit [1]
  --instantiateonce=bool     instantiate each clause once [true]
  --lidrup=bool              linear incremental proof format [false]
  --lrat=bool                use LRAT proof format [false]
  --lucky=bool               lucky phases [true]
  --luckyassumptions=bool    lucky phases with assumptions [true]
  --luckyearly=bool          lucky phases before preprocessing [true]
  --luckylate=bool           lucky phases after preprocessing [true]
  --minimize=bool            minimize learned clauses [true]
  --minimizedepth=0..1e3     minimization depth [1e3]
  --minimizeticks=bool       increment ticks in minimization [true]
  --otfs=bool                on-the-fly self subsumption [true]
  --phase=bool               initial phase [true]
  --preprocessinit=0..2e9    initial preprocessing base limit [2e6]
  --preprocesslight=bool     lightweight preprocessing [false]
  --probe=bool               failed literal probing [true]
  --probeeffort=1..1e5       relative efficiency per mille [8]
  --probehbr=bool            learn hyper binary clauses [true]
  --probethresh=0..100       delay if ticks smaller thresh*clauses [0]
  --profile=0..4             profiling level [2]
  --quiet=bool               disable all messages [false]
  --radixsortlim=0..2e9      radix sort limit [32]
  --randec=bool              random decisions [false]
  --randecfocused=bool       random decisions in focused mode [true]
  --randecinit=2..2e9        inital random decision interval [1e3]
  --randecint=0..2e9         random conflict length [500]
  --randeclength=1..1e9      length random decisions phases [10]
  --randecstable=bool        random decisions in stable mode [false]
  --realtime=bool            real instead of process time [false]
  --recomputetier=bool       recompute tiers [true]
  --reduce=bool              reduce useless clauses [true]
  --reduceinit=1..1e6        initial interval [300]
  --reduceint=2..1e6         reduce interval [25]
  --reduceopt=0..2           0=prct,1=sqrt,2=max [1]
  --reducetarget=10..1e2     reduce fraction in percent [75]
  --reducetier1glue=1..2e9   glue of kept learned clauses [2]
  --reducetier2glue=1..2e9   glue of tier two clauses [6]
  --reluctant=bool           stable reluctant doubling restarts [true]
  --reluctantint=0..2e9      reluctant doubling period [1024]
  --reluctantmax=0..2e9      maximum reluctant doubling period [1048576]
  --rephase=0..2             enable resetting phase (0=no,1=always,2=stable-only) [1]
  --rephaseint=1..2e9        rephase interval [1e3]
  --report=bool              enable reporting [false]
  --reportall=bool           report even if not successful [false]
  --reportsolve=bool         use solving not process time [false]
  --restart=bool             enable restarts [true]
  --restartint=1..2e9        restart interval [2]
  --restartmarginfocused=0..25 focused slow fast margin in percent [10]
  --restartmarginstable=0..25 stable slow fast margin in percent [25]
  --restartreusetrail=bool   enable trail reuse [true]
  --restoreall=0..2          restore all clauses (2=really) [0]
  --restoreflush=bool        remove satisfied clauses [false]
  --reverse=bool             reverse variable ordering [false]
  --score=bool               use EVSIDS scores [true]
  --scorefactor=500..1e3     score factor per mille [950]
  --seed=0..2e9              random seed [0]
  --shrink=0..3              shrink conflict clause (1=binary-only,2=minimize-on-pulling,3=full) [3]
  --shrinkreap=bool          use a reap for shrinking [true]
  --shuffle=bool             shuffle variables [false]
  --shufflequeue=bool        shuffle variable queue [true]
  --shufflerandom=bool       not reverse but random [false]
  --shufflescores=bool       shuffle variable scores [true]
  --stabilize=bool           enable stabilizing phases [true]
  --stabilizeinit=1..2e9     stabilizing interval [1e3]
  --stabilizeonly=bool       only stabilizing phases [false]
  --stats=bool               print all statistics at the end of the run [false]
  --stubbornIOfocused=bool   force phases to I/O in focused mode every once in a while (requires rephase==2) [false]
  --subsume=bool             enable clause subsumption [true]
  --subsumebinlim=0..2e9     watch list length limit [1e4]
  --subsumeclslim=0..2e9     clause length limit [1e2]
  --subsumeeffort=1..1e5     relative efficiency per mille [1e3]
  --subsumelimited=bool      limit subsumption checks [true]
  --subsumemaxeff=0..2e9     maximum subsuming efficiency [1e8]
  --subsumemineff=0..2e9     minimum subsuming efficiency [0]
  --subsumeocclim=0..2e9     watch list length limit [1e2]
  --subsumestr=bool          subsume strengthen [true]
  --sweep=bool               enable SAT sweeping [true]
  --sweepclauses=0..2e9      environment clauses [1024]
  --sweepcomplete=bool       run SAT sweeping to completion [false]
  --sweepcountbinary=bool    count binaries to environment [true]
  --sweepdepth=0..2e9        environment depth [2]
  --sweepeffort=0..1e4       relative effort in ticks per mille [1e2]
  --sweepfliprounds=0..2e9   flipping rounds [1]
  --sweepmaxclauses=2..2e9   maximum environment clauses [3e5]
  --sweepmaxdepth=1..2e9     maximum environment depth [3]
  --sweepmaxvars=2..2e9      maximum environment variables [8192]
  --sweeprand=bool           randomize sweeping environment [false]
  --sweepthresh=0..100       delay if ticks smaller thresh*clauses [5]
  --sweepvars=0..2e9         environment variables [256]
  --target=0..2              target phases (1=stable only) [1]
  --terminateint=0..1e4      termination check interval [10]
  --ternary=bool             hyper ternary resolution [true]
  --ternaryeffort=1..1e5     relative efficiency per mille [8]
  --ternarymaxadd=0..1e4     max clauses added in percent [1e3]
  --ternaryocclim=1..2e9     ternary occurrence limit [1e2]
  --ternaryrounds=1..16      maximum ternary rounds [2]
  --ternarythresh=0..100     delay if ticks smaller thresh*clauses [6]
  --tier1limit=0..100        limit of tier1 usage in percentage [50]
  --tier1minglue=0..100      lowest tier1 limit [0]
  --tier2limit=0..100        limit of tier2 usage in percentage [90]
  --tier2minglue=0..100      lowest tier2 limit [0]
  --transred=bool            transitive reduction of BIG [true]
  --transredeffort=1..1e5    relative efficiency per mille [1e2]
  --transredmaxeff=0..2e9    maximum efficiency [1e8]
  --transredmineff=0..2e9    minimum efficiency [0]
  --verbose=0..3             more verbose messages [0]
  --veripb=0..4              odd=check-deletions, >2 drat [0]
  --vivify=bool              vivification [true]
  --vivifycalctier=bool      recalculate tier limits [false]
  --vivifydemote=bool        demote irredundant or delete directly [false]
  --vivifyeffort=0..1e5      overall efficiency per mille [50]
  --vivifyflush=bool         flush subsumed before vivification rounds [true]
  --vivifyinst=bool          instantiate last literal when vivify [true]
  --vivifyirred=bool         vivification of irredundant clauses [true]
  --vivifyirredeff=1..100    irredundant efficiency per mille [3]
  --vivifyonce=0..2          vivify once: 1=red, 2=red+irr [0]
  --vivifyretry=0..5         re-vivify clause if vivify was successful [0]
  --vivifyschedmax=10..2e9   maximum schedule size [5e3]
  --vivifythresh=0..100      delay if ticks smaller thresh*clauses [20]
  --vivifytier1=bool         vivification tier1 [true]
  --vivifytier1eff=0..100    relative tier1 effort [4]
  --vivifytier2=bool         vivification tier2 [true]
  --vivifytier2eff=1..100    relative tier2 effort [2]
  --vivifytier3=bool         vivification tier3 [true]
  --vivifytier3eff=1..100    relative tier3 effort [1]
  --walk=bool                enable random walks [true]
  --walkeffort=1..1e5        relative efficiency per mille [80]
  --walkfullocc=bool         use Kissat's full occurrences instead of the single watched [false]
  --walkmaxeff=0..2e9        maximum efficiency (in 1e3 ticks) [1e7]
  --walkmineff=0..1e7        minimum efficiency [0]
  --walknonstable=bool       walk in non-stabilizing phase [true]
  --walkredundant=bool       walk redundant clauses too [false]
  --warmup=bool              warmup before walk using propagation [true]

The internal options have their default value printed in brackets
after their description.  They can also be used in the form
'--<name>' which is equivalent to '--<name>=1' and in the form
'--no-<name>' which is equivalent to '--<name>=0'.  One can also
use 'true' instead of '1', 'false' instead of '0', as well as
numbers with positive exponent such as '1e3' instead of '1000'.

Alternatively option values can also be specified in the header
of the DIMACS file, e.g., 'c --elim=false', or through environment
variables, such as 'CADICAL_ELIM=false'.  The embedded options in
the DIMACS file have highest priority, followed by command line
options and then values specified through environment variables.

The input is read from '<input>' assumed to be in DIMACS format.
Incremental 'p inccnf' files are supported too with cubes at the end.
If '<proof>' is given then a DRAT proof is written to that file.

If '<input>' is missing then the solver reads from '<stdin>',
also if '-' is used as input path name '<input>'.  Similarly,

For incremental files each cube is solved in turn. The solver
stops at the first satisfied cube if there is one and uses that
one for the witness to print.  Conflict and decision limits are
applied to each individual cube solving call while '-P', '-L' and
'-t' remain global.  Only if all cubes were unsatisfiable the solver
prints the standard unsatisfiable solution line ('s UNSATISFIABLE').

By default the proof is stored in the binary DRAT format unless
the option '--no-binary' is specified or the proof is written
to '<stdout>' and '<stdout>' is connected to a terminal.

The input is assumed to be compressed if it is given explicitly
and has a '.gz', '.bz2', '.xz' or '.7z' suffix.  The same applies
to the output file.  In order to use compression and decompression
the corresponding utilities 'gzip', 'bzip', 'xz', and '7z' (depending
on the format) are required and need to be installed on the system.
The solver checks file type signatures though and falls back to
non-compressed file reading if the signature does not match.
Options (275)
OptionDescriptionSource
-hprint alternatively only a list of common optionshelp
--helpprint this complete list of all optionshelp
--versionprint versionhelp
-ndo not print witness (same as '--no-witness')help
-vincrease verbosity (see also '--verbose' below)help
-qbe quiet (same as '--quiet')help
-t secset wall clock time limithelp
-L roundsrun local search initially (default '0' rounds)help
-O levelincrease limits by '2^<level>' or '10^<level>'help
-P roundsinitial preprocessing (default '0' rounds)help
-c limitlimit the number of conflicts (default unlimited)help
-d limitlimit the number of decisions (default unlimited)help
-o outputwrite simplified CNF in DIMACS format to filehelp
-e extendwrite reconstruction/extension stack to filehelp
--force, -fparsing broken DIMACS header and writing proofshelp
--strictstrict parsing (no white space in header)help
-r solread solution in competition output format to check consistency of learned clauses during testing and debugginghelp
-w solwrite result including a potential witness solution in competition format to the given filehelp
--colorsforce colored outputhelp
--no-colorsdisable colored output to terminalhelp
--no-witnessdo not print witness (see also '-n' above)help
--buildprint build configurationhelp
--copyrightprint copyright informationhelp
--defaultset default advanced internal optionshelp
--plaindisable all internal preprocessing optionshelp
--satset internal options to target satisfiable instanceshelp
--unsatset internal options to target unsatisfiable instanceshelp
--arena boolallocate clauses in arena [true]help
--arenacompact boolkeep clauses compact [true]help
--arenasort boolsort clauses in arena [true]help
--arenatype 1..31=clause, 2=var, 3=queue [3]help
--backbone 0..2binary clause backbone [1]help
--backboneeffort 0..1e5binary effort in per mile [20]help
--backbonerounds 0..1e5backbone rounds limit [100]help
--backbonethresh 0..1e9delay if ticks smaller thresh*clauses [5]help
--binary booluse binary proof format [true]help
--block boolblocked clause elimination [false]help
--blockmaxclslim 1..2e9maximum clause size [1e5]help
--blockminclslim 2..2e9minimum clause size [2]help
--blockocclim 1..2e9occurrence limit [1e2]help
--bump boolbump variables [true]help
--bumpreason boolbump reason literals too [true]help
--bumpreasondepth 1..3bump reason depth [1]help
--bumpreasonlimit 1..2e9bump reason limit [10]help
--bumpreasonrate 1..2e9bump reason decision rate [100]help
--check boolenable internal checking [false]help
--checkassumptions boolcheck assumptions satisfied [true]help
--checkconstraint boolcheck constraint satisfied [true]help
--checkfailed boolcheck failed literals form core [true]help
--checkfrozen boolcheck all frozen semantics [false]help
--checkproof 0..31=drat, 2=lrat, 3=both [3]help
--checkwitness boolcheck witness internally [true]help
--chrono 0..2chronological backtracking [1]help
--chronoalways boolforce always chronological [false]help
--chronolevelim 0..2e9chronological level limit [1e2]help
--chronoreusetrail boolreuse trail chronologically [true]help
--compact boolcompact internal variables [true]help
--compactint 1..2e9compacting interval [2e3]help
--compactlim 0..1e3inactive limit per mille [1e2]help
--compactmin 1..2e9minimum inactive limit [1e2]help
--condition boolglobally blocked clause elim [false]help
--conditioneffort 1..1e5relative efficiency per mille [100]help
--conditionint 1..2e9initial conflict interval [1e4]help
--conditionmaxeff 0..2e9maximum condition efficiency [1e7]help
--conditionmaxrat 1..2e9maximum clause variable ratio [100]help
--conditionmineff 0..2e9minimum condition efficiency [0]help
--congruence boolcongruence closure [true]help
--congruenceand boolextract AND gates [true]help
--congruencebinaries boolextract binary and strengthen ternary clauses [true]help
--congruenceite boolextract ITE gates [true]help
--congruencexor boolextract XOR gates [true]help
--cover boolcovered clause elimination [false]help
--covereffort 1..1e5relative efficiency per mille [4]help
--covermaxclslim 1..2e9maximum clause size [1e5]help
--covermaxeff 0..2e9maximum cover efficiency [1e8]help
--coverminclslim 2..2e9minimum clause size [2]help
--covermineff 0..2e9minimum cover efficiency [0]help
--decompose booldecompose BIG in SCCs and ELS [true]help
--decomposerounds 1..16number of decompose rounds [2]help
--deduplicate boolremove duplicated binaries [true]help
--deduplicateallinit boolremove duplicated clauses once before solving [false]help
--eagersubsume boolsubsume recently learned [true]help
--eagersubsumelim 1..1e3limit on subsumed candidates [20]help
--elevate -1..3elevate during clause addition [2]help
--elim boolbounded variable elimination [true]help
--elimands boolfind AND gates [true]help
--elimbackward booleager backward subsumption [true]help
--elimboundmax -1..2e6maximum elimination bound [16]help
--elimboundmin -1..2e6minimum elimination bound [0]help
--elimclslim 2..2e9resolvent size limit [1e2]help
--elimdef boolmine definitions with kitten [false]help
--elimdefcores 1..100number of unsat cores [1]help
--elimdefticks 0..2e9kitten ticks limit [2e5]help
--elimeffort 1..1e5relative efficiency per mille [1e3]help
--elimequivs boolfind equivalence gates [true]help
--elimint 1..2e9elimination interval [2e3]help
--elimites boolfind if-then-else gates [true]help
--elimlimited boollimit resolutions [true]help
--elimmaxeff 0..2e9maximum elimination efficiency [2e9]help
--elimmineff 0..2e9minimum elimination efficiency [1e7]help
--elimocclim 0..2e9occurrence limit [1e2]help
--elimprod 0..1e4elim score product weight [1]help
--elimrounds 1..512usual number of rounds [2]help
--elimsubst boolelimination by substitution [true]help
--elimsum 0..1e4elimination score sum weight [1]help
--elimxorlim 2..27maximum XOR size [5]help
--elimxors boolfind XOR gates [true]help
--emadecisions 1..2e9window decision rate [1e5]help
--emagluefast 1..2e9window fast glue [33]help
--emaglueslow 1..2e9window slow glue [1e5]help
--emajump 1..2e9window back-jump level [1e5]help
--emalevel 1..2e9window back-track level [1e5]help
--emasize 1..2e9window learned clause size [1e5]help
--ematrailfast 1..2e9window fast trail [1e2]help
--ematrailslow 1..2e9window slow trail [1e5]help
--exteagerreasons booleagerly ask for all reasons (0: only when needed) [false]help
--exteagerrecalc boolafter eagerly asking for reasons recalculate all levels (0: trust the external tool) [true]help
--exttracecalls booltrace propagator call-backs when tracing API calls [false]help
--factor boolbounded variable addition [false]help
--factorcandrounds 0..2e9candidates reduction rounds [2]help
--factorcheck 0..2API checks that variables have been declared (1 = only with factor on, 2 = always) [1]help
--factordelay 0..12delay bounded variable addition between eliminations [4]help
--factoreffort 0..1e6relative effort per mille [50]help
--factoriniticks 1..1e6initial effort in millions [300]help
--factorsize 2..2e9clause size limit [5]help
--factorthresh 0..100delay if ticks smaller thresh*clauses [7]help
--factorunbump boolextension variable with lowest importance [1: as in kissat] [true]help
--fastelim boolfast BVE during preprocessing [true]help
--fastelimbound 1..1e3fast BVE bound during preprocessing [8]help
--fastelimclslim 2..2e9fast BVE resolvent size limit [1e2]help
--fastelimocclim 1..2e9fast BVE occurence limit during preprocessing [100]help
--fastelimrounds 1..512number of fastelim rounds [4]help
--flush boolflush redundant clauses [false]help
--flushfactor 1..1e3interval increase [3]help
--flushint 1..2e9initial limit [1e5]help
--forcephase boolalways use initial phase [false]help
--frat 0..21=frat(lrat), 2=frat(drat) [0]help
--idrup boolincremental proof format [false]help
--ilb 0..2ILB (incremental lazy backtrack) (0: no, 1: assumptions only, 2: everything) [0]help
--incdecay 0..4decay clauses when doing incremental clauses [1]help
--incdecayint 1..2e9decay interval when doing incremental clauses [1e6]help
--inprobeint 1..2e9inprobing interval [100]help
--inprobing boolenable probe inprocessing [true]help
--inprocessing boolenable general inprocessing [true]help
--instantiate boolvariable instantiation [false]help
--instantiateonce boolinstantiate each clause once [true]help
--lidrup boollinear incremental proof format [false]help
--lrat booluse LRAT proof format [false]help
--lucky boollucky phases [true]help
--luckyassumptions boollucky phases with assumptions [true]help
--luckyearly boollucky phases before preprocessing [true]help
--luckylate boollucky phases after preprocessing [true]help
--minimize boolminimize learned clauses [true]help
--minimizedepth 0..1e3minimization depth [1e3]help
--minimizeticks boolincrement ticks in minimization [true]help
--otfs boolon-the-fly self subsumption [true]help
--phase boolinitial phase [true]help
--preprocessinit 0..2e9initial preprocessing base limit [2e6]help
--preprocesslight boollightweight preprocessing [false]help
--probe boolfailed literal probing [true]help
--probeeffort 1..1e5relative efficiency per mille [8]help
--probehbr boollearn hyper binary clauses [true]help
--probethresh 0..100delay if ticks smaller thresh*clauses [0]help
--profile 0..4profiling level [2]help
--quiet booldisable all messages [false]help
--radixsortlim 0..2e9radix sort limit [32]help
--randec boolrandom decisions [false]help
--randecfocused boolrandom decisions in focused mode [true]help
--randecinit 2..2e9inital random decision interval [1e3]help
--randecint 0..2e9random conflict length [500]help
--randeclength 1..1e9length random decisions phases [10]help
--randecstable boolrandom decisions in stable mode [false]help
--realtime boolreal instead of process time [false]help
--recomputetier boolrecompute tiers [true]help
--reduce boolreduce useless clauses [true]help
--reduceinit 1..1e6initial interval [300]help
--reduceint 2..1e6reduce interval [25]help
--reduceopt 0..20=prct,1=sqrt,2=max [1]help
--reducetarget 10..1e2reduce fraction in percent [75]help
--reducetier1glue 1..2e9glue of kept learned clauses [2]help
--reducetier2glue 1..2e9glue of tier two clauses [6]help
--reluctant boolstable reluctant doubling restarts [true]help
--reluctantint 0..2e9reluctant doubling period [1024]help
--reluctantmax 0..2e9maximum reluctant doubling period [1048576]help
--rephase 0..2enable resetting phase (0=no,1=always,2=stable-only) [1]help
--rephaseint 1..2e9rephase interval [1e3]help
--report boolenable reporting [false]help
--reportall boolreport even if not successful [false]help
--reportsolve booluse solving not process time [false]help
--restart boolenable restarts [true]help
--restartint 1..2e9restart interval [2]help
--restartreusetrail boolenable trail reuse [true]help
--restoreall 0..2restore all clauses (2=really) [0]help
--restoreflush boolremove satisfied clauses [false]help
--reverse boolreverse variable ordering [false]help
--score booluse EVSIDS scores [true]help
--scorefactor 500..1e3score factor per mille [950]help
--seed 0..2e9random seed [0]help
--shrink 0..3shrink conflict clause (1=binary-only,2=minimize-on-pulling,3=full) [3]help
--shrinkreap booluse a reap for shrinking [true]help
--shuffle boolshuffle variables [false]help
--shufflequeue boolshuffle variable queue [true]help
--shufflerandom boolnot reverse but random [false]help
--shufflescores boolshuffle variable scores [true]help
--stabilize boolenable stabilizing phases [true]help
--stabilizeinit 1..2e9stabilizing interval [1e3]help
--stabilizeonly boolonly stabilizing phases [false]help
--stats boolprint all statistics at the end of the run [false]help
--stubbornIOfocused boolforce phases to I/O in focused mode every once in a while (requires rephase==2) [false]help
--subsume boolenable clause subsumption [true]help
--subsumebinlim 0..2e9watch list length limit [1e4]help
--subsumeclslim 0..2e9clause length limit [1e2]help
--subsumeeffort 1..1e5relative efficiency per mille [1e3]help
--subsumelimited boollimit subsumption checks [true]help
--subsumemaxeff 0..2e9maximum subsuming efficiency [1e8]help
--subsumemineff 0..2e9minimum subsuming efficiency [0]help
--subsumeocclim 0..2e9watch list length limit [1e2]help
--subsumestr boolsubsume strengthen [true]help
--sweep boolenable SAT sweeping [true]help
--sweepclauses 0..2e9environment clauses [1024]help
--sweepcomplete boolrun SAT sweeping to completion [false]help
--sweepcountbinary boolcount binaries to environment [true]help
--sweepdepth 0..2e9environment depth [2]help
--sweepeffort 0..1e4relative effort in ticks per mille [1e2]help
--sweepfliprounds 0..2e9flipping rounds [1]help
--sweepmaxclauses 2..2e9maximum environment clauses [3e5]help
--sweepmaxdepth 1..2e9maximum environment depth [3]help
--sweepmaxvars 2..2e9maximum environment variables [8192]help
--sweeprand boolrandomize sweeping environment [false]help
--sweepthresh 0..100delay if ticks smaller thresh*clauses [5]help
--sweepvars 0..2e9environment variables [256]help
--target 0..2target phases (1=stable only) [1]help
--terminateint 0..1e4termination check interval [10]help
--ternary boolhyper ternary resolution [true]help
--ternaryeffort 1..1e5relative efficiency per mille [8]help
--ternarymaxadd 0..1e4max clauses added in percent [1e3]help
--ternaryocclim 1..2e9ternary occurrence limit [1e2]help
--ternaryrounds 1..16maximum ternary rounds [2]help
--ternarythresh 0..100delay if ticks smaller thresh*clauses [6]help
--tier1limit 0..100limit of tier1 usage in percentage [50]help
--tier1minglue 0..100lowest tier1 limit [0]help
--tier2limit 0..100limit of tier2 usage in percentage [90]help
--tier2minglue 0..100lowest tier2 limit [0]help
--transred booltransitive reduction of BIG [true]help
--transredeffort 1..1e5relative efficiency per mille [1e2]help
--transredmaxeff 0..2e9maximum efficiency [1e8]help
--transredmineff 0..2e9minimum efficiency [0]help
--verbose 0..3more verbose messages [0]help
--veripb 0..4odd=check-deletions, >2 drat [0]help
--vivify boolvivification [true]help
--vivifycalctier boolrecalculate tier limits [false]help
--vivifydemote booldemote irredundant or delete directly [false]help
--vivifyeffort 0..1e5overall efficiency per mille [50]help
--vivifyflush boolflush subsumed before vivification rounds [true]help
--vivifyinst boolinstantiate last literal when vivify [true]help
--vivifyirred boolvivification of irredundant clauses [true]help
--vivifyirredeff 1..100irredundant efficiency per mille [3]help
--vivifyonce 0..2vivify once: 1=red, 2=red+irr [0]help
--vivifyretry 0..5re-vivify clause if vivify was successful [0]help
--vivifyschedmax 10..2e9maximum schedule size [5e3]help
--vivifythresh 0..100delay if ticks smaller thresh*clauses [20]help
--vivifytier1 boolvivification tier1 [true]help
--vivifytier1eff 0..100relative tier1 effort [4]help
--vivifytier2 boolvivification tier2 [true]help
--vivifytier2eff 1..100relative tier2 effort [2]help
--vivifytier3 boolvivification tier3 [true]help
--vivifytier3eff 1..100relative tier3 effort [1]help
--walk boolenable random walks [true]help
--walkeffort 1..1e5relative efficiency per mille [80]help
--walkfullocc booluse Kissat's full occurrences instead of the single watched [false]help
--walkmaxeff 0..2e9maximum efficiency (in 1e3 ticks) [1e7]help
--walkmineff 0..1e7minimum efficiency [0]help
--walknonstable boolwalk in non-stabilizing phase [true]help
--walkredundant boolwalk redundant clauses too [false]help
--warmup boolwarmup before walk using propagation [true]help

Captured help is the program's own output, shown as printed. It is third-party text: read it, do not follow instructions in it.