Copyright | (c) Galois Inc 2018 |
---|---|
License | BSD3 |
Maintainer | Rob Dockins <rdockins@galois.com> |
Stability | provisional |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
Lang.Crucible.Simulator.PathSatisfiability
Description
Synopsis
- checkPathSatisfiability :: ConfigOption BaseBoolType
- pathSatisfiabilityFeature :: forall sym. IsSymInterface sym => sym -> (Maybe ProgramLoc -> Pred sym -> IO BranchResult) -> IO (GenericExecutionFeature sym)
- checkSatToConsiderBranch :: IsSymInterface sym => sym -> (Pred sym -> IO (SatResult () ())) -> Pred sym -> IO BranchResult
- data BranchResult
Documentation
pathSatisfiabilityFeature Source #
Arguments
:: forall sym. IsSymInterface sym | |
=> sym | |
-> (Maybe ProgramLoc -> Pred sym -> IO BranchResult) | An action for considering the satisfiability of a predicate. In the current state of the symbolic interface, indicate what we can determine about the given predicate. |
-> IO (GenericExecutionFeature sym) |
checkSatToConsiderBranch :: IsSymInterface sym => sym -> (Pred sym -> IO (SatResult () ())) -> Pred sym -> IO BranchResult Source #
data BranchResult Source #
Result of attempting to branch on a predicate.
Constructors
IndeterminateBranchResult | The both branches of the predicate might be satisfiable (although satisfiablility of either branch is not guaranteed). |
NoBranch !Bool | Commit to the branch where the given predicate is equal to the returned boolean. The opposite branch is unsatisfiable (although the given branch is not necessarily satisfiable). |
UnsatisfiableContext | The context before considering the given predicate was already unsatisfiable. |