The yices-painless package

[Tags: bsd3, library]

This library defines an embedded language in Haskell for programming the Yices SMT solver.

Yices is an efficient SMT solver that decides the satisfiability of arbitrary formulas containing uninterpreted function symbols with equality, linear real and integer arithmetic, scalar types, recursive datatypes, tuples, records, extensional arrays, fixed-size bit-vectors, quantifiers, and lambda expressions. Yices also does MaxSMT (and, dually, unsat cores) and is competitive as an ordinary SAT and MaxSAT solver.

The embedded language embeds both terms and types into Haskell, via a typed higher-order abstract syntax representation. Propositions in the embedding are represented as (typed) pure expressions.

Solution variables in the proposition (notionally, free variables) are bound an the outermost lambda term. Propositions constructed from logical primitives can then be executed by the solver to yield a satisfying assignment to those free variables in the proposition.

More information about Yices:

Low and medium-level bindings to the Yices C API are also provided. The medium-level bindings add significant type and resource safety to that which the C API provides.


Properties

Versions0.1, 0.1.1, 0.1.2
Dependenciesbase (>3 && <5), containers (>=0.2), pretty, strict-concurrency, vector (>=0.7)
LicenseBSD3
CopyrightDon Stewart 2010.
AuthorDon Stewart
Maintainerdons@galois.com
CategoryMath, Theorem Provers, Formal Methods
Home pagehttp://code.haskell.org/~dons/code/yices-painless
Upload dateSat Jan 15 21:48:10 UTC 2011
Uploaded byDonaldStewart
Downloads236 total (24 in last 30 days)

Modules

Flags

NameDescriptionDefault
yices-dynamicEnabled

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Maintainers' corner

For package maintainers and hackage trustees