product: rename the one-the-fly version as otf_product
This avoid compiler errors about ambiguous calls and make sure we are calling the intended algorithms everywhere (this wasn't the case). * src/tgba/tgbaproduct.hh (product, product_at): Rename as... (otf_product, otf_product_at): ... this. * iface/ltsmin/modelcheck.cc, src/bin/autfilt.cc, src/bin/ltlfilt.cc, src/tgbaalgos/minimize.cc, src/tgbaalgos/powerset.cc, src/tgbatest/ltl2tgba.cc, src/tgbatest/checkpsl.cc, src/tgbatest/complementation.cc, src/tgbatest/ltlprod.cc: Adjust callers.
This commit is contained in:
parent
a9748804e4
commit
94577d6519
10 changed files with 41 additions and 44 deletions
|
|
@ -1,6 +1,6 @@
|
|||
// -*- coding: utf-8 -*-
|
||||
// Copyright (C) 2011, 2012, 2013, 2014 Laboratoire de Recherche et
|
||||
// Developpement de l'Epita (LRDE)
|
||||
// Copyright (C) 2011, 2012, 2013, 2014, 2015 Laboratoire de Recherche
|
||||
// et Developpement de l'Epita (LRDE)
|
||||
//
|
||||
// This file is part of Spot, a model checking library.
|
||||
//
|
||||
|
|
@ -252,7 +252,7 @@ checked_main(int argc, char **argv)
|
|||
goto safe_exit;
|
||||
}
|
||||
|
||||
product = spot::product(model, prop);
|
||||
product = spot::otf_product(model, prop);
|
||||
|
||||
if (output == DotProduct)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -37,8 +37,7 @@
|
|||
|
||||
#include "tgbaalgos/product.hh"
|
||||
#include "tgbaalgos/isdet.hh"
|
||||
#include "tgbaalgos/stutterize.hh"
|
||||
#include "tgbaalgos/closure.hh"
|
||||
#include "tgbaalgos/stutter.hh"
|
||||
#include "misc/optionmap.hh"
|
||||
#include "misc/timer.hh"
|
||||
#include "misc/random.hh"
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
// -*- coding: utf-8 -*-
|
||||
// Copyright (C) 2012, 2013, 2014 Laboratoire de Recherche et
|
||||
// Copyright (C) 2012, 2013, 2014, 2015 Laboratoire de Recherche et
|
||||
// Développement de l'Epita (LRDE).
|
||||
//
|
||||
// This file is part of Spot, a model checking library.
|
||||
|
|
@ -45,7 +45,7 @@
|
|||
#include "tgbaalgos/ltl2tgba_fm.hh"
|
||||
#include "tgbaalgos/minimize.hh"
|
||||
#include "tgbaalgos/safety.hh"
|
||||
#include "tgbaalgos/stutter_invariance.hh"
|
||||
#include "tgbaalgos/stutter.hh"
|
||||
|
||||
const char argp_program_doc[] ="\
|
||||
Read a list of formulas and output them back after some optional processing.\v\
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
// -*- coding: utf-8 -*-
|
||||
// Copyright (C) 2011, 2013, 2014 Laboratoire de Recherche et
|
||||
// Copyright (C) 2011, 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),
|
||||
|
|
@ -131,16 +131,18 @@ namespace spot
|
|||
const state* right_init_;
|
||||
};
|
||||
|
||||
inline tgba_product_ptr product(const const_tgba_ptr& left,
|
||||
const const_tgba_ptr& right)
|
||||
/// \brief on-the-fly TGBA product
|
||||
inline tgba_product_ptr otf_product(const const_tgba_ptr& left,
|
||||
const const_tgba_ptr& right)
|
||||
{
|
||||
return std::make_shared<tgba_product>(left, right);
|
||||
}
|
||||
|
||||
inline tgba_product_ptr product_at(const const_tgba_ptr& left,
|
||||
const const_tgba_ptr& right,
|
||||
const state* left_init,
|
||||
const state* right_init)
|
||||
/// \brief on-the-fly TGBA product with forced initial states
|
||||
inline tgba_product_ptr otf_product_at(const const_tgba_ptr& left,
|
||||
const const_tgba_ptr& right,
|
||||
const state* left_init,
|
||||
const state* right_init)
|
||||
{
|
||||
return std::make_shared<tgba_product_init>(left, right,
|
||||
left_init, right_init);
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
// -*- coding: utf-8 -*-
|
||||
// Copyright (C) 2010, 2011, 2012, 2013, 2014 Laboratoire de Recherche
|
||||
// et Développement de l'Epita (LRDE).
|
||||
// Copyright (C) 2010, 2011, 2012, 2013, 2014, 2015 Laboratoire de
|
||||
// Recherche et Développement de l'Epita (LRDE).
|
||||
//
|
||||
// This file is part of Spot, a model checking library.
|
||||
//
|
||||
|
|
@ -36,7 +36,7 @@
|
|||
#include "ltlast/allnodes.hh"
|
||||
#include "misc/hash.hh"
|
||||
#include "misc/bddlt.hh"
|
||||
#include "tgba/tgbaproduct.hh"
|
||||
#include "tgbaalgos/product.hh"
|
||||
#include "tgbaalgos/powerset.hh"
|
||||
#include "tgbaalgos/gtec/gtec.hh"
|
||||
#include "tgbaalgos/safety.hh"
|
||||
|
|
@ -216,7 +216,7 @@ namespace spot
|
|||
|
||||
bool
|
||||
wdba_scc_is_accepting(const const_tgba_digraph_ptr& det_a, unsigned scc_n,
|
||||
const const_tgba_ptr& orig_a, scc_info& sm,
|
||||
const const_tgba_digraph_ptr& orig_a, scc_info& sm,
|
||||
power_map& pm)
|
||||
{
|
||||
|
||||
|
|
@ -247,7 +247,6 @@ namespace spot
|
|||
assert(++i == loop.end());
|
||||
|
||||
loop_a->set_init_state(0U);
|
||||
const state* loop_a_init = loop_a->get_init_state();
|
||||
|
||||
// Check if the loop is accepting in the original automaton.
|
||||
bool accepting = false;
|
||||
|
|
@ -257,17 +256,16 @@ namespace spot
|
|||
pm.states_of(det_a->state_number(start));
|
||||
for (auto& it: ps)
|
||||
{
|
||||
// Contrustruct a product between
|
||||
// LOOP_A, and ORIG_A starting in *IT.
|
||||
// FIXME: This could be sped up a lot!
|
||||
if (!product_at(loop_a, orig_a, loop_a_init, it)->is_empty())
|
||||
// Construct a product between LOOP_A and ORIG_A starting in
|
||||
// *IT. FIXME: This could be sped up a lot!
|
||||
if (!product(loop_a, orig_a, 0U,
|
||||
orig_a->state_number(it))->is_empty())
|
||||
{
|
||||
accepting = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
loop_a_init->destroy();
|
||||
return accepting;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
// -*- coding: utf-8 -*-
|
||||
// Copyright (C) 2009, 2010, 2011, 2013, 2014 Laboratoire de Recherche
|
||||
// et Développement de l'Epita (LRDE).
|
||||
// Copyright (C) 2009, 2010, 2011, 2013, 2014, 2015 Laboratoire de
|
||||
// Recherche et Développement 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.
|
||||
|
|
@ -30,7 +30,7 @@
|
|||
#include "tgbaalgos/sccinfo.hh"
|
||||
#include "tgbaalgos/cycles.hh"
|
||||
#include "tgbaalgos/gtec/gtec.hh"
|
||||
#include "tgba/tgbaproduct.hh"
|
||||
#include "tgbaalgos/product.hh"
|
||||
#include "tgba/bddprint.hh"
|
||||
#include "tgbaalgos/dotty.hh"
|
||||
#include "tgbaalgos/gtec/gtec.hh"
|
||||
|
|
@ -190,8 +190,8 @@ namespace spot
|
|||
}
|
||||
assert(i == dfs_.end());
|
||||
|
||||
const state* loop_a_init = loop_a->get_init_state();
|
||||
assert(loop_a->state_number(loop_a_init) == 0);
|
||||
unsigned loop_a_init = loop_a->get_init_state_number();
|
||||
assert(loop_a_init == 0);
|
||||
|
||||
// Check if the loop is accepting in the original automaton.
|
||||
bool accepting = false;
|
||||
|
|
@ -204,14 +204,13 @@ namespace spot
|
|||
{
|
||||
// Check the product between LOOP_A, and ORIG_A starting
|
||||
// in S.
|
||||
if (!product_at(loop_a, ref_, loop_a_init, s)->is_empty())
|
||||
if (!product(loop_a, ref_,
|
||||
loop_a_init, ref_->state_number(s))->is_empty())
|
||||
{
|
||||
accepting = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
loop_a_init->destroy();
|
||||
return accepting;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
// -*- coding: utf-8 -*-
|
||||
// Copyright (C) 2014 Laboratoire de Recherche et Développement de
|
||||
// l'Epita (LRDE).
|
||||
// Copyright (C) 2014, 2015 Laboratoire de Recherche et Développement
|
||||
// de l'Epita (LRDE).
|
||||
//
|
||||
// This file is part of Spot, a model checking library.
|
||||
//
|
||||
|
|
@ -27,7 +27,7 @@
|
|||
#include "tgbaalgos/ltl2tgba_fm.hh"
|
||||
#include "tgbaalgos/ltl2taa.hh"
|
||||
#include "tgbaalgos/sccfilter.hh"
|
||||
#include "tgba/tgbaproduct.hh"
|
||||
#include "tgbaalgos/product.hh"
|
||||
#include "tgbaalgos/dotty.hh"
|
||||
|
||||
void
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
// -*- coding: utf-8 -*-
|
||||
// Copyright (C) 2008, 2009, 2010, 2011, 2012, 2014 Laboratoire de
|
||||
// Recherche et Développement de l'Epita (LRDE).
|
||||
// Copyright (C) 2008, 2009, 2010, 2011, 2012, 2014, 2015 Laboratoire
|
||||
// de Recherche et Développement de l'Epita (LRDE).
|
||||
//
|
||||
// This file is part of Spot, a model checking library.
|
||||
//
|
||||
|
|
@ -235,7 +235,7 @@ int main(int argc, char* argv[])
|
|||
auto Anf = spot::ltl_to_tgba_fm(nf1, dict);
|
||||
auto nAf = spot::make_safra_complement(Af);
|
||||
auto nAnf = spot::make_safra_complement(Anf);
|
||||
auto ec = spot::couvreur99(spot::product(nAf, nAnf));
|
||||
auto ec = spot::couvreur99(spot::otf_product(nAf, nAnf));
|
||||
auto res = ec->check();
|
||||
spot::tgba_statistics a_size = spot::stats_reachable(ec->automaton());
|
||||
std::cout << "States: "
|
||||
|
|
|
|||
|
|
@ -69,8 +69,7 @@
|
|||
#include "tgbaalgos/complete.hh"
|
||||
#include "tgbaalgos/dtbasat.hh"
|
||||
#include "tgbaalgos/dtgbasat.hh"
|
||||
#include "tgbaalgos/closure.hh"
|
||||
#include "tgbaalgos/stutterize.hh"
|
||||
#include "tgbaalgos/stutter.hh"
|
||||
|
||||
#include "taalgos/tgba2ta.hh"
|
||||
#include "taalgos/dotty.hh"
|
||||
|
|
@ -1523,7 +1522,7 @@ checked_main(int argc, char** argv)
|
|||
|
||||
if (system_aut)
|
||||
{
|
||||
a = spot::product(system_aut, a);
|
||||
a = spot::otf_product(system_aut, a);
|
||||
|
||||
assume_sba = false;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
// -*- coding: utf-8 -*-
|
||||
// Copyright (C) 2008, 2009, 2012, 2014 Laboratoire de Recherche et
|
||||
// Développement de l'Epita (LRDE).
|
||||
// Copyright (C) 2008, 2009, 2012, 2014, 2015 Laboratoire de Recherche
|
||||
// et Développement 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.
|
||||
|
|
@ -25,7 +25,7 @@
|
|||
#include <cstdlib>
|
||||
#include "ltlast/allnodes.hh"
|
||||
#include "ltlparse/public.hh"
|
||||
#include "tgba/tgbaproduct.hh"
|
||||
#include "tgbaalgos/product.hh"
|
||||
#include "tgbaalgos/ltl2tgba_fm.hh"
|
||||
#include "tgbaalgos/dotty.hh"
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue