Disallow copy for security. * src/tgba/tgbabddconcrete.hh (tgba_bdd_concrete): Disallow copy. * src/tgba/tgbaexplicit.hh (tgba_explicit): Likewise. * src/tgba/tgbaexplicit.cc (tgba_explicit::operator=, tgba_explicit::tgba_explicit(tgba_explicit)): Remove. * src/tgba/tgbabddconcreteproduct.cc (tgba_bdd_concrete_product_factory::tgba_bdd_concrete_product_factory, product): Take operand automata as pointers. * src/tgba/tgbabddconcreteproduct.hh (product): Likewise. * src/tgba/tgbaproduct.cc, src/tgba/tgbaproduct.hh: (tgba_product): Disallow copy. (tgba_product::tgba_product): Take operand automata as pointers. * src/tgbaalgos/dotty.cc (dotty_state, dotty_rec, dotty_reachable): Take tgba arguments as pointer. * src/tgbaalgos/dotty.hh (dotty_reachable): Likewise. * src/tgbaalgos/lbtt.cc (fill_todo, lbtt_reachable): Likewise. * src/tgbaalgos/lbtt.hh (lbtt_reachable): Likewise. * src/tgbaalgos/ltl2tgba.cc, src/tgbaalgos/ltl2tgba.hh (ltl_to_tgba): Likewise. * src/tgbaalgos/save.cc (save_rec, tgba_save_reachable): Likewise. * src/tgbaalgos/save.hh (save): Likewise. * src/tgbatest/explicit.cc, src/tgbatest/explprod.cc, src/tgbatest/ltl2tgba.cc, src/tgbatest/ltlprod.cc, src/tgbatest/mixprod.cc, src/tgbatest/readsave.cc, src/tgbatest/spotlbtt.cc, src/tgbatest/tgbaread.cc, src/tgbatest/tripprod.cc: Likewise.
34 lines
1.3 KiB
C++
34 lines
1.3 KiB
C++
#ifndef SPOT_TGBAALGOS_LBTT_HH
|
|
# define SPOT_TGBAALGOS_LBTT_HH
|
|
|
|
#include "tgba/tgba.hh"
|
|
#include <iostream>
|
|
|
|
namespace spot
|
|
{
|
|
/// \brief Print reachable states in LBTT format.
|
|
///
|
|
/// Note that LBTT expects an automaton with transition
|
|
/// labeled by propositional formulae, and generalized
|
|
/// Büchi accepting conditions on \b states. This
|
|
/// is unlike our spot::tgba automata which put
|
|
/// both generalized accepting conditions and propositional
|
|
/// formulae) on \b transitions.
|
|
///
|
|
/// This algorithm will therefore produce an automata where
|
|
/// accepting conditions have been moved from each transition to
|
|
/// previous state. In the worst case, doing so will multiply the
|
|
/// number of states and transitions of the automata by
|
|
/// <code>2^|Acc|</code>. where <code>|Acc|</code> is the number of
|
|
/// accepting conditions used by the automata. (It can be a bit
|
|
/// more because LBTT allows only for one initial state:
|
|
/// lbtt_reachable() may also have to create an additional state in
|
|
/// case the source initial state had to be split.) You have been
|
|
/// warned.
|
|
///
|
|
/// \param g The automata to print.
|
|
/// \param os Where to print.
|
|
std::ostream& lbtt_reachable(std::ostream& os, const tgba* g);
|
|
}
|
|
|
|
#endif // SPOT_TGBAALGOS_LBTT_HH
|