Ask whether it passed the kernel
One call. No Lean toolchain, no dependencies, and an answer you can check without us.
sorry, no added axiom, or it does not pass.What this does not answer, and what verified means
It does tell you whether a mathematical claim was accepted by the Lean 4 kernel, which axioms the proof leaned on, and the sha256 of the compiled artifact so you can confirm the answer offline.
It does not reproduce a paper’s experiments. GPU nondeterminism, closed simulators and shifting datasets are a different problem and we make no claim on it.
verified is true or null, never false. Null means the compiled artifact is
absent at that commit — that is unknown, not false. We do not sell a true
we cannot back. And when a proof uses native_decide the level drops to
compiler-trusted, because the compiler enters the trusted base and hiding that
would be the whole game — which is why the count above is the kernel-standard one.
Install and ask
The client is a thin shell. It computes nothing — parsing, hashing and the dependency graph are done ahead of time by the Rust indexer, and this reads the answer.
Auditing something? Pin the commit. A vault that moves under you gives different answers to the same question.
Python is the only client verified live above. TypeScript and Rust clients cover the same calls and are in progress, not yet published.
The same answer, riding on a sealed moment
theorem() above always tells you whether the kernel accepted a claim. Every
certificate it returns also carries a seal field — not a fresh stamp
for that one query, but the TTTPS receipt for the moment this vault's currently-served
commit was itself admitted. Ask about two unrelated theorems at the same commit and you
get back the identical receipt_id, because it is the snapshot that is sealed,
not each answer inside it.
Check that receipt independent of us, the same way TTTPS's own verify endpoint does — no key, no account, no trust in this page required:
This is a different layer from the LangChain / LlamaIndex / Ragas integrations TTTPS ships for sealing general LLM and agent output — those seal what a model said; this seals the moment this vault's own snapshot was let in. The full install matrix for this SDK (Python published; TypeScript and Rust in progress) is also listed on the TTTPS API reference page, described there as the core oracle beneath those framework integrations.
What is in it
Sixteen filing domains, and under them the thing a directory listing cannot show: what rests on what. Every point below is a Lean module in the vault. Every line is an import — a dependency the kernel had to discharge before the module on the other end could compile. Nothing is typed by hand; the picture is read from the index at the commit the console below is serving.
Start with the domains. Tick one to open it, or search — the box reaches every module name and every claim at once. Pick a module and its theorems are fetched from the same endpoint you would call yourself, one request per name, so what you read here is what you would get back.
Prove your Lean
The other direction. Above, you ask the vault what it holds; here you hand it something. The order is the point: the kernel on your machine decides whether the proof stands, and only then does anything leave the room. We never run your Lean.
sorry and axiom in the source, runs your
lake, then reads what #print axioms actually says.The second step is the one worth reading twice. It calls the Lean toolchain already on your
machine and nothing else — our server can be switched off and it still returns a verdict.
Passing means the axiom list came back a subset of the standard three; a proof leaning on
native_decide is reported as compiler-trusted and the command stops
there rather than sealing something we would not stand behind.
The last step does not run Lean either. It re-hashes the bytes you send and refuses unless they are the bytes the receipt was sealed over, then opens a branch on the vault repository. Nobody at this end decides whether the mathematics is right; the kernel already did that on your machine, and a person still has to read the pull request before it merges.
That receipt is a real one, from this vault. Ask the same question the page asks and you get the same answer: /v1/verify?receipt_id=636cdc88d80db576941cfcfc. The source of the client is on GitHub — Helm-Protocol/kenosian-vault — because a tool that tells you what your kernel said is a tool you should be able to read.
Why the local check is a filter and not a gatekeeper
The verdict comes from your machine, so you could edit the file and print anything you like. That is fine, because nothing rests on it. Its whole value is that a failure is known before you open a pull request rather than after.
What decides a listing is the same kernel run again where you cannot touch it. It reads the
two things Lean itself says — the declaration uses 'sorry' warning and the
axiom list. It does not grep for the word: a comment reading “zero sorry” is prose.
It does not trust the exit code either, since a file whose only theorem is by sorry
compiles and exits 0.
The two seals answer different questions. The first says you had this at this time. The second says the kernel accepted it at this time. Collapsing them into one would suggest that sealing something makes it true, and sealing a false claim only records that the false claim existed.