packages feed

grisette-0.7.0.0: grisette.cabal

cabal-version: 1.12

-- This file has been generated from package.yaml by hpack version 0.36.0.
--
-- see: https://github.com/sol/hpack

name:           grisette
version:        0.7.0.0
synopsis:       Symbolic evaluation as a library
description:    Grisette is a reusable symbolic evaluation library for Haskell. By
                translating programs into constraints, Grisette can help the development of
                program reasoning tools, including verification, synthesis, and more.
                .
                The "Grisette" module exports all the core APIs for building a symbolic
                evaluation tool. A high-level overview of the module structures are available
                there.
                .
                A detailed introduction to Grisette is available at "Grisette.Core". More
                lifted libraries are provided in @Grisette.Lib.*@ modules.
                .
                The "Grisette.Unified" module offers an experimental unified interface for
                symbolic and concrete evaluation. This module should be imported qualified.
                .
                For more details, please checkout the README and 
                [tutorials](https://github.com/lsrcz/grisette/tree/main/tutorials).
category:       Formal Methods, Theorem Provers, Symbolic Computation, SMT
homepage:       https://github.com/lsrcz/grisette#readme
bug-reports:    https://github.com/lsrcz/grisette/issues
author:         Sirui Lu, Rastislav Bodík
maintainer:     Sirui Lu (siruilu@cs.washington.edu)
copyright:      2021-2024 Sirui Lu
license:        BSD3
license-file:   LICENSE
build-type:     Simple
tested-with:
    GHC == 8.10.7
  , GHC == 9.0.2
  , GHC == 9.2.8
  , GHC == 9.4.8
  , GHC == 9.6.5
  , GHC == 9.8.2
  , GHC == 9.10.1
extra-source-files:
    CHANGELOG.md
    README.md

source-repository head
  type: git
  location: https://github.com/lsrcz/grisette

flag optimize
  description: Compile with O2 optimization
  manual: False
  default: True

library
  exposed-modules:
      Grisette
      Grisette.Backend
      Grisette.Core
      Grisette.Experimental
      Grisette.Experimental.GenSymConstrained
      Grisette.Experimental.MonadParallelUnion
      Grisette.Experimental.Qualified.ParallelUnionDo
      Grisette.Internal.Backend.Solving
      Grisette.Internal.Backend.SymBiMap
      Grisette.Internal.Core.Control.Exception
      Grisette.Internal.Core.Control.Monad.CBMCExcept
      Grisette.Internal.Core.Control.Monad.Class.Union
      Grisette.Internal.Core.Control.Monad.Union
      Grisette.Internal.Core.Data.Class.BitCast
      Grisette.Internal.Core.Data.Class.BitVector
      Grisette.Internal.Core.Data.Class.CEGISSolver
      Grisette.Internal.Core.Data.Class.Error
      Grisette.Internal.Core.Data.Class.EvalSym
      Grisette.Internal.Core.Data.Class.ExtractSym
      Grisette.Internal.Core.Data.Class.Function
      Grisette.Internal.Core.Data.Class.GenSym
      Grisette.Internal.Core.Data.Class.IEEEFP
      Grisette.Internal.Core.Data.Class.ITEOp
      Grisette.Internal.Core.Data.Class.LogicalOp
      Grisette.Internal.Core.Data.Class.Mergeable
      Grisette.Internal.Core.Data.Class.ModelOps
      Grisette.Internal.Core.Data.Class.PlainUnion
      Grisette.Internal.Core.Data.Class.PPrint
      Grisette.Internal.Core.Data.Class.SafeDivision
      Grisette.Internal.Core.Data.Class.SafeLinearArith
      Grisette.Internal.Core.Data.Class.SafeSymRotate
      Grisette.Internal.Core.Data.Class.SafeSymShift
      Grisette.Internal.Core.Data.Class.SignConversion
      Grisette.Internal.Core.Data.Class.SimpleMergeable
      Grisette.Internal.Core.Data.Class.Solvable
      Grisette.Internal.Core.Data.Class.Solver
      Grisette.Internal.Core.Data.Class.SubstSym
      Grisette.Internal.Core.Data.Class.SymEq
      Grisette.Internal.Core.Data.Class.SymOrd
      Grisette.Internal.Core.Data.Class.SymRotate
      Grisette.Internal.Core.Data.Class.SymShift
      Grisette.Internal.Core.Data.Class.ToCon
      Grisette.Internal.Core.Data.Class.ToSym
      Grisette.Internal.Core.Data.Class.TryMerge
      Grisette.Internal.Core.Data.MemoUtils
      Grisette.Internal.Core.Data.Symbol
      Grisette.Internal.Core.Data.UnionBase
      Grisette.Internal.SymPrim.AllSyms
      Grisette.Internal.SymPrim.BV
      Grisette.Internal.SymPrim.FP
      Grisette.Internal.SymPrim.GeneralFun
      Grisette.Internal.SymPrim.IntBitwidth
      Grisette.Internal.SymPrim.ModelRep
      Grisette.Internal.SymPrim.Prim.Internal.Caches
      Grisette.Internal.SymPrim.Prim.Internal.Instances.BVPEval
      Grisette.Internal.SymPrim.Prim.Internal.Instances.PEvalBitwiseTerm
      Grisette.Internal.SymPrim.Prim.Internal.Instances.PEvalDivModIntegralTerm
      Grisette.Internal.SymPrim.Prim.Internal.Instances.PEvalFloatingTerm
      Grisette.Internal.SymPrim.Prim.Internal.Instances.PEvalFP
      Grisette.Internal.SymPrim.Prim.Internal.Instances.PEvalFractionalTerm
      Grisette.Internal.SymPrim.Prim.Internal.Instances.PEvalNumTerm
      Grisette.Internal.SymPrim.Prim.Internal.Instances.PEvalOrdTerm
      Grisette.Internal.SymPrim.Prim.Internal.Instances.PEvalRotateTerm
      Grisette.Internal.SymPrim.Prim.Internal.Instances.PEvalShiftTerm
      Grisette.Internal.SymPrim.Prim.Internal.Instances.SupportedPrim
      Grisette.Internal.SymPrim.Prim.Internal.IsZero
      Grisette.Internal.SymPrim.Prim.Internal.PartialEval
      Grisette.Internal.SymPrim.Prim.Internal.Term
      Grisette.Internal.SymPrim.Prim.Internal.Unfold
      Grisette.Internal.SymPrim.Prim.Internal.Utils
      Grisette.Internal.SymPrim.Prim.Model
      Grisette.Internal.SymPrim.Prim.ModelValue
      Grisette.Internal.SymPrim.Prim.SomeTerm
      Grisette.Internal.SymPrim.Prim.Term
      Grisette.Internal.SymPrim.Prim.TermUtils
      Grisette.Internal.SymPrim.SomeBV
      Grisette.Internal.SymPrim.SymBool
      Grisette.Internal.SymPrim.SymBV
      Grisette.Internal.SymPrim.SymFP
      Grisette.Internal.SymPrim.SymGeneralFun
      Grisette.Internal.SymPrim.SymInteger
      Grisette.Internal.SymPrim.SymTabularFun
      Grisette.Internal.SymPrim.TabularFun
      Grisette.Internal.TH.DeriveBuiltin
      Grisette.Internal.TH.DeriveInstanceProvider
      Grisette.Internal.TH.DerivePredefined
      Grisette.Internal.TH.DeriveTypeParamHandler
      Grisette.Internal.TH.DeriveUnifiedInterface
      Grisette.Internal.TH.DeriveWithHandlers
      Grisette.Internal.TH.MergeConstructor
      Grisette.Internal.TH.UnifiedConstructor
      Grisette.Internal.TH.Util
      Grisette.Internal.Utils.Derive
      Grisette.Internal.Utils.Parameterized
      Grisette.Lib.Base
      Grisette.Lib.Control.Applicative
      Grisette.Lib.Control.Monad
      Grisette.Lib.Control.Monad.Except
      Grisette.Lib.Control.Monad.State.Class
      Grisette.Lib.Control.Monad.Trans
      Grisette.Lib.Control.Monad.Trans.Class
      Grisette.Lib.Control.Monad.Trans.Cont
      Grisette.Lib.Control.Monad.Trans.Except
      Grisette.Lib.Control.Monad.Trans.State
      Grisette.Lib.Control.Monad.Trans.State.Lazy
      Grisette.Lib.Control.Monad.Trans.State.Strict
      Grisette.Lib.Data.Bool
      Grisette.Lib.Data.Either
      Grisette.Lib.Data.Foldable
      Grisette.Lib.Data.Functor
      Grisette.Lib.Data.Functor.Sum
      Grisette.Lib.Data.List
      Grisette.Lib.Data.Maybe
      Grisette.Lib.Data.Traversable
      Grisette.Lib.Data.Tuple
      Grisette.SymPrim
      Grisette.TH
      Grisette.Unified
      Grisette.Unified.Internal.BaseConstraint
      Grisette.Unified.Internal.BaseMonad
      Grisette.Unified.Internal.Class.UnifiedITEOp
      Grisette.Unified.Internal.Class.UnifiedSafeDivision
      Grisette.Unified.Internal.Class.UnifiedSafeLinearArith
      Grisette.Unified.Internal.Class.UnifiedSafeSymRotate
      Grisette.Unified.Internal.Class.UnifiedSafeSymShift
      Grisette.Unified.Internal.Class.UnifiedSimpleMergeable
      Grisette.Unified.Internal.Class.UnifiedSymEq
      Grisette.Unified.Internal.Class.UnifiedSymOrd
      Grisette.Unified.Internal.EvalMode
      Grisette.Unified.Internal.EvalModeTag
      Grisette.Unified.Internal.MonadWithMode
      Grisette.Unified.Internal.UnifiedBool
      Grisette.Unified.Internal.UnifiedBV
      Grisette.Unified.Internal.UnifiedConstraint
      Grisette.Unified.Internal.UnifiedData
      Grisette.Unified.Internal.UnifiedInteger
      Grisette.Unified.Internal.Util
      Grisette.Unified.Lib.Control.Applicative
      Grisette.Unified.Lib.Control.Monad
      Grisette.Unified.Lib.Data.Foldable
      Grisette.Unified.Lib.Data.Functor
      Grisette.Utils
  other-modules:
      Paths_grisette
  hs-source-dirs:
      src
  ghc-options: -Wextra -Wcompat -Widentities -Wincomplete-record-updates -Wmissing-export-lists -Wmissing-home-modules -Wmissing-import-lists -Wpartial-fields -Wunused-type-patterns
  build-depends:
      QuickCheck >=2.14 && <2.16
    , array >=0.5.4 && <0.6
    , async >=2.2.2 && <2.3
    , base >=4.14 && <5
    , bytestring >=0.10.12 && <0.13
    , containers >=0.4 && <0.8
    , deepseq >=1.4.4 && <1.6
    , generic-deriving >=1.14.1 && <1.15
    , hashable >=1.2.3 && <1.5
    , hashtables >=1.2.3.4 && <1.4
    , intern >=0.9.2 && <0.10
    , loch-th >=0.2.2 && <0.3
    , mtl >=2.2.2 && <2.4
    , parallel >=3.2.2.0 && <3.3
    , prettyprinter >=1.5.0 && <1.8
    , sbv >=8.17 && <11
    , stm ==2.5.*
    , template-haskell >=2.16 && <2.23
    , text >=1.2.4.1 && <2.2
    , th-abstraction >=0.4 && <0.8
    , th-compat >=0.1.2 && <0.2
    , transformers >=0.5.6 && <0.7
    , unordered-containers >=0.2.11 && <0.3
  default-language: Haskell2010
  if flag(optimize)
    ghc-options: -O2
  else
    ghc-options: -O0

test-suite doctest
  type: exitcode-stdio-1.0
  main-is: Main.hs
  other-modules:
      Paths_grisette
  hs-source-dirs:
      doctest
  ghc-options: -Wextra -Wcompat -Widentities -Wincomplete-record-updates -Wmissing-export-lists -Wmissing-home-modules -Wmissing-import-lists -Wpartial-fields -Wunused-type-patterns -threaded -rtsopts -with-rtsopts=-N
  build-depends:
      Glob
    , QuickCheck >=2.14 && <2.16
    , array >=0.5.4 && <0.6
    , async >=2.2.2 && <2.3
    , base >=4.14 && <5
    , bytestring >=0.10.12 && <0.13
    , containers >=0.4 && <0.8
    , deepseq >=1.4.4 && <1.6
    , doctest >=0.18.2 && <0.23
    , generic-deriving >=1.14.1 && <1.15
    , grisette
    , hashable >=1.2.3 && <1.5
    , hashtables >=1.2.3.4 && <1.4
    , intern >=0.9.2 && <0.10
    , loch-th >=0.2.2 && <0.3
    , mtl >=2.2.2 && <2.4
    , parallel >=3.2.2.0 && <3.3
    , prettyprinter >=1.5.0 && <1.8
    , sbv >=8.17 && <11
    , stm ==2.5.*
    , template-haskell >=2.16 && <2.23
    , text >=1.2.4.1 && <2.2
    , th-abstraction >=0.4 && <0.8
    , th-compat >=0.1.2 && <0.2
    , transformers >=0.5.6 && <0.7
    , unordered-containers >=0.2.11 && <0.3
  default-language: Haskell2010
  if flag(optimize)
    ghc-options: -O2
  else
    ghc-options: -O0

test-suite spec
  type: exitcode-stdio-1.0
  main-is: Main.hs
  other-modules:
      Grisette.Backend.CEGISTests
      Grisette.Backend.LoweringTests
      Grisette.Backend.TermRewritingGen
      Grisette.Backend.TermRewritingTests
      Grisette.Core.Control.ExceptionTests
      Grisette.Core.Control.Monad.UnionTests
      Grisette.Core.Data.Class.BoolTests
      Grisette.Core.Data.Class.EvalSymTests
      Grisette.Core.Data.Class.ExtractSymTests
      Grisette.Core.Data.Class.GenSymTests
      Grisette.Core.Data.Class.MergeableTests
      Grisette.Core.Data.Class.PlainUnionTests
      Grisette.Core.Data.Class.PPrintTests
      Grisette.Core.Data.Class.SafeDivisionTests
      Grisette.Core.Data.Class.SafeLinearArithTests
      Grisette.Core.Data.Class.SafeSymRotateTests
      Grisette.Core.Data.Class.SafeSymShiftTests
      Grisette.Core.Data.Class.SimpleMergeableTests
      Grisette.Core.Data.Class.SubstSymTests
      Grisette.Core.Data.Class.SymEqTests
      Grisette.Core.Data.Class.SymOrdTests
      Grisette.Core.Data.Class.SymRotateTests
      Grisette.Core.Data.Class.SymShiftTests
      Grisette.Core.Data.Class.TestValues
      Grisette.Core.Data.Class.ToConTests
      Grisette.Core.Data.Class.ToSymTests
      Grisette.Core.Data.Class.TryMergeTests
      Grisette.Core.Data.UnionBaseTests
      Grisette.Core.TH.DerivationTest
      Grisette.Lib.Control.ApplicativeTest
      Grisette.Lib.Control.Monad.ExceptTests
      Grisette.Lib.Control.Monad.State.ClassTests
      Grisette.Lib.Control.Monad.Trans.ClassTests
      Grisette.Lib.Control.Monad.Trans.ExceptTests
      Grisette.Lib.Control.Monad.Trans.State.Common
      Grisette.Lib.Control.Monad.Trans.State.LazyTests
      Grisette.Lib.Control.Monad.Trans.State.StrictTests
      Grisette.Lib.Control.MonadTests
      Grisette.Lib.Data.FoldableTests
      Grisette.Lib.Data.FunctorTests
      Grisette.Lib.Data.ListTests
      Grisette.Lib.Data.TraversableTests
      Grisette.SymPrim.BVTests
      Grisette.SymPrim.FPTests
      Grisette.SymPrim.Prim.BitsTests
      Grisette.SymPrim.Prim.BoolTests
      Grisette.SymPrim.Prim.BVTests
      Grisette.SymPrim.Prim.IntegralTests
      Grisette.SymPrim.Prim.ModelTests
      Grisette.SymPrim.Prim.NumTests
      Grisette.SymPrim.Prim.TabularFunTests
      Grisette.SymPrim.SomeBVTests
      Grisette.SymPrim.SymPrimTests
      Grisette.SymPrim.TabularFunTests
      Grisette.TestUtil.NoMerge
      Grisette.TestUtil.PrettyPrint
      Grisette.TestUtil.SymbolicAssertion
      Grisette.Unified.EvalModeTest
      Grisette.Unified.UnifiedClassesTest
      Grisette.Unified.UnifiedConstructorTest
      Paths_grisette
  hs-source-dirs:
      test
  ghc-options: -Wextra -Wcompat -Widentities -Wincomplete-record-updates -Wmissing-export-lists -Wmissing-home-modules -Wmissing-import-lists -Wpartial-fields -Wunused-type-patterns -threaded -rtsopts -with-rtsopts=-N
  build-depends:
      HUnit ==1.6.*
    , QuickCheck >=2.14 && <2.16
    , array >=0.5.4 && <0.6
    , async >=2.2.2 && <2.3
    , base >=4.14 && <5
    , bytestring >=0.10.12 && <0.13
    , containers >=0.4 && <0.8
    , deepseq >=1.4.4 && <1.6
    , generic-deriving >=1.14.1 && <1.15
    , grisette
    , hashable >=1.2.3 && <1.5
    , hashtables >=1.2.3.4 && <1.4
    , intern >=0.9.2 && <0.10
    , loch-th >=0.2.2 && <0.3
    , mtl >=2.2.2 && <2.4
    , parallel >=3.2.2.0 && <3.3
    , prettyprinter >=1.5.0 && <1.8
    , sbv >=8.17 && <11
    , stm ==2.5.*
    , template-haskell >=2.16 && <2.23
    , test-framework >=0.8.2 && <0.9
    , test-framework-hunit >=0.3.0.2 && <0.4
    , test-framework-quickcheck2 >=0.3.0.5 && <0.4
    , text >=1.2.4.1 && <2.2
    , th-abstraction >=0.4 && <0.8
    , th-compat >=0.1.2 && <0.2
    , transformers >=0.5.6 && <0.7
    , unordered-containers >=0.2.11 && <0.3
  default-language: Haskell2010
  if flag(optimize)
    ghc-options: -O2
  else
    ghc-options: -O0