* 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:
parent
c055212326
commit
641db2d77d
10 changed files with 94 additions and 62 deletions
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue