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:
parent
d4d4c0e7d3
commit
c0085a8f30
4 changed files with 77 additions and 68 deletions
|
|
@ -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'
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue