Skip to main content
Every (kernel, Spec Key) pair gets one verdict. When a kernel has several constexpr configurations, each is verified on its own and the kernel gets the worst of them.
UNKNOWN is never a PASS. When the engine cannot decide, it says so. One false PASS would destroy the value of every other one.

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 as F-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. The time 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.