12#ifndef MCRL2_PBES_BISIMULATION_TYPE_H
13#define MCRL2_PBES_BISIMULATION_TYPE_H
15#include "mcrl2/utilities/exception.h"
18namespace mcrl2::pbes_system {
33 if (type ==
"strong-bisim")
37 else if (type ==
"weak-bisim")
41 else if (type ==
"branching-bisim")
45 else if (type ==
"branching-sim")
49 throw mcrl2::
runtime_error(std::string(
"unknown bisimulation type ") + type +
"!");
60 return "strong-bisim";
64 return "branching-bisim";
66 return "branching-sim";
68 throw mcrl2::runtime_error(
"unknown type");
78 return "strong bisimulation";
80 return "weak bisimulation";
82 return "branching bisimulation";
84 return "branching simulation equivalence";
86 throw mcrl2::runtime_error(
"unknown type");
96 t = parse_bisimulation_type(s);
100 is.setstate(
std::ios_base::failbit);
108 os << print_bisimulation_type(t);
Standard exception class for reporting runtime errors.
std::istream & operator>>(std::istream &is, bisimulation_type &t)
std::string print_bisimulation_type(const bisimulation_type t)
Returns a description of a bisimulation type.
bisimulation_type
An enumerated type for the available bisimulation types.
std::string description(const bisimulation_type t)
Returns a description of a bisimulation type.
bisimulation_type parse_bisimulation_type(const std::string &type)
Returns the string corresponding to a bisimulation type.
std::size_t operator()(const std::vector< X > &v) const