Commit graph

2931 commits

Author SHA1 Message Date
Alexandre Duret-Lutz
a89b9d3678 hoa: do not add a fake initial state when possible
* src/hoaparse/hoaparse.yy: If we have multiple initial states, but
one of them has no incoming edge, use this state instead of the fake
initial state we normally add.
* src/tgbatest/hoaparse.test: Add test case.
2015-01-21 23:28:35 +01:00
Alexandre Duret-Lutz
58b088128d dot: output marked states only for SBA
* src/tgbaalgos/dotty.cc: Do not output marked states if
an automaton has 0 acceptance set (like a monitor).
* src/tgbatest/monitor.test, src/tgbatest/dstar.test: Adjust.
2015-01-20 11:35:34 +01:00
Alexandre Duret-Lutz
dd948bc1a7 hoa: validate trans-acc and state-acc
and also set prop_state_based_acc() on input

* src/hoaparse/hoaparse.yy: Here.
* src/tgbatest/hoaparse.test: Add tests.
2015-01-20 10:55:30 +01:00
Alexandre Duret-Lutz
c6110a884c hoa: fix parsing of label-expr with parentheses
Report from Tomáš Babiak.

* src/hoaparse/hoaparse.yy: Here.
* src/tgbatest/hoaparse.test: Add example from a development version
of ltl3ba.
2015-01-20 08:31:48 +01:00
Alexandre Duret-Lutz
8c83c8a81e dupexp: remove the version that fills a vector
Fixes #45.

* src/tgbaalgos/dupexp.cc, src/tgbaalgos/dupexp.hh: Remove unused code.
2015-01-19 18:38:33 +01:00
Alexandre Duret-Lutz
64469f3dbd simulation: take a tgba_digraph as input
Issue #45.

* src/tgbaalgos/simulation.cc, src/tgbaalgos/simulation.hh: Take
a tgba_digraph is input.
* src/tgbatest/ltl2tgba.cc: Adjust.
2015-01-19 18:17:44 +01:00
Alexandre Duret-Lutz
0159027395 simulation: get rid of the "don't care" simulation reductions
Those where never really publicized because they were slow and we failed
to fix what we hopped to fix with them.  They where never used by
default.  Getting rid of them will make it easier to cleanup the
simulation code.

* src/tgbaalgos/simulation.cc, src/tgbaalgos/simulation.hh: Remove
the simulation code.
* src/tgbaalgos/postproc.cc, src/tgbaalgos/postproc.hh,
src/tgbatest/ltl2tgba.cc: Do not call it.
* src/bin/spot-x.cc: Update doc.
* src/tgbatest/sim.test: Delete this file.
* src/tgbatest/Makefile.am: Adjust.
* src/tgbatest/spotlbtt.test, bench/ltl2tgba/tools.sim:
Remove uses to don't care simulation.
2015-01-19 18:17:44 +01:00
Alexandre Duret-Lutz
1d724beabd ltl2tgba.html: document [:*i..j]
For issue #51.

