KinoAtpClient
Livebook Smart Cells for atp_client — a
unified frontend over four automated theorem prover backends:
- SystemOnTPTP — the public
tptp.orgHTTP form API. - StarExec — self-hosted StarExec deployments.
- Isabelle —
isabelle serverinstances viaisabelle_elixir. - LocalExec — a locally installed TPTP-compliant prover binary
(E, Vampire, …) invoked through
Port.open/2.
Two cells ship in this package:
ATP Solver — Monaco-backed TPTP editor with a backend mode switch. Live linting via
AtpClient.Lint.analyze/2; output renders per backend (raw prover text for SoTPTP, SZS badge for StarExec/LocalExec, per-lemma table for Isabelle).Isabelle works zero-config when the
isabelleexecutable is onPATH(orISABELLE_TOOLis set):KinoAtpClient.IsabelleRuntimeauto-spawns a local server, opens oneHOLsession, loads the bundledTPTP.thy, and reuses both across solves. Nohost,port,password, or sharedlocal_dirto configure.ATP Backend Configuration — schema-driven form built from each backend's
AtpClient.Config.Fieldlist. Fields are grouped into Connection / Defaults / Advanced sections; a Verify button calls the backend'sverify/1callback so misconfiguration surfaces immediately. Generated source usesApplication.put_env/3so subsequent cells in the notebook pick up the new settings.
Installation
def deps do
[
{:kino_atp_client, "~> 0.5"}
]
end
Usage
Add KinoAtpClient to a Livebook:
Mix.install([{:kino_atp_client, "~> 0.5"}])
Both Smart Cells then appear in the cell picker. Insert an "ATP Backend Configuration" cell first to wire credentials, then one or more "ATP Solver" cells to run TPTP problems against the configured backends.
See examples/demo.livemd for a worked example.