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.
This commit is contained in:
Alexandre Duret-Lutz 2011-08-24 17:40:22 +02:00
parent d4d4c0e7d3
commit c0085a8f30
4 changed files with 77 additions and 68 deletions

View file

@ -66,6 +66,11 @@ for x in ../reduccmp ../reductaustr; do
run 0 $x 'a | (b U a) | a' '(b U a)'
run 0 $x 'a U (b U a)' '(b U a)'
run 0 $x 'a <-> !a' '0'
run 0 $x 'a <-> a' '1'
run 0 $x 'a ^ a' '0'
run 0 $x 'a ^ !a' '1'
# Basic reductions
run 0 $x 'X(true)' 'true'
run 0 $x 'X(false)' 'false'
@ -121,6 +126,8 @@ for x in ../reduccmp ../reductaustr; do
run 0 $x 'F(a & GFb & c)' 'F(a & GFb & c)'
run 0 $x 'G(a | GFb | c)' 'G(a | c) | GFb'
run 0 $x 'GFa <=> GFb' 'G(Fa&Fb)|FG(!a&!b)'
run 0 $x 'Gb W a' 'Gb|a'
run 0 $x 'Fb M Fa' 'Fa & Fb'