Commit graph

4948 commits

Author SHA1 Message Date
Maximilien Colange
bd75ab5b39 ltlsynt: rework synthesis algorithms
ltlsynt now offers two algorithms: one where splitting occurs before
determinization (the historical one) and one where determinization
occurs before splitting.

* bin/ltlsynt.cc: here
* tests/core/ltlsynt.test: test it and refactor test file
* NEWS: document it
* spot/misc/game.hh, spot/misc/game.cc: remove Calude's algorithm
2018-07-27 14:22:11 +02:00
Maximilien Colange
516e9536df LAR made smarter with symmetry-based degeneralization
* spot/twaalgos/toparity.cc: here
* spot/twa/acc.hh, spot/twa/acc.cc: compute symmetries of an acceptance
  condition
* tests/python/accparse2.py, tests/python/toparity.py: test it
2018-07-27 00:44:19 +02:00
Alexandre Duret-Lutz
3303b86a89 ltl-split: translate any "safety" with "rest"
* tests/core/ltl2tgba2.test: Add a test-case reported by Maximilien.
* spot/twaalgos/translate.cc: Translate any "safety" formula with
"rest".
* tests/python/highlighting.ipynb: Adjust.
2018-07-26 18:17:13 +02:00
Alexandre Duret-Lutz
a14f96813d * spot/twaalgos/translate.cc: Typos in comments. 2018-07-26 17:02:52 +02:00
Alexandre Duret-Lutz
469d2b4ef4 genem: fix removal of unsatisfied Fin(x) sets
Fixes #360.

* spot/twa/acc.cc, spot/twa/acc.hh (force_inf): New method.
* spot/twaalgos/genem.cc: Fix the emptiness check using force_inf.
* tests/python/genem.py: Add test case and adjust the python
version of the emptiness check.
2018-07-26 16:07:30 +02:00
Alexandre Duret-Lutz
9f81df2cd4 scc_info: fix split_on_sets
* spot/twaalgos/sccinfo.cc (split_on_sets): Correctly register APs.
* tests/python/sccsplit.py: New file.
* tests/Makefile.am: Add it.
* NEWS: Mention the bug.
2018-07-26 16:07:22 +02:00
Alexandre Duret-Lutz
b52f4ea711 * .gitlab-ci.yml (debpkg-stable): Typo. 2018-07-25 11:18:26 +02:00
Alexandre Duret-Lutz
4b8910d3f9 ltlfilt: introduce --suspendable
* bin/ltlfilt.cc: Add the option.
* tests/core/ltlfilt.test: Use it.
* NEWS: Mention it.
2018-07-25 11:18:26 +02:00
Maximilien Colange
465536d1fe translate any automaton to a parity automaton
* spot/twaalgos/toparity.cc, spot/twaalgos/toparity.hh: implement it,
  based on last-appearance record (LAR)
* spot/twaalgos/Makefile.am: build it
* NEWS: document it
* python/spot/impl.i: add to python bindings
* tests/Makefile.am, tests/python/toparity.py: test it
2018-07-24 14:58:53 +02:00
Alexandre Duret-Lutz
da996ecbaf use the generic emptiness check
* spot/twa/twa.cc (is_empty, intersects): Here.
* spot/twaalgos/sccinfo.cc (check_scc_emptiness): Here.
* spot/twaalgos/genem.cc: Report error if the input is alternating.
* spot/twaalgos/isunamb.cc, spot/twaalgos/sccinfo.hh: Adjust.
* NEWS: Mention the change.
2018-07-24 13:36:04 +02:00
Alexandre Duret-Lutz
86b6506268 * spot/twa/twa.cc: Typo. 2018-07-24 13:36:04 +02:00
Alexandre Duret-Lutz
d708174cfe genem: implement a generic emptiness check for twa_graph_ptr
* spot/twa/acc.cc, spot/twa/acc.hh (fin_unit, one_fin): New function.
* spot/twaalgos/genem.cc, spot/twaalgos/genem.hh: New files.
* spot/twaalgos/Makefile.am: Add it.
* tests/python/genem.py: New file.
* tests/Makefile.am: Add it.
* python/spot/impl.i: Add bindings for genem.hh.
* NEWS: Mention the new function.
2018-07-24 13:36:04 +02:00
Etienne Renault
74dfd73aae HACKING: directory has moved
* HACKING: Here.
2018-07-23 10:01:38 +02:00
Etienne Renault
8aeadb5966 remove duplicated includes
* spot/graph/graph.hh,
spot/taalgos/tgba2ta.cc,
spot/tl/formula.hh,
spot/twaalgos/dot.cc,
spot/twaalgos/ltl2tgba_fm.cc,
spot/twaalgos/ndfs_result.hxx,
spot/twaalgos/powerset.cc,
spot/twaalgos/stutter.cc: Here.
2018-07-23 10:01:38 +02:00
Etienne Renault
a1877ab4e1 remove useless forward declaration
* spot/ta/taexplicit.hh,
spot/twaalgos/compsusp.hh,
spot/twaalgos/isunamb.hh,
spot/twaalgos/word.hh: Here.
2018-07-23 10:00:56 +02:00
Alexandre Duret-Lutz
d08193508e modernize std::string("foo") into "foo"s
* spot/ltsmin/ltsmin.cc, spot/misc/tmpfile.cc,
spot/parseaut/parseaut.yy, spot/taalgos/dot.cc, spot/tl/hierarchy.cc,
spot/tl/unabbrev.cc, spot/twa/acc.cc, spot/twa/twagraph.cc,
spot/twaalgos/dot.cc, spot/twaalgos/hoa.cc, spot/twaalgos/lbtt.cc,
spot/twaalgos/neverclaim.cc, spot/twaalgos/strength.cc,
spot/twaalgos/word.cc: Replace std::string("foo") by "foo"s, and
include namespace std::string_literals.
2018-07-19 11:02:47 +02:00
Alexandre Duret-Lutz
832ee81f75 escape_rfc4180: document relation with std::quote
* spot/misc/escape.hh: Here.
2018-07-18 17:39:02 +02:00
Alexandre Duret-Lutz
6875284f94 fix two issues related to jupyter notebook execution
* tests/python/ipnbdoctest.py: Invert diffs inputs.
* tests/run.in: Run notebooks with
PYTHONIOENCODING=utf-8:surrogateescape to avoid exceptions when trying
to display utf-8 characters on ascii terminals.
2018-07-12 17:18:22 +02:00
Alexandre Duret-Lutz
d941b9e176 org: add missing documentation for prop_complete
* doc/org/concepts.org: Here.
2018-07-12 15:23:36 +02:00
Alexandre Duret-Lutz
46590af693 more documentation for twa_graph internals
* spot/graph/graph.hh, spot/twa/twagraph.hh, spot/twa/twagraph.cc:
Implement a dump_storage_as_dot() method.
* python/spot/__init__.py (twa_graph.show_storage): New method, above
dump_storage_as_dot().
* tests/python/twagraph-internals.ipynb: New file, with documentation
about the twa_graph internals, using show_storage() to illustrate
everything.
* tests/Makefile.am, doc/org/tut.org: Add it.
* python/spot/impl.i: Add bindings for out_iterasor, demonstrated in
the Python notebook.
* spot/twa/twa.hh: Add prop_reset().  Used in the notebook.
* NEWS: Mention the new notebook and function.
* doc/org/tut50.org: Link to the notebook.
* tests/python/ipnbdoctest.py: Adjust for twa_graph_ptr being
redefined in the spot namespace.
2018-07-12 15:23:23 +02:00
d8bc50dcb7 * HACKING: typos 2018-07-09 11:13:16 +02:00
Alexandre Duret-Lutz
9b8af36527 * doc/tl/tl.tex: Convert to utf-8. 2018-07-06 21:53:14 +02:00
Alexandre Duret-Lutz
e7aa334a71 tl: add support for X[n], F[n:m] and G[n:m]
* NEWS, doc/tl/tl.tex, doc/tl/tl.bib: Document these new operators.
* spot/parsetl/parsetl.yy, spot/parsetl/scantl.ll: Parse those.
* spot/tl/formula.cc, spot/tl/formula.hh: Add constructors.
* spot/gen/formulas.cc: Use it.
* tests/core/sugar.test: New file.
* tests/Makefile.am: Add it.
2018-07-06 21:53:10 +02:00
Alexandre Duret-Lutz
2616ea7c80 org: do not define the viewport twice
* doc/org/.dir-locals.el.in, doc/org/init.el.in: Do not set the
viewport, org already does it.
2018-07-05 13:54:21 +02:00
Alexandre Duret-Lutz
db19141f7a Bump version to 2.6.0.dev
* NEWS, configure.ac: Here.
2018-07-04 17:11:24 +02:00
Alexandre Duret-Lutz
215b0dcbf0 Release Spot 2.6
* NEWS, configure.ac, doc/org/setup.org: Bump version to 2.6.
2018-07-04 17:07:09 +02:00
Alexandre Duret-Lutz
70b212d8b8 org: add instructions for install RPM packages
* doc/org/install.org: Here.
* NEWS: Mention that we have RPM packages.
2018-07-04 16:00:00 +02:00
Alexandre Duret-Lutz
0a9c1d3347 * spot.spec.in: Use --disable-devel --enable-optimizations. 2018-07-04 16:00:00 +02:00
Alexandre Duret-Lutz
0d2b8aacd1 Fix GITPATCH computation
Since the introduction of the syntcomp2018-submission tag (on a
separate branch), that computation of GITPATCH was based on this
tag because it was the last one (even if it is not on next).
We did not see it on the Debian packages, because they clone
only one branch of the repository, but the RPM packages had a
different GITPATCH.

* configure.ac (GITPATCH): Compute the number of commits since the
last "spot-*" tag.
2018-07-04 16:00:00 +02:00
Alexandre Duret-Lutz
0411099506 trival: prefer a global operator== relying on implicit conversion
Hopefully fixes #359.

* spot/misc/trival.hh: Declare a global operator==(trival,trival) that
replace the specialized operator==(bool,trival), and the in class
trival::operator(trival), thanks to the implicit construction from
bool to trival.  Make the repr_t/value_t constructor explicit, are
those are mostly internal to the library and may cause conflicts.
* spot/twa/twa.hh: Adjust to construct trival explicitly.
* python/spot/impl.i: Since Swig/Python does not support global
comparison operators, implement a member version, supporting
only __eq__(trival,bool) as before.
* tests/python/setacc.py: Adjust erroneous code.
* tests/python/trival.py: Add test cases.
2018-07-04 16:00:00 +02:00
43d426aaae complement: improve code coverage
* spot/twaalgos/complement.cc: removed unused code
* tests/python/except.py: test for exception raised
2018-07-02 18:36:56 +02:00
Clément Gillard
4ca38d225a * spot/twaalgos/product.hh: Typos in comments. 2018-07-02 17:35:42 +02:00
Alexandre Duret-Lutz
b9482a5bcc * .gitlab-ci.yml: Typo. 2018-07-02 16:44:47 +02:00
34ffc1fa1f isdet: fix documentation error
* spot/twaalgos/isdet.hh: here
2018-07-02 16:37:55 +02:00
c717b58827 implement NCSB complementation
* spot/twaalgos/isdet.cc,spot/twaalgos/isdet.hh: Two new functions to
highlight deterministic SCCs
* spot/twaalgos/complement.cc,spot/twaalgos/complement.hh:
Implementation of the NCSB complementation algorithm
* tests/Makefile.am, tests/python/complement_semidet.py: Test the
implementation
* NEWS: document function
2018-07-02 14:32:57 +02:00
Alexandre Duret-Lutz
8d233692b2 gitlab-ci: publish the RPM packages
* .gitlab-ci.yml (publish-rpm): New job.
2018-07-02 14:27:27 +02:00
Alexandre Duret-Lutz
3a03144754 * AUTHORS: Add Antoine. 2018-07-01 16:37:53 +02:00
Alexandre Duret-Lutz
e48c6c40d0 ltl-split: deal with suspendable formulas that are false
Fixes #358.

* spot/twaalgos/translate.cc: Fix the assert().
* tests/core/ltl2tgba2.test: Add a test case.
2018-06-30 20:39:30 +02:00
Alexandre Duret-Lutz
d82419de1a * NEWS: Adjust for the release of Owl 18.06. 2018-06-30 17:19:58 +02:00
Alexandre Duret-Lutz
c1b7497f84 gfguarantee: fix selection of moved init state
Fixes #357.

* spot/twaalgos/gfguarantee.cc: Decide that a moved init state is to
close from the terminal state *before* actually modifying the
automaton.
* tests/core/ltl2tgba2.test: Add a test.
2018-06-30 16:44:59 +02:00
Alexandre Duret-Lutz
04d05104fa bin: conform to GNU Coding Standards for --version
* bin/common_setup.cc: Print the version number after the parentheses.
2018-06-29 21:55:21 +02:00
Alexandre Duret-Lutz
4e8b35d7ca twa: introduce exclusive_word() and exclusive_run()
* spot/twa/twa.cc, spot/twa/twa.hh: Add these methods.
* NEWS, tests/python/contains.ipynb: Document them.
2018-06-29 21:55:21 +02:00
3c12015181 build rpm package during ci
* .gitignore: don't commit spot.spec
* Makefile.am: write version number to spot.spec.in
* .gitlab-ci.yml: new job builds the tarball and rpm package
* spot.spec.in: spot.spec is used by rpmbuild to build the package
2018-06-29 13:29:15 +02:00
Alexandre Duret-Lutz
f5f5daec9a translate: enable a restricted form of ltl-split for TGBA/BA
Fixes #267

* spot/twaalgos/gfguarantee.cc: Fix a typo when comparing automata
sizes.
* spot/twaalgos/translate.cc, spot/twaalgos/translate.hh: Use
ltl-split even for BA/TGBA, but only of conjunctions with GF(..)
in those cases.
* tests/core/ltl2tgba2.test: Adjust and add the example of #267.
* tests/core/degenid.test, tests/core/parity2.test,
tests/core/stutter-tgba.test, tests/python/automata.ipynb,
tests/python/highlighting.ipynb, tests/python/stutter-inv.ipynb,
bin/spot-x.cc: Adjust.
2018-06-28 23:02:26 +02:00
Alexandre Duret-Lutz
4235b007f3 org: clarify that ltl2tgba does not only output TGBA
* doc/org/tools.org: Adjust the link to ltl2tgba.org.
* doc/org/ltl2tgba.org: Also point out that --generic and --parity can
be used without --deterministic.
* bin/ltl2tgba.cc, bin/spot.cc: Adjust help text.
2018-06-27 16:52:45 +02:00
Alexandre Duret-Lutz
90e8cb9d2d * NEWS: Fix typos reported by Fanda. 2018-06-27 16:18:15 +02:00
Alexandre Duret-Lutz
2402d721a9 modernize the logo
* doc/org/spot2.svg: New file.
* doc/Makefile.am: Distribute it.
* doc/org/.gitignore: Adjust.
* doc/org/setup.org: Display it.
* doc/org/autcross.org, doc/org/autfilt.org, doc/org/citing.org,
doc/org/compile.org, doc/org/concepts.org, doc/org/csv.org,
doc/org/dstar2tgba.org, doc/org/genaut.org, doc/org/genltl.org,
doc/org/hierarchy.org, doc/org/hoa.org, doc/org/index.org,
doc/org/install.org, doc/org/ioltl.org, doc/org/ltl2tgba.org,
doc/org/ltl2tgta.org, doc/org/ltlcross.org, doc/org/ltldo.org,
doc/org/ltlfilt.org, doc/org/ltlgrind.org, doc/org/ltlsynt.org,
doc/org/oaut.org, doc/org/randaut.org, doc/org/randltl.org,
doc/org/satmin.org, doc/org/tools.org, doc/org/tut.org,
doc/org/tut01.org, doc/org/tut02.org, doc/org/tut03.org,
doc/org/tut04.org, doc/org/tut10.org, doc/org/tut11.org,
doc/org/tut20.org, doc/org/tut21.org, doc/org/tut22.org,
doc/org/tut23.org, doc/org/tut24.org, doc/org/tut30.org,
doc/org/tut31.org, doc/org/tut50.org, doc/org/tut51.org,
doc/org/upgrade2.org: Include setup.org instead of declaring it as
SETUPFILE.
* doc/org/spot.css: Add entries for the logo.
* python/ajax/trans.html: Use the new logo.
* python/ajax/logos/mail.png, python/ajax/logos/spot64s.png: Delete.
* python/ajax/Makefile.am: Adjust.
2018-06-27 16:18:15 +02:00
Alexandre Duret-Lutz
dd973d120e doc: download plantuml.jar from lrde.epita.fr
* doc/Makefile.am (PLANTUML_URL): Adjust.
2018-06-26 14:24:22 +02:00
Alexandre Duret-Lutz
5f46becc01 * NEWS: Include a comparison with ltl3tela 1.1.2. 2018-06-26 10:29:42 +02:00
Alexandre Duret-Lutz
64df179bff org: update hierarchy examples
* doc/org/hierarchy.org: Adjust for recent changes.
2018-06-25 20:45:13 +02:00