Alexandre Duret-Lutz
09c93a3a3d
forbid the use of std::endl on std::cerr
...
std::cerr will flush after each operator<< by default, so it's simpler
to use \n instead of std::endl, especially if we can merge \n into the
previous string. Ideally we should prefer \n for std::cout as well,
but there are reasonable cases where we want to call std::endl there,
so it's hard to enforce.
* tests/sanity/style.test: Diagnose occurrences of cerr.*<<.*endl.
* bin/autcross.cc, bin/autfilt.cc, bin/ltlcross.cc, bin/ltlsynt.cc,
spot/tl/formula.cc, spot/twa/bdddict.cc, tests/core/checkpsl.cc,
tests/core/checkta.cc, tests/core/consterm.cc, tests/core/emptchk.cc,
tests/core/equalsf.cc, tests/core/ikwiad.cc, tests/core/kind.cc,
tests/core/length.cc, tests/core/ltlrel.cc, tests/core/parity.cc,
tests/core/randtgba.cc, tests/core/reduc.cc, tests/core/syntimpl.cc,
tests/ltsmin/modelcheck.cc: Fix them.
2019-07-17 09:15:50 +02:00
Alexandre Duret-Lutz
0d9cc29b46
tl: eight new simplification rules
...
* NEWS, doc/tl/tl.tex: Document the rules.
* spot/tl/simplify.cc: Implement them.
* tests/core/reduccmp.test: Test them.
* tests/core/det.test, tests/core/ltl2tgba2.test,
tests/python/stutter-inv.ipynb, tests/core/385.test: Adjust.
2019-07-09 16:09:15 +02:00
Alexandre Duret-Lutz
5b01ce32dd
* spot/tl/simplify.cc: Fix typos in tracing code.
2019-06-30 23:01:03 +02:00
Alexandre Duret-Lutz
c830b5db25
* spot/tl/formula.cc: Fix two fixmes.
2019-06-21 22:01:42 +02:00
Alexandre Duret-Lutz
da5d23f0a2
simplify: GF(f)=GF(dnf(f)) FG(f)=FG(cnf(f))
...
These rules come from Delag's paper, and help some cases
in issue #385 .
* spot/tl/simplify.cc: Implement the simplification.
* doc/tl/tl.tex, NEWS: Document it.
* tests/core/385.test: New file.
* tests/Makefile.am: Add it.
* tests/core/reduccmp.test: More tests.
* tests/core/ltl2tgba2.test: Adjust one improved case.
* tests/python/automata.ipynb, tests/python/twagraph-internals.ipynb:
Adjust expected output, as the cnf/dnf reorder some subformulas.
2019-06-18 10:03:56 +02:00
Alexandre Duret-Lutz
df326e032b
use a bibtex file to collect all references in Doxygen
...
* doc/tl/tl.bib: Move ...
* doc/spot.bib: ... here, and augment it with all references that
appeared verbatim in Doxygen comments.
* doc/Makefile.am, doc/tl/Makefile.am
doc/tl/tl.tex: Adjust for the move.
* doc/Doxyfile.in: Point to spot.bib.
* spot/gen/automata.hh, spot/gen/formulas.hh, spot/misc/game.hh,
spot/misc/minato.hh spot/taalgos/emptinessta.hh,
spot/taalgos/minimize.hh, spot/taalgos/tgba2ta.hh, spot/tl/formula.hh,
spot/tl/remove_x.hh, spot/tl/simplify.hh, spot/tl/snf.hh,
spot/twaalgos/cobuchi.hh, spot/twaalgos/cycles.hh,
spot/twaalgos/dualize.hh, spot/twaalgos/gtec/gtec.hh,
spot/twaalgos/gv04.hh, spot/twaalgos/ltl2taa.hh,
spot/twaalgos/ltl2tgba_fm.hh, spot/twaalgos/magic.hh,
spot/twaalgos/minimize.hh, spot/twaalgos/parity.hh,
spot/twaalgos/powerset.hh, spot/twaalgos/randomgraph.hh,
spot/twaalgos/se05.hh, spot/twaalgos/simulation.hh,
spot/twaalgos/strength.hh, spot/twaalgos/stutter.hh,
spot/twaalgos/tau03.hh, spot/twaalgos/totgba.hh,
spot/twaalgos/toweak.hh: Use \cite instead of a verbatim bibtex entry.
2019-06-14 21:02:27 +02:00
Alexandre Duret-Lutz
b4da0cf660
hierarchy: add a new way to check DBA-realizability via DPA
...
* spot/tl/hierarchy.cc, spot/tl/hierarchy.hh: Here.
* tests/core/hierarchy.test: Test it.
* bin/man/spot-x.x: Document SPOT_PR_CHECK.
* doc/org/hierarchy.org, NEWS: Update.
2019-06-12 23:38:17 +02:00
Alexandre Duret-Lutz
58389bdb80
tl: extend F[n:m] and G[n:m] to the case of m=$
...
Suggested by Victor Khomenko.
* spot/tl/formula.cc, spot/tl/formula.hh, spot/parsetl/parsetl.yy:
Implement this.
* NEWS, doc/tl/tl.tex: Document it.
* tests/core/sugar.test, tests/python/ltlparse.py: Add some tests.
2019-06-02 14:39:21 +02:00
Alexandre Duret-Lutz
90a88d0b5a
tl: fix handling of f##[0:0]g, and of ##[0:n]g
...
The first issue was reported by Victor Khomenko.
* spot/tl/formula.cc: Introduce a single-argument
version of sugar_delay().
* spot/parsetl/parsetl.yy: Use it.
* doc/tl/tl.tex, spot/tl/formula.hh: Adjust doc.
* tests/core/ltlfilt.test, tests/core/sugar.test: More tests.
2019-05-20 20:59:33 +02:00
Alexandre Duret-Lutz
66a3b6f7cb
tl: fix the definition of ##[i:j]
...
Reported by Victor Khomenko.
* NEWS, doc/tl/tl.tex, spot/tl/formula.cc: Fix the definition.
* tests/core/ltl2tgba.test: Add some test cases.
2019-05-19 09:16:42 +02:00
Alexandre Duret-Lutz
b726d78cbd
tl: new simplification rules
...
Related to issue #385 .
* doc/tl/tl.tex, NEWS: Document the rules.
* spot/tl/simplify.cc: Implement the rules.
* tests/core/reduccmp.test, tests/core/ltl2tgba2.test: Add tests.
* tests/core/degenscc.test: Adjust.
2019-05-18 11:39:09 +02:00
Alexandre Duret-Lutz
066133b829
tl: implement relabel_apply()
...
* spot/tl/relabel.hh, spot/tl/relabel.cc: Here.
* NEWS: Mention it.
* tests/python/relabel.py: Use it.
2019-05-18 11:22:52 +02:00
Alexandre Duret-Lutz
e325289a12
simplify: more rules for first_match
...
* spot/tl/simplify.cc: Implement the rules.
* tests/core/reduccmp.test: Test them.
* doc/tl/tl.tex: Document them.
2019-05-11 14:10:57 +02:00
Alexandre Duret-Lutz
c6605e951d
tl: add some simplifications for first_match
...
Following a discussion with Victor Khomenko.
* doc/tl/tl.tex: Document those rules.
* spot/tl/simplify.cc: Implement them.
* tests/core/reduccmp.test: Test them.
2019-05-08 15:08:31 +02:00
Alexandre Duret-Lutz
b7cd475632
tl: first_match does not preserve syntactic_si
...
* spot/tl/formula.cc: Fix it.
* tests/core/kind.test: Add test case.
2019-05-06 21:52:05 +02:00
Alexandre Duret-Lutz
6fac026454
implement SVA's first_match operator
...
* NEWS, doc/tl/tl.tex, doc/tl/tl.bib: Document it.
* spot/parsetl/parsetl.yy, spot/parsetl/scantl.ll: Parse it.
* spot/tl/formula.cc, spot/tl/formula.hh, spot/tl/dot.cc,
spot/tl/mutation.cc, spot/tl/print.cc, spot/tl/randomltl.cc,
spot/twaalgos/ltl2tgba_fm.cc: Adjust to support first_match.
* spot/tl/mark.cc, spot/tl/simplify.cc, spot/tl/snf.cc,
spot/tl/unabbrev.cc, spot/twa/formula2bdd.cc,
spot/twaalgos/ltl2taa.cc: Ignore it.
* tests/core/acc_word.test, tests/core/randpsl.test: Add more tests.
* tests/core/rand.test, tests/core/unambig.test,
tests/python/randltl.ipynb: Adjust.
* tests/python/formulas.ipynb: Show first_match.
2019-05-06 15:11:30 +02:00
Alexandre Duret-Lutz
60d488b30c
tl: add support for ##n and ##[i:j] from SVA
...
* spot/tl/formula.cc, spot/tl/formula.hh (formula::sugar_delay): New
function to implement this operator as syntactic sugar.
* spot/parsetl/parsetl.yy, spot/parsetl/scantl.ll: Parse it.
* doc/tl/tl.tex: Document the syntactic sugar rules and precedence.
* tests/core/sugar.test: Add tests.
* NEWS: Mention this new feature.
2019-05-04 22:03:13 +02:00
Alexandre Duret-Lutz
9e7e6d50fb
formula: b* is siSERE
...
Since b[+] and [*0] are siSERE, b* is siSERE as well.
Suggested by Victor Khomenko.
* spot/tl/formula.cc: Implement that for Star and also
in the concatenation rule.
* tests/core/kind.test, tests/core/ltlfilt.test: Adjust.
2019-04-26 22:14:19 +02:00
Alexandre Duret-Lutz
897925975b
formula: fix syntactic-SI detection for ; operator
...
Reported by Victor Khomenko.
* spot/tl/formula.cc: Rewrite the siPSL detection for ";".
* tests/core/ltlfilt.test: Add more tests.
* tests/core/kind.test: Adjust.
* NEWS: Mention the bug.
2019-04-26 16:21:12 +02:00
Alexandre Duret-Lutz
98c8725d0c
print_dot_psl: fix numbering of commutative operands
...
* spot/tl/dot.cc: Here.
* tests/python/formulas.ipynb: Add test case.
* NEWS: Mention the bug.
2018-12-17 17:09:56 +01:00
Alexandre Duret-Lutz
d94efe9fe1
implement is_liveness() and is_liveness_automaton()
...
* spot/twaalgos/strength.cc, spot/twaalgos/strength.hh,
spot/tl/hierarchy.cc, spot/tl/hierarchy.hh: Here.
* bin/ltlfilt.cc (--liveness): New filter.
* NEWS: Mention those.
* tests/core/ltlfilt.test, tests/python/ltlsimple.py: Add test cases.
2018-10-15 21:37:31 +02:00
Alexandre Duret-Lutz
82a152c38a
unabbreviate: add new rules based on eventual/universal arguments
...
Based on a report by Simon Jantsch. Fixes #362 .
* NEWS, doc/tl/tl.tex: Mention the new rules.
* spot/tl/unabbrev.cc: Implement them.
* tests/core/unabbrevwm.test: Test them.
* tests/python/randltl.ipynb: Adjust.
2018-10-01 17:53:05 +02:00
Alexandre Duret-Lutz
eae05119e5
exclusive_ap::constrain does not improve determism
...
Fixes #363 .
* spot/tl/exclusive.cc: Fix the prop_copy() call.
* tests/core/exclusive-tgba.test: Test it.
* NEWS: Mention the issue.
2018-09-26 11:35:19 +02:00
Alexandre Duret-Lutz
4ce0d92896
tl: add some implication-based rewritings for "<->", "->", and "xor"
...
This prevents an exception from being raised if NNF is not performed
on Boolean properties and implication-based checks are used.
* NEWS: Mention the issue.
* spot/tl/simplify.cc, doc/tl/tl.tex: Add some rules.
* tests/python/ltlsimple.py: Test them.
2018-08-01 17:17:09 +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
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
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
ca1c67a73d
simplifier: add two new rules
...
Fixes #354 .
* spot/tl/simplify.cc: Implement the rules.
* doc/tl/tl.tex, NEWS: Document them.
* tests/core/reduccmp.test: Add tests.
* tests/core/det.test, tests/core/satmin.test: Adjust.
2018-06-05 08:48:40 +02:00
Alexandre Duret-Lutz
fc0ed01a45
randomltl: avoid #define
...
As this pollutes the user's namespace.
* spot/tl/randomltl.hh: Use class-level enum and constexpr instead
of #define.
* spot/tl/randomltl.cc, python/spot/__init__.py, bin/randltl.cc,
tests/python/dualize.py, tests/python/sum.py: Adjust usage.
2018-05-16 18:35:36 +02:00
Alexandre Duret-Lutz
cfcc18e680
simplify: reduce {r;1} to {r} or {1}
...
Fixes #3 .
* spot/tl/simplify.cc: Implement this new rule.
* doc/tl/tl.tex, NEWS: Document it.
* tests/core/reduccmp.test: Test it.
2018-03-15 07:59:25 +01:00
Alexandre Duret-Lutz
ac6b0c9432
include config.h in all *.cc files
...
This helps working around missing C functions like strcasecmp that do
not exist everywhere (e.g. on Cygwin), and for which lib/ supplies a
replacement. Unfortunately we do not have such build in our current
continuous integration suite, so we cannot easily detect files where
such config.h inclusion would be useful. Therefore this patch simply
makes it mandatory to include config.h in *.cc files. Including this
in public *.hh file is currently forbidden.
* spot/gen/automata.cc, spot/gen/formulas.cc,
spot/kripke/fairkripke.cc, spot/kripke/kripke.cc,
spot/ltsmin/ltsmin.cc, spot/misc/game.cc, spot/parseaut/fmterror.cc,
spot/parsetl/fmterror.cc, spot/parsetl/parsetl.yy,
spot/priv/bddalloc.cc, spot/priv/freelist.cc, spot/priv/satcommon.cc,
spot/priv/trim.cc, spot/priv/weight.cc, spot/ta/ta.cc,
spot/ta/taexplicit.cc, spot/ta/taproduct.cc, spot/ta/tgtaexplicit.cc,
spot/ta/tgtaproduct.cc, spot/taalgos/dot.cc,
spot/taalgos/emptinessta.cc, spot/taalgos/minimize.cc,
spot/taalgos/reachiter.cc, spot/taalgos/statessetbuilder.cc,
spot/taalgos/stats.cc, spot/taalgos/tgba2ta.cc, spot/tl/apcollect.cc,
spot/tl/contain.cc, spot/tl/declenv.cc, spot/tl/defaultenv.cc,
spot/tl/dot.cc, spot/tl/exclusive.cc, spot/tl/hierarchy.cc,
spot/tl/length.cc, spot/tl/ltlf.cc, spot/tl/mark.cc,
spot/tl/mutation.cc, spot/tl/nenoform.cc, spot/tl/print.cc,
spot/tl/randomltl.cc, spot/tl/relabel.cc, spot/tl/remove_x.cc,
spot/tl/simplify.cc, spot/tl/snf.cc, spot/tl/unabbrev.cc,
spot/twa/acc.cc, spot/twa/bdddict.cc, spot/twa/bddprint.cc,
spot/twa/formula2bdd.cc, spot/twa/taatgba.cc, spot/twa/twa.cc,
spot/twa/twagraph.cc, spot/twa/twaproduct.cc, spot/twaalgos/aiger.cc,
spot/twaalgos/alternation.cc, spot/twaalgos/are_isomorphic.cc,
spot/twaalgos/bfssteps.cc, spot/twaalgos/canonicalize.cc,
spot/twaalgos/cleanacc.cc, spot/twaalgos/cobuchi.cc,
spot/twaalgos/complement.cc, spot/twaalgos/complete.cc,
spot/twaalgos/compsusp.cc, spot/twaalgos/couvreurnew.cc,
spot/twaalgos/cycles.cc, spot/twaalgos/degen.cc,
spot/twaalgos/determinize.cc, spot/twaalgos/dot.cc,
spot/twaalgos/dtbasat.cc, spot/twaalgos/dtwasat.cc,
spot/twaalgos/dualize.cc, spot/twaalgos/emptiness.cc,
spot/twaalgos/gtec/ce.cc, spot/twaalgos/gtec/gtec.cc,
spot/twaalgos/gtec/sccstack.cc, spot/twaalgos/gtec/status.cc,
spot/twaalgos/gv04.cc, spot/twaalgos/hoa.cc,
spot/twaalgos/iscolored.cc, spot/twaalgos/isdet.cc,
spot/twaalgos/isunamb.cc, spot/twaalgos/isweakscc.cc,
spot/twaalgos/langmap.cc, spot/twaalgos/lbtt.cc,
spot/twaalgos/ltl2taa.cc, spot/twaalgos/ltl2tgba_fm.cc,
spot/twaalgos/magic.cc, spot/twaalgos/mask.cc,
spot/twaalgos/minimize.cc, spot/twaalgos/neverclaim.cc,
spot/twaalgos/parity.cc, spot/twaalgos/postproc.cc,
spot/twaalgos/powerset.cc, spot/twaalgos/product.cc,
spot/twaalgos/rabin2parity.cc, spot/twaalgos/randomgraph.cc,
spot/twaalgos/randomize.cc, spot/twaalgos/reachiter.cc,
spot/twaalgos/relabel.cc, spot/twaalgos/remfin.cc,
spot/twaalgos/remprop.cc, spot/twaalgos/sbacc.cc,
spot/twaalgos/sccfilter.cc, spot/twaalgos/sccinfo.cc,
spot/twaalgos/se05.cc, spot/twaalgos/sepsets.cc,
spot/twaalgos/simulation.cc, spot/twaalgos/split.cc,
spot/twaalgos/stats.cc, spot/twaalgos/strength.cc,
spot/twaalgos/stripacc.cc, spot/twaalgos/stutter.cc,
spot/twaalgos/sum.cc, spot/twaalgos/tau03.cc,
spot/twaalgos/tau03opt.cc, spot/twaalgos/totgba.cc,
spot/twaalgos/toweak.cc, spot/twaalgos/translate.cc,
spot/twaalgos/word.cc, tests/core/acc.cc, tests/core/bitvect.cc,
tests/core/checkpsl.cc, tests/core/checkta.cc, tests/core/consterm.cc,
tests/core/emptchk.cc, tests/core/equalsf.cc, tests/core/graph.cc,
tests/core/ikwiad.cc, tests/core/intvcmp2.cc, tests/core/intvcomp.cc,
tests/core/kind.cc, tests/core/kripkecat.cc, tests/core/length.cc,
tests/core/ltlrel.cc, tests/core/ngraph.cc, tests/core/parity.cc,
tests/core/randtgba.cc, tests/core/readltl.cc, tests/core/reduc.cc,
tests/core/safra.cc, tests/core/sccif.cc, tests/core/syntimpl.cc,
tests/core/taatgba.cc, tests/core/tostring.cc, tests/core/trival.cc,
tests/core/twagraph.cc, tests/ltsmin/modelcheck.cc,
spot/parseaut/scanaut.ll, spot/parsetl/scantl.ll: Include config.h.
* spot/gen/Makefile.am, spot/graph/Makefile.am,
spot/kripke/Makefile.am, spot/ltsmin/Makefile.am,
spot/parseaut/Makefile.am, spot/parsetl/Makefile.am,
spot/priv/Makefile.am, spot/ta/Makefile.am, spot/taalgos/Makefile.am,
spot/tl/Makefile.am, spot/twa/Makefile.am, spot/twaalgos/Makefile.am,
spot/twaalgos/gtec/Makefile.am, tests/Makefile.am: Add the -I lib/
flags.
* tests/sanity/includes.test: Catch missing config.h in *.cc, and
diagnose config.h in *.hh.
* tests/sanity/style.test: Better diagnostics.
2018-02-21 17:59:09 +01:00
Alexandre GBAGUIDI AISSE
0d26b5d245
tl/hierarchy: Optimize is_persistence/recurrence processing chains
...
* spot/tl/hierarchy.cc: Here.
2018-01-19 02:09:28 +01:00
Alexandre GBAGUIDI AISSE
ebe3a15dcc
remfin: add is_buchi_realizable() method
...
* NEWS: Update.
* spot/tl/hierarchy.cc: Replace rabin_to_buchi_maybe() with
is_buchi_realizable().
* spot/twaalgos/remfin.cc: Implement it.
* spot/twaalgos/remfin.hh: Declare it.
2018-01-19 02:09:28 +01:00
Alexandre GBAGUIDI AISSE
1b4002401a
spot: small factorisations, improvements and typos
...
* spot/tl/hierarchy.cc: Factorisations, improvements.
* spot/twaalgos/totgba.cc: Typos.
2018-01-19 02:07:00 +01:00
Alexandre Duret-Lutz
62d1e0219d
Add support for computing operator nesting depth
...
* spot/tl/hierarchy.hh, spot/tl/hierarchy.cc (nesting_depth): New
function.
* python/spot/__init__.py: Also make it a method of formula in Python
* bin/common_output.cc, bin/common_output.hh: Implement
--stats=%[OP]n.
* NEWS: Mention it.
* tests/core/format.test, tests/python/formulas.ipynb: Test it.
2017-12-10 20:31:56 +01:00
Alexandre Duret-Lutz
49b76bcf66
doxygen doc: minor improvements
...
* doc/footer.html: Make the footer XML compatible.
* doc/mainpage.dox: Fix references to modules.
* spot/tl/formula.hh: Introduce a hierarchy module.
* spot/tl/hierarchy.hh: Use it.
2017-12-08 22:07:11 +01:00
Alexandre Duret-Lutz
7b2517a518
formula: accept additional arguments for map and traverse
...
Fixes #306 .
* spot/tl/formula.hh, python/spot/__init__.py: Implement this
in C++ and Python.
* doc/org/tut03.org: Document (and indirectly test) it.
* NEWS: Mention it.
2017-11-23 23:04:15 +01:00
Alexandre Duret-Lutz
974a4238f6
introduce formula::is_leaf()
...
Fixes #307 .
* spot/tl/formula.hh: Here.
* tests/python/ltlparse.py: Test it.
* NEWS: Mention it.
2017-11-23 13:40:05 +01:00
Alexandre GBAGUIDI AISSE
7e0fc448c5
hierarchy: Rewrite is_recurrence(), is_persistence() and add tests
...
* spot/tl/hierarchy.cc: Rewrite is_recurrence(), is_persistence()
* spot/tl/hierarchy.hh: Fix typo.
* tests/core/hierarchy.test: Add tests.
2017-11-21 01:20:05 +01:00
Alexandre Duret-Lutz
d89579321f
fix ASAN reports about mismatched emplace new/delete
...
* spot/misc/bitvect.cc, spot/misc/bitvect.hh, spot/tl/formula.cc,
spot/tl/formula.hh: Here.
* NEWS: Mention the bug.
2017-11-17 18:11:55 +01:00
Alexandre Duret-Lutz
50fe34a55a
introduce is_obligation(f)
...
This is not optimal yet because it still construct a minimal WDBA
internally, but it's better than the previous way to call
minimize_obligation() since it can avoid constructing the minimized
automaton in a few more cases.
* spot/tl/hierarchy.cc, spot/tl/hierarchy.hh: Introduce
is_obligation().
* bin/ltlfilt.cc: Wire it to --obligation.
* spot/twaalgos/minimize.cc: Implement is_wdba_realizable(),
needed by the above.
* tests/core/obligation.test: Test it.
* bin/man/spot-x.x, NEWS: Document it.
2017-11-16 07:26:34 +01:00
Alexandre GBAGUIDI AISSE
f7ee9ed18e
hierarchy: Fix #303
...
* spot/tl/hierarchy.cc: code was actually reachable.
2017-11-16 02:14:18 +01:00
Alexandre Duret-Lutz
0a2bca1377
simplify: improve the logic of some implication checks
...
Fixes #293 .
* spot/tl/simplify.cc: Test implications that would yield tt or ff
first. In rules of the form "if a => b, a op b = b" also check
if b => a, and in this case return smallest(a,b).
* tests/core/reduccmp.test: Add a test.
* NEWS: Mention it.
2017-10-15 10:07:14 +02:00
Florian Perlié-Long
0f023bd0fe
* HACKING, doc/tl/tl.tex, spot/tl/formula.hh: Typos
2017-10-03 15:54:48 +02:00
Alexandre Duret-Lutz
002e6ed96b
formula: fix building of {a->c[*]}
...
Fixes #285 , reported by Florian Perlié-Long.
* NEWS: Mention the issue.
* spot/tl/formula.cc: Fix it.
* tests/core/kind.test: Document it.
* THANKS: Add Florian.
2017-09-26 17:32:54 +02:00
Alexandre GBAGUIDI AISSE
c827f75c37
hierarchy: Add is_persistence() and make is_recurrence() use it
...
* NEWS: Update.
* bin/man/spot-x.x: Add environment variable.
* spot/tl/hierarchy.cc: Implement them.
* spot/tl/hierarchy.hh: Declare them.
2017-09-20 15:25:31 +01:00
Alexandre GBAGUIDI AISSE
e59274b609
hierarchy: Make is_recurrence() public
...
* NEWS: Declare it.
* spot/tl/hierarchy.cc: Remove static keyword and anonymous namespace.
* spot/tl/hierarchy.hh: Declare function.
2017-09-19 17:37:00 +01:00
Alexandre Duret-Lutz
6cd6802ace
simplify: rewrite GF(a & Fb) as G(Fa & Fb)
...
This addresses part of #35 , and is just a generalization of the rules
from 646c5170 for #263 (hence, no new documentation).
* spot/tl/simplify.cc: Implement this.
* tests/core/reduccmp.test: Add test cases.
* tests/core/stutter-tgba.test: Adjust to expect smaller automata.
2017-09-02 20:02:20 +02:00
Alexandre Duret-Lutz
e8527d5ae9
Improve simplification of expr[*0..1]
...
Fixes #108 .
* spot/tl/simplify.cc: Implement the reduction.
* doc/tl/tl.tex, NEWS: Document it.
* tests/core/reduccmp.test: Test it.
2017-09-02 16:35:18 +02:00
Alexandre Duret-Lutz
646c5170ed
simplify: some new simplification rules
...
For #263 , reported by Mikuláš Klokočka.
G(a & Xe1 & F(b & e2)) = G(a & e1 & Fb & e2)
F(a | Xu1 | G(b | u2)) = F(a | u1 | Gb | u2)
* spot/tl/simplify.cc: Implement the rules.
* doc/tl/tl.tex, NEWS: Document them.
* tests/core/reduccmp.test, tests/core/eventuniv.test: Add test cases.
* tests/core/det.test, tests/core/ltl2tgba2.test: Adjust to expect
smaller automata.
* THANKS: Add Mikuláš.
2017-09-02 11:27:04 +02:00