12#ifndef MCRL2_LPS_SPECIFICATION_H
13#define MCRL2_LPS_SPECIFICATION_H
31template <
typename LinearProcess,
typename InitialProcessExpression>
class specification_base;
49template <
typename LinearProcess,
typename InitialProcessExpression>
88 const LinearProcess& lps,
97 assert(lps.process_parameters().size()==
initial_process.expressions().size());
202std::string
pp(
const specification& x);
227template <
typename LinearProcess,
typename InitialProcessExpression>
250 return !(spec1 == spec2);
const function_symbol & function() const
Returns the function symbol belonging to an aterm.
void add_context_sorts(const Container &c, typename atermpp::enable_if_container< Container >::type *=nullptr)
Adds the sorts in c to the context sorts.
const std::set< data::variable > & global_variables() const
Returns the declared free variables of the LPS.
LinearProcess & process()
Returns a reference to the linear process of the specification.
process::action_label_list m_action_labels
The action specification of the specification.
specification_base(const data::data_specification &data, const process::action_label_list &action_labels, const std::set< data::variable > &global_variables, const LinearProcess &lps, const InitialProcessExpression &initial_process)
Constructor.
const process::action_label_list & action_labels() const
Returns a sequence of action labels. This sequence contains all action labels occurring in the specif...
const InitialProcessExpression & initial_process() const
Returns the initial process.
const LinearProcess & process() const
Returns the linear process of the specification.
process::action_label_list & action_labels()
Returns a sequence of action labels. This sequence contains all action labels occurring in the specif...
data::data_specification & data()
Returns a reference to the data specification.
const data::data_specification & data() const
Returns the data specification.
std::set< data::variable > m_global_variables
The set of global variables.
LinearProcess process_type
The process type.
InitialProcessExpression & initial_process()
Returns a reference to the initial process.
InitialProcessExpression initial_process_type
The initial process type.
LinearProcess m_process
The linear process of the specification.
std::set< data::variable > & global_variables()
Returns the declared free variables of the LPS.
specification_base()
Constructor.
data::data_specification m_data
The data specification of the specification.
InitialProcessExpression m_initial_process
The initial state of the specification.
Linear process specification.
specification()=default
Constructor.
specification_base< linear_process, process_initializer > super
specification(const data::data_specification &data, const process::action_label_list &action_labels, const std::set< data::variable > &global_variables, const linear_process &lps, const process_initializer &initial_process)
Constructor.
add your file description here.
The class linear_process.
const atermpp::function_symbol & function_symbol_GlobVarSpec()
const atermpp::function_symbol & function_symbol_LinProcSpec()
const atermpp::function_symbol & function_symbol_ActSpec()
atermpp::aterm data_specification_to_aterm(const data_specification &s)
void find_function_symbols(const T &x, OutputIterator o)
std::string pp_with_summand_numbers(const specification &x)
void complete_data_specification(specification &spec)
Adds all sorts that appear in the process of l to the data specification of l.
bool is_specification(const atermpp::aterm &x)
Test for a specification expression.
bool check_well_typedness(const linear_process &x)
std::string pp(const action_summand &x)
void find_sort_expressions(const T &x, OutputIterator o)
atermpp::aterm specification_to_aterm(const specification_base< LinearProcess, InitialProcessExpression > &spec)
Conversion to aterm.
std::ostream & operator<<(std::ostream &out, const action_summand &x)
lps::multi_action normalize_sorts(const multi_action &x, const data::sort_specification &sortspec)
std::set< data::variable > find_free_variables(const lps::deadlock &x)
bool operator!=(const specification &spec1, const specification &spec2)
Inequality operator.
bool operator==(const action_summand &x, const action_summand &y)
Equality operator of action summands.
void find_identifiers(const T &x, OutputIterator o)
atermpp::aterm linear_process_to_aterm(const linear_process_base< ActionSummand > &p)
Conversion to aterm.
std::set< data::variable > find_all_variables(const lps::deadlock &x)
void find_action_labels(const T &x, OutputIterator o)
Returns all action labels that occur in an object.
A class that takes a linear process specification and checks all tau-summands of that LPS for conflue...
The class process_initializer.
static const atermpp::function_symbol LinProcSpec