- 28 Apr, 2012 40 commits
-
-
Alexandre Duret-Lutz authored
* src/ltlvisit/contain.hh (reduce_tau03): Mark as deprecated. * src/tgbaalgos/ltl2tgba_fm.cc, src/tgbatest/ltl2tgba.cc, src/ltltest/equals.cc: Do not include ltlvisit/contain.hh, since it's not used.
-
Alexandre Duret-Lutz authored
* src/ltlvisit/basicreduce.cc, src/ltlvisit/basicreduce.hh: Delete. * src/ltlvisit/Makefile.am: Remove them.
-
Alexandre Duret-Lutz authored
* src/ltlvisit/reduce.hh: Mark the file as obsolete. (reduce): Declare this function as obsolete. * src/ltlvisit/reduce.cc: Define SKIP_DEPRECATED_WARNING so we can include reduce.hh. * src/sanity/includes.test: Also use SKIP_DEPRECATED_WARNING when compiling headers. * iface/dve2/dve2check.cc, src/ltltest/equals.cc, src/ltltest/randltl.cc, src/ltltest/reduc.cc, src/tgbaalgos/ltl2tgba_fm.hh, src/tgbaalgos/ltl2tgba_fm.cc, src/tgbatest/randtgba.cc, wrap/python/ajax/spot.in, wrap/python/spot.i: Adjust to use ltl_simplifier. * src/tgbatest/ltl2tgba.cc: Adjust to use ltl_simplifier, and replace -fr1...-fr7 options by a single -fr option. * src/tgbatest/spotlbtt.test: Adjust -fr flags accordingly. * src/tgbatest/reductgba.cc: Do not include reduce.hh.
-
Alexandre Duret-Lutz authored
* src/ltlvisit/simplify.hh (ltl_simplifier::negative_normal_form): Allow logical unabbreviations during the NNF pass. * src/ltlvisit/simplify.cc (ltl_simplifier::negative_normal_form) (negative_normal_form_visitor): Adjust. (ltl_simplifier::simplify): Request unabbreviations. * src/ltlvisit/reduce.cc (reduce): Remove most of the code, leaving only a call ltl_simplifier and some wrapper code to convert options. * src/ltltest/reduccmp.test: Add more test cases.
-
Alexandre Duret-Lutz authored
* src/ltlvisit/simplify.cc (simplify_visitor): Fix it, and leave the trace code.
-
Alexandre Duret-Lutz authored
* src/ltlvisit/simplify.cc (ltl_simplifier::simplify): Convert in negative normal form if needed. * src/ltlvisit/reduce.cc (reduce): Do not call negative_normal_form().
-
Alexandre Duret-Lutz authored
* src/ltlvisit/simplify.cc: Integrate the tau03 containment rules. * src/ltlvisit/simplify.hh: Add options to select simplifications. * src/ltlvisit/reduce.cc (reduce): Do not call reduce_tau03(). * src/ltlvisit/contain.cc (reduce_tau03_visitor): Remove. (reduce_tau03): Implement it using ltl_simplifier.
-
Alexandre Duret-Lutz authored
* src/ltlvisit/simplify.cc (ltl_simplifier): Adjust code. * src/ltltest/reduccmp.test: Add some test cases.
-
Alexandre Duret-Lutz authored
* src/ltlvisit/simplify.cc (ltl_simplifier): Add more rewritings for formulae that are both universal and eventual. * src/ltltest/reduccmp.test: Add six more cases.
-
Alexandre Duret-Lutz authored
* src/ltltest/reduccmp.test: Add the test.
-
Alexandre Duret-Lutz authored
-
Alexandre Duret-Lutz authored
* src/ltlvisit/simplify.cc (ltl_simplifier): Since we are processing the formula bottom-up, don't assume all trivial simplification have been done. * src/ltltest/reduccmp.test: More tests.
-
Alexandre Duret-Lutz authored
So far I have only checked these rewritings with reduccmp.test. There are probably a few kinks to iron out. * src/ltlvisit/simplify.cc: Reimplement most of the basic rewriting rules, leaving some FIXME comments for dubious ones. * src/ltlast/multop.cc, src/ltlast/multop.hh: Ignore NULL pointers in the vector. * src/ltlvisit/reduce.cc (reduce): Do not call basic_reduce(). * src/ltltest/reduccmp.test: Adjust tests.
-
Alexandre Duret-Lutz authored
-
Alexandre Duret-Lutz authored
* src/ltlvisit/reduce.cc (reduce_visitor): Move ... * src/ltlvisit/simplify.cc (simplify_visitor): ... here, and adjust to use the new ltl_simplifier_options. * src/ltlvisit/reduce.cc (reduce): Use ltl_simplifier to perform the work of reduce_visitor. Eventually we want to get rid of reduce.cc. * src/ltlvisit/reduce.hh (reduce): Remove the syntactic_implication_cache used as third argument.
-
Alexandre Duret-Lutz authored
* src/ltltest/kind.test: More pure eventualities and purely universal properties are detected.
-
Alexandre Duret-Lutz authored
* src/ltlvisit/basicreduce.cc: Do not test for things like X(true), F(false), or `a U 1`. These are all trivial identities.
-
Alexandre Duret-Lutz authored
-
Alexandre Duret-Lutz authored
* src/ltlast/binop.cc (binop::binop): Generalize detection of pure eventualities and purely universal formulae. E.g. `f U g' is a pure eventuality if g is a pure eventuality (regardless of f) or if g is 1. * src/ltlast/unop.cc (unop::unop): Compute is.eventual and is.universal for Not. * src/ltltest/kind.test: Adjust.
-
Alexandre Duret-Lutz authored
It is limited to negative_normal_form_visitor for now. * src/ltlvisit/simplify.cc, src/ltlvisit/simplify.hh: New files. * src/ltlvisit/Makefile.am: Add them. * src/ltlvisit/nenoform.cc, src/ltlvisit/nenoform.hh: Rewrite using ltl_simplifier.
-
Alexandre Duret-Lutz authored
* src/tgbatest/randpsl.test: Run without valgrind, it is too slow otherwise.
-
Alexandre Duret-Lutz authored
I.e., SERE without star, or LTL formula using only X and Boolean operators. * src/ltlast/formula.hh, src/ltlast/formula.cc: Add a bit for tracking finite formulas. * src/ltlast/atomic_prop.cc, src/ltlast/automatop.cc, src/ltlast/bunop.cc, src/ltlast/constant.cc, src/ltlast/formula.cc: Adjust. * src/ltlast/unop.cc, src/ltlast/binop.cc: Adjust and use that bit to refine the computation of some LTL classes. * src/ltltest/kind.test: New tests.
-
Alexandre Duret-Lutz authored
These are safety, guarantee, obligation, persistence, and recurrence. * src/ltlast/formula.hh, src/ltlast/formula.cc: Declare a bit for each of these classes. * src/ltlast/atomic_prop.cc, src/ltlast/constant.cc, src/ltlast/automatop.cc, src/ltlast/binop.cc, src/ltlast/bunop.cc, src/ltlast/unop.cc: Update these bits. * src/ltltest/kind.test: Update tests and add more.
-
Alexandre Duret-Lutz authored
* src/ltlast/multop.cc (multop::instance): Implement the rewriting. "a:b:c[*]:d:e" becomes "{{a&&b}&c[*]}:{d&&e}". * src/ltlast/multop.hh: Document it. * src/ltltest/equals.test, src/ltltest/kind.test: Add test cases.
-
Alexandre Duret-Lutz authored
* src/ltlast/binop.cc (EConcat, UConcat): Rewrite "{b}<>-> f" as "b && f", and rewrite "{b}[]->f" as "b->f". * src/ltlast/binop.hh (binop::instance): Document trivial identities for <>-> and []->. * src/ltlast/multop.cc (multop::instance): Rewrite "b1 & b2" as "b1 && b2" when b1 and b2 are Boolean. (multop::multop): Always disable is.boolean for AndNLM. * src/ltlast/multop.hh: Document the rewriting. * src/ltltest/equals.cc: Show the two formulas if the exit_code is 1, to help debugging. * src/ltltest/equals.test: Add more tests. * src/ltltest/kind.test: Adjust tests.
-
Alexandre Duret-Lutz authored
* src/ltlvisit/randomltl.cc (random_formula::update_sums): Remove duplicate semicolon.
-
Alexandre Duret-Lutz authored
* src/ltlvisit/contain.cc (recurse, reduce_tau03): Do not run on non-PSL formulae. * src/ltlvisit/reduce.cc (reduce_visitor::visit): Skip multop::Fusion operators, and do not run syntactic_implication_neg on SERE formulae. * src/ltlvisit/syntimpl.cc (inf_right_recurse_visitor::visit): Skip [*0].
-
Alexandre Duret-Lutz authored
* src/ltlast/atomic_prop.cc, src/ltlast/automatop.cc, src/ltlast/binop.cc, src/ltlast/bunop.cc, src/ltlast/constant.cc, src/ltlast/formula.cc, src/ltlast/formula.hh, src/ltlast/multop.cc, src/ltlast/unop.cc: Add a bit is.sere_formula to track SEREs, and fix tracking of PSL formulae. * src/ltltest/kind.test: Adjust.
-
Alexandre Duret-Lutz authored
* src/ltlparse/ltlscan.ll: Recognize }!. Also remove five duplicate rules. * src/ltlparse/ltlparse.yy: Build {r}<>->1 when parsing {r}!. * src/ltlvisit/tostring.cc: Print {r}! instead of {r}<>->1. * src/ltltest/tostring.test, src/ltltest/equals.test: Add more tests.
-
Alexandre Duret-Lutz authored
* src/ltlast/bunop.hh, src/ltlast/multop.hh: Reorder some comments.
-
Alexandre Duret-Lutz authored
We still don't have any PSL-specific reductions, but at least the LTL reduction now appear to work on PSL formulas. * src/ltlvisit/basicreduce.cc (basic_reduce_visitor): Fix the call to std::copy to handle Concat, Fusion, and AndNLM. * src/ltlvisit/reduce.cc (reduce_visitor): Fix handling of UConcat, EConcat, and EConcatMarked. * src/tgbatest/randpsl.test: Activate reductions. * src/ltltest/reducpsl.test: New file. * src/ltltest/Makefile.am (TESTS): Add it.
-
Alexandre Duret-Lutz authored
* src/ltlvisit/randomltl.hh (random_formula::~random_formula): Declare as virtual.
-
Alexandre Duret-Lutz authored
* src/tgbatest/randpsl.test: New file. * src/tgbatest/Makefile.am (TESTS): Add it.
-
Alexandre Duret-Lutz authored
* src/tgbaalgos/ltl2tgba_fm.cc (ratexp_trad_visitor::visit): Use a different translating rule for E* if E accepts [*0]. * src/tgbatest/ltl2tgba.test: Add test case.
-
Alexandre Duret-Lutz authored
* src/ltlvisit/randomltl.cc, src/ltlvisit/randomltl.hh: (random_boolean, random_sere, random_psl): Add new classes. * src/ltltest/randltl.cc: Add options to support the above. Nore: the -p option was renamed to -pL for consistency, but it is still understood.
-
Alexandre Duret-Lutz authored
* src/ltlvisit/tostring.hh, src/ltlvisit/tostring.cc (to_string): Add third option to enable formating suitable for SERE.
-
Alexandre Duret-Lutz authored
-
Alexandre Duret-Lutz authored
* src/ltlparse/ltlparse.yy (rationalexp): Allow ->, <->, and xor, in rational expressions as long as they apply only to Boolean formulae. * src/tgbaalgos/ltl2tgba_fm.cc (ratexp_trad_visitor): Adjust assert in handling of unop::Not.
-
Alexandre Duret-Lutz authored
* src/ltlast/bunop.cc (bunop::bunop): Ensure it using an assert.
-
Alexandre Duret-Lutz authored
* src/ltlvisit/randomltl.hh (random_ltl): Split this class into... (random_formula, random_ltl): ... these. * src/ltlvisit/randomltl.cc: New
-