Command line options are split into several categories. Each table below describes options of one category.
You can obtain a similar information directly from JBMC tool by running it with the option --help.
    Program instrumentation options
    | Option | Description | 
    | --bounds-check | enable array bounds checks | 
    | --pointer-check | enable pointer checks (always enabled for Java) | 
    | --memory-leak-check | enable memory leak checks | 
    | --div-by-zero-check | enable division by zero checks | 
    | --signed-overflow-check | enable signed arithmetic over- and underflow checks | 
    | --unsigned-overflow-check | enable arithmetic over- and underflow checks | 
    | --pointer-overflow-check | enable pointer arithmetic over- and underflow checks | 
    | --conversion-check | check whether values can be represented after type cast | 
    | --undefined-shift-check | check shift greater than bit-width | 
    | --float-overflow-check | check floating-point for +/-Inf | 
    | --nan-check | check floating-point for NaN | 
    | --no-built-in-assertions | ignore assertions in built-in library | 
    | --no-assertions | ignore user assertions | 
    | --no-assumptions | ignore user assumptions | 
    | --error-label label | check that label is unreachable | 
    | --cover CC | create test-suite with coverage criterion CC | 
    | --mm MM | memory consistency model for concurrent programs | 
    | --reachability-slice | remove instructions that cannot appear on a trace from entry point to a property | 
    | --reachability-slice-fb | remove instructions that cannot appear on a trace from entry point through a property | 
    | --full-slice | run full slicer (experimental) | 
    Java Bytecode frontend options
    | Option | Description | 
    | --classpath dir/jar | set the classpath to load additional jar files or class files | 
    | --main-class class-name | set the name of the main class | 
    | --no-core-models | don't load internally provided models for core classes in the Java Class Library | 
    | --java-assume-inputs-non-null | never initialize reference-typed parameter to the entry point with null | 
    | --java-throw-runtime-exceptions | make implicit runtime exceptions explicit (propagate them instead of checking whether they occur) | 
    | --java-max-input-array-length N | limit input array size to <= N | 
    | --java-max-input-tree-depth N | object references are (deterministically) set to null in the object | 
    | --java-max-vla-length | limit the length of user-code-created arrays | 
    | --java-cp-include-files | regexp or JSON list of files to load (with '@' prefix) | 
    | --lazy-methods | only translate methods that appear to be reachable from the --function entry point or main class Note --show-symbol-table/goto-functions/properties output will be restricted to loaded methods in this case | 
    | --lazy-methods-extra-entry-point METHODNAME | treat METHODNAME as a possible program entry point for the purpose of lazy method loading A '.*' wildcard is allowed to specify all class members | 
    | --java-unwind-enum-static | try to unwind loops in static initialization of enums | 
    | --symex-driven-lazy-loading | only load functions when first entered by symbolic execution Note --show-symbol-table/goto-functions/properties output will be restricted to loaded methods in this case, and only output after the symex phase | 
    BMC options
    | Option | Description | 
    | --paths | explore paths one at a time | 
    | --program-only | only show program expression | 
    | --show-loops | show the loops in the program | 
    | --depth nr | limit search depth | 
    | --unwind nr | unwind nr times | 
    | --unwindset L:B,... | unwind loop L with a bound of B (use --show-loops to get the loop IDs) | 
    | --show-vcc | show the verification conditions | 
    | --slice-formula | remove assignments unrelated to property | 
    | --unwinding-assertions | generate unwinding assertions | 
    | --partial-loops | permit paths with partial loops | 
    | --no-pretty-names | do not simplify identifiers | 
    | --graphml-witness filename | write the witness in GraphML format to filename | 
    Backend options
    | Option | Description | 
    | --object-bits n | number of bits used for object addresses | 
    | --dimacs | generate CNF in DIMACS format | 
    | --beautify | beautify the counterexample (greedy heuristic) | 
    | --localize-faults | localize faults (experimental) | 
    | --smt1 | use default SMT1 solver (obsolete) | 
    | --smt2 | use default SMT2 solver (Z3) | 
    | --boolector | use Boolector | 
    | --mathsat | use MathSAT | 
    | --cvc4 | use CVC4 | 
    | --yices | use Yices | 
    | --z3 | use Z3 | 
    | --refine | use refinement procedure (experimental) | 
    | --refine-strings | use string refinement (experimental) | 
    | --string-printable | add constraint that strings are printable (experimental) | 
    | --string-max-length | add constraint on the length of strings for the string solver | 
    | --string-max-input-length | add constraint on the length of input strings | 
    | --max-nondet-string-length n | bounds the maximum length n of non-deterministic strings (default: unrestricted) | 
    | --outfile filename | output formula to given file | 
    | --arrays-uf-never | never turn arrays into uninterpreted functions | 
    | --arrays-uf-always | always turn arrays into uninterpreted functions |