mirror of
https://github.com/c-cube/sidekick.git
synced 2025-12-06 03:05:31 -05:00
105 lines
No EOL
7.1 KiB
HTML
105 lines
No EOL
7.1 KiB
HTML
<!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="next" href="Hstring.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="Index of module types" rel=Appendix href="index_module_types.html">
|
|
<link title="Smt" rel="Chapter" href="Smt.html">
|
|
<link title="Hstring" rel="Chapter" href="Hstring.html"><link title="Error handling " rel="Section" href="#2_Errorhandling">
|
|
<link title="Typing " rel="Section" href="#2_Typing">
|
|
<link title="Building terms" rel="Section" href="#2_Buildingterms">
|
|
<link title="Building formulas" rel="Section" href="#2_Buildingformulas">
|
|
<link title="The SMT solver" rel="Section" href="#2_TheSMTsolver">
|
|
<title>Smt</title>
|
|
</head>
|
|
<body>
|
|
<div class="navbar"> <a href="index.html">Up</a>
|
|
<a href="Hstring.html">Next</a>
|
|
</div>
|
|
<center><h1>Module <a href="type_Smt.html">Smt</a></h1></center>
|
|
<br>
|
|
<pre><span class="keyword">module</span> Smt: <code class="code">sig</code> <a href="Smt.html">..</a> <code class="code">end</code></pre><b>The Alt-Ergo Zero SMT library</b>
|
|
<p>
|
|
|
|
This SMT solver is derived from <a href="http://alt-ergo.lri.fr"> Alt-Ergo</a>. It
|
|
uses an efficient SAT solver and supports the following quantifier free
|
|
theories:<ul>
|
|
<li>Equality and uninterpreted functions</li>
|
|
<li>Arithmetic (linear, non-linear, integer, reals)</li>
|
|
<li>Enumerated data-types</li>
|
|
</ul>
|
|
|
|
This API makes heavy use of hash-consed strings. Please take a moment to
|
|
look at <a href="Hstring.html"><code class="code">Hstring</code></a>.<br>
|
|
<hr width="100%">
|
|
<br>
|
|
<span id="2_Errorhandling"><h2>Error handling </h2></span><br>
|
|
<br><code><span id="TYPEerror"><span class="keyword">type</span> <code class="type"></code>error</span> = </code><table class="typetable">
|
|
<tr>
|
|
<td align="left" valign="top" >
|
|
<code><span class="keyword">|</span></code></td>
|
|
<td align="left" valign="top" >
|
|
<code><span class="constructor">DuplicateTypeName</span> <span class="keyword">of</span> <code class="type"><a href="Hstring.html#TYPEt">Hstring.t</a></code></code></td>
|
|
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >raised when a type is already declared</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left" valign="top" >
|
|
<code><span class="keyword">|</span></code></td>
|
|
<td align="left" valign="top" >
|
|
<code><span class="constructor">DuplicateSymb</span> <span class="keyword">of</span> <code class="type"><a href="Hstring.html#TYPEt">Hstring.t</a></code></code></td>
|
|
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >raised when a symbol is already declared</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left" valign="top" >
|
|
<code><span class="keyword">|</span></code></td>
|
|
<td align="left" valign="top" >
|
|
<code><span class="constructor">UnknownType</span> <span class="keyword">of</span> <code class="type"><a href="Hstring.html#TYPEt">Hstring.t</a></code></code></td>
|
|
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >raised when the given type is not declared</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="left" valign="top" >
|
|
<code><span class="keyword">|</span></code></td>
|
|
<td align="left" valign="top" >
|
|
<code><span class="constructor">UnknownSymb</span> <span class="keyword">of</span> <code class="type"><a href="Hstring.html#TYPEt">Hstring.t</a></code></code></td>
|
|
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >raised when the given symbol is not declared</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
|
|
</tr></table>
|
|
|
|
|
|
<pre><span id="EXCEPTIONError"><span class="keyword">exception</span> Error</span> <span class="keyword">of</span> <code class="type"><a href="Smt.html#TYPEerror">error</a></code></pre>
|
|
<br>
|
|
<span id="2_Typing"><h2>Typing </h2></span><br>
|
|
<pre><span class="keyword">module</span> <a href="Smt.Type.html">Type</a>: <code class="code">sig</code> <a href="Smt.Type.html">..</a> <code class="code">end</code></pre><div class="info">
|
|
Typing
|
|
</div>
|
|
<pre><span class="keyword">module</span> <a href="Smt.Symbol.html">Symbol</a>: <code class="code">sig</code> <a href="Smt.Symbol.html">..</a> <code class="code">end</code></pre><div class="info">
|
|
Function symbols
|
|
</div>
|
|
<pre><span class="keyword">module</span> <a href="Smt.Variant.html">Variant</a>: <code class="code">sig</code> <a href="Smt.Variant.html">..</a> <code class="code">end</code></pre><div class="info">
|
|
Variants
|
|
</div>
|
|
<br>
|
|
<span id="2_Buildingterms"><h2>Building terms</h2></span><br>
|
|
<pre><span class="keyword">module</span> <a href="Smt.Term.html">Term</a>: <code class="code">sig</code> <a href="Smt.Term.html">..</a> <code class="code">end</code></pre><br>
|
|
<span id="2_Buildingformulas"><h2>Building formulas</h2></span><br>
|
|
<pre><span class="keyword">module</span> <a href="Smt.Formula.html">Formula</a>: <code class="code">sig</code> <a href="Smt.Formula.html">..</a> <code class="code">end</code></pre><br>
|
|
<span id="2_TheSMTsolver"><h2>The SMT solver</h2></span><br>
|
|
<pre><span id="EXCEPTIONUnsat"><span class="keyword">exception</span> Unsat</span> <span class="keyword">of</span> <code class="type">int list</code></pre>
|
|
<div class="info">
|
|
The exception raised by <a href="Smt.Solver.html#VALcheck"><code class="code">Smt.Solver.check</code></a> and <a href="Smt.Solver.html#VALassume"><code class="code">Smt.Solver.assume</code></a> when
|
|
the formula is unsatisfiable.<br>
|
|
</div>
|
|
<pre><span id="VALset_cc"><span class="keyword">val</span> set_cc</span> : <code class="type">bool -> unit</code></pre><div class="info">
|
|
set_cc <code class="code">false</code> deactivates congruence closure algorithm
|
|
(<code class="code">true</code> by default).<br>
|
|
</div>
|
|
<pre><span class="keyword">module type</span> <a href="Smt.Solver.html">Solver</a> = <code class="code">sig</code> <a href="Smt.Solver.html">..</a> <code class="code">end</code></pre><pre><span class="keyword">module</span> <a href="Smt.Make.html">Make</a>: <div class="sig_block"><code class="code">functor (</code><code class="code">Dummy</code><code class="code"> : </code><code class="code">sig</code><div class="sig_block"></div><code class="code">end</code><code class="code">) -> </code><code class="type"><a href="Smt.Solver.html">Solver</a></code><code class="type"> </code></div></pre><div class="info">
|
|
Functor to create several instances of the solver
|
|
</div>
|
|
</body></html> |