This is a Nix "channel" with packages you can build.
To list available packages:
nix-env --description -qaPf . | sort
To build one, e.g. tlaps
:
nix-build . -A tlaps -o result
./result/bin/tlapm --config
For a slightly more stable experience, replace .
with ./stable.nix
in the
commands above. stable.nix
pins exact upstream dependencies for a
reproducible experience.
A few of my own projects:
caltac
, an opinionated set of Coq tactics.crash-safe-io
, a simple and high-quality library implementing crash-safe file operations in Java.ezpsl
, a language for modeling concurrent programs.many-smt
, an SMT-LIB portfolio solver.retry-forever
, for when failure isn't an option.
And a few open source things I use:
tlaps
, the TLA+ proof system. This is a newer and far more functional version than the one that ships with Nixpkgs. It includes:isabelle_2011
, which is the most recent version of Isabelle that works withtlaps
. This package is heavily patched:- heaps are discovered using the
$ISABELLE_PATH
environment variable, so they can live somewhere outside$HOME
- lots of functionality that
tlaps
does not need has been removed - fixes to compile with PolyML 5.9
- heaps are discovered using the
ls4
, which is used bytlaps
.ptl-to-trp-translator
, which is used bytlaps
. (TODO: compare with the one in the TLAPS source tree.)zenon
, a first-order logic solver.zipperposition
, a first-order logic solver.
- [
tlatools-complete
], a wrapper for the TLA+ tools that includes the community modules and TLAPS standard library. apalache
, a symbolic TLA+ checker. (TODO: my version is very old. Can I use the Nix flake in the Apalache repo?)nbdkit
, for userspace block devices on Linux.crosstool-ng
, which I use for cross-compiling to Raspberry Pi.