spot
1.99.3
|
An LTL formula. More...
#include <ltlast/formula.hh>
Classes | |
struct | ltl_prop |
Public Types | |
enum | opkind { Constant, AtomicProp, UnOp, BinOp, MultOp, BUnOp } |
Kind of a sub-formula. More... | |
Public Member Functions | |
virtual void | accept (visitor &v) const =0 |
Entry point for spot::ltl::visitor instances. More... | |
const formula * | clone () const |
clone this node More... | |
void | destroy () const |
Release this node. More... | |
virtual std::string | dump () const =0 |
Return a canonic representation of the formula. More... | |
opkind | kind () const |
Return the kind of the top-level operator. More... | |
bool | is_boolean () const |
Whether the formula use only boolean operators. More... | |
bool | is_sugar_free_boolean () const |
Whether the formula use only AND, OR, and NOT operators. More... | |
bool | is_in_nenoform () const |
Whether the formula is in negative normal form. More... | |
bool | is_syntactic_stutter_invariant () const |
Whether the formula is syntactically stutter_invariant. More... | |
bool | is_sugar_free_ltl () const |
Whether the formula avoids the F and G operators. More... | |
bool | is_ltl_formula () const |
Whether the formula uses only LTL operators. More... | |
bool | is_psl_formula () const |
Whether the formula uses only PSL operators. More... | |
bool | is_sere_formula () const |
Whether the formula uses only SERE operators. More... | |
bool | is_finite () const |
bool | is_eventual () const |
Whether the formula is purely eventual. More... | |
bool | is_universal () const |
Whether a formula is purely universal. More... | |
bool | is_syntactic_safety () const |
Whether a PSL/LTL formula is syntactic safety property. More... | |
bool | is_syntactic_guarantee () const |
Whether a PSL/LTL formula is syntactic guarantee property. More... | |
bool | is_syntactic_obligation () const |
Whether a PSL/LTL formula is syntactic obligation property. More... | |
bool | is_syntactic_recurrence () const |
Whether a PSL/LTL formula is syntactic recurrence property. More... | |
bool | is_syntactic_persistence () const |
Whether a PSL/LTL formula is syntactic persistence property. More... | |
bool | is_marked () const |
Whether the formula has an occurrence of EConcatMarked. More... | |
bool | accepts_eword () const |
Whether the formula accepts [*0]. More... | |
bool | has_lbt_atomic_props () const |
bool | has_spin_atomic_props () const |
unsigned | get_props () const |
The properties as a field of bits. For internal use. More... | |
size_t | hash () const |
Return a hash key for the formula. More... | |
Protected Member Functions | |
formula (opkind k) | |
Protected Attributes | |
size_t | serial_ |
The hash key of this formula. More... | |
unsigned | refs_ = 0 |
opkind | kind_ |
union { | |
unsigned props | |
ltl_prop is | |
}; | |
Static Protected Attributes | |
static size_t | max_serial |
Number of formulae created so far. More... | |
An LTL formula.
The only way you can work with a formula is to build a spot::ltl::visitor or spot::ltl::const_visitor.
|
pure virtual |
Entry point for spot::ltl::visitor instances.
Implemented in spot::ltl::multop, spot::ltl::binop, spot::ltl::bunop, spot::ltl::unop, spot::ltl::atomic_prop, and spot::ltl::constant.
|
inline |
Whether the formula accepts [*0].
|
inline |
clone this node
This increments the reference counter of the node.
|
inline |
Release this node.
|
pure virtual |
Return a canonic representation of the formula.
Implemented in spot::ltl::multop, spot::ltl::binop, spot::ltl::bunop, spot::ltl::unop, spot::ltl::atomic_prop, and spot::ltl::constant.
|
inline |
The properties as a field of bits. For internal use.
|
inline |
Return a hash key for the formula.
|
inline |
Whether the formula use only boolean operators.
|
inline |
Whether the formula is purely eventual.
Pure eventuality formulae are defined in
@InProceedings{ etessami.00.concur, author = {Kousha Etessami and Gerard J. Holzmann}, title = {Optimizing {B\"u}chi Automata}, booktitle = {Proceedings of the 11th International Conference on Concurrency Theory (Concur'2000)}, pages = {153--167}, year = {2000}, editor = {C. Palamidessi}, volume = {1877}, series = {Lecture Notes in Computer Science}, publisher = {Springer-Verlag} }
A word that satisfies a pure eventuality can be prefixed by anything and still satisfies the formula.
|
inline |
Whether a SERE describes a finite language, or an LTL formula uses no temporal operator but X.
|
inline |
Whether the formula is in negative normal form.
A formula is in negative normal form if the not operators occur only in front of atomic propositions.
|
inline |
Whether the formula uses only LTL operators.
|
inline |
Whether the formula has an occurrence of EConcatMarked.
|
inline |
Whether the formula uses only PSL operators.
|
inline |
Whether the formula uses only SERE operators.
|
inline |
Whether the formula use only AND, OR, and NOT operators.
|
inline |
Whether the formula avoids the F and G operators.
|
inline |
Whether a PSL/LTL formula is syntactic guarantee property.
|
inline |
Whether a PSL/LTL formula is syntactic obligation property.
|
inline |
Whether a PSL/LTL formula is syntactic persistence property.
|
inline |
Whether a PSL/LTL formula is syntactic recurrence property.
|
inline |
Whether a PSL/LTL formula is syntactic safety property.
|
inline |
Whether the formula is syntactically stutter_invariant.
|
inline |
Whether a formula is purely universal.
Purely universal formulae are defined in
@InProceedings{ etessami.00.concur, author = {Kousha Etessami and Gerard J. Holzmann}, title = {Optimizing {B\"u}chi Automata}, booktitle = {Proceedings of the 11th International Conference on Concurrency Theory (Concur'2000)}, pages = {153--167}, year = {2000}, editor = {C. Palamidessi}, volume = {1877}, series = {Lecture Notes in Computer Science}, publisher = {Springer-Verlag} }
Any (non-empty) suffix of a word that satisfies a purely universal formula also satisfies the formula.
|
inline |
Return the kind of the top-level operator.
|
staticprotected |
Number of formulae created so far.
|
protected |
The hash key of this formula.