| CARVIEW |
Select Language
HTTP/1.1 200 OK
Connection: keep-alive
Server: nginx/1.24.0 (Ubuntu)
Content-Type: text/html; charset=utf-8
Cache-Control: public, max-age=300
Content-Encoding: gzip
Via: 1.1 varnish, 1.1 varnish
Accept-Ranges: bytes
Age: 0
Date: Sat, 17 Jan 2026 01:13:20 GMT
X-Served-By: cache-dfw-kdal2120049-DFW, cache-bom-vanm7210088-BOM
X-Cache: MISS, MISS
X-Cache-Hits: 0, 0
X-Timer: S1768612400.961251,VS0,VE385
Vary: Accept, Accept-Encoding
transfer-encoding: chunked
g2: Haskell symbolic execution engine.
[Skip to Readme]
g2: Haskell symbolic execution engine.
[ bsd3, formal-methods, library, program, symbolic-computation ]
[ Propose Tags ]
[ Report a vulnerability ]
A Haskell symbolic execution engine. For details, please see: https://github.com/BillHallahan/G2
[Skip to Readme]
Modules
- G2
- G2.Config
- G2.Config.Config
- G2.Config.Interface
- G2.Config.ParseConfig
- Data
- G2.Data.Timer
- G2.Data.UFMap
- G2.Data.UnionFind
- G2.Data.Utils
- Equiv
- G2.Equiv.Approximation
- G2.Equiv.Config
- G2.Equiv.EquivADT
- G2.Equiv.G2Calls
- G2.Equiv.Generalize
- G2.Equiv.InitRewrite
- G2.Equiv.Summary
- G2.Equiv.Tactics
- G2.Equiv.Types
- G2.Equiv.Uninterpreted
- G2.Equiv.Verifier
- G2.Execution
- G2.Execution.HPC
- G2.Execution.Interface
- G2.Execution.Memory
- G2.Execution.NewPC
- G2.Execution.NormalForms
- G2.Execution.PrimitiveEval
- G2.Execution.Reducer
- G2.Execution.RuleTypes
- G2.Execution.Rules
- Initialization
- G2.Initialization.DeepSeqWalks
- G2.Initialization.ElimTicks
- G2.Initialization.ElimTypeSynonyms
- G2.Initialization.InitVarLocs
- G2.Initialization.Interface
- G2.Initialization.KnownValues
- G2.Initialization.MkCurrExpr
- G2.Initialization.Types
- G2.Interface
- G2.Interface.Interface
- G2.Interface.OutputTypes
- G2.Language
- G2.Language.AST
- G2.Language.AlgDataTy
- G2.Language.Approximation
- G2.Language.ArbValueGen
- G2.Language.CallGraph
- G2.Language.Casts
- G2.Language.CreateFuncs
- G2.Language.Expr
- G2.Language.ExprEnv
- G2.Language.Ids
- G2.Language.KnownValues
- G2.Language.Located
- G2.Language.Monad
- G2.Language.Monad.AST
- G2.Language.Monad.CreateFuncs
- G2.Language.Monad.Expr
- G2.Language.Monad.ExprEnv
- G2.Language.Monad.Naming
- G2.Language.Monad.Primitives
- G2.Language.Monad.Support
- G2.Language.Monad.TypeClasses
- G2.Language.Monad.TypeEnv
- G2.Language.Monad.Typing
- G2.Language.Naming
- G2.Language.PathConds
- G2.Language.Primitives
- G2.Language.Simplification
- G2.Language.Stack
- G2.Language.Support
- G2.Language.Syntax
- G2.Language.TypeClasses
- G2.Language.TypeClasses.Extra
- G2.Language.TypeClasses.TypeClasses
- G2.Language.TypeEnv
- G2.Language.Typing
- Lib
- G2.Lib.Printers
- Liquid
- G2.Liquid.AddCFBranch
- G2.Liquid.AddLHTC
- G2.Liquid.AddOrdToNum
- G2.Liquid.AddTyVars
- G2.Liquid.Annotations
- G2.Liquid.Config
- G2.Liquid.Conversion
- G2.Liquid.ConvertCurrExpr
- G2.Liquid.G2Calls
- G2.Liquid.Helpers
- Inference
- G2.Liquid.Inference.Config
- G2.Liquid.Inference.FuncConstraint
- G2.Liquid.Inference.G2Calls
- G2.Liquid.Inference.GeneratedSpecs
- G2.Liquid.Inference.InfStack
- G2.Liquid.Inference.Initalization
- G2.Liquid.Inference.Interface
- G2.Liquid.Inference.PolyRef
- G2.Liquid.Inference.QualifGen
- G2.Liquid.Inference.Sygus
- G2.Liquid.Inference.Sygus.FCConverter
- G2.Liquid.Inference.Sygus.LiaSynth
- G2.Liquid.Inference.Sygus.RefSynth
- G2.Liquid.Inference.Sygus.SimplifySygus
- G2.Liquid.Inference.Sygus.SpecInfo
- G2.Liquid.Inference.Sygus.Sygus
- G2.Liquid.Inference.Sygus.UnsatCoreElim
- G2.Liquid.Inference.UnionPoly
- G2.Liquid.Inference.Verify
- G2.Liquid.Interface
- G2.Liquid.LHReducers
- G2.Liquid.Measures
- G2.Liquid.MkLHVals
- G2.Liquid.Simplify
- G2.Liquid.SpecialAsserts
- G2.Liquid.TCGen
- G2.Liquid.TCValues
- G2.Liquid.TyVarBags
- G2.Liquid.Types
- G2.Nebula
- Postprocessing
- G2.Postprocessing.Interface
- G2.Postprocessing.NameSwitcher
- Preprocessing
- G2.Preprocessing.AdjustTypes
- G2.Preprocessing.Interface
- G2.Preprocessing.NameCleaner
- QuasiQuotes
- G2.QuasiQuotes.FloodConsts
- G2.QuasiQuotes.G2Rep
- Internals
- G2.QuasiQuotes.Internals.G2Rep
- G2.QuasiQuotes.Parser
- G2.QuasiQuotes.QuasiQuotes
- G2.QuasiQuotes.Support
- G2.Solver
- G2.Solver.ADTNumericalSolver
- G2.Solver.Converters
- G2.Solver.Interface
- G2.Solver.Language
- G2.Solver.Maximize
- G2.Solver.ParseSMT
- G2.Solver.SMT2
- G2.Solver.Simplifier
- G2.Solver.Solver
- G2.Translation
- Cabal
- G2.Translation.Cabal.Cabal
- G2.Translation.GHC
- G2.Translation.Haskell
- G2.Translation.HaskellCheck
- G2.Translation.InjectSpecials
- G2.Translation.Interface
- G2.Translation.PrimInject
- G2.Translation.TransTypes
- Cabal
- G2.Config
Flags
Automatic Flags
| Name | Description | Default |
|---|---|---|
| support-lh | Build modules for reasoning about LiquidHaskell | Enabled |
Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info
Downloads
- g2-0.2.0.0.tar.gz [browse] (Cabal source package)
- Package description (revised from the package)
Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
| Versions [RSS] | 0.1.0.0, 0.1.0.1, 0.2.0.0 |
|---|---|
| Dependencies | array (>=0.5.1.1 && <=0.5.5.0), base (>=4.8 && <4.19), bimap (==0.3.3), bytestring (>=0.10.8.0 && <0.11.6), Cabal (>=2.0.1.0 && <3.11), clock (>=0.8 && <0.9), concurrent-extra (>=0.7 && <0.8), containers (>=0.5 && <0.7), deepseq (>=1.4 && <2), deferred-folds (<=0.9.18.3), Diff (==0.3.4), directory (>=1.3.0.2 && <=1.3.8.1), extra (>=1.6.14 && <1.7.13), filepath (>=1.4 && <=1.5), g2, ghc (>=8.2.2 && <8.4 || >=8.6 && <8.7 || >=8.10 && <9.7), ghc-paths (>=0.1 && <0.2), hashable (>=1.2.6.0 && <=1.4.2.0), HTTP (>=4000.3.0 && <4001.0), language-sygus (>=0.1.1.3 && <0.2), liquid-fixpoint, liquidhaskell, MissingH (>=1.4.0.0 && <1.7), mtl (>=2.2 && <2.4), optparse-applicative (>=0.15.0.0 && <0.18.0.0), parsec (>=3.1 && <3.2), pretty (>=1.1 && <1.4), process (>=1.6 && <1.7), random (>=1.1 && <1.3), reducers (>=3.12 && <3.13), regex-base (>=0.93 && <0.94.0.3), regex-compat (>=0.95 && <0.96), split (>=0.2.3 && <0.2.4), tasty-quickcheck (>=0.10.1.1 && <0.11), template-haskell (>=2.12.0.0 && <=2.20.0.0), temporary-rc (>=1.2 && <1.3), text (>=1.2.3.1 && <=2.1), text-builder (>=0.6.6.1 && <0.7), time (>=1.6 && <=1.13), unordered-containers (>=0.2.10.0 && <0.3) [details] |
| License | BSD-3-Clause |
| Author | William Hallahan, Anton Xue |
| Maintainer | whallahan@binghamton.edu |
| Uploaded | by WilliamHallahan at 2024-03-22T21:17:26Z |
| Revised | Revision 1 made by WilliamHallahan at 2024-04-01T17:53:38Z |
| Category | Formal Methods, Symbolic Computation |
| Source repo | head: git clone https://github.com/BillHallahan/G2.git |
| Distributions | |
| Reverse Dependencies | 1 direct, 0 indirect [details] |
| Executables | Nebula, Inference, G2LH, G2 |
| Downloads | 1033 total (10 in the last 30 days) |
| Rating | (no votes yet) [estimated by Bayesian average] |
| Your Rating |
|
| Status | Docs not available [build log] All reported builds failed as of 2024-03-22 [all 2 reports] |
Readme for g2-0.2.0.0
[back to package description]G2 Haskell Symbolic Execution Engine
About
G2 performs lazy symbolic execution of Haskell programs to detect state reachability. It is capable of generating assertion failure counterexamples and solving for higher-order functions.
Dependencies
- GHC: https://www.haskell.org/ghc/
- Custom Haskell Standard Library: https://github.com/BillHallahan/base-4.9.1.0
- Z3 SMT Solver: https://github.com/Z3Prover/z3
Setup:
- Install GHC.
- Install Z3. Ensure Z3 is in your system's path.
- Pull the Custom Haskell Standard Library into ~/.g2 by running
bash base_setup.sh.
Command line:
Reachability:
cabal run G2 ./tests/Samples/Peano.hs add
LiquidHaskell:
cabal run G2LH ./tests/Liquid/Peano.hs add
Arguments:
--nnumber of reduction steps to run--max-outputsnumber of inputs/results to display--smtPass "z3" or "cvc4" to select a solver [Default: Z3]--timeSet a timeout in seconds