* src/tgbaalgos/simulation.cc: Create the iterated_simulations. (direct_simulation) Add an attribute "stat" that represents the number of states and transitions of the resulting automaton. * src/tgbaalgos/simulation.hh: Declare the iterated_simulations. * src/tgbatest/spotlbtt.test: Test the iterated_simulations. * src/tgbatest/ltl2tgba.cc: Associate the option -RIS to the iterated_simulations.
99 lines
3.5 KiB
C++
99 lines
3.5 KiB
C++
// -*- coding: utf-8 -*-
|
|
// Copyright (C) 2012 Laboratoire de Recherche et Développement
|
|
// de l'Epita (LRDE).
|
|
//
|
|
// This file is part of Spot, a model checking library.
|
|
//
|
|
// Spot is free software; you can redistribute it and/or modify it
|
|
// under the terms of the GNU General Public License as published by
|
|
// the Free Software Foundation; either version 2 of the License, or
|
|
// (at your option) any later version.
|
|
//
|
|
// Spot is distributed in the hope that it will be useful, but WITHOUT
|
|
// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
// or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
|
|
// License for more details.
|
|
//
|
|
// You should have received a copy of the GNU General Public License
|
|
// along with Spot; see the file COPYING. If not, write to the Free
|
|
// Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
|
// 02111-1307, USA.
|
|
|
|
#ifndef SPOT_TGBAALGOS_SIMULATION_HH
|
|
# define SPOT_TGBAALGOS_SIMULATION_HH
|
|
|
|
|
|
namespace spot
|
|
{
|
|
class tgba;
|
|
|
|
/// \addtogroup tgba_reduction
|
|
/// @{
|
|
|
|
/// \brief Attempt to reduce the automaton by direct simulation When
|
|
/// the suffixes (letter and acceptance conditions) seen by one
|
|
/// state is included in the suffixes seen by another one, the first
|
|
/// one is merged with the second. The algorithm is based on the
|
|
/// following paper, but generalized to handle TGBA directly.
|
|
///
|
|
/// \verbatim
|
|
/// @InProceedings{ etessami.00.concur,
|
|
/// author = {Kousha Etessami and Gerard J. Holzmann},
|
|
/// title = {Optimizing {B\"u}chi Automata},
|
|
/// booktitle = {Proceedings of the 11th International Conference on
|
|
/// Concurrency Theory (Concur'00)},
|
|
/// pages = {153--167},
|
|
/// year = {2000},
|
|
/// editor = {C. Palamidessi},
|
|
/// volume = {1877},
|
|
/// series = {Lecture Notes in Computer Science},
|
|
/// address = {Pennsylvania, USA},
|
|
/// publisher = {Springer-Verlag}
|
|
/// }
|
|
/// \endverbatim
|
|
///
|
|
/// \param automaton the automaton to simulate.
|
|
/// \return a new automaton which is at worst a copy of the received
|
|
/// one
|
|
tgba* simulation(const tgba* automaton);
|
|
|
|
|
|
/// \brief Attempt to reduce the automaton by direct cosimulation.
|
|
/// When the prefixes (letter and acceptance conditions) seen by one
|
|
/// state is included in the prefixes seen by another one, the first
|
|
/// one is merged with the second. The algorithm is based on the
|
|
/// following paper, but generalized to handle TGBA directly.
|
|
/// \verbatim
|
|
/// @InProceedings{Somenzi:2000:EBA:647769.734097,
|
|
/// author = {Somenzi, Fabio and Bloem, Roderick},
|
|
/// title = {Efficient {B\"u}chi Automata from LTL Formulae},
|
|
/// booktitle = {Proceedings of the 12th International
|
|
/// Conference on Computer Aided Verification},
|
|
/// series = {CAV '00},
|
|
/// year = {2000},
|
|
/// isbn = {3-540-67770-4},
|
|
/// pages = {248--263},
|
|
/// numpages = {16},
|
|
/// url = {http://dl.acm.org/citation.cfm?id=647769.734097},
|
|
/// acmid = {734097},
|
|
/// publisher = {Springer-Verlag},
|
|
/// address = {London, UK, UK},
|
|
/// }
|
|
/// \endverbatim
|
|
/// \param automaton the automaton to simulate.
|
|
/// \return a new automaton which is at worst a copy of the received
|
|
/// one
|
|
tgba* cosimulation(const tgba* automaton);
|
|
|
|
|
|
/// \brief Run a loop: simulation / cosimulation / scc_filter until
|
|
/// a fix point is reached.
|
|
tgba* iterated_simulations(const tgba* automaton);
|
|
|
|
|
|
/// @}
|
|
} // End namespace spot.
|
|
|
|
|
|
|
|
#endif // !SPOT_TGBAALGOS_SIMULATION_HH
|