Main Page | Class Hierarchy | Class List | Directories | File List | Class Members | File Members

pntgba.hh

Go to the documentation of this file.
00001 // Copyright (C) 2004  Laboratoire d'Informatique de Paris 6 (LIP6),
00002 // département Systèmes Répartis Coopératifs (SRC), Université Pierre
00003 // et Marie Curie.
00004 //
00005 // This file is part of the Spot tutorial. Spot is a model checking 
00006 // library.
00007 //
00008 // Spot is free software; you can redistribute it and/or modify it
00009 // under the terms of the GNU General Public License as published by
00010 // the Free Software Foundation; either version 2 of the License, or
00011 // (at your option) any later version.
00012 //
00013 // Spot is distributed in the hope that it will be useful, but WITHOUT
00014 // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
00015 // or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
00016 // License for more details.
00017 //
00018 // You should have received a copy of the GNU General Public License
00019 // along with Spot; see the file COPYING.  If not, write to the Free
00020 // Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
00021 // 02111-1307, USA.
00022 
00023 #ifndef PN_TGBA_HH
00024 #define PN_TGBA_HH
00025 
00026 #include <set>
00027 #include <string>
00028 #include <map>
00029 
00030 #include "tgba/tgba.hh"
00031 //#include "tgba/succiter.hh"
00032 #include "petrinet.hh"
00033 #include "ltlvisit/apcollect.hh"
00034 #include "tgba/bdddict.hh"
00035 #include "bdd.h"
00036 #include "tgba/state.hh"
00037 #include "tgba/succiter.hh"
00038 #include "tgba/state.hh"
00039 #include "marking.hh"
00040 
00043 class pn_tgba : public spot::tgba {
00044 public:
00057   pn_tgba(const petri_net* pn,
00058           const spot::ltl::atomic_prop_set* sap=0,
00059           spot::bdd_dict* dict=0);
00060 
00067   bdd current_condition(const marking& m) const;
00068 
00074   virtual ~pn_tgba();
00075 
00085   spot::state* get_init_state() const;
00086 
00098   spot::tgba_succ_iterator* succ_iter (const spot::state* local_state,
00099           const spot::state*, const spot::tgba*) const;
00100 
00106   spot::bdd_dict* get_dict() const;
00107 
00113   std::string format_state(const spot::state* state) const;
00114 
00122   std::string transition_annotation(const spot::tgba_succ_iterator* t) const;
00123 
00127   bdd all_acceptance_conditions() const;
00128 
00130   bdd neg_acceptance_conditions() const;
00131   
00132 protected:
00134   bdd compute_support_conditions(const spot::state* state) const;
00135 
00137   bdd compute_support_variables(const spot::state* state) const;
00138 
00139 private:
00141   pn_tgba(const pn_tgba& p);
00143   pn_tgba& operator=(const pn_tgba& p);
00144   
00145 
00147   const petri_net& pn;
00148   
00150   spot::bdd_dict* dict;
00151   
00154   std::map<int, int> mplace_at_prop;
00155 };
00156 
00157 #endif
00158 

Please comment this page and report errors about it on the RefDocComments page.
Generated on Mon Jan 31 15:17:13 2005 for checkpn by doxygen 1.4.0