no theformalera.toml found (run theformalera init)
no theformalera.toml found (run theformalera init)
theformalera.toml in the current directory and its parents. Run them inside the project, or create the file with theformalera init.Qwen/Qwen3.8-27B@1.0.4 is not in the spec cache: run theformalera pull
Qwen/Qwen3.8-27B@1.0.4 is not in the spec cache: run theformalera pull
theformalera pull. If the Hub cannot serve that version either (not found in the mirror: …/1.0.4/package), the lock was written against a different Hub. Run theformalera pull --update to re-resolve it.downloaded package digest … does not match … (the lock pins a different package; refusing to continue)
downloaded package digest … does not match … (the lock pins a different package; refusing to continue)
theformalera pull --update deliberately and review the lock diff.runner local needs the verification engine
runner local needs the verification engine
pip install "theformalera[engine]", from the licensed index), or use --runner cloud.Lean 4 not found: install elan to check proofs locally
Lean 4 not found: install elan to check proofs locally
pull and local verification need lake. Install elan. The CLI also looks in ~/.elan/bin, so a shell without elan on its PATH still works.The first pull is slow or fills the disk
The first pull is slow or fills the disk
THEFORMALERA_MATHLIB at a workspace with Mathlib already built, so every package reuses it. In CI with runner = "cloud", use pull --no-build.cannot bind spec tensor x to a kernel parameter
cannot bind spec tensor x to a kernel parameter
x to a kernel argument by name. Add it to bind=, for example bind={"X_ptr": "x"}. theformalera spec show <key> lists the node’s tensor names.no launch grid (kernel-level annotations need grid=)
no launch grid (kernel-level annotations need grid=)
grid=("T", "cdiv(17408, BLOCK)"). Only launcher-level annotations may omit it.domain: T ∈ [1, 300000] widens the default domain [1, 262144]
domain: T ∈ [1, 300000] widens the default domain [1, 262144]
domain= may only narrow the model’s default shape domain. Use bounds inside it.attn.core is a per-layer node: write layers[*].attn.core
attn.core is a per-layer node: write layers[*].attn.core
embed, final_norm, lm_head) must not have one. See Spec Keys.annotation asks for …@1.1 but the lock pins 1.0.4
annotation asks for …@1.1 but the lock pins 1.0.4
[models] and run theformalera pull --update.The result is UNKNOWN · unsupported
The result is UNKNOWN · unsupported
detail and stuck_at in the JSON report, then rewrite, waive, or wait for the nightly retry.the last verification covered only kernels/x.py; run theformalera verify on the whole project before signing off
the last verification covered only kernels/x.py; run theformalera verify on the whole project before signing off
signoff needs a whole-project run, so that its coverage claims cover everything. Run theformalera verify with no paths and no --changed-only first.sign-off needs your confirmation to ship private lemmas (re-run with --yes)
sign-off needs your confirmation to ship private lemmas (re-run with --yes)
--yes if that is acceptable.cloud verification quota exhausted for this billing period
cloud verification quota exhausted for this billing period
--runner local or raise the quota.Conformance: cannot locate the decoder
Conformance: cannot locate the decoder
embed_tokens and layers at model.language_model, model, language_model, transformer, decoder or the root. Rename your modules to match, or use the adapter style with load_weights.Conformance passes at 1e-6 but fails at the default rtol
Conformance passes at 1e-6 but fails at the default rtol
half(), or dtype arguments built from strings. Agreement for a correct implementation is around 1e-15. If the difference is real, it is a real bug: an ε in the wrong place, for example, shows up at 1e-6.