AmateurB

Embedding formal methods in Clojure since 2016.

Easy

The B method is right there, as a library. So is a constraint solver and animator.

Your DSL

Create your own abstractions that you need for your domain.

Create Tools

Whether you want to generate specifications from data or transform existing machines, lisb provides you the power of Clojure for meta-programming.

Get Started

  1. Install Leiningen or Clojure CLI
  2. Add lisb to your dependencies:
  3. Check out some examples and tutorials, and have at it!

Quick Start Guide

user=> (use 'lisb.core 'lisb.translation.util)
user=> (eval-ir-formula
         (b (and (member? :x (range 101 200))
            (exists [:y] (= :x (* :y :y))))))
{"x" 121, "y" -11}