* src/ltlvisit/basereduc.cc (spot): 80 columns.
* src/ltlvisit/reducform.cc (spot), src/ltltest/inf.cc, src/ltltest/reduc.cc (main), src/ltlvisit/reducform.hh, src/tgbatest/ltl2tgba.cc (main): More option. * src/ltltest/inf.test: More test.
This commit is contained in:
parent
41589e2818
commit
788ed772c2
8 changed files with 458 additions and 349 deletions
|
|
@ -41,21 +41,22 @@ syntax(char* prog)
|
|||
int
|
||||
main(int argc, char** argv)
|
||||
{
|
||||
if (argc < 3)
|
||||
if (argc < 4)
|
||||
syntax(argv[0]);
|
||||
|
||||
int opt = atoi(argv[1]);
|
||||
|
||||
spot::ltl::parse_error_list p1;
|
||||
spot::ltl::formula* f1 = spot::ltl::parse(argv[1], p1);
|
||||
spot::ltl::formula* f1 = spot::ltl::parse(argv[2], p1);
|
||||
spot::ltl::formula* f2 = NULL;
|
||||
|
||||
if (spot::ltl::format_parse_errors(std::cerr, argv[1], p1))
|
||||
if (spot::ltl::format_parse_errors(std::cerr, argv[2], p1))
|
||||
return 2;
|
||||
|
||||
spot::ltl::parse_error_list p2;
|
||||
f2 = spot::ltl::parse(argv[2], p2);
|
||||
f2 = spot::ltl::parse(argv[3], p2);
|
||||
|
||||
if (spot::ltl::format_parse_errors(std::cerr, argv[2], p2))
|
||||
if (spot::ltl::format_parse_errors(std::cerr, argv[3], p2))
|
||||
return 2;
|
||||
|
||||
std::string f1s = spot::ltl::to_string(f1);
|
||||
|
|
@ -63,28 +64,36 @@ main(int argc, char** argv)
|
|||
|
||||
int exit_return = 0;
|
||||
|
||||
std::cout << "Test f1 < f2" << std::endl;
|
||||
if (spot::ltl::inf_form(f1, f2))
|
||||
switch (opt)
|
||||
{
|
||||
std::cout << f1s << " < " << f2s << std::endl;
|
||||
exit_return = 1;
|
||||
}
|
||||
case 0:
|
||||
std::cout << "Test f1 < f2" << std::endl;
|
||||
if (spot::ltl::inf_form(f1, f2))
|
||||
{
|
||||
std::cout << f1s << " < " << f2s << std::endl;
|
||||
exit_return = 1;
|
||||
}
|
||||
break;
|
||||
|
||||
/*
|
||||
std::cout << "Test !f1 < f2" << std::endl;
|
||||
if (spot::ltl::infneg_form(f1, f2, 0))
|
||||
{
|
||||
std::cout << "!(" << f1s << ") < " << f2s << std::endl;
|
||||
exit_return = 2;
|
||||
}
|
||||
case 1:
|
||||
std::cout << "Test !f1 < f2" << std::endl;
|
||||
if (spot::ltl::infneg_form(f1, f2, 0))
|
||||
{
|
||||
std::cout << "!(" << f1s << ") < " << f2s << std::endl;
|
||||
exit_return = 1;
|
||||
}
|
||||
break;
|
||||
|
||||
std::cout << "Test f1 < !f2" << std::endl;
|
||||
if (spot::ltl::infneg_form(f1, f2, 1))
|
||||
{
|
||||
std::cout << f1s << " < !(" << f2s << ")" << std::endl;
|
||||
exit_return = 3;
|
||||
case 2:
|
||||
std::cout << "Test f1 < !f2" << std::endl;
|
||||
if (spot::ltl::infneg_form(f1, f2, 1))
|
||||
{
|
||||
std::cout << f1s << " < !(" << f2s << ")" << std::endl;
|
||||
exit_return = 1;
|
||||
}
|
||||
break;
|
||||
default: break;
|
||||
}
|
||||
*/
|
||||
|
||||
spot::ltl::dump(std::cout, f1); std::cout << std::endl;
|
||||
spot::ltl::dump(std::cout, f2); std::cout << std::endl;
|
||||
|
|
|
|||
|
|
@ -26,67 +26,67 @@
|
|||
. ./defs || exit 1
|
||||
|
||||
#
|
||||
run 1 ./inf 'Xa' 'X(b U a)'
|
||||
run 1 ./inf 'XXa' 'XX(b U a)'
|
||||
run 1 ./inf 0 'Xa' 'X(b U a)'
|
||||
run 1 ./inf 0 'XXa' 'XX(b U a)'
|
||||
|
||||
run 1 ./inf '(e R f)' '(g U f)'
|
||||
run 1 ./inf '( X(a + b))' '( X((a + b)+(c)+(d)))'
|
||||
run 1 ./inf '( X(a + b)) U (e R f)' '( X((a + b)+(c)+(d))) U (g U f)'
|
||||
run 1 ./inf 0 '(e R f)' '(g U f)'
|
||||
run 1 ./inf 0 '( X(a + b))' '( X((a + b)+(c)+(d)))'
|
||||
run 1 ./inf 0 '( X(a + b)) U (e R f)' '( X((a + b)+(c)+(d))) U (g U f)'
|
||||
|
||||
run 0 ./inf 'Xa' 'XX(b U a)'
|
||||
run 0 ./inf 'XXa' 'X(b U a)'
|
||||
run 0 ./inf 0 'Xa' 'XX(b U a)'
|
||||
run 0 ./inf 0 'XXa' 'X(b U a)'
|
||||
|
||||
run 0 ./inf '( X(a + b))' '( X(X(a + b)+(c)+(d)))'
|
||||
run 0 ./inf '( X(a + b)) U (e R f)' '( X(X(a + b)+(c)+(d))) U (g U f)'
|
||||
run 0 ./inf 0 '( X(a + b))' '( X(X(a + b)+(c)+(d)))'
|
||||
run 0 ./inf 0 '( X(a + b)) U (e R f)' '( X(X(a + b)+(c)+(d))) U (g U f)'
|
||||
|
||||
run 0 ./inf 'a' 'b'
|
||||
run 0 ./inf 'a' 'b + c'
|
||||
run 0 ./inf 'a + b' 'a'
|
||||
run 0 ./inf 'a' 'a * c'
|
||||
run 0 ./inf 'a * b' 'c'
|
||||
run 0 ./inf 'a' 'a U b'
|
||||
run 0 ./inf 'a' 'a R b'
|
||||
run 0 ./inf 'a R b' 'a'
|
||||
run 0 ./inf 0 'a' 'b'
|
||||
run 0 ./inf 0 'a' 'b + c'
|
||||
run 0 ./inf 0 'a + b' 'a'
|
||||
run 0 ./inf 0 'a' 'a * c'
|
||||
run 0 ./inf 0 'a * b' 'c'
|
||||
run 0 ./inf 0 'a' 'a U b'
|
||||
run 0 ./inf 0 'a' 'a R b'
|
||||
run 0 ./inf 0 'a R b' 'a'
|
||||
|
||||
run 1 ./inf '1' '1'
|
||||
run 1 ./inf '0' '0'
|
||||
run 1 ./inf 0 '1' '1'
|
||||
run 1 ./inf 0 '0' '0'
|
||||
|
||||
run 1 ./inf 'a' '1'
|
||||
run 1 ./inf 'a' 'a'
|
||||
run 1 ./inf 0 'a' '1'
|
||||
run 1 ./inf 0 'a' 'a'
|
||||
|
||||
run 1 ./inf 'a' 'a * 1'
|
||||
run 1 ./inf 0 'a' 'a * 1'
|
||||
|
||||
run 1 ./inf 'a * b' 'b'
|
||||
run 1 ./inf 'a * b' 'a'
|
||||
run 1 ./inf 0 'a * b' 'b'
|
||||
run 1 ./inf 0 'a * b' 'a'
|
||||
|
||||
run 1 ./inf 'a' 'a + b'
|
||||
run 1 ./inf 'b' 'a + b'
|
||||
run 1 ./inf 0 'a' 'a + b'
|
||||
run 1 ./inf 0 'b' 'a + b'
|
||||
|
||||
run 1 ./inf 'a + b' '1'
|
||||
run 1 ./inf 0 'a + b' '1'
|
||||
|
||||
run 1 ./inf 'a' 'b U a'
|
||||
run 1 ./inf 'a' 'b U 1'
|
||||
run 1 ./inf 'a U b' '1'
|
||||
run 1 ./inf 0 'a' 'b U a'
|
||||
run 1 ./inf 0 'a' 'b U 1'
|
||||
run 1 ./inf 0 'a U b' '1'
|
||||
|
||||
run 1 ./inf 'a' '1 R a'
|
||||
run 1 ./inf 'a' 'a R 1'
|
||||
run 1 ./inf 'a R b' 'b'
|
||||
run 1 ./inf 'a R b' '1'
|
||||
run 1 ./inf 0 'a' '1 R a'
|
||||
run 1 ./inf 0 'a' 'a R 1'
|
||||
run 1 ./inf 0 'a R b' 'b'
|
||||
run 1 ./inf 0 'a R b' '1'
|
||||
|
||||
run 1 ./inf 'Xa' 'X(b U a)'
|
||||
run 1 ./inf 'X(a R b)' 'Xb'
|
||||
run 1 ./inf 0 'Xa' 'X(b U a)'
|
||||
run 1 ./inf 0 'X(a R b)' 'Xb'
|
||||
|
||||
run 1 ./inf 'a U b' '1 U b'
|
||||
run 1 ./inf 'a R b' '1 R b'
|
||||
run 1 ./inf 0 'a U b' '1 U b'
|
||||
run 1 ./inf 0 'a R b' '1 R b'
|
||||
|
||||
run 1 ./inf 'b * (a U b)' 'a U b'
|
||||
run 1 ./inf 'a U b' 'c + (a U b)'
|
||||
run 1 ./inf 0 'b * (a U b)' 'a U b'
|
||||
run 1 ./inf 0 'a U b' 'c + (a U b)'
|
||||
|
||||
exit 0
|
||||
#
|
||||
|
||||
#run 1 ./inf '(a U b) U ((a U b) U (a U b))' 'a U b'
|
||||
#run 1 ./inf '(a U b) && (a U b)' 'a U b'
|
||||
#run 1 ./inf 0 '(a U b) U ((a U b) U (a U b))' 'a U b'
|
||||
#run 1 ./inf 0 '(a U b) && (a U b)' 'a U b'
|
||||
|
||||
'X1' '1'
|
||||
'a U 0' '0'
|
||||
|
|
|
|||
|
|
@ -59,6 +59,15 @@ main(int argc, char** argv)
|
|||
case 3:
|
||||
o = spot::ltl::BRI;
|
||||
break;
|
||||
case 4:
|
||||
o = spot::ltl::InfBase;
|
||||
break;
|
||||
case 5:
|
||||
o = spot::ltl::EventualUniversalBase;
|
||||
break;
|
||||
case 6:
|
||||
o = spot::ltl::InfEventualUniversal;
|
||||
break;
|
||||
default:
|
||||
return 2;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue