tl;dr: online Alloy reference here.

If you’ve read this blog at all you probably know I’m a big fan of Alloy. It’s a simple, powerful formal method whose entire syntax fits in just two pages. You can learn it in a day and be productive in two. And it can be used to model everything from package management to database migrations to authorization systems.

Two years ago I was invited to the Workshop on the Future of Alloy. There I argued that the biggest barrier to Alloy adoption wasn’t technological but social: in order to learn it, you have to buy the book. While the book is excellent, that’s also incredibly inconvenient for most people. There needs to be a convenient and free way to learn Alloy.

Which is why I’m pleased to announce the first draft of the online Alloy reference.

It covers language syntax, all of the extant tooling, useful techniques to write better specs, and how to fix common issues. It assumes some basic knowledge of Alloy that you can get at the site or by using this tutorial.

This is not yet official documentation. It’s an incomplete first draft and I still need feedback by other people on the Alloy board. Nonetheless I’m still very proud of it and think that even in its current state it will help people learn and use Alloy.

And of course I welcome any feedback, corrections, or critique. You can share them all at the Github repo. Enjoy!