Track finite formulae.
I.e., SERE without star, or LTL formula using only X and Boolean operators. * src/ltlast/formula.hh, src/ltlast/formula.cc: Add a bit for tracking finite formulas. * src/ltlast/atomic_prop.cc, src/ltlast/automatop.cc, src/ltlast/bunop.cc, src/ltlast/constant.cc, src/ltlast/formula.cc: Adjust. * src/ltlast/unop.cc, src/ltlast/binop.cc: Adjust and use that bit to refine the computation of some LTL classes. * src/ltltest/kind.test: New tests.
This commit is contained in:
parent
df760a4597
commit
fb386209aa
9 changed files with 84 additions and 31 deletions
|
|
@ -152,30 +152,37 @@ namespace spot
|
|||
return is.sugar_free_ltl;
|
||||
}
|
||||
|
||||
/// Whether the formula use only LTL operators.
|
||||
/// Whether the formula uses only LTL operators.
|
||||
bool is_ltl_formula() const
|
||||
{
|
||||
return is.ltl_formula;
|
||||
}
|
||||
|
||||
/// Whether the formula use only ELTL operators.
|
||||
/// Whether the formula uses only ELTL operators.
|
||||
bool is_eltl_formula() const
|
||||
{
|
||||
return is.eltl_formula;
|
||||
}
|
||||
|
||||
/// Whether the formula use only PSL operators.
|
||||
/// Whether the formula uses only PSL operators.
|
||||
bool is_psl_formula() const
|
||||
{
|
||||
return is.psl_formula;
|
||||
}
|
||||
|
||||
/// Whether the formula use only SERE operators.
|
||||
/// Whether the formula uses only SERE operators.
|
||||
bool is_sere_formula() const
|
||||
{
|
||||
return is.sere_formula;
|
||||
}
|
||||
|
||||
/// Whether a SERE describes a finite language, or an LTL
|
||||
/// formula uses no temporal operator but X.
|
||||
bool is_finite() const
|
||||
{
|
||||
return is.finite;
|
||||
}
|
||||
|
||||
/// \brief Whether the formula is purely eventual.
|
||||
///
|
||||
/// Pure eventuality formulae are defined in
|
||||
|
|
@ -316,6 +323,7 @@ namespace spot
|
|||
bool eltl_formula:1; // Only ELTL operators.
|
||||
bool psl_formula:1; // Only PSL operators.
|
||||
bool sere_formula:1; // Only SERE operators.
|
||||
bool finite:1; // Finite SERE formulae, or Bool+X forms.
|
||||
bool eventual:1; // Purely eventual formula.
|
||||
bool universal:1; // Purely universal formula.
|
||||
bool syntactic_safety:1; // Syntactic Safety Property.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue