[SMT-LIB] The SMCHR system version 1.0 released.
DUCK Gregory James
gregory at comp.nus.edu.sg
Mon Sep 30 05:41:11 EDT 2013
Hi,
Version 1.0 of the SMCHR system has been released. Download it from here:
http://www.comp.nus.edu.sg/~gregory/smchr/
The SMCHR system is a new SMT solver implementation that allows solvers to
be implemented in the Constraint Handling Rules (CHR) programming
language.
For example, we can encode the axioms for a partial order in CHR as follows:
leq(x, x) <=> true; // Reflexive
leq(x, y) /\ leq(y, x) ==> x = y; // Antisymmetric
leq(x, y) /\ leq(y, z) ==> leq(x, z); // Transitive
Saved to a file (e.g. leq.chr), this solver can be loaded into the SMCHR
system as follows:
$ ./smchr --solver leq.chr --solver eq
>From there we can test the satisfiability of formulae containing leq/2
constraints, e.g.
> leq(x, y) /\ leq(y, z) /\ (not leq(x, z) \/ (x != y /\ x = z))
UNSAT
In addition to CHR solvers, the SMCHR system supports several built-in
solvers including linear arithmetic, bounds propagation, union-find
equality, heaps, etc. More information and other examples are available
from the website.
Cheers,
-Greg.
More information about the SMT-LIB
mailing list