twa: forward num_sets() to acc_.
* src/twa/twa.hh (num_sets): New method. Delegating to acc_. * src/twa/twagraph.hh, src/twa/twaproduct.cc, src/twa/twaproxy.cc, src/twaalgos/degen.cc, src/twaalgos/dot.cc, src/twaalgos/dtgbacomp.cc, src/twaalgos/dtgbasat.cc, src/twaalgos/gv04.cc, src/twaalgos/hoa.cc, src/twaalgos/lbtt.cc, src/twaalgos/magic.cc, src/twaalgos/mask.cc, src/twaalgos/ndfs_result.hxx, src/twaalgos/postproc.cc, src/twaalgos/powerset.cc, src/twaalgos/product.cc, src/twaalgos/remfin.cc, src/twaalgos/se05.cc, src/twaalgos/simulation.cc, src/twaalgos/stats.cc, src/twaalgos/stutter.cc, src/twaalgos/tau03.cc, src/twaalgos/tau03opt.cc, src/twaalgos/totgba.cc: Simplify acc().num_sets() into num_sets().
This commit is contained in:
parent
a86391ab77
commit
6f500f3f50
25 changed files with 44 additions and 39 deletions
|
|
@ -658,6 +658,11 @@ namespace spot
|
||||||
}
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
unsigned num_sets() const
|
||||||
|
{
|
||||||
|
return acc_.num_sets();
|
||||||
|
}
|
||||||
|
|
||||||
const acc_cond::acc_code& get_acceptance() const
|
const acc_cond::acc_code& get_acceptance() const
|
||||||
{
|
{
|
||||||
return acc_.get_acceptance();
|
return acc_.get_acceptance();
|
||||||
|
|
|
||||||
|
|
@ -438,7 +438,7 @@ namespace spot
|
||||||
|
|
||||||
acc_cond::mark_t state_acc_sets(unsigned s) const
|
acc_cond::mark_t state_acc_sets(unsigned s) const
|
||||||
{
|
{
|
||||||
assert(has_state_based_acc() || acc_.num_sets() == 0);
|
assert(has_state_based_acc() || num_sets() == 0);
|
||||||
for (auto& t: g_.out(s))
|
for (auto& t: g_.out(s))
|
||||||
// Stop at the first transition, since the remaining should be
|
// Stop at the first transition, since the remaining should be
|
||||||
// labeled identically.
|
// labeled identically.
|
||||||
|
|
@ -448,7 +448,7 @@ namespace spot
|
||||||
|
|
||||||
bool state_is_accepting(unsigned s) const
|
bool state_is_accepting(unsigned s) const
|
||||||
{
|
{
|
||||||
assert(has_state_based_acc() || acc_.num_sets() == 0);
|
assert(has_state_based_acc() || num_sets() == 0);
|
||||||
for (auto& t: g_.out(s))
|
for (auto& t: g_.out(s))
|
||||||
// Stop at the first transition, since the remaining should be
|
// Stop at the first transition, since the remaining should be
|
||||||
// labeled identically.
|
// labeled identically.
|
||||||
|
|
@ -465,7 +465,7 @@ namespace spot
|
||||||
{
|
{
|
||||||
if (num_states() != aut.num_states() ||
|
if (num_states() != aut.num_states() ||
|
||||||
num_transitions() != aut.num_transitions() ||
|
num_transitions() != aut.num_transitions() ||
|
||||||
acc().num_sets() != aut.acc().num_sets())
|
num_sets() != aut.num_sets())
|
||||||
return false;
|
return false;
|
||||||
auto& trans1 = transition_vector();
|
auto& trans1 = transition_vector();
|
||||||
auto& trans2 = aut.transition_vector();
|
auto& trans2 = aut.transition_vector();
|
||||||
|
|
|
||||||
|
|
@ -310,12 +310,12 @@ namespace spot
|
||||||
d->register_all_propositions_of(&left_, this);
|
d->register_all_propositions_of(&left_, this);
|
||||||
d->register_all_propositions_of(&right_, this);
|
d->register_all_propositions_of(&right_, this);
|
||||||
|
|
||||||
assert(acc_.num_sets() == 0);
|
assert(num_sets() == 0);
|
||||||
auto left_num = left->acc().num_sets();
|
auto left_num = left->num_sets();
|
||||||
auto right_acc = right->get_acceptance();
|
auto right_acc = right->get_acceptance();
|
||||||
right_acc.shift_left(left_num);
|
right_acc.shift_left(left_num);
|
||||||
right_acc.append_and(left->get_acceptance());
|
right_acc.append_and(left->get_acceptance());
|
||||||
set_acceptance(left_num + right->acc().num_sets(), right_acc);
|
set_acceptance(left_num + right->num_sets(), right_acc);
|
||||||
}
|
}
|
||||||
|
|
||||||
twa_product::~twa_product()
|
twa_product::~twa_product()
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@ namespace spot
|
||||||
: twa(original->get_dict()), original_(original)
|
: twa(original->get_dict()), original_(original)
|
||||||
{
|
{
|
||||||
get_dict()->register_all_variables_of(original, this);
|
get_dict()->register_all_variables_of(original, this);
|
||||||
acc_.add_sets(original->acc().num_sets());
|
acc_.add_sets(original->num_sets());
|
||||||
}
|
}
|
||||||
|
|
||||||
twa_proxy::~twa_proxy()
|
twa_proxy::~twa_proxy()
|
||||||
|
|
|
||||||
|
|
@ -226,7 +226,7 @@ namespace spot
|
||||||
// used in the automaton. (This surprising fact is probably
|
// used in the automaton. (This surprising fact is probably
|
||||||
// related to the order in which we declare the BDD variables
|
// related to the order in which we declare the BDD variables
|
||||||
// during the translation.)
|
// during the translation.)
|
||||||
unsigned n = a->acc().num_sets();
|
unsigned n = a->num_sets();
|
||||||
for (unsigned i = n; i > 0; --i)
|
for (unsigned i = n; i > 0; --i)
|
||||||
order.push_back(i - 1);
|
order.push_back(i - 1);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -277,7 +277,7 @@ namespace spot
|
||||||
if (opt_html_labels_)
|
if (opt_html_labels_)
|
||||||
std::tie(inf_sets_, fin_sets_) =
|
std::tie(inf_sets_, fin_sets_) =
|
||||||
aut_->get_acceptance().used_inf_fin_sets();
|
aut_->get_acceptance().used_inf_fin_sets();
|
||||||
if (opt_bullet && aut_->acc().num_sets() <= MAX_BULLET)
|
if (opt_bullet && aut_->num_sets() <= MAX_BULLET)
|
||||||
opt_all_bullets = true;
|
opt_all_bullets = true;
|
||||||
os_ << "digraph G {\n";
|
os_ << "digraph G {\n";
|
||||||
if (opt_horizontal_)
|
if (opt_horizontal_)
|
||||||
|
|
@ -366,7 +366,7 @@ namespace spot
|
||||||
{
|
{
|
||||||
if (mark_states_ &&
|
if (mark_states_ &&
|
||||||
((opt_bullet && !opt_bullet_but_buchi)
|
((opt_bullet && !opt_bullet_but_buchi)
|
||||||
|| aut_->acc().num_sets() != 1))
|
|| aut_->num_sets() != 1))
|
||||||
{
|
{
|
||||||
acc_cond::mark_t acc = 0U;
|
acc_cond::mark_t acc = 0U;
|
||||||
for (auto& t: aut_->out(s))
|
for (auto& t: aut_->out(s))
|
||||||
|
|
|
||||||
|
|
@ -174,7 +174,7 @@ namespace spot
|
||||||
// Simply complete the automaton, and complement its
|
// Simply complete the automaton, and complement its
|
||||||
// acceptance.
|
// acceptance.
|
||||||
auto res = cleanup_acceptance_here(tgba_complete(aut));
|
auto res = cleanup_acceptance_here(tgba_complete(aut));
|
||||||
res->set_acceptance(res->acc().num_sets(),
|
res->set_acceptance(res->num_sets(),
|
||||||
res->get_acceptance().complement());
|
res->get_acceptance().complement());
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -472,7 +472,7 @@ namespace spot
|
||||||
}
|
}
|
||||||
|
|
||||||
d.all_ref_acc.push_back(0U);
|
d.all_ref_acc.push_back(0U);
|
||||||
unsigned ref_nacc = aut->acc().num_sets();
|
unsigned ref_nacc = aut->num_sets();
|
||||||
for (unsigned n = 0; n < ref_nacc; ++n)
|
for (unsigned n = 0; n < ref_nacc; ++n)
|
||||||
{
|
{
|
||||||
auto c = aut->acc().mark(n);
|
auto c = aut->acc().mark(n);
|
||||||
|
|
@ -1233,7 +1233,7 @@ namespace spot
|
||||||
// Assume we are going to use the input automaton acceptance...
|
// Assume we are going to use the input automaton acceptance...
|
||||||
bool user_supplied_acc = false;
|
bool user_supplied_acc = false;
|
||||||
acc_cond::acc_code target_acc = a->get_acceptance();
|
acc_cond::acc_code target_acc = a->get_acceptance();
|
||||||
int nacc = a->acc().num_sets();
|
int nacc = a->num_sets();
|
||||||
|
|
||||||
if (accstr == "same")
|
if (accstr == "same")
|
||||||
accstr.clear();
|
accstr.clear();
|
||||||
|
|
|
||||||
|
|
@ -70,7 +70,7 @@ namespace spot
|
||||||
gv04(const const_twa_ptr& a, option_map o)
|
gv04(const const_twa_ptr& a, option_map o)
|
||||||
: emptiness_check(a, o)
|
: emptiness_check(a, o)
|
||||||
{
|
{
|
||||||
assert(a->acc().num_sets() <= 1);
|
assert(a->num_sets() <= 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
~gv04()
|
~gv04()
|
||||||
|
|
@ -383,7 +383,7 @@ namespace spot
|
||||||
|
|
||||||
const state* bfs_start = data.stack[scc_root].s;
|
const state* bfs_start = data.stack[scc_root].s;
|
||||||
const state* bfs_end = bfs_start;
|
const state* bfs_end = bfs_start;
|
||||||
if (a_->acc().num_sets() > 0)
|
if (a_->num_sets() > 0)
|
||||||
{
|
{
|
||||||
first_bfs b1(this, scc_root);
|
first_bfs b1(this, scc_root);
|
||||||
bfs_start = b1.search(bfs_start, res->cycle);
|
bfs_start = b1.search(bfs_start, res->cycle);
|
||||||
|
|
|
||||||
|
|
@ -97,7 +97,7 @@ namespace spot
|
||||||
bool complete = true;
|
bool complete = true;
|
||||||
bool state_acc = true;
|
bool state_acc = true;
|
||||||
bool nodeadend = true;
|
bool nodeadend = true;
|
||||||
bool colored = aut->acc().num_sets() >= 1;
|
bool colored = aut->num_sets() >= 1;
|
||||||
for (unsigned src = 0; src < ns; ++src)
|
for (unsigned src = 0; src < ns; ++src)
|
||||||
{
|
{
|
||||||
bdd sum = bddfalse;
|
bdd sum = bddfalse;
|
||||||
|
|
@ -296,7 +296,7 @@ namespace spot
|
||||||
}
|
}
|
||||||
os << nl;
|
os << nl;
|
||||||
|
|
||||||
unsigned num_acc = aut->acc().num_sets();
|
unsigned num_acc = aut->num_sets();
|
||||||
acc_cond::acc_code acc_c = aut->acc().get_acceptance();
|
acc_cond::acc_code acc_c = aut->acc().get_acceptance();
|
||||||
if (aut->acc().is_generalized_buchi())
|
if (aut->acc().is_generalized_buchi())
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -115,9 +115,9 @@ namespace spot
|
||||||
{
|
{
|
||||||
os_ << seen.size() << ' ';
|
os_ << seen.size() << ' ';
|
||||||
if (sba_format_)
|
if (sba_format_)
|
||||||
os_ << aut_->acc().num_sets();
|
os_ << aut_->num_sets();
|
||||||
else
|
else
|
||||||
os_ << aut_->acc().num_sets() << 't';
|
os_ << aut_->num_sets() << 't';
|
||||||
os_ << '\n' << body_.str() << "-1" << std::endl;
|
os_ << '\n' << body_.str() << "-1" << std::endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -59,7 +59,7 @@ namespace spot
|
||||||
: emptiness_check(a, o),
|
: emptiness_check(a, o),
|
||||||
h(size)
|
h(size)
|
||||||
{
|
{
|
||||||
assert(a->acc().num_sets() <= 1);
|
assert(a->num_sets() <= 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual ~magic_search_()
|
virtual ~magic_search_()
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,7 @@ namespace spot
|
||||||
auto res = make_twa_graph(in->get_dict());
|
auto res = make_twa_graph(in->get_dict());
|
||||||
res->copy_ap_of(in);
|
res->copy_ap_of(in);
|
||||||
res->prop_copy(in, { true, true, true, false });
|
res->prop_copy(in, { true, true, true, false });
|
||||||
unsigned na = in->acc().num_sets();
|
unsigned na = in->num_sets();
|
||||||
unsigned tr = to_remove.count();
|
unsigned tr = to_remove.count();
|
||||||
assert(tr <= na);
|
assert(tr <= na);
|
||||||
res->set_acceptance(na - tr,
|
res->set_acceptance(na - tr,
|
||||||
|
|
|
||||||
|
|
@ -119,7 +119,7 @@ namespace spot
|
||||||
start = stb.front().s->clone();
|
start = stb.front().s->clone();
|
||||||
if (!str.empty())
|
if (!str.empty())
|
||||||
{
|
{
|
||||||
if (a_->acc().num_sets() == 0)
|
if (a_->num_sets() == 0)
|
||||||
{
|
{
|
||||||
// take arbitrarily the last transition on the red stack
|
// take arbitrarily the last transition on the red stack
|
||||||
stack_type::const_iterator i, j;
|
stack_type::const_iterator i, j;
|
||||||
|
|
|
||||||
|
|
@ -41,7 +41,7 @@ namespace spot
|
||||||
static twa_graph_ptr
|
static twa_graph_ptr
|
||||||
ensure_ba(twa_graph_ptr& a)
|
ensure_ba(twa_graph_ptr& a)
|
||||||
{
|
{
|
||||||
if (a->acc().num_sets() == 0)
|
if (a->num_sets() == 0)
|
||||||
{
|
{
|
||||||
auto m = a->set_buchi();
|
auto m = a->set_buchi();
|
||||||
for (auto& t: a->transitions())
|
for (auto& t: a->transitions())
|
||||||
|
|
@ -153,7 +153,7 @@ namespace spot
|
||||||
if (type_ == Generic
|
if (type_ == Generic
|
||||||
|| type_ == TGBA
|
|| type_ == TGBA
|
||||||
|| (type_ == BA && a->is_sba())
|
|| (type_ == BA && a->is_sba())
|
||||||
|| (type_ == Monitor && a->acc().num_sets() == 0))
|
|| (type_ == Monitor && a->num_sets() == 0))
|
||||||
{
|
{
|
||||||
if (COMP_)
|
if (COMP_)
|
||||||
a = tgba_complete(a);
|
a = tgba_complete(a);
|
||||||
|
|
@ -171,7 +171,7 @@ namespace spot
|
||||||
if (type_ == BA || SBACC_)
|
if (type_ == BA || SBACC_)
|
||||||
state_based_ = true;
|
state_based_ = true;
|
||||||
|
|
||||||
int original_acc = a->acc().num_sets();
|
int original_acc = a->num_sets();
|
||||||
|
|
||||||
// Remove useless SCCs.
|
// Remove useless SCCs.
|
||||||
if (type_ == Monitor)
|
if (type_ == Monitor)
|
||||||
|
|
@ -301,7 +301,7 @@ namespace spot
|
||||||
if (PREF_ == Deterministic
|
if (PREF_ == Deterministic
|
||||||
&& f
|
&& f
|
||||||
&& f->is_syntactic_recurrence()
|
&& f->is_syntactic_recurrence()
|
||||||
&& sim->acc().num_sets() > 1)
|
&& sim->num_sets() > 1)
|
||||||
tmpd = degeneralize_tba(sim);
|
tmpd = degeneralize_tba(sim);
|
||||||
|
|
||||||
auto in = tmpd ? tmpd : sim;
|
auto in = tmpd ? tmpd : sim;
|
||||||
|
|
@ -370,7 +370,7 @@ namespace spot
|
||||||
// because the input TBA might be smaller.
|
// because the input TBA might be smaller.
|
||||||
if (state_based_)
|
if (state_based_)
|
||||||
in = degeneralize(dba);
|
in = degeneralize(dba);
|
||||||
else if (dba->acc().num_sets() != 1)
|
else if (dba->num_sets() != 1)
|
||||||
in = degeneralize_tba(dba);
|
in = degeneralize_tba(dba);
|
||||||
else
|
else
|
||||||
in = dba;
|
in = dba;
|
||||||
|
|
@ -423,7 +423,7 @@ namespace spot
|
||||||
// Degeneralize the dba resulting from tba-determinization or
|
// Degeneralize the dba resulting from tba-determinization or
|
||||||
// sat-minimization (which is a TBA) if requested and needed.
|
// sat-minimization (which is a TBA) if requested and needed.
|
||||||
if (dba && !dba_is_wdba && type_ == BA
|
if (dba && !dba_is_wdba && type_ == BA
|
||||||
&& !(dba_is_minimal && state_based_ && dba->acc().num_sets() == 1))
|
&& !(dba_is_minimal && state_based_ && dba->num_sets() == 1))
|
||||||
dba = degeneralize(dba);
|
dba = degeneralize(dba);
|
||||||
|
|
||||||
if (dba && sim)
|
if (dba && sim)
|
||||||
|
|
|
||||||
|
|
@ -410,7 +410,7 @@ namespace spot
|
||||||
{
|
{
|
||||||
if (f == 0 && neg_aut == 0)
|
if (f == 0 && neg_aut == 0)
|
||||||
return 0;
|
return 0;
|
||||||
if (aut->acc().num_sets() > 1)
|
if (aut->num_sets() > 1)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
auto det = tba_determinize(aut, threshold_states, threshold_cycles);
|
auto det = tba_determinize(aut, threshold_states, threshold_cycles);
|
||||||
|
|
|
||||||
|
|
@ -52,11 +52,11 @@ namespace spot
|
||||||
auto res = make_twa_graph(left->get_dict());
|
auto res = make_twa_graph(left->get_dict());
|
||||||
res->copy_ap_of(left);
|
res->copy_ap_of(left);
|
||||||
res->copy_ap_of(right);
|
res->copy_ap_of(right);
|
||||||
auto left_num = left->acc().num_sets();
|
auto left_num = left->num_sets();
|
||||||
auto right_acc = right->get_acceptance();
|
auto right_acc = right->get_acceptance();
|
||||||
right_acc.shift_left(left_num);
|
right_acc.shift_left(left_num);
|
||||||
right_acc.append_and(left->get_acceptance());
|
right_acc.append_and(left->get_acceptance());
|
||||||
res->set_acceptance(left_num + right->acc().num_sets(), right_acc);
|
res->set_acceptance(left_num + right->num_sets(), right_acc);
|
||||||
|
|
||||||
auto v = new product_states;
|
auto v = new product_states;
|
||||||
res->set_named_prop("product-states", v);
|
res->set_named_prop("product-states", v);
|
||||||
|
|
|
||||||
|
|
@ -264,7 +264,7 @@ namespace spot
|
||||||
res->copy_ap_of(aut);
|
res->copy_ap_of(aut);
|
||||||
res->prop_copy(aut, { false, false, false, true });
|
res->prop_copy(aut, { false, false, false, true });
|
||||||
res->new_states(nst);
|
res->new_states(nst);
|
||||||
res->set_acceptance(aut->acc().num_sets() + extra_sets, new_code);
|
res->set_acceptance(aut->num_sets() + extra_sets, new_code);
|
||||||
res->set_init_state(aut->get_init_state_number());
|
res->set_init_state(aut->get_init_state_number());
|
||||||
|
|
||||||
unsigned nscc = si.scc_count();
|
unsigned nscc = si.scc_count();
|
||||||
|
|
|
||||||
|
|
@ -59,7 +59,7 @@ namespace spot
|
||||||
: emptiness_check(a, o),
|
: emptiness_check(a, o),
|
||||||
h(size)
|
h(size)
|
||||||
{
|
{
|
||||||
assert(a->acc().num_sets() <= 1);
|
assert(a->num_sets() <= 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual ~se05_search()
|
virtual ~se05_search()
|
||||||
|
|
|
||||||
|
|
@ -258,7 +258,7 @@ namespace spot
|
||||||
unsigned set_num = a_->get_dict()
|
unsigned set_num = a_->get_dict()
|
||||||
->register_anonymous_variables(size_a_ + 1, this);
|
->register_anonymous_variables(size_a_ + 1, this);
|
||||||
|
|
||||||
unsigned n_acc = a_->acc().num_sets();
|
unsigned n_acc = a_->num_sets();
|
||||||
acc_vars = a_->get_dict()
|
acc_vars = a_->get_dict()
|
||||||
->register_anonymous_variables(n_acc, this);
|
->register_anonymous_variables(n_acc, this);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -183,7 +183,7 @@ namespace spot
|
||||||
}
|
}
|
||||||
|
|
||||||
if (has('a'))
|
if (has('a'))
|
||||||
acc_ = aut->acc().num_sets();
|
acc_ = aut->num_sets();
|
||||||
|
|
||||||
if (has('c') || has('S'))
|
if (has('c') || has('S'))
|
||||||
scc_ = scc_info(aut).scc_count();
|
scc_ = scc_info(aut).scc_count();
|
||||||
|
|
|
||||||
|
|
@ -213,7 +213,7 @@ namespace spot
|
||||||
{
|
{
|
||||||
get_dict()->register_all_propositions_of(&a_, this);
|
get_dict()->register_all_propositions_of(&a_, this);
|
||||||
assert(acc_.num_sets() == 0);
|
assert(acc_.num_sets() == 0);
|
||||||
acc_.add_sets(a_->acc().num_sets());
|
acc_.add_sets(a_->num_sets());
|
||||||
acc_.set_generalized_buchi();
|
acc_.set_generalized_buchi();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -58,7 +58,7 @@ namespace spot
|
||||||
: emptiness_check(a, o),
|
: emptiness_check(a, o),
|
||||||
h(size)
|
h(size)
|
||||||
{
|
{
|
||||||
assert(a->acc().num_sets() > 0);
|
assert(a->num_sets() > 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual ~tau03_search()
|
virtual ~tau03_search()
|
||||||
|
|
|
||||||
|
|
@ -159,7 +159,7 @@ namespace spot
|
||||||
return acc;
|
return acc;
|
||||||
// FIXME: This should be improved.
|
// FIXME: This should be improved.
|
||||||
std::vector<unsigned> res;
|
std::vector<unsigned> res;
|
||||||
unsigned max = a_->acc().num_sets();
|
unsigned max = a_->num_sets();
|
||||||
for (unsigned n = 0; n < max && a_->acc().has(acc, n); ++n)
|
for (unsigned n = 0; n < max && a_->acc().has(acc, n); ++n)
|
||||||
res.push_back(n);
|
res.push_back(n);
|
||||||
return a_->acc().marks(res.begin(), res.end());
|
return a_->acc().marks(res.begin(), res.end());
|
||||||
|
|
|
||||||
|
|
@ -70,7 +70,7 @@ namespace spot
|
||||||
if (cnf.empty() ||
|
if (cnf.empty() ||
|
||||||
(cnf.size() == 2 && cnf.back().op == acc_cond::acc_op::Inf))
|
(cnf.size() == 2 && cnf.back().op == acc_cond::acc_op::Inf))
|
||||||
{
|
{
|
||||||
res->set_acceptance(res->acc().num_sets(), cnf);
|
res->set_acceptance(res->num_sets(), cnf);
|
||||||
cleanup_acceptance_here(res);
|
cleanup_acceptance_here(res);
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue