spot 2.12.2
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
24namespace 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.4