spot
0.9.1
|
00001 // Copyright (C) 2011 Laboratoire de Recherche et Developpement 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_IFACE_DVE2_DVE2_HH 00022 # define SPOT_IFACE_DVE2_DVE2_HH 00023 00024 #include "kripke/kripke.hh" 00025 #include "ltlvisit/apcollect.hh" 00026 #include "ltlast/constant.hh" 00027 00028 00029 namespace spot 00030 { 00031 00032 // \brief Load a DVE model. 00033 // 00034 // The filename given can be either a *.dve source or a *.dve2C 00035 // dynamic library compiled with "divine compile --ltsmin file". 00036 // When the *.dve source is supplied, the *.dve2C will be updated 00037 // only if it is not newer. 00038 // 00039 // The dead parameter is used to control the behavior of the model 00040 // on dead states (i.e. the final states of finite sequences). 00041 // If DEAD is "false", it means we are not 00042 // interested in finite sequences of the system, and dead state 00043 // will have no successor. If DEAD is 00044 // "true", we want to check finite sequences as well as infinite 00045 // sequences, but do not need to distinguish them. In that case 00046 // dead state will have a loop labeled by true. If DEAD is any 00047 // other string, this is the name a property that should be true 00048 // when looping on a dead state, and false otherwise. 00049 // 00050 // This function returns 0 on error. 00051 // 00052 // \a file the name of the *.dve source file or of the *.dve2C 00053 // dynamic library 00054 // \a to_observe the list of atomic propositions that should be observed 00055 // in the model 00056 // \a dict the BDD dictionary to use 00057 // \a dead an atomic proposition or constant to use for looping on 00058 // dead states 00059 // \a verbose whether to output verbose messages 00060 kripke* load_dve2(const std::string& file, 00061 bdd_dict* dict, 00062 const ltl::atomic_prop_set* to_observe, 00063 const ltl::formula* dead = ltl::constant::true_instance(), 00064 int compress = 0, 00065 bool verbose = true); 00066 } 00067 00068 #endif // SPOT_IFACE_DVE2_DVE2_HH