Commit graph

60 commits

Author SHA1 Message Date
Alexandre Duret-Lutz
c0085a8f30 Move the remaining reduce() logic into ltl_simplifier.
* 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.
2012-04-28 09:30:37 +02:00
Alexandre Duret-Lutz
d4d4c0e7d3 Typo in the code rewriting "a M 1 = Fa".
* src/ltlvisit/simplify.cc (simplify_visitor): Fix it,
and leave the trace code.
2012-04-28 09:30:37 +02:00
Alexandre Duret-Lutz
c2335edb57 Remove the negative_normal_form call from reduce().
* 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().
2012-04-28 09:30:37 +02:00
Alexandre Duret-Lutz
1087c62356 Move language containment into ltl_simplifier.
* 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.
2012-04-28 09:30:37 +02:00
Alexandre Duret-Lutz
82b42494db Generalize G,&,| rewritings to deal with event. and univ. terms.
* src/ltlvisit/simplify.cc (ltl_simplifier): Adjust
code.
* src/ltltest/reduccmp.test: Add some test cases.
2012-04-28 09:30:37 +02:00
Alexandre Duret-Lutz
ab7a1c7aa9 More rewritings or multop::And and multop::Or.
* 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.
2012-04-28 09:30:37 +02:00
Alexandre Duret-Lutz
ca686cb07e Fix a case caught by the random formula generator.
* 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.
2012-04-28 09:30:37 +02:00
Alexandre Duret-Lutz
ca2fe4f3f8 Reimplement basic_reduce()'s rules in ltl_simplifier.
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.
2012-04-28 09:30:37 +02:00
Alexandre Duret-Lutz
dd1cd89a73 event./univ. and syntactic implications rewriting in ltl_simplifier.
* 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.
2012-04-28 09:30:37 +02:00
Alexandre Duret-Lutz
9f7ef5d0c3 Introduce ltl_simplifier.
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.
2012-04-28 09:30:37 +02:00