Ejemplo n.º 1
0
 bool theory_special_relations::relation::new_eq_eh(literal l, theory_var v1, theory_var v2) {
     ensure_var(v1);
     ensure_var(v2);
     literal_vector ls;
     ls.push_back(l);
     return 
         m_graph.enable_edge(m_graph.add_edge(v1, v2, s_integer(0), ls)) &&
         m_graph.enable_edge(m_graph.add_edge(v2, v1, s_integer(0), ls));            
 }
Ejemplo n.º 2
0
s_integer power(const s_integer & r, unsigned p) {
    unsigned mask = 1;
    s_integer result = s_integer(1);
    s_integer power = r;
    while (mask <= p) {
        if (mask & p) {
            result *= power;
        }
        power *= power;
        mask = mask << 1;
    }
    return result;
}