Skip to content

Configuration ​

Fault reads configuration from ~/.faultrc at startup. You can manage this file with the fault config command or edit it directly — it's a simple key=value format with # comments.

Using fault config ​

bash
# View current configuration
fault config

# Set solver options
fault config --solvercmd=z3 --solverarg=-in

# Set the base directory for relative file paths
fault config --fault-host=/home/user/models

Running fault config with no arguments prints the current configuration.

Configuration Reference ​

SOLVERCMD ​

The command used to invoke the SMT solver.

SOLVERCMD=z3

Required for model checking. If unset, fault returns an error when run in model mode. See Custom Solvers for other solver options.

SOLVERARG ​

The argument passed to the solver to make it read SMT from stdin.

SOLVERARG=-in

Required alongside SOLVERCMD.

FAULT_HOST ​

The base directory that Fault uses to resolve file paths. When set, it affects three cases:

  • Relative paths — any path that doesn't start with / or ~/ is resolved relative to FAULT_HOST
  • .. segments — each .. walks up from FAULT_HOST, not from the current working directory
  • ~ within a path — a ~ that appears mid-path (not at the start) is resolved relative to FAULT_HOST rather than your home directory
# FAULT_HOST=

This setting is commented out by default. Set it if your models live in a central directory and you want to reference them with short relative paths:

bash
fault config --fault-host=/home/user/models

Leading ~/ at the start of a file path is always expanded to your home directory, regardless of FAULT_HOST.

Environment Variables ​

All ~/.faultrc settings can be overridden by environment variables of the same name. Environment variables take precedence over the config file.

bash
export SOLVERCMD="z3"
export SOLVERARG="-in"

This is useful for CI environments or when you need per-project solver settings without modifying your global config.