spot  1.0.2
emptiness.hh
Go to the documentation of this file.
1 // Copyright (C) 2011 Laboratoire de Recherche et Developpement de
2 // l'Epita (LRDE).
3 // Copyright (C) 2004, 2005 Laboratoire d'Informatique de Paris 6 (LIP6),
4 // département Systèmes Répartis Coopératifs (SRC), Université Pierre
5 // et Marie Curie.
6 //
7 // This file is part of Spot, a model checking library.
8 //
9 // Spot is free software; you can redistribute it and/or modify it
10 // under the terms of the GNU General Public License as published by
11 // the Free Software Foundation; either version 3 of the License, or
12 // (at your option) any later version.
13 //
14 // Spot is distributed in the hope that it will be useful, but WITHOUT
15 // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
16 // or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
17 // License for more details.
18 //
19 // You should have received a copy of the GNU General Public License
20 // along with this program. If not, see <http://www.gnu.org/licenses/>.
21 
22 #ifndef SPOT_TGBAALGOS_EMPTINESS_HH
23 # define SPOT_TGBAALGOS_EMPTINESS_HH
24 
25 #include <map>
26 #include <list>
27 #include <iosfwd>
28 #include <bdd.h>
29 #include "misc/optionmap.hh"
30 #include "tgba/state.hh"
31 #include "emptiness_stats.hh"
32 
33 namespace spot
34 {
35  class tgba;
36  struct tgba_run;
37 
70 
77  {
78  public:
80  : a_(a), o_(o)
81  {
82  }
83 
84  virtual
86  {
87  }
88 
101  virtual tgba_run* accepting_run();
102 
104  const tgba*
105  automaton() const
106  {
107  return a_;
108  }
109 
111  const option_map&
112  options() const
113  {
114  return o_;
115  }
116 
118  const char* parse_options(char* options);
119 
121  virtual const unsigned_statistics* statistics() const;
122 
123  protected:
125  virtual void options_updated(const option_map& old);
126 
127  const tgba* a_;
129  };
130 
133  {
134  public:
136  : a_(a), o_(o)
137  {
138  }
139  virtual ~emptiness_check();
140 
142  const tgba*
143  automaton() const
144  {
145  return a_;
146  }
147 
149  const option_map&
150  options() const
151  {
152  return o_;
153  }
154 
156  const char* parse_options(char* options);
157 
159  virtual bool safe() const;
160 
175  virtual emptiness_check_result* check() = 0;
176 
178  virtual const unsigned_statistics* statistics() const;
179 
181  virtual std::ostream& print_stats(std::ostream& os) const;
182 
184  virtual void options_updated(const option_map& old);
185 
186  protected:
187  const tgba* a_;
189  };
190 
191 
192  // Dynamically create emptiness checks. Given their name and options.
194  {
195  public:
205  static emptiness_check_instantiator* construct(const char* name,
206  const char** err);
207 
209  emptiness_check* instantiate(const tgba* a) const;
210 
213  const option_map&
214  options() const
215  {
216  return o_;
217  }
218 
219  option_map&
221  {
222  return o_;
223  }
225 
228  unsigned int min_acceptance_conditions() const;
229 
234  unsigned int max_acceptance_conditions() const;
235  private:
238  void *info_;
239  };
240 
241 
243 
246 
247 
251 
253  struct tgba_run
254  {
255  struct step {
256  const state* s;
257  bdd label;
258  bdd acc;
259  };
260 
261  typedef std::list<step> steps;
262 
265 
266  ~tgba_run();
268  {
269  };
270  tgba_run(const tgba_run& run);
271  tgba_run& operator=(const tgba_run& run);
272  };
273 
288  std::ostream& print_tgba_run(std::ostream& os,
289  const tgba* a,
290  const tgba_run* run);
291 
296  tgba* tgba_run_to_tgba(const tgba* a, const tgba_run* run);
297 
299 
302 }
303 
304 #endif // SPOT_TGBAALGOS_EMPTINESS_HH

Please comment this page and report errors about it on the RefDocComments page.
Generated on Wed Mar 6 2013 09:25:14 for spot by doxygen 1.8.1.2