<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<link rel="stylesheet" href="style.css" type="text/css">
<meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type">
<link rel="Start" href="index.html">
<link rel="previous" href="X86ToIR.html">
<link rel="next" href="ASMUtil.html">
<link rel="Up" href="index.html">
<link title="Index of types" rel=Appendix href="index_types.html">
<link title="Index of exceptions" rel=Appendix href="index_exceptions.html">
<link title="Index of values" rel=Appendix href="index_values.html">
<link title="Index of modules" rel=Appendix href="index_modules.html">
<link title="IDA" rel="Chapter" href="IDA.html">
<link title="IDAGraph" rel="Chapter" href="IDAGraph.html">
<link title="IDAHotKey" rel="Chapter" href="IDAHotKey.html">
<link title="IDATopLoop" rel="Chapter" href="IDATopLoop.html">
<link title="IDATrace" rel="Chapter" href="IDATrace.html">
<link title="JITRegion" rel="Chapter" href="JITRegion.html">
<link title="Z3" rel="Chapter" href="Z3.html">
<link title="IR" rel="Chapter" href="IR.html">
<link title="IRLocalOpt" rel="Chapter" href="IRLocalOpt.html">
<link title="IRTypeCheck" rel="Chapter" href="IRTypeCheck.html">
<link title="PpIR" rel="Chapter" href="PpIR.html">
<link title="X86" rel="Chapter" href="X86.html">
<link title="X86CFG" rel="Chapter" href="X86CFG.html">
<link title="X86Constraints" rel="Chapter" href="X86Constraints.html">
<link title="X86Decode" rel="Chapter" href="X86Decode.html">
<link title="X86Disasm" rel="Chapter" href="X86Disasm.html">
<link title="X86Encode" rel="Chapter" href="X86Encode.html">
<link title="X86InternalOperand" rel="Chapter" href="X86InternalOperand.html">
<link title="X86TypeCheck" rel="Chapter" href="X86TypeCheck.html">
<link title="X86Util" rel="Chapter" href="X86Util.html">
<link title="X86Random" rel="Chapter" href="X86Random.html">
<link title="X86ToIR" rel="Chapter" href="X86ToIR.html">
<link title="Z3SymbolicExecute" rel="Chapter" href="Z3SymbolicExecute.html">
<link title="ASMUtil" rel="Chapter" href="ASMUtil.html">
<link title="LowLevel" rel="Chapter" href="LowLevel.html"><title>Z3SymbolicExecute</title>
</head>
<body>
<div class="navbar"><a href="X86ToIR.html">Previous</a>
&nbsp;<a href="index.html">Up</a>
&nbsp;<a href="ASMUtil.html">Next</a>
</div>
<center><h1>Module <a href="type_Z3SymbolicExecute.html">Z3SymbolicExecute</a></h1></center>
<br>
<pre><span class="keyword">module</span> Z3SymbolicExecute: <code class="code">sig</code> <a href="Z3SymbolicExecute.html">..</a> <code class="code">end</code></pre>Decision procedure integration:  Performs symbolic execution using Z3 over 

    a given list of IR instructions, and given an arbitrary postcondition.<br>
<hr width="100%">
<pre><span id="VALsymbolic_execute"><span class="keyword">val</span> symbolic_execute</span> : <code class="type"><a href="IR.html#TYPEinstr">IR.instr</a> list -> <a href="IR.html#TYPEexpr">IR.expr</a> -> string</code></pre><div class="info">
Given a list of instructions, turn it into SSA form, asserting each 

    instruction as the assertion of a constraint.  So far, this does not 

    handle anything other than assignment statements (i.e. computed gotos 

    and conditional jumps as unsupported).  The second argument is a 

    postcondition which is asserted as being true; the variables in the

    postcondition are updated to match their post-SSA-translation 

    counterparts before being asserted. 

<p>

    To do:  saner and hopefully decision-procedure-generic extraction of the

    components of the countermodel, particularly arrays.<br>
</div>
</body></html>