Ejemplo n.º 1
0
 void mk_safe(expr_ref_vector& conjs) {
     datalog::flatten_and(conjs);
     for (unsigned i = 0; i < conjs.size(); ++i) {
         expr * atom = conjs[i].get();
         bool negated = m.is_not(atom, atom); //remove negation
         SASSERT(!m.is_true(atom));
         if (!is_uninterp(atom) || to_app(atom)->get_num_args() != 0) {
             app * name = mk_fresh(atom);
             conjs[i] = negated?m.mk_not(name):name;
         }
     }
 }
Ejemplo n.º 2
0
Archivo: bcd2.cpp Proyecto: EinNarr/z3
 void init_bcd() {
     m_trail.reset();
     m_asm_set.reset();
     m_cores.reset();
     m_sigmas.reset();
     m_lazy_soft.reset();
     for (unsigned i = 0; i < m_soft.size(); ++i) {
         m_sigmas.push_back(m_weights[i]);
         m_soft_aux.push_back(mk_fresh());
         if (m_enable_lazy) {
             m_lazy_soft.push_back(i);
         }
         else {
             enable_soft_constraint(i);
         }
     }
     m_upper += rational(1);                 
 }