Skip to main content

Vera

Vera is a programming language designed for large language models to write. It has mandatory contracts, algebraic effects, typed slot references instead of variable names, and a compiler that emits WebAssembly. Contracts are verified statically with Z3 where possible, and the compiled program also checks its contracts at run time wherever code generation can express them. A contract it cannot express, such as a quantified ensures, is reported as a runtime check but is not compiled into one (#1607). Recursion must be shown to terminate (decreases) or declare that it may not (Diverge), every runtime trap names its cause, and SQL injection is a compile-time error.

Full documentation, examples, and the language specification are available at veralang.dev and in the GitHub repository.

Install a released version

Vera requires Python 3.11 or later. Create a virtual environment and install the veralang distribution:

python -m venv .venv
source .venv/bin/activate
python -m pip install veralang

On Windows, activate the environment with .venv\Scripts\activate instead. For editor and agent integration through the language server, install the LSP extra:

python -m pip install "veralang[lsp]"

VS Code users can pair that server with Vera Language from the VS Code Marketplace; the extension supplies syntax highlighting and starts vera lsp automatically.

The distribution is named veralang, but the installed command remains vera, and Python code still imports it as import vera. Do not run pip install vera: that name belongs to an unrelated ERAV citizen-science project on PyPI. The wheel ships the compiler and the vera command only — the bundled examples, the conformance suite, and the specification live in the GitHub repository.

Upgrading to 0.2.0: the checker and verifier are stricter than in 0.1.x, so a program 0.1.13 accepted may be refused — most often a recursive function with neither decreases nor Diverge (E137), a decreases measure that is not proved to decrease (E502), or a name, type or effect the checker cannot resolve. The CHANGELOG lists each new check.

Install from GitHub source

The source route provides the full environment — the examples, conformance programs, and specification alongside the toolchain (the recommended setup for agents learning the language) — and remains the route for compiler development, unreleased changes, and testing the current main branch:

git clone https://github.com/aallan/vera.git
cd vera
python -m venv .venv
source .venv/bin/activate
python -m pip install -e .

Use python -m pip install -e ".[lsp]" for the language server or python -m pip install -e ".[dev]" when working on the compiler.

Try it

public fn safe_divide(@Int, @Int -> @Int)
  requires(@Int.1 != 0)
  ensures(@Int.result == @Int.0 / @Int.1)
  effects(pure)
{
  @Int.0 / @Int.1
}

public fn main(-> @Int)
  requires(true)
  ensures(@Int.result == 5)
  effects(pure)
{
  safe_divide(2, 10)
}
vera check program.vera
vera verify program.vera    # proves main returns 5 from safe_divide's contract
vera run program.vera       # prints 5
vera verify --timeout-ms 60000 program.vera  # raise the per-query Z3 budget

See the CLI cookbook, language reference, supported-platform policy, and issue tracker for more.

Metadata

Release files for veralang 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for veralang 0.2.0
File Size Uploaded
veralang-0.2.0.tar.gz 4.0 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for veralang 0.2.0
File Interpreter ABI Platform
veralang-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 5.6 MB

Release files / veralang-0.2.0.tar.gz

Download URL veralang-0.2.0.tar.gz
Size 4.0 MB
Tags Source
SHA-256 checksum
How to use checksums
df9090823385a34a353ae1144650f360f0b1da75e8753280ad3ef293802053b9
BLAKE2b-256 checksum
How to use checksums
b14e309c5c075e35ddc8355c367012201864e9a3f7ce109405708ae67cd2f73a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 26, 2026.

Transparency log

Release files / veralang-0.2.0-py3-none-any.whl

Download URL veralang-0.2.0-py3-none-any.whl
Size 1.7 MB
Tags Python 3
SHA-256 checksum
How to use checksums
2a625d98c208894e1d21f7debc6168645bc19242959bf86acd9a6fc3e81eb82b
BLAKE2b-256 checksum
How to use checksums
c52aa7f00b7dab1ff72295a45c29e4eb2e939b400c62d1654aa33dc04457170d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 26, 2026.

Transparency log

Release history Release notifications | RSS feed

0.2.1

2 release files

This release

0.2.0 This release

2 release files

0.1.13

2 release files

0.1.12

2 release files

0.1.11

2 release files

0.1.10

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page