ltl: rename is_X_free() into is_syntactic_stutter_invariant()
and adjust it to detect siPSL formulas, as in the paper of Dax et al. (ATVA'09). For issue #51. * src/ltlast/atomic_prop.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: Rename the property, and adjust its computation on siSERE. * src/ltlvisit/remove_x.cc, src/ltlvisit/simplify.cc, src/tgbaalgos/stutter.cc: Adjust to new names. * src/bin/ltlfilt.cc: Add option --syntactic-sutter-invariant. * src/ltltest/kind.test: Update tests and add some new.
This commit is contained in:
parent
a79db4eefe
commit
34f1601b9b
13 changed files with 185 additions and 86 deletions
|
|
@ -59,32 +59,47 @@ check '(Ga|Fc) -> Fb' 'xLPopr'
|
|||
check '(Ga|Fa) -> Gb' 'xLPopr'
|
||||
check '{a;c*;b}|->!Xb' '&fPsopr'
|
||||
check '{a;c*;b}|->X!b' '&!fPsopr'
|
||||
check '{a;c*;b}|->!Fb' '&xPsopr'
|
||||
check '{a;c*;b}|->G!b' '&!xPsopr'
|
||||
check '{a;c*;b}|->!Gb' '&xPr'
|
||||
check '{a;c*;b}|->F!b' '&!xPr'
|
||||
check '{a;c*;b}|->GFa' '&!xPr'
|
||||
check '{a;c*;b}|->FGa' '&!xP'
|
||||
check '{a;c*;b}|->!Fb' '&Psopr'
|
||||
check '{a;c*;b}|->G!b' '&!Psopr'
|
||||
check '{a;c*;b}|->!Gb' '&Pr'
|
||||
check '{a;c*;b}|->F!b' '&!Pr'
|
||||
check '{a;c*;b}|->GFa' '&!Pr'
|
||||
check '{a;c*;b}|->FGa' '&!P'
|
||||
check '{a[+];c[+];b*}|->!Fb' '&xPsopr'
|
||||
check '{a[+];c*;b[+]}|->G!b' '&!xPsopr'
|
||||
check '{a*;c[+];b[+]}|->!Gb' '&xPr'
|
||||
check '{a[+];c*;b[+]}|->F!b' '&!xPr'
|
||||
check '{a[+];c[+];b*}|->GFa' '&!xPr'
|
||||
check '{a*;c[+];b[+]}|->FGa' '&!xP'
|
||||
check '{a;c;b|(d;e)}|->!Xb' '&fPFsgopr'
|
||||
check '{a;c;b|(d;e)}|->X!b' '&!fPFsgopr'
|
||||
check '{a;c;b|(d;e)}|->!Fb' '&xPsopr'
|
||||
check '{a;c;b|(d;e)}|->G!b' '&!xPsopr'
|
||||
check '{a;c;b|(d;e)}|->!Gb' '&xPgopr'
|
||||
check '{a;c;b|(d;e)}|->F!b' '&!xPgopr'
|
||||
check '{a;c;b|(d;e)}|->GFa' '&!xPr'
|
||||
check '{a;c;b|(d;e)}|->FGa' '&!xPp'
|
||||
check '{a;c*;b}<>->!Gb' '&xPgopr'
|
||||
check '{a;c*;b}<>->F!b' '&!xPgopr'
|
||||
check '{a;c*;b}<>->FGb' '&!xPp'
|
||||
check '{a;c*;b}<>->!GFb' '&xPp'
|
||||
check '{a;c*;b}<>->GFb' '&!xP'
|
||||
check '{a;c*;b}<>->!FGb' '&xP'
|
||||
check '{a;c|d;b}<>->!Gb' '&xPgopr'
|
||||
check '{a;c|d;b}<>->G!b' '&!xPsopr'
|
||||
check '{a;c|d;b}<>->FGb' '&!xPp'
|
||||
check '{a;c|d;b}<>->!GFb' '&xPp'
|
||||
check '{a;c|d;b}<>->GFb' '&!xPr'
|
||||
check '{a;c|d;b}<>->!FGb' '&xPr'
|
||||
check '{a;c;b|(d;e)}|->!Fb' '&Psopr'
|
||||
check '{a;c;b|(d;e)}|->G!b' '&!Psopr'
|
||||
check '{a;c;b|(d;e)}|->!Gb' '&Pgopr'
|
||||
check '{a;c;b|(d;e)}|->F!b' '&!Pgopr'
|
||||
check '{a;c;b|(d;e)}|->GFa' '&!Pr'
|
||||
check '{a;c;b|(d;e)}|->FGa' '&!Pp'
|
||||
check '{a[+] && c[+]}|->!Xb' '&fPsopr'
|
||||
check '{a[+] && c[+]}|->X!b' '&!fPsopr'
|
||||
check '{a[+] && c[+]}|->!Fb' '&xPsopr'
|
||||
check '{a[+] && c[+]}|->G!b' '&!xPsopr'
|
||||
check '{a[+] && c[+]}|->!Gb' '&xPr'
|
||||
check '{a[+] && c[+]}|->F!b' '&!xPr'
|
||||
check '{a[+] && c[+]}|->GFa' '&!xPr'
|
||||
check '{a[+] && c[+]}|->FGa' '&!xP'
|
||||
check '{a;c*;b}<>->!Gb' '&Pgopr'
|
||||
check '{a;c*;b}<>->F!b' '&!Pgopr'
|
||||
check '{a;c*;b}<>->FGb' '&!Pp'
|
||||
check '{a;c*;b}<>->!GFb' '&Pp'
|
||||
check '{a;c*;b}<>->GFb' '&!P'
|
||||
check '{a;c*;b}<>->!FGb' '&P'
|
||||
check '{a*;c[+];b[+]}<>->!FGb' '&xP'
|
||||
check '{a;c|d;b}<>->!Gb' '&Pgopr'
|
||||
check '{a;c|d;b}<>->G!b' '&!Psopr'
|
||||
check '{a;c|d;b}<>->FGb' '&!Pp'
|
||||
check '{a;c|d;b}<>->!GFb' '&Pp'
|
||||
check '{a;c|d;b}<>->GFb' '&!Pr'
|
||||
check '{a;c|d;b}<>->!FGb' '&Pr'
|
||||
check '{a:b:c:d}!' 'B&!xfLEPSFsgopr' # Equivalent to a&b&c&d
|
||||
check 'a&b&c&d' 'B&!xfLEPSFsgopr'
|
||||
check '(Xa <-> XXXc) U (b & Fe)' 'LPgopr'
|
||||
|
|
@ -110,11 +125,15 @@ check 'FGa W FGb' '&!xLPeu'
|
|||
check 'Ga W FGb' '&!xLPup'
|
||||
check 'Ga W b' '&!xLPsopr'
|
||||
check 'Fa M b' '&!xLPgopr'
|
||||
check '{a;b*;c}' '&!xfPsopr'
|
||||
check '{a;b*;c}!' '&!xfPgopr'
|
||||
check '!{a;b*;c}!' '&xfPsopr' # The negative normal form is {a;b*;c}[]->0
|
||||
check '{a;b*;c}[]->0' '&!xfPsopr'
|
||||
check '!{a;b*;c}' '&!xfPgopr'
|
||||
check '{a;b*;c}' '&!fPsopr'
|
||||
check '{a;b*;c}!' '&!fPgopr'
|
||||
check '!{a;b*;c}!' '&fPsopr' # The negative normal form is {a;b*;c}[]->0
|
||||
check '{a;b*;c}[]->0' '&!fPsopr'
|
||||
check '!{a;b*;c}' '&!fPgopr'
|
||||
check '!{a[+];b*;c[+]}' '&!xfPgopr'
|
||||
check '{a[+];b*;c[+]}' '&!xfPsopr'
|
||||
check '{a[+] && b || c[+]}' '&!fPsopr'
|
||||
check '{a[+] && b[+] || c[+]}' '&!xfPsopr'
|
||||
|
||||
run 0 ../consterm '1'
|
||||
run 0 ../consterm '0'
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue