Order of precedence
When configurations disagree, the kernel’s verdict is the first match in this order:COUNTEREXAMPLE → UNSAFE → OVERFLOW → VACUOUS → TIMEOUT → UNSUPPORTED → BOUNDED → PROVED
In the configs column of the terminal table, 4/4 means four of four configurations passed, and 0/1 means the only one failed.
Failure ids
Every FAILED pair gets a stable id such asF-0001. The same (file, kernel, Spec Key, kind) keeps its id across runs. Use the id with:
theformalera explain F-0001: witnesses, failing region, suspect line;theformalera repro F-0001 -o repro.py: a PyTorch script that runs the kernel on the GPU with that input;tfe.load_case("F-0001")in your own tests.
What a FAILED verdict tells you
Levels
--level (or [verify] level) sets how hard the engine tries:
Whether a
BOUNDED result passes is decided by the policy, not by the level: set [policy] require_level = "bounded", or list the files under allow_bounded_on.
Cached results
Results are cached by lowered-IR hash, spec hash, engine version, assumptions and binding. Changing only comments or formatting does not change the IR, so it does not trigger a new proof. Thetime column then shows cached.
PASS and FAILED never depend on the lemma library, so they are never recomputed. An UNKNOWN records the lemmas it was tried with, and is retried when new lemmas for its node appear.