Full Flag Specification

May 11, 2026 ยท View on GitHub

This document captures the current command-line and YAML configuration surface accepted by kepler-formal.

The stable top-level overview remains in README.md. The SEC-specific flag surface is documented separately in sec-flags-spec.md. SEC is still under construction, so that page describes the current implementation rather than a frozen contract.

Binary flags

FlagMeaning
-verilogUse Verilog Format.
-naja_ifUse naja-if format.
--help, -hPrint usage and exit.
--config <file>, -c <file>Load a YAML config file. If present anywhere on the CLI, YAML parsing takes precedence over the rest of the arguments.
--design1 <file...>Explicit source list for design 1 in multi-file Verilog mode.
--design2 <file...>Explicit source list for design 2 in multi-file Verilog mode.
--liberty <file...>, --lib <file...>Liberty library files.
--verilog_preprocessingEnable preprocessing for Verilog inputs.
--compactPer-PO analysis is skipped in case the design is different.
--report-skipped-posEmit skipped-PO reports in the current working directory.

YAML config flags

KeyTypeMeaning
formatstringInput format[verilog, naja_if]. If omitted, the implementation defaults to verilog.
input_pathslistRequired for normal runs. Accepts either [design0, design1] or [[design0_file...], [design1_file...]]. The nested form is for multi-file Verilog.
liberty_fileslist[string]Liberty libraries loaded through SNLLibertyConstructor.
py_tech_fileslist[string]Python primitive loaders loaded through SNLPyLoader.
verilog_preprocessingboolEnable preprocessing for Verilog inputs.
log_levelstringdebug and info are handled explicitly. Other values currently fall back to info.
log_filestringOutput path for the miter log file. If omitted, the tool writes miter_log_<n>.txt in the current working directory.
use_scopesboolEnable scoped verification for naja_if inputs.
clean_scopesboolClean extracted scopes before scoped verification. Used with use_scopes.
cnf_exportboolEnable CNF export.
cnf_export_pathstringOutput path for CNF export. Defaults to miter.cnf, or miter_<scope>.cnf in scoped naja_if mode.
po_cnf_exportboolEnable per-primary-output CNF export for each compared top.
po_cnf_export_pathstringOutput directory for per-PO CNF export. Defaults to po_cnfs, or po_cnfs_<scope> in scoped naja_if mode.
compact_modeboolSame behavior as --compact.
report_skipped_posboolSame behavior as --report-skipped-pos.
solverstringSAT solver selection. Supported values: kissat, glucose. If omitted, the implementation defaults to kissat.

Example:

format: verilog
input_paths:
  - [design0_part1.v, design0_part2.v]
  - [design1_part1.v, design1_part2.v]
liberty_files:
  - library_file0.lib
  - library_file1.lib
py_tech_files:
  - primitives.py
verilog_preprocessing: true
solver: kissat
compact_mode: true
report_skipped_pos: true
cnf_export: true
cnf_export_path: ./miter.cnf
po_cnf_export: true
po_cnf_export_path: ./po_cnfs