English
Kamil Dudka

Fast SAT Solver (C++, GAlib)

Detail souboru

Jméno:Stáhnoutgroup__SatProblem.html [Stáhnout]
Umístění: fss > doc > api > html
Velikost:17.9 KB
Poslední změna:2022-09-09 13:06

Zdrojový kód

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Fast SAT Solver: SAT Problem</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.4 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="namespaces.html"><span>Namespaces</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
  </ul>
</div>
<h1>SAT Problem</h1><hr><a name="_details"></a><h2>Detailed Description</h2>
Internal SAT Problem representation with necessary tools for reading and working with SAT Problems. 
<p>
<dl class="remark" compact><dt><b>Remarks:</b></dt><dd><ul>
<li>Interface <a class="el" href="classFastSatSolver_1_1IFormulaEvaluator.html" title="Evaluable formula&#39;s interface.">IFormulaEvaluator</a> - evaulable proposition formula's interface</li><li>Class <a class="el" href="classFastSatSolver_1_1InterpretedFormula.html" title="Interpreted formula implementation.">InterpretedFormula</a> - interpreted proposition formula implementation</li><li>Class <a class="el" href="classFastSatSolver_1_1SatProblem.html" title="SAT Problem module&#39;s facade.">SatProblem</a> - facade to this module </li></ul>
</dd></dl>
 
<p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Files</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="Formula_8h.html">Formula.h</a></td></tr>
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Propositional formula representation. <br></td></tr>
 
<p>
<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="SatProblem_8h.html">SatProblem.h</a></td></tr>
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">SAT Problem representation. <br></td></tr>
 
<p>
<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="Scanner_8h.html">Scanner.h</a></td></tr>
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Extensible lexical scanner used for reading SAT Problem specification. <br></td></tr>
 
