predabs_domaint::row_valuet predabs_domaint::get_row_value( const rowt &row, const templ_valuet &value) { assert(row<value.size()); assert(value.size()==templ.size()); return value[row]; }
void predabs_domaint::set_row_value( const rowt &row, const predabs_domaint::row_valuet &row_value, templ_valuet &value) { assert(row<value.size()); assert(value.size()==templ.size()); value[row]=row_value; }
/// post_guard=> (row_value=> row_expr) exprt predabs_domaint::get_row_post_constraint( const rowt &row, const templ_valuet &value) { assert(value.size()==templ.size()); return get_row_post_constraint(row, value[row]); }
exprt predabs_domaint::to_pre_constraints(const templ_valuet &value) { assert(value.size()==templ.size()); exprt::operandst c; for(std::size_t row=0; row<templ.size(); ++row) { c.push_back(get_row_pre_constraint(row, value[row])); } return conjunction(c); }
void predabs_domaint::make_not_post_constraints( const templ_valuet &value, exprt::operandst &cond_exprs) { assert(value.size()==templ.size()); cond_exprs.resize(templ.size()); exprt::operandst c; for(std::size_t row=0; row<templ.size(); row++) { cond_exprs[row]=and_exprt( templ[row].aux_expr, not_exprt(get_row_post_constraint(row, value))); } }