spot: Implement dt*a_sat_minimize_assume(...) methods
* python/spot/__init__.py: Add 'assume' option. * spot/misc/satsolver.cc: Add function to handle assumptions. * spot/misc/satsolver.hh: Declare assumption function. * spot/twaalgos/dtbasat.cc: Implement dtba_sat_minimize_assume. * spot/twaalgos/dtbasat.hh: Declare it. * spot/twaalgos/dtwasat.cc: Implement dtwa_sat_minimize_assume and handle options. * spot/twaalgos/dtwasat.hh: Declare it. * spot/twaalgos/postproc.cc: Handle options. * spot/twaalgos/postproc.hh: Use param_ var for incr and assume. * tests/core/satmin.test: Add tests for the new function. * tests/core/satmin2.test: Add tests for the new function. * tests/python/satmin.py: Add tests for the new function.
This commit is contained in:
parent
ee17c2dee4
commit
9a204b770f
12 changed files with 1021 additions and 69 deletions
|
|
@ -859,7 +859,7 @@ for fun in ['remove_x', 'relabel', 'relabel_bse',
|
||||||
def sat_minimize(aut, acc=None, colored=False,
|
def sat_minimize(aut, acc=None, colored=False,
|
||||||
state_based=False, states=0,
|
state_based=False, states=0,
|
||||||
max_states=0, dichotomy=False,
|
max_states=0, dichotomy=False,
|
||||||
param=0, incr=False):
|
param=0, incr=False, assume=False):
|
||||||
args=''
|
args=''
|
||||||
if acc is not None:
|
if acc is not None:
|
||||||
if type(acc) is not str:
|
if type(acc) is not str:
|
||||||
|
|
@ -881,6 +881,8 @@ def sat_minimize(aut, acc=None, colored=False,
|
||||||
args += ',param=' + str(param)
|
args += ',param=' + str(param)
|
||||||
if incr:
|
if incr:
|
||||||
args += ',incr'
|
args += ',incr'
|
||||||
|
if assume:
|
||||||
|
args += ',assume'
|
||||||
from spot.impl import sat_minimize as sm
|
from spot.impl import sat_minimize as sm
|
||||||
return sm(aut, args, state_based)
|
return sm(aut, args, state_based)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -74,7 +74,7 @@ namespace spot
|
||||||
// easy to check if psat_ was initialized or not.
|
// easy to check if psat_ was initialized or not.
|
||||||
satsolver::satsolver()
|
satsolver::satsolver()
|
||||||
: cnf_tmp_(nullptr), cnf_stream_(nullptr), nclauses_(0), nvars_(0),
|
: cnf_tmp_(nullptr), cnf_stream_(nullptr), nclauses_(0), nvars_(0),
|
||||||
psat_(nullptr)
|
nassumptions_vars_(0), nsols_(0), psat_(nullptr)
|
||||||
{
|
{
|
||||||
if (cmd_.command_given())
|
if (cmd_.command_given())
|
||||||
{
|
{
|
||||||
|
|
@ -123,21 +123,27 @@ namespace spot
|
||||||
void satsolver::adjust_nvars(int nvars)
|
void satsolver::adjust_nvars(int nvars)
|
||||||
{
|
{
|
||||||
if (nvars < 0)
|
if (nvars < 0)
|
||||||
throw std::runtime_error(": total number of lits. must be at least 0.");
|
throw std::runtime_error("variable number must be at least 0");
|
||||||
|
|
||||||
if (psat_)
|
if (psat_)
|
||||||
{
|
{
|
||||||
picosat_adjust(psat_, nvars);
|
picosat_adjust(psat_, nvars + nassumptions_vars_);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (nvars < nvars_)
|
if (nvars + nassumptions_vars_ < nvars_)
|
||||||
{
|
{
|
||||||
throw std::runtime_error(
|
throw std::runtime_error(
|
||||||
": wrong number of variables, a bigger one was already added.");
|
": wrong number of variables, a bigger one was already added.");
|
||||||
}
|
}
|
||||||
nvars_ = nvars;
|
nvars_ = nvars + nassumptions_vars_;
|
||||||
}
|
}
|
||||||
|
nsols_ = nvars;
|
||||||
|
}
|
||||||
|
|
||||||
|
void satsolver::set_nassumptions_vars(int nassumptions_vars)
|
||||||
|
{
|
||||||
|
nassumptions_vars_ = nassumptions_vars;
|
||||||
}
|
}
|
||||||
|
|
||||||
void satsolver::add(std::initializer_list<int> values)
|
void satsolver::add(std::initializer_list<int> values)
|
||||||
|
|
@ -196,6 +202,15 @@ namespace spot
|
||||||
return std::make_pair(get_nb_vars(), get_nb_clauses());
|
return std::make_pair(get_nb_vars(), get_nb_clauses());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void satsolver::assume(int lit)
|
||||||
|
{
|
||||||
|
if (psat_)
|
||||||
|
picosat_assume(psat_, lit);
|
||||||
|
else
|
||||||
|
throw std::runtime_error(
|
||||||
|
"satsolver::assume(...) can not be used with an external satsolver");
|
||||||
|
}
|
||||||
|
|
||||||
satsolver::solution
|
satsolver::solution
|
||||||
spot::satsolver::satsolver_get_sol(const char* filename)
|
spot::satsolver::satsolver_get_sol(const char* filename)
|
||||||
{
|
{
|
||||||
|
|
@ -249,11 +264,8 @@ namespace spot
|
||||||
{
|
{
|
||||||
satsolver::solution sol;
|
satsolver::solution sol;
|
||||||
if (res == PICOSAT_SATISFIABLE)
|
if (res == PICOSAT_SATISFIABLE)
|
||||||
{
|
for (int lit = 1; lit <= nsols_; ++lit)
|
||||||
int nvars = get_nb_vars();
|
|
||||||
for (int lit = 1; lit <= nvars; ++lit)
|
|
||||||
sol.push_back(picosat_deref(psat_, lit) > 0);
|
sol.push_back(picosat_deref(psat_, lit) > 0);
|
||||||
}
|
|
||||||
return sol;
|
return sol;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -79,6 +79,9 @@ namespace spot
|
||||||
/// \brief Adjust the number of variables used in the cnf formula.
|
/// \brief Adjust the number of variables used in the cnf formula.
|
||||||
void adjust_nvars(int nvars);
|
void adjust_nvars(int nvars);
|
||||||
|
|
||||||
|
/// \brief Declare the number of vars reserved for assumptions.
|
||||||
|
void set_nassumptions_vars(int nassumptions_vars);
|
||||||
|
|
||||||
/// \brief Add a list of lit. to the current clause.
|
/// \brief Add a list of lit. to the current clause.
|
||||||
void add(std::initializer_list<int> values);
|
void add(std::initializer_list<int> values);
|
||||||
|
|
||||||
|
|
@ -114,6 +117,10 @@ namespace spot
|
||||||
template<typename T, typename... Args>
|
template<typename T, typename... Args>
|
||||||
void comment(T first, Args... args);
|
void comment(T first, Args... args);
|
||||||
|
|
||||||
|
/// \brief Assume a litteral value.
|
||||||
|
/// Must only be used with distributed picolib.
|
||||||
|
void assume(int lit);
|
||||||
|
|
||||||
typedef std::vector<bool> solution;
|
typedef std::vector<bool> solution;
|
||||||
typedef std::pair<int, solution> solution_pair;
|
typedef std::pair<int, solution> solution_pair;
|
||||||
|
|
||||||
|
|
@ -146,6 +153,11 @@ namespace spot
|
||||||
std::ostream* cnf_stream_;
|
std::ostream* cnf_stream_;
|
||||||
int nclauses_;
|
int nclauses_;
|
||||||
int nvars_;
|
int nvars_;
|
||||||
|
int nassumptions_vars_; // Surplus of vars (for 'assume' algorithm).
|
||||||
|
|
||||||
|
/// \brief Number of solutions to obtain from the satsolver
|
||||||
|
/// (without assuming litterals).
|
||||||
|
int nsols_;
|
||||||
|
|
||||||
/// \brief Picosat satsolver instance.
|
/// \brief Picosat satsolver instance.
|
||||||
PicoSAT* psat_;
|
PicoSAT* psat_;
|
||||||
|
|
|
||||||
|
|
@ -297,7 +297,8 @@ namespace spot
|
||||||
static
|
static
|
||||||
sat_stats dtba_to_sat(satsolver& solver,
|
sat_stats dtba_to_sat(satsolver& solver,
|
||||||
const const_twa_graph_ptr& ref,
|
const const_twa_graph_ptr& ref,
|
||||||
dict& d, bool state_based)
|
dict& d,
|
||||||
|
bool state_based)
|
||||||
{
|
{
|
||||||
// Compute the AP used.
|
// Compute the AP used.
|
||||||
bdd ap = ref->ap_vars();
|
bdd ap = ref->ap_vars();
|
||||||
|
|
@ -744,6 +745,159 @@ namespace spot
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static twa_graph_ptr
|
||||||
|
dichotomy_dtba_research(int max,
|
||||||
|
dict& d,
|
||||||
|
satsolver& solver,
|
||||||
|
timer_map& t1,
|
||||||
|
const_twa_graph_ptr& prev,
|
||||||
|
bool state_based)
|
||||||
|
{
|
||||||
|
trace << "dichotomy_dtba_research(...)\n";
|
||||||
|
int min = 1;
|
||||||
|
int target = 0;
|
||||||
|
twa_graph_ptr res = nullptr;
|
||||||
|
|
||||||
|
while (min < max)
|
||||||
|
{
|
||||||
|
target = (max + min) / 2;
|
||||||
|
trace << "min:" << min << ", max:" << max << ", target:" << target
|
||||||
|
<< '\n';
|
||||||
|
|
||||||
|
solver.assume(d.nvars + target);
|
||||||
|
trace << "solver.assume(" << d.nvars + target << ")\n";
|
||||||
|
|
||||||
|
satsolver::solution_pair solution = solver.get_solution();
|
||||||
|
if (solution.second.empty())
|
||||||
|
{
|
||||||
|
trace << "UNSAT\n";
|
||||||
|
max = target;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
trace << "SAT\n";
|
||||||
|
res = sat_build(solution.second, d, prev, state_based);
|
||||||
|
min = d.cand_size - stats_reachable(res).states + 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
trace << "End with max:" << max << ", min:" << min << '\n';
|
||||||
|
if (!res)
|
||||||
|
{
|
||||||
|
trace << "All assumptions are UNSAT, let's try without...";
|
||||||
|
satsolver::solution_pair solution = solver.get_solution();
|
||||||
|
trace << (solution.second.empty() ? "UNSAT!\n" : "SAT\n");
|
||||||
|
res = solution.second.empty() ? nullptr :
|
||||||
|
sat_build(solution.second, d, prev, state_based);
|
||||||
|
}
|
||||||
|
|
||||||
|
t1.stop("solve");
|
||||||
|
print_log(t1, d.cand_size - target, res, solver); // SPOT_SATLOG.
|
||||||
|
return res ? res : std::const_pointer_cast<spot::twa_graph>(prev);
|
||||||
|
}
|
||||||
|
|
||||||
|
twa_graph_ptr
|
||||||
|
dtba_sat_minimize_assume(const const_twa_graph_ptr& a,
|
||||||
|
bool state_based,
|
||||||
|
int max_states,
|
||||||
|
int sat_incr_steps)
|
||||||
|
{
|
||||||
|
if (!a->acc().is_buchi())
|
||||||
|
throw std::runtime_error
|
||||||
|
("dtba_sat_minimize_assume() can only work with Büchi acceptance");
|
||||||
|
if (sat_incr_steps < 0)
|
||||||
|
throw std::runtime_error("with 'assume' algorithm, sat_incr_steps value "
|
||||||
|
" must be >= 0");
|
||||||
|
|
||||||
|
const_twa_graph_ptr prev = a;
|
||||||
|
dict d;
|
||||||
|
d.cand_size = (max_states < 0) ?
|
||||||
|
stats_reachable(prev).states - 1 : max_states;
|
||||||
|
if (d.cand_size == 0)
|
||||||
|
return nullptr;
|
||||||
|
|
||||||
|
trace << "dtba_sat_minimize_assume(..., states = " << d.cand_size
|
||||||
|
<< ", state_based = " << state_based << ")\n";
|
||||||
|
trace << "sat_incr_steps: " << sat_incr_steps << '\n';
|
||||||
|
|
||||||
|
twa_graph_ptr next = spot::make_twa_graph(spot::make_bdd_dict());
|
||||||
|
while (next && d.cand_size > 0)
|
||||||
|
{
|
||||||
|
// Warns the satsolver of the number of assumptions.
|
||||||
|
int n_assumptions = (int) d.cand_size < sat_incr_steps ?
|
||||||
|
d.cand_size - 1 : sat_incr_steps;
|
||||||
|
trace << "number of assumptions:" << n_assumptions << '\n';
|
||||||
|
satsolver solver;
|
||||||
|
solver.set_nassumptions_vars(n_assumptions);
|
||||||
|
|
||||||
|
// First iteration of classic solving.
|
||||||
|
timer_map t1;
|
||||||
|
t1.start("encode");
|
||||||
|
dtba_to_sat(solver, prev, d, state_based);
|
||||||
|
|
||||||
|
// Compute the AP used.
|
||||||
|
bdd ap = prev->ap_vars();
|
||||||
|
|
||||||
|
// Add all assumptions clauses.
|
||||||
|
unsigned dst = d.cand_size - 1;
|
||||||
|
unsigned alpha_size = d.alpha_vect.size();
|
||||||
|
for (int i = 1; i <= n_assumptions; i++, dst--)
|
||||||
|
{
|
||||||
|
cnf_comment("Next iteration:", dst, "\n");
|
||||||
|
int assume_lit = d.nvars + i;
|
||||||
|
|
||||||
|
cnf_comment("Add clauses to forbid the dst state.\n");
|
||||||
|
for (unsigned l = 0; l < alpha_size; ++l)
|
||||||
|
for (unsigned j = 0; j < d.cand_size; ++j)
|
||||||
|
{
|
||||||
|
cnf_comment(assume_lit, "→ ¬", d.fmt_t(j, l, dst), '\n');
|
||||||
|
solver.add({-assume_lit, -d.transid(j, l, dst), 0});
|
||||||
|
}
|
||||||
|
|
||||||
|
// The assumption which has just been encoded implies the preceding
|
||||||
|
// ones.
|
||||||
|
if (i != 1)
|
||||||
|
{
|
||||||
|
cnf_comment(assume_lit, "→", assume_lit - 1, '\n');
|
||||||
|
solver.add({-assume_lit, assume_lit - 1, 0});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
t1.stop("encode");
|
||||||
|
|
||||||
|
t1.start("solve");
|
||||||
|
if (n_assumptions)
|
||||||
|
{
|
||||||
|
trace << "solver.assume(" << d.nvars + n_assumptions << ")\n";
|
||||||
|
solver.assume(d.nvars + n_assumptions);
|
||||||
|
}
|
||||||
|
satsolver::solution_pair solution = solver.get_solution();
|
||||||
|
|
||||||
|
if (solution.second.empty() && n_assumptions) // UNSAT
|
||||||
|
{
|
||||||
|
trace << "UNSAT\n";
|
||||||
|
return dichotomy_dtba_research(n_assumptions, d, solver, t1, prev,
|
||||||
|
state_based);
|
||||||
|
}
|
||||||
|
|
||||||
|
t1.stop("solve");
|
||||||
|
trace << "SAT, restarting from zero\n";
|
||||||
|
next = solution.second.empty() ? nullptr :
|
||||||
|
sat_build(solution.second, d, prev, state_based);
|
||||||
|
print_log(t1, d.cand_size - n_assumptions, next, solver); // SPOT_SATLOG.
|
||||||
|
|
||||||
|
if (next)
|
||||||
|
{
|
||||||
|
prev = next;
|
||||||
|
d = dict();
|
||||||
|
d.cand_size = stats_reachable(prev).states - 1;
|
||||||
|
if (d.cand_size == 0)
|
||||||
|
next = nullptr;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return prev == a ? nullptr : std::const_pointer_cast<spot::twa_graph>(prev);
|
||||||
|
}
|
||||||
|
|
||||||
twa_graph_ptr
|
twa_graph_ptr
|
||||||
dtba_sat_minimize_incr(const const_twa_graph_ptr& a,
|
dtba_sat_minimize_incr(const const_twa_graph_ptr& a,
|
||||||
bool state_based, int max_states, int sat_incr_steps)
|
bool state_based, int max_states, int sat_incr_steps)
|
||||||
|
|
|
||||||
|
|
@ -81,4 +81,23 @@ namespace spot
|
||||||
bool state_based = false,
|
bool state_based = false,
|
||||||
int max_states = -1,
|
int max_states = -1,
|
||||||
int param = 2);
|
int param = 2);
|
||||||
|
|
||||||
|
/// \brief Attempt to minimize a deterministic TBA incrementally with a SAT
|
||||||
|
/// solver.
|
||||||
|
///
|
||||||
|
/// This acts like dtba_sat_synthetize() and obtains a first minimized
|
||||||
|
/// automaton. Then, it adds <param> assumptions, such that each assumption
|
||||||
|
/// removes a new state and implies the previous assumptions. A first
|
||||||
|
/// resolution is attempted assuming the last assumption (thus involving all
|
||||||
|
/// the previous ones). If the problem is SAT several stages have just been
|
||||||
|
/// won and all this process is restarted. Otherwise, we know that the
|
||||||
|
/// minimal automaton can be obtained with fewer assumption. This
|
||||||
|
/// automaton is found dichotomously.
|
||||||
|
///
|
||||||
|
/// If no smaller TBA exist, this returns a null pointer.
|
||||||
|
SPOT_API twa_graph_ptr
|
||||||
|
dtba_sat_minimize_assume(const const_twa_graph_ptr& a,
|
||||||
|
bool state_based = false,
|
||||||
|
int max_states = -1,
|
||||||
|
int param = 6);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -532,8 +532,11 @@ namespace spot
|
||||||
typedef std::pair<int, int> sat_stats;
|
typedef std::pair<int, int> sat_stats;
|
||||||
|
|
||||||
static
|
static
|
||||||
sat_stats dtwa_to_sat(satsolver& solver, const_twa_graph_ptr ref,
|
sat_stats dtwa_to_sat(satsolver& solver,
|
||||||
dict& d, bool state_based, bool colored)
|
const_twa_graph_ptr ref,
|
||||||
|
dict& d,
|
||||||
|
bool state_based,
|
||||||
|
bool colored)
|
||||||
{
|
{
|
||||||
#if DEBUG
|
#if DEBUG
|
||||||
debug_dict = ref->get_dict();
|
debug_dict = ref->get_dict();
|
||||||
|
|
@ -1054,6 +1057,166 @@ namespace spot
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static twa_graph_ptr
|
||||||
|
dichotomy_dtwa_research(int max,
|
||||||
|
dict& d,
|
||||||
|
satsolver& solver,
|
||||||
|
timer_map& t1,
|
||||||
|
const_twa_graph_ptr& prev,
|
||||||
|
bool state_based)
|
||||||
|
{
|
||||||
|
trace << "dichotomy_dtwa_research(...)\n";
|
||||||
|
int min = 1;
|
||||||
|
int target = 0;
|
||||||
|
twa_graph_ptr res = nullptr;
|
||||||
|
|
||||||
|
while (min < max)
|
||||||
|
{
|
||||||
|
target = (max + min) / 2;
|
||||||
|
trace << "min:" << min << ", max:" << max << ", target:" << target
|
||||||
|
<< '\n';
|
||||||
|
|
||||||
|
solver.assume(d.nvars + target);
|
||||||
|
trace << "solver.assume(" << d.nvars + target << ")\n";
|
||||||
|
|
||||||
|
satsolver::solution_pair solution = solver.get_solution();
|
||||||
|
if (solution.second.empty())
|
||||||
|
{
|
||||||
|
trace << "UNSAT\n";
|
||||||
|
max = target;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
trace << "SAT\n";
|
||||||
|
res = sat_build(solution.second, d, prev, state_based);
|
||||||
|
min = d.cand_size - stats_reachable(res).states + 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
trace << "End with max:" << max << ", min:" << min << '\n';
|
||||||
|
if (!res)
|
||||||
|
{
|
||||||
|
trace << "All assumptions are UNSAT, let's try without...";
|
||||||
|
satsolver::solution_pair solution = solver.get_solution();
|
||||||
|
trace << (solution.second.empty() ? "UNSAT!\n" : "SAT\n");
|
||||||
|
res = solution.second.empty() ? nullptr :
|
||||||
|
sat_build(solution.second, d, prev, state_based);
|
||||||
|
}
|
||||||
|
|
||||||
|
t1.stop("solve");
|
||||||
|
print_log(t1, d.cand_size - target , res, solver); // SPOT_SATLOG.
|
||||||
|
return res ? res : std::const_pointer_cast<spot::twa_graph>(prev);
|
||||||
|
}
|
||||||
|
|
||||||
|
twa_graph_ptr
|
||||||
|
dtwa_sat_minimize_assume(const const_twa_graph_ptr& a,
|
||||||
|
unsigned target_acc_number,
|
||||||
|
const acc_cond::acc_code& target_acc,
|
||||||
|
bool state_based,
|
||||||
|
int max_states,
|
||||||
|
bool colored,
|
||||||
|
int sat_incr_steps)
|
||||||
|
{
|
||||||
|
if (sat_incr_steps < 0)
|
||||||
|
throw std::runtime_error("with 'assume' algorithm, sat_incr_steps value "
|
||||||
|
"must be >= 0");
|
||||||
|
|
||||||
|
const_twa_graph_ptr prev = a;
|
||||||
|
dict d(prev);
|
||||||
|
d.cand_size = (max_states < 0) ?
|
||||||
|
stats_reachable(prev).states - 1 : max_states;
|
||||||
|
d.cand_nacc = target_acc_number;
|
||||||
|
d.cand_acc = target_acc;
|
||||||
|
if (d.cand_size == 0)
|
||||||
|
return nullptr;
|
||||||
|
|
||||||
|
trace << "dtwa_sat_minimize_assume(..., nacc = " << target_acc_number
|
||||||
|
<< ", acc = \"" << target_acc << "\", states = " << d.cand_size
|
||||||
|
<< ", state_based = " << state_based << ")\n";
|
||||||
|
trace << "sat_incr_steps: " << sat_incr_steps << '\n';
|
||||||
|
|
||||||
|
twa_graph_ptr next = spot::make_twa_graph(spot::make_bdd_dict());
|
||||||
|
while (next && d.cand_size > 0)
|
||||||
|
{
|
||||||
|
// Warns the satsolver of the number of assumptions.
|
||||||
|
int n_assumptions = (int) d.cand_size < sat_incr_steps ?
|
||||||
|
d.cand_size - 1 : sat_incr_steps;
|
||||||
|
trace << "number of assumptions:" << n_assumptions << '\n';
|
||||||
|
satsolver solver;
|
||||||
|
solver.set_nassumptions_vars(n_assumptions);
|
||||||
|
|
||||||
|
// First iteration of classic solving.
|
||||||
|
timer_map t1;
|
||||||
|
t1.start("encode");
|
||||||
|
dtwa_to_sat(solver, prev, d, state_based, colored);
|
||||||
|
|
||||||
|
// Compute the AP used.
|
||||||
|
bdd ap = prev->ap_vars();
|
||||||
|
|
||||||
|
// Add all assumptions clauses.
|
||||||
|
unsigned dst = d.cand_size - 1;
|
||||||
|
unsigned alpha_size = d.alpha_vect.size();
|
||||||
|
for (int i = 1; i <= n_assumptions; i++, dst--)
|
||||||
|
{
|
||||||
|
cnf_comment("Next iteration:", dst, "\n");
|
||||||
|
int assume_lit = d.nvars + i;
|
||||||
|
|
||||||
|
cnf_comment("Add clauses to forbid the dst state.\n");
|
||||||
|
for (unsigned l = 0; l < alpha_size; ++l)
|
||||||
|
for (unsigned j = 0; j < d.cand_size; ++j)
|
||||||
|
{
|
||||||
|
cnf_comment(assume_lit, "→ ¬", d.fmt_t(j, l, dst), '\n');
|
||||||
|
solver.add({-assume_lit, -d.transid(j, l, dst), 0});
|
||||||
|
}
|
||||||
|
|
||||||
|
// The assumption which has just been encoded implies the preceding
|
||||||
|
// ones.
|
||||||
|
if (i != 1)
|
||||||
|
{
|
||||||
|
cnf_comment(assume_lit, "→", assume_lit - 1, '\n');
|
||||||
|
solver.add({-assume_lit, assume_lit - 1, 0});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
t1.stop("encode");
|
||||||
|
|
||||||
|
t1.start("solve");
|
||||||
|
if (n_assumptions)
|
||||||
|
{
|
||||||
|
trace << "solver.assume(" << d.nvars + n_assumptions << ")\n";
|
||||||
|
solver.assume(d.nvars + n_assumptions);
|
||||||
|
}
|
||||||
|
satsolver::solution_pair solution = solver.get_solution();
|
||||||
|
|
||||||
|
if (solution.second.empty() && n_assumptions) // UNSAT
|
||||||
|
{
|
||||||
|
trace << "UNSAT\n";
|
||||||
|
twa_graph_ptr res = dichotomy_dtwa_research(n_assumptions, d, solver,
|
||||||
|
t1, prev, state_based);
|
||||||
|
return res == a ? nullptr : res;
|
||||||
|
}
|
||||||
|
|
||||||
|
t1.stop("solve");
|
||||||
|
trace << "SAT, restarting from zero\n";
|
||||||
|
next = solution.second.empty() ? nullptr :
|
||||||
|
sat_build(solution.second, d, prev, state_based);
|
||||||
|
print_log(t1, d.cand_size - n_assumptions, next, solver); // SPOT_SATLOG.
|
||||||
|
|
||||||
|
if (next)
|
||||||
|
{
|
||||||
|
prev = next;
|
||||||
|
d = dict(prev);
|
||||||
|
d.cand_size = stats_reachable(prev).states - 1;
|
||||||
|
d.cand_nacc = target_acc_number;
|
||||||
|
d.cand_acc = target_acc;
|
||||||
|
if (d.cand_size == 0)
|
||||||
|
next = nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return prev == a ? nullptr : std::const_pointer_cast<spot::twa_graph>(prev);
|
||||||
|
}
|
||||||
|
|
||||||
twa_graph_ptr
|
twa_graph_ptr
|
||||||
dtwa_sat_minimize_incr(const const_twa_graph_ptr& a,
|
dtwa_sat_minimize_incr(const const_twa_graph_ptr& a,
|
||||||
unsigned target_acc_number,
|
unsigned target_acc_number,
|
||||||
|
|
@ -1220,13 +1383,14 @@ namespace spot
|
||||||
("SAT-based minimization only works with deterministic automata");
|
("SAT-based minimization only works with deterministic automata");
|
||||||
|
|
||||||
bool dicho = om.get("dichotomy", 0);
|
bool dicho = om.get("dichotomy", 0);
|
||||||
|
bool incr = om.get("incr", 0);
|
||||||
|
bool assume = om.get("assume", 0);
|
||||||
|
int param = om.get("param", 0);
|
||||||
int states = om.get("states", -1);
|
int states = om.get("states", -1);
|
||||||
int max_states = om.get("max-states", -1);
|
int max_states = om.get("max-states", -1);
|
||||||
auto accstr = om.get_str("acc");
|
auto accstr = om.get_str("acc");
|
||||||
bool colored = om.get("colored", 0);
|
bool colored = om.get("colored", 0);
|
||||||
int preproc = om.get("preproc", 3);
|
int preproc = om.get("preproc", 3);
|
||||||
bool incr = om.get("incr", 0);
|
|
||||||
int param = om.get("param", 0);
|
|
||||||
|
|
||||||
// No more om.get() below this.
|
// No more om.get() below this.
|
||||||
om.report_unused_options();
|
om.report_unused_options();
|
||||||
|
|
@ -1323,6 +1487,11 @@ namespace spot
|
||||||
if (incr)
|
if (incr)
|
||||||
a = dtwa_sat_minimize_incr(a, nacc, target_acc, state_based,
|
a = dtwa_sat_minimize_incr(a, nacc, target_acc, state_based,
|
||||||
max_states, colored, param);
|
max_states, colored, param);
|
||||||
|
|
||||||
|
else if (assume)
|
||||||
|
a = dtwa_sat_minimize_assume(a, nacc, target_acc, state_based,
|
||||||
|
max_states, colored, param);
|
||||||
|
|
||||||
else
|
else
|
||||||
a = (dicho ? dtwa_sat_minimize_dichotomy
|
a = (dicho ? dtwa_sat_minimize_dichotomy
|
||||||
: dtwa_sat_minimize)
|
: dtwa_sat_minimize)
|
||||||
|
|
@ -1332,6 +1501,10 @@ namespace spot
|
||||||
{
|
{
|
||||||
if (incr)
|
if (incr)
|
||||||
a = dtba_sat_minimize_incr(a, state_based, max_states, param);
|
a = dtba_sat_minimize_incr(a, state_based, max_states, param);
|
||||||
|
|
||||||
|
else if (assume)
|
||||||
|
a = dtba_sat_minimize_assume(a, state_based, max_states, assume);
|
||||||
|
|
||||||
else
|
else
|
||||||
a = (dicho ? dtba_sat_minimize_dichotomy
|
a = (dicho ? dtba_sat_minimize_dichotomy
|
||||||
: dtba_sat_minimize)
|
: dtba_sat_minimize)
|
||||||
|
|
|
||||||
|
|
@ -102,6 +102,27 @@ namespace spot
|
||||||
bool colored = false,
|
bool colored = false,
|
||||||
int param = 2);
|
int param = 2);
|
||||||
|
|
||||||
|
/// \brief Attempt to minimize a deterministic TωA with a SAT solver.
|
||||||
|
///
|
||||||
|
/// This acts like dtba_sat_synthetize() and obtains a first minimized
|
||||||
|
/// automaton. Then, it adds <param> assumptions, such that each assumption
|
||||||
|
/// removes a new state and implies the previous assumptions. A first
|
||||||
|
/// resolution is attempted assuming the last assumption (thus involving all
|
||||||
|
/// the previous ones). If the problem is SAT several stages have just been
|
||||||
|
/// won and all this process is restarted. Otherwise, it is known that the
|
||||||
|
/// minimal automaton can be obtained with fewer assumption. This
|
||||||
|
/// automaton is found dichotomously.
|
||||||
|
///
|
||||||
|
/// If no smaller TGBA exists, this returns a null pointer.
|
||||||
|
SPOT_API twa_graph_ptr
|
||||||
|
dtwa_sat_minimize_assume(const const_twa_graph_ptr& a,
|
||||||
|
unsigned target_acc_number,
|
||||||
|
const acc_cond::acc_code& target_acc,
|
||||||
|
bool state_based = false,
|
||||||
|
int max_states = -1,
|
||||||
|
bool colored = false,
|
||||||
|
int param = 6);
|
||||||
|
|
||||||
/// \brief High-level interface to SAT-based minimization
|
/// \brief High-level interface to SAT-based minimization
|
||||||
///
|
///
|
||||||
/// Minimize the automaton \a aut, using options \a opt.
|
/// Minimize the automaton \a aut, using options \a opt.
|
||||||
|
|
|
||||||
|
|
@ -69,8 +69,8 @@ namespace spot
|
||||||
scc_filter_ = opt->get("scc-filter", -1);
|
scc_filter_ = opt->get("scc-filter", -1);
|
||||||
ba_simul_ = opt->get("ba-simul", -1);
|
ba_simul_ = opt->get("ba-simul", -1);
|
||||||
tba_determinisation_ = opt->get("tba-det", 0);
|
tba_determinisation_ = opt->get("tba-det", 0);
|
||||||
incr_ = opt->get("incr", 0);
|
|
||||||
sat_minimize_ = opt->get("sat-minimize", 0);
|
sat_minimize_ = opt->get("sat-minimize", 0);
|
||||||
|
param_ = opt->get("param", 0);
|
||||||
sat_acc_ = opt->get("sat-acc", 0);
|
sat_acc_ = opt->get("sat-acc", 0);
|
||||||
sat_states_ = opt->get("sat-states", 0);
|
sat_states_ = opt->get("sat-states", 0);
|
||||||
state_based_ = opt->get("state-based", 0);
|
state_based_ = opt->get("state-based", 0);
|
||||||
|
|
@ -430,8 +430,10 @@ namespace spot
|
||||||
res = dtba_sat_minimize(res, state_based_);
|
res = dtba_sat_minimize(res, state_based_);
|
||||||
else if (sat_minimize_ == 2)
|
else if (sat_minimize_ == 2)
|
||||||
res = dtba_sat_minimize_dichotomy(res, state_based_);
|
res = dtba_sat_minimize_dichotomy(res, state_based_);
|
||||||
else // sat_minimize_ = 3
|
else if (sat_minimize_ == 3)
|
||||||
res = dtba_sat_minimize_incr(res, state_based_, -1, incr_);
|
res = dtba_sat_minimize_incr(res, state_based_, -1, param_);
|
||||||
|
else // if (sat_minimize == 4)
|
||||||
|
res = dtba_sat_minimize_assume(res, state_based_, -1, param_);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
@ -450,12 +452,17 @@ namespace spot
|
||||||
(res, target_acc,
|
(res, target_acc,
|
||||||
acc_cond::acc_code::generalized_buchi(target_acc),
|
acc_cond::acc_code::generalized_buchi(target_acc),
|
||||||
state_based_);
|
state_based_);
|
||||||
else // sat_minimize_ = 3
|
else if (sat_minimize_ == 3)
|
||||||
res = dtwa_sat_minimize_incr
|
res = dtwa_sat_minimize_incr
|
||||||
(res, target_acc,
|
(res, target_acc,
|
||||||
acc_cond::acc_code::generalized_buchi(target_acc),
|
acc_cond::acc_code::generalized_buchi(target_acc),
|
||||||
state_based_, -1, false, incr_);
|
state_based_, -1, false, param_);
|
||||||
}
|
else // if (sat_minimize_ == 4)
|
||||||
|
res = dtwa_sat_minimize_assume
|
||||||
|
(res, target_acc,
|
||||||
|
acc_cond::acc_code::generalized_buchi(target_acc),
|
||||||
|
state_based_, -1, false, param_);
|
||||||
|
}
|
||||||
|
|
||||||
if (res)
|
if (res)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -188,8 +188,8 @@ namespace spot
|
||||||
int scc_filter_ = -1;
|
int scc_filter_ = -1;
|
||||||
int ba_simul_ = -1;
|
int ba_simul_ = -1;
|
||||||
bool tba_determinisation_ = false;
|
bool tba_determinisation_ = false;
|
||||||
int incr_ = 0;
|
|
||||||
int sat_minimize_ = 0;
|
int sat_minimize_ = 0;
|
||||||
|
int param_ = 0;
|
||||||
int sat_acc_ = 0;
|
int sat_acc_ = 0;
|
||||||
int sat_states_ = 0;
|
int sat_states_ = 0;
|
||||||
bool state_based_ = false;
|
bool state_based_ = false;
|
||||||
|
|
|
||||||
|
|
@ -104,16 +104,20 @@ $ltlcross -F formulas \
|
||||||
"{6} $ltl2tgba --det --lbtt -x sat-minimize %f >%T" \
|
"{6} $ltl2tgba --det --lbtt -x sat-minimize %f >%T" \
|
||||||
"{7} $ltl2tgba --det --lbtt -x sat-minimize=2 %f >%T" \
|
"{7} $ltl2tgba --det --lbtt -x sat-minimize=2 %f >%T" \
|
||||||
"{8} $ltl2tgba --det --lbtt -x sat-minimize=3 %f >%T" \
|
"{8} $ltl2tgba --det --lbtt -x sat-minimize=3 %f >%T" \
|
||||||
"{9} $ltl2tgba --det --lbtt -x 'sat-minimize=3, incr=-1' %f >%T" \
|
"{9} $ltl2tgba --det --lbtt -x 'sat-minimize=3, param=-1' %f >%T" \
|
||||||
"{10} $ltl2tgba --det --lbtt -x 'sat-minimize=3, incr=0' %f >%T" \
|
"{10} $ltl2tgba --det --lbtt -x 'sat-minimize=3, param=0' %f >%T" \
|
||||||
"{11} $ltl2tgba --det --lbtt -x 'sat-minimize=3, incr=1' %f >%T" \
|
"{11} $ltl2tgba --det --lbtt -x 'sat-minimize=3, param=1' %f >%T" \
|
||||||
"{12} $ltl2tgba --det --lbtt -x 'sat-minimize=3, incr=2' %f >%T" \
|
"{12} $ltl2tgba --det --lbtt -x 'sat-minimize=3, param=2' %f >%T" \
|
||||||
"{13} $ltl2tgba --det --lbtt -x 'sat-minimize=3, incr=50' %f >%T" \
|
"{13} $ltl2tgba --det --lbtt -x 'sat-minimize=3, param=50' %f >%T" \
|
||||||
|
"{14} $ltl2tgba --det --lbtt -x 'sat-minimize=4, param=0' %f >%T" \
|
||||||
|
"{15} $ltl2tgba --det --lbtt -x 'sat-minimize=4, param=1' %f >%T" \
|
||||||
|
"{16} $ltl2tgba --det --lbtt -x 'sat-minimize=4, param=2' %f >%T" \
|
||||||
|
"{17} $ltl2tgba --det --lbtt -x 'sat-minimize=4, param=50' %f >%T" \
|
||||||
--csv=det.csv
|
--csv=det.csv
|
||||||
|
|
||||||
grep -v ',\"5\",' det.csv | cut -d ',' -f '1,2,6' > output
|
grep -v ',\"5\",' det.csv | cut -d ',' -f '1,2,6' > output
|
||||||
|
|
||||||
cat > expected << EOF
|
cat > expected <<EOF
|
||||||
"formula","tool","states"
|
"formula","tool","states"
|
||||||
"X(X(p0))","1",4
|
"X(X(p0))","1",4
|
||||||
"X(X(p0))","2",4
|
"X(X(p0))","2",4
|
||||||
|
|
@ -127,6 +131,10 @@ cat > expected << EOF
|
||||||
"X(X(p0))","11",4
|
"X(X(p0))","11",4
|
||||||
"X(X(p0))","12",4
|
"X(X(p0))","12",4
|
||||||
"X(X(p0))","13",4
|
"X(X(p0))","13",4
|
||||||
|
"X(X(p0))","14",4
|
||||||
|
"X(X(p0))","15",4
|
||||||
|
"X(X(p0))","16",4
|
||||||
|
"X(X(p0))","17",4
|
||||||
"!(X(X(p0)))","1",4
|
"!(X(X(p0)))","1",4
|
||||||
"!(X(X(p0)))","2",4
|
"!(X(X(p0)))","2",4
|
||||||
"!(X(X(p0)))","3",4
|
"!(X(X(p0)))","3",4
|
||||||
|
|
@ -139,6 +147,10 @@ cat > expected << EOF
|
||||||
"!(X(X(p0)))","11",4
|
"!(X(X(p0)))","11",4
|
||||||
"!(X(X(p0)))","12",4
|
"!(X(X(p0)))","12",4
|
||||||
"!(X(X(p0)))","13",4
|
"!(X(X(p0)))","13",4
|
||||||
|
"!(X(X(p0)))","14",4
|
||||||
|
"!(X(X(p0)))","15",4
|
||||||
|
"!(X(X(p0)))","16",4
|
||||||
|
"!(X(X(p0)))","17",4
|
||||||
"G(F((p0) -> (X(X(X(p1))))))","1",1
|
"G(F((p0) -> (X(X(X(p1))))))","1",1
|
||||||
"G(F((p0) -> (X(X(X(p1))))))","2",1
|
"G(F((p0) -> (X(X(X(p1))))))","2",1
|
||||||
"G(F((p0) -> (X(X(X(p1))))))","3",1
|
"G(F((p0) -> (X(X(X(p1))))))","3",1
|
||||||
|
|
@ -151,6 +163,10 @@ cat > expected << EOF
|
||||||
"G(F((p0) -> (X(X(X(p1))))))","11",1
|
"G(F((p0) -> (X(X(X(p1))))))","11",1
|
||||||
"G(F((p0) -> (X(X(X(p1))))))","12",1
|
"G(F((p0) -> (X(X(X(p1))))))","12",1
|
||||||
"G(F((p0) -> (X(X(X(p1))))))","13",1
|
"G(F((p0) -> (X(X(X(p1))))))","13",1
|
||||||
|
"G(F((p0) -> (X(X(X(p1))))))","14",1
|
||||||
|
"G(F((p0) -> (X(X(X(p1))))))","15",1
|
||||||
|
"G(F((p0) -> (X(X(X(p1))))))","16",1
|
||||||
|
"G(F((p0) -> (X(X(X(p1))))))","17",1
|
||||||
"!(G(F((p0) -> (X(X(X(p1)))))))","1",2
|
"!(G(F((p0) -> (X(X(X(p1)))))))","1",2
|
||||||
"!(G(F((p0) -> (X(X(X(p1)))))))","2",2
|
"!(G(F((p0) -> (X(X(X(p1)))))))","2",2
|
||||||
"!(G(F((p0) -> (X(X(X(p1)))))))","3",2
|
"!(G(F((p0) -> (X(X(X(p1)))))))","3",2
|
||||||
|
|
@ -163,6 +179,10 @@ cat > expected << EOF
|
||||||
"!(G(F((p0) -> (X(X(X(p1)))))))","11",2
|
"!(G(F((p0) -> (X(X(X(p1)))))))","11",2
|
||||||
"!(G(F((p0) -> (X(X(X(p1)))))))","12",2
|
"!(G(F((p0) -> (X(X(X(p1)))))))","12",2
|
||||||
"!(G(F((p0) -> (X(X(X(p1)))))))","13",2
|
"!(G(F((p0) -> (X(X(X(p1)))))))","13",2
|
||||||
|
"!(G(F((p0) -> (X(X(X(p1)))))))","14",2
|
||||||
|
"!(G(F((p0) -> (X(X(X(p1)))))))","15",2
|
||||||
|
"!(G(F((p0) -> (X(X(X(p1)))))))","16",2
|
||||||
|
"!(G(F((p0) -> (X(X(X(p1)))))))","17",2
|
||||||
"F((p0) & (X(F((p1) & (X(F((p2) & (X(F(p3))))))))))","1",5
|
"F((p0) & (X(F((p1) & (X(F((p2) & (X(F(p3))))))))))","1",5
|
||||||
"F((p0) & (X(F((p1) & (X(F((p2) & (X(F(p3))))))))))","2",5
|
"F((p0) & (X(F((p1) & (X(F((p2) & (X(F(p3))))))))))","2",5
|
||||||
"F((p0) & (X(F((p1) & (X(F((p2) & (X(F(p3))))))))))","3",5
|
"F((p0) & (X(F((p1) & (X(F((p2) & (X(F(p3))))))))))","3",5
|
||||||
|
|
@ -175,6 +195,10 @@ cat > expected << EOF
|
||||||
"F((p0) & (X(F((p1) & (X(F((p2) & (X(F(p3))))))))))","11",5
|
"F((p0) & (X(F((p1) & (X(F((p2) & (X(F(p3))))))))))","11",5
|
||||||
"F((p0) & (X(F((p1) & (X(F((p2) & (X(F(p3))))))))))","12",5
|
"F((p0) & (X(F((p1) & (X(F((p2) & (X(F(p3))))))))))","12",5
|
||||||
"F((p0) & (X(F((p1) & (X(F((p2) & (X(F(p3))))))))))","13",5
|
"F((p0) & (X(F((p1) & (X(F((p2) & (X(F(p3))))))))))","13",5
|
||||||
|
"F((p0) & (X(F((p1) & (X(F((p2) & (X(F(p3))))))))))","14",5
|
||||||
|
"F((p0) & (X(F((p1) & (X(F((p2) & (X(F(p3))))))))))","15",5
|
||||||
|
"F((p0) & (X(F((p1) & (X(F((p2) & (X(F(p3))))))))))","16",5
|
||||||
|
"F((p0) & (X(F((p1) & (X(F((p2) & (X(F(p3))))))))))","17",5
|
||||||
"!(F((p0) & (X(F((p1) & (X(F((p2) & (X(F(p3)))))))))))","1",4
|
"!(F((p0) & (X(F((p1) & (X(F((p2) & (X(F(p3)))))))))))","1",4
|
||||||
"!(F((p0) & (X(F((p1) & (X(F((p2) & (X(F(p3)))))))))))","2",4
|
"!(F((p0) & (X(F((p1) & (X(F((p2) & (X(F(p3)))))))))))","2",4
|
||||||
"!(F((p0) & (X(F((p1) & (X(F((p2) & (X(F(p3)))))))))))","3",4
|
"!(F((p0) & (X(F((p1) & (X(F((p2) & (X(F(p3)))))))))))","3",4
|
||||||
|
|
@ -187,6 +211,10 @@ cat > expected << EOF
|
||||||
"!(F((p0) & (X(F((p1) & (X(F((p2) & (X(F(p3)))))))))))","11",4
|
"!(F((p0) & (X(F((p1) & (X(F((p2) & (X(F(p3)))))))))))","11",4
|
||||||
"!(F((p0) & (X(F((p1) & (X(F((p2) & (X(F(p3)))))))))))","12",4
|
"!(F((p0) & (X(F((p1) & (X(F((p2) & (X(F(p3)))))))))))","12",4
|
||||||
"!(F((p0) & (X(F((p1) & (X(F((p2) & (X(F(p3)))))))))))","13",4
|
"!(F((p0) & (X(F((p1) & (X(F((p2) & (X(F(p3)))))))))))","13",4
|
||||||
|
"!(F((p0) & (X(F((p1) & (X(F((p2) & (X(F(p3)))))))))))","14",4
|
||||||
|
"!(F((p0) & (X(F((p1) & (X(F((p2) & (X(F(p3)))))))))))","15",4
|
||||||
|
"!(F((p0) & (X(F((p1) & (X(F((p2) & (X(F(p3)))))))))))","16",4
|
||||||
|
"!(F((p0) & (X(F((p1) & (X(F((p2) & (X(F(p3)))))))))))","17",4
|
||||||
"F((p0) & (X((p1) U (p2))))","1",3
|
"F((p0) & (X((p1) U (p2))))","1",3
|
||||||
"F((p0) & (X((p1) U (p2))))","2",3
|
"F((p0) & (X((p1) U (p2))))","2",3
|
||||||
"F((p0) & (X((p1) U (p2))))","3",3
|
"F((p0) & (X((p1) U (p2))))","3",3
|
||||||
|
|
@ -199,6 +227,10 @@ cat > expected << EOF
|
||||||
"F((p0) & (X((p1) U (p2))))","11",3
|
"F((p0) & (X((p1) U (p2))))","11",3
|
||||||
"F((p0) & (X((p1) U (p2))))","12",3
|
"F((p0) & (X((p1) U (p2))))","12",3
|
||||||
"F((p0) & (X((p1) U (p2))))","13",3
|
"F((p0) & (X((p1) U (p2))))","13",3
|
||||||
|
"F((p0) & (X((p1) U (p2))))","14",3
|
||||||
|
"F((p0) & (X((p1) U (p2))))","15",3
|
||||||
|
"F((p0) & (X((p1) U (p2))))","16",3
|
||||||
|
"F((p0) & (X((p1) U (p2))))","17",3
|
||||||
"!(F((p0) & (X((p1) U (p2)))))","1",2
|
"!(F((p0) & (X((p1) U (p2)))))","1",2
|
||||||
"!(F((p0) & (X((p1) U (p2)))))","2",2
|
"!(F((p0) & (X((p1) U (p2)))))","2",2
|
||||||
"!(F((p0) & (X((p1) U (p2)))))","3",2
|
"!(F((p0) & (X((p1) U (p2)))))","3",2
|
||||||
|
|
@ -211,6 +243,10 @@ cat > expected << EOF
|
||||||
"!(F((p0) & (X((p1) U (p2)))))","11",2
|
"!(F((p0) & (X((p1) U (p2)))))","11",2
|
||||||
"!(F((p0) & (X((p1) U (p2)))))","12",2
|
"!(F((p0) & (X((p1) U (p2)))))","12",2
|
||||||
"!(F((p0) & (X((p1) U (p2)))))","13",2
|
"!(F((p0) & (X((p1) U (p2)))))","13",2
|
||||||
|
"!(F((p0) & (X((p1) U (p2)))))","14",2
|
||||||
|
"!(F((p0) & (X((p1) U (p2)))))","15",2
|
||||||
|
"!(F((p0) & (X((p1) U (p2)))))","16",2
|
||||||
|
"!(F((p0) & (X((p1) U (p2)))))","17",2
|
||||||
"F((p0) & (X((p1) & (X(F(p2))))))","1",4
|
"F((p0) & (X((p1) & (X(F(p2))))))","1",4
|
||||||
"F((p0) & (X((p1) & (X(F(p2))))))","2",4
|
"F((p0) & (X((p1) & (X(F(p2))))))","2",4
|
||||||
"F((p0) & (X((p1) & (X(F(p2))))))","3",4
|
"F((p0) & (X((p1) & (X(F(p2))))))","3",4
|
||||||
|
|
@ -223,6 +259,10 @@ cat > expected << EOF
|
||||||
"F((p0) & (X((p1) & (X(F(p2))))))","11",4
|
"F((p0) & (X((p1) & (X(F(p2))))))","11",4
|
||||||
"F((p0) & (X((p1) & (X(F(p2))))))","12",4
|
"F((p0) & (X((p1) & (X(F(p2))))))","12",4
|
||||||
"F((p0) & (X((p1) & (X(F(p2))))))","13",4
|
"F((p0) & (X((p1) & (X(F(p2))))))","13",4
|
||||||
|
"F((p0) & (X((p1) & (X(F(p2))))))","14",4
|
||||||
|
"F((p0) & (X((p1) & (X(F(p2))))))","15",4
|
||||||
|
"F((p0) & (X((p1) & (X(F(p2))))))","16",4
|
||||||
|
"F((p0) & (X((p1) & (X(F(p2))))))","17",4
|
||||||
"!(F((p0) & (X((p1) & (X(F(p2)))))))","1",3
|
"!(F((p0) & (X((p1) & (X(F(p2)))))))","1",3
|
||||||
"!(F((p0) & (X((p1) & (X(F(p2)))))))","2",3
|
"!(F((p0) & (X((p1) & (X(F(p2)))))))","2",3
|
||||||
"!(F((p0) & (X((p1) & (X(F(p2)))))))","3",3
|
"!(F((p0) & (X((p1) & (X(F(p2)))))))","3",3
|
||||||
|
|
@ -235,6 +275,10 @@ cat > expected << EOF
|
||||||
"!(F((p0) & (X((p1) & (X(F(p2)))))))","11",3
|
"!(F((p0) & (X((p1) & (X(F(p2)))))))","11",3
|
||||||
"!(F((p0) & (X((p1) & (X(F(p2)))))))","12",3
|
"!(F((p0) & (X((p1) & (X(F(p2)))))))","12",3
|
||||||
"!(F((p0) & (X((p1) & (X(F(p2)))))))","13",3
|
"!(F((p0) & (X((p1) & (X(F(p2)))))))","13",3
|
||||||
|
"!(F((p0) & (X((p1) & (X(F(p2)))))))","14",3
|
||||||
|
"!(F((p0) & (X((p1) & (X(F(p2)))))))","15",3
|
||||||
|
"!(F((p0) & (X((p1) & (X(F(p2)))))))","16",3
|
||||||
|
"!(F((p0) & (X((p1) & (X(F(p2)))))))","17",3
|
||||||
"(p0) U ((p1) & (X((p2) U (p3))))","1",4
|
"(p0) U ((p1) & (X((p2) U (p3))))","1",4
|
||||||
"(p0) U ((p1) & (X((p2) U (p3))))","2",4
|
"(p0) U ((p1) & (X((p2) U (p3))))","2",4
|
||||||
"(p0) U ((p1) & (X((p2) U (p3))))","3",4
|
"(p0) U ((p1) & (X((p2) U (p3))))","3",4
|
||||||
|
|
@ -247,6 +291,10 @@ cat > expected << EOF
|
||||||
"(p0) U ((p1) & (X((p2) U (p3))))","11",4
|
"(p0) U ((p1) & (X((p2) U (p3))))","11",4
|
||||||
"(p0) U ((p1) & (X((p2) U (p3))))","12",4
|
"(p0) U ((p1) & (X((p2) U (p3))))","12",4
|
||||||
"(p0) U ((p1) & (X((p2) U (p3))))","13",4
|
"(p0) U ((p1) & (X((p2) U (p3))))","13",4
|
||||||
|
"(p0) U ((p1) & (X((p2) U (p3))))","14",4
|
||||||
|
"(p0) U ((p1) & (X((p2) U (p3))))","15",4
|
||||||
|
"(p0) U ((p1) & (X((p2) U (p3))))","16",4
|
||||||
|
"(p0) U ((p1) & (X((p2) U (p3))))","17",4
|
||||||
"!((p0) U ((p1) & (X((p2) U (p3)))))","1",4
|
"!((p0) U ((p1) & (X((p2) U (p3)))))","1",4
|
||||||
"!((p0) U ((p1) & (X((p2) U (p3)))))","2",4
|
"!((p0) U ((p1) & (X((p2) U (p3)))))","2",4
|
||||||
"!((p0) U ((p1) & (X((p2) U (p3)))))","3",4
|
"!((p0) U ((p1) & (X((p2) U (p3)))))","3",4
|
||||||
|
|
@ -259,6 +307,10 @@ cat > expected << EOF
|
||||||
"!((p0) U ((p1) & (X((p2) U (p3)))))","11",4
|
"!((p0) U ((p1) & (X((p2) U (p3)))))","11",4
|
||||||
"!((p0) U ((p1) & (X((p2) U (p3)))))","12",4
|
"!((p0) U ((p1) & (X((p2) U (p3)))))","12",4
|
||||||
"!((p0) U ((p1) & (X((p2) U (p3)))))","13",4
|
"!((p0) U ((p1) & (X((p2) U (p3)))))","13",4
|
||||||
|
"!((p0) U ((p1) & (X((p2) U (p3)))))","14",4
|
||||||
|
"!((p0) U ((p1) & (X((p2) U (p3)))))","15",4
|
||||||
|
"!((p0) U ((p1) & (X((p2) U (p3)))))","16",4
|
||||||
|
"!((p0) U ((p1) & (X((p2) U (p3)))))","17",4
|
||||||
"(G((p0) -> (F(p1)))) & (G((p2) -> (F(p3))))","1",4
|
"(G((p0) -> (F(p1)))) & (G((p2) -> (F(p3))))","1",4
|
||||||
"(G((p0) -> (F(p1)))) & (G((p2) -> (F(p3))))","2",4
|
"(G((p0) -> (F(p1)))) & (G((p2) -> (F(p3))))","2",4
|
||||||
"(G((p0) -> (F(p1)))) & (G((p2) -> (F(p3))))","3",4
|
"(G((p0) -> (F(p1)))) & (G((p2) -> (F(p3))))","3",4
|
||||||
|
|
@ -271,6 +323,10 @@ cat > expected << EOF
|
||||||
"(G((p0) -> (F(p1)))) & (G((p2) -> (F(p3))))","11",4
|
"(G((p0) -> (F(p1)))) & (G((p2) -> (F(p3))))","11",4
|
||||||
"(G((p0) -> (F(p1)))) & (G((p2) -> (F(p3))))","12",4
|
"(G((p0) -> (F(p1)))) & (G((p2) -> (F(p3))))","12",4
|
||||||
"(G((p0) -> (F(p1)))) & (G((p2) -> (F(p3))))","13",4
|
"(G((p0) -> (F(p1)))) & (G((p2) -> (F(p3))))","13",4
|
||||||
|
"(G((p0) -> (F(p1)))) & (G((p2) -> (F(p3))))","14",4
|
||||||
|
"(G((p0) -> (F(p1)))) & (G((p2) -> (F(p3))))","15",4
|
||||||
|
"(G((p0) -> (F(p1)))) & (G((p2) -> (F(p3))))","16",4
|
||||||
|
"(G((p0) -> (F(p1)))) & (G((p2) -> (F(p3))))","17",4
|
||||||
"!((G((p0) -> (F(p1)))) & (G((p2) -> (F(p3)))))","1",3
|
"!((G((p0) -> (F(p1)))) & (G((p2) -> (F(p3)))))","1",3
|
||||||
"!((G((p0) -> (F(p1)))) & (G((p2) -> (F(p3)))))","2",3
|
"!((G((p0) -> (F(p1)))) & (G((p2) -> (F(p3)))))","2",3
|
||||||
"!((G((p0) -> (F(p1)))) & (G((p2) -> (F(p3)))))","3",3
|
"!((G((p0) -> (F(p1)))) & (G((p2) -> (F(p3)))))","3",3
|
||||||
|
|
@ -283,6 +339,10 @@ cat > expected << EOF
|
||||||
"!((G((p0) -> (F(p1)))) & (G((p2) -> (F(p3)))))","11",3
|
"!((G((p0) -> (F(p1)))) & (G((p2) -> (F(p3)))))","11",3
|
||||||
"!((G((p0) -> (F(p1)))) & (G((p2) -> (F(p3)))))","12",3
|
"!((G((p0) -> (F(p1)))) & (G((p2) -> (F(p3)))))","12",3
|
||||||
"!((G((p0) -> (F(p1)))) & (G((p2) -> (F(p3)))))","13",3
|
"!((G((p0) -> (F(p1)))) & (G((p2) -> (F(p3)))))","13",3
|
||||||
|
"!((G((p0) -> (F(p1)))) & (G((p2) -> (F(p3)))))","14",3
|
||||||
|
"!((G((p0) -> (F(p1)))) & (G((p2) -> (F(p3)))))","15",3
|
||||||
|
"!((G((p0) -> (F(p1)))) & (G((p2) -> (F(p3)))))","16",3
|
||||||
|
"!((G((p0) -> (F(p1)))) & (G((p2) -> (F(p3)))))","17",3
|
||||||
"(G(F(p0))) & (G(F(p1)))","1",1
|
"(G(F(p0))) & (G(F(p1)))","1",1
|
||||||
"(G(F(p0))) & (G(F(p1)))","2",1
|
"(G(F(p0))) & (G(F(p1)))","2",1
|
||||||
"(G(F(p0))) & (G(F(p1)))","3",1
|
"(G(F(p0))) & (G(F(p1)))","3",1
|
||||||
|
|
@ -295,6 +355,10 @@ cat > expected << EOF
|
||||||
"(G(F(p0))) & (G(F(p1)))","11",1
|
"(G(F(p0))) & (G(F(p1)))","11",1
|
||||||
"(G(F(p0))) & (G(F(p1)))","12",1
|
"(G(F(p0))) & (G(F(p1)))","12",1
|
||||||
"(G(F(p0))) & (G(F(p1)))","13",1
|
"(G(F(p0))) & (G(F(p1)))","13",1
|
||||||
|
"(G(F(p0))) & (G(F(p1)))","14",1
|
||||||
|
"(G(F(p0))) & (G(F(p1)))","15",1
|
||||||
|
"(G(F(p0))) & (G(F(p1)))","16",1
|
||||||
|
"(G(F(p0))) & (G(F(p1)))","17",1
|
||||||
"!((G(F(p0))) & (G(F(p1))))","1",3
|
"!((G(F(p0))) & (G(F(p1))))","1",3
|
||||||
"!((G(F(p0))) & (G(F(p1))))","2",3
|
"!((G(F(p0))) & (G(F(p1))))","2",3
|
||||||
"!((G(F(p0))) & (G(F(p1))))","3",3
|
"!((G(F(p0))) & (G(F(p1))))","3",3
|
||||||
|
|
@ -307,6 +371,10 @@ cat > expected << EOF
|
||||||
"!((G(F(p0))) & (G(F(p1))))","11",3
|
"!((G(F(p0))) & (G(F(p1))))","11",3
|
||||||
"!((G(F(p0))) & (G(F(p1))))","12",3
|
"!((G(F(p0))) & (G(F(p1))))","12",3
|
||||||
"!((G(F(p0))) & (G(F(p1))))","13",3
|
"!((G(F(p0))) & (G(F(p1))))","13",3
|
||||||
|
"!((G(F(p0))) & (G(F(p1))))","14",3
|
||||||
|
"!((G(F(p0))) & (G(F(p1))))","15",3
|
||||||
|
"!((G(F(p0))) & (G(F(p1))))","16",3
|
||||||
|
"!((G(F(p0))) & (G(F(p1))))","17",3
|
||||||
"(G(F(p0))) | (G(F(p1))) | (G(F(p2)))","1",1
|
"(G(F(p0))) | (G(F(p1))) | (G(F(p2)))","1",1
|
||||||
"(G(F(p0))) | (G(F(p1))) | (G(F(p2)))","2",1
|
"(G(F(p0))) | (G(F(p1))) | (G(F(p2)))","2",1
|
||||||
"(G(F(p0))) | (G(F(p1))) | (G(F(p2)))","3",1
|
"(G(F(p0))) | (G(F(p1))) | (G(F(p2)))","3",1
|
||||||
|
|
@ -319,6 +387,10 @@ cat > expected << EOF
|
||||||
"(G(F(p0))) | (G(F(p1))) | (G(F(p2)))","11",1
|
"(G(F(p0))) | (G(F(p1))) | (G(F(p2)))","11",1
|
||||||
"(G(F(p0))) | (G(F(p1))) | (G(F(p2)))","12",1
|
"(G(F(p0))) | (G(F(p1))) | (G(F(p2)))","12",1
|
||||||
"(G(F(p0))) | (G(F(p1))) | (G(F(p2)))","13",1
|
"(G(F(p0))) | (G(F(p1))) | (G(F(p2)))","13",1
|
||||||
|
"(G(F(p0))) | (G(F(p1))) | (G(F(p2)))","14",1
|
||||||
|
"(G(F(p0))) | (G(F(p1))) | (G(F(p2)))","15",1
|
||||||
|
"(G(F(p0))) | (G(F(p1))) | (G(F(p2)))","16",1
|
||||||
|
"(G(F(p0))) | (G(F(p1))) | (G(F(p2)))","17",1
|
||||||
"!((G(F(p0))) | (G(F(p1))) | (G(F(p2))))","1",2
|
"!((G(F(p0))) | (G(F(p1))) | (G(F(p2))))","1",2
|
||||||
"!((G(F(p0))) | (G(F(p1))) | (G(F(p2))))","2",2
|
"!((G(F(p0))) | (G(F(p1))) | (G(F(p2))))","2",2
|
||||||
"!((G(F(p0))) | (G(F(p1))) | (G(F(p2))))","3",2
|
"!((G(F(p0))) | (G(F(p1))) | (G(F(p2))))","3",2
|
||||||
|
|
@ -331,6 +403,10 @@ cat > expected << EOF
|
||||||
"!((G(F(p0))) | (G(F(p1))) | (G(F(p2))))","11",2
|
"!((G(F(p0))) | (G(F(p1))) | (G(F(p2))))","11",2
|
||||||
"!((G(F(p0))) | (G(F(p1))) | (G(F(p2))))","12",2
|
"!((G(F(p0))) | (G(F(p1))) | (G(F(p2))))","12",2
|
||||||
"!((G(F(p0))) | (G(F(p1))) | (G(F(p2))))","13",2
|
"!((G(F(p0))) | (G(F(p1))) | (G(F(p2))))","13",2
|
||||||
|
"!((G(F(p0))) | (G(F(p1))) | (G(F(p2))))","14",2
|
||||||
|
"!((G(F(p0))) | (G(F(p1))) | (G(F(p2))))","15",2
|
||||||
|
"!((G(F(p0))) | (G(F(p1))) | (G(F(p2))))","16",2
|
||||||
|
"!((G(F(p0))) | (G(F(p1))) | (G(F(p2))))","17",2
|
||||||
"G(F(p0))","1",1
|
"G(F(p0))","1",1
|
||||||
"G(F(p0))","2",1
|
"G(F(p0))","2",1
|
||||||
"G(F(p0))","3",1
|
"G(F(p0))","3",1
|
||||||
|
|
@ -343,6 +419,10 @@ cat > expected << EOF
|
||||||
"G(F(p0))","11",1
|
"G(F(p0))","11",1
|
||||||
"G(F(p0))","12",1
|
"G(F(p0))","12",1
|
||||||
"G(F(p0))","13",1
|
"G(F(p0))","13",1
|
||||||
|
"G(F(p0))","14",1
|
||||||
|
"G(F(p0))","15",1
|
||||||
|
"G(F(p0))","16",1
|
||||||
|
"G(F(p0))","17",1
|
||||||
"!(G(F(p0)))","1",2
|
"!(G(F(p0)))","1",2
|
||||||
"!(G(F(p0)))","2",2
|
"!(G(F(p0)))","2",2
|
||||||
"!(G(F(p0)))","3",2
|
"!(G(F(p0)))","3",2
|
||||||
|
|
@ -355,6 +435,10 @@ cat > expected << EOF
|
||||||
"!(G(F(p0)))","11",2
|
"!(G(F(p0)))","11",2
|
||||||
"!(G(F(p0)))","12",2
|
"!(G(F(p0)))","12",2
|
||||||
"!(G(F(p0)))","13",2
|
"!(G(F(p0)))","13",2
|
||||||
|
"!(G(F(p0)))","14",2
|
||||||
|
"!(G(F(p0)))","15",2
|
||||||
|
"!(G(F(p0)))","16",2
|
||||||
|
"!(G(F(p0)))","17",2
|
||||||
"(p0) U ((p1) U ((p2) U (p3)))","1",4
|
"(p0) U ((p1) U ((p2) U (p3)))","1",4
|
||||||
"(p0) U ((p1) U ((p2) U (p3)))","2",4
|
"(p0) U ((p1) U ((p2) U (p3)))","2",4
|
||||||
"(p0) U ((p1) U ((p2) U (p3)))","3",4
|
"(p0) U ((p1) U ((p2) U (p3)))","3",4
|
||||||
|
|
@ -367,6 +451,10 @@ cat > expected << EOF
|
||||||
"(p0) U ((p1) U ((p2) U (p3)))","11",4
|
"(p0) U ((p1) U ((p2) U (p3)))","11",4
|
||||||
"(p0) U ((p1) U ((p2) U (p3)))","12",4
|
"(p0) U ((p1) U ((p2) U (p3)))","12",4
|
||||||
"(p0) U ((p1) U ((p2) U (p3)))","13",4
|
"(p0) U ((p1) U ((p2) U (p3)))","13",4
|
||||||
|
"(p0) U ((p1) U ((p2) U (p3)))","14",4
|
||||||
|
"(p0) U ((p1) U ((p2) U (p3)))","15",4
|
||||||
|
"(p0) U ((p1) U ((p2) U (p3)))","16",4
|
||||||
|
"(p0) U ((p1) U ((p2) U (p3)))","17",4
|
||||||
"!((p0) U ((p1) U ((p2) U (p3))))","1",4
|
"!((p0) U ((p1) U ((p2) U (p3))))","1",4
|
||||||
"!((p0) U ((p1) U ((p2) U (p3))))","2",4
|
"!((p0) U ((p1) U ((p2) U (p3))))","2",4
|
||||||
"!((p0) U ((p1) U ((p2) U (p3))))","3",4
|
"!((p0) U ((p1) U ((p2) U (p3))))","3",4
|
||||||
|
|
@ -379,6 +467,10 @@ cat > expected << EOF
|
||||||
"!((p0) U ((p1) U ((p2) U (p3))))","11",4
|
"!((p0) U ((p1) U ((p2) U (p3))))","11",4
|
||||||
"!((p0) U ((p1) U ((p2) U (p3))))","12",4
|
"!((p0) U ((p1) U ((p2) U (p3))))","12",4
|
||||||
"!((p0) U ((p1) U ((p2) U (p3))))","13",4
|
"!((p0) U ((p1) U ((p2) U (p3))))","13",4
|
||||||
|
"!((p0) U ((p1) U ((p2) U (p3))))","14",4
|
||||||
|
"!((p0) U ((p1) U ((p2) U (p3))))","15",4
|
||||||
|
"!((p0) U ((p1) U ((p2) U (p3))))","16",4
|
||||||
|
"!((p0) U ((p1) U ((p2) U (p3))))","17",4
|
||||||
"(G((p0) -> (F(p1)))) & (G(p2))","1",2
|
"(G((p0) -> (F(p1)))) & (G(p2))","1",2
|
||||||
"(G((p0) -> (F(p1)))) & (G(p2))","2",2
|
"(G((p0) -> (F(p1)))) & (G(p2))","2",2
|
||||||
"(G((p0) -> (F(p1)))) & (G(p2))","3",2
|
"(G((p0) -> (F(p1)))) & (G(p2))","3",2
|
||||||
|
|
@ -391,6 +483,10 @@ cat > expected << EOF
|
||||||
"(G((p0) -> (F(p1)))) & (G(p2))","11",2
|
"(G((p0) -> (F(p1)))) & (G(p2))","11",2
|
||||||
"(G((p0) -> (F(p1)))) & (G(p2))","12",2
|
"(G((p0) -> (F(p1)))) & (G(p2))","12",2
|
||||||
"(G((p0) -> (F(p1)))) & (G(p2))","13",2
|
"(G((p0) -> (F(p1)))) & (G(p2))","13",2
|
||||||
|
"(G((p0) -> (F(p1)))) & (G(p2))","14",2
|
||||||
|
"(G((p0) -> (F(p1)))) & (G(p2))","15",2
|
||||||
|
"(G((p0) -> (F(p1)))) & (G(p2))","16",2
|
||||||
|
"(G((p0) -> (F(p1)))) & (G(p2))","17",2
|
||||||
"!((G((p0) -> (F(p1)))) & (G(p2)))","1",3
|
"!((G((p0) -> (F(p1)))) & (G(p2)))","1",3
|
||||||
"!((G((p0) -> (F(p1)))) & (G(p2)))","2",3
|
"!((G((p0) -> (F(p1)))) & (G(p2)))","2",3
|
||||||
"!((G((p0) -> (F(p1)))) & (G(p2)))","3",3
|
"!((G((p0) -> (F(p1)))) & (G(p2)))","3",3
|
||||||
|
|
@ -403,6 +499,10 @@ cat > expected << EOF
|
||||||
"!((G((p0) -> (F(p1)))) & (G(p2)))","11",3
|
"!((G((p0) -> (F(p1)))) & (G(p2)))","11",3
|
||||||
"!((G((p0) -> (F(p1)))) & (G(p2)))","12",3
|
"!((G((p0) -> (F(p1)))) & (G(p2)))","12",3
|
||||||
"!((G((p0) -> (F(p1)))) & (G(p2)))","13",3
|
"!((G((p0) -> (F(p1)))) & (G(p2)))","13",3
|
||||||
|
"!((G((p0) -> (F(p1)))) & (G(p2)))","14",3
|
||||||
|
"!((G((p0) -> (F(p1)))) & (G(p2)))","15",3
|
||||||
|
"!((G((p0) -> (F(p1)))) & (G(p2)))","16",3
|
||||||
|
"!((G((p0) -> (F(p1)))) & (G(p2)))","17",3
|
||||||
"((G(p0)) -> (F(p1))) & ((G(!(p0))) -> (F(!(p1))))","1",4
|
"((G(p0)) -> (F(p1))) & ((G(!(p0))) -> (F(!(p1))))","1",4
|
||||||
"((G(p0)) -> (F(p1))) & ((G(!(p0))) -> (F(!(p1))))","2",4
|
"((G(p0)) -> (F(p1))) & ((G(!(p0))) -> (F(!(p1))))","2",4
|
||||||
"((G(p0)) -> (F(p1))) & ((G(!(p0))) -> (F(!(p1))))","3",4
|
"((G(p0)) -> (F(p1))) & ((G(!(p0))) -> (F(!(p1))))","3",4
|
||||||
|
|
@ -415,6 +515,10 @@ cat > expected << EOF
|
||||||
"((G(p0)) -> (F(p1))) & ((G(!(p0))) -> (F(!(p1))))","11",4
|
"((G(p0)) -> (F(p1))) & ((G(!(p0))) -> (F(!(p1))))","11",4
|
||||||
"((G(p0)) -> (F(p1))) & ((G(!(p0))) -> (F(!(p1))))","12",4
|
"((G(p0)) -> (F(p1))) & ((G(!(p0))) -> (F(!(p1))))","12",4
|
||||||
"((G(p0)) -> (F(p1))) & ((G(!(p0))) -> (F(!(p1))))","13",4
|
"((G(p0)) -> (F(p1))) & ((G(!(p0))) -> (F(!(p1))))","13",4
|
||||||
|
"((G(p0)) -> (F(p1))) & ((G(!(p0))) -> (F(!(p1))))","14",4
|
||||||
|
"((G(p0)) -> (F(p1))) & ((G(!(p0))) -> (F(!(p1))))","15",4
|
||||||
|
"((G(p0)) -> (F(p1))) & ((G(!(p0))) -> (F(!(p1))))","16",4
|
||||||
|
"((G(p0)) -> (F(p1))) & ((G(!(p0))) -> (F(!(p1))))","17",4
|
||||||
"!(((G(p0)) -> (F(p1))) & ((G(!(p0))) -> (F(!(p1)))))","1",3
|
"!(((G(p0)) -> (F(p1))) & ((G(!(p0))) -> (F(!(p1)))))","1",3
|
||||||
"!(((G(p0)) -> (F(p1))) & ((G(!(p0))) -> (F(!(p1)))))","2",3
|
"!(((G(p0)) -> (F(p1))) & ((G(!(p0))) -> (F(!(p1)))))","2",3
|
||||||
"!(((G(p0)) -> (F(p1))) & ((G(!(p0))) -> (F(!(p1)))))","3",3
|
"!(((G(p0)) -> (F(p1))) & ((G(!(p0))) -> (F(!(p1)))))","3",3
|
||||||
|
|
@ -427,6 +531,10 @@ cat > expected << EOF
|
||||||
"!(((G(p0)) -> (F(p1))) & ((G(!(p0))) -> (F(!(p1)))))","11",3
|
"!(((G(p0)) -> (F(p1))) & ((G(!(p0))) -> (F(!(p1)))))","11",3
|
||||||
"!(((G(p0)) -> (F(p1))) & ((G(!(p0))) -> (F(!(p1)))))","12",3
|
"!(((G(p0)) -> (F(p1))) & ((G(!(p0))) -> (F(!(p1)))))","12",3
|
||||||
"!(((G(p0)) -> (F(p1))) & ((G(!(p0))) -> (F(!(p1)))))","13",3
|
"!(((G(p0)) -> (F(p1))) & ((G(!(p0))) -> (F(!(p1)))))","13",3
|
||||||
|
"!(((G(p0)) -> (F(p1))) & ((G(!(p0))) -> (F(!(p1)))))","14",3
|
||||||
|
"!(((G(p0)) -> (F(p1))) & ((G(!(p0))) -> (F(!(p1)))))","15",3
|
||||||
|
"!(((G(p0)) -> (F(p1))) & ((G(!(p0))) -> (F(!(p1)))))","16",3
|
||||||
|
"!(((G(p0)) -> (F(p1))) & ((G(!(p0))) -> (F(!(p1)))))","17",3
|
||||||
"(G((p0) -> (F(p1)))) & (G((p1) -> (F(p2))))","1",4
|
"(G((p0) -> (F(p1)))) & (G((p1) -> (F(p2))))","1",4
|
||||||
"(G((p0) -> (F(p1)))) & (G((p1) -> (F(p2))))","2",4
|
"(G((p0) -> (F(p1)))) & (G((p1) -> (F(p2))))","2",4
|
||||||
"(G((p0) -> (F(p1)))) & (G((p1) -> (F(p2))))","3",4
|
"(G((p0) -> (F(p1)))) & (G((p1) -> (F(p2))))","3",4
|
||||||
|
|
@ -439,6 +547,10 @@ cat > expected << EOF
|
||||||
"(G((p0) -> (F(p1)))) & (G((p1) -> (F(p2))))","11",3
|
"(G((p0) -> (F(p1)))) & (G((p1) -> (F(p2))))","11",3
|
||||||
"(G((p0) -> (F(p1)))) & (G((p1) -> (F(p2))))","12",3
|
"(G((p0) -> (F(p1)))) & (G((p1) -> (F(p2))))","12",3
|
||||||
"(G((p0) -> (F(p1)))) & (G((p1) -> (F(p2))))","13",3
|
"(G((p0) -> (F(p1)))) & (G((p1) -> (F(p2))))","13",3
|
||||||
|
"(G((p0) -> (F(p1)))) & (G((p1) -> (F(p2))))","14",3
|
||||||
|
"(G((p0) -> (F(p1)))) & (G((p1) -> (F(p2))))","15",3
|
||||||
|
"(G((p0) -> (F(p1)))) & (G((p1) -> (F(p2))))","16",3
|
||||||
|
"(G((p0) -> (F(p1)))) & (G((p1) -> (F(p2))))","17",3
|
||||||
"!((G((p0) -> (F(p1)))) & (G((p1) -> (F(p2)))))","1",3
|
"!((G((p0) -> (F(p1)))) & (G((p1) -> (F(p2)))))","1",3
|
||||||
"!((G((p0) -> (F(p1)))) & (G((p1) -> (F(p2)))))","2",3
|
"!((G((p0) -> (F(p1)))) & (G((p1) -> (F(p2)))))","2",3
|
||||||
"!((G((p0) -> (F(p1)))) & (G((p1) -> (F(p2)))))","3",3
|
"!((G((p0) -> (F(p1)))) & (G((p1) -> (F(p2)))))","3",3
|
||||||
|
|
@ -451,6 +563,10 @@ cat > expected << EOF
|
||||||
"!((G((p0) -> (F(p1)))) & (G((p1) -> (F(p2)))))","11",3
|
"!((G((p0) -> (F(p1)))) & (G((p1) -> (F(p2)))))","11",3
|
||||||
"!((G((p0) -> (F(p1)))) & (G((p1) -> (F(p2)))))","12",3
|
"!((G((p0) -> (F(p1)))) & (G((p1) -> (F(p2)))))","12",3
|
||||||
"!((G((p0) -> (F(p1)))) & (G((p1) -> (F(p2)))))","13",3
|
"!((G((p0) -> (F(p1)))) & (G((p1) -> (F(p2)))))","13",3
|
||||||
|
"!((G((p0) -> (F(p1)))) & (G((p1) -> (F(p2)))))","14",3
|
||||||
|
"!((G((p0) -> (F(p1)))) & (G((p1) -> (F(p2)))))","15",3
|
||||||
|
"!((G((p0) -> (F(p1)))) & (G((p1) -> (F(p2)))))","16",3
|
||||||
|
"!((G((p0) -> (F(p1)))) & (G((p1) -> (F(p2)))))","17",3
|
||||||
"(G((p0) -> (F(p1)))) & (G((!(p0)) -> (F(!(p1)))))","1",3
|
"(G((p0) -> (F(p1)))) & (G((!(p0)) -> (F(!(p1)))))","1",3
|
||||||
"(G((p0) -> (F(p1)))) & (G((!(p0)) -> (F(!(p1)))))","2",3
|
"(G((p0) -> (F(p1)))) & (G((!(p0)) -> (F(!(p1)))))","2",3
|
||||||
"(G((p0) -> (F(p1)))) & (G((!(p0)) -> (F(!(p1)))))","3",3
|
"(G((p0) -> (F(p1)))) & (G((!(p0)) -> (F(!(p1)))))","3",3
|
||||||
|
|
@ -463,6 +579,10 @@ cat > expected << EOF
|
||||||
"(G((p0) -> (F(p1)))) & (G((!(p0)) -> (F(!(p1)))))","11",3
|
"(G((p0) -> (F(p1)))) & (G((!(p0)) -> (F(!(p1)))))","11",3
|
||||||
"(G((p0) -> (F(p1)))) & (G((!(p0)) -> (F(!(p1)))))","12",3
|
"(G((p0) -> (F(p1)))) & (G((!(p0)) -> (F(!(p1)))))","12",3
|
||||||
"(G((p0) -> (F(p1)))) & (G((!(p0)) -> (F(!(p1)))))","13",3
|
"(G((p0) -> (F(p1)))) & (G((!(p0)) -> (F(!(p1)))))","13",3
|
||||||
|
"(G((p0) -> (F(p1)))) & (G((!(p0)) -> (F(!(p1)))))","14",3
|
||||||
|
"(G((p0) -> (F(p1)))) & (G((!(p0)) -> (F(!(p1)))))","15",3
|
||||||
|
"(G((p0) -> (F(p1)))) & (G((!(p0)) -> (F(!(p1)))))","16",3
|
||||||
|
"(G((p0) -> (F(p1)))) & (G((!(p0)) -> (F(!(p1)))))","17",3
|
||||||
"!((G((p0) -> (F(p1)))) & (G((!(p0)) -> (F(!(p1))))))","1",3
|
"!((G((p0) -> (F(p1)))) & (G((!(p0)) -> (F(!(p1))))))","1",3
|
||||||
"!((G((p0) -> (F(p1)))) & (G((!(p0)) -> (F(!(p1))))))","2",3
|
"!((G((p0) -> (F(p1)))) & (G((!(p0)) -> (F(!(p1))))))","2",3
|
||||||
"!((G((p0) -> (F(p1)))) & (G((!(p0)) -> (F(!(p1))))))","3",3
|
"!((G((p0) -> (F(p1)))) & (G((!(p0)) -> (F(!(p1))))))","3",3
|
||||||
|
|
@ -475,6 +595,10 @@ cat > expected << EOF
|
||||||
"!((G((p0) -> (F(p1)))) & (G((!(p0)) -> (F(!(p1))))))","11",3
|
"!((G((p0) -> (F(p1)))) & (G((!(p0)) -> (F(!(p1))))))","11",3
|
||||||
"!((G((p0) -> (F(p1)))) & (G((!(p0)) -> (F(!(p1))))))","12",3
|
"!((G((p0) -> (F(p1)))) & (G((!(p0)) -> (F(!(p1))))))","12",3
|
||||||
"!((G((p0) -> (F(p1)))) & (G((!(p0)) -> (F(!(p1))))))","13",3
|
"!((G((p0) -> (F(p1)))) & (G((!(p0)) -> (F(!(p1))))))","13",3
|
||||||
|
"!((G((p0) -> (F(p1)))) & (G((!(p0)) -> (F(!(p1))))))","14",3
|
||||||
|
"!((G((p0) -> (F(p1)))) & (G((!(p0)) -> (F(!(p1))))))","15",3
|
||||||
|
"!((G((p0) -> (F(p1)))) & (G((!(p0)) -> (F(!(p1))))))","16",3
|
||||||
|
"!((G((p0) -> (F(p1)))) & (G((!(p0)) -> (F(!(p1))))))","17",3
|
||||||
"(G(F(p0))) & (G(F(p1))) & (G(F(p2))) & (G(F(p3)))","1",1
|
"(G(F(p0))) & (G(F(p1))) & (G(F(p2))) & (G(F(p3)))","1",1
|
||||||
"(G(F(p0))) & (G(F(p1))) & (G(F(p2))) & (G(F(p3)))","2",1
|
"(G(F(p0))) & (G(F(p1))) & (G(F(p2))) & (G(F(p3)))","2",1
|
||||||
"(G(F(p0))) & (G(F(p1))) & (G(F(p2))) & (G(F(p3)))","3",1
|
"(G(F(p0))) & (G(F(p1))) & (G(F(p2))) & (G(F(p3)))","3",1
|
||||||
|
|
@ -487,6 +611,10 @@ cat > expected << EOF
|
||||||
"(G(F(p0))) & (G(F(p1))) & (G(F(p2))) & (G(F(p3)))","11",1
|
"(G(F(p0))) & (G(F(p1))) & (G(F(p2))) & (G(F(p3)))","11",1
|
||||||
"(G(F(p0))) & (G(F(p1))) & (G(F(p2))) & (G(F(p3)))","12",1
|
"(G(F(p0))) & (G(F(p1))) & (G(F(p2))) & (G(F(p3)))","12",1
|
||||||
"(G(F(p0))) & (G(F(p1))) & (G(F(p2))) & (G(F(p3)))","13",1
|
"(G(F(p0))) & (G(F(p1))) & (G(F(p2))) & (G(F(p3)))","13",1
|
||||||
|
"(G(F(p0))) & (G(F(p1))) & (G(F(p2))) & (G(F(p3)))","14",1
|
||||||
|
"(G(F(p0))) & (G(F(p1))) & (G(F(p2))) & (G(F(p3)))","15",1
|
||||||
|
"(G(F(p0))) & (G(F(p1))) & (G(F(p2))) & (G(F(p3)))","16",1
|
||||||
|
"(G(F(p0))) & (G(F(p1))) & (G(F(p2))) & (G(F(p3)))","17",1
|
||||||
"!((G(F(p0))) & (G(F(p1))) & (G(F(p2))) & (G(F(p3))))","1",5
|
"!((G(F(p0))) & (G(F(p1))) & (G(F(p2))) & (G(F(p3))))","1",5
|
||||||
"!((G(F(p0))) & (G(F(p1))) & (G(F(p2))) & (G(F(p3))))","2",5
|
"!((G(F(p0))) & (G(F(p1))) & (G(F(p2))) & (G(F(p3))))","2",5
|
||||||
"!((G(F(p0))) & (G(F(p1))) & (G(F(p2))) & (G(F(p3))))","3",5
|
"!((G(F(p0))) & (G(F(p1))) & (G(F(p2))) & (G(F(p3))))","3",5
|
||||||
|
|
@ -499,6 +627,10 @@ cat > expected << EOF
|
||||||
"!((G(F(p0))) & (G(F(p1))) & (G(F(p2))) & (G(F(p3))))","11",5
|
"!((G(F(p0))) & (G(F(p1))) & (G(F(p2))) & (G(F(p3))))","11",5
|
||||||
"!((G(F(p0))) & (G(F(p1))) & (G(F(p2))) & (G(F(p3))))","12",5
|
"!((G(F(p0))) & (G(F(p1))) & (G(F(p2))) & (G(F(p3))))","12",5
|
||||||
"!((G(F(p0))) & (G(F(p1))) & (G(F(p2))) & (G(F(p3))))","13",5
|
"!((G(F(p0))) & (G(F(p1))) & (G(F(p2))) & (G(F(p3))))","13",5
|
||||||
|
"!((G(F(p0))) & (G(F(p1))) & (G(F(p2))) & (G(F(p3))))","14",5
|
||||||
|
"!((G(F(p0))) & (G(F(p1))) & (G(F(p2))) & (G(F(p3))))","15",5
|
||||||
|
"!((G(F(p0))) & (G(F(p1))) & (G(F(p2))) & (G(F(p3))))","16",5
|
||||||
|
"!((G(F(p0))) & (G(F(p1))) & (G(F(p2))) & (G(F(p3))))","17",5
|
||||||
"G((p0) -> ((p1) U (p2)))","1",2
|
"G((p0) -> ((p1) U (p2)))","1",2
|
||||||
"G((p0) -> ((p1) U (p2)))","2",2
|
"G((p0) -> ((p1) U (p2)))","2",2
|
||||||
"G((p0) -> ((p1) U (p2)))","3",2
|
"G((p0) -> ((p1) U (p2)))","3",2
|
||||||
|
|
@ -511,6 +643,10 @@ cat > expected << EOF
|
||||||
"G((p0) -> ((p1) U (p2)))","11",2
|
"G((p0) -> ((p1) U (p2)))","11",2
|
||||||
"G((p0) -> ((p1) U (p2)))","12",2
|
"G((p0) -> ((p1) U (p2)))","12",2
|
||||||
"G((p0) -> ((p1) U (p2)))","13",2
|
"G((p0) -> ((p1) U (p2)))","13",2
|
||||||
|
"G((p0) -> ((p1) U (p2)))","14",2
|
||||||
|
"G((p0) -> ((p1) U (p2)))","15",2
|
||||||
|
"G((p0) -> ((p1) U (p2)))","16",2
|
||||||
|
"G((p0) -> ((p1) U (p2)))","17",2
|
||||||
"!(G((p0) -> ((p1) U (p2))))","1",3
|
"!(G((p0) -> ((p1) U (p2))))","1",3
|
||||||
"!(G((p0) -> ((p1) U (p2))))","2",3
|
"!(G((p0) -> ((p1) U (p2))))","2",3
|
||||||
"!(G((p0) -> ((p1) U (p2))))","3",3
|
"!(G((p0) -> ((p1) U (p2))))","3",3
|
||||||
|
|
@ -523,6 +659,10 @@ cat > expected << EOF
|
||||||
"!(G((p0) -> ((p1) U (p2))))","11",3
|
"!(G((p0) -> ((p1) U (p2))))","11",3
|
||||||
"!(G((p0) -> ((p1) U (p2))))","12",3
|
"!(G((p0) -> ((p1) U (p2))))","12",3
|
||||||
"!(G((p0) -> ((p1) U (p2))))","13",3
|
"!(G((p0) -> ((p1) U (p2))))","13",3
|
||||||
|
"!(G((p0) -> ((p1) U (p2))))","14",3
|
||||||
|
"!(G((p0) -> ((p1) U (p2))))","15",3
|
||||||
|
"!(G((p0) -> ((p1) U (p2))))","16",3
|
||||||
|
"!(G((p0) -> ((p1) U (p2))))","17",3
|
||||||
"G(F((p0) <-> (X(X(p1)))))","1",9
|
"G(F((p0) <-> (X(X(p1)))))","1",9
|
||||||
"G(F((p0) <-> (X(X(p1)))))","2",7
|
"G(F((p0) <-> (X(X(p1)))))","2",7
|
||||||
"G(F((p0) <-> (X(X(p1)))))","3",4
|
"G(F((p0) <-> (X(X(p1)))))","3",4
|
||||||
|
|
@ -535,6 +675,10 @@ cat > expected << EOF
|
||||||
"G(F((p0) <-> (X(X(p1)))))","11",4
|
"G(F((p0) <-> (X(X(p1)))))","11",4
|
||||||
"G(F((p0) <-> (X(X(p1)))))","12",4
|
"G(F((p0) <-> (X(X(p1)))))","12",4
|
||||||
"G(F((p0) <-> (X(X(p1)))))","13",4
|
"G(F((p0) <-> (X(X(p1)))))","13",4
|
||||||
|
"G(F((p0) <-> (X(X(p1)))))","14",4
|
||||||
|
"G(F((p0) <-> (X(X(p1)))))","15",4
|
||||||
|
"G(F((p0) <-> (X(X(p1)))))","16",4
|
||||||
|
"G(F((p0) <-> (X(X(p1)))))","17",4
|
||||||
"!(G(F((p0) <-> (X(X(p1))))))","1",7
|
"!(G(F((p0) <-> (X(X(p1))))))","1",7
|
||||||
"!(G(F((p0) <-> (X(X(p1))))))","2",7
|
"!(G(F((p0) <-> (X(X(p1))))))","2",7
|
||||||
"!(G(F((p0) <-> (X(X(p1))))))","3",7
|
"!(G(F((p0) <-> (X(X(p1))))))","3",7
|
||||||
|
|
@ -547,6 +691,10 @@ cat > expected << EOF
|
||||||
"!(G(F((p0) <-> (X(X(p1))))))","11",7
|
"!(G(F((p0) <-> (X(X(p1))))))","11",7
|
||||||
"!(G(F((p0) <-> (X(X(p1))))))","12",7
|
"!(G(F((p0) <-> (X(X(p1))))))","12",7
|
||||||
"!(G(F((p0) <-> (X(X(p1))))))","13",7
|
"!(G(F((p0) <-> (X(X(p1))))))","13",7
|
||||||
|
"!(G(F((p0) <-> (X(X(p1))))))","14",7
|
||||||
|
"!(G(F((p0) <-> (X(X(p1))))))","15",7
|
||||||
|
"!(G(F((p0) <-> (X(X(p1))))))","16",7
|
||||||
|
"!(G(F((p0) <-> (X(X(p1))))))","17",7
|
||||||
"(G(!(p0))) & (G((p1) -> (F(p2)))) & (G((p2) -> (F(p0))))","1",1
|
"(G(!(p0))) & (G((p1) -> (F(p2)))) & (G((p2) -> (F(p0))))","1",1
|
||||||
"(G(!(p0))) & (G((p1) -> (F(p2)))) & (G((p2) -> (F(p0))))","2",1
|
"(G(!(p0))) & (G((p1) -> (F(p2)))) & (G((p2) -> (F(p0))))","2",1
|
||||||
"(G(!(p0))) & (G((p1) -> (F(p2)))) & (G((p2) -> (F(p0))))","3",1
|
"(G(!(p0))) & (G((p1) -> (F(p2)))) & (G((p2) -> (F(p0))))","3",1
|
||||||
|
|
@ -559,6 +707,10 @@ cat > expected << EOF
|
||||||
"(G(!(p0))) & (G((p1) -> (F(p2)))) & (G((p2) -> (F(p0))))","11",1
|
"(G(!(p0))) & (G((p1) -> (F(p2)))) & (G((p2) -> (F(p0))))","11",1
|
||||||
"(G(!(p0))) & (G((p1) -> (F(p2)))) & (G((p2) -> (F(p0))))","12",1
|
"(G(!(p0))) & (G((p1) -> (F(p2)))) & (G((p2) -> (F(p0))))","12",1
|
||||||
"(G(!(p0))) & (G((p1) -> (F(p2)))) & (G((p2) -> (F(p0))))","13",1
|
"(G(!(p0))) & (G((p1) -> (F(p2)))) & (G((p2) -> (F(p0))))","13",1
|
||||||
|
"(G(!(p0))) & (G((p1) -> (F(p2)))) & (G((p2) -> (F(p0))))","14",1
|
||||||
|
"(G(!(p0))) & (G((p1) -> (F(p2)))) & (G((p2) -> (F(p0))))","15",1
|
||||||
|
"(G(!(p0))) & (G((p1) -> (F(p2)))) & (G((p2) -> (F(p0))))","16",1
|
||||||
|
"(G(!(p0))) & (G((p1) -> (F(p2)))) & (G((p2) -> (F(p0))))","17",1
|
||||||
"!((G(!(p0))) & (G((p1) -> (F(p2)))) & (G((p2) -> (F(p0)))))","1",2
|
"!((G(!(p0))) & (G((p1) -> (F(p2)))) & (G((p2) -> (F(p0)))))","1",2
|
||||||
"!((G(!(p0))) & (G((p1) -> (F(p2)))) & (G((p2) -> (F(p0)))))","2",2
|
"!((G(!(p0))) & (G((p1) -> (F(p2)))) & (G((p2) -> (F(p0)))))","2",2
|
||||||
"!((G(!(p0))) & (G((p1) -> (F(p2)))) & (G((p2) -> (F(p0)))))","3",2
|
"!((G(!(p0))) & (G((p1) -> (F(p2)))) & (G((p2) -> (F(p0)))))","3",2
|
||||||
|
|
@ -571,6 +723,10 @@ cat > expected << EOF
|
||||||
"!((G(!(p0))) & (G((p1) -> (F(p2)))) & (G((p2) -> (F(p0)))))","11",2
|
"!((G(!(p0))) & (G((p1) -> (F(p2)))) & (G((p2) -> (F(p0)))))","11",2
|
||||||
"!((G(!(p0))) & (G((p1) -> (F(p2)))) & (G((p2) -> (F(p0)))))","12",2
|
"!((G(!(p0))) & (G((p1) -> (F(p2)))) & (G((p2) -> (F(p0)))))","12",2
|
||||||
"!((G(!(p0))) & (G((p1) -> (F(p2)))) & (G((p2) -> (F(p0)))))","13",2
|
"!((G(!(p0))) & (G((p1) -> (F(p2)))) & (G((p2) -> (F(p0)))))","13",2
|
||||||
|
"!((G(!(p0))) & (G((p1) -> (F(p2)))) & (G((p2) -> (F(p0)))))","14",2
|
||||||
|
"!((G(!(p0))) & (G((p1) -> (F(p2)))) & (G((p2) -> (F(p0)))))","15",2
|
||||||
|
"!((G(!(p0))) & (G((p1) -> (F(p2)))) & (G((p2) -> (F(p0)))))","16",2
|
||||||
|
"!((G(!(p0))) & (G((p1) -> (F(p2)))) & (G((p2) -> (F(p0)))))","17",2
|
||||||
"G((p0) -> (X(X(X(p1)))))","1",8
|
"G((p0) -> (X(X(X(p1)))))","1",8
|
||||||
"G((p0) -> (X(X(X(p1)))))","2",8
|
"G((p0) -> (X(X(X(p1)))))","2",8
|
||||||
"G((p0) -> (X(X(X(p1)))))","3",8
|
"G((p0) -> (X(X(X(p1)))))","3",8
|
||||||
|
|
@ -583,6 +739,10 @@ cat > expected << EOF
|
||||||
"G((p0) -> (X(X(X(p1)))))","11",8
|
"G((p0) -> (X(X(X(p1)))))","11",8
|
||||||
"G((p0) -> (X(X(X(p1)))))","12",8
|
"G((p0) -> (X(X(X(p1)))))","12",8
|
||||||
"G((p0) -> (X(X(X(p1)))))","13",8
|
"G((p0) -> (X(X(X(p1)))))","13",8
|
||||||
|
"G((p0) -> (X(X(X(p1)))))","14",8
|
||||||
|
"G((p0) -> (X(X(X(p1)))))","15",8
|
||||||
|
"G((p0) -> (X(X(X(p1)))))","16",8
|
||||||
|
"G((p0) -> (X(X(X(p1)))))","17",8
|
||||||
"!(G((p0) -> (X(X(X(p1))))))","1",9
|
"!(G((p0) -> (X(X(X(p1))))))","1",9
|
||||||
"!(G((p0) -> (X(X(X(p1))))))","2",9
|
"!(G((p0) -> (X(X(X(p1))))))","2",9
|
||||||
"!(G((p0) -> (X(X(X(p1))))))","3",9
|
"!(G((p0) -> (X(X(X(p1))))))","3",9
|
||||||
|
|
@ -595,6 +755,10 @@ cat > expected << EOF
|
||||||
"!(G((p0) -> (X(X(X(p1))))))","11",9
|
"!(G((p0) -> (X(X(X(p1))))))","11",9
|
||||||
"!(G((p0) -> (X(X(X(p1))))))","12",9
|
"!(G((p0) -> (X(X(X(p1))))))","12",9
|
||||||
"!(G((p0) -> (X(X(X(p1))))))","13",9
|
"!(G((p0) -> (X(X(X(p1))))))","13",9
|
||||||
|
"!(G((p0) -> (X(X(X(p1))))))","14",9
|
||||||
|
"!(G((p0) -> (X(X(X(p1))))))","15",9
|
||||||
|
"!(G((p0) -> (X(X(X(p1))))))","16",9
|
||||||
|
"!(G((p0) -> (X(X(X(p1))))))","17",9
|
||||||
"G((p0) -> (F(p1)))","1",2
|
"G((p0) -> (F(p1)))","1",2
|
||||||
"G((p0) -> (F(p1)))","2",2
|
"G((p0) -> (F(p1)))","2",2
|
||||||
"G((p0) -> (F(p1)))","3",2
|
"G((p0) -> (F(p1)))","3",2
|
||||||
|
|
@ -607,6 +771,10 @@ cat > expected << EOF
|
||||||
"G((p0) -> (F(p1)))","11",2
|
"G((p0) -> (F(p1)))","11",2
|
||||||
"G((p0) -> (F(p1)))","12",2
|
"G((p0) -> (F(p1)))","12",2
|
||||||
"G((p0) -> (F(p1)))","13",2
|
"G((p0) -> (F(p1)))","13",2
|
||||||
|
"G((p0) -> (F(p1)))","14",2
|
||||||
|
"G((p0) -> (F(p1)))","15",2
|
||||||
|
"G((p0) -> (F(p1)))","16",2
|
||||||
|
"G((p0) -> (F(p1)))","17",2
|
||||||
"!(G((p0) -> (F(p1))))","1",2
|
"!(G((p0) -> (F(p1))))","1",2
|
||||||
"!(G((p0) -> (F(p1))))","2",2
|
"!(G((p0) -> (F(p1))))","2",2
|
||||||
"!(G((p0) -> (F(p1))))","3",2
|
"!(G((p0) -> (F(p1))))","3",2
|
||||||
|
|
@ -619,6 +787,10 @@ cat > expected << EOF
|
||||||
"!(G((p0) -> (F(p1))))","11",2
|
"!(G((p0) -> (F(p1))))","11",2
|
||||||
"!(G((p0) -> (F(p1))))","12",2
|
"!(G((p0) -> (F(p1))))","12",2
|
||||||
"!(G((p0) -> (F(p1))))","13",2
|
"!(G((p0) -> (F(p1))))","13",2
|
||||||
|
"!(G((p0) -> (F(p1))))","14",2
|
||||||
|
"!(G((p0) -> (F(p1))))","15",2
|
||||||
|
"!(G((p0) -> (F(p1))))","16",2
|
||||||
|
"!(G((p0) -> (F(p1))))","17",2
|
||||||
"G((p0) U ((p1) U ((!(p0)) U (!(p1)))))","1",1
|
"G((p0) U ((p1) U ((!(p0)) U (!(p1)))))","1",1
|
||||||
"G((p0) U ((p1) U ((!(p0)) U (!(p1)))))","2",1
|
"G((p0) U ((p1) U ((!(p0)) U (!(p1)))))","2",1
|
||||||
"G((p0) U ((p1) U ((!(p0)) U (!(p1)))))","3",1
|
"G((p0) U ((p1) U ((!(p0)) U (!(p1)))))","3",1
|
||||||
|
|
@ -631,6 +803,10 @@ cat > expected << EOF
|
||||||
"G((p0) U ((p1) U ((!(p0)) U (!(p1)))))","11",1
|
"G((p0) U ((p1) U ((!(p0)) U (!(p1)))))","11",1
|
||||||
"G((p0) U ((p1) U ((!(p0)) U (!(p1)))))","12",1
|
"G((p0) U ((p1) U ((!(p0)) U (!(p1)))))","12",1
|
||||||
"G((p0) U ((p1) U ((!(p0)) U (!(p1)))))","13",1
|
"G((p0) U ((p1) U ((!(p0)) U (!(p1)))))","13",1
|
||||||
|
"G((p0) U ((p1) U ((!(p0)) U (!(p1)))))","14",1
|
||||||
|
"G((p0) U ((p1) U ((!(p0)) U (!(p1)))))","15",1
|
||||||
|
"G((p0) U ((p1) U ((!(p0)) U (!(p1)))))","16",1
|
||||||
|
"G((p0) U ((p1) U ((!(p0)) U (!(p1)))))","17",1
|
||||||
"!(G((p0) U ((p1) U ((!(p0)) U (!(p1))))))","1",2
|
"!(G((p0) U ((p1) U ((!(p0)) U (!(p1))))))","1",2
|
||||||
"!(G((p0) U ((p1) U ((!(p0)) U (!(p1))))))","2",2
|
"!(G((p0) U ((p1) U ((!(p0)) U (!(p1))))))","2",2
|
||||||
"!(G((p0) U ((p1) U ((!(p0)) U (!(p1))))))","3",2
|
"!(G((p0) U ((p1) U ((!(p0)) U (!(p1))))))","3",2
|
||||||
|
|
@ -643,6 +819,10 @@ cat > expected << EOF
|
||||||
"!(G((p0) U ((p1) U ((!(p0)) U (!(p1))))))","11",2
|
"!(G((p0) U ((p1) U ((!(p0)) U (!(p1))))))","11",2
|
||||||
"!(G((p0) U ((p1) U ((!(p0)) U (!(p1))))))","12",2
|
"!(G((p0) U ((p1) U ((!(p0)) U (!(p1))))))","12",2
|
||||||
"!(G((p0) U ((p1) U ((!(p0)) U (!(p1))))))","13",2
|
"!(G((p0) U ((p1) U ((!(p0)) U (!(p1))))))","13",2
|
||||||
|
"!(G((p0) U ((p1) U ((!(p0)) U (!(p1))))))","14",2
|
||||||
|
"!(G((p0) U ((p1) U ((!(p0)) U (!(p1))))))","15",2
|
||||||
|
"!(G((p0) U ((p1) U ((!(p0)) U (!(p1))))))","16",2
|
||||||
|
"!(G((p0) U ((p1) U ((!(p0)) U (!(p1))))))","17",2
|
||||||
"X((((p0) & (p1)) R ((!(p0)) U (!(p2)))) R (p1))","1",4
|
"X((((p0) & (p1)) R ((!(p0)) U (!(p2)))) R (p1))","1",4
|
||||||
"X((((p0) & (p1)) R ((!(p0)) U (!(p2)))) R (p1))","2",5
|
"X((((p0) & (p1)) R ((!(p0)) U (!(p2)))) R (p1))","2",5
|
||||||
"X((((p0) & (p1)) R ((!(p0)) U (!(p2)))) R (p1))","3",5
|
"X((((p0) & (p1)) R ((!(p0)) U (!(p2)))) R (p1))","3",5
|
||||||
|
|
@ -655,6 +835,10 @@ cat > expected << EOF
|
||||||
"X((((p0) & (p1)) R ((!(p0)) U (!(p2)))) R (p1))","11",5
|
"X((((p0) & (p1)) R ((!(p0)) U (!(p2)))) R (p1))","11",5
|
||||||
"X((((p0) & (p1)) R ((!(p0)) U (!(p2)))) R (p1))","12",5
|
"X((((p0) & (p1)) R ((!(p0)) U (!(p2)))) R (p1))","12",5
|
||||||
"X((((p0) & (p1)) R ((!(p0)) U (!(p2)))) R (p1))","13",5
|
"X((((p0) & (p1)) R ((!(p0)) U (!(p2)))) R (p1))","13",5
|
||||||
|
"X((((p0) & (p1)) R ((!(p0)) U (!(p2)))) R (p1))","14",5
|
||||||
|
"X((((p0) & (p1)) R ((!(p0)) U (!(p2)))) R (p1))","15",5
|
||||||
|
"X((((p0) & (p1)) R ((!(p0)) U (!(p2)))) R (p1))","16",5
|
||||||
|
"X((((p0) & (p1)) R ((!(p0)) U (!(p2)))) R (p1))","17",5
|
||||||
"!(X((((p0) & (p1)) R ((!(p0)) U (!(p2)))) R (p1)))","1",6
|
"!(X((((p0) & (p1)) R ((!(p0)) U (!(p2)))) R (p1)))","1",6
|
||||||
"!(X((((p0) & (p1)) R ((!(p0)) U (!(p2)))) R (p1)))","2",6
|
"!(X((((p0) & (p1)) R ((!(p0)) U (!(p2)))) R (p1)))","2",6
|
||||||
"!(X((((p0) & (p1)) R ((!(p0)) U (!(p2)))) R (p1)))","3",6
|
"!(X((((p0) & (p1)) R ((!(p0)) U (!(p2)))) R (p1)))","3",6
|
||||||
|
|
@ -667,6 +851,10 @@ cat > expected << EOF
|
||||||
"!(X((((p0) & (p1)) R ((!(p0)) U (!(p2)))) R (p1)))","11",6
|
"!(X((((p0) & (p1)) R ((!(p0)) U (!(p2)))) R (p1)))","11",6
|
||||||
"!(X((((p0) & (p1)) R ((!(p0)) U (!(p2)))) R (p1)))","12",6
|
"!(X((((p0) & (p1)) R ((!(p0)) U (!(p2)))) R (p1)))","12",6
|
||||||
"!(X((((p0) & (p1)) R ((!(p0)) U (!(p2)))) R (p1)))","13",6
|
"!(X((((p0) & (p1)) R ((!(p0)) U (!(p2)))) R (p1)))","13",6
|
||||||
|
"!(X((((p0) & (p1)) R ((!(p0)) U (!(p2)))) R (p1)))","14",6
|
||||||
|
"!(X((((p0) & (p1)) R ((!(p0)) U (!(p2)))) R (p1)))","15",6
|
||||||
|
"!(X((((p0) & (p1)) R ((!(p0)) U (!(p2)))) R (p1)))","16",6
|
||||||
|
"!(X((((p0) & (p1)) R ((!(p0)) U (!(p2)))) R (p1)))","17",6
|
||||||
"((!(p0)) M (!(p1))) W (F(!(p2)))","1",4
|
"((!(p0)) M (!(p1))) W (F(!(p2)))","1",4
|
||||||
"((!(p0)) M (!(p1))) W (F(!(p2)))","2",5
|
"((!(p0)) M (!(p1))) W (F(!(p2)))","2",5
|
||||||
"((!(p0)) M (!(p1))) W (F(!(p2)))","3",3
|
"((!(p0)) M (!(p1))) W (F(!(p2)))","3",3
|
||||||
|
|
@ -679,6 +867,10 @@ cat > expected << EOF
|
||||||
"((!(p0)) M (!(p1))) W (F(!(p2)))","11",3
|
"((!(p0)) M (!(p1))) W (F(!(p2)))","11",3
|
||||||
"((!(p0)) M (!(p1))) W (F(!(p2)))","12",3
|
"((!(p0)) M (!(p1))) W (F(!(p2)))","12",3
|
||||||
"((!(p0)) M (!(p1))) W (F(!(p2)))","13",3
|
"((!(p0)) M (!(p1))) W (F(!(p2)))","13",3
|
||||||
|
"((!(p0)) M (!(p1))) W (F(!(p2)))","14",3
|
||||||
|
"((!(p0)) M (!(p1))) W (F(!(p2)))","15",3
|
||||||
|
"((!(p0)) M (!(p1))) W (F(!(p2)))","16",3
|
||||||
|
"((!(p0)) M (!(p1))) W (F(!(p2)))","17",3
|
||||||
"!(((!(p0)) M (!(p1))) W (F(!(p2))))","1",3
|
"!(((!(p0)) M (!(p1))) W (F(!(p2))))","1",3
|
||||||
"!(((!(p0)) M (!(p1))) W (F(!(p2))))","2",3
|
"!(((!(p0)) M (!(p1))) W (F(!(p2))))","2",3
|
||||||
"!(((!(p0)) M (!(p1))) W (F(!(p2))))","3",3
|
"!(((!(p0)) M (!(p1))) W (F(!(p2))))","3",3
|
||||||
|
|
@ -691,6 +883,10 @@ cat > expected << EOF
|
||||||
"!(((!(p0)) M (!(p1))) W (F(!(p2))))","11",3
|
"!(((!(p0)) M (!(p1))) W (F(!(p2))))","11",3
|
||||||
"!(((!(p0)) M (!(p1))) W (F(!(p2))))","12",3
|
"!(((!(p0)) M (!(p1))) W (F(!(p2))))","12",3
|
||||||
"!(((!(p0)) M (!(p1))) W (F(!(p2))))","13",3
|
"!(((!(p0)) M (!(p1))) W (F(!(p2))))","13",3
|
||||||
|
"!(((!(p0)) M (!(p1))) W (F(!(p2))))","14",3
|
||||||
|
"!(((!(p0)) M (!(p1))) W (F(!(p2))))","15",3
|
||||||
|
"!(((!(p0)) M (!(p1))) W (F(!(p2))))","16",3
|
||||||
|
"!(((!(p0)) M (!(p1))) W (F(!(p2))))","17",3
|
||||||
"((p0) & (F(p1)) & (G(F(p2)))) R (p1)","1",2
|
"((p0) & (F(p1)) & (G(F(p2)))) R (p1)","1",2
|
||||||
"((p0) & (F(p1)) & (G(F(p2)))) R (p1)","2",3
|
"((p0) & (F(p1)) & (G(F(p2)))) R (p1)","2",3
|
||||||
"((p0) & (F(p1)) & (G(F(p2)))) R (p1)","3",3
|
"((p0) & (F(p1)) & (G(F(p2)))) R (p1)","3",3
|
||||||
|
|
@ -703,6 +899,10 @@ cat > expected << EOF
|
||||||
"((p0) & (F(p1)) & (G(F(p2)))) R (p1)","11",3
|
"((p0) & (F(p1)) & (G(F(p2)))) R (p1)","11",3
|
||||||
"((p0) & (F(p1)) & (G(F(p2)))) R (p1)","12",3
|
"((p0) & (F(p1)) & (G(F(p2)))) R (p1)","12",3
|
||||||
"((p0) & (F(p1)) & (G(F(p2)))) R (p1)","13",3
|
"((p0) & (F(p1)) & (G(F(p2)))) R (p1)","13",3
|
||||||
|
"((p0) & (F(p1)) & (G(F(p2)))) R (p1)","14",3
|
||||||
|
"((p0) & (F(p1)) & (G(F(p2)))) R (p1)","15",3
|
||||||
|
"((p0) & (F(p1)) & (G(F(p2)))) R (p1)","16",3
|
||||||
|
"((p0) & (F(p1)) & (G(F(p2)))) R (p1)","17",3
|
||||||
"!(((p0) & (F(p1)) & (G(F(p2)))) R (p1))","1",5
|
"!(((p0) & (F(p1)) & (G(F(p2)))) R (p1))","1",5
|
||||||
"!(((p0) & (F(p1)) & (G(F(p2)))) R (p1))","2",5
|
"!(((p0) & (F(p1)) & (G(F(p2)))) R (p1))","2",5
|
||||||
"!(((p0) & (F(p1)) & (G(F(p2)))) R (p1))","3",5
|
"!(((p0) & (F(p1)) & (G(F(p2)))) R (p1))","3",5
|
||||||
|
|
@ -715,6 +915,10 @@ cat > expected << EOF
|
||||||
"!(((p0) & (F(p1)) & (G(F(p2)))) R (p1))","11",5
|
"!(((p0) & (F(p1)) & (G(F(p2)))) R (p1))","11",5
|
||||||
"!(((p0) & (F(p1)) & (G(F(p2)))) R (p1))","12",5
|
"!(((p0) & (F(p1)) & (G(F(p2)))) R (p1))","12",5
|
||||||
"!(((p0) & (F(p1)) & (G(F(p2)))) R (p1))","13",5
|
"!(((p0) & (F(p1)) & (G(F(p2)))) R (p1))","13",5
|
||||||
|
"!(((p0) & (F(p1)) & (G(F(p2)))) R (p1))","14",5
|
||||||
|
"!(((p0) & (F(p1)) & (G(F(p2)))) R (p1))","15",5
|
||||||
|
"!(((p0) & (F(p1)) & (G(F(p2)))) R (p1))","16",5
|
||||||
|
"!(((p0) & (F(p1)) & (G(F(p2)))) R (p1))","17",5
|
||||||
"((p0) R ((p1) W (p0))) W (G((!(p0)) M ((p1) | (p2))))","1",3
|
"((p0) R ((p1) W (p0))) W (G((!(p0)) M ((p1) | (p2))))","1",3
|
||||||
"((p0) R ((p1) W (p0))) W (G((!(p0)) M ((p1) | (p2))))","2",2
|
"((p0) R ((p1) W (p0))) W (G((!(p0)) M ((p1) | (p2))))","2",2
|
||||||
"((p0) R ((p1) W (p0))) W (G((!(p0)) M ((p1) | (p2))))","3",2
|
"((p0) R ((p1) W (p0))) W (G((!(p0)) M ((p1) | (p2))))","3",2
|
||||||
|
|
@ -727,6 +931,10 @@ cat > expected << EOF
|
||||||
"((p0) R ((p1) W (p0))) W (G((!(p0)) M ((p1) | (p2))))","11",2
|
"((p0) R ((p1) W (p0))) W (G((!(p0)) M ((p1) | (p2))))","11",2
|
||||||
"((p0) R ((p1) W (p0))) W (G((!(p0)) M ((p1) | (p2))))","12",2
|
"((p0) R ((p1) W (p0))) W (G((!(p0)) M ((p1) | (p2))))","12",2
|
||||||
"((p0) R ((p1) W (p0))) W (G((!(p0)) M ((p1) | (p2))))","13",2
|
"((p0) R ((p1) W (p0))) W (G((!(p0)) M ((p1) | (p2))))","13",2
|
||||||
|
"((p0) R ((p1) W (p0))) W (G((!(p0)) M ((p1) | (p2))))","14",2
|
||||||
|
"((p0) R ((p1) W (p0))) W (G((!(p0)) M ((p1) | (p2))))","15",2
|
||||||
|
"((p0) R ((p1) W (p0))) W (G((!(p0)) M ((p1) | (p2))))","16",2
|
||||||
|
"((p0) R ((p1) W (p0))) W (G((!(p0)) M ((p1) | (p2))))","17",2
|
||||||
"!(((p0) R ((p1) W (p0))) W (G((!(p0)) M ((p1) | (p2)))))","1",4
|
"!(((p0) R ((p1) W (p0))) W (G((!(p0)) M ((p1) | (p2)))))","1",4
|
||||||
"!(((p0) R ((p1) W (p0))) W (G((!(p0)) M ((p1) | (p2)))))","2",4
|
"!(((p0) R ((p1) W (p0))) W (G((!(p0)) M ((p1) | (p2)))))","2",4
|
||||||
"!(((p0) R ((p1) W (p0))) W (G((!(p0)) M ((p1) | (p2)))))","3",4
|
"!(((p0) R ((p1) W (p0))) W (G((!(p0)) M ((p1) | (p2)))))","3",4
|
||||||
|
|
@ -739,6 +947,10 @@ cat > expected << EOF
|
||||||
"!(((p0) R ((p1) W (p0))) W (G((!(p0)) M ((p1) | (p2)))))","11",4
|
"!(((p0) R ((p1) W (p0))) W (G((!(p0)) M ((p1) | (p2)))))","11",4
|
||||||
"!(((p0) R ((p1) W (p0))) W (G((!(p0)) M ((p1) | (p2)))))","12",4
|
"!(((p0) R ((p1) W (p0))) W (G((!(p0)) M ((p1) | (p2)))))","12",4
|
||||||
"!(((p0) R ((p1) W (p0))) W (G((!(p0)) M ((p1) | (p2)))))","13",4
|
"!(((p0) R ((p1) W (p0))) W (G((!(p0)) M ((p1) | (p2)))))","13",4
|
||||||
|
"!(((p0) R ((p1) W (p0))) W (G((!(p0)) M ((p1) | (p2)))))","14",4
|
||||||
|
"!(((p0) R ((p1) W (p0))) W (G((!(p0)) M ((p1) | (p2)))))","15",4
|
||||||
|
"!(((p0) R ((p1) W (p0))) W (G((!(p0)) M ((p1) | (p2)))))","16",4
|
||||||
|
"!(((p0) R ((p1) W (p0))) W (G((!(p0)) M ((p1) | (p2)))))","17",4
|
||||||
"X((G((!(p0)) M (!(p1)))) | (G((p0) | (G(!(p0))))))","1",5
|
"X((G((!(p0)) M (!(p1)))) | (G((p0) | (G(!(p0))))))","1",5
|
||||||
"X((G((!(p0)) M (!(p1)))) | (G((p0) | (G(!(p0))))))","2",7
|
"X((G((!(p0)) M (!(p1)))) | (G((p0) | (G(!(p0))))))","2",7
|
||||||
"X((G((!(p0)) M (!(p1)))) | (G((p0) | (G(!(p0))))))","3",6
|
"X((G((!(p0)) M (!(p1)))) | (G((p0) | (G(!(p0))))))","3",6
|
||||||
|
|
@ -751,6 +963,10 @@ cat > expected << EOF
|
||||||
"X((G((!(p0)) M (!(p1)))) | (G((p0) | (G(!(p0))))))","11",6
|
"X((G((!(p0)) M (!(p1)))) | (G((p0) | (G(!(p0))))))","11",6
|
||||||
"X((G((!(p0)) M (!(p1)))) | (G((p0) | (G(!(p0))))))","12",6
|
"X((G((!(p0)) M (!(p1)))) | (G((p0) | (G(!(p0))))))","12",6
|
||||||
"X((G((!(p0)) M (!(p1)))) | (G((p0) | (G(!(p0))))))","13",6
|
"X((G((!(p0)) M (!(p1)))) | (G((p0) | (G(!(p0))))))","13",6
|
||||||
|
"X((G((!(p0)) M (!(p1)))) | (G((p0) | (G(!(p0))))))","14",6
|
||||||
|
"X((G((!(p0)) M (!(p1)))) | (G((p0) | (G(!(p0))))))","15",6
|
||||||
|
"X((G((!(p0)) M (!(p1)))) | (G((p0) | (G(!(p0))))))","16",6
|
||||||
|
"X((G((!(p0)) M (!(p1)))) | (G((p0) | (G(!(p0))))))","17",6
|
||||||
"!(X((G((!(p0)) M (!(p1)))) | (G((p0) | (G(!(p0)))))))","1",8
|
"!(X((G((!(p0)) M (!(p1)))) | (G((p0) | (G(!(p0)))))))","1",8
|
||||||
"!(X((G((!(p0)) M (!(p1)))) | (G((p0) | (G(!(p0)))))))","2",8
|
"!(X((G((!(p0)) M (!(p1)))) | (G((p0) | (G(!(p0)))))))","2",8
|
||||||
"!(X((G((!(p0)) M (!(p1)))) | (G((p0) | (G(!(p0)))))))","3",8
|
"!(X((G((!(p0)) M (!(p1)))) | (G((p0) | (G(!(p0)))))))","3",8
|
||||||
|
|
@ -763,6 +979,10 @@ cat > expected << EOF
|
||||||
"!(X((G((!(p0)) M (!(p1)))) | (G((p0) | (G(!(p0)))))))","11",8
|
"!(X((G((!(p0)) M (!(p1)))) | (G((p0) | (G(!(p0)))))))","11",8
|
||||||
"!(X((G((!(p0)) M (!(p1)))) | (G((p0) | (G(!(p0)))))))","12",8
|
"!(X((G((!(p0)) M (!(p1)))) | (G((p0) | (G(!(p0)))))))","12",8
|
||||||
"!(X((G((!(p0)) M (!(p1)))) | (G((p0) | (G(!(p0)))))))","13",8
|
"!(X((G((!(p0)) M (!(p1)))) | (G((p0) | (G(!(p0)))))))","13",8
|
||||||
|
"!(X((G((!(p0)) M (!(p1)))) | (G((p0) | (G(!(p0)))))))","14",8
|
||||||
|
"!(X((G((!(p0)) M (!(p1)))) | (G((p0) | (G(!(p0)))))))","15",8
|
||||||
|
"!(X((G((!(p0)) M (!(p1)))) | (G((p0) | (G(!(p0)))))))","16",8
|
||||||
|
"!(X((G((!(p0)) M (!(p1)))) | (G((p0) | (G(!(p0)))))))","17",8
|
||||||
"(F(p0)) W (G(p1))","1",3
|
"(F(p0)) W (G(p1))","1",3
|
||||||
"(F(p0)) W (G(p1))","2",2
|
"(F(p0)) W (G(p1))","2",2
|
||||||
"(F(p0)) W (G(p1))","3",2
|
"(F(p0)) W (G(p1))","3",2
|
||||||
|
|
@ -775,6 +995,10 @@ cat > expected << EOF
|
||||||
"(F(p0)) W (G(p1))","11",2
|
"(F(p0)) W (G(p1))","11",2
|
||||||
"(F(p0)) W (G(p1))","12",2
|
"(F(p0)) W (G(p1))","12",2
|
||||||
"(F(p0)) W (G(p1))","13",2
|
"(F(p0)) W (G(p1))","13",2
|
||||||
|
"(F(p0)) W (G(p1))","14",2
|
||||||
|
"(F(p0)) W (G(p1))","15",2
|
||||||
|
"(F(p0)) W (G(p1))","16",2
|
||||||
|
"(F(p0)) W (G(p1))","17",2
|
||||||
"!((F(p0)) W (G(p1)))","1",2
|
"!((F(p0)) W (G(p1)))","1",2
|
||||||
"!((F(p0)) W (G(p1)))","2",2
|
"!((F(p0)) W (G(p1)))","2",2
|
||||||
"!((F(p0)) W (G(p1)))","3",2
|
"!((F(p0)) W (G(p1)))","3",2
|
||||||
|
|
@ -787,6 +1011,10 @@ cat > expected << EOF
|
||||||
"!((F(p0)) W (G(p1)))","11",2
|
"!((F(p0)) W (G(p1)))","11",2
|
||||||
"!((F(p0)) W (G(p1)))","12",2
|
"!((F(p0)) W (G(p1)))","12",2
|
||||||
"!((F(p0)) W (G(p1)))","13",2
|
"!((F(p0)) W (G(p1)))","13",2
|
||||||
|
"!((F(p0)) W (G(p1)))","14",2
|
||||||
|
"!((F(p0)) W (G(p1)))","15",2
|
||||||
|
"!((F(p0)) W (G(p1)))","16",2
|
||||||
|
"!((F(p0)) W (G(p1)))","17",2
|
||||||
"(G(F(p1))) | (G(p0))","1",3
|
"(G(F(p1))) | (G(p0))","1",3
|
||||||
"(G(F(p1))) | (G(p0))","2",3
|
"(G(F(p1))) | (G(p0))","2",3
|
||||||
"(G(F(p1))) | (G(p0))","3",2
|
"(G(F(p1))) | (G(p0))","3",2
|
||||||
|
|
@ -799,6 +1027,10 @@ cat > expected << EOF
|
||||||
"(G(F(p1))) | (G(p0))","11",2
|
"(G(F(p1))) | (G(p0))","11",2
|
||||||
"(G(F(p1))) | (G(p0))","12",2
|
"(G(F(p1))) | (G(p0))","12",2
|
||||||
"(G(F(p1))) | (G(p0))","13",2
|
"(G(F(p1))) | (G(p0))","13",2
|
||||||
|
"(G(F(p1))) | (G(p0))","14",2
|
||||||
|
"(G(F(p1))) | (G(p0))","15",2
|
||||||
|
"(G(F(p1))) | (G(p0))","16",2
|
||||||
|
"(G(F(p1))) | (G(p0))","17",2
|
||||||
"!((G(F(p1))) | (G(p0)))","1",3
|
"!((G(F(p1))) | (G(p0)))","1",3
|
||||||
"!((G(F(p1))) | (G(p0)))","2",3
|
"!((G(F(p1))) | (G(p0)))","2",3
|
||||||
"!((G(F(p1))) | (G(p0)))","3",3
|
"!((G(F(p1))) | (G(p0)))","3",3
|
||||||
|
|
@ -811,6 +1043,10 @@ cat > expected << EOF
|
||||||
"!((G(F(p1))) | (G(p0)))","11",3
|
"!((G(F(p1))) | (G(p0)))","11",3
|
||||||
"!((G(F(p1))) | (G(p0)))","12",3
|
"!((G(F(p1))) | (G(p0)))","12",3
|
||||||
"!((G(F(p1))) | (G(p0)))","13",3
|
"!((G(F(p1))) | (G(p0)))","13",3
|
||||||
|
"!((G(F(p1))) | (G(p0)))","14",3
|
||||||
|
"!((G(F(p1))) | (G(p0)))","15",3
|
||||||
|
"!((G(F(p1))) | (G(p0)))","16",3
|
||||||
|
"!((G(F(p1))) | (G(p0)))","17",3
|
||||||
"(p0) M (G((F(!(p1))) | (X(!(p0)))))","1",5
|
"(p0) M (G((F(!(p1))) | (X(!(p0)))))","1",5
|
||||||
"(p0) M (G((F(!(p1))) | (X(!(p0)))))","2",5
|
"(p0) M (G((F(!(p1))) | (X(!(p0)))))","2",5
|
||||||
"(p0) M (G((F(!(p1))) | (X(!(p0)))))","3",5
|
"(p0) M (G((F(!(p1))) | (X(!(p0)))))","3",5
|
||||||
|
|
@ -823,6 +1059,10 @@ cat > expected << EOF
|
||||||
"(p0) M (G((F(!(p1))) | (X(!(p0)))))","11",5
|
"(p0) M (G((F(!(p1))) | (X(!(p0)))))","11",5
|
||||||
"(p0) M (G((F(!(p1))) | (X(!(p0)))))","12",5
|
"(p0) M (G((F(!(p1))) | (X(!(p0)))))","12",5
|
||||||
"(p0) M (G((F(!(p1))) | (X(!(p0)))))","13",5
|
"(p0) M (G((F(!(p1))) | (X(!(p0)))))","13",5
|
||||||
|
"(p0) M (G((F(!(p1))) | (X(!(p0)))))","14",5
|
||||||
|
"(p0) M (G((F(!(p1))) | (X(!(p0)))))","15",5
|
||||||
|
"(p0) M (G((F(!(p1))) | (X(!(p0)))))","16",5
|
||||||
|
"(p0) M (G((F(!(p1))) | (X(!(p0)))))","17",5
|
||||||
"!((p0) M (G((F(!(p1))) | (X(!(p0))))))","1",4
|
"!((p0) M (G((F(!(p1))) | (X(!(p0))))))","1",4
|
||||||
"!((p0) M (G((F(!(p1))) | (X(!(p0))))))","2",4
|
"!((p0) M (G((F(!(p1))) | (X(!(p0))))))","2",4
|
||||||
"!((p0) M (G((F(!(p1))) | (X(!(p0))))))","3",4
|
"!((p0) M (G((F(!(p1))) | (X(!(p0))))))","3",4
|
||||||
|
|
@ -835,6 +1075,10 @@ cat > expected << EOF
|
||||||
"!((p0) M (G((F(!(p1))) | (X(!(p0))))))","11",4
|
"!((p0) M (G((F(!(p1))) | (X(!(p0))))))","11",4
|
||||||
"!((p0) M (G((F(!(p1))) | (X(!(p0))))))","12",4
|
"!((p0) M (G((F(!(p1))) | (X(!(p0))))))","12",4
|
||||||
"!((p0) M (G((F(!(p1))) | (X(!(p0))))))","13",4
|
"!((p0) M (G((F(!(p1))) | (X(!(p0))))))","13",4
|
||||||
|
"!((p0) M (G((F(!(p1))) | (X(!(p0))))))","14",4
|
||||||
|
"!((p0) M (G((F(!(p1))) | (X(!(p0))))))","15",4
|
||||||
|
"!((p0) M (G((F(!(p1))) | (X(!(p0))))))","16",4
|
||||||
|
"!((p0) M (G((F(!(p1))) | (X(!(p0))))))","17",4
|
||||||
"(G(!(p0))) R (X(F(p1)))","1",4
|
"(G(!(p0))) R (X(F(p1)))","1",4
|
||||||
"(G(!(p0))) R (X(F(p1)))","2",4
|
"(G(!(p0))) R (X(F(p1)))","2",4
|
||||||
"(G(!(p0))) R (X(F(p1)))","3",3
|
"(G(!(p0))) R (X(F(p1)))","3",3
|
||||||
|
|
@ -847,6 +1091,10 @@ cat > expected << EOF
|
||||||
"(G(!(p0))) R (X(F(p1)))","11",3
|
"(G(!(p0))) R (X(F(p1)))","11",3
|
||||||
"(G(!(p0))) R (X(F(p1)))","12",3
|
"(G(!(p0))) R (X(F(p1)))","12",3
|
||||||
"(G(!(p0))) R (X(F(p1)))","13",3
|
"(G(!(p0))) R (X(F(p1)))","13",3
|
||||||
|
"(G(!(p0))) R (X(F(p1)))","14",3
|
||||||
|
"(G(!(p0))) R (X(F(p1)))","15",3
|
||||||
|
"(G(!(p0))) R (X(F(p1)))","16",3
|
||||||
|
"(G(!(p0))) R (X(F(p1)))","17",3
|
||||||
"!((G(!(p0))) R (X(F(p1))))","1",3
|
"!((G(!(p0))) R (X(F(p1))))","1",3
|
||||||
"!((G(!(p0))) R (X(F(p1))))","2",3
|
"!((G(!(p0))) R (X(F(p1))))","2",3
|
||||||
"!((G(!(p0))) R (X(F(p1))))","3",3
|
"!((G(!(p0))) R (X(F(p1))))","3",3
|
||||||
|
|
@ -859,6 +1107,10 @@ cat > expected << EOF
|
||||||
"!((G(!(p0))) R (X(F(p1))))","11",3
|
"!((G(!(p0))) R (X(F(p1))))","11",3
|
||||||
"!((G(!(p0))) R (X(F(p1))))","12",3
|
"!((G(!(p0))) R (X(F(p1))))","12",3
|
||||||
"!((G(!(p0))) R (X(F(p1))))","13",3
|
"!((G(!(p0))) R (X(F(p1))))","13",3
|
||||||
|
"!((G(!(p0))) R (X(F(p1))))","14",3
|
||||||
|
"!((G(!(p0))) R (X(F(p1))))","15",3
|
||||||
|
"!((G(!(p0))) R (X(F(p1))))","16",3
|
||||||
|
"!((G(!(p0))) R (X(F(p1))))","17",3
|
||||||
"X(F((!(p0)) | (G(F(p1)))))","1",4
|
"X(F((!(p0)) | (G(F(p1)))))","1",4
|
||||||
"X(F((!(p0)) | (G(F(p1)))))","2",4
|
"X(F((!(p0)) | (G(F(p1)))))","2",4
|
||||||
"X(F((!(p0)) | (G(F(p1)))))","3",3
|
"X(F((!(p0)) | (G(F(p1)))))","3",3
|
||||||
|
|
@ -871,6 +1123,10 @@ cat > expected << EOF
|
||||||
"X(F((!(p0)) | (G(F(p1)))))","11",3
|
"X(F((!(p0)) | (G(F(p1)))))","11",3
|
||||||
"X(F((!(p0)) | (G(F(p1)))))","12",3
|
"X(F((!(p0)) | (G(F(p1)))))","12",3
|
||||||
"X(F((!(p0)) | (G(F(p1)))))","13",3
|
"X(F((!(p0)) | (G(F(p1)))))","13",3
|
||||||
|
"X(F((!(p0)) | (G(F(p1)))))","14",3
|
||||||
|
"X(F((!(p0)) | (G(F(p1)))))","15",3
|
||||||
|
"X(F((!(p0)) | (G(F(p1)))))","16",3
|
||||||
|
"X(F((!(p0)) | (G(F(p1)))))","17",3
|
||||||
"!(X(F((!(p0)) | (G(F(p1))))))","1",3
|
"!(X(F((!(p0)) | (G(F(p1))))))","1",3
|
||||||
"!(X(F((!(p0)) | (G(F(p1))))))","2",3
|
"!(X(F((!(p0)) | (G(F(p1))))))","2",3
|
||||||
"!(X(F((!(p0)) | (G(F(p1))))))","3",3
|
"!(X(F((!(p0)) | (G(F(p1))))))","3",3
|
||||||
|
|
@ -883,6 +1139,10 @@ cat > expected << EOF
|
||||||
"!(X(F((!(p0)) | (G(F(p1))))))","11",3
|
"!(X(F((!(p0)) | (G(F(p1))))))","11",3
|
||||||
"!(X(F((!(p0)) | (G(F(p1))))))","12",3
|
"!(X(F((!(p0)) | (G(F(p1))))))","12",3
|
||||||
"!(X(F((!(p0)) | (G(F(p1))))))","13",3
|
"!(X(F((!(p0)) | (G(F(p1))))))","13",3
|
||||||
|
"!(X(F((!(p0)) | (G(F(p1))))))","14",3
|
||||||
|
"!(X(F((!(p0)) | (G(F(p1))))))","15",3
|
||||||
|
"!(X(F((!(p0)) | (G(F(p1))))))","16",3
|
||||||
|
"!(X(F((!(p0)) | (G(F(p1))))))","17",3
|
||||||
"(G((F(!(p0))) U (!(p0)))) U (X(p0))","1",6
|
"(G((F(!(p0))) U (!(p0)))) U (X(p0))","1",6
|
||||||
"(G((F(!(p0))) U (!(p0)))) U (X(p0))","2",6
|
"(G((F(!(p0))) U (!(p0)))) U (X(p0))","2",6
|
||||||
"(G((F(!(p0))) U (!(p0)))) U (X(p0))","3",5
|
"(G((F(!(p0))) U (!(p0)))) U (X(p0))","3",5
|
||||||
|
|
@ -895,6 +1155,10 @@ cat > expected << EOF
|
||||||
"(G((F(!(p0))) U (!(p0)))) U (X(p0))","11",5
|
"(G((F(!(p0))) U (!(p0)))) U (X(p0))","11",5
|
||||||
"(G((F(!(p0))) U (!(p0)))) U (X(p0))","12",5
|
"(G((F(!(p0))) U (!(p0)))) U (X(p0))","12",5
|
||||||
"(G((F(!(p0))) U (!(p0)))) U (X(p0))","13",5
|
"(G((F(!(p0))) U (!(p0)))) U (X(p0))","13",5
|
||||||
|
"(G((F(!(p0))) U (!(p0)))) U (X(p0))","14",5
|
||||||
|
"(G((F(!(p0))) U (!(p0)))) U (X(p0))","15",5
|
||||||
|
"(G((F(!(p0))) U (!(p0)))) U (X(p0))","16",5
|
||||||
|
"(G((F(!(p0))) U (!(p0)))) U (X(p0))","17",5
|
||||||
"!((G((F(!(p0))) U (!(p0)))) U (X(p0)))","1",5
|
"!((G((F(!(p0))) U (!(p0)))) U (X(p0)))","1",5
|
||||||
"!((G((F(!(p0))) U (!(p0)))) U (X(p0)))","2",5
|
"!((G((F(!(p0))) U (!(p0)))) U (X(p0)))","2",5
|
||||||
"!((G((F(!(p0))) U (!(p0)))) U (X(p0)))","3",5
|
"!((G((F(!(p0))) U (!(p0)))) U (X(p0)))","3",5
|
||||||
|
|
@ -907,6 +1171,10 @@ cat > expected << EOF
|
||||||
"!((G((F(!(p0))) U (!(p0)))) U (X(p0)))","11",5
|
"!((G((F(!(p0))) U (!(p0)))) U (X(p0)))","11",5
|
||||||
"!((G((F(!(p0))) U (!(p0)))) U (X(p0)))","12",5
|
"!((G((F(!(p0))) U (!(p0)))) U (X(p0)))","12",5
|
||||||
"!((G((F(!(p0))) U (!(p0)))) U (X(p0)))","13",5
|
"!((G((F(!(p0))) U (!(p0)))) U (X(p0)))","13",5
|
||||||
|
"!((G((F(!(p0))) U (!(p0)))) U (X(p0)))","14",5
|
||||||
|
"!((G((F(!(p0))) U (!(p0)))) U (X(p0)))","15",5
|
||||||
|
"!((G((F(!(p0))) U (!(p0)))) U (X(p0)))","16",5
|
||||||
|
"!((G((F(!(p0))) U (!(p0)))) U (X(p0)))","17",5
|
||||||
"((p0) | (G((p0) M (!(p1))))) W (F(p2))","1",4
|
"((p0) | (G((p0) M (!(p1))))) W (F(p2))","1",4
|
||||||
"((p0) | (G((p0) M (!(p1))))) W (F(p2))","2",5
|
"((p0) | (G((p0) M (!(p1))))) W (F(p2))","2",5
|
||||||
"((p0) | (G((p0) M (!(p1))))) W (F(p2))","3",4
|
"((p0) | (G((p0) M (!(p1))))) W (F(p2))","3",4
|
||||||
|
|
@ -919,6 +1187,10 @@ cat > expected << EOF
|
||||||
"((p0) | (G((p0) M (!(p1))))) W (F(p2))","11",4
|
"((p0) | (G((p0) M (!(p1))))) W (F(p2))","11",4
|
||||||
"((p0) | (G((p0) M (!(p1))))) W (F(p2))","12",4
|
"((p0) | (G((p0) M (!(p1))))) W (F(p2))","12",4
|
||||||
"((p0) | (G((p0) M (!(p1))))) W (F(p2))","13",4
|
"((p0) | (G((p0) M (!(p1))))) W (F(p2))","13",4
|
||||||
|
"((p0) | (G((p0) M (!(p1))))) W (F(p2))","14",4
|
||||||
|
"((p0) | (G((p0) M (!(p1))))) W (F(p2))","15",4
|
||||||
|
"((p0) | (G((p0) M (!(p1))))) W (F(p2))","16",4
|
||||||
|
"((p0) | (G((p0) M (!(p1))))) W (F(p2))","17",4
|
||||||
"!(((p0) | (G((p0) M (!(p1))))) W (F(p2)))","1",4
|
"!(((p0) | (G((p0) M (!(p1))))) W (F(p2)))","1",4
|
||||||
"!(((p0) | (G((p0) M (!(p1))))) W (F(p2)))","2",4
|
"!(((p0) | (G((p0) M (!(p1))))) W (F(p2)))","2",4
|
||||||
"!(((p0) | (G((p0) M (!(p1))))) W (F(p2)))","3",4
|
"!(((p0) | (G((p0) M (!(p1))))) W (F(p2)))","3",4
|
||||||
|
|
@ -931,6 +1203,10 @@ cat > expected << EOF
|
||||||
"!(((p0) | (G((p0) M (!(p1))))) W (F(p2)))","11",4
|
"!(((p0) | (G((p0) M (!(p1))))) W (F(p2)))","11",4
|
||||||
"!(((p0) | (G((p0) M (!(p1))))) W (F(p2)))","12",4
|
"!(((p0) | (G((p0) M (!(p1))))) W (F(p2)))","12",4
|
||||||
"!(((p0) | (G((p0) M (!(p1))))) W (F(p2)))","13",4
|
"!(((p0) | (G((p0) M (!(p1))))) W (F(p2)))","13",4
|
||||||
|
"!(((p0) | (G((p0) M (!(p1))))) W (F(p2)))","14",4
|
||||||
|
"!(((p0) | (G((p0) M (!(p1))))) W (F(p2)))","15",4
|
||||||
|
"!(((p0) | (G((p0) M (!(p1))))) W (F(p2)))","16",4
|
||||||
|
"!(((p0) | (G((p0) M (!(p1))))) W (F(p2)))","17",4
|
||||||
"(F(p0)) W (X(p1))","1",6
|
"(F(p0)) W (X(p1))","1",6
|
||||||
"(F(p0)) W (X(p1))","2",6
|
"(F(p0)) W (X(p1))","2",6
|
||||||
"(F(p0)) W (X(p1))","3",6
|
"(F(p0)) W (X(p1))","3",6
|
||||||
|
|
@ -943,6 +1219,10 @@ cat > expected << EOF
|
||||||
"(F(p0)) W (X(p1))","11",6
|
"(F(p0)) W (X(p1))","11",6
|
||||||
"(F(p0)) W (X(p1))","12",6
|
"(F(p0)) W (X(p1))","12",6
|
||||||
"(F(p0)) W (X(p1))","13",6
|
"(F(p0)) W (X(p1))","13",6
|
||||||
|
"(F(p0)) W (X(p1))","14",6
|
||||||
|
"(F(p0)) W (X(p1))","15",6
|
||||||
|
"(F(p0)) W (X(p1))","16",6
|
||||||
|
"(F(p0)) W (X(p1))","17",6
|
||||||
"!((F(p0)) W (X(p1)))","1",4
|
"!((F(p0)) W (X(p1)))","1",4
|
||||||
"!((F(p0)) W (X(p1)))","2",4
|
"!((F(p0)) W (X(p1)))","2",4
|
||||||
"!((F(p0)) W (X(p1)))","3",4
|
"!((F(p0)) W (X(p1)))","3",4
|
||||||
|
|
@ -955,6 +1235,10 @@ cat > expected << EOF
|
||||||
"!((F(p0)) W (X(p1)))","11",4
|
"!((F(p0)) W (X(p1)))","11",4
|
||||||
"!((F(p0)) W (X(p1)))","12",4
|
"!((F(p0)) W (X(p1)))","12",4
|
||||||
"!((F(p0)) W (X(p1)))","13",4
|
"!((F(p0)) W (X(p1)))","13",4
|
||||||
|
"!((F(p0)) W (X(p1)))","14",4
|
||||||
|
"!((F(p0)) W (X(p1)))","15",4
|
||||||
|
"!((F(p0)) W (X(p1)))","16",4
|
||||||
|
"!((F(p0)) W (X(p1)))","17",4
|
||||||
"(X(G(!(p0)))) R (F(p1))","1",2
|
"(X(G(!(p0)))) R (F(p1))","1",2
|
||||||
"(X(G(!(p0)))) R (F(p1))","2",2
|
"(X(G(!(p0)))) R (F(p1))","2",2
|
||||||
"(X(G(!(p0)))) R (F(p1))","3",2
|
"(X(G(!(p0)))) R (F(p1))","3",2
|
||||||
|
|
@ -967,6 +1251,10 @@ cat > expected << EOF
|
||||||
"(X(G(!(p0)))) R (F(p1))","11",2
|
"(X(G(!(p0)))) R (F(p1))","11",2
|
||||||
"(X(G(!(p0)))) R (F(p1))","12",2
|
"(X(G(!(p0)))) R (F(p1))","12",2
|
||||||
"(X(G(!(p0)))) R (F(p1))","13",2
|
"(X(G(!(p0)))) R (F(p1))","13",2
|
||||||
|
"(X(G(!(p0)))) R (F(p1))","14",2
|
||||||
|
"(X(G(!(p0)))) R (F(p1))","15",2
|
||||||
|
"(X(G(!(p0)))) R (F(p1))","16",2
|
||||||
|
"(X(G(!(p0)))) R (F(p1))","17",2
|
||||||
"!((X(G(!(p0)))) R (F(p1)))","1",3
|
"!((X(G(!(p0)))) R (F(p1)))","1",3
|
||||||
"!((X(G(!(p0)))) R (F(p1)))","2",3
|
"!((X(G(!(p0)))) R (F(p1)))","2",3
|
||||||
"!((X(G(!(p0)))) R (F(p1)))","3",3
|
"!((X(G(!(p0)))) R (F(p1)))","3",3
|
||||||
|
|
@ -979,6 +1267,10 @@ cat > expected << EOF
|
||||||
"!((X(G(!(p0)))) R (F(p1)))","11",3
|
"!((X(G(!(p0)))) R (F(p1)))","11",3
|
||||||
"!((X(G(!(p0)))) R (F(p1)))","12",3
|
"!((X(G(!(p0)))) R (F(p1)))","12",3
|
||||||
"!((X(G(!(p0)))) R (F(p1)))","13",3
|
"!((X(G(!(p0)))) R (F(p1)))","13",3
|
||||||
|
"!((X(G(!(p0)))) R (F(p1)))","14",3
|
||||||
|
"!((X(G(!(p0)))) R (F(p1)))","15",3
|
||||||
|
"!((X(G(!(p0)))) R (F(p1)))","16",3
|
||||||
|
"!((X(G(!(p0)))) R (F(p1)))","17",3
|
||||||
"(G(F(p0))) | ((p1) & (F(p2)))","1",4
|
"(G(F(p0))) | ((p1) & (F(p2)))","1",4
|
||||||
"(G(F(p0))) | ((p1) & (F(p2)))","2",4
|
"(G(F(p0))) | ((p1) & (F(p2)))","2",4
|
||||||
"(G(F(p0))) | ((p1) & (F(p2)))","3",4
|
"(G(F(p0))) | ((p1) & (F(p2)))","3",4
|
||||||
|
|
@ -991,6 +1283,10 @@ cat > expected << EOF
|
||||||
"(G(F(p0))) | ((p1) & (F(p2)))","11",4
|
"(G(F(p0))) | ((p1) & (F(p2)))","11",4
|
||||||
"(G(F(p0))) | ((p1) & (F(p2)))","12",4
|
"(G(F(p0))) | ((p1) & (F(p2)))","12",4
|
||||||
"(G(F(p0))) | ((p1) & (F(p2)))","13",4
|
"(G(F(p0))) | ((p1) & (F(p2)))","13",4
|
||||||
|
"(G(F(p0))) | ((p1) & (F(p2)))","14",4
|
||||||
|
"(G(F(p0))) | ((p1) & (F(p2)))","15",4
|
||||||
|
"(G(F(p0))) | ((p1) & (F(p2)))","16",4
|
||||||
|
"(G(F(p0))) | ((p1) & (F(p2)))","17",4
|
||||||
"!((G(F(p0))) | ((p1) & (F(p2))))","1",5
|
"!((G(F(p0))) | ((p1) & (F(p2))))","1",5
|
||||||
"!((G(F(p0))) | ((p1) & (F(p2))))","2",5
|
"!((G(F(p0))) | ((p1) & (F(p2))))","2",5
|
||||||
"!((G(F(p0))) | ((p1) & (F(p2))))","3",5
|
"!((G(F(p0))) | ((p1) & (F(p2))))","3",5
|
||||||
|
|
@ -1003,6 +1299,10 @@ cat > expected << EOF
|
||||||
"!((G(F(p0))) | ((p1) & (F(p2))))","11",5
|
"!((G(F(p0))) | ((p1) & (F(p2))))","11",5
|
||||||
"!((G(F(p0))) | ((p1) & (F(p2))))","12",5
|
"!((G(F(p0))) | ((p1) & (F(p2))))","12",5
|
||||||
"!((G(F(p0))) | ((p1) & (F(p2))))","13",5
|
"!((G(F(p0))) | ((p1) & (F(p2))))","13",5
|
||||||
|
"!((G(F(p0))) | ((p1) & (F(p2))))","14",5
|
||||||
|
"!((G(F(p0))) | ((p1) & (F(p2))))","15",5
|
||||||
|
"!((G(F(p0))) | ((p1) & (F(p2))))","16",5
|
||||||
|
"!((G(F(p0))) | ((p1) & (F(p2))))","17",5
|
||||||
"X((p0) R ((F(p1)) R (F(!(p1)))))","1",6
|
"X((p0) R ((F(p1)) R (F(!(p1)))))","1",6
|
||||||
"X((p0) R ((F(p1)) R (F(!(p1)))))","2",6
|
"X((p0) R ((F(p1)) R (F(!(p1)))))","2",6
|
||||||
"X((p0) R ((F(p1)) R (F(!(p1)))))","3",4
|
"X((p0) R ((F(p1)) R (F(!(p1)))))","3",4
|
||||||
|
|
@ -1015,6 +1315,10 @@ cat > expected << EOF
|
||||||
"X((p0) R ((F(p1)) R (F(!(p1)))))","11",4
|
"X((p0) R ((F(p1)) R (F(!(p1)))))","11",4
|
||||||
"X((p0) R ((F(p1)) R (F(!(p1)))))","12",4
|
"X((p0) R ((F(p1)) R (F(!(p1)))))","12",4
|
||||||
"X((p0) R ((F(p1)) R (F(!(p1)))))","13",4
|
"X((p0) R ((F(p1)) R (F(!(p1)))))","13",4
|
||||||
|
"X((p0) R ((F(p1)) R (F(!(p1)))))","14",4
|
||||||
|
"X((p0) R ((F(p1)) R (F(!(p1)))))","15",4
|
||||||
|
"X((p0) R ((F(p1)) R (F(!(p1)))))","16",4
|
||||||
|
"X((p0) R ((F(p1)) R (F(!(p1)))))","17",4
|
||||||
"!(X((p0) R ((F(p1)) R (F(!(p1))))))","1",3
|
"!(X((p0) R ((F(p1)) R (F(!(p1))))))","1",3
|
||||||
"!(X((p0) R ((F(p1)) R (F(!(p1))))))","2",3
|
"!(X((p0) R ((F(p1)) R (F(!(p1))))))","2",3
|
||||||
"!(X((p0) R ((F(p1)) R (F(!(p1))))))","3",3
|
"!(X((p0) R ((F(p1)) R (F(!(p1))))))","3",3
|
||||||
|
|
@ -1027,6 +1331,10 @@ cat > expected << EOF
|
||||||
"!(X((p0) R ((F(p1)) R (F(!(p1))))))","11",3
|
"!(X((p0) R ((F(p1)) R (F(!(p1))))))","11",3
|
||||||
"!(X((p0) R ((F(p1)) R (F(!(p1))))))","12",3
|
"!(X((p0) R ((F(p1)) R (F(!(p1))))))","12",3
|
||||||
"!(X((p0) R ((F(p1)) R (F(!(p1))))))","13",3
|
"!(X((p0) R ((F(p1)) R (F(!(p1))))))","13",3
|
||||||
|
"!(X((p0) R ((F(p1)) R (F(!(p1))))))","14",3
|
||||||
|
"!(X((p0) R ((F(p1)) R (F(!(p1))))))","15",3
|
||||||
|
"!(X((p0) R ((F(p1)) R (F(!(p1))))))","16",3
|
||||||
|
"!(X((p0) R ((F(p1)) R (F(!(p1))))))","17",3
|
||||||
"G((X(p0)) M (F(p0)))","1",2
|
"G((X(p0)) M (F(p0)))","1",2
|
||||||
"G((X(p0)) M (F(p0)))","2",2
|
"G((X(p0)) M (F(p0)))","2",2
|
||||||
"G((X(p0)) M (F(p0)))","3",1
|
"G((X(p0)) M (F(p0)))","3",1
|
||||||
|
|
@ -1039,6 +1347,10 @@ cat > expected << EOF
|
||||||
"G((X(p0)) M (F(p0)))","11",1
|
"G((X(p0)) M (F(p0)))","11",1
|
||||||
"G((X(p0)) M (F(p0)))","12",1
|
"G((X(p0)) M (F(p0)))","12",1
|
||||||
"G((X(p0)) M (F(p0)))","13",1
|
"G((X(p0)) M (F(p0)))","13",1
|
||||||
|
"G((X(p0)) M (F(p0)))","14",1
|
||||||
|
"G((X(p0)) M (F(p0)))","15",1
|
||||||
|
"G((X(p0)) M (F(p0)))","16",1
|
||||||
|
"G((X(p0)) M (F(p0)))","17",1
|
||||||
"!(G((X(p0)) M (F(p0))))","1",2
|
"!(G((X(p0)) M (F(p0))))","1",2
|
||||||
"!(G((X(p0)) M (F(p0))))","2",2
|
"!(G((X(p0)) M (F(p0))))","2",2
|
||||||
"!(G((X(p0)) M (F(p0))))","3",2
|
"!(G((X(p0)) M (F(p0))))","3",2
|
||||||
|
|
@ -1051,6 +1363,10 @@ cat > expected << EOF
|
||||||
"!(G((X(p0)) M (F(p0))))","11",2
|
"!(G((X(p0)) M (F(p0))))","11",2
|
||||||
"!(G((X(p0)) M (F(p0))))","12",2
|
"!(G((X(p0)) M (F(p0))))","12",2
|
||||||
"!(G((X(p0)) M (F(p0))))","13",2
|
"!(G((X(p0)) M (F(p0))))","13",2
|
||||||
|
"!(G((X(p0)) M (F(p0))))","14",2
|
||||||
|
"!(G((X(p0)) M (F(p0))))","15",2
|
||||||
|
"!(G((X(p0)) M (F(p0))))","16",2
|
||||||
|
"!(G((X(p0)) M (F(p0))))","17",2
|
||||||
"X((G(F(p1))) | (G(p0)))","1",4
|
"X((G(F(p1))) | (G(p0)))","1",4
|
||||||
"X((G(F(p1))) | (G(p0)))","2",4
|
"X((G(F(p1))) | (G(p0)))","2",4
|
||||||
"X((G(F(p1))) | (G(p0)))","3",3
|
"X((G(F(p1))) | (G(p0)))","3",3
|
||||||
|
|
@ -1063,6 +1379,10 @@ cat > expected << EOF
|
||||||
"X((G(F(p1))) | (G(p0)))","11",3
|
"X((G(F(p1))) | (G(p0)))","11",3
|
||||||
"X((G(F(p1))) | (G(p0)))","12",3
|
"X((G(F(p1))) | (G(p0)))","12",3
|
||||||
"X((G(F(p1))) | (G(p0)))","13",3
|
"X((G(F(p1))) | (G(p0)))","13",3
|
||||||
|
"X((G(F(p1))) | (G(p0)))","14",3
|
||||||
|
"X((G(F(p1))) | (G(p0)))","15",3
|
||||||
|
"X((G(F(p1))) | (G(p0)))","16",3
|
||||||
|
"X((G(F(p1))) | (G(p0)))","17",3
|
||||||
"!(X((G(F(p1))) | (G(p0))))","1",4
|
"!(X((G(F(p1))) | (G(p0))))","1",4
|
||||||
"!(X((G(F(p1))) | (G(p0))))","2",4
|
"!(X((G(F(p1))) | (G(p0))))","2",4
|
||||||
"!(X((G(F(p1))) | (G(p0))))","3",4
|
"!(X((G(F(p1))) | (G(p0))))","3",4
|
||||||
|
|
@ -1075,6 +1395,10 @@ cat > expected << EOF
|
||||||
"!(X((G(F(p1))) | (G(p0))))","11",4
|
"!(X((G(F(p1))) | (G(p0))))","11",4
|
||||||
"!(X((G(F(p1))) | (G(p0))))","12",4
|
"!(X((G(F(p1))) | (G(p0))))","12",4
|
||||||
"!(X((G(F(p1))) | (G(p0))))","13",4
|
"!(X((G(F(p1))) | (G(p0))))","13",4
|
||||||
|
"!(X((G(F(p1))) | (G(p0))))","14",4
|
||||||
|
"!(X((G(F(p1))) | (G(p0))))","15",4
|
||||||
|
"!(X((G(F(p1))) | (G(p0))))","16",4
|
||||||
|
"!(X((G(F(p1))) | (G(p0))))","17",4
|
||||||
"(G(p0)) R (F(p1))","1",2
|
"(G(p0)) R (F(p1))","1",2
|
||||||
"(G(p0)) R (F(p1))","2",2
|
"(G(p0)) R (F(p1))","2",2
|
||||||
"(G(p0)) R (F(p1))","3",2
|
"(G(p0)) R (F(p1))","3",2
|
||||||
|
|
@ -1087,6 +1411,10 @@ cat > expected << EOF
|
||||||
"(G(p0)) R (F(p1))","11",2
|
"(G(p0)) R (F(p1))","11",2
|
||||||
"(G(p0)) R (F(p1))","12",2
|
"(G(p0)) R (F(p1))","12",2
|
||||||
"(G(p0)) R (F(p1))","13",2
|
"(G(p0)) R (F(p1))","13",2
|
||||||
|
"(G(p0)) R (F(p1))","14",2
|
||||||
|
"(G(p0)) R (F(p1))","15",2
|
||||||
|
"(G(p0)) R (F(p1))","16",2
|
||||||
|
"(G(p0)) R (F(p1))","17",2
|
||||||
"!((G(p0)) R (F(p1)))","1",3
|
"!((G(p0)) R (F(p1)))","1",3
|
||||||
"!((G(p0)) R (F(p1)))","2",3
|
"!((G(p0)) R (F(p1)))","2",3
|
||||||
"!((G(p0)) R (F(p1)))","3",3
|
"!((G(p0)) R (F(p1)))","3",3
|
||||||
|
|
@ -1099,6 +1427,10 @@ cat > expected << EOF
|
||||||
"!((G(p0)) R (F(p1)))","11",3
|
"!((G(p0)) R (F(p1)))","11",3
|
||||||
"!((G(p0)) R (F(p1)))","12",3
|
"!((G(p0)) R (F(p1)))","12",3
|
||||||
"!((G(p0)) R (F(p1)))","13",3
|
"!((G(p0)) R (F(p1)))","13",3
|
||||||
|
"!((G(p0)) R (F(p1)))","14",3
|
||||||
|
"!((G(p0)) R (F(p1)))","15",3
|
||||||
|
"!((G(p0)) R (F(p1)))","16",3
|
||||||
|
"!((G(p0)) R (F(p1)))","17",3
|
||||||
"G((p0) U ((p1) | (X(((!(p0)) & (!(p2))) | ((p0) & (p2))))))","1",2
|
"G((p0) U ((p1) | (X(((!(p0)) & (!(p2))) | ((p0) & (p2))))))","1",2
|
||||||
"G((p0) U ((p1) | (X(((!(p0)) & (!(p2))) | ((p0) & (p2))))))","2",3
|
"G((p0) U ((p1) | (X(((!(p0)) & (!(p2))) | ((p0) & (p2))))))","2",3
|
||||||
"G((p0) U ((p1) | (X(((!(p0)) & (!(p2))) | ((p0) & (p2))))))","3",2
|
"G((p0) U ((p1) | (X(((!(p0)) & (!(p2))) | ((p0) & (p2))))))","3",2
|
||||||
|
|
@ -1111,6 +1443,10 @@ cat > expected << EOF
|
||||||
"G((p0) U ((p1) | (X(((!(p0)) & (!(p2))) | ((p0) & (p2))))))","11",2
|
"G((p0) U ((p1) | (X(((!(p0)) & (!(p2))) | ((p0) & (p2))))))","11",2
|
||||||
"G((p0) U ((p1) | (X(((!(p0)) & (!(p2))) | ((p0) & (p2))))))","12",2
|
"G((p0) U ((p1) | (X(((!(p0)) & (!(p2))) | ((p0) & (p2))))))","12",2
|
||||||
"G((p0) U ((p1) | (X(((!(p0)) & (!(p2))) | ((p0) & (p2))))))","13",2
|
"G((p0) U ((p1) | (X(((!(p0)) & (!(p2))) | ((p0) & (p2))))))","13",2
|
||||||
|
"G((p0) U ((p1) | (X(((!(p0)) & (!(p2))) | ((p0) & (p2))))))","14",2
|
||||||
|
"G((p0) U ((p1) | (X(((!(p0)) & (!(p2))) | ((p0) & (p2))))))","15",2
|
||||||
|
"G((p0) U ((p1) | (X(((!(p0)) & (!(p2))) | ((p0) & (p2))))))","16",2
|
||||||
|
"G((p0) U ((p1) | (X(((!(p0)) & (!(p2))) | ((p0) & (p2))))))","17",2
|
||||||
"!(G((p0) U ((p1) | (X(((!(p0)) & (!(p2))) | ((p0) & (p2)))))))","1",4
|
"!(G((p0) U ((p1) | (X(((!(p0)) & (!(p2))) | ((p0) & (p2)))))))","1",4
|
||||||
"!(G((p0) U ((p1) | (X(((!(p0)) & (!(p2))) | ((p0) & (p2)))))))","2",4
|
"!(G((p0) U ((p1) | (X(((!(p0)) & (!(p2))) | ((p0) & (p2)))))))","2",4
|
||||||
"!(G((p0) U ((p1) | (X(((!(p0)) & (!(p2))) | ((p0) & (p2)))))))","3",4
|
"!(G((p0) U ((p1) | (X(((!(p0)) & (!(p2))) | ((p0) & (p2)))))))","3",4
|
||||||
|
|
@ -1123,6 +1459,10 @@ cat > expected << EOF
|
||||||
"!(G((p0) U ((p1) | (X(((!(p0)) & (!(p2))) | ((p0) & (p2)))))))","11",4
|
"!(G((p0) U ((p1) | (X(((!(p0)) & (!(p2))) | ((p0) & (p2)))))))","11",4
|
||||||
"!(G((p0) U ((p1) | (X(((!(p0)) & (!(p2))) | ((p0) & (p2)))))))","12",4
|
"!(G((p0) U ((p1) | (X(((!(p0)) & (!(p2))) | ((p0) & (p2)))))))","12",4
|
||||||
"!(G((p0) U ((p1) | (X(((!(p0)) & (!(p2))) | ((p0) & (p2)))))))","13",4
|
"!(G((p0) U ((p1) | (X(((!(p0)) & (!(p2))) | ((p0) & (p2)))))))","13",4
|
||||||
|
"!(G((p0) U ((p1) | (X(((!(p0)) & (!(p2))) | ((p0) & (p2)))))))","14",4
|
||||||
|
"!(G((p0) U ((p1) | (X(((!(p0)) & (!(p2))) | ((p0) & (p2)))))))","15",4
|
||||||
|
"!(G((p0) U ((p1) | (X(((!(p0)) & (!(p2))) | ((p0) & (p2)))))))","16",4
|
||||||
|
"!(G((p0) U ((p1) | (X(((!(p0)) & (!(p2))) | ((p0) & (p2)))))))","17",4
|
||||||
"X(G(((G(!(p0))) & (F(!(p1)))) | ((F(p0)) & ((p0) | (G(p1))))))","1",4
|
"X(G(((G(!(p0))) & (F(!(p1)))) | ((F(p0)) & ((p0) | (G(p1))))))","1",4
|
||||||
"X(G(((G(!(p0))) & (F(!(p1)))) | ((F(p0)) & ((p0) | (G(p1))))))","2",5
|
"X(G(((G(!(p0))) & (F(!(p1)))) | ((F(p0)) & ((p0) | (G(p1))))))","2",5
|
||||||
"X(G(((G(!(p0))) & (F(!(p1)))) | ((F(p0)) & ((p0) | (G(p1))))))","3",5
|
"X(G(((G(!(p0))) & (F(!(p1)))) | ((F(p0)) & ((p0) | (G(p1))))))","3",5
|
||||||
|
|
@ -1135,6 +1475,10 @@ cat > expected << EOF
|
||||||
"X(G(((G(!(p0))) & (F(!(p1)))) | ((F(p0)) & ((p0) | (G(p1))))))","11",5
|
"X(G(((G(!(p0))) & (F(!(p1)))) | ((F(p0)) & ((p0) | (G(p1))))))","11",5
|
||||||
"X(G(((G(!(p0))) & (F(!(p1)))) | ((F(p0)) & ((p0) | (G(p1))))))","12",5
|
"X(G(((G(!(p0))) & (F(!(p1)))) | ((F(p0)) & ((p0) | (G(p1))))))","12",5
|
||||||
"X(G(((G(!(p0))) & (F(!(p1)))) | ((F(p0)) & ((p0) | (G(p1))))))","13",5
|
"X(G(((G(!(p0))) & (F(!(p1)))) | ((F(p0)) & ((p0) | (G(p1))))))","13",5
|
||||||
|
"X(G(((G(!(p0))) & (F(!(p1)))) | ((F(p0)) & ((p0) | (G(p1))))))","14",5
|
||||||
|
"X(G(((G(!(p0))) & (F(!(p1)))) | ((F(p0)) & ((p0) | (G(p1))))))","15",5
|
||||||
|
"X(G(((G(!(p0))) & (F(!(p1)))) | ((F(p0)) & ((p0) | (G(p1))))))","16",5
|
||||||
|
"X(G(((G(!(p0))) & (F(!(p1)))) | ((F(p0)) & ((p0) | (G(p1))))))","17",5
|
||||||
"!(X(G(((G(!(p0))) & (F(!(p1)))) | ((F(p0)) & ((p0) | (G(p1)))))))","1",7
|
"!(X(G(((G(!(p0))) & (F(!(p1)))) | ((F(p0)) & ((p0) | (G(p1)))))))","1",7
|
||||||
"!(X(G(((G(!(p0))) & (F(!(p1)))) | ((F(p0)) & ((p0) | (G(p1)))))))","2",7
|
"!(X(G(((G(!(p0))) & (F(!(p1)))) | ((F(p0)) & ((p0) | (G(p1)))))))","2",7
|
||||||
"!(X(G(((G(!(p0))) & (F(!(p1)))) | ((F(p0)) & ((p0) | (G(p1)))))))","3",7
|
"!(X(G(((G(!(p0))) & (F(!(p1)))) | ((F(p0)) & ((p0) | (G(p1)))))))","3",7
|
||||||
|
|
@ -1147,6 +1491,10 @@ cat > expected << EOF
|
||||||
"!(X(G(((G(!(p0))) & (F(!(p1)))) | ((F(p0)) & ((p0) | (G(p1)))))))","11",7
|
"!(X(G(((G(!(p0))) & (F(!(p1)))) | ((F(p0)) & ((p0) | (G(p1)))))))","11",7
|
||||||
"!(X(G(((G(!(p0))) & (F(!(p1)))) | ((F(p0)) & ((p0) | (G(p1)))))))","12",7
|
"!(X(G(((G(!(p0))) & (F(!(p1)))) | ((F(p0)) & ((p0) | (G(p1)))))))","12",7
|
||||||
"!(X(G(((G(!(p0))) & (F(!(p1)))) | ((F(p0)) & ((p0) | (G(p1)))))))","13",7
|
"!(X(G(((G(!(p0))) & (F(!(p1)))) | ((F(p0)) & ((p0) | (G(p1)))))))","13",7
|
||||||
|
"!(X(G(((G(!(p0))) & (F(!(p1)))) | ((F(p0)) & ((p0) | (G(p1)))))))","14",7
|
||||||
|
"!(X(G(((G(!(p0))) & (F(!(p1)))) | ((F(p0)) & ((p0) | (G(p1)))))))","15",7
|
||||||
|
"!(X(G(((G(!(p0))) & (F(!(p1)))) | ((F(p0)) & ((p0) | (G(p1)))))))","16",7
|
||||||
|
"!(X(G(((G(!(p0))) & (F(!(p1)))) | ((F(p0)) & ((p0) | (G(p1)))))))","17",7
|
||||||
"X((G(F(p0))) | (G(!(p0))))","1",4
|
"X((G(F(p0))) | (G(!(p0))))","1",4
|
||||||
"X((G(F(p0))) | (G(!(p0))))","2",4
|
"X((G(F(p0))) | (G(!(p0))))","2",4
|
||||||
"X((G(F(p0))) | (G(!(p0))))","3",3
|
"X((G(F(p0))) | (G(!(p0))))","3",3
|
||||||
|
|
@ -1159,6 +1507,10 @@ cat > expected << EOF
|
||||||
"X((G(F(p0))) | (G(!(p0))))","11",3
|
"X((G(F(p0))) | (G(!(p0))))","11",3
|
||||||
"X((G(F(p0))) | (G(!(p0))))","12",3
|
"X((G(F(p0))) | (G(!(p0))))","12",3
|
||||||
"X((G(F(p0))) | (G(!(p0))))","13",3
|
"X((G(F(p0))) | (G(!(p0))))","13",3
|
||||||
|
"X((G(F(p0))) | (G(!(p0))))","14",3
|
||||||
|
"X((G(F(p0))) | (G(!(p0))))","15",3
|
||||||
|
"X((G(F(p0))) | (G(!(p0))))","16",3
|
||||||
|
"X((G(F(p0))) | (G(!(p0))))","17",3
|
||||||
"!(X((G(F(p0))) | (G(!(p0)))))","1",4
|
"!(X((G(F(p0))) | (G(!(p0)))))","1",4
|
||||||
"!(X((G(F(p0))) | (G(!(p0)))))","2",4
|
"!(X((G(F(p0))) | (G(!(p0)))))","2",4
|
||||||
"!(X((G(F(p0))) | (G(!(p0)))))","3",4
|
"!(X((G(F(p0))) | (G(!(p0)))))","3",4
|
||||||
|
|
@ -1171,6 +1523,10 @@ cat > expected << EOF
|
||||||
"!(X((G(F(p0))) | (G(!(p0)))))","11",4
|
"!(X((G(F(p0))) | (G(!(p0)))))","11",4
|
||||||
"!(X((G(F(p0))) | (G(!(p0)))))","12",4
|
"!(X((G(F(p0))) | (G(!(p0)))))","12",4
|
||||||
"!(X((G(F(p0))) | (G(!(p0)))))","13",4
|
"!(X((G(F(p0))) | (G(!(p0)))))","13",4
|
||||||
|
"!(X((G(F(p0))) | (G(!(p0)))))","14",4
|
||||||
|
"!(X((G(F(p0))) | (G(!(p0)))))","15",4
|
||||||
|
"!(X((G(F(p0))) | (G(!(p0)))))","16",4
|
||||||
|
"!(X((G(F(p0))) | (G(!(p0)))))","17",4
|
||||||
"G((G(!(p0))) | (F(!(p1))) | (G(!(p2))))","1",4
|
"G((G(!(p0))) | (F(!(p1))) | (G(!(p2))))","1",4
|
||||||
"G((G(!(p0))) | (F(!(p1))) | (G(!(p2))))","2",4
|
"G((G(!(p0))) | (F(!(p1))) | (G(!(p2))))","2",4
|
||||||
"G((G(!(p0))) | (F(!(p1))) | (G(!(p2))))","3",4
|
"G((G(!(p0))) | (F(!(p1))) | (G(!(p2))))","3",4
|
||||||
|
|
@ -1183,6 +1539,10 @@ cat > expected << EOF
|
||||||
"G((G(!(p0))) | (F(!(p1))) | (G(!(p2))))","11",4
|
"G((G(!(p0))) | (F(!(p1))) | (G(!(p2))))","11",4
|
||||||
"G((G(!(p0))) | (F(!(p1))) | (G(!(p2))))","12",4
|
"G((G(!(p0))) | (F(!(p1))) | (G(!(p2))))","12",4
|
||||||
"G((G(!(p0))) | (F(!(p1))) | (G(!(p2))))","13",4
|
"G((G(!(p0))) | (F(!(p1))) | (G(!(p2))))","13",4
|
||||||
|
"G((G(!(p0))) | (F(!(p1))) | (G(!(p2))))","14",4
|
||||||
|
"G((G(!(p0))) | (F(!(p1))) | (G(!(p2))))","15",4
|
||||||
|
"G((G(!(p0))) | (F(!(p1))) | (G(!(p2))))","16",4
|
||||||
|
"G((G(!(p0))) | (F(!(p1))) | (G(!(p2))))","17",4
|
||||||
"!(G((G(!(p0))) | (F(!(p1))) | (G(!(p2)))))","1",4
|
"!(G((G(!(p0))) | (F(!(p1))) | (G(!(p2)))))","1",4
|
||||||
"!(G((G(!(p0))) | (F(!(p1))) | (G(!(p2)))))","2",4
|
"!(G((G(!(p0))) | (F(!(p1))) | (G(!(p2)))))","2",4
|
||||||
"!(G((G(!(p0))) | (F(!(p1))) | (G(!(p2)))))","3",4
|
"!(G((G(!(p0))) | (F(!(p1))) | (G(!(p2)))))","3",4
|
||||||
|
|
@ -1195,6 +1555,10 @@ cat > expected << EOF
|
||||||
"!(G((G(!(p0))) | (F(!(p1))) | (G(!(p2)))))","11",4
|
"!(G((G(!(p0))) | (F(!(p1))) | (G(!(p2)))))","11",4
|
||||||
"!(G((G(!(p0))) | (F(!(p1))) | (G(!(p2)))))","12",4
|
"!(G((G(!(p0))) | (F(!(p1))) | (G(!(p2)))))","12",4
|
||||||
"!(G((G(!(p0))) | (F(!(p1))) | (G(!(p2)))))","13",4
|
"!(G((G(!(p0))) | (F(!(p1))) | (G(!(p2)))))","13",4
|
||||||
|
"!(G((G(!(p0))) | (F(!(p1))) | (G(!(p2)))))","14",4
|
||||||
|
"!(G((G(!(p0))) | (F(!(p1))) | (G(!(p2)))))","15",4
|
||||||
|
"!(G((G(!(p0))) | (F(!(p1))) | (G(!(p2)))))","16",4
|
||||||
|
"!(G((G(!(p0))) | (F(!(p1))) | (G(!(p2)))))","17",4
|
||||||
"G((p0) | (F(p0)))","1",1
|
"G((p0) | (F(p0)))","1",1
|
||||||
"G((p0) | (F(p0)))","2",1
|
"G((p0) | (F(p0)))","2",1
|
||||||
"G((p0) | (F(p0)))","3",1
|
"G((p0) | (F(p0)))","3",1
|
||||||
|
|
@ -1207,6 +1571,10 @@ cat > expected << EOF
|
||||||
"G((p0) | (F(p0)))","11",1
|
"G((p0) | (F(p0)))","11",1
|
||||||
"G((p0) | (F(p0)))","12",1
|
"G((p0) | (F(p0)))","12",1
|
||||||
"G((p0) | (F(p0)))","13",1
|
"G((p0) | (F(p0)))","13",1
|
||||||
|
"G((p0) | (F(p0)))","14",1
|
||||||
|
"G((p0) | (F(p0)))","15",1
|
||||||
|
"G((p0) | (F(p0)))","16",1
|
||||||
|
"G((p0) | (F(p0)))","17",1
|
||||||
"!(G((p0) | (F(p0))))","1",2
|
"!(G((p0) | (F(p0))))","1",2
|
||||||
"!(G((p0) | (F(p0))))","2",2
|
"!(G((p0) | (F(p0))))","2",2
|
||||||
"!(G((p0) | (F(p0))))","3",2
|
"!(G((p0) | (F(p0))))","3",2
|
||||||
|
|
@ -1219,6 +1587,10 @@ cat > expected << EOF
|
||||||
"!(G((p0) | (F(p0))))","11",2
|
"!(G((p0) | (F(p0))))","11",2
|
||||||
"!(G((p0) | (F(p0))))","12",2
|
"!(G((p0) | (F(p0))))","12",2
|
||||||
"!(G((p0) | (F(p0))))","13",2
|
"!(G((p0) | (F(p0))))","13",2
|
||||||
|
"!(G((p0) | (F(p0))))","14",2
|
||||||
|
"!(G((p0) | (F(p0))))","15",2
|
||||||
|
"!(G((p0) | (F(p0))))","16",2
|
||||||
|
"!(G((p0) | (F(p0))))","17",2
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
diff expected output
|
diff expected output
|
||||||
|
|
|
||||||
|
|
@ -61,19 +61,31 @@ diff output expected
|
||||||
ltl2tgba -BD -x sat-minimize "GF(a <-> XXb)" -H >out
|
ltl2tgba -BD -x sat-minimize "GF(a <-> XXb)" -H >out
|
||||||
grep 'properties:.*state-acc' out
|
grep 'properties:.*state-acc' out
|
||||||
grep 'properties:.*deterministic' out
|
grep 'properties:.*deterministic' out
|
||||||
ltl2tgba -BD -x 'sat-minimize=3,incr=-1' "GF(a <-> XXb)" -H >out
|
ltl2tgba -BD -x 'sat-minimize=3,param=0' "GF(a <-> XXb)" -H >out
|
||||||
grep 'properties:.*state-acc' out
|
grep 'properties:.*state-acc' out
|
||||||
grep 'properties:.*deterministic' out
|
grep 'properties:.*deterministic' out
|
||||||
ltl2tgba -BD -x 'sat-minimize=3,incr=0' "GF(a <-> XXb)" -H >out
|
ltl2tgba -BD -x 'sat-minimize=3,param=1' "GF(a <-> XXb)" -H >out
|
||||||
grep 'properties:.*state-acc' out
|
grep 'properties:.*state-acc' out
|
||||||
grep 'properties:.*deterministic' out
|
grep 'properties:.*deterministic' out
|
||||||
ltl2tgba -BD -x 'sat-minimize=3,incr=1' "GF(a <-> XXb)" -H >out
|
ltl2tgba -BD -x 'sat-minimize=3,param=2' "GF(a <-> XXb)" -H >out
|
||||||
grep 'properties:.*state-acc' out
|
grep 'properties:.*state-acc' out
|
||||||
grep 'properties:.*deterministic' out
|
grep 'properties:.*deterministic' out
|
||||||
ltl2tgba -BD -x 'sat-minimize=3,incr=2' "GF(a <-> XXb)" -H >out
|
ltl2tgba -BD -x 'sat-minimize=3,param=50' "GF(a <-> XXb)" -H >out
|
||||||
grep 'properties:.*state-acc' out
|
grep 'properties:.*state-acc' out
|
||||||
grep 'properties:.*deterministic' out
|
grep 'properties:.*deterministic' out
|
||||||
ltl2tgba -BD -x 'sat-minimize=3,incr=50' "GF(a <-> XXb)" -H >out
|
ltl2tgba -BD -x 'sat-minimize=3,param=-1' "GF(a <-> XXb)" -H >out
|
||||||
|
grep 'properties:.*state-acc' out
|
||||||
|
grep 'properties:.*deterministic' out
|
||||||
|
ltl2tgba -BD -x 'sat-minimize=3,param=-0' "GF(a <-> XXb)" -H >out
|
||||||
|
grep 'properties:.*state-acc' out
|
||||||
|
grep 'properties:.*deterministic' out
|
||||||
|
ltl2tgba -BD -x 'sat-minimize=3,param=1' "GF(a <-> XXb)" -H >out
|
||||||
|
grep 'properties:.*state-acc' out
|
||||||
|
grep 'properties:.*deterministic' out
|
||||||
|
ltl2tgba -BD -x 'sat-minimize=3,param=2' "GF(a <-> XXb)" -H >out
|
||||||
|
grep 'properties:.*state-acc' out
|
||||||
|
grep 'properties:.*deterministic' out
|
||||||
|
ltl2tgba -BD -x 'sat-minimize=3,param=50' "GF(a <-> XXb)" -H >out
|
||||||
grep 'properties:.*state-acc' out
|
grep 'properties:.*state-acc' out
|
||||||
grep 'properties:.*deterministic' out
|
grep 'properties:.*deterministic' out
|
||||||
|
|
||||||
|
|
@ -116,39 +128,64 @@ EOF
|
||||||
# automata.
|
# automata.
|
||||||
$autfilt --sat-minimize='acc="Fin(0)|Inf(1)"' test.hoa --stats=%s >output
|
$autfilt --sat-minimize='acc="Fin(0)|Inf(1)"' test.hoa --stats=%s >output
|
||||||
test `cat output` = 1
|
test `cat output` = 1
|
||||||
$autfilt --sat-minimize='acc="Fin(0)|Inf(1)",incr=-1' test.hoa \
|
$autfilt --sat-minimize='acc="Fin(0)|Inf(1)",assume,param=0' test.hoa \
|
||||||
--stats=%s >output
|
--stats=%s >output
|
||||||
test `cat output` = 1
|
test `cat output` = 1
|
||||||
$autfilt --sat-minimize='acc="Fin(0)|Inf(1)",incr=0' test.hoa \
|
$autfilt --sat-minimize='acc="Fin(0)|Inf(1)",assume,param=1' test.hoa \
|
||||||
--stats=%s >output
|
--stats=%s >output
|
||||||
test `cat output` = 1
|
test `cat output` = 1
|
||||||
$autfilt --sat-minimize='acc="Fin(0)|Inf(1)",incr=1' test.hoa \
|
$autfilt --sat-minimize='acc="Fin(0)|Inf(1)",assume,param=2' test.hoa \
|
||||||
--stats=%s >output
|
--stats=%s >output
|
||||||
test `cat output` = 1
|
test `cat output` = 1
|
||||||
$autfilt --sat-minimize='acc="Fin(0)|Inf(1)",incr=2' test.hoa \
|
$autfilt --sat-minimize='acc="Fin(0)|Inf(1)",assume,param=50' test.hoa \
|
||||||
--stats=%s >output
|
--stats=%s >output
|
||||||
test `cat output` = 1
|
test `cat output` = 1
|
||||||
$autfilt --sat-minimize='acc="Fin(0)|Inf(1)",incr=50' test.hoa \
|
$autfilt --sat-minimize='acc="Fin(0)|Inf(1)",incr,param=-1' test.hoa \
|
||||||
--stats=%s >output
|
--stats=%s >output
|
||||||
test `cat output` = 1
|
test `cat output` = 1
|
||||||
|
$autfilt --sat-minimize='acc="Fin(0)|Inf(1)",incr,param=0' test.hoa \
|
||||||
|
--stats=%s >output
|
||||||
|
test `cat output` = 1
|
||||||
|
$autfilt --sat-minimize='acc="Fin(0)|Inf(1)",incr,param=1' test.hoa \
|
||||||
|
--stats=%s >output
|
||||||
|
test `cat output` = 1
|
||||||
|
$autfilt --sat-minimize='acc="Fin(0)|Inf(1)",incr,param=2' test.hoa \
|
||||||
|
--stats=%s >output
|
||||||
|
test `cat output` = 1
|
||||||
|
$autfilt --sat-minimize='acc="Fin(0)|Inf(1)",incr,param=50' test.hoa \
|
||||||
|
--stats=%s >output
|
||||||
|
test `cat output` = 1
|
||||||
|
|
||||||
|
|
||||||
# How about a state-based DSA?
|
# How about a state-based DSA?
|
||||||
$autfilt -S --sat-minimize='acc="Fin(0)|Inf(1)"' test.hoa \
|
$autfilt -S --sat-minimize='acc="Fin(0)|Inf(1)"' test.hoa \
|
||||||
--stats=%s > output
|
--stats=%s > output
|
||||||
test `cat output` = 3
|
test `cat output` = 3
|
||||||
$autfilt -S --sat-minimize='acc="Fin(0)|Inf(1)",incr=-1' test.hoa \
|
$autfilt -S --sat-minimize='acc="Fin(0)|Inf(1)",assume,param=0' test.hoa \
|
||||||
--stats=%s > output
|
--stats=%s > output
|
||||||
test `cat output` = 3
|
test `cat output` = 3
|
||||||
$autfilt -S --sat-minimize='acc="Fin(0)|Inf(1)",incr=0' test.hoa \
|
$autfilt -S --sat-minimize='acc="Fin(0)|Inf(1)",assume,param=1' test.hoa \
|
||||||
--stats=%s > output
|
--stats=%s > output
|
||||||
test `cat output` = 3
|
test `cat output` = 3
|
||||||
$autfilt -S --sat-minimize='acc="Fin(0)|Inf(1)",incr=1' test.hoa \
|
$autfilt -S --sat-minimize='acc="Fin(0)|Inf(1)",assume,param=2' test.hoa \
|
||||||
--stats=%s > output
|
--stats=%s > output
|
||||||
test `cat output` = 3
|
test `cat output` = 3
|
||||||
$autfilt -S --sat-minimize='acc="Fin(0)|Inf(1)",incr=2' test.hoa \
|
$autfilt -S --sat-minimize='acc="Fin(0)|Inf(1)",assume,param=50' test.hoa \
|
||||||
--stats=%s > output
|
--stats=%s > output
|
||||||
test `cat output` = 3
|
test `cat output` = 3
|
||||||
$autfilt -S --sat-minimize='acc="Fin(0)|Inf(1)",incr=50' test.hoa \
|
$autfilt -S --sat-minimize='acc="Fin(0)|Inf(1)",incr,param=-1' test.hoa \
|
||||||
|
--stats=%s > output
|
||||||
|
test `cat output` = 3
|
||||||
|
$autfilt -S --sat-minimize='acc="Fin(0)|Inf(1)",incr,param=0' test.hoa \
|
||||||
|
--stats=%s > output
|
||||||
|
test `cat output` = 3
|
||||||
|
$autfilt -S --sat-minimize='acc="Fin(0)|Inf(1)",incr,param=1' test.hoa \
|
||||||
|
--stats=%s > output
|
||||||
|
test `cat output` = 3
|
||||||
|
$autfilt -S --sat-minimize='acc="Fin(0)|Inf(1)",incr,param=2' test.hoa \
|
||||||
|
--stats=%s > output
|
||||||
|
test `cat output` = 3
|
||||||
|
$autfilt -S --sat-minimize='acc="Fin(0)|Inf(1)",incr,param=50' test.hoa \
|
||||||
--stats=%s > output
|
--stats=%s > output
|
||||||
test `cat output` = 3
|
test `cat output` = 3
|
||||||
|
|
||||||
|
|
@ -162,7 +199,7 @@ grep 'States: 3' output
|
||||||
grep 'acc-name: parity max even 3' output
|
grep 'acc-name: parity max even 3' output
|
||||||
grep 'Acceptance: 3 Inf(2) | (Fin(1) & Inf(0))' output
|
grep 'Acceptance: 3 Inf(2) | (Fin(1) & Inf(0))' output
|
||||||
test 3 = `grep -c 'State: [012] {[012]}' output`
|
test 3 = `grep -c 'State: [012] {[012]}' output`
|
||||||
$autfilt -S --sat-minimize='acc="parity max even 3",colored,incr=-1' \
|
$autfilt -S --sat-minimize='acc="parity max even 3",colored,assume,param=0' \
|
||||||
-H test.hoa > output
|
-H test.hoa > output
|
||||||
cat output
|
cat output
|
||||||
grep 'properties:.*colored' output
|
grep 'properties:.*colored' output
|
||||||
|
|
@ -170,7 +207,7 @@ grep 'States: 3' output
|
||||||
grep 'acc-name: parity max even 3' output
|
grep 'acc-name: parity max even 3' output
|
||||||
grep 'Acceptance: 3 Inf(2) | (Fin(1) & Inf(0))' output
|
grep 'Acceptance: 3 Inf(2) | (Fin(1) & Inf(0))' output
|
||||||
test 3 = `grep -c 'State: [012] {[012]}' output`
|
test 3 = `grep -c 'State: [012] {[012]}' output`
|
||||||
$autfilt -S --sat-minimize='acc="parity max even 3",colored,incr=0' \
|
$autfilt -S --sat-minimize='acc="parity max even 3",colored,assume,param=1' \
|
||||||
-H test.hoa > output
|
-H test.hoa > output
|
||||||
cat output
|
cat output
|
||||||
grep 'properties:.*colored' output
|
grep 'properties:.*colored' output
|
||||||
|
|
@ -178,7 +215,7 @@ grep 'States: 3' output
|
||||||
grep 'acc-name: parity max even 3' output
|
grep 'acc-name: parity max even 3' output
|
||||||
grep 'Acceptance: 3 Inf(2) | (Fin(1) & Inf(0))' output
|
grep 'Acceptance: 3 Inf(2) | (Fin(1) & Inf(0))' output
|
||||||
test 3 = `grep -c 'State: [012] {[012]}' output`
|
test 3 = `grep -c 'State: [012] {[012]}' output`
|
||||||
$autfilt -S --sat-minimize='acc="parity max even 3",colored,incr=1' \
|
$autfilt -S --sat-minimize='acc="parity max even 3",colored,assume,param=2' \
|
||||||
-H test.hoa > output
|
-H test.hoa > output
|
||||||
cat output
|
cat output
|
||||||
grep 'properties:.*colored' output
|
grep 'properties:.*colored' output
|
||||||
|
|
@ -186,7 +223,7 @@ grep 'States: 3' output
|
||||||
grep 'acc-name: parity max even 3' output
|
grep 'acc-name: parity max even 3' output
|
||||||
grep 'Acceptance: 3 Inf(2) | (Fin(1) & Inf(0))' output
|
grep 'Acceptance: 3 Inf(2) | (Fin(1) & Inf(0))' output
|
||||||
test 3 = `grep -c 'State: [012] {[012]}' output`
|
test 3 = `grep -c 'State: [012] {[012]}' output`
|
||||||
$autfilt -S --sat-minimize='acc="parity max even 3",colored,incr=2' \
|
$autfilt -S --sat-minimize='acc="parity max even 3",colored,assume,param=50' \
|
||||||
-H test.hoa > output
|
-H test.hoa > output
|
||||||
cat output
|
cat output
|
||||||
grep 'properties:.*colored' output
|
grep 'properties:.*colored' output
|
||||||
|
|
@ -194,7 +231,39 @@ grep 'States: 3' output
|
||||||
grep 'acc-name: parity max even 3' output
|
grep 'acc-name: parity max even 3' output
|
||||||
grep 'Acceptance: 3 Inf(2) | (Fin(1) & Inf(0))' output
|
grep 'Acceptance: 3 Inf(2) | (Fin(1) & Inf(0))' output
|
||||||
test 3 = `grep -c 'State: [012] {[012]}' output`
|
test 3 = `grep -c 'State: [012] {[012]}' output`
|
||||||
$autfilt -S --sat-minimize='acc="parity max even 3",colored,incr=50' \
|
$autfilt -S --sat-minimize='acc="parity max even 3",colored,incr,param=-1' \
|
||||||
|
-H test.hoa > output
|
||||||
|
cat output
|
||||||
|
grep 'properties:.*colored' output
|
||||||
|
grep 'States: 3' output
|
||||||
|
grep 'acc-name: parity max even 3' output
|
||||||
|
grep 'Acceptance: 3 Inf(2) | (Fin(1) & Inf(0))' output
|
||||||
|
test 3 = `grep -c 'State: [012] {[012]}' output`
|
||||||
|
$autfilt -S --sat-minimize='acc="parity max even 3",colored,incr,param=0' \
|
||||||
|
-H test.hoa > output
|
||||||
|
cat output
|
||||||
|
grep 'properties:.*colored' output
|
||||||
|
grep 'States: 3' output
|
||||||
|
grep 'acc-name: parity max even 3' output
|
||||||
|
grep 'Acceptance: 3 Inf(2) | (Fin(1) & Inf(0))' output
|
||||||
|
test 3 = `grep -c 'State: [012] {[012]}' output`
|
||||||
|
$autfilt -S --sat-minimize='acc="parity max even 3",colored,incr,param=1' \
|
||||||
|
-H test.hoa > output
|
||||||
|
cat output
|
||||||
|
grep 'properties:.*colored' output
|
||||||
|
grep 'States: 3' output
|
||||||
|
grep 'acc-name: parity max even 3' output
|
||||||
|
grep 'Acceptance: 3 Inf(2) | (Fin(1) & Inf(0))' output
|
||||||
|
test 3 = `grep -c 'State: [012] {[012]}' output`
|
||||||
|
$autfilt -S --sat-minimize='acc="parity max even 3",colored,incr,param=2' \
|
||||||
|
-H test.hoa > output
|
||||||
|
cat output
|
||||||
|
grep 'properties:.*colored' output
|
||||||
|
grep 'States: 3' output
|
||||||
|
grep 'acc-name: parity max even 3' output
|
||||||
|
grep 'Acceptance: 3 Inf(2) | (Fin(1) & Inf(0))' output
|
||||||
|
test 3 = `grep -c 'State: [012] {[012]}' output`
|
||||||
|
$autfilt -S --sat-minimize='acc="parity max even 3",colored,incr,param=50' \
|
||||||
-H test.hoa > output
|
-H test.hoa > output
|
||||||
cat output
|
cat output
|
||||||
grep 'properties:.*colored' output
|
grep 'properties:.*colored' output
|
||||||
|
|
@ -237,15 +306,23 @@ State: 0
|
||||||
EOF
|
EOF
|
||||||
$autfilt -H --sat-minimize special.hoa > output
|
$autfilt -H --sat-minimize special.hoa > output
|
||||||
diff output expected
|
diff output expected
|
||||||
$autfilt -H --sat-minimize='incr=-1' special.hoa > output
|
$autfilt -H --sat-minimize='assume,param=0' special.hoa > output
|
||||||
diff output expected
|
diff output expected
|
||||||
$autfilt -H --sat-minimize='incr=0' special.hoa > output
|
$autfilt -H --sat-minimize='assume,param=1' special.hoa > output
|
||||||
diff output expected
|
diff output expected
|
||||||
$autfilt -H --sat-minimize='incr=1' special.hoa > output
|
$autfilt -H --sat-minimize='assume,param=2' special.hoa > output
|
||||||
diff output expected
|
diff output expected
|
||||||
$autfilt -H --sat-minimize='incr=2' special.hoa > output
|
$autfilt -H --sat-minimize='assume,param=50' special.hoa > output
|
||||||
diff output expected
|
diff output expected
|
||||||
$autfilt -H --sat-minimize='incr=50' special.hoa > output
|
$autfilt -H --sat-minimize='incr,param=-1' special.hoa > output
|
||||||
|
diff output expected
|
||||||
|
$autfilt -H --sat-minimize='incr,param=0' special.hoa > output
|
||||||
|
diff output expected
|
||||||
|
$autfilt -H --sat-minimize='incr,param=1' special.hoa > output
|
||||||
|
diff output expected
|
||||||
|
$autfilt -H --sat-minimize='incr,param=2' special.hoa > output
|
||||||
|
diff output expected
|
||||||
|
$autfilt -H --sat-minimize='incr,param=50' special.hoa > output
|
||||||
diff output expected
|
diff output expected
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -266,19 +343,31 @@ EOF
|
||||||
$autfilt --sat-minimize='acc="Streett 1",max-states=2' foo.hoa \
|
$autfilt --sat-minimize='acc="Streett 1",max-states=2' foo.hoa \
|
||||||
--stats=%s >out
|
--stats=%s >out
|
||||||
test "`cat out`" = 1
|
test "`cat out`" = 1
|
||||||
$autfilt --sat-minimize='acc="Streett 1",max-states=2,incr=-1' foo.hoa \
|
$autfilt --sat-minimize='acc="Streett 1",max-states=2,assume,param=0' foo.hoa \
|
||||||
--stats=%s >out
|
--stats=%s >out
|
||||||
test "`cat out`" = 1
|
test "`cat out`" = 1
|
||||||
$autfilt --sat-minimize='acc="Streett 1",max-states=2,incr=0' foo.hoa \
|
$autfilt --sat-minimize='acc="Streett 1",max-states=2,assume,param=1' foo.hoa \
|
||||||
--stats=%s >out
|
--stats=%s >out
|
||||||
test "`cat out`" = 1
|
test "`cat out`" = 1
|
||||||
$autfilt --sat-minimize='acc="Streett 1",max-states=2,incr=1' foo.hoa \
|
$autfilt --sat-minimize='acc="Streett 1",max-states=2,assume,param=2' foo.hoa \
|
||||||
--stats=%s >out
|
--stats=%s >out
|
||||||
test "`cat out`" = 1
|
test "`cat out`" = 1
|
||||||
$autfilt --sat-minimize='acc="Streett 1",max-states=2,incr=2' foo.hoa \
|
$autfilt --sat-minimize='acc="Streett 1",max-states=2,assume,param=50' foo.hoa \
|
||||||
--stats=%s >out
|
--stats=%s >out
|
||||||
test "`cat out`" = 1
|
test "`cat out`" = 1
|
||||||
$autfilt --sat-minimize='acc="Streett 1",max-states=2,incr=50' foo.hoa \
|
$autfilt --sat-minimize='acc="Streett 1",max-states=2,incr,param=-1' foo.hoa \
|
||||||
|
--stats=%s >out
|
||||||
|
test "`cat out`" = 1
|
||||||
|
$autfilt --sat-minimize='acc="Streett 1",max-states=2,incr,param=0' foo.hoa \
|
||||||
|
--stats=%s >out
|
||||||
|
test "`cat out`" = 1
|
||||||
|
$autfilt --sat-minimize='acc="Streett 1",max-states=2,incr,param=1' foo.hoa \
|
||||||
|
--stats=%s >out
|
||||||
|
test "`cat out`" = 1
|
||||||
|
$autfilt --sat-minimize='acc="Streett 1",max-states=2,incr,param=2' foo.hoa \
|
||||||
|
--stats=%s >out
|
||||||
|
test "`cat out`" = 1
|
||||||
|
$autfilt --sat-minimize='acc="Streett 1",max-states=2,incr,param=50' foo.hoa \
|
||||||
--stats=%s >out
|
--stats=%s >out
|
||||||
test "`cat out`" = 1
|
test "`cat out`" = 1
|
||||||
|
|
||||||
|
|
@ -286,19 +375,31 @@ test "`cat out`" = 1
|
||||||
$autfilt --sat-minimize='acc="Rabin 1",max-states=4' foo.hoa \
|
$autfilt --sat-minimize='acc="Rabin 1",max-states=4' foo.hoa \
|
||||||
--stats=%s >out && exit 1
|
--stats=%s >out && exit 1
|
||||||
test -z "`cat out`"
|
test -z "`cat out`"
|
||||||
$autfilt --sat-minimize='acc="Rabin 1",max-states=4,incr=-1' foo.hoa \
|
$autfilt --sat-minimize='acc="Rabin 1",max-states=4,assume,param=0' foo.hoa \
|
||||||
--stats=%s >out && exit 1
|
--stats=%s >out && exit 1
|
||||||
test -z "`cat out`"
|
test -z "`cat out`"
|
||||||
$autfilt --sat-minimize='acc="Rabin 1",max-states=4,incr=0' foo.hoa \
|
$autfilt --sat-minimize='acc="Rabin 1",max-states=4,assume,param=1' foo.hoa \
|
||||||
--stats=%s >out && exit 1
|
--stats=%s >out && exit 1
|
||||||
test -z "`cat out`"
|
test -z "`cat out`"
|
||||||
$autfilt --sat-minimize='acc="Rabin 1",max-states=4,incr=1' foo.hoa \
|
$autfilt --sat-minimize='acc="Rabin 1",max-states=4,assume,param=2' foo.hoa \
|
||||||
--stats=%s >out && exit 1
|
--stats=%s >out && exit 1
|
||||||
test -z "`cat out`"
|
test -z "`cat out`"
|
||||||
$autfilt --sat-minimize='acc="Rabin 1",max-states=4,incr=2' foo.hoa \
|
$autfilt --sat-minimize='acc="Rabin 1",max-states=4,assume,param=50' foo.hoa \
|
||||||
--stats=%s >out && exit 1
|
--stats=%s >out && exit 1
|
||||||
test -z "`cat out`"
|
test -z "`cat out`"
|
||||||
$autfilt --sat-minimize='acc="Rabin 1",max-states=4,incr=50' foo.hoa \
|
$autfilt --sat-minimize='acc="Rabin 1",max-states=4,incr,param=-1' foo.hoa \
|
||||||
|
--stats=%s >out && exit 1
|
||||||
|
test -z "`cat out`"
|
||||||
|
$autfilt --sat-minimize='acc="Rabin 1",max-states=4,incr,param=0' foo.hoa \
|
||||||
|
--stats=%s >out && exit 1
|
||||||
|
test -z "`cat out`"
|
||||||
|
$autfilt --sat-minimize='acc="Rabin 1",max-states=4,incr,param=1' foo.hoa \
|
||||||
|
--stats=%s >out && exit 1
|
||||||
|
test -z "`cat out`"
|
||||||
|
$autfilt --sat-minimize='acc="Rabin 1",max-states=4,incr,param=2' foo.hoa \
|
||||||
|
--stats=%s >out && exit 1
|
||||||
|
test -z "`cat out`"
|
||||||
|
$autfilt --sat-minimize='acc="Rabin 1",max-states=4,incr,param=50' foo.hoa \
|
||||||
--stats=%s >out && exit 1
|
--stats=%s >out && exit 1
|
||||||
test -z "`cat out`"
|
test -z "`cat out`"
|
||||||
|
|
||||||
|
|
@ -306,18 +407,30 @@ test -z "`cat out`"
|
||||||
$autfilt --sat-minimize='acc="Inf(0)&Fin(1)|Inf(2)",states=1' foo.hoa \
|
$autfilt --sat-minimize='acc="Inf(0)&Fin(1)|Inf(2)",states=1' foo.hoa \
|
||||||
--stats=%s >out
|
--stats=%s >out
|
||||||
test "`cat out`" = 1
|
test "`cat out`" = 1
|
||||||
$autfilt --sat-minimize='acc="Inf(0)&Fin(1)|Inf(2)",states=1,incr=-1' \
|
$autfilt --sat-minimize='acc="Inf(0)&Fin(1)|Inf(2)",states=1,assume,param=0' \
|
||||||
foo.hoa --stats=%s >out
|
foo.hoa --stats=%s >out
|
||||||
test "`cat out`" = 1
|
test "`cat out`" = 1
|
||||||
$autfilt --sat-minimize='acc="Inf(0)&Fin(1)|Inf(2)",states=1,incr=0' \
|
$autfilt --sat-minimize='acc="Inf(0)&Fin(1)|Inf(2)",states=1,assume,param=1' \
|
||||||
foo.hoa --stats=%s >out
|
foo.hoa --stats=%s >out
|
||||||
test "`cat out`" = 1
|
test "`cat out`" = 1
|
||||||
$autfilt --sat-minimize='acc="Inf(0)&Fin(1)|Inf(2)",states=1,incr=1' \
|
$autfilt --sat-minimize='acc="Inf(0)&Fin(1)|Inf(2)",states=1,assume,param=2' \
|
||||||
foo.hoa --stats=%s >out
|
foo.hoa --stats=%s >out
|
||||||
test "`cat out`" = 1
|
test "`cat out`" = 1
|
||||||
$autfilt --sat-minimize='acc="Inf(0)&Fin(1)|Inf(2)",states=1,incr=2' \
|
$autfilt --sat-minimize='acc="Inf(0)&Fin(1)|Inf(2)",states=1,assume,param=50' \
|
||||||
foo.hoa --stats=%s >out
|
foo.hoa --stats=%s >out
|
||||||
test "`cat out`" = 1
|
test "`cat out`" = 1
|
||||||
$autfilt --sat-minimize='acc="Inf(0)&Fin(1)|Inf(2)",states=1,incr=50' \
|
$autfilt --sat-minimize='acc="Inf(0)&Fin(1)|Inf(2)",states=1,incr,param=-1' \
|
||||||
|
foo.hoa --stats=%s >out
|
||||||
|
test "`cat out`" = 1
|
||||||
|
$autfilt --sat-minimize='acc="Inf(0)&Fin(1)|Inf(2)",states=1,incr,param=0' \
|
||||||
|
foo.hoa --stats=%s >out
|
||||||
|
test "`cat out`" = 1
|
||||||
|
$autfilt --sat-minimize='acc="Inf(0)&Fin(1)|Inf(2)",states=1,incr,param=1' \
|
||||||
|
foo.hoa --stats=%s >out
|
||||||
|
test "`cat out`" = 1
|
||||||
|
$autfilt --sat-minimize='acc="Inf(0)&Fin(1)|Inf(2)",states=1,incr,param=2' \
|
||||||
|
foo.hoa --stats=%s >out
|
||||||
|
test "`cat out`" = 1
|
||||||
|
$autfilt --sat-minimize='acc="Inf(0)&Fin(1)|Inf(2)",states=1,incr,param=50' \
|
||||||
foo.hoa --stats=%s >out
|
foo.hoa --stats=%s >out
|
||||||
test "`cat out`" = 1
|
test "`cat out`" = 1
|
||||||
|
|
|
||||||
|
|
@ -29,6 +29,21 @@ assert aut.is_deterministic()
|
||||||
min1 = spot.sat_minimize(aut, acc='Rabin 1')
|
min1 = spot.sat_minimize(aut, acc='Rabin 1')
|
||||||
assert min1.num_sets() == 2
|
assert min1.num_sets() == 2
|
||||||
assert min1.num_states() == 2
|
assert min1.num_states() == 2
|
||||||
|
min1 = spot.sat_minimize(aut, acc='Rabin 1', assume=True)
|
||||||
|
assert min1.num_sets() == 2
|
||||||
|
assert min1.num_states() == 2
|
||||||
|
min1 = spot.sat_minimize(aut, acc='Rabin 1', assume=True, param=0)
|
||||||
|
assert min1.num_sets() == 2
|
||||||
|
assert min1.num_states() == 2
|
||||||
|
min1 = spot.sat_minimize(aut, acc='Rabin 1', assume=True, param=1)
|
||||||
|
assert min1.num_sets() == 2
|
||||||
|
assert min1.num_states() == 2
|
||||||
|
min1 = spot.sat_minimize(aut, acc='Rabin 1', assume=True, param=2)
|
||||||
|
assert min1.num_sets() == 2
|
||||||
|
assert min1.num_states() == 2
|
||||||
|
min1 = spot.sat_minimize(aut, acc='Rabin 1', assume=True, param=50)
|
||||||
|
assert min1.num_sets() == 2
|
||||||
|
assert min1.num_states() == 2
|
||||||
min1 = spot.sat_minimize(aut, acc='Rabin 1', incr=True)
|
min1 = spot.sat_minimize(aut, acc='Rabin 1', incr=True)
|
||||||
assert min1.num_sets() == 2
|
assert min1.num_sets() == 2
|
||||||
assert min1.num_states() == 2
|
assert min1.num_states() == 2
|
||||||
|
|
@ -49,7 +64,19 @@ assert min1.num_sets() == 2
|
||||||
assert min1.num_states() == 2
|
assert min1.num_states() == 2
|
||||||
|
|
||||||
|
|
||||||
min2 = spot.sat_minimize(aut, acc='Streett 2', dichotomy=True)
|
min2 = spot.sat_minimize(aut, acc='Streett 2', assume=True)
|
||||||
|
assert min2.num_sets() == 4
|
||||||
|
assert min2.num_states() == 1
|
||||||
|
min2 = spot.sat_minimize(aut, acc='Streett 2', assume=True, param=0)
|
||||||
|
assert min2.num_sets() == 4
|
||||||
|
assert min2.num_states() == 1
|
||||||
|
min2 = spot.sat_minimize(aut, acc='Streett 2', assume=True, param=1)
|
||||||
|
assert min2.num_sets() == 4
|
||||||
|
assert min2.num_states() == 1
|
||||||
|
min2 = spot.sat_minimize(aut, acc='Streett 2', assume=True, param=2)
|
||||||
|
assert min2.num_sets() == 4
|
||||||
|
assert min2.num_states() == 1
|
||||||
|
min2 = spot.sat_minimize(aut, acc='Streett 2', assume=True, param=50)
|
||||||
assert min2.num_sets() == 4
|
assert min2.num_sets() == 4
|
||||||
assert min2.num_states() == 1
|
assert min2.num_states() == 1
|
||||||
min2 = spot.sat_minimize(aut, acc='Streett 2', incr=True)
|
min2 = spot.sat_minimize(aut, acc='Streett 2', incr=True)
|
||||||
|
|
@ -76,6 +103,26 @@ min3 = spot.sat_minimize(aut, acc='Rabin 2',
|
||||||
state_based=True, max_states=5, dichotomy=True)
|
state_based=True, max_states=5, dichotomy=True)
|
||||||
assert min3.num_sets() == 4
|
assert min3.num_sets() == 4
|
||||||
assert min3.num_states() == 3
|
assert min3.num_states() == 3
|
||||||
|
min3 = spot.sat_minimize(aut, acc='Rabin 2',
|
||||||
|
state_based=True, max_states=5, assume=True)
|
||||||
|
assert min3.num_sets() == 4
|
||||||
|
assert min3.num_states() == 3
|
||||||
|
min3 = spot.sat_minimize(aut, acc='Rabin 2',
|
||||||
|
state_based=True, max_states=5, assume=True, param=0)
|
||||||
|
assert min3.num_sets() == 4
|
||||||
|
assert min3.num_states() == 3
|
||||||
|
min3 = spot.sat_minimize(aut, acc='Rabin 2',
|
||||||
|
state_based=True, max_states=5, assume=True, param=1)
|
||||||
|
assert min3.num_sets() == 4
|
||||||
|
assert min3.num_states() == 3
|
||||||
|
min3 = spot.sat_minimize(aut, acc='Rabin 2',
|
||||||
|
state_based=True, max_states=5, assume=True, param=2)
|
||||||
|
assert min3.num_sets() == 4
|
||||||
|
assert min3.num_states() == 3
|
||||||
|
min3 = spot.sat_minimize(aut, acc='Rabin 2',
|
||||||
|
state_based=True, max_states=5, assume=True, param=50)
|
||||||
|
assert min3.num_sets() == 4
|
||||||
|
assert min3.num_states() == 3
|
||||||
min3 = spot.sat_minimize(aut, acc='Rabin 2',
|
min3 = spot.sat_minimize(aut, acc='Rabin 2',
|
||||||
state_based=True, max_states=5, incr=True)
|
state_based=True, max_states=5, incr=True)
|
||||||
assert min3.num_sets() == 4
|
assert min3.num_sets() == 4
|
||||||
|
|
@ -106,6 +153,26 @@ min4 = spot.sat_minimize(aut, acc='parity max odd 3',
|
||||||
colored=True, dichotomy=True)
|
colored=True, dichotomy=True)
|
||||||
assert min4.num_sets() == 3
|
assert min4.num_sets() == 3
|
||||||
assert min4.num_states() == 2
|
assert min4.num_states() == 2
|
||||||
|
min4 = spot.sat_minimize(aut, acc='parity max odd 3',
|
||||||
|
colored=True, assume=True)
|
||||||
|
assert min4.num_sets() == 3
|
||||||
|
assert min4.num_states() == 2
|
||||||
|
min4 = spot.sat_minimize(aut, acc='parity max odd 3',
|
||||||
|
colored=True, assume=True, param=0)
|
||||||
|
assert min4.num_sets() == 3
|
||||||
|
assert min4.num_states() == 2
|
||||||
|
min4 = spot.sat_minimize(aut, acc='parity max odd 3',
|
||||||
|
colored=True, assume=True, param=1)
|
||||||
|
assert min4.num_sets() == 3
|
||||||
|
assert min4.num_states() == 2
|
||||||
|
min4 = spot.sat_minimize(aut, acc='parity max odd 3',
|
||||||
|
colored=True, assume=True, param=2)
|
||||||
|
assert min4.num_sets() == 3
|
||||||
|
assert min4.num_states() == 2
|
||||||
|
min4 = spot.sat_minimize(aut, acc='parity max odd 3',
|
||||||
|
colored=True, assume=True, param=50)
|
||||||
|
assert min4.num_sets() == 3
|
||||||
|
assert min4.num_states() == 2
|
||||||
min4 = spot.sat_minimize(aut, acc='parity max odd 3',
|
min4 = spot.sat_minimize(aut, acc='parity max odd 3',
|
||||||
colored=True, incr=True)
|
colored=True, incr=True)
|
||||||
assert min4.num_sets() == 3
|
assert min4.num_sets() == 3
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue