mealy: make output_assignment the default for reduce_mealy
* spot/twaalgos/mealy_machine.hh: Here. Also cite the FORTE paper. * doc/spot.bib (renkin.22.forte): New entry.
This commit is contained in:
parent
b0165cf39c
commit
de9041bb31
2 changed files with 38 additions and 20 deletions
30
doc/spot.bib
30
doc/spot.bib
|
|
@ -214,13 +214,13 @@
|
||||||
doi = {10.1109/DepCoS-RELCOMEX.2009.31}
|
doi = {10.1109/DepCoS-RELCOMEX.2009.31}
|
||||||
}
|
}
|
||||||
|
|
||||||
@InProceedings{ cimatti.06.fmcad,
|
@InProceedings{ cimatti.06.fmcad,
|
||||||
author = {Cimatti, Alessandro and Roveri, Marco and Semprini, Simone and
|
author = {Cimatti, Alessandro and Roveri, Marco and Semprini, Simone
|
||||||
Tonetta, Stefano},
|
and Tonetta, Stefano},
|
||||||
title = {From {PSL} to {NBA}: a Modular Symbolic Encoding},
|
title = {From {PSL} to {NBA}: a Modular Symbolic Encoding},
|
||||||
booktitle = {Proceedings of the 6th conference on Formal Methods in Computer
|
booktitle = {Proceedings of the 6th conference on Formal Methods in
|
||||||
Aided Design (FMCAD'06)},
|
Computer Aided Design (FMCAD'06)},
|
||||||
pages = {125--133},
|
pages = {125--133},
|
||||||
year = {2006},
|
year = {2006},
|
||||||
publisher = {IEEE Computer Society},
|
publisher = {IEEE Computer Society},
|
||||||
doi = {10.1109/FMCAD.2006.19}
|
doi = {10.1109/FMCAD.2006.19}
|
||||||
|
|
@ -858,6 +858,22 @@
|
||||||
doi = {10.1007/978-3-030-59152-6_7}
|
doi = {10.1007/978-3-030-59152-6_7}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@InProceedings{ renkin.22.forte,
|
||||||
|
author = {Florian Renkin and Philipp Schlehuber-Caissier and
|
||||||
|
Alexandre Duret-Lutz and Adrien Pommellet},
|
||||||
|
title = {Effective Reductions of {M}ealy Machines},
|
||||||
|
year = 2022,
|
||||||
|
booktitle = {Proceedings of the 42nd International Conference on Formal
|
||||||
|
Techniques for Distributed Objects, Components, and Systems
|
||||||
|
(FORTE'22)},
|
||||||
|
series = {Lecture Notes in Computer Science},
|
||||||
|
volume = 13273,
|
||||||
|
pages = {170--187},
|
||||||
|
month = jun,
|
||||||
|
publisher = {Springer},
|
||||||
|
doi = {10.1007/978-3-031-08679-3_8}
|
||||||
|
}
|
||||||
|
|
||||||
@InProceedings{ rozier.07.spin,
|
@InProceedings{ rozier.07.spin,
|
||||||
author = {Kristin Y. Rozier and Moshe Y. Vardi},
|
author = {Kristin Y. Rozier and Moshe Y. Vardi},
|
||||||
title = {LTL Satisfiability Checking},
|
title = {LTL Satisfiability Checking},
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
// -*- coding: utf-8 -*-
|
// -*- coding: utf-8 -*-
|
||||||
// Copyright (C) 2021 Laboratoire de Recherche et Développement
|
// Copyright (C) 2021-2022 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.
|
||||||
|
|
@ -87,28 +87,30 @@ namespace spot
|
||||||
unsplit_mealy(const const_twa_graph_ptr& m);
|
unsplit_mealy(const const_twa_graph_ptr& m);
|
||||||
|
|
||||||
/// \brief reduce an (in)completely specified mealy machine
|
/// \brief reduce an (in)completely specified mealy machine
|
||||||
/// Based on signature inclusion or equality. This is not guaranteed
|
///
|
||||||
/// to find the minimal number of states but is usually faster.
|
/// This is a bisimulation based reduction, that optionally use
|
||||||
/// This also comes at another drawback:
|
/// inclusion between signatures to force some output when there is
|
||||||
/// All applicable sequences have to be infinite. Finite
|
/// a choice in order to favor more reductions. Only infinite
|
||||||
/// traces are disregarded
|
/// traces are considered. See \cite renkin.22.forte for details.
|
||||||
/// \param mm The mealy machine to be minimized, has to be unsplit
|
///
|
||||||
|
/// \param mm The mealy machine to be minimized, has to be unsplit.
|
||||||
/// \param output_assignment Whether or not to use output assignment
|
/// \param output_assignment Whether or not to use output assignment
|
||||||
/// \return A specialization of \c mm. Note that if mm is separated,
|
/// \return A specialization of \c mm. Note that if mm is separated,
|
||||||
/// the returned machine is separated as well.
|
/// the returned machine is separated as well.
|
||||||
/// \note See todo TACAS22 Effective reductions of mealy machines
|
/// @{
|
||||||
/// @{
|
|
||||||
SPOT_API twa_graph_ptr
|
SPOT_API twa_graph_ptr
|
||||||
reduce_mealy(const const_twa_graph_ptr& mm,
|
reduce_mealy(const const_twa_graph_ptr& mm,
|
||||||
bool output_assignment = false);
|
bool output_assignment = true);
|
||||||
|
|
||||||
SPOT_API void
|
SPOT_API void
|
||||||
reduce_mealy_here(twa_graph_ptr& mm,
|
reduce_mealy_here(twa_graph_ptr& mm,
|
||||||
bool output_assignment = false);
|
bool output_assignment = true);
|
||||||
/// @}
|
/// @}
|
||||||
|
|
||||||
/// \brief Minimizes an (in)completely specified mealy machine
|
/// \brief Minimizes an (in)completely specified mealy machine
|
||||||
/// The approach is described in \todo TACAS
|
///
|
||||||
|
/// The approach is described in \cite renkin.22.forte.
|
||||||
|
///
|
||||||
/// \param premin Use reduce_mealy before applying the
|
/// \param premin Use reduce_mealy before applying the
|
||||||
/// main algorithm if demanded AND
|
/// main algorithm if demanded AND
|
||||||
/// the original machine has no finite trace.
|
/// the original machine has no finite trace.
|
||||||
|
|
@ -159,4 +161,4 @@ namespace spot
|
||||||
SPOT_API void
|
SPOT_API void
|
||||||
simplify_mealy_here(twa_graph_ptr& m, synthesis_info& si,
|
simplify_mealy_here(twa_graph_ptr& m, synthesis_info& si,
|
||||||
bool split_out);
|
bool split_out);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue