ltlfilt: Fix handling --universal, --eventual, and --stutter-invariant.
* src/bin/ltlfilt.cc: Handle --universal and --eventual. Match only LTL formulas with --stutter-invariant. * src/ltltest/ltlfilt.test: New file. * src/ltltest/Makefile.am (TESTS): Add it. * NEWS: Mention these bug fixes.
This commit is contained in:
parent
eed7e2df8f
commit
2cab8197e5
4 changed files with 149 additions and 1 deletions
|
|
@ -273,6 +273,9 @@ parse_opt(int key, char* arg, struct argp_state*)
|
|||
equivalent_to = parse_formula_arg(arg);
|
||||
break;
|
||||
}
|
||||
case OPT_EVENTUAL:
|
||||
eventual = true;
|
||||
break;
|
||||
case OPT_GUARANTEE:
|
||||
guarantee = obligation = true;
|
||||
break;
|
||||
|
|
@ -349,6 +352,9 @@ parse_opt(int key, char* arg, struct argp_state*)
|
|||
case OPT_SYNTACTIC_PERSISTENCE:
|
||||
syntactic_persistence = true;
|
||||
break;
|
||||
case OPT_UNIVERSAL:
|
||||
universal = true;
|
||||
break;
|
||||
default:
|
||||
return ARGP_ERR_UNKNOWN;
|
||||
}
|
||||
|
|
@ -495,7 +501,8 @@ namespace
|
|||
matched &= !implied_by || simpl.implication(implied_by, f);
|
||||
matched &= !imply || simpl.implication(f, imply);
|
||||
matched &= !equivalent_to || simpl.are_equivalent(f, equivalent_to);
|
||||
matched &= !stutter_insensitive || is_stutter_insensitive(f);
|
||||
matched &= !stutter_insensitive || (f->is_ltl_formula()
|
||||
&& is_stutter_insensitive(f));
|
||||
|
||||
// Match obligations and subclasses using WDBA minimization.
|
||||
// Because this is costly, we compute it later, so that we don't
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue