tgbatba.hh

Go to the documentation of this file.
00001 // Copyright (C) 2010 Laboratoire de Recherche et Développement de
00002 // l'Epita.
00003 // Copyright (C) 2003, 2004, 2006 Laboratoire d'Informatique de Paris
00004 // 6 (LIP6), département Systèmes Répartis Coopératifs (SRC),
00005 // Université Pierre et Marie Curie.
00006 //
00007 // This file is part of Spot, a model checking library.
00008 //
00009 // Spot is free software; you can redistribute it and/or modify it
00010 // under the terms of the GNU General Public License as published by
00011 // the Free Software Foundation; either version 2 of the License, or
00012 // (at your option) any later version.
00013 //
00014 // Spot is distributed in the hope that it will be useful, but WITHOUT
00015 // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
00016 // or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
00017 // License for more details.
00018 //
00019 // You should have received a copy of the GNU General Public License
00020 // along with Spot; see the file COPYING.  If not, write to the Free
00021 // Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
00022 // 02111-1307, USA.
00023 
00024 #ifndef SPOT_TGBA_TGBATBA_HH
00025 # define SPOT_TGBA_TGBATBA_HH
00026 
00027 #include <list>
00028 #include "tgba.hh"
00029 #include "misc/bddlt.hh"
00030 
00031 namespace spot
00032 {
00033 
00052   class tgba_tba_proxy : public tgba
00053   {
00054   public:
00055     tgba_tba_proxy(const tgba* a);
00056 
00057     virtual ~tgba_tba_proxy();
00058 
00059     virtual state* get_init_state() const;
00060 
00061     virtual tgba_succ_iterator*
00062     succ_iter(const state* local_state,
00063               const state* global_state = 0,
00064               const tgba* global_automaton = 0) const;
00065 
00066     virtual bdd_dict* get_dict() const;
00067 
00068     virtual std::string format_state(const state* state) const;
00069 
00070     virtual state* project_state(const state* s, const tgba* t) const;
00071 
00072     virtual std::string
00073     transition_annotation(const tgba_succ_iterator* t) const;
00074 
00075     virtual bdd all_acceptance_conditions() const;
00076     virtual bdd neg_acceptance_conditions() const;
00077 
00078     typedef std::list<bdd> cycle_list;
00079   protected:
00080     virtual bdd compute_support_conditions(const state* state) const;
00081     virtual bdd compute_support_variables(const state* state) const;
00082 
00083     cycle_list acc_cycle_;
00084     const tgba* a_;
00085   private:
00086     bdd the_acceptance_cond_;
00087     // Disallow copy.
00088     tgba_tba_proxy(const tgba_tba_proxy&);
00089     tgba_tba_proxy& operator=(const tgba_tba_proxy&);
00090   };
00091 
00107   class tgba_sba_proxy : public tgba_tba_proxy
00108   {
00109   public:
00110     tgba_sba_proxy(const tgba* a);
00111 
00119     bool state_is_accepting(const state* state) const;
00120 
00121     virtual state* get_init_state() const;
00122   protected:
00123     cycle_list::iterator cycle_start_;
00124   };
00125 
00126 }
00127 #endif // SPOT_TGBA_TGBATBA_HH

Please comment this page and report errors about it on the RefDocComments page.
Generated on Fri Apr 16 09:40:33 2010 for spot by doxygen 1.6.3