autfilt: add a --exclusive-ap option

* src/ltlvisit/exclusive.cc, src/ltlvisit/exclusive.hh: Implement
constrain() for automata.
* src/bin/autfilt.cc: Add --exclusive-ap option.
* src/tgba/bdddict.cc, src/tgba/bdddict.hh: Add a
has_registered_proposition() method.
* src/tgbatest/exclusive.test: New file.
* src/tgbatest/Makefile.am: Add it.
This commit is contained in:
Alexandre Duret-Lutz 2015-03-23 18:14:46 +01:00
parent 544c533ed3
commit fb7b7a944a
7 changed files with 216 additions and 8 deletions

View file

@ -1,9 +1,9 @@
// -*- coding: utf-8 -*-
// Copyright (C) 2011, 2012, 2013, 2014 Laboratoire de Recherche et
// Développement de l'Epita (LRDE).
// Copyright (C) 2003, 2004, 2006 Laboratoire d'Informatique de Paris 6 (LIP6),
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
// et Marie Curie.
// Copyright (C) 2011, 2012, 2013, 2014, 2015 Laboratoire de Recherche
// et Développement de l'Epita (LRDE).
// Copyright (C) 2003, 2004, 2006 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.
//
@ -126,7 +126,23 @@ namespace spot
}
/// @}
/// \brief Register an atomic proposition.
/// \brief whether a proposition has already been registered
///
/// If \a f has been registered for \a me, this returns
/// a non-negative value that is the BDD variable number.
/// Otherwise this returns -1.
/// @{
int has_registered_proposition(const ltl::formula* f,
const void* me);
template <typename T>
int has_registered_proposition(const ltl::formula* f,
std::shared_ptr<T> for_me)
{
return has_registered_proposition(f, for_me.get());
}
/// @}
/// \brief Register an acceptance variable.
///
/// Return (and maybe allocate) a BDD variable designating an
/// acceptance set associated to formula \a f. The \a for_me