foxdec-0.1.0.0: Formally Verified x86-64 Decompilation
Safe HaskellNone
LanguageHaskell2010

Analysis.SymbolicExecution

Description

 
Synopsis

Documentation

tau_block Source #

Arguments

:: FContext

The context

-> [Instruction]

The instructions of the basic block

-> Maybe [Instruction]

Optionally, the instructions of the next block if symbolically executing an edge in a CFG.

-> Pred

The predicate to be transformed

-> (Pred, VCS) 

Do predicate transformation over a basic block in a CFG. Given an edge in the CFG from none block to another, perform predicate transformation. Parameter insts' is needed to set the flags properly. If Nothing is supplied, the flags are overapproximatively set to None.

init_pred Source #

Arguments

:: FContext

The current context

-> Invariants

The currently available invariants

-> Set (NodeInfo, Pred)

The currently known postconditions

-> Set StatePart

The currently known stateparts of the function

-> Pred 

The initial predicate.

gather_stateparts Source #

Arguments

:: Invariants

The currently available invariants

-> Set (NodeInfo, Pred)

The currently known postconditions

-> Set StatePart 

Given the currently known invariants and postconditions, gather all stateparts occurring in the current function.

invariant_to_finit :: FContext -> Pred -> FInit Source #

Convert the current invariant into a function initialisation

join_finit :: FContext -> FInit -> FInit -> FInit Source #

The join between two function initialisations

get_invariant :: FContext -> Int -> Maybe Pred Source #

Get the invariant for a given instruction address for a given function entry

Orphan instances