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); }
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()); }
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())); }