<p>
<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFastSatSolver_1_1InterpretedFormula.html">InterpretedFormula</a></td></tr>
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Interpreted formula implementation.  <a href="classFastSatSolver_1_1InterpretedFormula.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFastSatSolver_1_1VariableContainer.html">VariableContainer</a></td></tr>
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Container for variables names.  <a href="classFastSatSolver_1_1VariableContainer.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFastSatSolver_1_1FormulaContainer.html">FormulaContainer</a></td></tr>
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Container for evaluable formulas.  <a href="classFastSatSolver_1_1FormulaContainer.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFastSatSolver_1_1SatProblem.html">SatProblem</a></td></tr>
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">SAT Problem module's facade.  <a href="classFastSatSolver_1_1SatProblem.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structFastSatSolver_1_1Token.html">Token</a></td></tr>
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Syntax unit representation - also called <b>token</b>.  <a href="structFastSatSolver_1_1Token.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFastSatSolver_1_1RawScanner.html">RawScanner</a></td></tr>
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Low-level scanner parses lexical units from opened file.  <a href="classFastSatSolver_1_1RawScanner.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFastSatSolver_1_1ScannerStringHandler.html">ScannerStringHandler</a></td></tr>
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Part of parser handling keywords and variable names.  <a href="classFastSatSolver_1_1ScannerStringHandler.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFastSatSolver_1_1ScannerFormulaHandler.html">ScannerFormulaHandler</a></td></tr>
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">High-level part of parser handling almost all tokens and building <a class="el" href="classFastSatSolver_1_1InterpretedFormula.html" title="Interpreted formula implementation.">InterpretedFormula</a> objects.  <a href="classFastSatSolver_1_1ScannerFormulaHandler.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">interface &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFastSatSolver_1_1IFormulaBuilder.html">IFormulaBuilder</a></td></tr>
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Interpreted formula's interface for parser which can read it.  <a href="classFastSatSolver_1_1IFormulaBuilder.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">interface &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFastSatSolver_1_1IFormulaEvaluator.html">IFormulaEvaluator</a></td></tr>
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Evaluable formula's interface.  <a href="classFastSatSolver_1_1IFormulaEvaluator.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">interface &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFastSatSolver_1_1IScanner.html">IScanner</a></td></tr>
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Extensible lexical scanner's interface.  <a href="classFastSatSolver_1_1IScanner.html#_details">More...</a><br></td></tr>
<tr><td colspan="2"><br><h2>Enumerations</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SatProblem.html#g9093554967c90043b2a4a74c028f3f08">EToken</a> { <br>
&nbsp;&nbsp;<a class="el" href="group__SatProblem.html#gg9093554967c90043b2a4a74c028f3f08ed5262e7be4aa45d3018726fdba828e6">T_VARIABLE</a>, 
<a class="el" href="group__SatProblem.html#gg9093554967c90043b2a4a74c028f3f08d04c6fedfc6e82b9cd961d926579f541">T_FALSE</a>, 
<a class="el" href="group__SatProblem.html#gg9093554967c90043b2a4a74c028f3f0866901c4f0f0cf6cd9002834b1f8f2075">T_TRUE</a>, 
<a class="el" href="group__SatProblem.html#gg9093554967c90043b2a4a74c028f3f0836d22df926b610573f0870bcb5c896f4">T_NOT</a>, 
<br>
&nbsp;&nbsp;<a class="el" href="group__SatProblem.html#gg9093554967c90043b2a4a74c028f3f0809d3f67b151bc1e002a78de682fc1c8b">T_AND</a>, 
<a class="el" href="group__SatProblem.html#gg9093554967c90043b2a4a74c028f3f08ee13d53546c9358e6b15a455f1c81fb6">T_OR</a>, 
<a class="el" href="group__SatProblem.html#gg9093554967c90043b2a4a74c028f3f0839cfc5f9514bb57aa46ffa6ea56a1cc7">T_XOR</a>, 
<a class="el" href="group__SatProblem.html#gg9093554967c90043b2a4a74c028f3f084f1a38203f5130575e81ba913c563c6d">T_LPAR</a>, 
<br>
&nbsp;&nbsp;<a class="el" href="group__SatProblem.html#gg9093554967c90043b2a4a74c028f3f0873ae5e7e19b86c649347b3fc95e448f9">T_RPAR</a>, 
<a class="el" href="group__SatProblem.html#gg9093554967c90043b2a4a74c028f3f085aa662332b125f31d3083778f48fc5c6">T_DELIM</a>, 
<a class="el" href="group__SatProblem.html#gg9093554967c90043b2a4a74c028f3f089882ff017eb83e311ec8ad12ab646455">T_EOF</a>, 
<a class="el" href="group__SatProblem.html#gg9093554967c90043b2a4a74c028f3f082b93aac4bda1ecc9cd242c671411c323">T_STRING</a>, 
<br>
&nbsp;&nbsp;<a class="el" href="group__SatProblem.html#gg9093554967c90043b2a4a74c028f3f085a46ce2527667b882c7cb58ba5062e2a">T_STACK_BOTTOM</a>, 
<a class="el" href="group__SatProblem.html#gg9093554967c90043b2a4a74c028f3f08ec24fb692561834cef7a9475281a778b">T_PARSER_EXPR</a>, 
<a class="el" href="group__SatProblem.html#gg9093554967c90043b2a4a74c028f3f086198c3be29647549fdb9e8a6da818acd">T_PARSER_EQ</a>, 
<a class="el" href="group__SatProblem.html#gg9093554967c90043b2a4a74c028f3f0807b73798f72d658ca655a549447b47d6">T_PARSER_LT</a>, 
<br>
&nbsp;&nbsp;<a class="el" href="group__SatProblem.html#gg9093554967c90043b2a4a74c028f3f08c53e9b3c78892af3eabea36deee730a8">T_PARSER_GT</a>, 
<a class="el" href="group__SatProblem.html#gg9093554967c90043b2a4a74c028f3f084a234c50a27b7ab40334ab8d52b6b67f">T_PARSER_INV</a>, 
<a class="el" href="group__SatProblem.html#gg9093554967c90043b2a4a74c028f3f08080dc4844adc27f572dfd7d4c72038f4">T_ERR_LEX</a> =  -1, 
<a class="el" href="group__SatProblem.html#gg9093554967c90043b2a4a74c028f3f08ae35a8e0b44afb4174d0357d55484ff1">T_ERR_EXPR</a> =  -2, 
<br>
&nbsp;&nbsp;<a class="el" href="group__SatProblem.html#gg9093554967c90043b2a4a74c028f3f08c76e1e4acf16e5ca401b5d82cbfe1f0f">T_ERR_PARSE</a> =  -3
<br>
 }</td></tr>
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Scanner tokens enumeration.  <a href="group__SatProblem.html#g9093554967c90043b2a4a74c028f3f08">More...</a><br></td></tr>
</table>
<hr><h2>Enumeration Type Documentation</h2>
<a class="anchor" name="g9093554967c90043b2a4a74c028f3f08"></a><!-- doxytag: member="FastSatSolver::EToken" ref="g9093554967c90043b2a4a74c028f3f08" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum EToken          </td>
        </tr>
      </table>
</div>
<div class="memdoc">
 
