spot/src
Alexandre Duret-Lutz 11aa708a81 ltl2tgba_fm: fix non-deterministic output
The ltl_to_tgba_fm() translation function was using a hash_map of
maps (ugh!) to merge transitions on output.  However recent libstd++
changed the implementation of hash_map (a.k.a. unordered_map) causing
transitions to be output in a different order.  This
implementation-dependent order caused the ltl2ta.test to fail because
the BA->TA transformation can produce TA of different sizes if you
simply change the order of transitions in the input BA! This does not
sound like a nice property for the BA->TA transformation, but Ala Eddine
isn't sure how to fix it yet.  In the meantime, this patch makes sure
ltl_to_tgba_fm() will return the same output regardless of the
implementation of hash_map.

The ltl2ta.test failure has been observed with g++ 4.9.2 on Arch Linux,
and with gcc-snapshot (5.0.0 20141016) on Debian.

* src/tgbaalgos/ltl2tgba_fm.cc: Rewrite the transition merging
using a std::vector and std::sort instead of nested maps tables.
* src/tgbatest/ltl2ta.test: Adjust sizes to the new order.
* NEWS: Mention the fix.
2014-11-14 11:03:30 +01:00
..
bin timer: add a stopwatch for timing a simple operation 2014-10-26 13:44:47 +01:00
dstarparse Store membership to acceptance sets using bitsets, not BDDs. 2014-10-06 10:18:57 +02:00
graph tgba_digraph: add a copy constructor, and obsolete dupexp 2014-10-28 19:38:13 +01:00
graphtest Store membership to acceptance sets using bitsets, not BDDs. 2014-10-06 10:18:57 +02:00
kripke Store membership to acceptance sets using bitsets, not BDDs. 2014-10-06 10:18:57 +02:00
kripkeparse Handle all automata through shared_ptr. (monstro patch) 2014-08-15 11:07:05 +02:00
kripketest Handle all automata through shared_ptr. (monstro patch) 2014-08-15 11:07:05 +02:00
ltlast ltl: use "final" and "override" in the AST classes 2014-11-07 17:30:11 +01:00
ltlenv ltl::environment: correctly declare name() as const 2014-06-27 10:32:39 +02:00
ltlparse Better formula I/O for ipython. 2014-08-24 14:00:59 +02:00
ltltest Some cleanup of Thibaud's patches. 2014-10-06 20:39:44 +02:00
ltlvisit buddy: rename libbdd to libbddx 2014-10-30 20:58:10 +01:00
misc ltl: use "final" and "override" in the AST classes 2014-11-07 17:30:11 +01:00
neverparse Store membership to acceptance sets using bitsets, not BDDs. 2014-10-06 10:18:57 +02:00
priv buddy: rename libbdd to libbddx 2014-10-30 20:58:10 +01:00
sanity common: introduce SPOT_UNREACHABLE and SPOT_UNIMPLEMENTED. 2014-06-27 15:55:26 +02:00
ta Store membership to acceptance sets using bitsets, not BDDs. 2014-10-06 10:18:57 +02:00
taalgos Store membership to acceptance sets using bitsets, not BDDs. 2014-10-06 10:18:57 +02:00
tgba tgbasafracomplement: avoid some std::set copies 2014-10-31 11:47:03 +01:00
tgbaalgos ltl2tgba_fm: fix non-deterministic output 2014-11-14 11:03:30 +01:00
tgbaparse Store membership to acceptance sets using bitsets, not BDDs. 2014-10-06 10:18:57 +02:00
tgbatest ltl2tgba_fm: fix non-deterministic output 2014-11-14 11:03:30 +01:00
.cvsignore * src/ltlvisit/Makefile.am (lib_LTLIBRARIES): Rename as ... 2003-04-30 12:46:12 +00:00
.gitignore more files to ignore 2009-09-02 10:41:18 +02:00
Makefile.am Remove support for state-based alternating automata. 2014-10-06 10:35:51 +02:00