spot  1.99.3
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
Public Types | Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
spot::ltl::atomic_prop Class Referencefinal

Atomic propositions. More...

#include <ltlast/atomic_prop.hh>

Inheritance diagram for spot::ltl::atomic_prop:
Inheritance graph
Collaboration diagram for spot::ltl::atomic_prop:
Collaboration graph

Public Types

enum  opkind {
  Constant, AtomicProp, UnOp, BinOp,
  MultOp, BUnOp
}
 Kind of a sub-formula. More...
 

Public Member Functions

virtual void accept (visitor &visitor) const override
 Entry point for spot::ltl::visitor instances. More...
 
const std::string & name () const
 Get the name of the atomic proposition. More...
 
environmentenv () const
 Get the environment of the atomic proposition. More...
 
virtual std::string dump () const override
 Return a canonic representation of the atomic proposition. More...
 
const formulaclone () const
 clone this node More...
 
void destroy () const
 Release this node. 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...
 

Static Public Member Functions

static const atomic_propinstance (const std::string &name, environment &env)
 
static unsigned instance_count ()
 Number of instantiated atomic propositions. For debugging. More...
 
static std::ostream & dump_instances (std::ostream &os)
 List all instances of atomic propositions. For debugging. More...
 

Protected Types

typedef std::pair< std::string,
environment * > 
key
 
typedef std::map< key, const
atomic_prop * > 
map
 

Protected Member Functions

 atomic_prop (const std::string &name, environment &env)
 

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 map instances
 
static size_t max_serial
 Number of formulae created so far. More...
 

Detailed Description

Atomic propositions.

Member Function Documentation

virtual void spot::ltl::atomic_prop::accept ( visitor v) const
overridevirtual

Entry point for spot::ltl::visitor instances.

Implements spot::ltl::formula.

bool spot::ltl::formula::accepts_eword ( ) const
inlineinherited

Whether the formula accepts [*0].

const formula* spot::ltl::formula::clone ( ) const
inlineinherited

clone this node

This increments the reference counter of the node.

void spot::ltl::formula::destroy ( ) const
inlineinherited

Release this node.

virtual std::string spot::ltl::atomic_prop::dump ( ) const
overridevirtual

Return a canonic representation of the atomic proposition.

Implements spot::ltl::formula.

static std::ostream& spot::ltl::atomic_prop::dump_instances ( std::ostream &  os)
static

List all instances of atomic propositions. For debugging.

environment& spot::ltl::atomic_prop::env ( ) const
inline

Get the environment of the atomic proposition.

unsigned spot::ltl::formula::get_props ( ) const
inlineinherited

The properties as a field of bits. For internal use.

size_t spot::ltl::formula::hash ( ) const
inlineinherited

Return a hash key for the formula.

static const atomic_prop* spot::ltl::atomic_prop::instance ( const std::string &  name,
environment env 
)
static

Build an atomic proposition with name name in environment env.

static unsigned spot::ltl::atomic_prop::instance_count ( )
static

Number of instantiated atomic propositions. For debugging.

bool spot::ltl::formula::is_boolean ( ) const
inlineinherited

Whether the formula use only boolean operators.

bool spot::ltl::formula::is_eventual ( ) const
inlineinherited

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.

bool spot::ltl::formula::is_finite ( ) const
inlineinherited

Whether a SERE describes a finite language, or an LTL formula uses no temporal operator but X.

bool spot::ltl::formula::is_in_nenoform ( ) const
inlineinherited

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.

bool spot::ltl::formula::is_ltl_formula ( ) const
inlineinherited

Whether the formula uses only LTL operators.

bool spot::ltl::formula::is_marked ( ) const
inlineinherited

Whether the formula has an occurrence of EConcatMarked.

bool spot::ltl::formula::is_psl_formula ( ) const
inlineinherited

Whether the formula uses only PSL operators.

bool spot::ltl::formula::is_sere_formula ( ) const
inlineinherited

Whether the formula uses only SERE operators.

bool spot::ltl::formula::is_sugar_free_boolean ( ) const
inlineinherited

Whether the formula use only AND, OR, and NOT operators.

bool spot::ltl::formula::is_sugar_free_ltl ( ) const
inlineinherited

Whether the formula avoids the F and G operators.

bool spot::ltl::formula::is_syntactic_guarantee ( ) const
inlineinherited

Whether a PSL/LTL formula is syntactic guarantee property.

bool spot::ltl::formula::is_syntactic_obligation ( ) const
inlineinherited

Whether a PSL/LTL formula is syntactic obligation property.

bool spot::ltl::formula::is_syntactic_persistence ( ) const
inlineinherited

Whether a PSL/LTL formula is syntactic persistence property.

bool spot::ltl::formula::is_syntactic_recurrence ( ) const
inlineinherited

Whether a PSL/LTL formula is syntactic recurrence property.

bool spot::ltl::formula::is_syntactic_safety ( ) const
inlineinherited

Whether a PSL/LTL formula is syntactic safety property.

bool spot::ltl::formula::is_syntactic_stutter_invariant ( ) const
inlineinherited

Whether the formula is syntactically stutter_invariant.

bool spot::ltl::formula::is_universal ( ) const
inlineinherited

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.

opkind spot::ltl::formula::kind ( ) const
inlineinherited

Return the kind of the top-level operator.

const std::string& spot::ltl::atomic_prop::name ( ) const
inline

Get the name of the atomic proposition.

Member Data Documentation

size_t spot::ltl::formula::max_serial
staticprotectedinherited

Number of formulae created so far.

size_t spot::ltl::formula::serial_
protectedinherited

The hash key of this formula.


The documentation for this class was generated from the following file:

Please direct any question, comment, or bug report to the Spot mailing list at spot@lrde.epita.fr.
Generated on Wed Aug 26 2015 08:42:38 for spot by doxygen 1.8.8