|
cprover
|
#include <qbf_bdd_core.h>
Public Member Functions | |
| qbf_bdd_coret () | |
| virtual | ~qbf_bdd_coret () |
| virtual literalt | new_variable () |
| Generate a new variable and return it as a literal. More... | |
| virtual void | lcnf (const bvt &bv) |
| virtual literalt | lor (literalt a, literalt b) |
| virtual literalt | lor (const bvt &bv) |
| Tseitin encoding of disjunction between multiple literals. More... | |
| virtual const std::string | solver_text () |
| virtual resultt | prop_solve () |
| virtual tvt | l_get (literalt a) const |
| virtual bool | is_in_core (literalt l) const |
| virtual modeltypet | m_get (literalt a) const |
Public Member Functions inherited from qbf_bdd_certificatet | |
| qbf_bdd_certificatet (void) | |
| virtual | ~qbf_bdd_certificatet (void) |
| virtual const exprt | f_get (literalt l) |
Public Member Functions inherited from qdimacs_coret | |
| void | simplify_extractbits (exprt &expr) const |
Public Member Functions inherited from qdimacs_cnft | |
| qdimacs_cnft () | |
| virtual | ~qdimacs_cnft () |
| virtual void | write_qdimacs_cnf (std::ostream &out) |
| virtual void | add_quantifier (const quantifiert &quantifier) |
| void | add_quantifier (const quantifiert::typet type, const literalt l) |
| void | add_existential_quantifier (const literalt l) |
| void | add_universal_quantifier (const literalt l) |
| bool | is_quantified (const literalt l) const |
| bool | find_quantifier (const literalt l, quantifiert &q) const |
| virtual void | set_quantifier (const quantifiert::typet type, const literalt l) |
| void | copy_to (qdimacs_cnft &cnf) const |
| bool | operator== (const qdimacs_cnft &other) const |
| size_t | hash () const |
Public Member Functions inherited from dimacs_cnft | |
| dimacs_cnft () | |
| virtual | ~dimacs_cnft () |
| virtual void | write_dimacs_cnf (std::ostream &out) |
Public Member Functions inherited from cnf_clause_listt | |
| cnf_clause_listt () | |
| virtual | ~cnf_clause_listt () |
| virtual size_t | no_clauses () const |
| clausest & | get_clauses () |
| void | copy_to (cnft &cnf) const |
| size_t | hash () const |
Public Member Functions inherited from cnft | |
| cnft () | |
| virtual | ~cnft () |
| virtual literalt | land (literalt a, literalt b) override |
| virtual literalt | land (const bvt &bv) override |
| Tseitin encoding of conjunction between multiple literals. More... | |
| virtual literalt | lxor (const bvt &bv) override |
| Tseitin encoding of XOR between multiple literals. More... | |
| virtual literalt | lxor (literalt a, literalt b) override |
| virtual literalt | lnand (literalt a, literalt b) override |
| virtual literalt | lnor (literalt a, literalt b) override |
| virtual literalt | lequal (literalt a, literalt b) override |
| virtual literalt | limplies (literalt a, literalt b) override |
| virtual literalt | lselect (literalt a, literalt b, literalt c) override |
| virtual size_t | no_variables () const override |
| virtual void | set_no_variables (size_t no) |
| void | gate_and (literalt a, literalt b, literalt o) |
| Tseitin encoding of conjunction of two literals. More... | |
| void | gate_or (literalt a, literalt b, literalt o) |
| Tseitin encoding of disjunction of two literals. More... | |
| void | gate_xor (literalt a, literalt b, literalt o) |
| Tseitin encoding of XOR of two literals. More... | |
| void | gate_nand (literalt a, literalt b, literalt o) |
| Tseitin encoding of NAND of two literals. More... | |
| void | gate_nor (literalt a, literalt b, literalt o) |
| Tseitin encoding of NOR of two literals. More... | |
| void | gate_equal (literalt a, literalt b, literalt o) |
| Tseitin encoding of equality between two literals. More... | |
| void | gate_implies (literalt a, literalt b, literalt o) |
| Tseitin encoding of implication between two literals. More... | |
Public Member Functions inherited from propt | |
| propt () | |
| virtual | ~propt () |
| virtual void | set_equal (literalt a, literalt b) |
| asserts a==b in the propositional formula More... | |
| virtual void | l_set_to (literalt a, bool value) |
| void | l_set_to_true (literalt a) |
| void | l_set_to_false (literalt a) |
| void | lcnf (literalt l0, literalt l1) |
| void | lcnf (literalt l0, literalt l1, literalt l2) |
| void | lcnf (literalt l0, literalt l1, literalt l2, literalt l3) |
| virtual bool | has_set_to () const |
| virtual bool | cnf_handled_well () const |
| virtual void | set_assumptions (const bvt &_assumptions) |
| virtual bool | has_set_assumptions () const |
| virtual void | set_variable_name (literalt a, const std::string &name) |
| bvt | new_variables (std::size_t width) |
| generates a bitvector of given width with new variables More... | |
| virtual void | set_assignment (literalt a, bool value) |
| virtual void | copy_assignment_from (const propt &prop) |
| virtual bool | is_in_conflict (literalt l) const |
| virtual bool | has_is_in_conflict () const |
| virtual void | set_frozen (literalt a) |
Public Member Functions inherited from prop_assignmentt | |
| virtual | ~prop_assignmentt () |
Protected Member Functions | |
| void | compress_certificate (void) |
Protected Member Functions inherited from qdimacs_cnft | |
| void | write_prefix (std::ostream &out) const |
Protected Member Functions inherited from dimacs_cnft | |
| void | write_problem_line (std::ostream &out) |
| void | write_clauses (std::ostream &out) |
Protected Member Functions inherited from cnft | |
| bool | process_clause (const bvt &bv, bvt &dest) |
| filter 'true' from clause, eliminate duplicates, recognise trivially satisfied clauses More... | |
Private Types | |
| typedef std::vector< BDD * > | bdd_variable_mapt |
Private Attributes | |
| bdd_variable_mapt | bdd_variable_map |
| BDD * | matrix |
Additional Inherited Members | |
Public Types inherited from qdimacs_coret | |
| enum | modeltypet { M_TRUE, M_FALSE, M_DONTCARE, M_COMPLEX } |
| typedef std::pair< exprt, unsigned > | symbol_mapt |
| typedef std::map< unsigned, symbol_mapt > | variable_mapt |
Public Types inherited from qdimacs_cnft | |
| typedef std::vector< quantifiert > | quantifierst |
Public Types inherited from cnf_clause_listt | |
| typedef std::list< bvt > | clausest |
Public Types inherited from propt | |
| enum | resultt { resultt::P_SATISFIABLE, resultt::P_UNSATISFIABLE, resultt::P_ERROR } |
Static Public Member Functions inherited from cnf_clause_listt | |
| static size_t | hash_clause (const bvt &bv) |
Static Public Member Functions inherited from cnft | |
| static bvt | eliminate_duplicates (const bvt &) |
| eliminate duplicates from given vector of literals More... | |
Public Attributes inherited from qdimacs_coret | |
| variable_mapt | variable_map |
Public Attributes inherited from qdimacs_cnft | |
| quantifierst | quantifiers |
Protected Types inherited from qbf_bdd_certificatet | |
| typedef std::vector< BDD * > | model_bddst |
| typedef std::unordered_map< unsigned, exprt > | function_cachet |
Static Protected Member Functions inherited from cnft | |
| static bool | is_all (const bvt &bv, literalt l) |
Protected Attributes inherited from qbf_bdd_certificatet | |
| Cudd * | bdd_manager |
| model_bddst | model_bdds |
| function_cachet | function_cache |
Protected Attributes inherited from dimacs_cnft | |
| bool | break_lines |
Protected Attributes inherited from cnf_clause_listt | |
| clausest | clauses |
Protected Attributes inherited from cnft | |
| size_t | _no_variables |
Protected Attributes inherited from propt | |
| bvt | lcnf_bv |
Definition at line 43 of file qbf_bdd_core.h.
|
private |
Definition at line 46 of file qbf_bdd_core.h.
| qbf_bdd_coret::qbf_bdd_coret | ( | ) |
Definition at line 61 of file qbf_bdd_core.cpp.
References qbf_bdd_certificatet::bdd_manager, and matrix.
|
virtual |
Definition at line 67 of file qbf_bdd_core.cpp.
References bdd_variable_map, and matrix.
|
protected |
Definition at line 242 of file qbf_bdd_core.cpp.
References qbf_bdd_certificatet::bdd_manager, bdd_variable_map, messaget::eom(), qbf_bdd_certificatet::model_bdds, qdimacs_cnft::quantifiers, and messaget::status().
Referenced by prop_solve().
|
virtual |
Implements qdimacs_coret.
Definition at line 154 of file qbf_bdd_core.cpp.
Reimplemented from qbf_bdd_certificatet.
Definition at line 83 of file qbf_bdd_core.cpp.
|
virtual |
Reimplemented from cnf_clause_listt.
Definition at line 176 of file qbf_bdd_core.cpp.
References qbf_bdd_certificatet::bdd_manager, bdd_variable_map, matrix, and cnft::process_clause().
Reimplemented from cnft.
Definition at line 198 of file qbf_bdd_core.cpp.
References bdd_variable_map, new_variable(), literalt::sign(), and literalt::var_no().
Tseitin encoding of disjunction between multiple literals.
Reimplemented from cnft.
Definition at line 215 of file qbf_bdd_core.cpp.
References bdd_variable_map, const_literal(), new_variable(), and literalt::var_no().
|
virtual |
Implements qdimacs_coret.
Definition at line 159 of file qbf_bdd_core.cpp.
|
virtual |
Generate a new variable and return it as a literal.
Reimplemented from qbf_bdd_certificatet.
Definition at line 164 of file qbf_bdd_core.cpp.
References qbf_bdd_certificatet::bdd_manager, bdd_variable_map, qbf_bdd_certificatet::new_variable(), and literalt::var_no().
Referenced by lor().
|
virtual |
Reimplemented from cnf_clause_listt.
Definition at line 94 of file qbf_bdd_core.cpp.
References qbf_bdd_certificatet::bdd_manager, bdd_variable_map, compress_certificate(), messaget::eom(), matrix, qbf_bdd_certificatet::model_bdds, cnft::no_variables(), propt::P_ERROR, propt::P_SATISFIABLE, propt::P_UNSATISFIABLE, qdimacs_cnft::quantifiers, solver_text(), and messaget::status().
|
virtual |
Reimplemented from qdimacs_cnft.
Definition at line 89 of file qbf_bdd_core.cpp.
Referenced by prop_solve().
|
private |
Definition at line 47 of file qbf_bdd_core.h.
Referenced by compress_certificate(), lcnf(), lor(), new_variable(), prop_solve(), and ~qbf_bdd_coret().
|
private |
Definition at line 49 of file qbf_bdd_core.h.
Referenced by lcnf(), prop_solve(), qbf_bdd_coret(), and ~qbf_bdd_coret().