spot 2.11.1.dev
isdet.hh
1// -*- coding: utf-8 -*-
2// Copyright (C) 2012-2018 Laboratoire de Recherche et Développement
3// de l'Epita (LRDE).
4//
5// This file is part of Spot, a model checking library.
6//
7// Spot is free software; you can redistribute it and/or modify it
8// under the terms of the GNU General Public License as published by
9// the Free Software Foundation; either version 3 of the License, or
10// (at your option) any later version.
11//
12// Spot is distributed in the hope that it will be useful, but WITHOUT
13// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
14// or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
15// License for more details.
16//
17// You should have received a copy of the GNU General Public License
18// along with this program. If not, see <http://www.gnu.org/licenses/>.
19
20#pragma once
21
22#include <spot/twaalgos/sccinfo.hh>
23#include <spot/twa/twagraph.hh>
24
25namespace spot
26{
29
37 SPOT_API unsigned
38 count_nondet_states(const const_twa_graph_ptr& aut);
39
49 SPOT_API bool
50 is_universal(const const_twa_graph_ptr& aut);
51
56 SPOT_API bool
57 is_deterministic(const const_twa_graph_ptr& aut);
58
66 SPOT_API void
67 highlight_nondet_states(twa_graph_ptr& aut, unsigned color);
68
77 SPOT_API void
78 highlight_nondet_edges(twa_graph_ptr& aut, unsigned color);
80
88 SPOT_API void
89 highlight_semidet_sccs(scc_info& si, unsigned color);
90
95 SPOT_API bool
96 is_complete(const const_twa_graph_ptr& aut);
97
102 SPOT_API bool
103 is_semi_deterministic(const const_twa_graph_ptr& aut);
104
106 SPOT_API std::vector<bool>
108
111 SPOT_API void check_determinism(twa_graph_ptr aut);
112
113 // \brief Count states with some universal branching.
114 //
115 // This counts the number of states that have edges going to several
116 // destinations at once (as reported by aut->is_univ_dest(...)).
117 //
118 // Note that nondeterministic automata (which include deterministic
119 // automata) have 0 such state, but additionally they also have
120 // "singleton" initial state (which this function does not check).
121 //
122 // \see count_univbranch_edges()
123 SPOT_API unsigned
124 count_univbranch_states(const const_twa_graph_ptr& aut);
125
126 // \brief Count edges with universal branching.
127 //
128 // This counts the number of edges going to several destination at
129 // once (as reported by aut->is_univ_dest(...)).
130 //
131 // If the automaton starts in multiple initial states at once, this
132 // is considered as a universal "initial edge", and adds one to the
133 // total count.
134 //
135 // Nondeterministic automata (which include deterministic automata)
136 // have 0 edges with universal branching.
137 //
138 // \see count_univbranch_states()
139 SPOT_API unsigned
140 count_univbranch_edges(const const_twa_graph_ptr& aut);
141}
Compute an SCC map and gather assorted information.
Definition: sccinfo.hh:443
bool is_universal(const const_twa_graph_ptr &aut)
Return true iff aut is universal.
bool is_deterministic(const const_twa_graph_ptr &aut)
Return true iff aut is deterministic.
unsigned count_nondet_states(const const_twa_graph_ptr &aut)
Count the number of states with non-deterministic branching in aut.
void highlight_nondet_edges(twa_graph_ptr &aut, unsigned color)
Highlight nondeterministic edges.
void highlight_nondet_states(twa_graph_ptr &aut, unsigned color)
Highlight nondeterministic states.
Definition: automata.hh:27
void highlight_semidet_sccs(scc_info &si, unsigned color)
Highlight the deterministic part of the automaton.
bool is_complete(const const_twa_graph_ptr &aut)
Return true iff aut is complete.
bool is_semi_deterministic(const const_twa_graph_ptr &aut)
Return true iff aut is semi-deterministic.
void check_determinism(twa_graph_ptr aut)
Set the deterministic and semi-deterministic properties appropriately.
std::vector< bool > semidet_sccs(scc_info &si)
Whether an SCC is in the deterministic part of an automaton.

Please direct any question, comment, or bug report to the Spot mailing list at spot@lrde.epita.fr.
Generated on Fri Feb 27 2015 10:00:07 for spot by doxygen 1.9.4