예제 #1
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);
}
예제 #2
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());
}
예제 #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()));
}