mCRL2
Loading...
Searching...
No Matches
mcrl2::pbes_system::pbes Class Reference

parameterized boolean equation system More...

#include <pbes.h>

Public Types

typedef pbes_equation equation_type
 

Public Member Functions

 pbes ()=default
 Constructor.
 
 pbes (data::data_specification const &data, const std::vector< pbes_equation > &equations, propositional_variable_instantiation initial_state)
 Constructor.
 
 pbes (data::data_specification const &data, const std::set< data::variable > &global_variables, const std::vector< pbes_equation > &equations, propositional_variable_instantiation initial_state)
 Constructor.
 
const data::data_specificationdata () const
 Returns the data specification.
 
data::data_specificationdata ()
 Returns the data specification.
 
const std::vector< pbes_equation > & equations () const
 Returns the equations.
 
std::vector< pbes_equation > & equations ()
 Returns the equations.
 
const std::set< data::variable > & global_variables () const
 Returns the declared free variables of the pbes.
 
std::set< data::variable > & global_variables ()
 Returns the declared free variables of the pbes.
 
const propositional_variable_instantiationinitial_state () const
 Returns the initial state.
 
propositional_variable_instantiationinitial_state ()
 Returns the initial state.
 
std::set< propositional_variablebinding_variables () const
 Returns the set of binding variables of the pbes. This is the set variables that occur on the left hand side of an equation.
 
std::set< propositional_variable_instantiationoccurring_variable_instantiations () const
 Returns the set of occurring propositional variable instantiations of the pbes. This is the set of variables that occur in the right hand side of an equation.
 
std::set< propositional_variableoccurring_variables () const
 Returns the set of occurring propositional variable declarations of the pbes, i.e. the propositional variable declarations that occur in the right hand side of an equation.
 
bool is_closed () const
 True if the pbes is closed.
 
bool is_well_typed () const
 Checks if the PBES is well typed.
 

Protected Member Functions

std::set< propositional_variablecompute_declared_variables () const
 Returns the predicate variables appearing in the left hand side of an equation.
 
template<typename Iter >
bool is_declared_in (Iter first, Iter last, const propositional_variable_instantiation &v, const data::data_specification &data_spec) const
 Checks if the propositional variable instantiation v appears with the right type in the sequence of propositional variable declarations [first, last).
 

Protected Attributes

data::data_specification m_data
 The data specification.
 
std::vector< pbes_equationm_equations
 The sequence of pbes equations.
 
std::set< data::variablem_global_variables
 The set of global variables.
 
propositional_variable_instantiation m_initial_state
 The initial state.
 

Detailed Description

parameterized boolean equation system

Definition at line 57 of file pbes.h.

Member Typedef Documentation

◆ equation_type

Definition at line 60 of file pbes.h.

Constructor & Destructor Documentation

◆ pbes() [1/3]

mcrl2::pbes_system::pbes::pbes ( )
default

Constructor.

◆ pbes() [2/3]

mcrl2::pbes_system::pbes::pbes ( data::data_specification const &  data,
const std::vector< pbes_equation > &  equations,
propositional_variable_instantiation  initial_state 
)
inline

Constructor.

Parameters
dataA data specification
equationsA sequence of pbes equations
initial_stateA propositional variable instantiation

Definition at line 116 of file pbes.h.

◆ pbes() [3/3]

mcrl2::pbes_system::pbes::pbes ( data::data_specification const &  data,
const std::set< data::variable > &  global_variables,
const std::vector< pbes_equation > &  equations,
propositional_variable_instantiation  initial_state 
)
inline

Constructor.

Parameters
dataA data specification
equationsA sequence of pbes equations
global_variablesA sequence of free variables
initial_stateA propositional variable instantiation

Definition at line 134 of file pbes.h.

Member Function Documentation

◆ binding_variables()

std::set< propositional_variable > mcrl2::pbes_system::pbes::binding_variables ( ) const
inline

Returns the set of binding variables of the pbes. This is the set variables that occur on the left hand side of an equation.

Returns
The set of binding variables of the pbes.

Definition at line 207 of file pbes.h.

◆ compute_declared_variables()

std::set< propositional_variable > mcrl2::pbes_system::pbes::compute_declared_variables ( ) const
inlineprotected

Returns the predicate variables appearing in the left hand side of an equation.

Returns
The predicate variables appearing in the left hand side of an equation.

Definition at line 77 of file pbes.h.

◆ data() [1/2]

data::data_specification & mcrl2::pbes_system::pbes::data ( )
inline

Returns the data specification.

Returns
The data specification of the pbes

Definition at line 157 of file pbes.h.

◆ data() [2/2]

const data::data_specification & mcrl2::pbes_system::pbes::data ( ) const
inline

Returns the data specification.

