Releases: anomly-labs/invar
Release list
v0.1.17
Sentencepiece tokenisation now matches llama.cpp's space-prefix rule (Mistral / Llama-2 style vocabularies). Mistral-7B-Instruct verified under the exact profile: byte-identical across binaries, Go reference reproduces every row of its dump. Tokenizer conformance vectors for five models.
v0.1.16
Tokenisation is reproduced for sentencepiece vocabularies too (llama.cpp's algorithm): SmolLM2, Qwen2.5, Llama 3.2 and Gemma 3 all re-tokenise to the runtime's ids, so invar verify --reexec covers a receipt from prompt text to answer for all four families. Static Go verifier binaries attached.
v0.1.15
The reference implementation now also tokenises: chat template plus llama.cpp's pre-tokenisers and byte-level BPE reproduce the runtime's prompt ids for SmolLM2, Qwen2.5 and Llama 3.2, so invar verify --reexec checks a receipt from the certified prompt text to the certified answer with no llama.cpp code (needs regex and jinja2: pip install 'anomly-invar[reexec]'). Static Go verifier binaries attached.
v0.1.14
Elementwise verifier and matmul units cover the Gemma-3 graph end to end (Gemma receipt minted on a GPU: ALL ACCEPT on a CPU with --cross-deployment --spot-check --units --reexec). Documented invariance to batch size and CPU/GPU layer split.
v0.1.13
Four model families now verify under the exact profile on CPU and CUDA with bit-identical graphs and two independent reference implementations: SmolLM2, Llama 3.2, Qwen2.5 and Gemma 3 (QK-norms, post norms, GEGLU with a deterministic GELU, sliding-window RoPE bases). Reference re-execution keys sequence restarts on position 0 and handles chunked prompts. Spec draft 1.2 in docs/EXACT-PROFILE-SPEC.md.
v0.1.12
Third implementation of the exact-profile graph: go/crverify/cmd/invar-reexec replays a served worldline's dump (every layer, every logit) from the weights and token ids in seconds, with no llama.cpp and no numpy; invar verify --reexec uses it when on PATH. SmolLM2-1.7B verified. See docs/DETERMINISTIC-GRAPH.md.
v0.1.11
A reference implementation of the exact-profile graph in Python (no llama.cpp code) reproduces every activation row and every logit of a served worldline from the weights and token ids: invar verify --spot-check --reexec (needs numpy). New receipts certify warmup=off; dumps carry token ids and the per-layer rows needed to re-execute RMSNorm, RoPE, SwiGLU and residuals. See docs/DETERMINISTIC-GRAPH.md.
v0.1.10
Under the exact profile the whole graph is now bit-identical between an x86 CPU and an NVIDIA GPU: every activation row of every layer, every logit, the text (docs/DETERMINISTIC-GRAPH.md). Receipts minted on a GPU re-execute on a CPU with the same output digest: invar verify --cross-deployment. New receipts certify flash_attn=off.
v0.1.9
Exact profile on CUDA: llama-cpp-et's CUDA backend carries the exact-quire b-posit8 kernel (bit-identical to the CPU kernel; every matmul re-executed by the Python and Go verifiers). INVAR pins the compute device and offloaded layer count in the receipt. The block-scale rule is now integer-exact in all implementations. New: invar-statement (Go COSE_Sign1 verifier), docs/ARCHITECTURE.md.
INVAR v0.1.8 — verdicts, agreement, OpenPCC envelope
invar verify ... --verdict-out verdict.cose: the verifier's conclusion (worldline digest, per-entry verdicts, checks run incl. the spot-check challenge, summary) as a certified COSE_Sign1 signed by the verifier's software or TPM key; registrable in the transparency log; REJECT runs produce one too.invar scitt agree a.cose b.cose: independent verifiers (distinct keys) must reach the same per-entry verdicts on the same worldline — N-version verification across implementations, machines, or vendors.receipt.openpccon every signed response: an OpenPCC-shaped{type: ExecutionReceipt, data, signature}evidence piece;go/crverifyVerifyExecutionReceiptperforms the four client checks (certificate+chain, attestation-bundle digest + nonce, node key signature, prompt/output digests), tested on a real bound, signed worldline with five negative controls.- Go spot-check gains
-units(all 7 matmuls per layer, 6,720 rows in 0.20 s);verify --unitsuses it when present. - 265 offline unit assertions.