- 21 Nov, 2014 5 commits
-
-
Alexandre Duret-Lutz authored
* src/hoaparse/parsedecl.hh (hoa_abort): New structure. * src/hoaparse/hoascan.ll: Throw hoa_abort on --ABORT--. * src/hoaparse/hoaparse.yy: Deal with this exception. * src/hoaparse/public.hh: Add a boolean flag to mark aborted automata. * src/bin/autfilt.cc: Report aborted automata. * src/tgbatest/hoaparse.test: Add test case.
-
Alexandre Duret-Lutz authored
* src/hoaparse/hoaparse.yy: Allocate state after parsing the entire header, not right after passing "States:". * src/tgbatest/hoaparse.test: Reflect improved error message about initial state.
-
Alexandre Duret-Lutz authored
* src/hoaparse/hoaparse.yy: Here. * src/tgbatest/hoaparse.test: More tests. * src/tgba/acc.hh (operator^=): New method.
-
Alexandre Duret-Lutz authored
* src/hoaparse/hoaparse.yy: Here. * src/tgbatest/hoaparse.test: Test it.
-
Alexandre Duret-Lutz authored
* src/hoaparse/hoaparse.yy: Here. * src/tgbatest/hoaparse.test: More test.
-
- 20 Nov, 2014 4 commits
-
-
Alexandre Duret-Lutz authored
* src/hoaparse/hoaparse.yy: Here. * src/tgbatest/hoaparse.test: Add tests.
-
Alexandre Duret-Lutz authored
* src/hoaparse/hoaparse.yy: Improve error recovery, and fix location tracking in streams. * src/hoaparse/public.hh: Store the last location so that the next parse start at the correct position. * src/bin/autfilt.cc: Stop parsing a stream on irrecoverable errors. * src/tgbatest/hoaparse.test: Adjust tests.
-
Alexandre Duret-Lutz authored
* src/tgbatest/monitor.test: New file. * src/tgbatest/Makefile.am: Add it. * src/tgbaalgos/minimize.cc (minimize_monitor): Mark the output automaton as state-based. * src/tgba/tgbagraph.hh: Assume automata with 0 acceptance sets are also state-based.
-
Alexandre Duret-Lutz authored
* src/bin/autfilt.cc, src/bin/dstar2tgba.cc: Do not reference the formula in --help.
-
- 19 Nov, 2014 5 commits
-
-
Alexandre Duret-Lutz authored
* src/bin/autfilt.cc: Loop over all automata in a file. * src/hoaparse/public.hh: Turn the parser into an object. * src/hoaparse/hoaparse.yy: Adjust.
-
Alexandre Duret-Lutz authored
* src/bin/autfilt.cc, src/bin/man/autfilt.x: New files. * src/bin/Makefile.am, src/bin/man/Makefile.am: Add them. * src/bin/common_post.cc, src/bin/common_post.hh: Adjust.
-
Alexandre Duret-Lutz authored
-
Alexandre Duret-Lutz authored
* src/bin/ltlcross.cc: Add a %H modifier. * src/tgbatest/ltlcross2.test: Exercise it.
-
Alexandre Duret-Lutz authored
* src/hoaparse/Makefile.am, src/hoaparse/fmterror.cc, src/hoaparse/hoaparse.yy, src/hoaparse/hoascan.ll, src/hoaparse/parsedecl.hh, src/hoaparse/public.hh: New files. * src/Makefile.am, configure.ac, README: Adjust. * src/tgbatest/ltl2tgba.cc: Add a -XH option. * src/tgbatest/hoaparse.test: New file. * src/tgbatest/Makefile.am: Adjust. * buddy/src/bddx.h: Add a bdd_from_int() function.
-
- 18 Nov, 2014 2 commits
-
-
Alexandre Duret-Lutz authored
* src/tgbaalgos/hoaf.cc: Do not initialize acc_cond::mark_t with -1U.
-
Alexandre Duret-Lutz authored
* src/dstarparse/dstarscan.ll, src/kripkeparse/kripkescan.ll, src/neverparse/neverclaimscan.ll, src/tgbaparse/tgbascan.ll: Distinguish between 1-sized EOL and 2-sized EOL. * src/kripketest/bad_parsing.test, src/tgbatest/neverclaimread.test, src/tgbatest/readsave.test: Add more tests. * NEWS: Mention it. * src/kripkeparse/scankripke.ll: Remove this unused file.
-
- 14 Nov, 2014 12 commits
-
-
Alexandre Duret-Lutz authored
-
Alexandre Duret-Lutz authored
-
Alexandre Duret-Lutz authored
Because src/ltltest/stutter.test is stronger. * src/tgbatest/stutter_invariant.test: Remove. * src/tgbatest/Makefile.am: Adjust.
-
Alexandre Duret-Lutz authored
* src/ltltest/ltlfilt.test: Add more tests. * src/ltltest/stutter.test: New test. * src/ltltest/Makefile.am: Adjust. * src/bin/ltlfilt.cc: Catch std::runtime_error. * src/tgba/tgbasl.hh (make_tgbasl): New function. * src/tgba/tgbagraph.hh (make_tgba_graph): Add another overload. * src/tgbaalgos/stutter_invariance.cc, src/tgbaalgos/stutter_invariance.hh: Take the algorithm version as an optional integer, and call getenv() only once. * bench/stutter/stutter_invariance_randomgraph.cc, bench/stutter/stutter_invariance_formulas.cc: Simplify using the above functions.
-
* src/tgbaalgos/closure.cc, src/tgbaalgos/closure.hh: Using vectors instead of sets and unordered maps, adding an overload to handle rvalue references. * src/tgbaalgos/stutterize.cc, src/tgbaalgos/stutterize.hh: Adding an overload to handle rvalue references. * bench/stutter/stutter_invariance_formulas.cc, bench/stutter/stutter_invariance_randomgraph.cc: Automata are modified in-place by is_stutter_invariant so they have to be copied before being processed. * src/tgbaalgos/stutter_invariance.cc, src/tgbaalgos/stutter_invariance.hh: Use the in-place version of closure and sl.
-
* src/tgbaalgos/translate.cc, src/tgbaalgos/translate.hh: Remove const qualifier in translator::run return type.
-
* src/tgbaalgos/closure.cc, src/tgbaalgos/closure.hh: Add closure function. * src/tgbaalgos/stutterize.cc, src/tgbaalgos/stutterize.hh: Add two implementations of "self-loopize" function. * src/tgbaalgos/Makefile.am: Add them. * src/tgba/tgbasl.cc, src/tgba/tgbasl.hh: On-the-fly implementation of self-loopize. * src/tgba/Makefile.am: Add it. * src/tgbatest/ltl2tgba.cc, src/tgbatest/stutter_invariant.test: Test closure and sl. * src/tgbatest/Makefile.am: Adjust. * src/bin/ltlfilt.cc: Modify stutter-invariant option to use automaton-based checking rather than syntactic-based checking. * src/ltlvisit/remove_x.cc, src/ltlvisit/remove_x.hh: Remove is_stutter_insensitive function. * src/tgbaalgos/stutter_invariance.cc, src/tgbaalgos/stutter_invariance.hh: Check if a formula is stutter-invariant using closure and sl. * wrap/python/spot.i: Add closure and sl bindings. * bench/stutter/stutter_invariance_formulas.cc: Generate benchmarks from given formulas. * bench/stutter/stutter_invariance_randomgraph.cc: Generate benchmarks from random automata. * bench/stutter/Makefile.am: Add them. * configure.ac: Add bench/stutter/Makefile. * bench/Makefile.am: Add stutter subdirectory. * README: Document bench/stutter directory.
-
* src/tgba/tgbagraph.hh: Adding trans_storage methods to access the underlying trans_storage_t struct.
-
* src/tgbaalgos/randomgraph.cc, src/tgbaalgos/randomgraph.hh: Add option to generate a complete deterministic automaton. * src/tgbatest/randtgba.cc: Test it.
-
* src/bin/ltlfilt.cc: Add --ap=N option.
-
Alexandre Duret-Lutz authored
-
Alexandre Duret-Lutz authored
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.
-
- 07 Nov, 2014 2 commits
-
-
Alexandre Duret-Lutz authored
* src/ltlast/atomic_prop.hh, src/ltlast/binop.hh, src/ltlast/bunop.hh, src/ltlast/constant.hh, src/ltlast/unop.hh: Here. * src/misc/common.hh: Disable final for swig3.0.
-
Alexandre Duret-Lutz authored
-
- 31 Oct, 2014 1 commit
-
-
Alexandre Duret-Lutz authored
* src/tgba/tgbasafracomplement.cc: Here. Beside being more efficient, the use of std::swap instead of an assignment also protects us from a bug recently introduced in the development version of G++. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63698
-
- 30 Oct, 2014 3 commits
-
-
Alexandre Duret-Lutz authored
* buddy/src/bdd.h, buddy/src/bvec.h, buddy/src/fdd.h: Rename as... * buddy/src/bddx.h, buddy/src/bvecx.h, buddy/src/fddx.h: ... these. * buddy/src/Makefile.am: Build libbddx.la instead of libbdd.la. * buddy/examples/Makefile.def: Use it. * Makefile.am, buddy/src/bddtest.cxx, buddy/src/bvec.c, buddy/src/cppext.cxx, buddy/src/fdd.c, buddy/src/imatrix.h, buddy/src/kernel.h, buddy/examples/adder/adder.cxx, buddy/examples/bddcalc/parser_.h, buddy/examples/bddtest/bddtest.cxx, buddy/examples/cmilner/cmilner.c, buddy/examples/fdd/fdd.cxx, buddy/examples/milner/milner.cxx, buddy/examples/money/money.cxx, buddy/examples/queen/queen.cxx, buddy/examples/solitare/solitare.cxx, m4/buddy.m4, src/ltlvisit/apcollect.hh, src/ltlvisit/simplify.hh, src/misc/bddlt.hh, src/misc/bddop.hh, src/misc/minato.hh, src/priv/acccompl.hh, src/priv/accconv.hh, src/priv/accmap.hh, src/priv/bddalloc.cc, src/tgba/bdddict.hh, src/tgba/bddprint.hh, src/tgba/tgbamask.hh, src/tgba/tgbasafracomplement.cc, src/tgbaalgos/emptiness.hh, src/tgbaalgos/gtec/sccstack.hh, src/tgbaalgos/neverclaim.cc, src/tgbaalgos/powerset.cc, src/tgbaalgos/sccfilter.hh, src/tgbaalgos/sccinfo.hh, src/tgbaalgos/weight.hh, wrap/python/buddy.i: Adjust. * NEWS, README: Document it.
-
Alexandre Duret-Lutz authored
* src/tgba/tgbagraph.cc (purge_unreachable_states): Rewrite using only one vector.
-
Alexandre Duret-Lutz authored
* src/misc/common.hh: Here. * src/misc/intvcmp2.cc, src/misc/intvcomp.cc: Adjust to use them.
-
- 28 Oct, 2014 2 commits
-
-
Alexandre Duret-Lutz authored
* src/tgba/tgbagraph.hh, src/tgba/tgbagraph.cc: Add a copy constructor, and some method to purge unreachable states. * src/graph/graph.hh (defrag_states): Erase transition of removed states. * src/tgbaalgos/complete.cc, src/tgbaalgos/compsusp.cc, src/tgbaalgos/dtgbacomp.cc, src/tgbaalgos/simulation.cc, src/tgbatest/checkpsl.cc, src/tgbatest/emptchk.cc, src/tgbatest/ltl2tgba.cc: Adjust to use make_tgba_digraph() instead of tgba_dupexp_dfs() or tgba_dupexp_bfs(). * src/tgbaalgos/dupexp.cc, src/tgbaalgos/dupexp.hh: Use make_tgba_digraph() when possible. * src/tgbatest/det.test, src/tgbatest/sim.test: Adjust expected results.
-
Alexandre Duret-Lutz authored
The double result is never used with a triple keys, so we can pack the cache entry more tightly. * src/cache.h: Reorganize the cache entry the structure. * src/cache.c: Cleanup the code while we are at it. * src/bddop.c: Adjust to accesses to cache entries.
-
- 26 Oct, 2014 4 commits
-
-
Alexandre Duret-Lutz authored
* src/ltlast/formula.hh: Specialize std::hash<>. * src/ltlvisit/contain.hh, src/ltlvisit/relabel.cc, src/tgba/taatgba.hh, src/tgbaalgos/ltl2tgba_fm.cc: Do not pass formula_ptr_hash to unordered_map.
-
Alexandre Duret-Lutz authored
* src/tgba/tgbasafracomplement.cc: Remove documentation of inexisting argument. * src/tgbaalgos/hoaf.hh: Fix typo in documentation.
-
Alexandre Duret-Lutz authored
Since we are now using std::chrono from C++11. * lib/gethrxtime.c, lib/gethrxtime.h, lib/gettime.c, lib/timespec.c, lib/timespec.h, lib/xtime.c, lib/xtime.h, m4/clock_time.m4, m4/gethrxtime.m4, m4/gettime.m4, m4/timespec.m4: Delete these files. * lib/Makefile.am, m4/gnulib-cache.m4, m4/gnulib-comp.m4: Adjust.
-
Alexandre Duret-Lutz authored
* src/misc/timer.hh (stopwatch): New class, implemented on top of C++11's std::chrono::high_resolution_clock. * src/bin/dstar2tgba.cc, src/bin/ltl2tgba.cc, src/bin/ltlcross.cc: Use it in lieu of gethrxtime(), so we do not need to distribute gethrxtime anymore.
-