spot  0.8.2
tgbasafracomplement.hh
Go to the documentation of this file.
00001 // Copyright (C) 2009, 2010, 2011 Laboratoire de Recherche et Développement
00002 // de l'Epita (LRDE).
00003 //
00004 // This file is part of Spot, a model checking library.
00005 //
00006 // Spot is free software; you can redistribute it and/or modify it
00007 // under the terms of the GNU General Public License as published by
00008 // the Free Software Foundation; either version 2 of the License, or
00009 // (at your option) any later version.
00010 //
00011 // Spot is distributed in the hope that it will be useful, but WITHOUT
00012 // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
00013 // or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
00014 // License for more details.
00015 //
00016 // You should have received a copy of the GNU General Public License
00017 // along with Spot; see the file COPYING.  If not, write to the Free
00018 // Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
00019 // 02111-1307, USA.
00020 
00021 #ifndef SPOT_TGBA_TGBASAFRACOMPLEMENT_HH
00022 # define SPOT_TGBA_TGBASAFRACOMPLEMENT_HH
00023 
00024 # include <vector>
00025 # include "tgba/tgba.hh"
00026 
00027 #ifndef TRANSFORM_TO_TBA
00028 # define TRANSFORM_TO_TBA 0
00029 #endif
00030 #define TRANSFORM_TO_TGBA (!TRANSFORM_TO_TBA)
00031 
00032 namespace spot
00033 {
00051   class tgba_safra_complement : public tgba
00052   {
00053   public:
00054     tgba_safra_complement(const tgba* a);
00055     virtual ~tgba_safra_complement();
00056 
00057     // tgba interface.
00058     virtual state* get_init_state() const;
00059     virtual tgba_succ_iterator*
00060     succ_iter(const state* local_state,
00061               const state* global_state = 0,
00062               const tgba* global_automaton = 0) const;
00063 
00064     virtual bdd_dict* get_dict() const;
00065     virtual std::string format_state(const state* state) const;
00066     virtual bdd all_acceptance_conditions() const;
00067     virtual bdd neg_acceptance_conditions() const;
00068 
00069     void* get_safra() const
00070     {
00071       return safra_;
00072     }
00073 
00074   protected:
00075     virtual bdd compute_support_conditions(const state* state) const;
00076     virtual bdd compute_support_variables(const state* state) const;
00077   private:
00078     const tgba* automaton_;
00079     void* safra_;
00080 #if TRANSFORM_TO_TBA
00081     bdd the_acceptance_cond_;
00082 #endif
00083 #if TRANSFORM_TO_TGBA
00084     bdd all_acceptance_cond_;
00085     bdd neg_acceptance_cond_;
00086     // Map to i the i-th acceptance condition of the final automaton.
00087     std::vector<bdd> acceptance_cond_vec_;
00088 #endif
00089   };
00090 
00097   void display_safra(const tgba_safra_complement* a);
00098 }
00099 
00100 #endif  // SPOT_TGBA_TGBASAFRACOMPLEMENT_HH

Please comment this page and report errors about it on the RefDocComments page.
Generated on Thu Jan 19 2012 19:33:03 for spot by doxygen 1.7.6.1