void danger_verify_configt::process(const candidatet &candidate) { program=original_program; quantifiers.clear(); const danger_constraint constraint(program.use_ranking); invariant_insert_constraint(quantifiers, program, std::cref(constraint)); danger_insert_candidate(program, candidate); goto_functionst &gf=program.gf; if (limit_ce) restrict_bv_size(program.st, gf, max_ce_width); gf.update(); }
void safety_verify_configt::process(const candidatet &candidate) { program=original_program; quantifiers.clear(); const safety_programt &prog=program; const invariant_programt::const_invariant_loopst loops(prog.get_loops()); assert(!loops.empty()); const size_t offset( program.x0_choices.size() + loops.front()->skolem_choices.size()); invariant_insert_constraint(quantifiers, program, create_safety_constraint, offset); safety_insert_candidate(program, candidate); program.gf.update(); }
void safety_fitness_configt::set_candidate(const candidatet &candidate) { if (!constraint_inserted) { program_with_constraint=original_program; invariant_insert_constraint(original_quantifiers, program_with_constraint, create_safety_constraint); constraint_inserted=true; } program=program_with_constraint; quantifiers=original_quantifiers; fix_quantifiers(program_with_constraint, program, quantifiers); program_contains_ce=false; safety_insert_candidate(program, candidate); }