| 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. |