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