Use -fvisibility=hidden in src/tgbaalgos/.
* src/tgbaalgos/Makefile.am, src/tgbaalgos/gtec/Makefile.am: Add $(VISIBILITY_CXXFLAGS). * src/tgbaalgos/bfssteps.hh, src/tgbaalgos/compsusp.hh, src/tgbaalgos/cutscc.hh, src/tgbaalgos/cycles.hh, src/tgbaalgos/degen.hh, src/tgbaalgos/dotty.hh, src/tgbaalgos/dottydec.hh, src/tgbaalgos/dupexp.hh, src/tgbaalgos/eltl2tgba_lacim.hh, src/tgbaalgos/emptiness.hh, src/tgbaalgos/gtec/ce.hh, src/tgbaalgos/gtec/explscc.hh, src/tgbaalgos/gtec/gtec.hh, src/tgbaalgos/gtec/nsheap.hh, src/tgbaalgos/gtec/sccstack.hh, src/tgbaalgos/gtec/status.hh, src/tgbaalgos/gv04.hh, src/tgbaalgos/isdet.hh, src/tgbaalgos/isweakscc.cc, src/tgbaalgos/isweakscc.hh, src/tgbaalgos/lbtt.hh, src/tgbaalgos/ltl2taa.hh, src/tgbaalgos/ltl2tgba_fm.hh, src/tgbaalgos/ltl2tgba_lacim.hh, src/tgbaalgos/magic.hh, src/tgbaalgos/minimize.hh, src/tgbaalgos/neverclaim.hh, src/tgbaalgos/postproc.hh, src/tgbaalgos/powerset.hh, src/tgbaalgos/projrun.hh, src/tgbaalgos/randomgraph.hh, src/tgbaalgos/reachiter.hh, src/tgbaalgos/reducerun.hh, src/tgbaalgos/reductgba_sim.cc, src/tgbaalgos/reductgba_sim.hh, src/tgbaalgos/replayrun.hh, src/tgbaalgos/rundotdec.hh, src/tgbaalgos/safety.hh, src/tgbaalgos/save.hh, src/tgbaalgos/scc.hh, src/tgbaalgos/sccfilter.hh, src/tgbaalgos/se05.hh, src/tgbaalgos/simulation.hh, src/tgbaalgos/stats.hh, src/tgbaalgos/stripacc.hh, src/tgbaalgos/tau03.hh, src/tgbaalgos/tau03opt.hh, src/tgbaalgos/translate.hh: Mark public symbol with SPOT_API.
This commit is contained in:
parent
dab51a9dd0
commit
a0f5d53ea4
50 changed files with 358 additions and 247 deletions
|
|
@ -23,7 +23,7 @@
|
||||||
SUBDIRS = gtec
|
SUBDIRS = gtec
|
||||||
|
|
||||||
AM_CPPFLAGS = -I$(srcdir)/.. -I.. $(BUDDY_CPPFLAGS)
|
AM_CPPFLAGS = -I$(srcdir)/.. -I.. $(BUDDY_CPPFLAGS)
|
||||||
AM_CXXFLAGS = $(WARNING_CXXFLAGS)
|
AM_CXXFLAGS = $(WARNING_CXXFLAGS) $(VISIBILITY_CXXFLAGS)
|
||||||
|
|
||||||
tgbaalgosdir = $(pkgincludedir)/tgbaalgos
|
tgbaalgosdir = $(pkgincludedir)/tgbaalgos
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
// Copyright (C) 2011 Laboratoire de Recherche et Developpement de
|
// -*- coding: utf-8 -*-
|
||||||
|
// Copyright (C) 2011, 2013 Laboratoire de Recherche et Developpement de
|
||||||
// l'Epita (LRDE).
|
// l'Epita (LRDE).
|
||||||
// Copyright (C) 2004, 2005 Laboratoire d'Informatique de Paris 6 (LIP6),
|
// Copyright (C) 2004, 2005 Laboratoire d'Informatique de Paris 6 (LIP6),
|
||||||
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
|
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
|
||||||
// et Marie Curie.
|
// et Marie Curie.
|
||||||
//
|
//
|
||||||
// This file is part of Spot, a model checking library.
|
// This file is part of Spot, a model checking library.
|
||||||
|
|
@ -38,7 +39,7 @@ namespace spot
|
||||||
/// These conditions should be specified by defining bfs_steps::match()
|
/// These conditions should be specified by defining bfs_steps::match()
|
||||||
/// in a subclass. Also the search can be restricted to some set of
|
/// in a subclass. Also the search can be restricted to some set of
|
||||||
/// states with a proper definition of bfs_steps::filter().
|
/// states with a proper definition of bfs_steps::filter().
|
||||||
class bfs_steps
|
class SPOT_API bfs_steps
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
bfs_steps(const tgba* a);
|
bfs_steps(const tgba* a);
|
||||||
|
|
|
||||||
|
|
@ -49,10 +49,11 @@ namespace spot
|
||||||
/// This interface is subject to change, and clients aiming for
|
/// This interface is subject to change, and clients aiming for
|
||||||
/// long-term stability should better use the services of the
|
/// long-term stability should better use the services of the
|
||||||
/// spot::translator class instead.
|
/// spot::translator class instead.
|
||||||
tgba* compsusp(const ltl::formula* f, bdd_dict* dict,
|
SPOT_API tgba*
|
||||||
bool no_wdba = false, bool no_simulation = false,
|
compsusp(const ltl::formula* f, bdd_dict* dict,
|
||||||
bool early_susp = false, bool no_susp_product = false,
|
bool no_wdba = false, bool no_simulation = false,
|
||||||
bool wdba_smaller = false, bool oblig = false);
|
bool early_susp = false, bool no_susp_product = false,
|
||||||
|
bool wdba_smaller = false, bool oblig = false);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // SPOT_TGBAALGOS_COMPSUSP_HH
|
#endif // SPOT_TGBAALGOS_COMPSUSP_HH
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
// -*- coding: utf-8 -*-
|
||||||
// Copyright (C) 2009, 2013 Laboratoire de Recherche et Developpement de
|
// Copyright (C) 2009, 2013 Laboratoire de Recherche et Developpement de
|
||||||
// l'Epita (LRDE).
|
// l'Epita (LRDE).
|
||||||
//
|
//
|
||||||
|
|
@ -20,7 +21,6 @@
|
||||||
#ifndef SPOT_TGBAALGOS_CUTSCC_HH
|
#ifndef SPOT_TGBAALGOS_CUTSCC_HH
|
||||||
# define SPOT_TGBAALGOS_CUTSCC_HH
|
# define SPOT_TGBAALGOS_CUTSCC_HH
|
||||||
|
|
||||||
#include <iosfwd>
|
|
||||||
#include <set>
|
#include <set>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include "tgba/tgba.hh"
|
#include "tgba/tgba.hh"
|
||||||
|
|
@ -34,10 +34,14 @@ namespace spot
|
||||||
unsigned size;
|
unsigned size;
|
||||||
};
|
};
|
||||||
|
|
||||||
std::vector<std::vector<sccs_set* > >* find_paths(tgba* a, const scc_map& m);
|
SPOT_API std::vector<std::vector<sccs_set* > >*
|
||||||
unsigned max_spanning_paths(std::vector<sccs_set* >* paths, scc_map& m);
|
find_paths(tgba* a, const scc_map& m);
|
||||||
std::list<tgba*> split_tgba(tgba* a, const scc_map& m,
|
|
||||||
unsigned split_number);
|
SPOT_API unsigned
|
||||||
|
max_spanning_paths(std::vector<sccs_set* >* paths, scc_map& m);
|
||||||
|
|
||||||
|
SPOT_API std::list<tgba*>
|
||||||
|
split_tgba(tgba* a, const scc_map& m, unsigned split_number);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -76,7 +76,7 @@ namespace spot
|
||||||
/// run() method will terminate. If it returns true, the run()
|
/// run() method will terminate. If it returns true, the run()
|
||||||
/// method will search for the next elementary cycle and call
|
/// method will search for the next elementary cycle and call
|
||||||
/// cycle_found() again if it finds another cycle.
|
/// cycle_found() again if it finds another cycle.
|
||||||
class enumerate_cycles
|
class SPOT_API enumerate_cycles
|
||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
typedef Sgi::hash_set<const state*,
|
typedef Sgi::hash_set<const state*,
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
// -*- coding: utf-8 -*-
|
||||||
// Copyright (C) 2012, 2013 Laboratoire de Recherche et Développement
|
// Copyright (C) 2012, 2013 Laboratoire de Recherche et Développement
|
||||||
// de l'Epita.
|
// de l'Epita.
|
||||||
//
|
//
|
||||||
|
|
@ -19,6 +20,8 @@
|
||||||
#ifndef SPOT_TGBAALGOS_DEGEN_HH
|
#ifndef SPOT_TGBAALGOS_DEGEN_HH
|
||||||
# define SPOT_TGBAALGOS_DEGEN_HH
|
# define SPOT_TGBAALGOS_DEGEN_HH
|
||||||
|
|
||||||
|
# include "misc/common.hh"
|
||||||
|
|
||||||
namespace spot
|
namespace spot
|
||||||
{
|
{
|
||||||
class sba;
|
class sba;
|
||||||
|
|
@ -47,9 +50,10 @@ namespace spot
|
||||||
/// \a a to be computed prior to its actual degeneralization.
|
/// \a a to be computed prior to its actual degeneralization.
|
||||||
///
|
///
|
||||||
/// \see tgba_sba_proxy, tgba_tba_proxy
|
/// \see tgba_sba_proxy, tgba_tba_proxy
|
||||||
sba* degeneralize(const tgba* a, bool use_z_lvl = true,
|
SPOT_API sba*
|
||||||
bool use_cust_acc_orders = false,
|
degeneralize(const tgba* a, bool use_z_lvl = true,
|
||||||
bool use_lvl_cache = true);
|
bool use_cust_acc_orders = false,
|
||||||
|
bool use_lvl_cache = true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
// -*- coding: utf-
|
// -*- coding: utf-8 -*-
|
||||||
// Copyright (C) 2011, 2012 Laboratoire de Recherche et Developpement de
|
// Copyright (C) 2011, 2012, 2013 Laboratoire de Recherche et
|
||||||
// l'Epita (LRDE).
|
// Developpement de l'Epita (LRDE).
|
||||||
// Copyright (C) 2003, 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
|
// Copyright (C) 2003, 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
|
||||||
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
|
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
|
||||||
// et Marie Curie.
|
// et Marie Curie.
|
||||||
//
|
//
|
||||||
// This file is part of Spot, a model checking library.
|
// This file is part of Spot, a model checking library.
|
||||||
|
|
@ -23,7 +23,8 @@
|
||||||
#ifndef SPOT_TGBAALGOS_DOTTY_HH
|
#ifndef SPOT_TGBAALGOS_DOTTY_HH
|
||||||
# define SPOT_TGBAALGOS_DOTTY_HH
|
# define SPOT_TGBAALGOS_DOTTY_HH
|
||||||
|
|
||||||
#include <iosfwd>
|
# include <iosfwd>
|
||||||
|
# include "misc/common.hh"
|
||||||
|
|
||||||
namespace spot
|
namespace spot
|
||||||
{
|
{
|
||||||
|
|
@ -41,7 +42,7 @@ namespace spot
|
||||||
/// decorators. If no decorator is specified, the dotty_decorator
|
/// decorators. If no decorator is specified, the dotty_decorator
|
||||||
/// is used.
|
/// is used.
|
||||||
/// labels the transitions are encoded in UTF-8.
|
/// labels the transitions are encoded in UTF-8.
|
||||||
std::ostream&
|
SPOT_API std::ostream&
|
||||||
dotty_reachable(std::ostream& os,
|
dotty_reachable(std::ostream& os,
|
||||||
const tgba* g,
|
const tgba* g,
|
||||||
bool assume_sba = false,
|
bool assume_sba = false,
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,8 @@
|
||||||
// Copyright (C) 2004, 2011 Laboratoire d'Informatique de Paris 6 (LIP6),
|
// -*- coding: utf-8 -*-
|
||||||
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
|
// Copyright (C) 2011, 2013 Laboratoire de Recherche et
|
||||||
|
// Developpement de l'Epita (LRDE).
|
||||||
|
// Copyright (C) 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
|
||||||
|
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
|
||||||
// et Marie Curie.
|
// et Marie Curie.
|
||||||
//
|
//
|
||||||
// This file is part of Spot, a model checking library.
|
// This file is part of Spot, a model checking library.
|
||||||
|
|
@ -20,7 +23,8 @@
|
||||||
#ifndef SPOT_TGBAALGOS_DOTTYDEC_HH
|
#ifndef SPOT_TGBAALGOS_DOTTYDEC_HH
|
||||||
# define SPOT_TGBAALGOS_DOTTYDEC_HH
|
# define SPOT_TGBAALGOS_DOTTYDEC_HH
|
||||||
|
|
||||||
#include <string>
|
# include "misc/common.hh"
|
||||||
|
# include <string>
|
||||||
|
|
||||||
namespace spot
|
namespace spot
|
||||||
{
|
{
|
||||||
|
|
@ -33,7 +37,7 @@ namespace spot
|
||||||
|
|
||||||
/// \ingroup tgba_dotty
|
/// \ingroup tgba_dotty
|
||||||
/// \brief Choose state and link styles for spot::dotty_reachable.
|
/// \brief Choose state and link styles for spot::dotty_reachable.
|
||||||
class dotty_decorator
|
class SPOT_API dotty_decorator
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual ~dotty_decorator();
|
virtual ~dotty_decorator();
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
// -*- coding: utf-8 -*-
|
// -*- coding: utf-8 -*-
|
||||||
// Copyright (C) 2012 Laboratoire de Recherche et Développement de
|
// Copyright (C) 2012, 2013 Laboratoire de Recherche et Développement
|
||||||
// l'Epita (LRDE).
|
// de l'Epita (LRDE).
|
||||||
// Copyright (C) 2003, 2004, 2005 Laboratoire d'Informatique de Paris
|
// Copyright (C) 2003, 2004, 2005 Laboratoire d'Informatique de Paris
|
||||||
// 6 (LIP6), département Systèmes Répartis Coopératifs (SRC),
|
// 6 (LIP6), département Systèmes Répartis Coopératifs (SRC),
|
||||||
// Université Pierre et Marie Curie.
|
// Université Pierre et Marie Curie.
|
||||||
|
|
@ -30,23 +30,25 @@ namespace spot
|
||||||
/// \ingroup tgba_misc
|
/// \ingroup tgba_misc
|
||||||
/// \brief Build an explicit automata from all states of \a aut,
|
/// \brief Build an explicit automata from all states of \a aut,
|
||||||
/// numbering states in bread first order as they are processed.
|
/// numbering states in bread first order as they are processed.
|
||||||
tgba_explicit_number* tgba_dupexp_bfs(const tgba* aut);
|
SPOT_API tgba_explicit_number*
|
||||||
|
tgba_dupexp_bfs(const tgba* aut);
|
||||||
/// \ingroup tgba_misc
|
/// \ingroup tgba_misc
|
||||||
/// \brief Build an explicit automata from all states of \a aut,
|
/// \brief Build an explicit automata from all states of \a aut,
|
||||||
/// numbering states in depth first order as they are processed.
|
/// numbering states in depth first order as they are processed.
|
||||||
tgba_explicit_number* tgba_dupexp_dfs(const tgba* aut);
|
SPOT_API tgba_explicit_number*
|
||||||
|
tgba_dupexp_dfs(const tgba* aut);
|
||||||
|
|
||||||
/// \ingroup tgba_misc
|
/// \ingroup tgba_misc
|
||||||
/// \brief Build an explicit automata from all states of \a aut,
|
/// \brief Build an explicit automata from all states of \a aut,
|
||||||
/// numbering states in bread first order as they are processed.
|
/// numbering states in bread first order as they are processed.
|
||||||
tgba_explicit_number*
|
SPOT_API tgba_explicit_number*
|
||||||
tgba_dupexp_bfs(const tgba* aut,
|
tgba_dupexp_bfs(const tgba* aut,
|
||||||
std::map<const state*, const state*,
|
std::map<const state*, const state*,
|
||||||
state_ptr_less_than>& relation);
|
state_ptr_less_than>& relation);
|
||||||
/// \ingroup tgba_misc
|
/// \ingroup tgba_misc
|
||||||
/// \brief Build an explicit automata from all states of \a aut,
|
/// \brief Build an explicit automata from all states of \a aut,
|
||||||
/// numbering states in depth first order as they are processed.
|
/// numbering states in depth first order as they are processed.
|
||||||
tgba_explicit_number*
|
SPOT_API tgba_explicit_number*
|
||||||
tgba_dupexp_dfs(const tgba* aut,
|
tgba_dupexp_dfs(const tgba* aut,
|
||||||
std::map<const state*, const state*,
|
std::map<const state*, const state*,
|
||||||
state_ptr_less_than>& relation);
|
state_ptr_less_than>& relation);
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
// Copyright (C) 2008, 2010 Laboratoire de Recherche et Développement
|
// -*- coding: utf-8 -*-
|
||||||
// de l'Epita (LRDE).
|
// Copyright (C) 2008, 2010, 2013 Laboratoire de Recherche et
|
||||||
|
// Développement de l'Epita (LRDE).
|
||||||
//
|
//
|
||||||
// This file is part of Spot, a model checking library.
|
// This file is part of Spot, a model checking library.
|
||||||
//
|
//
|
||||||
|
|
@ -46,7 +47,8 @@ namespace spot
|
||||||
/// \param f The formula to translate into an automaton.
|
/// \param f The formula to translate into an automaton.
|
||||||
/// \param dict The spot::bdd_dict the constructed automata should use.
|
/// \param dict The spot::bdd_dict the constructed automata should use.
|
||||||
/// \return A spot::tgba_bdd_concrete that recognizes the language of \a f.
|
/// \return A spot::tgba_bdd_concrete that recognizes the language of \a f.
|
||||||
tgba_bdd_concrete* eltl_to_tgba_lacim(const ltl::formula* f, bdd_dict* dict);
|
SPOT_API tgba_bdd_concrete*
|
||||||
|
eltl_to_tgba_lacim(const ltl::formula* f, bdd_dict* dict);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // SPOT_TGBAALGOS_LTL2TGBA_LACIM_HH
|
#endif // SPOT_TGBAALGOS_LTL2TGBA_LACIM_HH
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
// Copyright (C) 2011 Laboratoire de Recherche et Developpement de
|
// -*- coding: utf-8 -*-
|
||||||
// l'Epita (LRDE).
|
// Copyright (C) 2011, 2013 Laboratoire de Recherche et Developpement
|
||||||
|
// de l'Epita (LRDE).
|
||||||
// Copyright (C) 2004, 2005 Laboratoire d'Informatique de Paris 6 (LIP6),
|
// Copyright (C) 2004, 2005 Laboratoire d'Informatique de Paris 6 (LIP6),
|
||||||
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
|
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
|
||||||
// et Marie Curie.
|
// et Marie Curie.
|
||||||
//
|
//
|
||||||
// This file is part of Spot, a model checking library.
|
// This file is part of Spot, a model checking library.
|
||||||
|
|
@ -73,7 +74,7 @@ namespace spot
|
||||||
/// Instances of these class should not last longer than the
|
/// Instances of these class should not last longer than the
|
||||||
/// instances of emptiness_check that produced them as they
|
/// instances of emptiness_check that produced them as they
|
||||||
/// may reference data internal to the check.
|
/// may reference data internal to the check.
|
||||||
class emptiness_check_result
|
class SPOT_API emptiness_check_result
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
emptiness_check_result(const tgba* a, option_map o = option_map())
|
emptiness_check_result(const tgba* a, option_map o = option_map())
|
||||||
|
|
@ -129,7 +130,7 @@ namespace spot
|
||||||
};
|
};
|
||||||
|
|
||||||
/// Common interface to emptiness check algorithms.
|
/// Common interface to emptiness check algorithms.
|
||||||
class emptiness_check
|
class SPOT_API emptiness_check
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
emptiness_check(const tgba* a, option_map o = option_map())
|
emptiness_check(const tgba* a, option_map o = option_map())
|
||||||
|
|
@ -190,7 +191,7 @@ namespace spot
|
||||||
|
|
||||||
|
|
||||||
// Dynamically create emptiness checks. Given their name and options.
|
// Dynamically create emptiness checks. Given their name and options.
|
||||||
class emptiness_check_instantiator
|
class SPOT_API emptiness_check_instantiator
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
/// \brief Create an emptiness-check instantiator, given the name
|
/// \brief Create an emptiness-check instantiator, given the name
|
||||||
|
|
@ -250,7 +251,7 @@ namespace spot
|
||||||
/// @{
|
/// @{
|
||||||
|
|
||||||
/// An accepted run, for a tgba.
|
/// An accepted run, for a tgba.
|
||||||
struct tgba_run
|
struct SPOT_API tgba_run
|
||||||
{
|
{
|
||||||
struct step {
|
struct step {
|
||||||
const state* s;
|
const state* s;
|
||||||
|
|
@ -285,15 +286,15 @@ namespace spot
|
||||||
/// This is unlike replay_tgba_run(), which will ensure the run
|
/// This is unlike replay_tgba_run(), which will ensure the run
|
||||||
/// actually exists in the automaton (and will also display any
|
/// actually exists in the automaton (and will also display any
|
||||||
/// transition annotation).
|
/// transition annotation).
|
||||||
std::ostream& print_tgba_run(std::ostream& os,
|
SPOT_API std::ostream&
|
||||||
const tgba* a,
|
print_tgba_run(std::ostream& os, const tgba* a, const tgba_run* run);
|
||||||
const tgba_run* run);
|
|
||||||
|
|
||||||
/// \brief Return an explicit_tgba corresponding to \a run (i.e. comparable
|
/// \brief Return an explicit_tgba corresponding to \a run (i.e. comparable
|
||||||
/// states are merged).
|
/// states are merged).
|
||||||
///
|
///
|
||||||
/// \pre \a run must correspond to an actual run of the automaton \a a.
|
/// \pre \a run must correspond to an actual run of the automaton \a a.
|
||||||
tgba* tgba_run_to_tgba(const tgba* a, const tgba_run* run);
|
SPOT_API tgba*
|
||||||
|
tgba_run_to_tgba(const tgba* a, const tgba_run* run);
|
||||||
|
|
||||||
/// @}
|
/// @}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
## Copyright (C) 2011 Laboratoire de Recherche et Developpement de
|
## -*- coding: utf-8 -*-
|
||||||
## l'Epita (LRDE).
|
## Copyright (C) 2011, 2013 Laboratoire de Recherche et Developpement
|
||||||
|
## de l'Epita (LRDE).
|
||||||
## Copyright (C) 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
|
## Copyright (C) 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
|
||||||
## département Systèmes Répartis Coopératifs (SRC), Université Pierre
|
## département Systèmes Répartis Coopératifs (SRC), Université Pierre
|
||||||
## et Marie Curie.
|
## et Marie Curie.
|
||||||
##
|
##
|
||||||
## This file is part of Spot, a model checking library.
|
## This file is part of Spot, a model checking library.
|
||||||
|
|
@ -20,7 +21,7 @@
|
||||||
## along with this program. If not, see <http://www.gnu.org/licenses/>.
|
## along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
AM_CPPFLAGS = -I$(srcdir)/../.. -I../.. $(BUDDY_CPPFLAGS)
|
AM_CPPFLAGS = -I$(srcdir)/../.. -I../.. $(BUDDY_CPPFLAGS)
|
||||||
AM_CXXFLAGS = $(WARNING_CXXFLAGS)
|
AM_CXXFLAGS = $(WARNING_CXXFLAGS) $(VISIBILITY_CXXFLAGS)
|
||||||
|
|
||||||
gtecdir = $(pkgincludedir)/tgbaalgos/gtec
|
gtecdir = $(pkgincludedir)/tgbaalgos/gtec
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,8 @@
|
||||||
|
// -*- coding: utf-8 -*-
|
||||||
|
// Copyright (C) 2013 Laboratoire de Recherche et Développement de
|
||||||
|
// l'Epita (LRDE).
|
||||||
// Copyright (C) 2004, 2005 Laboratoire d'Informatique de Paris 6 (LIP6),
|
// Copyright (C) 2004, 2005 Laboratoire d'Informatique de Paris 6 (LIP6),
|
||||||
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
|
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
|
||||||
// et Marie Curie.
|
// et Marie Curie.
|
||||||
//
|
//
|
||||||
// This file is part of Spot, a model checking library.
|
// This file is part of Spot, a model checking library.
|
||||||
|
|
@ -27,7 +30,7 @@
|
||||||
namespace spot
|
namespace spot
|
||||||
{
|
{
|
||||||
/// Compute a counter example from a spot::couvreur99_check_status
|
/// Compute a counter example from a spot::couvreur99_check_status
|
||||||
class couvreur99_check_result:
|
class SPOT_API couvreur99_check_result:
|
||||||
public emptiness_check_result,
|
public emptiness_check_result,
|
||||||
public acss_statistics
|
public acss_statistics
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
// Copyright (C) 2011 Laboratoire de Recherche et Développement de
|
// -*- coding: utf-8 -*-
|
||||||
// l'Epita (LRDE).
|
// Copyright (C) 2011, 2013 Laboratoire de Recherche et Développement
|
||||||
|
// de l'Epita (LRDE).
|
||||||
// Copyright (C) 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
|
// Copyright (C) 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
|
||||||
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
|
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
|
||||||
// et Marie Curie.
|
// et Marie Curie.
|
||||||
//
|
//
|
||||||
// This file is part of Spot, a model checking library.
|
// This file is part of Spot, a model checking library.
|
||||||
|
|
@ -29,7 +30,8 @@
|
||||||
namespace spot
|
namespace spot
|
||||||
{
|
{
|
||||||
/// An SCC storing all its states explicitly.
|
/// An SCC storing all its states explicitly.
|
||||||
class explicit_connected_component: public scc_stack::connected_component
|
class SPOT_API explicit_connected_component:
|
||||||
|
public scc_stack::connected_component
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual ~explicit_connected_component() {}
|
virtual ~explicit_connected_component() {}
|
||||||
|
|
@ -46,7 +48,8 @@ namespace spot
|
||||||
|
|
||||||
/// A straightforward implementation of explicit_connected_component
|
/// A straightforward implementation of explicit_connected_component
|
||||||
/// using a hash.
|
/// using a hash.
|
||||||
class connected_component_hash_set: public explicit_connected_component
|
class SPOT_API connected_component_hash_set:
|
||||||
|
public explicit_connected_component
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual ~connected_component_hash_set() {}
|
virtual ~connected_component_hash_set() {}
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,9 @@
|
||||||
// Copyright (C) 2008 Laboratoire de Recherche et Development de
|
// -*- coding: utf-8 -*-
|
||||||
// l'Epita (LRDE).
|
// Copyright (C) 2008, 2013 Laboratoire de Recherche et Développement
|
||||||
|
// de l'Epita (LRDE).
|
||||||
// Copyright (C) 2003, 2004, 2005, 2006 Laboratoire d'Informatique de
|
// Copyright (C) 2003, 2004, 2005, 2006 Laboratoire d'Informatique de
|
||||||
// Paris 6 (LIP6), département Systèmes Répartis Coopératifs (SRC),
|
// Paris 6 (LIP6), département Systèmes Répartis Coopératifs (SRC),
|
||||||
// Université Pierre et Marie Curie.
|
// Université Pierre et Marie Curie.
|
||||||
//
|
//
|
||||||
// This file is part of Spot, a model checking library.
|
// This file is part of Spot, a model checking library.
|
||||||
//
|
//
|
||||||
|
|
@ -135,7 +136,7 @@ namespace spot
|
||||||
/// states that belong to the same SCC will be considered when
|
/// states that belong to the same SCC will be considered when
|
||||||
/// choosing a successor. Otherwise, only the successor of the
|
/// choosing a successor. Otherwise, only the successor of the
|
||||||
/// topmost state on the DFS stack are considered.
|
/// topmost state on the DFS stack are considered.
|
||||||
emptiness_check*
|
SPOT_API emptiness_check*
|
||||||
couvreur99(const tgba* a,
|
couvreur99(const tgba* a,
|
||||||
option_map options = option_map(),
|
option_map options = option_map(),
|
||||||
const numbered_state_heap_factory* nshf
|
const numbered_state_heap_factory* nshf
|
||||||
|
|
@ -145,7 +146,7 @@ namespace spot
|
||||||
/// \brief An implementation of the Couvreur99 emptiness-check algorithm.
|
/// \brief An implementation of the Couvreur99 emptiness-check algorithm.
|
||||||
///
|
///
|
||||||
/// See the documentation for spot::couvreur99.
|
/// See the documentation for spot::couvreur99.
|
||||||
class couvreur99_check: public emptiness_check, public ec_statistics
|
class SPOT_API couvreur99_check: public emptiness_check, public ec_statistics
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
couvreur99_check(const tgba* a,
|
couvreur99_check(const tgba* a,
|
||||||
|
|
@ -190,7 +191,7 @@ namespace spot
|
||||||
/// known states first.
|
/// known states first.
|
||||||
///
|
///
|
||||||
/// See the documentation for spot::couvreur99.
|
/// See the documentation for spot::couvreur99.
|
||||||
class couvreur99_check_shy : public couvreur99_check
|
class SPOT_API couvreur99_check_shy : public couvreur99_check
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
couvreur99_check_shy(const tgba* a,
|
couvreur99_check_shy(const tgba* a,
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,8 @@
|
||||||
|
// -*- coding: utf-8 -*-
|
||||||
|
// Copyright (C) 2013 Laboratoire de Recherche et Development de
|
||||||
|
// l'Epita (LRDE).
|
||||||
// Copyright (C) 2004, 2006 Laboratoire d'Informatique de Paris 6 (LIP6),
|
// Copyright (C) 2004, 2006 Laboratoire d'Informatique de Paris 6 (LIP6),
|
||||||
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
|
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
|
||||||
// et Marie Curie.
|
// et Marie Curie.
|
||||||
//
|
//
|
||||||
// This file is part of Spot, a model checking library.
|
// This file is part of Spot, a model checking library.
|
||||||
|
|
@ -20,13 +23,13 @@
|
||||||
#ifndef SPOT_TGBAALGOS_GTEC_NSHEAP_HH
|
#ifndef SPOT_TGBAALGOS_GTEC_NSHEAP_HH
|
||||||
# define SPOT_TGBAALGOS_GTEC_NSHEAP_HH
|
# define SPOT_TGBAALGOS_GTEC_NSHEAP_HH
|
||||||
|
|
||||||
#include "tgba/state.hh"
|
# include "tgba/state.hh"
|
||||||
#include "misc/hash.hh"
|
# include "misc/hash.hh"
|
||||||
|
|
||||||
namespace spot
|
namespace spot
|
||||||
{
|
{
|
||||||
/// Iterator on numbered_state_heap objects.
|
/// Iterator on numbered_state_heap objects.
|
||||||
class numbered_state_heap_const_iterator
|
class SPOT_API numbered_state_heap_const_iterator
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual ~numbered_state_heap_const_iterator() {}
|
virtual ~numbered_state_heap_const_iterator() {}
|
||||||
|
|
@ -46,7 +49,7 @@ namespace spot
|
||||||
};
|
};
|
||||||
|
|
||||||
/// Keep track of a large quantity of indexed states.
|
/// Keep track of a large quantity of indexed states.
|
||||||
class numbered_state_heap
|
class SPOT_API numbered_state_heap
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
typedef std::pair<const state*, int*> state_index_p;
|
typedef std::pair<const state*, int*> state_index_p;
|
||||||
|
|
@ -95,7 +98,7 @@ namespace spot
|
||||||
};
|
};
|
||||||
|
|
||||||
/// Abstract factory for numbered_state_heap
|
/// Abstract factory for numbered_state_heap
|
||||||
class numbered_state_heap_factory
|
class SPOT_API numbered_state_heap_factory
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual ~numbered_state_heap_factory() {}
|
virtual ~numbered_state_heap_factory() {}
|
||||||
|
|
@ -103,7 +106,7 @@ namespace spot
|
||||||
};
|
};
|
||||||
|
|
||||||
/// A straightforward implementation of numbered_state_heap with a hash map.
|
/// A straightforward implementation of numbered_state_heap with a hash map.
|
||||||
class numbered_state_heap_hash_map : public numbered_state_heap
|
class SPOT_API numbered_state_heap_hash_map : public numbered_state_heap
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual ~numbered_state_heap_hash_map();
|
virtual ~numbered_state_heap_hash_map();
|
||||||
|
|
@ -127,7 +130,7 @@ namespace spot
|
||||||
/// \brief Factory for numbered_state_heap_hash_map.
|
/// \brief Factory for numbered_state_heap_hash_map.
|
||||||
///
|
///
|
||||||
/// This class is a singleton. Retrieve the instance using instance().
|
/// This class is a singleton. Retrieve the instance using instance().
|
||||||
class numbered_state_heap_hash_map_factory:
|
class SPOT_API numbered_state_heap_hash_map_factory:
|
||||||
public numbered_state_heap_factory
|
public numbered_state_heap_factory
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,8 @@
|
||||||
|
// -*- coding: utf-8 -*-
|
||||||
|
// Copyright (C) 2013 Laboratoire de Recherche et Développement de
|
||||||
|
// l'Epita (LRDE).
|
||||||
// Copyright (C) 2004, 2005 Laboratoire d'Informatique de Paris 6 (LIP6),
|
// Copyright (C) 2004, 2005 Laboratoire d'Informatique de Paris 6 (LIP6),
|
||||||
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
|
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
|
||||||
// et Marie Curie.
|
// et Marie Curie.
|
||||||
//
|
//
|
||||||
// This file is part of Spot, a model checking library.
|
// This file is part of Spot, a model checking library.
|
||||||
|
|
@ -28,7 +31,7 @@ namespace spot
|
||||||
{
|
{
|
||||||
// A stack of Strongly-Connected Components, as needed by the
|
// A stack of Strongly-Connected Components, as needed by the
|
||||||
// Tarjan-Couvreur algorithm.
|
// Tarjan-Couvreur algorithm.
|
||||||
class scc_stack
|
class SPOT_API scc_stack
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
struct connected_component
|
struct connected_component
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,8 @@
|
||||||
|
// -*- coding: utf-8 -*-
|
||||||
|
// Copyright (C) 2013 Laboratoire de Recherche et Développement de
|
||||||
|
// l'Epita (LRDE).
|
||||||
// Copyright (C) 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
|
// Copyright (C) 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
|
||||||
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
|
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
|
||||||
// et Marie Curie.
|
// et Marie Curie.
|
||||||
//
|
//
|
||||||
// This file is part of Spot, a model checking library.
|
// This file is part of Spot, a model checking library.
|
||||||
|
|
@ -32,7 +35,7 @@ namespace spot
|
||||||
/// This contains everything needed to construct a counter-example:
|
/// This contains everything needed to construct a counter-example:
|
||||||
/// the automata, the stack of SCCs traversed by the counter-example,
|
/// the automata, the stack of SCCs traversed by the counter-example,
|
||||||
/// and the heap of visited states with their indexes.
|
/// and the heap of visited states with their indexes.
|
||||||
class couvreur99_check_status
|
class SPOT_API couvreur99_check_status
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
couvreur99_check_status(const tgba* aut,
|
couvreur99_check_status(const tgba* aut,
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,8 @@
|
||||||
|
// -*- coding: utf-8 -*-
|
||||||
|
// Copyright (C) 2013 Laboratoire de Recherche et Developpement
|
||||||
|
// de l'Epita (LRDE).
|
||||||
// Copyright (C) 2004, 2005 Laboratoire d'Informatique de Paris 6 (LIP6),
|
// Copyright (C) 2004, 2005 Laboratoire d'Informatique de Paris 6 (LIP6),
|
||||||
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
|
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
|
||||||
// et Marie Curie.
|
// et Marie Curie.
|
||||||
//
|
//
|
||||||
// This file is part of Spot, a model checking library.
|
// This file is part of Spot, a model checking library.
|
||||||
|
|
@ -51,8 +54,8 @@ namespace spot
|
||||||
isbn = {3-540-21299-X}
|
isbn = {3-540-21299-X}
|
||||||
}
|
}
|
||||||
\endverbatim */
|
\endverbatim */
|
||||||
emptiness_check* explicit_gv04_check(const tgba* a,
|
SPOT_API emptiness_check*
|
||||||
option_map o = option_map());
|
explicit_gv04_check(const tgba* a, option_map o = option_map());
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // SPOT_TGBAALGOS_GV04_HH
|
#endif // SPOT_TGBAALGOS_GV04_HH
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
// -*- coding: utf-8 -*-
|
// -*- coding: utf-8 -*-
|
||||||
// Copyright (C) 2012 Laboratoire de Recherche et
|
// Copyright (C) 2012, 2013 Laboratoire de Recherche et
|
||||||
// Développement de l'Epita (LRDE).
|
// Développement de l'Epita (LRDE).
|
||||||
//
|
//
|
||||||
// This file is part of Spot, a model checking library.
|
// This file is part of Spot, a model checking library.
|
||||||
|
|
@ -32,14 +32,16 @@ namespace spot
|
||||||
/// The automaton is deterministic if it has 0 nondeterministic states,
|
/// The automaton is deterministic if it has 0 nondeterministic states,
|
||||||
/// but it is more efficient to call is_deterministic() if you do not
|
/// but it is more efficient to call is_deterministic() if you do not
|
||||||
/// care about the number of nondeterministic states.
|
/// care about the number of nondeterministic states.
|
||||||
unsigned count_nondet_states(const tgba* aut);
|
SPOT_API unsigned
|
||||||
|
count_nondet_states(const tgba* aut);
|
||||||
|
|
||||||
/// \brief Return true iff \a aut is deterministic.
|
/// \brief Return true iff \a aut is deterministic.
|
||||||
///
|
///
|
||||||
/// This function is more efficient than count_nondet_states() when
|
/// This function is more efficient than count_nondet_states() when
|
||||||
/// the automaton is nondeterministic, because it can return before
|
/// the automaton is nondeterministic, because it can return before
|
||||||
/// the entire automaton has been explored.
|
/// the entire automaton has been explored.
|
||||||
bool is_deterministic(const tgba* aut);
|
SPOT_API bool
|
||||||
|
is_deterministic(const tgba* aut);
|
||||||
|
|
||||||
/// @}
|
/// @}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,7 @@
|
||||||
#include "cycles.hh"
|
#include "cycles.hh"
|
||||||
#include "tgba/tgbaexplicit.hh"
|
#include "tgba/tgbaexplicit.hh"
|
||||||
#include "ltlast/formula.hh"
|
#include "ltlast/formula.hh"
|
||||||
|
#include "isweakscc.hh"
|
||||||
|
|
||||||
namespace spot
|
namespace spot
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
// Copyright (C) 2012, 2013 Laboratoire de Recherche et Developpement de
|
// -*- coding: utf-8 -*-
|
||||||
|
// Copyright (C) 2012, 2013 Laboratoire de Recherche et Développement de
|
||||||
// l'Epita (LRDE).
|
// l'Epita (LRDE).
|
||||||
//
|
//
|
||||||
// This file is part of Spot, a model checking library.
|
// This file is part of Spot, a model checking library.
|
||||||
|
|
@ -42,7 +43,8 @@ namespace spot
|
||||||
/// necessarily weak.
|
/// necessarily weak.
|
||||||
/// For other accepting SCCs, this function enumerates all cycles in
|
/// For other accepting SCCs, this function enumerates all cycles in
|
||||||
/// the given SCC (it stops if it find a non-accepting cycle).
|
/// the given SCC (it stops if it find a non-accepting cycle).
|
||||||
bool is_inherently_weak_scc(scc_map& map, unsigned scc);
|
SPOT_API bool
|
||||||
|
is_inherently_weak_scc(scc_map& map, unsigned scc);
|
||||||
|
|
||||||
/// \brief Whether the SCC number \a scc in \a map is weak.
|
/// \brief Whether the SCC number \a scc in \a map is weak.
|
||||||
///
|
///
|
||||||
|
|
@ -52,7 +54,8 @@ namespace spot
|
||||||
/// Note that terminal SCCs are also weak with that definition.
|
/// Note that terminal SCCs are also weak with that definition.
|
||||||
///
|
///
|
||||||
/// The scc_map \a map should have been built already.
|
/// The scc_map \a map should have been built already.
|
||||||
bool is_weak_scc(scc_map& map, unsigned scc);
|
SPOT_API bool
|
||||||
|
is_weak_scc(scc_map& map, unsigned scc);
|
||||||
|
|
||||||
/// \brief Whether the SCC number \a scc in \a map is complete.
|
/// \brief Whether the SCC number \a scc in \a map is complete.
|
||||||
///
|
///
|
||||||
|
|
@ -60,7 +63,8 @@ namespace spot
|
||||||
/// a transition that stays into this SCC.
|
/// a transition that stays into this SCC.
|
||||||
///
|
///
|
||||||
/// The scc_map \a map should have been built already.
|
/// The scc_map \a map should have been built already.
|
||||||
bool is_complete_scc(scc_map& map, unsigned scc);
|
SPOT_API bool
|
||||||
|
is_complete_scc(scc_map& map, unsigned scc);
|
||||||
|
|
||||||
/// \brief Whether the SCC number \a scc in \a map is syntactically
|
/// \brief Whether the SCC number \a scc in \a map is syntactically
|
||||||
/// weak.
|
/// weak.
|
||||||
|
|
@ -70,7 +74,8 @@ namespace spot
|
||||||
/// syntactic-persistence formula.
|
/// syntactic-persistence formula.
|
||||||
///
|
///
|
||||||
/// The scc_map \a map should have been built already.
|
/// The scc_map \a map should have been built already.
|
||||||
bool is_syntactic_weak_scc(scc_map& map, unsigned scc);
|
SPOT_API bool
|
||||||
|
is_syntactic_weak_scc(scc_map& map, unsigned scc);
|
||||||
|
|
||||||
/// \brief Whether the SCC number \a scc in \a map is syntactically
|
/// \brief Whether the SCC number \a scc in \a map is syntactically
|
||||||
/// terminal.
|
/// terminal.
|
||||||
|
|
@ -80,14 +85,16 @@ namespace spot
|
||||||
/// syntactic-guarantee formula.
|
/// syntactic-guarantee formula.
|
||||||
///
|
///
|
||||||
/// The scc_map \a map should have been built already.
|
/// The scc_map \a map should have been built already.
|
||||||
bool is_syntactic_terminal_scc(scc_map& map, unsigned scc);
|
SPOT_API bool
|
||||||
|
is_syntactic_terminal_scc(scc_map& map, unsigned scc);
|
||||||
|
|
||||||
/// \brief Whether the SCC number \a scc in \a map is terminal.
|
/// \brief Whether the SCC number \a scc in \a map is terminal.
|
||||||
///
|
///
|
||||||
/// An SCC is terminal if it is weak, complete, and accepting.
|
/// An SCC is terminal if it is weak, complete, and accepting.
|
||||||
///
|
///
|
||||||
/// The scc_map \a map should have been built already.
|
/// The scc_map \a map should have been built already.
|
||||||
bool is_terminal_scc(scc_map& map, unsigned scc);
|
SPOT_API bool
|
||||||
|
is_terminal_scc(scc_map& map, unsigned scc);
|
||||||
|
|
||||||
/// @}
|
/// @}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -36,8 +36,8 @@ namespace spot
|
||||||
/// \param os Where to print.
|
/// \param os Where to print.
|
||||||
/// \param sba Assume \a g is an SBA and use LBTT's state-based
|
/// \param sba Assume \a g is an SBA and use LBTT's state-based
|
||||||
/// acceptance format (similar to LBT's format).
|
/// acceptance format (similar to LBT's format).
|
||||||
std::ostream& lbtt_reachable(std::ostream& os, const tgba* g,
|
SPOT_API std::ostream&
|
||||||
bool sba = false);
|
lbtt_reachable(std::ostream& os, const tgba* g, bool sba = false);
|
||||||
|
|
||||||
/// \ingroup tgba_io
|
/// \ingroup tgba_io
|
||||||
/// \brief Read an automaton in LBTT's format
|
/// \brief Read an automaton in LBTT's format
|
||||||
|
|
@ -51,12 +51,11 @@ namespace spot
|
||||||
/// \param envacc The environment of acceptance conditions into which parsing
|
/// \param envacc The environment of acceptance conditions into which parsing
|
||||||
/// should take place.
|
/// should take place.
|
||||||
/// \return the read tgba or 0 on error.
|
/// \return the read tgba or 0 on error.
|
||||||
const tgba* lbtt_parse(std::istream& is, std::string& error,
|
SPOT_API const tgba*
|
||||||
bdd_dict* dict,
|
lbtt_parse(std::istream& is, std::string& error,
|
||||||
ltl::environment& env
|
bdd_dict* dict,
|
||||||
= ltl::default_environment::instance(),
|
ltl::environment& env = ltl::default_environment::instance(),
|
||||||
ltl::environment& envacc
|
ltl::environment& envacc = ltl::default_environment::instance());
|
||||||
= ltl::default_environment::instance());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // SPOT_TGBAALGOS_LBTT_HH
|
#endif // SPOT_TGBAALGOS_LBTT_HH
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
// Copyright (C) 2009, 2010 Laboratoire de Recherche et Développement
|
// -*- coding: utf-8 -*-
|
||||||
|
// Copyright (C) 2009, 2010, 2013 Laboratoire de Recherche et Développement
|
||||||
// de l'Epita (LRDE).
|
// de l'Epita (LRDE).
|
||||||
//
|
//
|
||||||
// This file is part of Spot, a model checking library.
|
// This file is part of Spot, a model checking library.
|
||||||
|
|
@ -47,8 +48,9 @@ namespace spot
|
||||||
/// \param dict The spot::bdd_dict the constructed automata should use.
|
/// \param dict The spot::bdd_dict the constructed automata should use.
|
||||||
/// \param refined_rules If this parameter is set, refined rules are used.
|
/// \param refined_rules If this parameter is set, refined rules are used.
|
||||||
/// \return A spot::taa that recognizes the language of \a f.
|
/// \return A spot::taa that recognizes the language of \a f.
|
||||||
taa_tgba* ltl_to_taa(const ltl::formula* f, bdd_dict* dict,
|
SPOT_API taa_tgba*
|
||||||
bool refined_rules = false);
|
ltl_to_taa(const ltl::formula* f, bdd_dict* dict,
|
||||||
|
bool refined_rules = false);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // SPOT_TGBAALGOS_LTL2TAA_HH
|
#endif // SPOT_TGBAALGOS_LTL2TAA_HH
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,9 @@
|
||||||
|
// -*- coding: utf-8 -*-
|
||||||
// Copyright (C) 2010, 2011, 2012, 2013 Laboratoire de Recherche et
|
// Copyright (C) 2010, 2011, 2012, 2013 Laboratoire de Recherche et
|
||||||
// Développement de l'Epita (LRDE).
|
// Développement de l'Epita (LRDE).
|
||||||
// Copyright (C) 2003, 2004, 2005, 2006 Laboratoire d'Informatique de
|
// Copyright (C) 2003, 2004, 2005, 2006 Laboratoire d'Informatique de
|
||||||
// Paris 6 (LIP6), département Systèmes Répartis Coopératifs (SRC),
|
// Paris 6 (LIP6), département Systèmes Répartis Coopératifs (SRC),
|
||||||
// Université Pierre et Marie Curie.
|
// Université Pierre et Marie Curie.
|
||||||
//
|
//
|
||||||
// This file is part of Spot, a model checking library.
|
// This file is part of Spot, a model checking library.
|
||||||
//
|
//
|
||||||
|
|
@ -121,7 +122,7 @@ namespace spot
|
||||||
\endverbatim */
|
\endverbatim */
|
||||||
///
|
///
|
||||||
/// \return A spot::tgba_explicit that recognizes the language of \a f.
|
/// \return A spot::tgba_explicit that recognizes the language of \a f.
|
||||||
tgba_explicit_formula*
|
SPOT_API tgba_explicit_formula*
|
||||||
ltl_to_tgba_fm(const ltl::formula* f, bdd_dict* dict,
|
ltl_to_tgba_fm(const ltl::formula* f, bdd_dict* dict,
|
||||||
bool exprop = false, bool symb_merge = true,
|
bool exprop = false, bool symb_merge = true,
|
||||||
bool branching_postponement = false,
|
bool branching_postponement = false,
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,9 @@
|
||||||
// Copyright (C) 2003, 2004, 2005 Laboratoire d'Informatique de Paris 6 (LIP6),
|
// -*- coding: utf-8 -*-
|
||||||
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
|
// Copyright (C) 2013 Laboratoire de Recherche et Developpement
|
||||||
// et Marie Curie.
|
// de l'Epita (LRDE).
|
||||||
|
// Copyright (C) 2003, 2004, 2005 Laboratoire d'Informatique de Paris
|
||||||
|
// 6 (LIP6), département Systèmes Répartis Coopératifs (SRC),
|
||||||
|
// Université Pierre et Marie Curie.
|
||||||
//
|
//
|
||||||
// This file is part of Spot, a model checking library.
|
// This file is part of Spot, a model checking library.
|
||||||
//
|
//
|
||||||
|
|
@ -47,7 +50,8 @@ namespace spot
|
||||||
/// \param f The formula to translate into an automaton.
|
/// \param f The formula to translate into an automaton.
|
||||||
/// \param dict The spot::bdd_dict the constructed automata should use.
|
/// \param dict The spot::bdd_dict the constructed automata should use.
|
||||||
/// \return A spot::tgba_bdd_concrete that recognizes the language of \a f.
|
/// \return A spot::tgba_bdd_concrete that recognizes the language of \a f.
|
||||||
tgba_bdd_concrete* ltl_to_tgba_lacim(const ltl::formula* f, bdd_dict* dict);
|
SPOT_API tgba_bdd_concrete*
|
||||||
|
ltl_to_tgba_lacim(const ltl::formula* f, bdd_dict* dict);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // SPOT_TGBAALGOS_LTL2TGBA_LACIM_HH
|
#endif // SPOT_TGBAALGOS_LTL2TGBA_LACIM_HH
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,8 @@
|
||||||
|
// -*- coding: utf-8 -*-
|
||||||
|
// Copyright (C) 2013 Laboratoire de Recherche et Developpement
|
||||||
|
// de l'Epita (LRDE).
|
||||||
// Copyright (C) 2004, 2005 Laboratoire d'Informatique de Paris 6 (LIP6),
|
// Copyright (C) 2004, 2005 Laboratoire d'Informatique de Paris 6 (LIP6),
|
||||||
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
|
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
|
||||||
// et Marie Curie.
|
// et Marie Curie.
|
||||||
//
|
//
|
||||||
// This file is part of Spot, a model checking library.
|
// This file is part of Spot, a model checking library.
|
||||||
|
|
@ -94,8 +97,9 @@ namespace spot
|
||||||
///
|
///
|
||||||
/// \bug The name is misleading. Magic-search is the algorithm
|
/// \bug The name is misleading. Magic-search is the algorithm
|
||||||
/// from \c godefroid.93.pstv, not \c courcoubetis.92.fmsd.
|
/// from \c godefroid.93.pstv, not \c courcoubetis.92.fmsd.
|
||||||
emptiness_check* explicit_magic_search(const tgba *a,
|
SPOT_API emptiness_check*
|
||||||
option_map o = option_map());
|
explicit_magic_search(const tgba *a,
|
||||||
|
option_map o = option_map());
|
||||||
|
|
||||||
/// \brief Returns an emptiness checker on the spot::tgba automaton \a a.
|
/// \brief Returns an emptiness checker on the spot::tgba automaton \a a.
|
||||||
///
|
///
|
||||||
|
|
@ -124,8 +128,9 @@ namespace spot
|
||||||
///
|
///
|
||||||
/// \sa spot::explicit_magic_search
|
/// \sa spot::explicit_magic_search
|
||||||
///
|
///
|
||||||
emptiness_check* bit_state_hashing_magic_search(const tgba *a, size_t size,
|
SPOT_API emptiness_check*
|
||||||
option_map o = option_map());
|
bit_state_hashing_magic_search(const tgba *a, size_t size,
|
||||||
|
option_map o = option_map());
|
||||||
|
|
||||||
/// \brief Wrapper for the two magic_search implementations.
|
/// \brief Wrapper for the two magic_search implementations.
|
||||||
///
|
///
|
||||||
|
|
@ -133,7 +138,8 @@ namespace spot
|
||||||
/// bit_state_hashing_magic_search() according to the \c "bsh" option
|
/// bit_state_hashing_magic_search() according to the \c "bsh" option
|
||||||
/// in the \c option_map. If \c "bsh" is set and non null, its value
|
/// in the \c option_map. If \c "bsh" is set and non null, its value
|
||||||
/// is used as the size of the hash map.
|
/// is used as the size of the hash map.
|
||||||
emptiness_check* magic_search(const tgba *a, option_map o = option_map());
|
SPOT_API emptiness_check*
|
||||||
|
magic_search(const tgba *a, option_map o = option_map());
|
||||||
|
|
||||||
/// @}
|
/// @}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -57,7 +57,7 @@ namespace spot
|
||||||
/// \param a the automaton to convert into a minimal deterministic monitor
|
/// \param a the automaton to convert into a minimal deterministic monitor
|
||||||
/// \pre Dead SCCs should have been removed from \a a before
|
/// \pre Dead SCCs should have been removed from \a a before
|
||||||
/// calling this function.
|
/// calling this function.
|
||||||
sba_explicit_number* minimize_monitor(const tgba* a);
|
SPOT_API sba_explicit_number* minimize_monitor(const tgba* a);
|
||||||
|
|
||||||
/// \brief Minimize a Büchi automaton in the WDBA class.
|
/// \brief Minimize a Büchi automaton in the WDBA class.
|
||||||
///
|
///
|
||||||
|
|
@ -93,7 +93,7 @@ namespace spot
|
||||||
month = oct
|
month = oct
|
||||||
}
|
}
|
||||||
\endverbatim */
|
\endverbatim */
|
||||||
sba_explicit_number* minimize_wdba(const tgba* a);
|
SPOT_API sba_explicit_number* minimize_wdba(const tgba* a);
|
||||||
|
|
||||||
/// \brief Minimize an automaton if it represents an obligation property.
|
/// \brief Minimize an automaton if it represents an obligation property.
|
||||||
///
|
///
|
||||||
|
|
@ -150,10 +150,10 @@ namespace spot
|
||||||
/// determinization step during minimize_wdba().) Note that
|
/// determinization step during minimize_wdba().) Note that
|
||||||
/// checking the size of the minimized WDBA occurs before ensuring
|
/// checking the size of the minimized WDBA occurs before ensuring
|
||||||
/// that the minimized WDBA is correct.
|
/// that the minimized WDBA is correct.
|
||||||
tgba* minimize_obligation(const tgba* aut_f,
|
SPOT_API tgba* minimize_obligation(const tgba* aut_f,
|
||||||
const ltl::formula* f = 0,
|
const ltl::formula* f = 0,
|
||||||
const tgba* aut_neg_f = 0,
|
const tgba* aut_neg_f = 0,
|
||||||
bool reject_bigger = false);
|
bool reject_bigger = false);
|
||||||
|
|
||||||
/// @}
|
/// @}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
// Copyright (C) 2009, 2011, 2012 Laboratoire de Recherche et
|
// -*- coding: utf-8 -*-
|
||||||
// Développement de l'Epita (LRDE).
|
// Copyright (C) 2009, 2011, 2012, 2013 Laboratoire de Recherche et
|
||||||
|
// Développement de l'Epita (LRDE).
|
||||||
// Copyright (C) 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
|
// Copyright (C) 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
|
||||||
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
|
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
|
||||||
// et Marie Curie.
|
// et Marie Curie.
|
||||||
//
|
//
|
||||||
// This file is part of Spot, a model checking library.
|
// This file is part of Spot, a model checking library.
|
||||||
|
|
@ -41,10 +42,11 @@ namespace spot
|
||||||
/// it will be output as a comment.
|
/// it will be output as a comment.
|
||||||
/// \param comments Whether to comment each state of the never clause
|
/// \param comments Whether to comment each state of the never clause
|
||||||
/// with the label of the \a g automaton.
|
/// with the label of the \a g automaton.
|
||||||
std::ostream& never_claim_reachable(std::ostream& os,
|
SPOT_API std::ostream&
|
||||||
const tgba* g,
|
never_claim_reachable(std::ostream& os,
|
||||||
const ltl::formula* f = 0,
|
const tgba* g,
|
||||||
bool comments = false);
|
const ltl::formula* f = 0,
|
||||||
|
bool comments = false);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // SPOT_TGBAALGOS_NEVERCLAIM_HH
|
#endif // SPOT_TGBAALGOS_NEVERCLAIM_HH
|
||||||
|
|
|
||||||
|
|
@ -56,7 +56,7 @@ namespace spot
|
||||||
/// when minimized_obligation failed to produce an automaton smaller
|
/// when minimized_obligation failed to produce an automaton smaller
|
||||||
/// than its input. pref=Small,level=Low will only run
|
/// than its input. pref=Small,level=Low will only run
|
||||||
/// simulation().
|
/// simulation().
|
||||||
class postprocessor
|
class SPOT_API postprocessor
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
/// \brief Construct a postprocessor.
|
/// \brief Construct a postprocessor.
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
// Copyright (C) 2011 Laboratoire de Recherche et Développement de
|
// -*- coding: utf-8 -*-
|
||||||
// l'Epita.
|
// Copyright (C) 2011, 2013 Laboratoire de Recherche et Développement
|
||||||
|
// de l'Epita.
|
||||||
// Copyright (C) 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
|
// Copyright (C) 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
|
||||||
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
|
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
|
||||||
// et Marie Curie.
|
// et Marie Curie.
|
||||||
//
|
//
|
||||||
// This file is part of Spot, a model checking library.
|
// This file is part of Spot, a model checking library.
|
||||||
|
|
@ -29,7 +30,7 @@
|
||||||
namespace spot
|
namespace spot
|
||||||
{
|
{
|
||||||
|
|
||||||
struct power_map
|
struct SPOT_API power_map
|
||||||
{
|
{
|
||||||
typedef std::set<const state*, state_ptr_less_than> power_state;
|
typedef std::set<const state*, state_ptr_less_than> power_state;
|
||||||
typedef std::map<int, power_state> power_map_data;
|
typedef std::map<int, power_state> power_map_data;
|
||||||
|
|
@ -86,8 +87,10 @@ namespace spot
|
||||||
/// If \a pm is supplied it will be filled with the set of original states
|
/// If \a pm is supplied it will be filled with the set of original states
|
||||||
/// associated to each state of the deterministic automaton.
|
/// associated to each state of the deterministic automaton.
|
||||||
//@{
|
//@{
|
||||||
tgba_explicit_number* tgba_powerset(const tgba* aut, power_map& pm);
|
SPOT_API tgba_explicit_number*
|
||||||
tgba_explicit_number* tgba_powerset(const tgba* aut);
|
tgba_powerset(const tgba* aut, power_map& pm);
|
||||||
|
SPOT_API tgba_explicit_number*
|
||||||
|
tgba_powerset(const tgba* aut);
|
||||||
//@}
|
//@}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,8 @@
|
||||||
|
// -*- coding: utf-8 -*-
|
||||||
|
// Copyright (C) 2013 Laboratoire de Recherche et Developpement
|
||||||
|
// de l'Epita (LRDE).
|
||||||
// Copyright (C) 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
|
// Copyright (C) 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
|
||||||
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
|
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
|
||||||
// et Marie Curie.
|
// et Marie Curie.
|
||||||
//
|
//
|
||||||
// This file is part of Spot, a model checking library.
|
// This file is part of Spot, a model checking library.
|
||||||
|
|
@ -20,7 +23,8 @@
|
||||||
#ifndef SPOT_TGBAALGOS_PROJRUN_HH
|
#ifndef SPOT_TGBAALGOS_PROJRUN_HH
|
||||||
# define SPOT_TGBAALGOS_PROJRUN_HH
|
# define SPOT_TGBAALGOS_PROJRUN_HH
|
||||||
|
|
||||||
#include <iosfwd>
|
# include "misc/common.hh"
|
||||||
|
# include <iosfwd>
|
||||||
|
|
||||||
namespace spot
|
namespace spot
|
||||||
{
|
{
|
||||||
|
|
@ -37,9 +41,10 @@ namespace spot
|
||||||
/// \param a_run the automata on which the run was generated
|
/// \param a_run the automata on which the run was generated
|
||||||
/// \param a_proj the automata on which to project the run
|
/// \param a_proj the automata on which to project the run
|
||||||
/// \return true iff the run could be completed
|
/// \return true iff the run could be completed
|
||||||
tgba_run* project_tgba_run(const tgba* a_run,
|
SPOT_API tgba_run*
|
||||||
const tgba* a_proj,
|
project_tgba_run(const tgba* a_run, const tgba* a_proj,
|
||||||
const tgba_run* run);
|
|
||||||
|
const tgba_run* run);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // SPOT_TGBAALGOS_PROJRUN_HH
|
#endif // SPOT_TGBAALGOS_PROJRUN_HH
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
// Copyright (C) 2011 Laboratoire de Recherche et Developpement de
|
// -*- coding: utf-8 -*-
|
||||||
|
// Copyright (C) 2011, 2013 Laboratoire de Recherche et Developpement de
|
||||||
// l'Epita (LRDE).
|
// l'Epita (LRDE).
|
||||||
// Copyright (C) 2004, 2005 Laboratoire d'Informatique de Paris 6 (LIP6),
|
// Copyright (C) 2004, 2005 Laboratoire d'Informatique de Paris 6 (LIP6),
|
||||||
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
|
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
|
||||||
// et Marie Curie.
|
// et Marie Curie.
|
||||||
//
|
//
|
||||||
// This file is part of Spot, a model checking library.
|
// This file is part of Spot, a model checking library.
|
||||||
|
|
@ -77,7 +78,7 @@ namespace spot
|
||||||
/// \f$1+(n-1)d\f$ and variance \f$(n-1)d(1-d)\f$. (This is less
|
/// \f$1+(n-1)d\f$ and variance \f$(n-1)d(1-d)\f$. (This is less
|
||||||
/// accurate, but faster than considering all possible \a n
|
/// accurate, but faster than considering all possible \a n
|
||||||
/// successors one by one.)
|
/// successors one by one.)
|
||||||
tgba*
|
SPOT_API tgba*
|
||||||
random_graph(int n, float d,
|
random_graph(int n, float d,
|
||||||
const ltl::atomic_prop_set* ap, bdd_dict* dict,
|
const ltl::atomic_prop_set* ap, bdd_dict* dict,
|
||||||
int n_acc = 0, float a = 0.1, float t = 0.5,
|
int n_acc = 0, float a = 0.1, float t = 0.5,
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
// Copyright (C) 2008, 2009, 2011 Laboratoire de Recherche et Développement
|
// -*- coding: utf-8 -*-
|
||||||
// de l'Epita (LRDE).
|
// Copyright (C) 2008, 2009, 2011, 2013 Laboratoire de Recherche et
|
||||||
|
// Développement de l'Epita (LRDE).
|
||||||
// Copyright (C) 2003, 2004 Laboratoire d'Informatique de Paris 6
|
// Copyright (C) 2003, 2004 Laboratoire d'Informatique de Paris 6
|
||||||
// (LIP6), département Systèmes Répartis Coopératifs (SRC), Université
|
// (LIP6), département Systèmes Répartis Coopératifs (SRC), Université
|
||||||
// Pierre et Marie Curie.
|
// Pierre et Marie Curie.
|
||||||
//
|
//
|
||||||
// This file is part of Spot, a model checking library.
|
// This file is part of Spot, a model checking library.
|
||||||
|
|
@ -31,7 +32,7 @@ namespace spot
|
||||||
{
|
{
|
||||||
/// \ingroup tgba_generic
|
/// \ingroup tgba_generic
|
||||||
/// \brief Iterate over all reachable states of a spot::tgba.
|
/// \brief Iterate over all reachable states of a spot::tgba.
|
||||||
class tgba_reachable_iterator
|
class SPOT_API tgba_reachable_iterator
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
tgba_reachable_iterator(const tgba* a);
|
tgba_reachable_iterator(const tgba* a);
|
||||||
|
|
@ -98,7 +99,8 @@ namespace spot
|
||||||
/// \ingroup tgba_generic
|
/// \ingroup tgba_generic
|
||||||
/// \brief An implementation of spot::tgba_reachable_iterator that browses
|
/// \brief An implementation of spot::tgba_reachable_iterator that browses
|
||||||
/// states depth first.
|
/// states depth first.
|
||||||
class tgba_reachable_iterator_depth_first : public tgba_reachable_iterator
|
class SPOT_API tgba_reachable_iterator_depth_first :
|
||||||
|
public tgba_reachable_iterator
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
tgba_reachable_iterator_depth_first(const tgba* a);
|
tgba_reachable_iterator_depth_first(const tgba* a);
|
||||||
|
|
@ -113,7 +115,8 @@ namespace spot
|
||||||
/// \ingroup tgba_generic
|
/// \ingroup tgba_generic
|
||||||
/// \brief An implementation of spot::tgba_reachable_iterator that browses
|
/// \brief An implementation of spot::tgba_reachable_iterator that browses
|
||||||
/// states breadth first.
|
/// states breadth first.
|
||||||
class tgba_reachable_iterator_breadth_first : public tgba_reachable_iterator
|
class SPOT_API tgba_reachable_iterator_breadth_first :
|
||||||
|
public tgba_reachable_iterator
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
tgba_reachable_iterator_breadth_first(const tgba* a);
|
tgba_reachable_iterator_breadth_first(const tgba* a);
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
// -*- coding: utf-8 -*-
|
||||||
// Copyright (C) 2010, 2013 Laboratoire de Recherche et Développement de
|
// Copyright (C) 2010, 2013 Laboratoire de Recherche et Développement de
|
||||||
// l'Epita.
|
// l'Epita.
|
||||||
// Copyright (C) 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
|
// Copyright (C) 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
|
||||||
|
|
@ -22,6 +23,8 @@
|
||||||
#ifndef SPOT_TGBAALGOS_REDUCERUN_HH
|
#ifndef SPOT_TGBAALGOS_REDUCERUN_HH
|
||||||
# define SPOT_TGBAALGOS_REDUCERUN_HH
|
# define SPOT_TGBAALGOS_REDUCERUN_HH
|
||||||
|
|
||||||
|
# include "misc/common.hh"
|
||||||
|
|
||||||
namespace spot
|
namespace spot
|
||||||
{
|
{
|
||||||
class tgba;
|
class tgba;
|
||||||
|
|
@ -32,7 +35,8 @@ namespace spot
|
||||||
///
|
///
|
||||||
/// Return a run which is accepting for \a a and that is no longer
|
/// Return a run which is accepting for \a a and that is no longer
|
||||||
/// than \a org.
|
/// than \a org.
|
||||||
tgba_run* reduce_run(const tgba* a, const tgba_run* org);
|
SPOT_API tgba_run*
|
||||||
|
reduce_run(const tgba* a, const tgba_run* org);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // SPOT_TGBAALGOS_REDUCERUN_HH
|
#endif // SPOT_TGBAALGOS_REDUCERUN_HH
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,9 @@
|
||||||
// Copyright (C) 2009, 2011, 2012 Laboratoire de Recherche et Développement
|
// -*- coding: utf-8 -*-
|
||||||
// de l'Epita (LRDE).
|
// Copyright (C) 2009, 2011, 2012, 2013 Laboratoire de Recherche et
|
||||||
|
// Développement de l'Epita (LRDE).
|
||||||
// Copyright (C) 2004, 2005, 2007 Laboratoire d'Informatique de
|
// Copyright (C) 2004, 2005, 2007 Laboratoire d'Informatique de
|
||||||
// Paris 6 (LIP6), département Systèmes Répartis Coopératifs (SRC),
|
// Paris 6 (LIP6), département Systèmes Répartis Coopératifs (SRC),
|
||||||
// Université Pierre et Marie Curie.
|
// Université Pierre et Marie Curie.
|
||||||
//
|
//
|
||||||
// This file is part of Spot, a model checking library.
|
// This file is part of Spot, a model checking library.
|
||||||
//
|
//
|
||||||
|
|
@ -19,6 +20,7 @@
|
||||||
// You should have received a copy of the GNU General Public License
|
// You should have received a copy of the GNU General Public License
|
||||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
#define SKIP_DEPRECATED_WARNING
|
||||||
#include "reductgba_sim.hh"
|
#include "reductgba_sim.hh"
|
||||||
#include "sccfilter.hh"
|
#include "sccfilter.hh"
|
||||||
#include "simulation.hh"
|
#include "simulation.hh"
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
// Copyright (C) 2009, 2010, 2011, 2012 Laboratoire de Recherche et
|
// -*- coding: utf-8 -*-
|
||||||
// Développement de l'Epita (LRDE).
|
// Copyright (C) 2009, 2010, 2011, 2012, 2013 Laboratoire de Recherche et
|
||||||
|
// Développement de l'Epita (LRDE).
|
||||||
// Copyright (C) 2004, 2005 Laboratoire d'Informatique de Paris 6 (LIP6),
|
// Copyright (C) 2004, 2005 Laboratoire d'Informatique de Paris 6 (LIP6),
|
||||||
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
|
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
|
||||||
// et Marie Curie.
|
// et Marie Curie.
|
||||||
//
|
//
|
||||||
// This file is part of Spot, a model checking library.
|
// This file is part of Spot, a model checking library.
|
||||||
|
|
@ -23,6 +24,14 @@
|
||||||
#ifndef SPOT_TGBAALGOS_REDUCTGBA_SIM_HH
|
#ifndef SPOT_TGBAALGOS_REDUCTGBA_SIM_HH
|
||||||
#define SPOT_TGBAALGOS_REDUCTGBA_SIM_HH
|
#define SPOT_TGBAALGOS_REDUCTGBA_SIM_HH
|
||||||
|
|
||||||
|
#if __GNUC__
|
||||||
|
#ifndef SKIP_DEPRECATED_WARNING
|
||||||
|
#warning This file is deprecated. Use postproc.hh instead.
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "misc/common.hh"
|
||||||
|
|
||||||
namespace spot
|
namespace spot
|
||||||
{
|
{
|
||||||
class tgba;
|
class tgba;
|
||||||
|
|
@ -55,7 +64,6 @@ namespace spot
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
#if __GNUC__
|
|
||||||
/// \brief Simplify the automaton using a simulation relation.
|
/// \brief Simplify the automaton using a simulation relation.
|
||||||
///
|
///
|
||||||
/// Do not use this obsolete function.
|
/// Do not use this obsolete function.
|
||||||
|
|
@ -66,23 +74,10 @@ namespace spot
|
||||||
/// simulation-related flag will cause direct simulation
|
/// simulation-related flag will cause direct simulation
|
||||||
/// to be applied.
|
/// to be applied.
|
||||||
/// \return the reduced automaton
|
/// \return the reduced automaton
|
||||||
/// \deprecated Use scc_filter(), minimize_wdba(), or simulation().
|
/// \deprecated Use scc_filter(), minimize_wdba(), simulation(),
|
||||||
const tgba* reduc_tgba_sim(const tgba* a, int opt = Reduce_All)
|
/// or postprocessor.
|
||||||
__attribute__ ((deprecated));
|
SPOT_API SPOT_DEPRECATED
|
||||||
#else
|
|
||||||
/// \brief Simplify the automaton using a simulation relation.
|
|
||||||
///
|
|
||||||
/// Do not use this obsolete function.
|
|
||||||
///
|
|
||||||
/// \param a the automata to reduce
|
|
||||||
/// \param opt a conjonction of spot::reduce_tgba_options specifying
|
|
||||||
/// which optimizations to apply. Actually any
|
|
||||||
/// simulation-related flag will cause direct simulation
|
|
||||||
/// to be applied.
|
|
||||||
/// \return the reduced automaton
|
|
||||||
/// \deprecated Use scc_filter(), minimize_wdba(), or simulation().
|
|
||||||
const tgba* reduc_tgba_sim(const tgba* a, int opt = Reduce_All);
|
const tgba* reduc_tgba_sim(const tgba* a, int opt = Reduce_All);
|
||||||
#endif
|
|
||||||
|
|
||||||
/// @}
|
/// @}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,8 @@
|
||||||
|
// -*- coding: utf-8 -*-
|
||||||
|
// Copyright (C) 2013 Laboratoire de Recherche et Developpement
|
||||||
|
// de l'Epita (LRDE).
|
||||||
// Copyright (C) 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
|
// Copyright (C) 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
|
||||||
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
|
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
|
||||||
// et Marie Curie.
|
// et Marie Curie.
|
||||||
//
|
//
|
||||||
// This file is part of Spot, a model checking library.
|
// This file is part of Spot, a model checking library.
|
||||||
|
|
@ -20,7 +23,8 @@
|
||||||
#ifndef SPOT_TGBAALGOS_REPLAYRUN_HH
|
#ifndef SPOT_TGBAALGOS_REPLAYRUN_HH
|
||||||
# define SPOT_TGBAALGOS_REPLAYRUN_HH
|
# define SPOT_TGBAALGOS_REPLAYRUN_HH
|
||||||
|
|
||||||
#include <iosfwd>
|
# include "misc/common.hh"
|
||||||
|
# include <iosfwd>
|
||||||
|
|
||||||
namespace spot
|
namespace spot
|
||||||
{
|
{
|
||||||
|
|
@ -42,8 +46,9 @@ namespace spot
|
||||||
/// \param debug if set the output will be more verbose and extra
|
/// \param debug if set the output will be more verbose and extra
|
||||||
/// debugging informations will be output on failure
|
/// debugging informations will be output on failure
|
||||||
/// \return true iff the run could be completed
|
/// \return true iff the run could be completed
|
||||||
bool replay_tgba_run(std::ostream& os, const tgba* a, const tgba_run* run,
|
SPOT_API bool
|
||||||
bool debug = false);
|
replay_tgba_run(std::ostream& os, const tgba* a, const tgba_run* run,
|
||||||
|
bool debug = false);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // SPOT_TGBAALGOS_REPLAYRUN_HH
|
#endif // SPOT_TGBAALGOS_REPLAYRUN_HH
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
// Copyright (C) 2011 Laboratoire de Recherche et Developpement de
|
// -*- coding: utf-8 -*-
|
||||||
// l'Epita (LRDE).
|
// Copyright (C) 2011, 2013 Laboratoire de Recherche et Developpement
|
||||||
|
// de l'Epita (LRDE).
|
||||||
// Copyright (C) 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
|
// Copyright (C) 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
|
||||||
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
|
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
|
||||||
// et Marie Curie.
|
// et Marie Curie.
|
||||||
//
|
//
|
||||||
// This file is part of Spot, a model checking library.
|
// This file is part of Spot, a model checking library.
|
||||||
|
|
@ -34,7 +35,7 @@ namespace spot
|
||||||
/// \brief Highlight a spot::tgba_run on a spot::tgba.
|
/// \brief Highlight a spot::tgba_run on a spot::tgba.
|
||||||
///
|
///
|
||||||
/// An instance of this class can be passed to spot::dotty_reachable.
|
/// An instance of this class can be passed to spot::dotty_reachable.
|
||||||
class tgba_run_dotty_decorator: public dotty_decorator
|
class SPOT_API tgba_run_dotty_decorator: public dotty_decorator
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
tgba_run_dotty_decorator(const tgba_run* run);
|
tgba_run_dotty_decorator(const tgba_run* run);
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
// Copyright (C) 2010, 2011 Laboratoire de Recherche et Développement de
|
// -*- coding: utf-8 -*-
|
||||||
// l'Epita (LRDE)
|
// Copyright (C) 2010, 2011, 2013 Laboratoire de Recherche et
|
||||||
|
// Développement de l'Epita (LRDE)
|
||||||
//
|
//
|
||||||
// This file is part of Spot, a model checking library.
|
// This file is part of Spot, a model checking library.
|
||||||
//
|
//
|
||||||
|
|
@ -45,7 +46,8 @@ namespace spot
|
||||||
/// \param sm an scc_map of the automaton if available (it will be
|
/// \param sm an scc_map of the automaton if available (it will be
|
||||||
/// built otherwise. If you supply an scc_map you should call
|
/// built otherwise. If you supply an scc_map you should call
|
||||||
/// build_map() before passing it to this function.
|
/// build_map() before passing it to this function.
|
||||||
bool is_guarantee_automaton(const tgba* aut, const scc_map* sm = 0);
|
SPOT_API bool
|
||||||
|
is_guarantee_automaton(const tgba* aut, const scc_map* sm = 0);
|
||||||
|
|
||||||
/// \brief Whether a minimized WDBA represents a safety property.
|
/// \brief Whether a minimized WDBA represents a safety property.
|
||||||
///
|
///
|
||||||
|
|
@ -54,8 +56,8 @@ namespace spot
|
||||||
/// only accepting transitions.
|
/// only accepting transitions.
|
||||||
///
|
///
|
||||||
/// \param aut the automaton to check
|
/// \param aut the automaton to check
|
||||||
bool is_safety_mwdba(const tgba* aut);
|
SPOT_API bool
|
||||||
|
is_safety_mwdba(const tgba* aut);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,9 @@
|
||||||
// Copyright (C) 2003, 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
|
// -*- coding: utf-8 -*-
|
||||||
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
|
// Copyright (C) 2013 Laboratoire de Recherche et Developpement
|
||||||
// et Marie Curie.
|
// de l'Epita (LRDE).
|
||||||
|
// Copyright (C) 2003, 2004 Laboratoire d'Informatique de Paris 6
|
||||||
|
// (LIP6), département Systèmes Répartis Coopératifs (SRC), Université
|
||||||
|
// Pierre et Marie Curie.
|
||||||
//
|
//
|
||||||
// This file is part of Spot, a model checking library.
|
// This file is part of Spot, a model checking library.
|
||||||
//
|
//
|
||||||
|
|
@ -27,7 +30,8 @@ namespace spot
|
||||||
{
|
{
|
||||||
/// \ingroup tgba_io
|
/// \ingroup tgba_io
|
||||||
/// \brief Save reachable states in text format.
|
/// \brief Save reachable states in text format.
|
||||||
std::ostream& tgba_save_reachable(std::ostream& os, const tgba* g);
|
SPOT_API std::ostream&
|
||||||
|
tgba_save_reachable(std::ostream& os, const tgba* g);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // SPOT_TGBAALGOS_SAVE_HH
|
#endif // SPOT_TGBAALGOS_SAVE_HH
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
// -*- coding: utf-8 -*-
|
// -*- coding: utf-8 -*-
|
||||||
// Copyright (C) 2008, 2009, 2010, 2011, 2012 Laboratoire de Recherche
|
// Copyright (C) 2008, 2009, 2010, 2011, 2012, 2013 Laboratoire de
|
||||||
// et Développement de l'Epita.
|
// Recherche et Développement de l'Epita.
|
||||||
//
|
//
|
||||||
// This file is part of Spot, a model checking library.
|
// This file is part of Spot, a model checking library.
|
||||||
//
|
//
|
||||||
|
|
@ -31,7 +31,7 @@
|
||||||
namespace spot
|
namespace spot
|
||||||
{
|
{
|
||||||
|
|
||||||
struct scc_stats
|
struct SPOT_API scc_stats
|
||||||
{
|
{
|
||||||
/// Total number of SCCs.
|
/// Total number of SCCs.
|
||||||
unsigned scc_total;
|
unsigned scc_total;
|
||||||
|
|
@ -67,7 +67,7 @@ namespace spot
|
||||||
};
|
};
|
||||||
|
|
||||||
/// Build a map of Strongly Connected components in in a TGBA.
|
/// Build a map of Strongly Connected components in in a TGBA.
|
||||||
class scc_map
|
class SPOT_API scc_map
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
typedef std::map<unsigned, bdd> succ_type;
|
typedef std::map<unsigned, bdd> succ_type;
|
||||||
|
|
@ -247,13 +247,15 @@ namespace spot
|
||||||
unsigned self_loops_; // Self loops count.
|
unsigned self_loops_; // Self loops count.
|
||||||
};
|
};
|
||||||
|
|
||||||
scc_stats build_scc_stats(const tgba* a);
|
SPOT_API scc_stats
|
||||||
scc_stats build_scc_stats(const scc_map& m);
|
build_scc_stats(const tgba* a);
|
||||||
|
SPOT_API scc_stats
|
||||||
|
build_scc_stats(const scc_map& m);
|
||||||
|
|
||||||
std::ostream& dump_scc_dot(const tgba* a, std::ostream& out,
|
SPOT_API std::ostream&
|
||||||
bool verbose = false);
|
dump_scc_dot(const tgba* a, std::ostream& out, bool verbose = false);
|
||||||
std::ostream& dump_scc_dot(const scc_map& m, std::ostream& out,
|
SPOT_API std::ostream&
|
||||||
bool verbose = false);
|
dump_scc_dot(const scc_map& m, std::ostream& out, bool verbose = false);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // SPOT_TGBAALGOS_SCC_HH
|
#endif // SPOT_TGBAALGOS_SCC_HH
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
// -*- coding: utf-8 -*-
|
||||||
// Copyright (C) 2009, 2010, 2012, 2013 Laboratoire de Recherche et
|
// Copyright (C) 2009, 2010, 2012, 2013 Laboratoire de Recherche et
|
||||||
// Developpement de l'Epita (LRDE).
|
// Developpement de l'Epita (LRDE).
|
||||||
//
|
//
|
||||||
|
|
@ -61,9 +62,10 @@ namespace spot
|
||||||
/// (i.e., transitions leaving accepting states are all marked as
|
/// (i.e., transitions leaving accepting states are all marked as
|
||||||
/// accepting) may destroy this property. Use scc_filter_states()
|
/// accepting) may destroy this property. Use scc_filter_states()
|
||||||
/// instead.
|
/// instead.
|
||||||
tgba* scc_filter(const tgba* aut, bool remove_all_useless = false,
|
SPOT_API tgba*
|
||||||
scc_map* given_sm = 0, bdd susp = bddtrue,
|
scc_filter(const tgba* aut, bool remove_all_useless = false,
|
||||||
bool early_susp = false, bdd ignored = bddtrue);
|
scc_map* given_sm = 0, bdd susp = bddtrue,
|
||||||
|
bool early_susp = false, bdd ignored = bddtrue);
|
||||||
|
|
||||||
/// \brief Prune unaccepting SCCs.
|
/// \brief Prune unaccepting SCCs.
|
||||||
///
|
///
|
||||||
|
|
@ -73,7 +75,8 @@ namespace spot
|
||||||
/// Especially, if the input TGBA has the SBA property, (i.e.,
|
/// Especially, if the input TGBA has the SBA property, (i.e.,
|
||||||
/// transitions leaving accepting states are all marked as
|
/// transitions leaving accepting states are all marked as
|
||||||
/// accepting), then the output TGBA will also have that property.
|
/// accepting), then the output TGBA will also have that property.
|
||||||
tgba* scc_filter_states(const tgba* aut, scc_map* given_sm = 0);
|
SPOT_API tgba*
|
||||||
|
scc_filter_states(const tgba* aut, scc_map* given_sm = 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // SPOT_TGBAALGOS_SCC_HH
|
#endif // SPOT_TGBAALGOS_SCC_HH
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,9 @@
|
||||||
// Copyright (C) 2004, 2005 Laboratoire d'Informatique de Paris 6 (LIP6),
|
// -*- coding: utf-8 -*-
|
||||||
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
|
// Copyright (C) 2013 Laboratoire de Recherche et Developpement
|
||||||
// et Marie Curie.
|
// de l'Epita (LRDE).
|
||||||
|
// Copyright (C) 2004, 2005 Laboratoire d'Informatique de Paris 6
|
||||||
|
// (LIP6), département Systèmes Répartis Coopératifs (SRC), Université
|
||||||
|
// Pierre et Marie Curie.
|
||||||
//
|
//
|
||||||
// This file is part of Spot, a model checking library.
|
// This file is part of Spot, a model checking library.
|
||||||
//
|
//
|
||||||
|
|
@ -99,8 +102,9 @@ namespace spot
|
||||||
///
|
///
|
||||||
/// \sa spot::explicit_magic_search
|
/// \sa spot::explicit_magic_search
|
||||||
///
|
///
|
||||||
emptiness_check* explicit_se05_search(const tgba *a,
|
SPOT_API emptiness_check*
|
||||||
option_map o = option_map());
|
explicit_se05_search(const tgba *a, option_map o = option_map());
|
||||||
|
|
||||||
/// \brief Returns an emptiness checker on the spot::tgba automaton \a a.
|
/// \brief Returns an emptiness checker on the spot::tgba automaton \a a.
|
||||||
///
|
///
|
||||||
/// \pre The automaton \a a must have at most one acceptance condition (i.e.
|
/// \pre The automaton \a a must have at most one acceptance condition (i.e.
|
||||||
|
|
@ -128,8 +132,9 @@ namespace spot
|
||||||
///
|
///
|
||||||
/// \sa spot::explicit_se05_search
|
/// \sa spot::explicit_se05_search
|
||||||
///
|
///
|
||||||
emptiness_check* bit_state_hashing_se05_search(const tgba *a, size_t size,
|
SPOT_API emptiness_check*
|
||||||
option_map o = option_map());
|
bit_state_hashing_se05_search(const tgba *a, size_t size,
|
||||||
|
option_map o = option_map());
|
||||||
|
|
||||||
|
|
||||||
/// \brief Wrapper for the two se05 implementations.
|
/// \brief Wrapper for the two se05 implementations.
|
||||||
|
|
@ -138,7 +143,8 @@ namespace spot
|
||||||
/// bit_state_hashing_se05_search() according to the \c "bsh" option
|
/// bit_state_hashing_se05_search() according to the \c "bsh" option
|
||||||
/// in the \c option_map. If \c "bsh" is set and non null, its value
|
/// in the \c option_map. If \c "bsh" is set and non null, its value
|
||||||
/// is used as the size of the hash map.
|
/// is used as the size of the hash map.
|
||||||
emptiness_check* se05(const tgba *a, option_map o);
|
SPOT_API emptiness_check*
|
||||||
|
se05(const tgba *a, option_map o);
|
||||||
|
|
||||||
/// @}
|
/// @}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,8 @@
|
||||||
#ifndef SPOT_TGBAALGOS_SIMULATION_HH
|
#ifndef SPOT_TGBAALGOS_SIMULATION_HH
|
||||||
# define SPOT_TGBAALGOS_SIMULATION_HH
|
# define SPOT_TGBAALGOS_SIMULATION_HH
|
||||||
|
|
||||||
|
# include "misc/common.hh"
|
||||||
|
|
||||||
namespace spot
|
namespace spot
|
||||||
{
|
{
|
||||||
class tgba;
|
class tgba;
|
||||||
|
|
@ -67,8 +69,8 @@ namespace spot
|
||||||
/// \param automaton the automaton to simulate.
|
/// \param automaton the automaton to simulate.
|
||||||
/// \return a new automaton which is at worst a copy of the received
|
/// \return a new automaton which is at worst a copy of the received
|
||||||
/// one
|
/// one
|
||||||
tgba* simulation(const tgba* automaton);
|
SPOT_API tgba* simulation(const tgba* automaton);
|
||||||
tgba* simulation_sba(const tgba* automaton);
|
SPOT_API tgba* simulation_sba(const tgba* automaton);
|
||||||
/// @}
|
/// @}
|
||||||
|
|
||||||
/// @{
|
/// @{
|
||||||
|
|
@ -118,8 +120,8 @@ namespace spot
|
||||||
/// \param automaton the automaton to simulate.
|
/// \param automaton the automaton to simulate.
|
||||||
/// \return a new automaton which is at worst a copy of the received
|
/// \return a new automaton which is at worst a copy of the received
|
||||||
/// one
|
/// one
|
||||||
tgba* cosimulation(const tgba* automaton);
|
SPOT_API tgba* cosimulation(const tgba* automaton);
|
||||||
tgba* cosimulation_sba(const tgba* automaton);
|
SPOT_API tgba* cosimulation_sba(const tgba* automaton);
|
||||||
/// @}
|
/// @}
|
||||||
|
|
||||||
/// @{
|
/// @{
|
||||||
|
|
@ -137,14 +139,15 @@ namespace spot
|
||||||
/// \param automaton the automaton to simulate.
|
/// \param automaton the automaton to simulate.
|
||||||
/// \return a new automaton which is at worst a copy of the received
|
/// \return a new automaton which is at worst a copy of the received
|
||||||
/// one
|
/// one
|
||||||
tgba* iterated_simulations(const tgba* automaton);
|
SPOT_API tgba* iterated_simulations(const tgba* automaton);
|
||||||
tgba* iterated_simulations_sba(const tgba* automaton);
|
SPOT_API tgba* iterated_simulations_sba(const tgba* automaton);
|
||||||
/// @}
|
/// @}
|
||||||
|
|
||||||
|
|
||||||
tgba* dont_care_simulation(const tgba* t, int limit = -1);
|
SPOT_API tgba*
|
||||||
|
dont_care_simulation(const tgba* t, int limit = -1);
|
||||||
|
|
||||||
tgba*
|
SPOT_API tgba*
|
||||||
dont_care_iterated_simulations(const tgba* t, int limit = -1);
|
dont_care_iterated_simulations(const tgba* t, int limit = -1);
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
// Copyright (C) 2008, 2011, 2012 Laboratoire de Recherche et
|
// -*- coding: utf-8 -*-
|
||||||
// Développement de l'Epita (LRDE).
|
// Copyright (C) 2008, 2011, 2012, 2013 Laboratoire de Recherche et
|
||||||
|
// Développement de l'Epita (LRDE).
|
||||||
// Copyright (C) 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
|
// Copyright (C) 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
|
||||||
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
|
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
|
||||||
// et Marie Curie.
|
// et Marie Curie.
|
||||||
//
|
//
|
||||||
// This file is part of Spot, a model checking library.
|
// This file is part of Spot, a model checking library.
|
||||||
|
|
@ -32,7 +33,7 @@ namespace spot
|
||||||
/// \addtogroup tgba_misc
|
/// \addtogroup tgba_misc
|
||||||
/// @{
|
/// @{
|
||||||
|
|
||||||
struct tgba_statistics
|
struct SPOT_API tgba_statistics
|
||||||
{
|
{
|
||||||
unsigned transitions;
|
unsigned transitions;
|
||||||
unsigned states;
|
unsigned states;
|
||||||
|
|
@ -41,7 +42,7 @@ namespace spot
|
||||||
std::ostream& dump(std::ostream& out) const;
|
std::ostream& dump(std::ostream& out) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct tgba_sub_statistics: public tgba_statistics
|
struct SPOT_API tgba_sub_statistics: public tgba_statistics
|
||||||
{
|
{
|
||||||
unsigned sub_transitions;
|
unsigned sub_transitions;
|
||||||
|
|
||||||
|
|
@ -50,12 +51,12 @@ namespace spot
|
||||||
};
|
};
|
||||||
|
|
||||||
/// \brief Compute statistics for an automaton.
|
/// \brief Compute statistics for an automaton.
|
||||||
tgba_statistics stats_reachable(const tgba* g);
|
SPOT_API tgba_statistics stats_reachable(const tgba* g);
|
||||||
/// \brief Compute subended statistics for an automaton.
|
/// \brief Compute subended statistics for an automaton.
|
||||||
tgba_sub_statistics sub_stats_reachable(const tgba* g);
|
SPOT_API tgba_sub_statistics sub_stats_reachable(const tgba* g);
|
||||||
|
|
||||||
|
|
||||||
class printable_formula: public printable_value<const ltl::formula*>
|
class SPOT_API printable_formula: public printable_value<const ltl::formula*>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
printable_formula&
|
printable_formula&
|
||||||
|
|
@ -74,7 +75,7 @@ namespace spot
|
||||||
/// This object can be configured to display various statistics
|
/// This object can be configured to display various statistics
|
||||||
/// about a TGBA. Some %-sequence of characters are interpreted in
|
/// about a TGBA. Some %-sequence of characters are interpreted in
|
||||||
/// the format string, and replaced by the corresponding statistics.
|
/// the format string, and replaced by the corresponding statistics.
|
||||||
class stat_printer: protected formater
|
class SPOT_API stat_printer: protected formater
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
stat_printer(std::ostream& os, const char* format);
|
stat_printer(std::ostream& os, const char* format);
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
// -*- coding: utf-8 -*-
|
// -*- coding: utf-8 -*-
|
||||||
// Copyright (C) 2012 Laboratoire de Recherche et Développement de
|
// Copyright (C) 2012, 2013 Laboratoire de Recherche et Développement de
|
||||||
// l'Epita (LRDE).
|
// l'Epita (LRDE).
|
||||||
//
|
//
|
||||||
// This file is part of Spot, a model checking library.
|
// This file is part of Spot, a model checking library.
|
||||||
|
|
@ -28,7 +28,8 @@ namespace spot
|
||||||
/// \brief Duplicate automaton \a a, removing all acceptance sets.
|
/// \brief Duplicate automaton \a a, removing all acceptance sets.
|
||||||
///
|
///
|
||||||
/// This is equivalent to marking all states/transitions as accepting.
|
/// This is equivalent to marking all states/transitions as accepting.
|
||||||
sba_explicit_number* strip_acceptance(const tgba* a);
|
SPOT_API sba_explicit_number*
|
||||||
|
strip_acceptance(const tgba* a);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // SPOT_TGBAALGOS_STRIPACC_HH
|
#endif // SPOT_TGBAALGOS_STRIPACC_HH
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,8 @@
|
||||||
|
// -*- coding: utf-8 -*-
|
||||||
|
// Copyright (C) 2013 Laboratoire de Recherche et Développement de
|
||||||
|
// l'Epita (LRDE).
|
||||||
// Copyright (C) 2004, 2005 Laboratoire d'Informatique de Paris 6 (LIP6),
|
// Copyright (C) 2004, 2005 Laboratoire d'Informatique de Paris 6 (LIP6),
|
||||||
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
|
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
|
||||||
// et Marie Curie.
|
// et Marie Curie.
|
||||||
//
|
//
|
||||||
// This file is part of Spot, a model checking library.
|
// This file is part of Spot, a model checking library.
|
||||||
|
|
@ -93,8 +96,8 @@ namespace spot
|
||||||
}
|
}
|
||||||
\endverbatim */
|
\endverbatim */
|
||||||
///
|
///
|
||||||
emptiness_check* explicit_tau03_search(const tgba *a,
|
SPOT_API emptiness_check*
|
||||||
option_map o = option_map());
|
explicit_tau03_search(const tgba *a, option_map o = option_map());
|
||||||
|
|
||||||
/// @}
|
/// @}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,8 @@
|
||||||
|
// -*- coding: utf-8 -*-
|
||||||
|
// Copyright (C) 2013 Laboratoire de Recherche et Développement de
|
||||||
|
// l'Epita (LRDE).
|
||||||
// Copyright (C) 2004, 2005 Laboratoire d'Informatique de Paris 6 (LIP6),
|
// Copyright (C) 2004, 2005 Laboratoire d'Informatique de Paris 6 (LIP6),
|
||||||
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
|
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
|
||||||
// et Marie Curie.
|
// et Marie Curie.
|
||||||
//
|
//
|
||||||
// This file is part of Spot, a model checking library.
|
// This file is part of Spot, a model checking library.
|
||||||
|
|
@ -95,8 +98,8 @@ namespace spot
|
||||||
/// the path stored in the blue stack. Such a vector is associated to each
|
/// the path stored in the blue stack. Such a vector is associated to each
|
||||||
/// state of this stack.
|
/// state of this stack.
|
||||||
///
|
///
|
||||||
emptiness_check* explicit_tau03_opt_search(const tgba *a,
|
SPOT_API emptiness_check*
|
||||||
option_map o = option_map());
|
explicit_tau03_opt_search(const tgba *a, option_map o = option_map());
|
||||||
|
|
||||||
/// @}
|
/// @}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -45,7 +45,7 @@ namespace spot
|
||||||
/// The semantic of these three methods is inherited from the
|
/// The semantic of these three methods is inherited from the
|
||||||
/// spot::postprocessor class, but the optimization level is
|
/// spot::postprocessor class, but the optimization level is
|
||||||
/// additionally used to select which LTL simplifications to enable.
|
/// additionally used to select which LTL simplifications to enable.
|
||||||
class translator: protected postprocessor
|
class SPOT_API translator: protected postprocessor
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
translator(ltl::ltl_simplifier* simpl, const option_map* opt = 0)
|
translator(ltl::ltl_simplifier* simpl, const option_map* opt = 0)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue