Commit graph

4254 commits

Author SHA1 Message Date
Thomas Medioni
c9d8d41fd3 implement dualize to complement automatons
* NEWS: Mention the implementation
* python/spot/impl.i: Add dualize() to python interface.
* spot/twaalgos/Makefile.am: Add dualize.cc,hh to the build
* spot/twaalgos/dualize.cc: Implement dualize() that takes an automaton
  and returns its dual
* spot/twaalgos/dualize.hh: Implement dualize()
* tests/Makefile.am: Add dualize tests to the test suite
* tests/python/dualize.py: Test cases for dualize
2017-04-07 17:15:38 +02:00
Alexandre Duret-Lutz
cc0e9a5e1e bin: add shorthands for ltl2dpa ltl2da and ltl2ldba
* bin/common_trans.cc: Here.
* doc/org/ltlcross.org, doc/org/ltldo.org, NEWS: Adjust.
2017-04-06 14:33:14 +02:00
Maximilien Colange
31a9bc6416 Fix wrong URL for Debian packages.
* debian/control: Fix URL.
2017-04-05 11:03:59 +02:00
Alexandre Duret-Lutz
b442d2bbd4 remfin: fix a corner case for rabin_to_buchi_maybe
when fin_alone sets where presents (i.e., not really Rabin condition),
the rabin_to_buchi_maybe() could fail to notice DBA-typeness.

* spot/twaalgos/remfin.cc: Don't set scc_ba_type to false when
fin_alone is present.
* tests/core/remfin.test: Add a test case.
2017-04-04 14:20:41 +02:00
Thomas Medioni
cebc4b00b5 sum: Fix universal initial state bug
* spot/twaalgos/sum.cc: Fix the sum of automatas having universal
  initial transitions.
* tests/core/explsum.test: Add test case testing the handling of
  universal initial transitions in sum.
2017-04-03 11:32:45 +02:00
Thomas Medioni
5f43fec8db bench: fix stutter bench compiler errors.
* NEWS: mention this fix.
* bench/stutter/stutter_bench.sh, bench/stutter/user.sh: Path to spot
  binaries would include an inexistant src directory.
* bench/stutter/stutter_invariance_formulas.cc: Add override qualifier
  to satisfy -Wsuggest-override.
2017-03-31 13:40:05 +02:00
Alexandre Duret-Lutz
be41155308 various typos
* bench/dtgbasat/gen.py, spot/twaalgos/complement.hh: Fix
looser->loser and lossing->losing.
* tests/sanity/style.test: Catch 'an uni[^n]'.
* spot/ta/ta.hh, spot/taalgos/tgba2ta.cc, spot/taalgos/tgba2ta.hh,
spot/twa/twagraph.cc, spot/twaalgos/complement.hh,
spot/twaalgos/sccinfo.cc, spot/twaalgos/sum.hh: Fix various occurences
of this pattern.
2017-03-30 21:45:43 +02:00
Alexandre Duret-Lutz
42e5cd955e [buddy] Typos in comments
* src/kernel.c (bdd_addref): Fix typo documentation.
* src/bddop.c (bdd_appall, bdd_appallcomp): Likewise.
2017-03-30 21:45:22 +02:00
Maximilien Colange
41ac0e681f Properly track dependencies of SWIG files.
Properly track dependencies of SWIG files to trigger recompilation when
appropriate.
Closes issue #250.

* python/Makefile.am: Track the dependencies of .i files à la automake.
2017-03-29 23:51:59 +02:00
Alexandre Duret-Lutz
f6b735234d python: update some incorrect or obsolete code
* tests/python/ipnbdoctest.py: Use importlib instead of imp.
* tests/python/ltlparse.py: Fix invalid escape sequence.
2017-03-29 20:04:08 +02:00
Alexandre Duret-Lutz
f6e6099d9b python: mark prop_deterministic as deprecated
Related to #212.

* python/spot/impl.i: Here.
2017-03-29 20:00:26 +02:00
Maximilien Colange
60bf675c10 Improve sanity tests.
* tests/sanity/style.test: improve detection of assert in headers, and
  of template arguments.
2017-03-29 11:57:45 +02:00
Alexandre Duret-Lutz
f6a238efd5 twa_graph: fix purge_unreachable_states on alternating automata
The algorithm had two problems: it was removing only useless
destination from universal destination (instead of removing the entire
edge), and it was not properly iterating over the entire reachable
automaton.

* spot/twa/twagraph.cc: Fix it.
* spot/twa/twagraph.hh: Adjust documentation.
* tests/core/alternating.test: Add more tests.
* tests/python/twagraph.py: Adjust.
* NEWS: Mention the bug.
2017-03-29 10:08:23 +02:00
Alexandre Duret-Lutz
5f564c2b45 emacs config: Make C-c C-c execute the current test through ./run
* .dir-locals.el: Redefine C-c C-c in sh-mode and python-mode for
the tests/ subdirectory.c
* HACKING: Mention it.
2017-03-28 21:34:40 +02:00
Alexandre Duret-Lutz
e86964fe81 complete: add more comments
Because we spent some time with Thomas to re-understand the logic.

* spot/twaalgos/complete.cc: Comment the code.
2017-03-28 15:37:04 +02:00
Alexandre Duret-Lutz
a90f219369 complement: reset the terminal property
Reported by Thomas Medioni.

* spot/twaalgos/complement.cc: Here.
* tests/core/complement.test: Add a test case.
* NEWS: Mention it.
2017-03-27 21:39:16 +02:00
Alexandre Duret-Lutz
4a5d7a3978 rename is_deterministic to is_universal
For #212.

* spot/twa/twa.hh: Rename prop_deterministic() as prop_universal(),
and keep the old name as deprecated.
* spot/twaalgos/isdet.cc, spot/twaalgos/isdet.hh: Rename
is_deterministic() as is_universal(), and add a new function
for is_deterministic().
* doc/org/concepts.org, doc/org/hoa.org, doc/org/tut21.org,
spot/tl/hierarchy.cc, spot/twa/twagraph.cc,
spot/twaalgos/are_isomorphic.cc, spot/twaalgos/determinize.cc,
spot/twaalgos/dtbasat.cc, spot/twaalgos/dtwasat.cc,
spot/twaalgos/hoa.cc, spot/twaalgos/minimize.cc,
spot/twaalgos/postproc.cc, spot/twaalgos/product.cc,
spot/twaalgos/randomgraph.cc, spot/twaalgos/remfin.cc,
spot/twaalgos/simulation.cc, spot/twaalgos/totgba.cc,
spot/twaalgos/word.cc, tests/python/product.ipynb,
tests/python/remfin.py: Adjust.
* NEWS: Mention the change.
2017-03-27 19:34:10 +02:00
Alexandre Duret-Lutz
4518724a5b genltl: fix %F for --r-left and --r-right
Fixes #247.

* bin/genltl.cc: Here.
* tests/core/genltl.test: Make sure %F always return a correct pattern
name..
* NEWS: Mention the bug.
2017-03-22 21:26:16 +01:00
Alexandre Duret-Lutz
fe3b86b306 genltl: add support for --p-patterns
Fixes #246.

* bin/genltl.cc: Implement it.
* bin/man/genltl.x, doc/org/genltl.org, NEWS: Document it.
* tests/core/ltl2tgba2.test: Test it.
2017-03-22 21:26:16 +01:00
Alexandre Duret-Lutz
1c2a7f3d4f genltl: add --hkrss-patterns
Fixes #245.

* bin/genltl.cc: Add the option.
* bin/man/genltl.x: Add reference.
* tests/core/ltl2tgba2.test: Use these patterns.
* doc/org/genltl.org, NEWS: Document the options.
2017-03-22 21:26:16 +01:00
Alexandre Duret-Lutz
e86add4814 genltl: add --spec-patterns as an alias to --dac-patterns
* bin/genltl.cc: Here.
* NEWS: Mention it.
2017-03-22 07:27:07 +01:00
Alexandre Duret-Lutz
0de5f50da9 twa: add support for prop_complete()
* spot/twa/twa.hh: Add support.  Make two constructors for prop_set in
order to diagnose constructions with 5 arguments.
* spot/parseaut/parseaut.yy: Adjust diagnostics for complete and
deterministic.
* spot/tl/exclusive.cc, spot/twa/twagraph.cc,
spot/twaalgos/alternation.cc, spot/twaalgos/complete.cc,
spot/twaalgos/complete.hh, spot/twaalgos/degen.cc,
spot/twaalgos/determinize.cc, spot/twaalgos/hoa.cc,
spot/twaalgos/isdet.cc, spot/twaalgos/mask.cc,
spot/twaalgos/minimize.cc, spot/twaalgos/product.cc,
spot/twaalgos/remfin.cc, spot/twaalgos/remprop.cc,
spot/twaalgos/sbacc.cc, spot/twaalgos/sccfilter.cc,
spot/twaalgos/simulation.cc, spot/twaalgos/strength.cc,
spot/twaalgos/stutter.cc, spot/twaalgos/totgba.cc,
tests/core/parseaut.test, tests/python/product.ipynb: Adjust.
* NEWS, doc/org/concepts.org, doc/org/hoa.org,
doc/org/tut21.org: Document it.
2017-03-20 21:07:08 +01:00
Alexandre Duret-Lutz
90a8a912e0 org: move babel's temporary directory in builddir
Fixes #244, reported by Vincent Tourneur.

* doc/org/.dir-locals.el.in, doc/org/init.el.in: Define
org-babel-temporary-directory and create the directory.
2017-03-18 19:13:30 +01:00
Alexandre Duret-Lutz
1290d48379 * bin/common_aoutput.cc: Remove a dead assignment. 2017-03-15 17:12:29 +01:00
Alexandre Duret-Lutz
270b18ebdb * doc/org/tut11.org: Typo in title. 2017-03-15 14:23:55 +01:00
Alexandre Duret-Lutz
3d3baf449e parsetl: improve coverage
* spot/parsetl/parsetl.yy: Adjust one diagnostic.
* spot/parsetl/scantl.ll: Fix recovering of missing closing brace
in lenient mode.
* tests/python/declenv.py: Move some tests...
* tests/python/ltlparse.py: ... here, and add many more.
* NEWS: Mention the lenient mode bug.
2017-03-15 14:23:19 +01:00
Alexandre Duret-Lutz
ab8a40cb10 Merge branch 'master' into next 2017-03-15 09:24:37 +01:00
Alexandre Duret-Lutz
6b339a3712 Bump version to 2.3.2.dev
* NEWS, configure.ac: Here.
2017-03-15 09:21:59 +01:00
Alexandre Duret-Lutz
696eba8a29 Release Spot 2.3.2
* configure.ac, NEWS, doc/org/setup.org: Bump version to 2.3.2.
2017-03-15 09:17:10 +01:00
Alexandre Duret-Lutz
d134c09f1c tl.pdf: adjust syntactic hierarchy class to match code
Fixes #243.

* doc/tl/tl.tex: Here.
2017-03-14 14:38:19 +01:00
Alexandre Duret-Lutz
2f7d5cfd00 tl.pdf: adjust syntactic hierarchy class to match code
Fixes #243.

* doc/tl/tl.tex: Here.
2017-03-14 14:37:23 +01:00
Alexandre Duret-Lutz
880131a0c3 [buddy] add -Wno-gnu if supported
* m4/gccwarns.m4: Add -Wno-gnu to workaround a diagnostic from
clang 3.9.1 on arch Linux.  clang was complaining whtat assert()
is using a GNU extension.
2017-03-14 13:35:52 +01:00
Alexandre Duret-Lutz
b7afef3643 org: misc cosmetics
* doc/org/tut24.org: Add missing section title.
* doc/org/spot.css: Style h3 headings, and remove some useless lines.
2017-03-14 13:35:52 +01:00
Alexandre Duret-Lutz
7ee52041dd [buddy] remove useless #include<assert.h>
* src/bddio.c, src/bddop.c, src/imatrix.c, src/pairs.c: Here.
2017-03-14 13:35:52 +01:00
Alexandre Duret-Lutz
d0f92d75a1 tl: fix incorrect comment about {r} vs. cl(r)
Fixes #242.

* doc/tl/tl.tex: Remove incorrect claim that {r} does not match the
PSL semantics.
2017-03-14 13:35:52 +01:00
Alexandre Duret-Lutz
63776d9c93 [buddy] add -Wno-gnu if supported
* m4/gccwarns.m4: Add -Wno-gnu to workaround a diagnostic from
clang 3.9.1 on arch Linux.  clang was complaining whtat assert()
is using a GNU extension.
2017-03-14 12:03:10 +01:00
Alexandre Duret-Lutz
e851e0f8c0 org: misc cosmetics
* doc/org/tut24.org: Add missing section title.
* doc/org/spot.css: Style h3 headings, and remove some useless lines.
2017-03-14 10:44:30 +01:00
Alexandre Duret-Lutz
bd4e0f19b9 [buddy] remove useless #include<assert.h>
* src/bddio.c, src/bddop.c, src/imatrix.c, src/pairs.c: Here.
2017-03-13 22:26:47 +01:00
Alexandre Duret-Lutz
a0d9bab566 tl: fix incorrect comment about {r} vs. cl(r)
Fixes #242.

* doc/tl/tl.tex: Remove incorrect claim that {r} does not match the
PSL semantics.
2017-03-13 18:09:44 +01:00
Alexandre Duret-Lutz
55a524cf3c org: detect C++ errors
* doc/org/g++wrap.in: Save error messages.
* doc/Makefile.am: Display them at the end of the compilation.
2017-03-10 17:54:01 +01:00
Alexandre Duret-Lutz
f9eefdc295 emptiness stats: remove some unused code
* spot/twaalgos/emptiness_stats.hh (unsigned_statistics_copy): Remove.
* tests/core/randtgba.cc: Remove option -H.
2017-03-10 16:24:46 +01:00
Alexandre Duret-Lutz
d6d987bd96 emptiness checks: replace assert-preconditions by exceptions
* spot/twaalgos/couvreurnew.cc, spot/twaalgos/gv04.cc,
spot/twaalgos/magic.cc, spot/twaalgos/se05.cc, spot/twaalgos/tau03.cc,
spot/twaalgos/tau03opt.cc: Throw if precondition on acceptance
condition is not satisfied.
* tests/python/misc-ec.py: New file.
* tests/Makefile.am: Add it.
* NEWS: Mention the change.
2017-03-10 15:41:57 +01:00
Alexandre Duret-Lutz
2e3fc0d4d2 emptiness checks: replace assert-preconditions by exceptions
* spot/twaalgos/couvreurnew.cc, spot/twaalgos/gv04.cc,
spot/twaalgos/magic.cc, spot/twaalgos/se05.cc, spot/twaalgos/tau03.cc,
spot/twaalgos/tau03opt.cc: Throw if precondition on acceptance
condition is not satisfied.
* tests/python/misc-ec.py: New file.
* tests/Makefile.am: Add it.
* NEWS: Mention the change.
2017-03-10 14:36:22 +01:00
Alexandre Duret-Lutz
55b029961b * .gitignore: Ignore *.gcov files. 2017-03-09 17:22:06 +01:00
Alexandre Duret-Lutz
4fd297786a gnulib: update to 405cd675384221b541b460c43de26d159914fe0a
This also include my patch to lib/argp.hh for C++ compilation.

* lib/Makefile.am, lib/alloca.in.h, lib/argmatch.c, lib/argmatch.h,
lib/argp-ba.c, lib/argp-eexst.c, lib/argp-fmtstream.c,
lib/argp-fmtstream.h, lib/argp-fs-xinl.c, lib/argp-help.c,
lib/argp-namefrob.h, lib/argp-parse.c, lib/argp-pin.c, lib/argp-pv.c,
lib/argp-pvh.c, lib/argp-xinl.c, lib/argp.h, lib/asnprintf.c,
lib/basename-lgpl.c, lib/c-ctype.h, lib/c-strcase.h,
lib/c-strcasecmp.c, lib/c-strcaseeq.h, lib/c-strncasecmp.c,
lib/config.charset, lib/dirname-lgpl.c, lib/dirname.h, lib/dosname.h,
lib/errno.in.h, lib/error.c, lib/error.h, lib/exitfail.c,
lib/exitfail.h, lib/fcntl.in.h, lib/float+.h, lib/float.c,
lib/float.in.h, lib/getopt.c, lib/getopt.in.h, lib/getopt1.c,
lib/getopt_int.h, lib/gettext.h, lib/gettimeofday.c,
lib/hard-locale.c, lib/hard-locale.h, lib/intprops.h, lib/isatty.c,
lib/itold.c, lib/localcharset.c, lib/localcharset.h, lib/lstat.c,
lib/malloc.c, lib/mbrtowc.c, lib/mbsinit.c, lib/memchr.c,
lib/mempcpy.c, lib/mkstemp.c, lib/mkstemps.c, lib/msvc-inval.c,
lib/msvc-inval.h, lib/msvc-nothrow.c, lib/msvc-nothrow.h,
lib/pathmax.h, lib/printf-args.c, lib/printf-args.h,
lib/printf-parse.c, lib/printf-parse.h, lib/progname.c,
lib/progname.h, lib/quote.h, lib/quotearg.c, lib/quotearg.h,
lib/rawmemchr.c, lib/ref-add.sin, lib/ref-del.sin,
lib/secure_getenv.c, lib/size_max.h, lib/sleep.c, lib/stat.c,
lib/stdalign.in.h, lib/stdbool.in.h, lib/stddef.in.h, lib/stdint.in.h,
lib/stdio.in.h, lib/stdlib.in.h, lib/stpcpy.c, lib/strcasecmp.c,
lib/strchrnul.c, lib/streq.h, lib/strerror-override.c,
lib/strerror-override.h, lib/strerror.c, lib/string.in.h,
lib/strings.in.h, lib/stripslash.c, lib/strncasecmp.c, lib/strndup.c,
lib/strnlen.c, lib/strverscmp.c, lib/sys_stat.in.h, lib/sys_time.in.h,
lib/sys_types.in.h, lib/sys_wait.in.h, lib/sysexits.in.h,
lib/tempname.c, lib/tempname.h, lib/time.in.h, lib/unistd.in.h,
lib/vasnprintf.c, lib/vasnprintf.h, lib/verify.h, lib/vsnprintf.c,
lib/wchar.in.h, lib/wctype.in.h, lib/xalloc-die.c,
lib/xalloc-oversized.h, lib/xalloc.h, lib/xmalloc.c, lib/xsize.h,
m4/00gnulib.m4, m4/absolute-header.m4, m4/alloca.m4, m4/argp.m4,
m4/configmake.m4, m4/dirname.m4, m4/double-slash-root.m4,
m4/errno_h.m4, m4/error.m4, m4/exponentd.m4, m4/extensions.m4,
m4/extern-inline.m4, m4/fcntl-o.m4, m4/fcntl_h.m4, m4/float_h.m4,
m4/getopt.m4, m4/gettimeofday.m4, m4/glibc21.m4, m4/gnulib-cache.m4,
m4/gnulib-common.m4, m4/gnulib-comp.m4, m4/gnulib-tool.m4,
m4/hard-locale.m4, m4/include_next.m4, m4/intmax_t.m4,
m4/inttypes_h.m4, m4/isatty.m4, m4/largefile.m4, m4/localcharset.m4,
m4/locale-fr.m4, m4/locale-ja.m4, m4/locale-zh.m4, m4/longlong.m4,
m4/lstat.m4, m4/malloc.m4, m4/math_h.m4, m4/mbrtowc.m4, m4/mbsinit.m4,
m4/mbstate_t.m4, m4/memchr.m4, m4/mempcpy.m4, m4/mkstemp.m4,
m4/mkstemps.m4, m4/mmap-anon.m4, m4/msvc-inval.m4, m4/msvc-nothrow.m4,
m4/multiarch.m4, m4/nocrash.m4, m4/off_t.m4, m4/pathmax.m4,
m4/printf.m4, m4/quote.m4, m4/quotearg.m4, m4/rawmemchr.m4,
m4/secure_getenv.m4, m4/size_max.m4, m4/sleep.m4, m4/ssize_t.m4,
m4/stat.m4, m4/stdalign.m4, m4/stdbool.m4, m4/stddef_h.m4,
m4/stdint.m4, m4/stdint_h.m4, m4/stdio_h.m4, m4/stdlib_h.m4,
m4/stpcpy.m4, m4/strcase.m4, m4/strchrnul.m4, m4/strerror.m4,
m4/string_h.m4, m4/strings_h.m4, m4/strndup.m4, m4/strnlen.m4,
m4/strverscmp.m4, m4/sys_socket_h.m4, m4/sys_stat_h.m4,
m4/sys_time_h.m4, m4/sys_types_h.m4, m4/sys_wait_h.m4, m4/sysexits.m4,
m4/tempname.m4, m4/time_h.m4, m4/unistd_h.m4, m4/vasnprintf.m4,
m4/vsnprintf.m4, m4/warn-on-use.m4, m4/wchar_h.m4, m4/wchar_t.m4,
m4/wctype_h.m4, m4/wint_t.m4, m4/xalloc.m4, m4/xsize.m4,
tools/snippet/arg-nonnull.h, tools/snippet/c++defs.h,
tools/snippet/warn-on-use.h: Update.
* lib/getprogname.c, lib/getprogname.h, lib/limits.in.h, lib/minmax.h,
m4/getprogname.m4, m4/limits-h.m4, m4/minmax.m4: New files.
2017-03-09 17:22:06 +01:00
Alexandre Duret-Lutz
07e714e14e upgrade utfcpp to v2.3.5
From https://github.com/nemtrif/utfcpp/releases/tag/v2.3.5

