aver check
Static checks
Types, descriptions, module intent, effect propagation, and diagnostics.
A programming language for code written with AI.
Source language · Bytecode VM · Rust · WebAssembly GC · Lean 4.32
Function descriptions, effect sets, verify blocks, architecture decisions, and certificate obligations are language constructs. The wasm-gc backend can emit behavioral certificates checked by the standalone verifier.
Agent referencellms.txt ↗
? intent! effectsverifyartifact cert01 / SOURCE
A complete pure module: public API, function descriptions, concrete cases, and a law checked over nine input pairs.
module Cart ="Cart operations and the total they preserve." [cartTotal, combine] [] fn cartTotal(items: List<Int>) -> Int? "Sum the prices in a cart."match items[] -> 0[price, ..rest] -> price + cartTotal(rest) fn combine(a: List<Int>, b: List<Int>) -> List<Int>? "Put cart b's items after cart a."match a[] -> b[x, ..rest] -> List.prepend(x, combine(rest, b)) verify combinecombine([], [1, 2]) => [1, 2]combine([3, 4], [1, 2]) => [3, 4, 1, 2] verify cartTotal law combinePreservesTotalgiven a: List<Int> = [[], [5], [3, 4]]given b: List<Int> = [[], [10], [1, 2]]cartTotal(combine(a, b)) => cartTotal(a) + cartTotal(b)intent states the purpose, exposes names the public API, and effects [] keeps it pure.
Both typed functions carry a ? description and exhaust lists with explicit patterns.
The ordinary verify block fixes empty and non-empty behavior for combine.
Three values for each input produce nine checked pairs for combinePreservesTotal.
Read the source Open cart.av ↗
Give it to an agent Read llms.txt ↗
02 / DESIGN POSITION
The language does not include the following constructs; each has an explicit replacement.
null
Option<T> with explicit Some and None.
Result<T, E>; errors stay in signatures and values.
if / else
Exhaustive match; a missing case is a compiler concern.
Values do not change behind the reader’s back.
Top-level functions; inputs are visible rather than captured.
Independent products express parallel work without hidden scheduling syntax.
Recursion, pattern matching, and tail-call optimization.
No decorators, reflection, or implicit behavior.
03 / TOOLCHAIN
The main source-analysis and build commands, in order.
aver check
Types, descriptions, module intent, effect propagation, and diagnostics.
aver verify
Colocated examples and laws become executable regression evidence.
aver proof
Lean and Dafny backends carry selected laws beyond example checking.
aver compile
Deploy through Rust or WebAssembly; certify supported wasm-gc artifacts.
effect-violation ‘charge’ calls ‘Http.post’ but does not declare it.
hint / add ! [Http.post] to the function contract
Open example ↗
04 / ABC
A certificate states what selected exports of one WebAssembly module compute. Verification binds accepted claims to the supplied bytes and to a checker-owned statement schema.
BEHAVIORAL PROOF / FAIL CLOSED
The .wasm file passed to aver-cert is validated, hashed, and encoded for Lean.
The checker owns the statement schema, soundness wall, toolchain, and fresh witness.
Unsupported exports are declined explicitly; no claim is made about them.
aver compile app.av --target wasm-gc --certify -o out/aver-cert verify out/app.wasm out/certPrecise limit: this is behavioral proof, not a signature or reproducible-build attestation.
05 / BUILD LEDGER
Eight browser programs emitted directly from Aver source.
Size bars are relative to the largest artifact in this set. Modern WebAssembly GC browser required.
06 / PROJECT NOTE
“This is not a language optimized for humans to type by hand all day. It is optimized for AI to generate code that humans can inspect, constrain, test, and ship.”
— Aver README
07 / INSTALL
Install the released compiler from crates.io, then run and verify the bundled example.
--features wasm enables WebAssembly GC and ABC production. Independent ABC verification uses aver-cert and requires Elan for its pinned Lean 4.32 toolchain.
cargo install aver-lang --features wasmcargo install aver-certaver run examples/core/hello.avaver verify examples/core/hello.av