spot
1.1.4
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
tgba
tgbatba.hh
Go to the documentation of this file.
1
// -*- coding: utf-8 -*-
2
// Copyright (C) 2010, 2011, 2012, 2013 Laboratoire de Recherche et
3
// Développement de l'Epita.
4
// Copyright (C) 2003, 2004, 2006 Laboratoire d'Informatique de Paris
5
// 6 (LIP6), département Systèmes Répartis Coopératifs (SRC),
6
// Université Pierre et Marie Curie.
7
//
8
// This file is part of Spot, a model checking library.
9
//
10
// Spot is free software; you can redistribute it and/or modify it
11
// under the terms of the GNU General Public License as published by
12
// the Free Software Foundation; either version 3 of the License, or
13
// (at your option) any later version.
14
//
15
// Spot is distributed in the hope that it will be useful, but WITHOUT
16
// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
17
// or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
18
// License for more details.
19
//
20
// You should have received a copy of the GNU General Public License
21
// along with this program. If not, see <http://www.gnu.org/licenses/>.
22
23
#ifndef SPOT_TGBA_TGBATBA_HH
24
# define SPOT_TGBA_TGBATBA_HH
25
26
#include <list>
27
#include "
tgba.hh
"
28
#include "
misc/bddlt.hh
"
29
#include "
misc/hash.hh
"
30
31
namespace
spot
32
{
33
52
class
tgba_tba_proxy
:
public
tgba
53
{
54
public
:
55
tgba_tba_proxy
(
const
tgba
* a);
56
57
virtual
~tgba_tba_proxy
();
58
59
virtual
state
*
get_init_state
()
const
;
60
61
virtual
tgba_succ_iterator
*
62
succ_iter
(
const
state
* local_state,
63
const
state
* global_state = 0,
64
const
tgba
* global_automaton = 0)
const
;
65
66
virtual
bdd_dict
*
get_dict
()
const
;
67
68
virtual
std::string
format_state
(
const
state
*
state
)
const
;
69
70
virtual
state*
project_state
(
const
state* s,
const
tgba
* t)
const
;
71
72
virtual
bdd
all_acceptance_conditions
()
const
;
73
virtual
bdd
neg_acceptance_conditions
()
const
;
74
75
typedef
std::list<bdd>
cycle_list
;
76
77
86
bdd
common_acceptance_conditions_of_original_state
(
const
state*
87
ostate)
const
;
88
97
bdd
union_acceptance_conditions_of_original_state
(
const
state* s)
const
;
98
103
state*
create_state
(state* s, cycle_list::const_iterator acc)
const
;
104
105
protected
:
106
virtual
bdd
compute_support_conditions
(
const
state* state)
const
;
107
virtual
bdd
compute_support_variables
(
const
state* state)
const
;
108
109
cycle_list
acc_cycle_
;
110
const
tgba
*
a_
;
111
112
private
:
113
bdd
the_acceptance_cond_
;
114
typedef
Sgi::hash_map
<
const
state*, bdd,
115
state_ptr_hash
,
state_ptr_equal
>
accmap_t
;
116
mutable
accmap_t
accmap_
;
117
mutable
accmap_t
accmapu_
;
118
120
mutable
void
*
uniq_map_
;
121
122
// Disallow copy.
123
tgba_tba_proxy
(
const
tgba_tba_proxy
&);
124
tgba_tba_proxy
&
operator=
(
const
tgba_tba_proxy
&);
125
};
126
150
class
tgba_sba_proxy
:
public
tgba_tba_proxy
151
{
152
public
:
153
tgba_sba_proxy
(
const
tgba
* a);
154
162
bool
state_is_accepting
(
const
state
*
state
)
const
;
163
164
virtual
state*
get_init_state
()
const
;
165
protected
:
166
cycle_list::iterator
cycle_start_
;
167
};
168
169
}
170
#endif // SPOT_TGBA_TGBATBA_HH
Please direct any
question
,
comment
, or
bug report
to the Spot mailing list at
spot@lrde.epita.fr
.
Generated on Mon Jul 29 2013 00:27:24 for spot by
1.8.4