* src/evtgbaparse/public.hh: Work around Bison 2.3 unique guards.

* src/ltlvisit/reduce.hh, src/ltlvisit/reduce.hh:
Add Reduce_Containment_Checks and Reduce_Containment_Checks_Stronger
flags, and call reduce_tau03.
* src/ltlvisit/contain.hh (reduce_tau03): Make "stronger" the
default.
* src/ltlvisit/contain.cc: Style.
* src/ltltest/reduc.cc: Simplify using the reduce() interface
instead of reduce_tau03.
* src/tgbatest/ltl2tgba.cc: Likewise.  Add -fr5, -fr6, and -fr7
options.
* src/tgbatest/spotlbtt.test: Remove cases using "-c", since its
current implementation is not always correct (and apparently
reduces less than -fr7).
This commit is contained in:
Alexandre Duret-Lutz 2006-08-16 15:41:00 +00:00
parent c055212326
commit 641db2d77d
10 changed files with 94 additions and 62 deletions

View file

@ -124,7 +124,7 @@ namespace spot
bool
language_containment_checker::equal(const formula* l, const formula* g)
{
return contained(l,g) && contained(g,l);
return contained(l, g) && contained(g, l);
}
language_containment_checker::record_*
@ -143,7 +143,8 @@ namespace spot
}
namespace {
namespace
{
struct reduce_tau03_visitor : public clone_visitor {
bool stronger;
language_containment_checker* lcc;

View file

@ -101,7 +101,7 @@ namespace spot
/// If \a stronger is set, additional rules are used to further
/// reduce some U, R, and X usages.
/// \endverbatim
formula* reduce_tau03(const formula* f, bool stronger = false);
formula* reduce_tau03(const formula* f, bool stronger = true);
}
}

View file

@ -1,4 +1,4 @@
// Copyright (C) 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
// Copyright (C) 2004, 2006 Laboratoire d'Informatique de Paris 6 (LIP6),
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
// et Marie Curie.
//
@ -29,6 +29,7 @@
#include "simpfg.hh"
#include "nenoform.hh"
#include "ltlvisit/destroy.hh"
#include "contain.hh"
namespace spot
{
@ -331,6 +332,17 @@ namespace spot
f2 = f1;
}
}
if (opt & (Reduce_Containment_Checks
| Reduce_Containment_Checks_Stronger))
{
formula* f1 = reduce_tau03(f2,
opt & Reduce_Containment_Checks_Stronger);
destroy(f2);
f2 = f1;
}
return f2;
}
}

View file

@ -1,4 +1,4 @@
// Copyright (C) 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
// Copyright (C) 2004, 2006 Laboratoire d'Informatique de Paris 6 (LIP6),
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
// et Marie Curie.
//
@ -44,6 +44,10 @@ namespace spot
Reduce_Syntactic_Implications = 2,
/// Etessami & Holzmann eventuality and universality reductions.
Reduce_Eventuality_And_Universality = 4,
/// Tauriainen containment checks.
Reduce_Containment_Checks = 8,
/// Tauriainen containment checks (stronger version).
Reduce_Containment_Checks_Stronger = 16,
/// All reductions.
Reduce_All = -1U
};