spot/src/tgbatest
Alexandre Duret-Lutz cb7bdf8c1f Fix interpretation of {e[*]} and !{e[*]}.
This follows from a discussion with Ernesto Posse.

The semantics for the {...} operator we use in Spot comes from the
cl(...) operator defined by Dax et al. (ATVA'09).  This is slightly
different from the the way the PSL spec interprets a SERE used in the
context of a temporal formula (appendix B.3.1.1.2, item 7).

cl({a;b}[*]) would match any infinite word that starts with a;b, while
in PSL {a;b}[*] would match any infinite word that alternates a and b.

Spot documents that {SERE} in a temporal formula is interpreted like
cl(SERE) however it failed to ignore the empty prefix of SERE.  So
{{a;b}[*]} would match anything, because the empty word is a prefix of
any word, and is also accepted by {a;b}[*].  Some trivial identities
and basic rewritings were also wrongly considering these empty
prefixes as well.

This patch therefore fixes the translation and syntactic
simplification rules, to really ignore these empty prefixes.

In some future version it should probably be wise to rename this {...}
operator as cl(...), and use {...} for the semantics given in appendix
B.3.1.1.2 (item 7) of the PSL specs.

* src/ltlast/unop.cc: Fix trivial identities.  We have
{[*0]} = 0 and !{[*0]} = 1.
* src/ltlvisit/simplify.cc: Fix basic rewriting rules.
{e[*]} = {e} and !{e[*]} = !{e}.
* doc/tl/tl.tex: Adjust documentation.
* doc/tl/tl.bib (dax.09.atva): New entry.
* src/tgbaalgos/ltl2tgba_fm.cc: Do not accept any
infinite word for {e[*]} just because the empty
prefix is matched by e[*].
* src/tgbatest/ltl2tgba.test: Add a test case.
* NEWS: Mention it.
* THANKS: Add Ernesto.
2013-07-29 00:25:13 +02:00
..
.cvsignore more files to ignore 2004-06-22 22:58:09 +00:00
.gitignore more files to ignore 2012-11-28 16:45:04 +01:00
babiak.test * src/tgbatest/babiak.test: Rewrite using ltlcross. 2013-01-10 18:42:36 +01:00
basimul.test ltlcross: add a --products=N option 2013-05-12 21:22:46 +02:00
bddprod.test Upgrade GPL v2+ to GPL v3+. 2012-10-12 22:05:18 +02:00
complementation.cc Address several issues reported by cppcheck all over the place. 2012-12-24 13:14:33 +01:00
complementation.test Upgrade GPL v2+ to GPL v3+. 2012-10-12 22:05:18 +02:00
cycles.test Upgrade GPL v2+ to GPL v3+. 2012-10-12 22:05:18 +02:00
defs.in Upgrade GPL v2+ to GPL v3+. 2012-10-12 22:05:18 +02:00
degendet.test Upgrade GPL v2+ to GPL v3+. 2012-10-12 22:05:18 +02:00
degenid.test Upgrade GPL v2+ to GPL v3+. 2012-10-12 22:05:18 +02:00
dfs.test Upgrade GPL v2+ to GPL v3+. 2012-10-12 22:05:18 +02:00
dupexp.test Upgrade GPL v2+ to GPL v3+. 2012-10-12 22:05:18 +02:00
eltl2tgba.test eltl2tgba: slight cleanup of the tests. 2013-01-17 14:06:31 +01:00
emptchk.test Upgrade GPL v2+ to GPL v3+. 2012-10-12 22:05:18 +02:00
emptchke.test Upgrade GPL v2+ to GPL v3+. 2012-10-12 22:05:18 +02:00
emptchkr.test Upgrade GPL v2+ to GPL v3+. 2012-10-12 22:05:18 +02:00
explicit.cc Upgrade GPL v2+ to GPL v3+. 2012-10-12 22:05:18 +02:00
explicit.test Upgrade GPL v2+ to GPL v3+. 2012-10-12 22:05:18 +02:00
explicit2.cc tgbaexplicit: fix state_is_accepting() 2012-10-21 00:02:07 +02:00
explicit2.test tgbaexplicit: fix state_is_accepting() 2012-10-21 00:02:07 +02:00
explpro2.test Upgrade GPL v2+ to GPL v3+. 2012-10-12 22:05:18 +02:00
explpro3.test Upgrade GPL v2+ to GPL v3+. 2012-10-12 22:05:18 +02:00
explpro4.test Upgrade GPL v2+ to GPL v3+. 2012-10-12 22:05:18 +02:00
explprod.cc Upgrade GPL v2+ to GPL v3+. 2012-10-12 22:05:18 +02:00
explprod.test Upgrade GPL v2+ to GPL v3+. 2012-10-12 22:05:18 +02:00
intvcmp2.cc Upgrade GPL v2+ to GPL v3+. 2012-10-12 22:05:18 +02:00
intvcomp.cc Upgrade GPL v2+ to GPL v3+. 2012-10-12 22:05:18 +02:00
intvcomp.test Upgrade GPL v2+ to GPL v3+. 2012-10-12 22:05:18 +02:00
kv.test * src/tgbatest/kv.test: Fix the test comparison. 2012-10-12 22:09:16 +02:00
lbttparse.test lbtt: improve the LBTT output 2013-05-09 21:55:37 +02:00
ltl2neverclaim-lbtt.test tgbatest: Rewrite ltl2neverclaim using ltlcross. 2013-01-10 18:22:35 +01:00
ltl2neverclaim.test tgbatest: Rewrite ltl2neverclaim using ltlcross. 2013-01-10 18:22:35 +01:00
ltl2ta.test sccfilter: ignore more acceptance conditions 2013-04-09 15:05:55 +02:00
ltl2tgba.cc Implement a favor_even_univ option in the rewriting rules. 2013-04-27 17:39:52 +02:00
ltl2tgba.test Fix interpretation of {e[*]} and !{e[*]}. 2013-07-29 00:25:13 +02:00
ltlcounter.test Upgrade GPL v2+ to GPL v3+. 2012-10-12 22:05:18 +02:00
ltlcross.test ltlcross: add a --products=N option 2013-05-12 21:22:46 +02:00
ltlcross2.test ltlcross: add a --products=N option 2013-05-12 21:22:46 +02:00
ltlprod.cc Upgrade GPL v2+ to GPL v3+. 2012-10-12 22:05:18 +02:00
ltlprod.test Upgrade GPL v2+ to GPL v3+. 2012-10-12 22:05:18 +02:00
Makefile.am simulation: Fix co-simulation and iterated simulations of BA automata 2013-05-12 21:05:05 +02:00
mixprod.cc Upgrade GPL v2+ to GPL v3+. 2012-10-12 22:05:18 +02:00
mixprod.test Upgrade GPL v2+ to GPL v3+. 2012-10-12 22:05:18 +02:00
neverclaimread.test neverparse: accept more unparenthesised guards 2013-07-26 12:04:45 +02:00
nondet.test Upgrade GPL v2+ to GPL v3+. 2012-10-12 22:05:18 +02:00
obligation.test Upgrade GPL v2+ to GPL v3+. 2012-10-12 22:05:18 +02:00
powerset.cc Upgrade GPL v2+ to GPL v3+. 2012-10-12 22:05:18 +02:00
randpsl.test Upgrade GPL v2+ to GPL v3+. 2012-10-12 22:05:18 +02:00
randtgba.cc Address several issues reported by cppcheck all over the place. 2012-12-24 13:14:33 +01:00
randtgba.test Upgrade GPL v2+ to GPL v3+. 2012-10-12 22:05:18 +02:00
readsave.test tgbaexplicit: speed up merge_transitions() 2012-10-19 17:53:08 +02:00
renault.test Upgrade GPL v2+ to GPL v3+. 2012-10-12 22:05:18 +02:00
scc.test Upgrade GPL v2+ to GPL v3+. 2012-10-12 22:05:18 +02:00
sccsimpl.test Fix "BDD Error" in scc_filter(). 2013-06-19 21:21:16 +02:00
sim.test simulation: many fixes. 2013-04-09 15:05:55 +02:00
sim2.test simulation: many fixes. 2013-04-09 15:05:55 +02:00
simdet.test Fix non determinism in the simulation. 2012-11-14 18:22:11 +01:00
spotlbtt.test Implement a favor_even_univ option in the rewriting rules. 2013-04-27 17:39:52 +02:00
spotlbtt2.test Upgrade GPL v2+ to GPL v3+. 2012-10-12 22:05:18 +02:00
taatgba.cc Fix Warning GCC 4.8 2013-04-27 18:33:24 +02:00
taatgba.test Upgrade GPL v2+ to GPL v3+. 2012-10-12 22:05:18 +02:00
tgbaread.cc Upgrade GPL v2+ to GPL v3+. 2012-10-12 22:05:18 +02:00
tgbaread.test Upgrade GPL v2+ to GPL v3+. 2012-10-12 22:05:18 +02:00
tripprod.cc Upgrade GPL v2+ to GPL v3+. 2012-10-12 22:05:18 +02:00
tripprod.test Upgrade GPL v2+ to GPL v3+. 2012-10-12 22:05:18 +02:00
wdba.test Upgrade GPL v2+ to GPL v3+. 2012-10-12 22:05:18 +02:00
wdba2.test Upgrade GPL v2+ to GPL v3+. 2012-10-12 22:05:18 +02:00