示例#1
0
bmc_engine::bmc_engine(const system::context& ctx)
    : engine(ctx)
    , d_trace(0)
{
    // Make the solver
    d_solver = smt::factory::mk_default_solver(ctx.tm(), ctx.get_options(), ctx.get_statistics());
}
示例#2
0
ic3_engine::ic3_engine(const system::context& ctx)
: engine(ctx)
, d_transition_system(0)
, d_property(0)
, d_trace(0)
, d_smt(0)
, d_reachability(ctx)
, d_induction_frame_index(0)
, d_induction_frame_depth(0)
, d_induction_frame_index_next(0)
, d_property_invalid(false)
, d_learning_type(LEARN_UNDEFINED)
{
  d_stats.frame_index = new utils::stat_int("ic3::frame_index", 0);
  d_stats.induction_depth = new utils::stat_int("ic3::induction_depth", 0);
  d_stats.frame_size = new utils::stat_int("ic3::frame_size", 0);
  d_stats.frame_pushed = new utils::stat_int("ic3::frame_pushed", 0);
  d_stats.queue_size = new utils::stat_int("ic3::queue_size", 0);
  d_stats.max_cex_depth = new utils::stat_int("ic3::max_cex_depth", 0);
  ctx.get_statistics().add(new utils::stat_delimiter());
  ctx.get_statistics().add(d_stats.frame_index);
  ctx.get_statistics().add(d_stats.induction_depth);
  ctx.get_statistics().add(d_stats.frame_size);
  ctx.get_statistics().add(d_stats.frame_pushed);
  ctx.get_statistics().add(d_stats.queue_size);
  ctx.get_statistics().add(d_stats.max_cex_depth);
}
示例#3
0
mcmt_state::mcmt_state(const system::context& context)
: d_context(context)
, d_variables("local vars")
, d_types("types")
{
  // Add the basic types
  term_manager& tm = context.tm();
  d_types.add_entry("Real", term_ref_strong(tm, tm.real_type()));
  d_types.add_entry("Bool", term_ref_strong(tm, tm.boolean_type()));
  d_types.add_entry("Int", term_ref_strong(tm, tm.integer_type()));
}
示例#4
0
reachability::reachability(const system::context& ctx)
: expr::gc_participant(ctx.tm())
, d_tm(ctx.tm())
, d_ctx(ctx)
, d_transition_system(0)
, d_smt(0)
{
  d_stats.reachable = new utils::stat_int("sally::ic3::reachable", 0);
  d_stats.unreachable = new utils::stat_int("sally::ic3::unreachable", 0);
  d_stats.queries = new utils::stat_int("sally::ic3::reachability_queries", 0);
  ctx.get_statistics().add(new utils::stat_delimiter());
  ctx.get_statistics().add(d_stats.reachable);
  ctx.get_statistics().add(d_stats.unreachable);
  ctx.get_statistics().add(d_stats.queries);
}