<p>
Scanner tokens enumeration. 
<p>
<dl class="attention" compact><dt><b>Attention:</b></dt><dd>Do not change enumeration order - it would break parser functionality</dd></dl>
<dl class="note" compact><dt><b>Note:</b></dt><dd>Parser error notifications can be dramatically extended in future. </dd></dl>
<dl compact><dt><b>Enumerator: </b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" name="gg9093554967c90043b2a4a74c028f3f08ed5262e7be4aa45d3018726fdba828e6"></a><!-- doxytag: member="T_VARIABLE" ref="gg9093554967c90043b2a4a74c028f3f08ed5262e7be4aa45d3018726fdba828e6" args="" -->T_VARIABLE</em>&nbsp;</td><td>
managed variable </td></tr>
<tr><td valign="top"><em><a class="anchor" name="gg9093554967c90043b2a4a74c028f3f08d04c6fedfc6e82b9cd961d926579f541"></a><!-- doxytag: member="T_FALSE" ref="gg9093554967c90043b2a4a74c028f3f08d04c6fedfc6e82b9cd961d926579f541" args="" -->T_FALSE</em>&nbsp;</td><td>
<code>0</code> <code>=</code> <code>FALSE</code> </td></tr>
<tr><td valign="top"><em><a class="anchor" name="gg9093554967c90043b2a4a74c028f3f0866901c4f0f0cf6cd9002834b1f8f2075"></a><!-- doxytag: member="T_TRUE" ref="gg9093554967c90043b2a4a74c028f3f0866901c4f0f0cf6cd9002834b1f8f2075" args="" -->T_TRUE</em>&nbsp;</td><td>
<code>1</code> <code>=</code> <code>TRUE</code> </td></tr>
<tr><td valign="top"><em><a class="anchor" name="gg9093554967c90043b2a4a74c028f3f0836d22df926b610573f0870bcb5c896f4"></a><!-- doxytag: member="T_NOT" ref="gg9093554967c90043b2a4a74c028f3f0836d22df926b610573f0870bcb5c896f4" args="" -->T_NOT</em>&nbsp;</td><td>
<code>~</code> <code>=</code> <code>NOT</code> </td></tr>
<tr><td valign="top"><em><a class="anchor" name="gg9093554967c90043b2a4a74c028f3f0809d3f67b151bc1e002a78de682fc1c8b"></a><!-- doxytag: member="T_AND" ref="gg9093554967c90043b2a4a74c028f3f0809d3f67b151bc1e002a78de682fc1c8b" args="" -->T_AND</em>&nbsp;</td><td>
<code>&amp;</code> <code>=</code> <code>AND</code> </td></tr>
<tr><td valign="top"><em><a class="anchor" name="gg9093554967c90043b2a4a74c028f3f08ee13d53546c9358e6b15a455f1c81fb6"></a><!-- doxytag: member="T_OR" ref="gg9093554967c90043b2a4a74c028f3f08ee13d53546c9358e6b15a455f1c81fb6" args="" -->T_OR</em>&nbsp;</td><td>
<code></code>| <code>=</code> <code>OR</code> </td></tr>
<tr><td valign="top"><em><a class="anchor" name="gg9093554967c90043b2a4a74c028f3f0839cfc5f9514bb57aa46ffa6ea56a1cc7"></a><!-- doxytag: member="T_XOR" ref="gg9093554967c90043b2a4a74c028f3f0839cfc5f9514bb57aa46ffa6ea56a1cc7" args="" -->T_XOR</em>&nbsp;</td><td>
<code>^</code> <code>=</code> <code>XOR</code> </td></tr>
<tr><td valign="top"><em><a class="anchor" name="gg9093554967c90043b2a4a74c028f3f084f1a38203f5130575e81ba913c563c6d"></a><!-- doxytag: member="T_LPAR" ref="gg9093554967c90043b2a4a74c028f3f084f1a38203f5130575e81ba913c563c6d" args="" -->T_LPAR</em>&nbsp;</td><td>
<code></code>( </td></tr>
<tr><td valign="top"><em><a class="anchor" name="gg9093554967c90043b2a4a74c028f3f0873ae5e7e19b86c649347b3fc95e448f9"></a><!-- doxytag: member="T_RPAR" ref="gg9093554967c90043b2a4a74c028f3f0873ae5e7e19b86c649347b3fc95e448f9" args="" -->T_RPAR</em>&nbsp;</td><td>
<code></code>) </td></tr>
<tr><td valign="top"><em><a class="anchor" name="gg9093554967c90043b2a4a74c028f3f085aa662332b125f31d3083778f48fc5c6"></a><!-- doxytag: member="T_DELIM" ref="gg9093554967c90043b2a4a74c028f3f085aa662332b125f31d3083778f48fc5c6" args="" -->T_DELIM</em>&nbsp;</td><td>
<code></code>; </td></tr>
<tr><td valign="top"><em><a class="anchor" name="gg9093554967c90043b2a4a74c028f3f089882ff017eb83e311ec8ad12ab646455"></a><!-- doxytag: member="T_EOF" ref="gg9093554967c90043b2a4a74c028f3f089882ff017eb83e311ec8ad12ab646455" args="" -->T_EOF</em>&nbsp;</td><td>
end of input </td></tr>
<tr><td valign="top"><em><a class="anchor" name="gg9093554967c90043b2a4a74c028f3f082b93aac4bda1ecc9cd242c671411c323"></a><!-- doxytag: member="T_STRING" ref="gg9093554967c90043b2a4a74c028f3f082b93aac4bda1ecc9cd242c671411c323" args="" -->T_STRING</em>&nbsp;</td><td>
string red from input (shoud be catched by <a class="el" href="classFastSatSolver_1_1ScannerStringHandler.html" title="Part of parser handling keywords and variable names.">ScannerStringHandler</a>) </td></tr>
<tr><td valign="top"><em><a class="anchor" name="gg9093554967c90043b2a4a74c028f3f085a46ce2527667b882c7cb58ba5062e2a"></a><!-- doxytag: member="T_STACK_BOTTOM" ref="gg9093554967c90043b2a4a74c028f3f085a46ce2527667b882c7cb58ba5062e2a" args="" -->T_STACK_BOTTOM</em>&nbsp;</td><td>
bottom of parser stack (behaves as terminal) </td></tr>
<tr><td valign="top"><em><a class="anchor" name="gg9093554967c90043b2a4a74c028f3f08ec24fb692561834cef7a9475281a778b"></a><!-- doxytag: member="T_PARSER_EXPR" ref="gg9093554967c90043b2a4a74c028f3f08ec24fb692561834cef7a9475281a778b" args="" -->T_PARSER_EXPR</em>&nbsp;</td><td>
expression (recursively) </td></tr>
<tr><td valign="top"><em><a class="anchor" name="gg9093554967c90043b2a4a74c028f3f086198c3be29647549fdb9e8a6da818acd"></a><!-- doxytag: member="T_PARSER_EQ" ref="gg9093554967c90043b2a4a74c028f3f086198c3be29647549fdb9e8a6da818acd" args="" -->T_PARSER_EQ</em>&nbsp;</td><td>
control <code>=</code> </td></tr>
<tr><td valign="top"><em><a class="anchor" name="gg9093554967c90043b2a4a74c028f3f0807b73798f72d658ca655a549447b47d6"></a><!-- doxytag: member="T_PARSER_LT" ref="gg9093554967c90043b2a4a74c028f3f0807b73798f72d658ca655a549447b47d6" args="" -->T_PARSER_LT</em>&nbsp;</td><td>
control <code>&lt;</code> </td></tr>
<tr><td valign="top"><em><a class="anchor" name="gg9093554967c90043b2a4a74c028f3f08c53e9b3c78892af3eabea36deee730a8"></a><!-- doxytag: member="T_PARSER_GT" ref="gg9093554967c90043b2a4a74c028f3f08c53e9b3c78892af3eabea36deee730a8" args="" -->T_PARSER_GT</em>&nbsp;</td><td>
control <code>&gt;</code> </td></tr>
<tr><td valign="top"><em><a class="anchor" name="gg9093554967c90043b2a4a74c028f3f084a234c50a27b7ab40334ab8d52b6b67f"></a><!-- doxytag: member="T_PARSER_INV" ref="gg9093554967c90043b2a4a74c028f3f084a234c50a27b7ab40334ab8d52b6b67f" args="" -->T_PARSER_INV</em>&nbsp;</td><td>
invalid sequence </td></tr>
<tr><td valign="top"><em><a class="anchor" name="gg9093554967c90043b2a4a74c028f3f08080dc4844adc27f572dfd7d4c72038f4"></a><!-- doxytag: member="T_ERR_LEX" ref="gg9093554967c90043b2a4a74c028f3f08080dc4844adc27f572dfd7d4c72038f4" args="" -->T_ERR_LEX</em>&nbsp;</td><td>
lexical error </td></tr>
<tr><td valign="top"><em><a class="anchor" name="gg9093554967c90043b2a4a74c028f3f08ae35a8e0b44afb4174d0357d55484ff1"></a><!-- doxytag: member="T_ERR_EXPR" ref="gg9093554967c90043b2a4a74c028f3f08ae35a8e0b44afb4174d0357d55484ff1" args="" -->T_ERR_EXPR</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" name="gg9093554967c90043b2a4a74c028f3f08c76e1e4acf16e5ca401b5d82cbfe1f0f"></a><!-- doxytag: member="T_ERR_PARSE" ref="gg9093554967c90043b2a4a74c028f3f08c76e1e4acf16e5ca401b5d82cbfe1f0f" args="" -->T_ERR_PARSE</em>&nbsp;</td><td>
</td></tr>
</table>
</dl>
 
<p>Definition at line <a class="el" href="Scanner_8h-source.html#l00044">44</a> of file <a class="el" href="Scanner_8h-source.html">Scanner.h</a>.</p>
 
</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Wed Nov 5 22:30:22 2008 for Fast SAT Solver by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.4 </small></address>
</body>
</html>