Returns
The data specification of the pbes

Definition at line 150 of file pbes.h.

◆ equations() [1/2]

std::vector< pbes_equation > & mcrl2::pbes_system::pbes::equations ( )
inline

Returns the equations.

Returns
The equations.

Definition at line 171 of file pbes.h.

◆ equations() [2/2]

const std::vector< pbes_equation > & mcrl2::pbes_system::pbes::equations ( ) const
inline

Returns the equations.

Returns
The equations.

Definition at line 164 of file pbes.h.

◆ global_variables() [1/2]

std::set< data::variable > & mcrl2::pbes_system::pbes::global_variables ( )
inline

Returns the declared free variables of the pbes.

Returns
The declared free variables of the pbes.

Definition at line 185 of file pbes.h.

◆ global_variables() [2/2]

const std::set< data::variable > & mcrl2::pbes_system::pbes::global_variables ( ) const
inline

Returns the declared free variables of the pbes.

Returns
The declared free variables of the pbes.

Definition at line 178 of file pbes.h.

◆ initial_state() [1/2]

propositional_variable_instantiation & mcrl2::pbes_system::pbes::initial_state ( )
inline

Returns the initial state.

Returns
The initial state.

Definition at line 199 of file pbes.h.

◆ initial_state() [2/2]

const propositional_variable_instantiation & mcrl2::pbes_system::pbes::initial_state ( ) const
inline

Returns the initial state.

Returns
The initial state.

Definition at line 192 of file pbes.h.

◆ is_closed()

bool mcrl2::pbes_system::pbes::is_closed ( ) const
inline

True if the pbes is closed.

Returns
Returns true if all occurring variables are binding variables, and the initial state variable is a binding variable.

Definition at line 245 of file pbes.h.

◆ is_declared_in()

template<typename Iter >
bool mcrl2::pbes_system::pbes::is_declared_in ( Iter  first,
Iter  last,
const propositional_variable_instantiation v,
const data::data_specification data_spec 
) const
inlineprotected

Checks if the propositional variable instantiation v appears with the right type in the sequence of propositional variable declarations [first, last).

Parameters
firstStart of a sequence of propositional variable declarations
lastEnd of a sequence of propositional variable declarations
vA propositional variable instantation
data_specA data specification.
Returns
True if the type of v is matched correctly
Parameters
vA propositional variable instantiation

Definition at line 96 of file pbes.h.

◆ is_well_typed()

bool mcrl2::pbes_system::pbes::is_well_typed ( ) const
inline

Checks if the PBES is well typed.

Returns
True if
  • the sorts occurring in the free variables of the equations are declared in the data specification
  • the sorts occurring in the binding variable parameters are declared in the data specification
  • the sorts occurring in the quantifier variables of the equations are declared in the data specification
  • the binding variables of the equations have unique names (well formedness)
  • the global variables occurring in the equations are declared in global_variables()
  • the global variables occurring in the equations with the same name are identical
  • the declared global variables and the quantifier variables occurring in the equations have different names
  • the predicate variable instantiations occurring in the equations match with their declarations
  • the predicate variable instantiation occurring in the initial state matches with the declaration
  • the data specification is well typed
N.B. Conflicts between the types of instantiations and declarations of binding variables are not checked!

Definition at line 267 of file pbes.h.

◆ occurring_variable_instantiations()

std::set< propositional_variable_instantiation > mcrl2::pbes_system::pbes::occurring_variable_instantiations ( ) const

Returns the set of occurring propositional variable instantiations of the pbes. This is the set of variables that occur in the right hand side of an equation.

Returns
The occurring propositional variable instantiations of the pbes

Definition at line 108 of file pbes.cpp.

◆ occurring_variables()

std::set< propositional_variable > mcrl2::pbes_system::pbes::occurring_variables ( ) const
inline

Returns the set of occurring propositional variable declarations of the pbes, i.e. the propositional variable declarations that occur in the right hand side of an equation.

Returns
The occurring propositional variable declarations of the pbes

Definition at line 227 of file pbes.h.

Member Data Documentation

◆ m_data

data::data_specification mcrl2::pbes_system::pbes::m_data
protected

The data specification.

Definition at line 64 of file pbes.h.

◆ m_equations

std::vector<pbes_equation> mcrl2::pbes_system::pbes::m_equations
protected

The sequence of pbes equations.

Definition at line 67 of file pbes.h.

◆ m_global_variables

std::set<data::variable> mcrl2::pbes_system::pbes::m_global_variables
protected

The set of global variables.

Definition at line 70 of file pbes.h.

◆ m_initial_state

propositional_variable_instantiation mcrl2::pbes_system::pbes::m_initial_state
protected

The initial state.

Definition at line 73 of file pbes.h.


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