* src/ltlvisit/tostring.hh (to_spin_string): New function.

Convert a formula into a string parsable by Spin.
* src/tgbaalgos/neverclaim.hh, src/tgbaalgos/neverclaim.cc: New files.
Print the never claim in Spin format of a degeneralized TGBA.
* src/tgbaalgos/Makefile.am: Add them.
* src/tgbatest/ltl2tgba.cc: Add the option -N which outputs the
never claim in Spin format of a degeneralized TGBA.
* src/tgbatest/ltl2neverclaim.test: New file.
* src/tgbatest/Makefile.am: Add it.
This commit is contained in:
Alexandre Duret-Lutz 2004-04-21 15:18:07 +00:00
parent 4d73490a49
commit 8d8af2e53a
11 changed files with 437 additions and 5 deletions

View file

@ -37,6 +37,7 @@
#include "tgbaalgos/gtec/ce.hh"
#include "tgbaparse/public.hh"
#include "tgbaalgos/dupexp.hh"
#include "tgbaalgos/neverclaim.hh"
void
syntax(char* prog)
@ -69,6 +70,8 @@ syntax(char* prog)
<< std::endl
<< " -n same as -m, but display more counter-examples"
<< std::endl
<< " -N display the never clain for Spin "
<< "(implies -D)" << std::endl
<< " -r display the relation BDD, not the reachability graph"
<< std::endl
<< " -R same as -r, but as a set" << std::endl
@ -186,6 +189,11 @@ main(int argc, char** argv)
output = -1;
magic_many = true;
}
else if (!strcmp(argv[formula_index], "-N"))
{
degeneralize_opt = true;
output = 8;
}
else if (!strcmp(argv[formula_index], "-r"))
{
output = 1;
@ -295,7 +303,6 @@ main(int argc, char** argv)
fm_symb_merge_opt);
else
to_free = a = concrete = spot::ltl_to_tgba_lacim(f, dict);
spot::ltl::destroy(f);
}
spot::tgba_tba_proxy* degeneralized = 0;
@ -354,6 +361,9 @@ main(int argc, char** argv)
case 7:
spot::nonacceptant_lbtt_reachable(std::cout, a);
break;
case 8:
spot::never_claim_reachable(std::cout, degeneralized, f);
break;
default:
assert(!"unknown output option");
}
@ -414,6 +424,8 @@ main(int argc, char** argv)
break;
}
if (f)
spot::ltl::destroy(f);
if (expl)
delete expl;
if (degeneralize_opt)