* utf8/utf8.h, utf8/utf8/checked.h, utf8/utf8/core.h,
utf8/utf8/unchecked.h: Update.
* utf8/doc/utf8cpp.html, utf8/doc/ReleaseNotes: Delete.
* utf8/README.md: New file.
* Makefile.am: Adjust.
2017-03-09 17:22:06 +01:00
Alexandre Duret-Lutz
b81d7e5839 python: add python bindings for declarative_environment
* python/spot/impl.i: Here.
* tests/python/declenv.py: New file.
* tests/Makefile.am: Add it.
2017-03-09 17:22:06 +01:00
Alexandre Duret-Lutz
2df677d2d2 parsetl: factor some code
* spot/parsetl/parsetl.yy (parse_ap, sere_ensure_bool,
error_false_block): New functions, replacing several similar blocks.
2017-03-09 17:20:42 +01:00
Alexandre Duret-Lutz
93b9932f90 * AUTHORS: Add Thomas Medioni. 2017-03-09 13:52:30 +01:00
Thomas Medioni
194c199232 Implement sum(..) and sum_and(..).
Fixes #231.

* NEWS: Mention of implementation of sum, sum_and.
* bin/autfilt.cc: Add --sum, --sum-or and --sum-and options.
* python/spot/impl.i: Add bindings for sum, sum_and.
* spot/twaalgos/Makefile.am: Add sum.cc, sum.hh.
* spot/twaalgos/sum.cc: Implement sum, sum_and.
* spot/twaalgos/sum.hh: Declaration of sum, sum_and.
* tests/Makefile.am: Add sum tests.
* tests/core/explsum.test: Test the sum of two automatons,
  false or false, unsatisfied mark propagation, handling of univ.
  transitions.
* tests/python/sum.py: Check that two automatons that does not
  share their bdd dict are not accepted, then run tests over the
  sum of randomly generated LTL formulas.
2017-03-09 11:42:08 +01:00