mirror of
https://github.com/c-cube/sidekick.git
synced 2025-12-06 03:05:31 -05:00
135 lines
No EOL
7.7 KiB
HTML
135 lines
No EOL
7.7 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="previous" href="Smt.Term.html">
|
|
<link rel="next" href="Smt.Make.html">
|
|
<link rel="Up" href="Smt.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"><title>Smt.Formula</title>
|
|
</head>
|
|
<body>
|
|
<div class="navbar"><a href="Smt.Term.html">Previous</a>
|
|
<a href="Smt.html">Up</a>
|
|
<a href="Smt.Make.html">Next</a>
|
|
</div>
|
|
<center><h1>Module <a href="type_Smt.Formula.html">Smt.Formula</a></h1></center>
|
|
<br>
|
|
<pre><span class="keyword">module</span> Formula: <code class="code">sig</code> <a href="Smt.Formula.html">..</a> <code class="code">end</code></pre><hr width="100%">
|
|
<br><code><span id="TYPEcomparator"><span class="keyword">type</span> <code class="type"></code>comparator</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">Eq</span></code></td>
|
|
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >equality (<code class="code">=</code>)</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">Neq</span></code></td>
|
|
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >disequality (<code class="code"><></code>)</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">Le</span></code></td>
|
|
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >inequality (<code class="code"><=</code>)</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">Lt</span></code></td>
|
|
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >strict inequality (<code class="code"><</code>)</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
|
|
</tr></table>
|
|
|
|
<div class="info">
|
|
The type of comparators:<br>
|
|
</div>
|
|
|
|
<br><code><span id="TYPEcombinator"><span class="keyword">type</span> <code class="type"></code>combinator</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">And</span></code></td>
|
|
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >conjunction</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">Or</span></code></td>
|
|
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >disjunction</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">Imp</span></code></td>
|
|
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >implication</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">Not</span></code></td>
|
|
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >negation</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
|
|
</tr></table>
|
|
|
|
<div class="info">
|
|
The type of operators<br>
|
|
</div>
|
|
|
|
<br><code><span id="TYPEt"><span class="keyword">type</span> <code class="type"></code>t</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">Lit</span> <span class="keyword">of</span> <code class="type">Literal.LT.t</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">Comb</span> <span class="keyword">of</span> <code class="type"><a href="Smt.Formula.html#TYPEcombinator">combinator</a> * <a href="Smt.Formula.html#TYPEt">t</a> list</code></code></td>
|
|
|
|
</tr></table>
|
|
|
|
<div class="info">
|
|
The type of ground formulas<br>
|
|
</div>
|
|
|
|
<pre><span id="VALf_true"><span class="keyword">val</span> f_true</span> : <code class="type"><a href="Smt.Formula.html#TYPEt">t</a></code></pre><div class="info">
|
|
The formula which represents <code class="code">true</code><br>
|
|
</div>
|
|
<pre><span id="VALf_false"><span class="keyword">val</span> f_false</span> : <code class="type"><a href="Smt.Formula.html#TYPEt">t</a></code></pre><div class="info">
|
|
The formula which represents <code class="code">false</code><br>
|
|
</div>
|
|
<pre><span id="VALmake_lit"><span class="keyword">val</span> make_lit</span> : <code class="type"><a href="Smt.Formula.html#TYPEcomparator">comparator</a> -> <a href="Smt.Term.html#TYPEt">Smt.Term.t</a> list -> <a href="Smt.Formula.html#TYPEt">t</a></code></pre><div class="info">
|
|
<code class="code">make_lit cmp [t1; t2]</code> creates the literal <code class="code">(t1 <cmp> t2)</code>.<br>
|
|
</div>
|
|
<pre><span id="VALmake"><span class="keyword">val</span> make</span> : <code class="type"><a href="Smt.Formula.html#TYPEcombinator">combinator</a> -> <a href="Smt.Formula.html#TYPEt">t</a> list -> <a href="Smt.Formula.html#TYPEt">t</a></code></pre><div class="info">
|
|
<code class="code">make cmb [f_1; ...; f_n]</code> creates the formula
|
|
<code class="code">(f_1 <cmb> ... <cmb> f_n)</code>.<br>
|
|
</div>
|
|
<pre><span id="VALmake_cnf"><span class="keyword">val</span> make_cnf</span> : <code class="type"><a href="Smt.Formula.html#TYPEt">t</a> -> Literal.LT.t list list</code></pre><div class="info">
|
|
<code class="code">make_cnf f</code> returns a conjunctive normal form of <code class="code">f</code> under the form: a
|
|
list (which is a conjunction) of lists (which are disjunctions) of
|
|
literals.<br>
|
|
</div>
|
|
<pre><span id="VALprint"><span class="keyword">val</span> print</span> : <code class="type">Format.formatter -> <a href="Smt.Formula.html#TYPEt">t</a> -> unit</code></pre><div class="info">
|
|
<code class="code">print fmt f</code> prints the formula on the formatter <code class="code">fmt</code>.<br>
|
|
</div>
|
|
</body></html> |