grisette: Symbolic evaluation as a library
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.
[Skip to Readme]
Modules
[Index] [Quick Jump]
- Grisette
- Grisette.Backend
- Grisette.Core
- Grisette.Experimental
- Internal
- Backend
- Core
- Control
- Data
- Class
- 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.PPrint
- Grisette.Internal.Core.Data.Class.PlainUnion
- Grisette.Internal.Core.Data.Class.SafeBitCast
- Grisette.Internal.Core.Data.Class.SafeDiv
- Grisette.Internal.Core.Data.Class.SafeFdiv
- Grisette.Internal.Core.Data.Class.SafeFromFP
- Grisette.Internal.Core.Data.Class.SafeLinearArith
- Grisette.Internal.Core.Data.Class.SafeLogBase
- 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.SymFiniteBits
- Grisette.Internal.Core.Data.Class.SymFromIntegral
- Grisette.Internal.Core.Data.Class.SymIEEEFP
- 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.SExpr
- Grisette.Internal.Core.Data.Symbol
- Grisette.Internal.Core.Data.UnionBase
- Class
- SymPrim
- Grisette.Internal.SymPrim.AlgReal
- Grisette.Internal.SymPrim.AllSyms
- Grisette.Internal.SymPrim.BV
- Grisette.Internal.SymPrim.FP
- Grisette.Internal.SymPrim.FunInstanceGen
- Grisette.Internal.SymPrim.GeneralFun
- Grisette.Internal.SymPrim.IntBitwidth
- Grisette.Internal.SymPrim.ModelRep
- Prim
- Internal
- Grisette.Internal.SymPrim.Prim.Internal.Caches
- Instances
- Grisette.Internal.SymPrim.Prim.Internal.Instances.BVPEval
- Grisette.Internal.SymPrim.Prim.Internal.Instances.PEvalBitCastTerm
- Grisette.Internal.SymPrim.Prim.Internal.Instances.PEvalBitwiseTerm
- Grisette.Internal.SymPrim.Prim.Internal.Instances.PEvalDivModIntegralTerm
- Grisette.Internal.SymPrim.Prim.Internal.Instances.PEvalFP
- Grisette.Internal.SymPrim.Prim.Internal.Instances.PEvalFloatingTerm
- Grisette.Internal.SymPrim.Prim.Internal.Instances.PEvalFractionalTerm
- Grisette.Internal.SymPrim.Prim.Internal.Instances.PEvalFromIntegralTerm
- Grisette.Internal.SymPrim.Prim.Internal.Instances.PEvalIEEEFPConvertibleTerm
- 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.PartialEval
- Grisette.Internal.SymPrim.Prim.Internal.Serialize
- 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.SomeTerm
- Grisette.Internal.SymPrim.Prim.Term
- Grisette.Internal.SymPrim.Prim.TermUtils
- Internal
- Grisette.Internal.SymPrim.Quantifier
- Grisette.Internal.SymPrim.SomeBV
- Grisette.Internal.SymPrim.SymAlgReal
- Grisette.Internal.SymPrim.SymBV
- Grisette.Internal.SymPrim.SymBool
- Grisette.Internal.SymPrim.SymFP
- Grisette.Internal.SymPrim.SymGeneralFun
- Grisette.Internal.SymPrim.SymInteger
- Grisette.Internal.SymPrim.SymTabularFun
- Grisette.Internal.SymPrim.TabularFun
- TH
- 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
- Utils
- Lib
- Grisette.SymPrim
- Grisette.TH
- Grisette.Unified
- Internal
- Grisette.Unified.Internal.BVBVConversion
- Grisette.Unified.Internal.BVFPConversion
- Grisette.Unified.Internal.BaseConstraint
- Grisette.Unified.Internal.BaseMonad
- Class
- Grisette.Unified.Internal.Class.UnifiedFiniteBits
- Grisette.Unified.Internal.Class.UnifiedFromIntegral
- Grisette.Unified.Internal.Class.UnifiedITEOp
- Grisette.Unified.Internal.Class.UnifiedSafeBitCast
- Grisette.Unified.Internal.Class.UnifiedSafeDiv
- Grisette.Unified.Internal.Class.UnifiedSafeFdiv
- Grisette.Unified.Internal.Class.UnifiedSafeFromFP
- 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.FPFPConversion
- Grisette.Unified.Internal.Theories
- Grisette.Unified.Internal.UnifiedAlgReal
- Grisette.Unified.Internal.UnifiedBV
- Grisette.Unified.Internal.UnifiedBool
- Grisette.Unified.Internal.UnifiedConstraint
- Grisette.Unified.Internal.UnifiedData
- Grisette.Unified.Internal.UnifiedFP
- Grisette.Unified.Internal.UnifiedFun
- Grisette.Unified.Internal.UnifiedInteger
- Grisette.Unified.Internal.Util
- Lib
- Internal
- Grisette.Utils
Flags
Automatic Flags
Name | Description | Default |
---|---|---|
optimize | Compile with O2 optimization | Enabled |
Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info
Downloads
- grisette-0.9.0.0.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
Versions [RSS] | 0.1.0.0, 0.2.0.0, 0.3.0.0, 0.3.1.0, 0.3.1.1, 0.4.0.0, 0.4.1.0, 0.5.0.0, 0.5.0.1, 0.6.0.0, 0.7.0.0, 0.8.0.0, 0.9.0.0 |
---|---|
Change log | CHANGELOG.md |
Dependencies | array (>=0.5.4 && <0.6), async (>=2.2.2 && <2.3), atomic-primops (>=0.8.3 && <0.9), base (>=4.14 && <5), binary (>=0.8.8.0 && <0.9), bytes (>=0.17.1 && <0.18), bytestring (>=0.10.12 && <0.13), cereal (>=0.5.8.1 && <0.6), cereal-text (>=0.1.0.2 && <0.2), containers (>=0.4 && <0.8), deepseq (>=1.4.4 && <1.6), generic-deriving (>=1.14.1 && <1.15), hashable (>=1.2.3 && <1.6), libBF (>=0.6.3 && <0.7), 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), QuickCheck (>=2.14 && <2.16), sbv (>=8.17 && <12), stm (>=2.5 && <2.6), 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), th-lift-instances (>=0.1.16 && <0.2), transformers (>=0.5.6 && <0.7), unordered-containers (>=0.2.17 && <0.3), vector (>=0.12.1.2 && <0.14) [details] |
Tested with | ghc ==8.10.7, ghc ==9.0.2, ghc ==9.2.8, ghc ==9.4.8, ghc ==9.6.6, ghc ==9.8.2, ghc ==9.10.1 |
License | BSD-3-Clause |
Copyright | 2021-2024 Sirui Lu |
Author | Sirui Lu, Rastislav Bodík |
Maintainer | Sirui Lu (siruilu@cs.washington.edu) |
Category | Formal Methods, Theorem Provers, Symbolic Computation, SMT |
Home page | https://github.com/lsrcz/grisette#readme |
Bug tracker | https://github.com/lsrcz/grisette/issues |
Source repo | head: git clone https://github.com/lsrcz/grisette |
Uploaded | by siruilu at 2024-11-08T00:21:54Z |
Distributions | Stackage:0.9.0.0 |
Reverse Dependencies | 1 direct, 0 indirect [details] |
Downloads | 561 total (54 in the last 30 days) |
Rating | (no votes yet) [estimated by Bayesian average] |
Your Rating | |
Status | Docs uploaded by user Build status unknown [no reports yet] |