Exemplo n.º 1
0
 bool context::check_watch_list(literal l) const {
     watch_list & wl = const_cast<watch_list &>(m_watches[l.index()]);
     l.neg();
     watch_list::clause_iterator it  = wl.begin_clause();
     watch_list::clause_iterator end = wl.end_clause();
     for (; it != end; ++it) {
         clause * cls = *it;
         TRACE("watch_list", tout << "l: "; display_literal(tout, l); tout << "\n";
               display_clause(tout, cls); tout << "\n";);
         SASSERT(l == cls->get_literal(0) || l == cls->get_literal(1));
     }
Exemplo n.º 2
0
 void context::display_clause_detail(std::ostream & out, clause const * cls) const {
     out << "lemma: " << cls->is_lemma() << "\n";
     unsigned num_lits = cls->get_num_literals();
     for (unsigned i = 0; i < num_lits; i++) {
         literal l = cls->get_literal(i);
         display_literal(out, l);
         out << ", val: " << get_assignment(l) << ", lvl: " << get_assign_level(l)
             << ", ilvl: " << get_intern_level(l.var()) << ", var: " << l.var() << "\n"
             << mk_pp(bool_var2expr(l.var()), m_manager) << "\n\n";
     }
 }
Exemplo n.º 3
0
 void context::display_assignment(std::ostream & out) const {
     if (!m_assigned_literals.empty()) {
         out << "current assignment:\n";
         for (literal lit : m_assigned_literals) {
             display_literal(out, lit);
             if (!is_relevant(lit)) out << " n ";
             out << ": ";
             display_verbose(out, m_manager, 1, &lit, m_bool_var2expr.c_ptr());
             out << "\n";
         }
     }
 }
Exemplo n.º 4
0
 void context::display_assignment(std::ostream & out) const {
     if (!m_assigned_literals.empty()) {
         out << "current assignment:\n";
         literal_vector::const_iterator it  = m_assigned_literals.begin();
         literal_vector::const_iterator end = m_assigned_literals.end();
         for (; it != end; ++it) {
             display_literal(out, *it);
             out << ": ";
             display_verbose(out, m_manager, 1, &*it, m_bool_var2expr.c_ptr());
             out << "\n";
         }
     }
 }
Exemplo n.º 5
0
 void context::display_binary_clauses(std::ostream & out) const {
     bool first = true;
     unsigned l_idx = 0;
     for (watch_list const& wl : m_watches) {
         literal l1 = to_literal(l_idx++);
         literal neg_l1 = ~l1;
         literal const * it2  = wl.begin_literals();
         literal const * end2 = wl.end_literals();
         for (; it2 != end2; ++it2) {
             literal l2 = *it2;
             if (l1.index() < l2.index()) {
                 if (first) {
                     out << "binary clauses:\n";
                     first = false;
                 }
                 out << "(clause ";
                 display_literal(out, neg_l1);
                 out << " ";
                 display_literal(out, l2);
                 out << ")\n";
             }
         }
     }
 }