Kill some FIXMEs.
* src/ltlenv/environment.hh, src/ltlvisit/basicreduce.cc: Remove useless FIXMEs. * src/ltlvisit/reduce.cc (reduce_visitor::visit(binop)): Compute syntactic implications only when needed. * src/tgbaalgos/reductgba_sim_del.cc (build_recurse_successor_spoiler): Remplace the FIXME by an assert. * src/tgba/tgbareduc.cc: Reword some comments, discard old commented code.
This commit is contained in:
parent
6b9acabe76
commit
21c98c0a01
6 changed files with 47 additions and 156 deletions
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (C) 2004, 2007 Laboratoire d'Informatique de Paris 6 (LIP6),
|
||||
// Copyright (C) 2004, 2007, 2008 Laboratoire d'Informatique de Paris 6 (LIP6),
|
||||
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
|
||||
// et Marie Curie.
|
||||
//
|
||||
|
|
@ -309,7 +309,8 @@ namespace spot
|
|||
|
||||
for (multop::vec::iterator i = res->begin(); i != res->end(); i++)
|
||||
{
|
||||
// FIXME: why would *i be 0 ?
|
||||
// An iteration of the loop may zero some later elements
|
||||
// of the vector to mark them as redundant. Skip them.
|
||||
if (!*i)
|
||||
continue;
|
||||
unop* uo = dynamic_cast<unop*>(*i);
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
// Copyright (C) 2004, 2006, 2007 Laboratoire d'Informatique de Paris 6
|
||||
// (LIP6), département Systèmes Répartis Coopératifs (SRC),
|
||||
// Copyright (C) 2004, 2006, 2007, 2008 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.
|
||||
|
|
@ -121,12 +121,6 @@ namespace spot
|
|||
|
||||
if (opt_ & Reduce_Syntactic_Implications)
|
||||
{
|
||||
// FIXME: These should be done only when needed.
|
||||
bool inf = syntactic_implication(f1, f2);
|
||||
bool infinv = syntactic_implication(f2, f1);
|
||||
bool infnegleft = syntactic_implication_neg(f2, f1, false);
|
||||
bool infnegright = syntactic_implication_neg(f2, f1, true);
|
||||
|
||||
switch (bo->op())
|
||||
{
|
||||
case binop::Xor:
|
||||
|
|
@ -136,14 +130,14 @@ namespace spot
|
|||
|
||||
case binop::U:
|
||||
/* a < b => a U b = b */
|
||||
if (inf)
|
||||
if (syntactic_implication(f1, f2))
|
||||
{
|
||||
result_ = f2;
|
||||
destroy(f1);
|
||||
return;
|
||||
}
|
||||
/* !b < a => a U b = Fb */
|
||||
if (infnegleft)
|
||||
if (syntactic_implication_neg(f2, f1, false))
|
||||
{
|
||||
result_ = unop::instance(unop::F, f2);
|
||||
destroy(f1);
|
||||
|
|
@ -164,14 +158,14 @@ namespace spot
|
|||
|
||||
case binop::R:
|
||||
/* b < a => a R b = b */
|
||||
if (infinv)
|
||||
if (syntactic_implication(f2, f1))
|
||||
{
|
||||
result_ = f2;
|
||||
destroy(f1);
|
||||
return;
|
||||
}
|
||||
/* b < !a => a R b = Gb */
|
||||
if (infnegright)
|
||||
if (syntactic_implication_neg(f2, f1, true))
|
||||
{
|
||||
result_ = unop::instance(unop::G, f2);
|
||||
destroy(f1);
|
||||
|
|
@ -247,7 +241,6 @@ namespace spot
|
|||
}
|
||||
}
|
||||
|
||||
// FIXME
|
||||
/* f1 < !f2 => f1 & f2 = false
|
||||
!f1 < f2 => f1 | f2 = true */
|
||||
for (f1 = res->begin(); f1 != res->end(); f1++)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue