File: what4.cabal

package info (click to toggle)
haskell-what4 1.5.1-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,240 kB
  • sloc: haskell: 34,630; makefile: 5
file content (462 lines) | stat: -rw-r--r-- 10,631 bytes parent folder | download
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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
Cabal-version: 2.4
Name:          what4
Version:       1.5.1
Author:        Galois Inc.
Maintainer:    rscott@galois.com, kquick@galois.com
Copyright:     (c) Galois, Inc 2014-2023
License:       BSD-3-Clause
License-file:  LICENSE
Build-type:    Simple
Homepage:      https://github.com/GaloisInc/what4
Bug-reports:   https://github.com/GaloisInc/what4/issues
Tested-with:   GHC==8.6.5, GHC==8.8.4, GHC==8.10.7, GHC==9.0.2
Category:      Formal Methods, Theorem Provers, Symbolic Computation, SMT
Synopsis:      Solver-agnostic symbolic values support for issuing queries
Description:
  What4 is a generic library for representing values as symbolic formulae which may
  contain references to symbolic values, representing unknown variables.
  It provides support for communicating with a variety of SAT and SMT solvers,
  including Z3, CVC4, CVC5, Yices, Boolector, STP, and dReal.

  The data representation types make heavy use of GADT-style type indices
  to ensure type-correct manipulation of symbolic values.

data-files: solverBounds.config

Extra-source-files:
  test/responses/*.exp
  test/responses/*.rsp

Extra-doc-files:
  README.md
  CHANGES.md
  doc/README.md
  doc/implementation.md
  doc/bvdomain.cry
  doc/arithdomain.cry
  doc/bitsdomain.cry
  doc/xordomain.cry

source-repository head
  type: git
  location: https://github.com/GaloisInc/what4

flag solverTests
  description: extra tests that require all the solvers to be installed
  manual: True
  default: False

flag dRealTestDisable
  description: when running solver tests, disable testing using dReal (ignored unless -fsolverTests)
  manual: True
  default: False

flag STPTestDisable
  description: when running solver tests, disable testing using STP (ignored unless -fsolverTests)
  manual: True
  default: False

common bldflags
  default-language: Haskell2010
  ghc-options: -Wall
               -Werror=incomplete-patterns
               -Werror=missing-methods
               -Werror=overlapping-patterns
               -Wcompat
               -Wpartial-fields

common testdefs
  hs-source-dirs: test
  build-depends: base
               , parameterized-utils
               , tasty >= 0.10
               , what4

common testdefs-quickcheck
  import: testdefs
  build-depends: tasty-quickcheck >= 0.10
               , QuickCheck >= 2.12

common testdefs-hedgehog
  import: testdefs
  hs-source-dirs: test/hedgehog
  build-depends: hedgehog >= 1.0.2
               , tasty-hedgehog >= 1.2
  other-modules: Test.Tasty.Hedgehog.Alt

common testdefs-hunit
  import: testdefs
  build-depends: tasty-hunit >= 0.9

library
  import: bldflags
  build-depends:
    base >= 4.10 && < 5,
    async,
    attoparsec >= 0.13,
    bimap >= 0.2,
    bifunctors >= 5,
    BoundedChan >= 1 && < 2,
    bv-sized >= 1.0.0,
    bytestring >= 0.10,
    deriving-compat >= 0.5,
    concurrent-extra >= 0.7 && < 0.8,
    config-value >= 0.8 && < 0.9,
    containers >= 0.5.0.0,
    deepseq >= 1.3,
    directory >= 1.2.2,
    exceptions >= 0.10,
    filepath >= 1.3,
    fingertree >= 0.1.4,
    hashable >= 1.3,
    hashtables >= 1.2.3,
    io-streams >= 1.5,
    lens >= 4.18,
    libBF >= 0.6 && < 0.7,
    megaparsec >= 8 && < 10,
    mtl >= 2.2.1,
    ordered-containers >= 0.2 && < 0.3,
    panic >= 0.3,
    parameterized-utils >= 2.1 && < 2.2,
    parsec >= 3 && < 4,
    prettyprinter >= 1.7.0,
    process >= 1.2,
    s-cargot >= 0.1 && < 0.2,
    scientific >= 0.3.6,
    stm,
    temporary >= 1.2,
    template-haskell,
    text >= 1.2.4.0 && < 2.1,
    th-lift >= 0.8.2 && < 0.9,
    th-lift-instances >= 0.1 && < 0.2,
    time >= 1.8 && < 1.13,
    transformers >= 0.4,
    unliftio >= 0.2 && < 0.3,
    unordered-containers >= 0.2.10,
    utf8-string >= 1.0.1,
    vector >= 0.12.1,
    versions >= 6.0.2 && < 6.1,
    zenc >= 0.1.0 && < 0.2.0,
    ghc-prim >= 0.5.2

  default-extensions:
     NondecreasingIndentation

  hs-source-dirs: src

  exposed-modules:
    What4.BaseTypes
    What4.Concrete
    What4.Config
    What4.FunctionName
    What4.IndexLit
    What4.Interface
    What4.InterpretedFloatingPoint
    What4.FloatMode
    What4.LabeledPred
    What4.Panic
    What4.Partial
    What4.ProblemFeatures
    What4.ProgramLoc
    What4.SatResult
    What4.SemiRing
    What4.SpecialFunctions
    What4.Symbol
    What4.SFloat
    What4.SWord
    What4.WordMap

    What4.Expr
    What4.Expr.Allocator
    What4.Expr.App
    What4.Expr.ArrayUpdateMap
    What4.Expr.AppTheory
    What4.Expr.BoolMap
    What4.Expr.Builder
    What4.Expr.GroundEval
    What4.Expr.MATLAB
    What4.Expr.Simplify
    What4.Expr.StringSeq
    What4.Expr.VarIdentification
    What4.Expr.WeightedSum
    What4.Expr.UnaryBV

    What4.Serialize.FastSExpr
    What4.Serialize.Log
    What4.Serialize.Normalize
    What4.Serialize.Parser
    What4.Serialize.Printer
    What4.Serialize.SETokens

    What4.Solver
    What4.Solver.Adapter
    What4.Solver.Boolector
    What4.Solver.CVC4
    What4.Solver.CVC5
    What4.Solver.DReal
    What4.Solver.ExternalABC
    What4.Solver.STP
    What4.Solver.Yices
    What4.Solver.Z3

    What4.Protocol.Online
    What4.Protocol.SMTLib2
    What4.Protocol.SMTLib2.Parse
    What4.Protocol.SMTLib2.Response
    What4.Protocol.SMTLib2.Syntax
    What4.Protocol.SMTWriter
    What4.Protocol.ReadDecimal
    What4.Protocol.SExp
    What4.Protocol.PolyRoot
    What4.Protocol.VerilogWriter
    What4.Protocol.VerilogWriter.AST
    What4.Protocol.VerilogWriter.ABCVerilog
    What4.Protocol.VerilogWriter.Backend

    What4.Utils.AbstractDomains
    What4.Utils.AnnotatedMap
    What4.Utils.Arithmetic
    What4.Utils.BVDomain
    What4.Utils.BVDomain.Arith
    What4.Utils.BVDomain.Bitwise
    What4.Utils.BVDomain.XOR
    What4.Utils.Complex
    What4.Utils.Endian
    What4.Utils.Environment
    What4.Utils.HandleReader
    What4.Utils.IncrHash
    What4.Utils.FloatHelpers
    What4.Utils.LeqMap
    What4.Utils.MonadST
    What4.Utils.OnlyIntRepr
    What4.Utils.Process
    What4.Utils.ResolveBounds.BV
    What4.Utils.Serialize
    What4.Utils.Streams
    What4.Utils.StringLiteral
    What4.Utils.Word16String
    What4.Utils.Versions

    Test.Verification

  if impl(ghc >= 8.6)
    default-extensions: NoStarIsType

executable quickstart
  main-is: doc/QuickStart.hs
  default-language: Haskell2010

  build-depends:
    base,
    parameterized-utils,
    what4

test-suite abduct
  import: testdefs-hunit
  type: exitcode-stdio-1.0
  main-is: Abduct.hs
  default-language: Haskell2010

  build-depends:
    base,
    parameterized-utils,
    what4,
    text,
    temporary

test-suite adapter-test
  import: bldflags, testdefs-hunit
  type: exitcode-stdio-1.0

  main-is: AdapterTest.hs

  other-modules: ProbeSolvers

  if flag(solverTests)
    buildable: True
    if ! flag(dRealTestDisable)
      cpp-options: -DTEST_DREAL
    if ! flag(STPTestDisable)
      cpp-options: -DTEST_STP
  else
    buildable: False

  build-depends:
    bv-sized,
    bytestring,
    containers,
    lens,
    mtl >= 2.2.1,
    process,
    tasty-expected-failure >= 0.12 && < 0.13,
    text,
    versions

test-suite config-test
  import: bldflags, testdefs-hunit
  type: exitcode-stdio-1.0
  main-is: ConfigTest.hs
  build-depends: containers
               , parameterized-utils
               , prettyprinter
               , tasty-checklist >= 1.0 && < 1.1
               , text

test-suite online-solver-test
  import: bldflags, testdefs-hunit
  type: exitcode-stdio-1.0

  main-is: OnlineSolverTest.hs

  other-modules: ProbeSolvers

  if flag(solverTests)
    buildable: True
    if ! flag(STPTestDisable)
      cpp-options: -DTEST_STP
  else
    buildable: False

  build-depends:
    async,
    bv-sized,
    bytestring,
    clock,
    containers,
    exceptions,
    lens,
    prettyprinter,
    process,
    tasty-expected-failure >= 0.12 && < 0.13,
    tasty-checklist >= 1.0 && < 1.1,
    text,
    units,
    units-defs,
    versions

test-suite expr-builder-smtlib2
  import: bldflags, testdefs-hedgehog, testdefs-hunit
  type: exitcode-stdio-1.0

  main-is: ExprBuilderSMTLib2.hs

  other-modules: ProbeSolvers

  build-depends:
    bv-sized,
    bytestring,
    containers,
    libBF,
    prettyprinter,
    process,
    tasty-expected-failure >= 0.12 && < 0.13,
    tasty-checklist >= 1.0.3 && < 1.1,
    text,
    versions


test-suite exprs_tests
  import: bldflags, testdefs-hedgehog, testdefs-hunit
  type: exitcode-stdio-1.0

  main-is: ExprsTest.hs

  other-modules:
    GenWhat4Expr

  build-depends: bv-sized


test-suite iteexprs_tests
  import: bldflags, testdefs-hedgehog, testdefs-hunit
  type: exitcode-stdio-1.0

  main-is: IteExprs.hs

  other-modules:
    GenWhat4Expr

  build-depends: bv-sized
               , containers >= 0.5.0.0


test-suite bvdomain_tests
  import: bldflags, testdefs-quickcheck
  type: exitcode-stdio-1.0

  hs-source-dirs: test/QC
  main-is: BVDomTests.hs

  other-modules:  VerifyBindings

  build-depends: transformers


test-suite bvdomain_tests_hh
  import: bldflags, testdefs-hedgehog
  type: exitcode-stdio-1.0

  hs-source-dirs: test/HH
  main-is: BVDomTests.hs

  other-modules:  VerifyBindings

  build-depends: transformers


test-suite template_tests
  import: bldflags, testdefs-hedgehog
  type: exitcode-stdio-1.0
  main-is : TestTemplate.hs
  build-depends: bv-sized
               , libBF
               , transformers


test-suite solver_parsing_tests
  import: bldflags, testdefs-hunit
  type: exitcode-stdio-1.0
  main-is : SolverParserTest.hs
  build-depends: contravariant
               , exceptions
               , io-streams
               , lumberjack
               , tasty-sugar >= 2.0 && < 2.3
               , text

test-suite what4-serialize-tests
  default-language: Haskell2010
  type: exitcode-stdio-1.0
  ghc-options: -Wall -Wcompat -rtsopts -threaded
  hs-source-dirs: test
  main-is: SerializeTests.hs
  other-modules: SymFnTests, SerializeTestUtils
  build-depends:   what4
                 , base
                 , containers
                 , directory
                 , exceptions
                 , hedgehog
                 , libBF
                 , tasty
                 , tasty-hunit
                 , tasty-hedgehog
                 , text
                 , parameterized-utils
                 , async
                 , directory
                 , ordered-containers

test-suite invariant-synthesis
  import: bldflags, testdefs-hunit
  type: exitcode-stdio-1.0

  main-is: InvariantSynthesis.hs

  other-modules: ProbeSolvers

  build-depends:
    bv-sized,
    process,
    tasty-expected-failure >= 0.12 && < 0.13