Quivers
A typed functional probabilistic programming language with a PyTorch runtime.
Tutorial · Examples · Language reference · Python API
Quivers is a typed probabilistic programming language for compositional models. A QVR source file is parsed, checked, and lowered to one intermediate representation used by the PyTorch runtime, editor tooling, and transpilers. The Python API provides variational and Monte Carlo inference, while the compiler emits models for eleven probabilistic programming systems.
A model in QVR
This stochastic GRU language-model step draws update and reset gates, updates the hidden state, and scores the observed next token.
object Token : FinSet 256
object Embedded : Real 64
object Hidden : Real 128
morphism gate_z, gate_r : Embedded * Hidden -> Hidden ~ LogitNormal
morphism lm_head : Hidden -> Token ~ Categorical
program gru_step(x_t, h_prev) : Embedded * Hidden -> Token
sample z <- gate_z(x_t, h_prev)
sample r <- gate_r(x_t, h_prev)
let reset_hidden = r * h_prev
sample h_candidate <- Normal(reset_hidden, 0.5)
let h = (1.0 - z) * h_prev + z * h_candidate
observe next_token <- lm_head(h)
return next_token
export gru_step
Install Quivers, download the full recurrent model, and check it through the command line:
pip install quivers
curl -LO https://raw.githubusercontent.com/FACTSlab/quivers/main/docs/examples/source/gru_lm.qvr
qvr check gru_lm.qvr
The tutorial starts with the core language and inference workflow. The examples gallery includes hierarchical and state-space models, mixture models, neural language models, formal grammars, and structural autoencoders.
Documentation
Installation and editors
Quivers requires Python 3.14 or later. Install optional interactive and editor support with:
pip install 'quivers[repl,lsp]'
The repository includes extensions for
VS Code and Cursor
and Zed.
Both provide immediate syntax highlighting; qvr-lsp adds typed diagnostics,
hover, definitions, references, completion, formatting, and semantic tokens.
Contributing
See CONTRIBUTING.md. Issues and pull requests are welcome at github.com/FACTSlab/quivers.
Acknowledgments
This project was developed by Aaron Steven White at the University of Rochester with support from the National Science Foundation (NSF-BCS-2237175 CAREER: Logical Form Induction, NSF-BCS-2040831 Computational Modeling of the Internal Structure of Events). It was architected and implemented with the assistance of Claude Code.
License
MIT. See LICENSE.
Metadata
Release files for quivers 0.22.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| quivers-0.22.0.tar.gz | 9.7 MB | Details |
Built distributions (wheels)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| quivers-0.22.0-cp314-cp314-win_amd64.whl | CPython 3.14 | CPython 3.14 | Windows x86-64 | Details |
| quivers-0.22.0-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl | CPython 3.14 | CPython 3.14 | Linux glibc 2.5+ x86-64, Linux glibc 2.28+ x86-64 | Details |
| quivers-0.22.0-cp314-cp314-macosx_11_0_arm64.whl | CPython 3.14 | CPython 3.14 | macOS 11.0+ ARM64 | Details |
Total release size: 31.2 MB
Release files / quivers-0.22.0.tar.gz
| Download URL | quivers-0.22.0.tar.gz |
|---|---|
| Size | 9.7 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
df7064e6693a4385453789a01d37b49a2842ebb46a7930836b394619ad34c8ab
|
|
BLAKE2b-256 checksum How to use checksums |
aa4b3313e263ef277f07c373a37de27089870fbfd4ebde31e8b19fe835848514
|
| 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 23, 2026.
Transparency logRelease files / quivers-0.22.0-cp314-cp314-win_amd64.whl
| Download URL | quivers-0.22.0-cp314-cp314-win_amd64.whl |
|---|---|
| Size | 7.7 MB |
| Tags | CPython 3.14 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
bec58d745ed7a483087db098dce4fdc7587734fc60d2f6160ad19fa81ce4ba37
|
|
BLAKE2b-256 checksum How to use checksums |
affaed1ae7fac3c0cd946271c4a48580a8d5a9ba3e5d9886686d23f529b50b39
|
| 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 23, 2026.
Transparency logRelease files / quivers-0.22.0-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
| Download URL | quivers-0.22.0-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl |
|---|---|
| Size | 6.9 MB |
| Tags | CPython 3.14 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64 |
|
SHA-256 checksum How to use checksums |
46323bd1e55d4b6db353d2de9bd19d1cd64fad887f15f57d67802ec471369261
|
|
BLAKE2b-256 checksum How to use checksums |
d8eaf9d0834a9158ffccfee76df42aa8443f2189f2f820d837df40af062cbac6
|
| 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 23, 2026.
Transparency logRelease files / quivers-0.22.0-cp314-cp314-macosx_11_0_arm64.whl
| Download URL | quivers-0.22.0-cp314-cp314-macosx_11_0_arm64.whl |
|---|---|
| Size | 6.9 MB |
| Tags | CPython 3.14 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
6da775ae864773380158621d955b7350cd2f0fe5b77df521d113271dea821155
|
|
BLAKE2b-256 checksum How to use checksums |
99e0b6af54eeacfa887957755775efc58511ba9c9266369eb48e29523f068658
|
| 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 23, 2026.
Transparency log