summaryrefslogtreecommitdiff
path: root/yices-painless.cabal
blob: 2aa8722374f7284e3a2dd84a6a57eb62ebadc912 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
Name:                yices-painless
Version:             0.1.2
Synopsis:            An embedded language for programming the Yices SMT solver
Description:         
    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, functions 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.
    Uninterpreted functions may be introduced via variables as well.
    .
    More information about Yices:
    .
    * <http://yices.csl.sri.com/>
    .
    The primary interface is via the EDSL, "Yices.Painless.Language",
    however, low and medium-level bindings to the Yices C API are also provided
    ("Yices.Painless.Base.C" and "Yices.Painless.Base"). The
    medium-level bindings add significant type and resource safety to
    that which the C API provides.
    .
    Documentation for this package is available:
    .
    * <http://www.galois.com/~dons/yices-painless/>
    .

Homepage:            http://code.haskell.org/~dons/code/yices-painless
License:             BSD3
License-file:        LICENSE
Author:              Don Stewart
Maintainer:          dons@galois.com
Copyright:           Don Stewart 2010.
Category:            Math, Theorem Provers, Formal Methods
Build-type:          Simple
Cabal-version:       >=1.2

Flag yices-dynamic
    default: True

Library
    Exposed-modules: 
        Yices.Painless.Language

        Yices.Painless.Base
        Yices.Painless.Base.C

        Yices.Painless.Type
        Yices.Painless.Tuple
  
    ghc-options: -Wall

    Build-depends:       base > 3 && < 5,
                         pretty,
                         strict-concurrency,
                         containers >= 0.2,
                         vector     >= 0.7

    Build-tools:         hsc2hs
    Extensions:          ForeignFunctionInterface
    includes:            yices_c.h
    extra-libraries:     yices

    if flag(yices-dynamic)
        extra-libraries:   gmp