Quickstart

August 7, 2026 ยท View on GitHub

From a clean checkout with Docker available, run:

docker build -t aver-one-command . && docker run --rm aver-one-command

That one command builds a local image and then runs the image's default smoke test. The Dockerfile also runs the same smoke test while building the image, so the build fails before producing a usable image if either step regresses.

The first build downloads roughly 1-2 GB of Docker layers, Rust crates, Lean, and Dafny, and can take tens of minutes. Later builds are much smaller when Docker and Cargo caches are warm.

Apple Silicon warning: this image is currently linux/amd64 only because Dafny 4.11.0 publishes the Ubuntu x64 asset used here, but not a Linux ARM64 asset. Docker Desktop runs the image under qemu, so both the first build and the smoke test are substantially slower than on native linux/amd64.

The image pins:

  • Rust 1.95.0
  • Lean toolchain leanprover/lean4:v4.32.2
  • Dafny 4.11.0 (dafny-4.11.0-x64-ubuntu-22.04.zip)

The Rust build is a debug build. That keeps the local quickstart bounded; release LTO is intentionally left out of this Docker path.

What It Runs

The smoke test runs:

aver run examples/core/hello.av
aver proof examples/formal/validated_wrapper_law.av --backend lean --check -o /tmp/aver-proof-smoke-run
aver compile examples/certification/add_one.av --target wasm-gc --certify -o /tmp/aver-cert-smoke-run
aver-cert check /tmp/aver-cert-smoke-run/add_one.wasm /tmp/aver-cert-smoke-run/cert

The first command executes the hello example on the Aver VM.

The second command exports examples/formal/validated_wrapper_law.av to Lean and asks lake build to re-check the generated theorem on the Lean kernel. The checked law is checkedDiv.returnsCore: when the divisor is nonzero, the error-checking wrapper returns Result.Ok(coreDiv(a, b)). The check is strict: the default budgets allow no Lean build errors and no residual sorry.

The last two commands compile a tiny wasm-gc function with an Artifact Behavioral Certificate and run the faster developer preflight. Its success word is CHECKED, not CERTIFIED; the Docker smoke deliberately does not pretend to be a release gate.

Full Certificate Follow-Up

Run the strict whole-closure replay in a one-off container:

docker run --rm aver-one-command sh -c '
  rm -rf /tmp/aver-cert-verify &&
  aver compile examples/certification/add_one.av --target wasm-gc --certify -o /tmp/aver-cert-verify &&
  aver-cert verify /tmp/aver-cert-verify/add_one.wasm /tmp/aver-cert-verify/cert
'

Only this command may print CERTIFIED. It is intentionally slower because it adds leanchecker --fresh over the complete imported closure. See the certificate guide for the exact guarantee and trust boundary.

CI

No Docker CI job is wired for this quickstart. The image downloads and materializes three toolchains, including Lean and Dafny, and is kept as a manual verification path unless a later CI environment can show it adds less than 10 minutes with no flake risk.