* wrap/python/ajax/ltl2tgba.html: Here.
2015-01-19 14:39:41 +01:00
Alexandre Duret-Lutz
34f1601b9b ltl: rename is_X_free() into is_syntactic_stutter_invariant()
and adjust it to detect siPSL formulas, as in the paper of Dax et
al. (ATVA'09).  For issue #51.

* src/ltlast/atomic_prop.cc, src/ltlast/binop.cc,
src/ltlast/bunop.cc, src/ltlast/constant.cc, src/ltlast/formula.cc,
src/ltlast/formula.hh, src/ltlast/multop.cc, src/ltlast/unop.cc: Rename
the property, and adjust its computation on siSERE.
* src/ltlvisit/remove_x.cc, src/ltlvisit/simplify.cc,
src/tgbaalgos/stutter.cc: Adjust to new names.
* src/bin/ltlfilt.cc: Add option --syntactic-sutter-invariant.
* src/ltltest/kind.test: Update tests and add some new.
2015-01-19 14:39:41 +01:00
Alexandre Duret-Lutz
a79db4eefe psl: add support for the [:*i..j] operator
This operator is to ':' what [*i..j] is to ';'.

Part of issue #51.

* doc/tl/tl.tex: Document syntax, semantic, and trivial
simplifications.
* doc/tl/spotltl.sty: Add macros for new operators.
* src/ltlast/bunop.cc, src/ltlast/bunop.hh: Implement it.
* src/ltlast/multop.cc: Add some trivial simplifications.
* src/ltlparse/ltlparse.yy, src/ltlparse/ltlscan.ll: Parse it.
* src/ltltest/equals.test, src/ltltest/latex.test,
src/tgbatest/ltl2tgba.test: Add more tests.
* src/ltlvisit/randomltl.cc: Output this operator in
random PSL formulas.
* src/ltltest/rand.test: Adjust.
* src/tgbaalgos/ltl2tgba_fm.cc: Add translation rules.
* src/ltlvisit/tostring.cc: Add pretty printing code.
* src/ltlvisit/simplify.cc, src/ltlvisit/snf.cc: Adjust
switches.
* NEWS: Mention the new operator.
2015-01-19 14:39:41 +01:00
Alexandre Duret-Lutz
eebbcac281 tl: formul\ae -> formulas
* doc/tl/tl.tex: Use "formulas" everywhere in this file.
2015-01-19 14:39:41 +01:00
Alexandre Duret-Lutz
731561cdac scc: get rid of scc_stats
* src/tgbaalgos/scc.cc, src/tgbaalgos/scc.hh: Here.
* src/tgbatest/ltl2tgba.cc: Remove option -k.
* src/tgbatest/sccsimpl.test: Move the only -k test...
* src/tgbatest/scc.test:... here.
2015-01-18 21:51:09 +01:00
Alexandre Duret-Lutz
5b74160abb test: simplify scc.test
Fixes #49.

* src/tgbatest/scc.test: Rewrite using ltl2tgba --stats.
2015-01-18 21:26:35 +01:00
Alexandre Duret-Lutz
1411fa6063 cycles: rewrite using the tgba_digraph interface
Fixes #50.

* src/tgbaalgos/cycles.cc, src/tgbaalgos/cycles.hh: Rewrite using
unsigned instead of state*, and std::vector instead of std::map.
* src/tgbaalgos/isweakscc.cc, src/tgbaalgos/powerset.cc: Adjust.
2015-01-18 14:03:16 +01:00
Alexandre Duret-Lutz
8fd594f5d0 ltlfilt: add a --max-count/-n option
This fixes #44.

* src/bin/ltlfilt.cc: Implement -n/--max-count.
* doc/org/ltlfilt.org, src/tgbatest/randpsl.test: Use it
* NEWS: Document it.
2015-01-14 19:59:23 +01:00
Alexandre Duret-Lutz
ae234d2e12 ltlfilt: remove -n.
* src/bin/ltlfilt.cc: Remove short option -n for --negate.
2015-01-14 18:24:31 +01:00
Alexandre Duret-Lutz
7c55500d0e never: fix output of accepting initial states
* src/tgbaalgos/neverclaim.cc: Make sure the any accepting initial state
is not output as an accept_all state.  This bug caused ltl2dstar.test to
fail.
2015-01-13 18:02:13 +01:00
Alexandre Duret-Lutz
f3f4305150 use ltl2tgba -Ds instead of ltl2tgba -sD in the test suite
Because -s can now take arguments.

* src/tgbatest/ltl2dstar2.test: Here.
2015-01-13 17:13:58 +01:00
Alexandre Duret-Lutz
1578cdf837 minimize: cosmetics
* src/tgbaalgos/minimize.cc (minimize_monitor): Simplify the call to
tgba_powerset.
2015-01-13 17:13:03 +01:00
Alexandre Duret-Lutz
f958c51991 powerset: rewrite the determinization construction using bitvectors
This helps issue #26 considerably, but I'm not closing it because there
are a few places here and there that can be cleaned up.  For instance
build_state_set in minimize.cc should be rewritten.

* src/misc/bitvect.hh (bitvector_array::clear_all): New method.
* src/tgbaalgos/powerset.cc (tgba_powerset): Rewrite it.
* src/tgbaalgos/powerset.hh (power_map): Simplify.
2015-01-13 17:08:37 +01:00
Alexandre Duret-Lutz
0d1c08e6e1 powerset: tiny speedup
* src/tgbaalgos/powerset.cc: Replace std::deque by vector, and take
the return of aut->out(s) by reference.
2015-01-12 23:23:47 +01:00
Alexandre Duret-Lutz
2377523c02 powerset: simplify an implication check
* src/tgbaalgos/powerset.cc: Use bdd_implies.
2015-01-11 19:14:32 +01:00
Alexandre Duret-Lutz
6f7f9ef8bc isdet: rewrite using the tgba_digraph interface
* src/tgbaalgos/isdet.cc, src/tgbaalgos/isdet.hh: Rewrite
using the tgba_digraph interface.
* src/tgbatest/ltl2tgba.cc: Adjust call.
2015-01-11 13:58:52 +01:00
Alexandre Duret-Lutz
c85ba787e8 ltltest: get rid of equals.cc
* src/ltltest/equals.cc: Delete.
* src/ltltest/Makefile.am: Adjust.
* src/ltltest/unabbrevwm.test: Rewrite using ltlfilt.
2015-01-09 23:18:55 +01:00
Alexandre Duret-Lutz
6a2aad6259 never: add an option to output in Spin's 6.2.4 style
Fixes #46.

* src/tgbaalgos/neverclaim.cc: Add option '6'.
* src/bin/common_aoutput.cc, src/bin/dstar2tgba.cc: Make it
possible to use the option.
* NEWS, doc/org/oaut.org: Document it.
* src/tgbatest/ltlcross2.test: Test it.
2015-01-09 22:52:46 +01:00
Alexandre Duret-Lutz
604971d651 postproc: use scc_filter_states on SBA
* src/tgbaalgos/postproc.cc: Here.  Otherwise, reading
a neverclaim with autfilt would loose the SBA property
and degeneralize again.
2015-01-09 22:23:55 +01:00
Alexandre Duret-Lutz
b2c2411bcc degen: remove two useless casts
* src/tgbaalgos/degen.cc: Here.
2015-01-09 22:22:28 +01:00
Alexandre Duret-Lutz
4f6f71fe39 neverclaim: rewrite the output using the tgba_digraph interface
* src/tgbaalgos/neverclaim.cc, src/tgbaalgos/neverclaim.hh: Here.
Also take a string to supply options.
* src/tgbatest/ltl2tgba.cc: Adjust call.
2015-01-09 18:27:49 +01:00
Alexandre Duret-Lutz
eadcf95363 powerset: rewrite using the tgba_digraph interface
Fixes #48.

* src/tgbaalgos/powerset.cc, src/tgbaalgos/powerset.hh: Here.
* src/tgbaalgos/minimize.cc: Adjust usage.
2015-01-09 17:13:31 +01:00
Alexandre Duret-Lutz
d6ba00ffe1 org: add another example
* doc/org/oaut.org: Show another way to perform the last computation.
2015-01-09 16:52:27 +01:00
Alexandre Duret-Lutz
a539dc9002 style: make sure we do not have SPOT_API in *.cc files
* src/sanity/style.test: Check for it.
* src/dstarparse/nra2nba.cc, src/dstarparse/nsa2tgba.cc,
src/tgbaalgos/randomize.cc, src/tgbaalgos/stutter.cc: Fix all those.
2015-01-09 16:15:58 +01:00
Alexandre Duret-Lutz
5536bac4a1 dstarparse, hoaparse: rename inline namespace to please clang
The namespace dstaryy was declared inline and then reopened as
non-inline.  Likewise for hoayy.  Let's use different names.

* src/dstarparse/dstarparse.yy, src/hoaparse/hoaparse.yy: Here.
2015-01-09 14:57:58 +01:00
Alexandre Duret-Lutz
2460f5d0fb randltl: fix determinism
* src/ltlvisit/randomltl.cc: Make sure generation of binary operator is
done in a deterministic order.
2015-01-09 14:52:13 +01:00
Alexandre Duret-Lutz
838a283627 more files to ignore 2015-01-09 14:40:45 +01:00
Alexandre Duret-Lutz
ec408c362c ltlgrind: fix indeterminism
* src/ltlvisit/mutation.cc: Force order of evaluation of arguments of
binops.
2015-01-09 14:39:25 +01:00
Alexandre Duret-Lutz
e01ab2b236 sccinfo: make it easier to iterate over all SCCs
* src/tgbaalgos/sccinfo.cc, src/tgbaalgos/sccinfo.hh: add
scc_info::begin() and scc_info::end() methods to iterate over the
node_ vector.   Tidy the scc_node structure that that its member
are accessed via methods.
* src/tgbaalgos/safety.cc, src/bin/ltlcross.cc: Simplify using
this interface.
2015-01-09 13:46:13 +01:00
Alexandre Duret-Lutz
579e8fc0a9 add missing utf-8 header to many source files
* src/sanity/style.test: Test for the missing header.
* iface/ltsmin/check.test, src/kripketest/kripke.test,
src/kripketest/parse_print_test.cc, src/ltlparse/fmterror.cc,
src/ltltest/consterm.test, src/ltltest/kind.test,
src/ltltest/length.test, src/ltltest/ltlfilt.test,
src/ltltest/reduc.cc, src/ltltest/reduc.test,
src/ltltest/reduc0.test, src/ltltest/reducpsl.test,
src/ltltest/remove_x.test, src/ltltest/unabbrevwm.test,
src/ltltest/utf8.test, src/ltltest/uwrm.test, src/ltlvisit/dump.cc,
src/ltlvisit/remove_x.cc, src/misc/casts.hh, src/misc/fixpool.hh,
src/misc/hashfunc.hh, src/misc/ltstr.hh, src/sanity/readme.test,
src/taalgos/tgba2ta.cc, src/tgbaalgos/bfssteps.cc,
src/tgbaalgos/stats.cc, src/tgbatest/acc.test,
src/tgbatest/bitvect.test, src/tgbatest/complementation.test,
src/tgbatest/cycles.test, src/tgbatest/degendet.test,
src/tgbatest/dfs.test, src/tgbatest/dupexp.test,
src/tgbatest/emptchkr.test, src/tgbatest/intvcomp.test,
src/tgbatest/ltl2ta.test, src/tgbatest/ltl2ta2.test,
src/tgbatest/ltlprod.test, src/tgbatest/maskacc.test,
src/tgbatest/obligation.test, src/tgbatest/randpsl.test,
src/tgbatest/readsat.cc, src/tgbatest/readsat.test,
src/tgbatest/scc.test, src/tgbatest/sccsimpl.test,
src/tgbatest/taatgba.test, src/tgbatest/tgbaread.test,
src/tgbatest/tripprod.test, src/tgbatest/uniq.test,
src/tgbatest/wdba.test: Add it.
2015-01-09 08:23:49 +01:00
Alexandre Duret-Lutz
3a70b57067 projrun: modernize
* src/tgbaalgos/emptiness.hh (step): Add constructors...
* src/tgbaalgos/projrun.cc: ... to simplify this.
2015-01-09 08:23:49 +01:00
Alexandre Duret-Lutz
94577d6519 product: rename the one-the-fly version as otf_product
This avoid compiler errors about ambiguous calls and make sure we are
calling the intended algorithms everywhere (this wasn't the case).

* src/tgba/tgbaproduct.hh (product, product_at): Rename as...
(otf_product, otf_product_at): ... this.
* iface/ltsmin/modelcheck.cc, src/bin/autfilt.cc, src/bin/ltlfilt.cc,
src/tgbaalgos/minimize.cc, src/tgbaalgos/powerset.cc,
src/tgbatest/ltl2tgba.cc, src/tgbatest/checkpsl.cc,
src/tgbatest/complementation.cc, src/tgbatest/ltlprod.cc: Adjust
callers.
2015-01-09 08:23:49 +01:00
Alexandre Duret-Lutz
a9748804e4 contain: adjust to use explicit product
* src/ltlvisit/contain.cc, src/ltlvisit/contain.hh: Here.
2015-01-08 23:39:53 +01:00
Alexandre Duret-Lutz
bb9b204dee stutter: gather all code in one place
* src/tgba/tgbasl.cc, src/tgba/tgbasl.hh, src/tgbaalgos/closure.cc,
src/tgbaalgos/closure.hh, src/tgbaalgos/stutter_invariance.cc,
src/tgbaalgos/stutter_invariance.hh, src/tgbaalgos/stutterize.cc,
src/tgbaalgos/stutterize.hh: Delete these files, and merge their
contents into...
* src/tgbaalgos/stutter.cc, src/tgbaalgos/stutter.hh: ... these two.
* src/tgba/Makefile.am, src/tgbaalgos/Makefile.am: Adjust.
* wrap/python/spot.i: Adjust.
2015-01-08 23:39:45 +01:00
Alexandre Duret-Lutz
ab985afa9e * src/tgbaalgos/weight.hh: Remove useless status. 2015-01-08 21:46:44 +01:00
Alexandre Duret-Lutz
5345cae839 * src/tgbaalgos/emptiness_stats.hh: Modernize. 2015-01-08 21:45:22 +01:00
Alexandre Duret-Lutz
d9d46492cb more files to ignore 2015-01-08 21:04:03 +01:00
Alexandre Duret-Lutz
d3fdf55fa3 fix symbol collision, seen with clang-3.5
autfilt would segfault after reading any file, because the local result_
structure used in hoaparse has the same name as the local result_
structure used in dstarparse.  For some reason I can only see this
problem using clang-3.5, not with gcc.

* src/dstarparse/dstarparse.yy, src/hoaparse/hoaparse.yy: Declare both
structures in a different namespace.
2015-01-08 20:59:57 +01:00
Alexandre Duret-Lutz
ee0c0cd28c * doc/org/tools.org: Adjust colors in text. 2015-01-08 18:33:17 +01:00
Alexandre Duret-Lutz
4673427252 remove obsolete comments
* src/tgbaalgos/lbtt.hh, src/tgbaalgos/neverclaim.hh: Remove obsolete
comments.  Reported by Claire Parquier.
2015-01-08 17:01:40 +01:00
Alexandre Duret-Lutz
1492acc585 * src/dstarparse/dstarscan.ll: Fix encoding. 2015-01-08 15:22:40 +01:00
Alexandre Duret-Lutz
56ed13a96d org: factor headers into setup.org
* doc/org/setup.org: New file.
* doc/Makefile.am: Distribute it.
* doc/org/autfilt.org, doc/org/csv.org, doc/org/dstar2tgba.org,
doc/org/genltl.org, doc/org/ioltl.org, doc/org/ltl2tgba.org,
doc/org/ltl2tgta.org, doc/org/ltlcross.org, doc/org/ltlfilt.org,
doc/org/ltlgrind.org, doc/org/oaut.org, doc/org/randaut.org,
doc/org/randltl.org, doc/org/satmin.org, doc/org/tools.org: Use
setup.org.
2015-01-07 19:35:30 +01:00
Alexandre Duret-Lutz
15852b4e93 org: update randltl.org
* doc/org/randltl.org: The first example used to output '1' as
only random formula.  This is not very sexy.
2015-01-07 19:35:30 +01:00