Awali
Another Weighted Automata library
is_normalized.hh
Go to the documentation of this file.
1 // This file is part of Awali.
2 // Copyright 2016-2022 Sylvain Lombardy, Victor Marsault, Jacques Sakarovitch
3 //
4 // Awali is a free software: you can redistribute it and/or modify
5 // it under the terms of the GNU General Public License as published by
6 // the Free Software Foundation, either version 3 of the License, or
7 // (at your option) any later version.
8 //
9 // This program is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 // GNU General Public License for more details.
13 //
14 // You should have received a copy of the GNU General Public License
15 // along with this program. If not, see <http://www.gnu.org/licenses/>.
16 
17 #ifndef AWALI_ALGOS_IS_NORMALIZED_HH
18 # define AWALI_ALGOS_IS_NORMALIZED_HH
19 
21 
22 namespace awali { namespace sttc {
23 
24  template <typename Aut>
25  bool
26  is_normalized(const Aut& a)
27  {
28  return
29  a->num_initials() == 1
30  && a->weightset()->is_one(a->weight_of(a->initial_transitions().front()))
31  && a->num_finals() == 1
32  && a->weightset()->is_one(a->weight_of(a->final_transitions().front()))
33  // No arrival on the initial state.
34  && a->in(a->dst_of(a->initial_transitions().front())).empty()
35  // No departure from the final state.
36  && a->out(a->src_of(a->final_transitions().front())).empty();
37  }
38 }}//end of ns awali::stc
39 
40 #endif // !AWALI_ALGOS_IS_NORMALIZED_HH
bool is_normalized(const Aut &a)
Definition: is_normalized.hh:26
Main namespace of Awali.
Definition: ato.hh:22