Commit graph

229 commits

Author SHA1 Message Date
Alexandre Duret-Lutz
126b724a98 Add support the bounded star operator [*i..j].
* src/ltlast/bunop.hh, src/ltlast/bunop.cc: New files for
bounded unary operators.
* src/ltlast/Makefile.am, src/ltlast/allnodes.hh: Add them.
* src/ltlast/predecl.hh (bunop): Declare.
* src/ltlast/unop.hh, src/ltlast/unop.cc (Star): Remove
declaration of Star and associated code.
* src/ltlast/visitor.hh: Add visit(bunop* node) methods.
* src/ltlparse/ltlparse.yy, src/ltlparse/ltlscan.ll: Add parse
rules for LTL.  This required passing the parse_error list
to the lexer, so it can report scanning errors when it reads
a number that does not fit in an unsigned int.
* src/ltlparse/parsedecl.hh (YY_DECL): Take error_list
as third argument.
* src/ltltest/consterm.test, src/ltltest/tostring.test,
src/ltltest/equals.test, src/tgbatest/ltl2tgba.test: More tests.
* src/ltlvisit/basicreduce.cc, src/ltlvisit/clone.cc,
src/ltlvisit/clone.hh, src/ltlvisit/consterm.cc,
src/ltlvisit/dotty.cc, src/ltlvisit/mark.cc,
src/ltlvisit/nenoform.cc, src/ltlvisit/postfix.cc,
src/ltlvisit/postfix.hh, src/ltlvisit/reduce.cc,
src/ltlvisit/syntimpl.cc, src/ltlvisit/tostring.cc,
src/ltlvisit/tunabbrev.cc, src/tgba/formula2bdd.cc,
src/tgbaalgos/eltl2tgba_lacim.cc, src/tgbaalgos/ltl2taa.cc,
src/tgbaalgos/ltl2tgba_lacim.cc: Adjust syntax to use
"bunop::Star" instead of "unop::Star".
* src/tgbaalgos/ltl2tgba_fm.cc: Likewise, but also adjust
the code to handle the bounds of the operator.
2012-04-28 09:30:35 +02:00
Alexandre Duret-Lutz
47b2bea865 Print '{!a}*' rather than '!a*'.
* src/ltlvisit/tostring.cc: Use braces for unary operators in
Star.
* src/ltltest/tostring.test: Add some PSL formulae, it cannot
hurt.
2012-04-28 09:30:35 +02:00
Alexandre Duret-Lutz
1ecc6984d3 Accept "{E}|->ltl" and "{E}(ltl)" as synonym for "{E}[]->ltl".
* src/ltlparse/ltlparse.yy (parenthesedsubformula): Extract these
rules from...
(subformula): ... here, and use it to recognize "{SERE}(formula)".
* src/ltlparse/ltlscan.ll: Recognize "|->" as "[]->".
* src/ltltest/equals.test: Test these two new syntaxes.
2012-04-28 09:30:35 +02:00
Alexandre Duret-Lutz
8b8633de8c Use [*0] instead of #e, and support [*] in addition to *.
* src/ltlparse/ltlscan.ll: Recognize [*] as *, and use
[*0] instead of #e for the empty word.
* src/ltlast/binop.cc, src/ltlast/constant.cc,
src/ltlast/multop.cc, src/ltlast/multop.hh, src/ltlast/unop.cc,
src/ltlast/unop.hh, src/ltltest/consterm.test,
src/ltltest/equals.test: Adjust all occurrences of #e to [*0].
* src/tgbatest/ltl2tgba.test: Also use [*].
2012-04-28 09:30:35 +02:00
Alexandre Duret-Lutz
4e7233d9fa Support braces in addition to parentheses in rational expressions.
* src/ltlparse/ltlparse.yy (rationalexp): Allow bracedrationalexp.
* src/ltltest/consterm.test, src/tgbatest/ltl2tgba.test: Add more
tests.
2012-04-28 09:30:35 +02:00
Alexandre Duret-Lutz
ad519b8568 Do not assume that concatenation cannot accept the empty word.
For instance "(a+#e);(b+#e);(c*)" does.

* src/ltlvisit/consterm.cc: Fix handling of Concat operator.
* src/ltltest/consterm.test: Add more tests.
2012-04-28 09:30:34 +02:00
Alexandre Duret-Lutz
fc7c2943de more tests for rational operator simplifications.
* src/ltltest/nenoform.test, src/ltltest/equals.test,
src/ltltest/consterm.test: Update tests for rational ops.
* src/ltltest/consterm.cc: Use parse_ratexp().
* src/ltlast/binop.cc: Fix simplification rules for []-> and
<>->.
2012-04-28 09:30:34 +02:00
Alexandre Duret-Lutz
97b7211bb7 Add a constant_term() visitor to decide whether #e is accepted.
* src/ltlvisit/Makefile.am: Add consterm.cc and consterm.hh.
* src/ltlvisit/consterm.hh, src/ltlvisit/consterm.cc: New files.
* src/ltltest/Makefile.am: Add consterm.cc and consterm.test.
* src/ltltest/consterm.cc, src/ltltest/consterm.test: New files.
2012-04-28 09:30:34 +02:00
Alexandre Duret-Lutz
546559b8c3 Introduce rational operators and trivial simplification rules.
Trivial simplifications rules (such as "FFa=Fa" or "x&1=x")
are performed any time a formule is instanciated.

* src/ltlast/constant.hh, src/ltlast/constant.cc
(true_instance, true_instance_): Declare the true_instance_ as a
static member, and move true_instance() into the .hh so it gets
inlined.  Have true_instance_ as a class variable will ensure that
it is the first formula instantiated.  Binop simplifications rely
on this to order arguments.
(false_instance, false_instance_): Likewise.
(empty_word_instance, empty_word_instance_): New method and static
member.
* src/ltlast/formula.hh (formula::formula): If max_count_ ever
loops, skip the first three values so that constants always have
smaller hash codes.
* src/ltlast/binop.hh, src/ltlast/binop.cc (instance): Add
simplifications and document them.
* src/ltlast/multop.hh (multop::Concat): New operator.
* src/ltlast/multop.cc (op_name): Handle Concat.
(instance): Inline Concat arguments without reordering.  Handle
absorbent and neutral elements for all operators.
* src/ltlast/unop.hh (unop::Star): New operator.
* src/ltlast/unop.cc (op_name): Handle Star.
(instance): Handle Star, and add trivial simplifications for
other unary operators.
* src/ltlparse/ltlparse.yy (OP_CONCAT, OP_STAR, CONST_EMPTYWORD):
Declare these new operators and add rules for them.
* src/ltlparse/ltlscan.ll (OP_CONCAT, OP_STAR, CONST_EMPTYWORD):
Output these new operators.
* src/ltltest/equals.test: New tests.
* src/ltltest/parse.test: Remove redundant test.
* src/ltltest/tunabbrev.test, src/tgbatest/emptchk.test: Adjust tests.
* src/ltlvisit/basicreduce.cc, src/ltlvisit/contain.cc,
src/ltlvisit/nenoform.cc, src/ltlvisit/reduce.cc,
src/ltlvisit/syntimpl.cc, src/ltlvisit/tostring.cc,
src/ltlvisit/tunabbrev.cc: Complete visitors to handle new
operators.
* src/ltltest/nenoform.test: More tests.
* src/ltlvisit/lunabbrev.cc (unabbreviate_logic_visitor::visit):
Clone formulae before instance() function actually have a chance
to destroy them.
* src/tgba/formula2bdd.cc, src/tgbaalgos/eltl2tgba_lacim.cc,
src/tgbaalgos/ltl2taa.cc, src/tgbaalgos/ltl2tgba_fm.cc,
src/tgbaalgos/ltl2tgba_lacim.cc: Adjust switches to assert on new
operators.
2012-04-28 09:30:34 +02:00
Alexandre Duret-Lutz
4fcc4f829c Apply ACI rules to multop formulae.
* src/ltlast/multop.cc (instance): Handle neutral and absorbent
elements for the operator.
* src/ltltest/equals.test: Add more tests.
2012-04-28 09:30:34 +02:00
Alexandre Duret-Lutz
984c715cc6 Fix computation of length of LTL formulas.
* src/ltlvisit/length.cc: Fix computation for ltl::multop
operator. "a&b&c" was reported with length 3, ignoring the
"&" operators, because of a typo.
* src/ltlvisit/length.hh: Fix description to correctly
reflect this change intended since 2010-01-22.
* src/ltltest/length.test, src/ltltest/length.cc: New files.
* src/ltltest/Makefile.am: Add them.
2012-01-05 18:34:23 +01:00
Alexandre Duret-Lutz
28b7c0858b Fix VPATH builds, now that hash.hh include _config.h
* iface/dve2/Makefile.am, src/eltlparse/Makefile.am
src/eltltest/Makefile.am, src/evtgba/Makefile.am,
src/evtgbaalgos/Makefile.am, src/evtgbaparse/Makefile.am,
src/evtgbatest/Makefile.am, src/kripke/Makefile.am,
src/kripketest/Makefile.am, src/ltlast/Makefile.am,
src/ltlparse/Makefile.am, src/ltltest/Makefile.am,
src/ltlvisit/Makefile.am, src/misc/Makefile.am,
src/neverparse/Makefile.am, src/saba/Makefile.am,
src/sabaalgos/Makefile.am, src/sanity/Makefile.am,
src/tgba/Makefile.am, src/tgbaalgos/Makefile.am,
src/tgbaalgos/gtec/Makefile.am, src/tgbaparse/Makefile.am,
src/tgbatest/Makefile.am, wrap/python/Makefile.am (AM_CPPFLAGS):
Make sure $(top_builddir)/src is included.
2011-12-18 12:56:44 +01:00
Alexandre Duret-Lutz
9c4adf1eb4 Don't flush the stream on each new line, when writing automata.
* src/tgbaalgos/neverclaim.cc, src/tgbaalgos/dotty.cc,
src/tgbaalgos/save.cc: Prefer '\n' over std::endl to speedup I/O.
* src/ltltest/genltl.cc (syntax): Use '\n' too, although it won't
make a big difference.
2011-11-28 10:48:38 +01:00
Alexandre Duret-Lutz
f4ecb34275 * src/ltltest/genltl.cc (X_n): Fix assertion. 2011-06-07 07:26:43 +02:00
Alexandre Duret-Lutz
bb06db7c1b * src/ltltest/genltl.cc (fair_response): Typo. 2011-06-06 19:02:03 +02:00
Alexandre Duret-Lutz
625b9362c8 Add more formula families to genltl.
* src/ltltest/genltl.cc (fair_response, ltl_counter)
(ltl_counter_carry): New functions, constructing function from
gastin.03.cav and rozier.07.cav.  The LTL counter will replace the
scripts in src/tgbatest/ltlcounter/.
(X_n): New helper function.
2011-06-06 15:58:15 +02:00
Alexandre Duret-Lutz
a5a74481d9 * src/ltltest/genltl.cc (syntax): Typos in the help text. 2011-03-21 10:49:22 +01:00
Alexandre Duret-Lutz
1878bfd0fc Improve a reduction rule for "a M b".
* src/ltlvisit/reduce.cc (reduce_visitor): Always reduce "a M b"
to "a & b" if "a" is a pure eventual formula, remove the
constraint on "b".
* src/ltltest/reduccmp.test: Add two tests.
2011-03-17 12:25:43 +01:00
Alexandre Duret-Lutz
4a62224932 Allow atomic propositions and identifiers like `X.Y'.
* src/ltlparse/ltlscan.ll: Do not recognize `.' as an AND.  Allow
it in atomic propositions.
* src/evtgbaparse/evtgbascan.ll, src/tgbaparse/tgbascan.ll: Accept
`.' in identifiers.
* src/misc/bareword.cc (is_bareword): Accept `.' inside
barewords, so that there is no need to quote `X.Y'.
* src/ltltest/parse.test: Do not use `.' as and operator..
2011-03-07 11:09:53 +01:00
Alexandre Duret-Lutz
2c5bae3d37 * src/ltltest/genltl.cc (GF_n): Really use "op". 2011-03-05 08:58:40 +01:00
Alexandre Duret-Lutz
4b75c9b8e6 * src/ltltest/genltl.cc: Add 10 more LTL formula classes. 2011-03-01 18:15:13 +01:00
Alexandre Duret-Lutz
3278844c2a Recognize Goal's syntax for Boolean operators.
* src/ltlparse/ltlscan.ll: Recognize ~, -->, and <--> operators
from Goal, to ease the use of formulas provided by the Goal team.
* src/ltltest/equals.test: Use these once, just to be on the
safe side.
2011-02-03 21:47:38 +01:00
Alexandre Duret-Lutz
d9fb4d1d09 * src/ltltest/Makefile.am (genltl_SOURCES): Add missing variable. 2010-12-07 18:32:43 +01:00
Alexandre Duret-Lutz
437af50afe Preliminary implementation of a tool to generate some interesting
families of LTL formulae.

* src/ltltest/genltl.cc: New file.  Based on five classes of
formulae defined in a paper by Cichón, Czubak, and Jasiński.
* src/ltltest/Makefile.am (noinst_PROGRAMS): Build genltl.
2010-12-04 11:34:48 +01:00
Alexandre Duret-Lutz
ce51ed3002 Reorder recent additions to reduccmp.test.
* src/ltltest/reduccmp.test: Reorder the test added by the
previous patches.  Some are not supposed to be reduced by
reductaustr.
2010-04-15 19:05:03 +02:00
Alexandre Duret-Lutz
5755a531f9 Fix a long-standing bug in the stronger rule for R and its recent
clone for M.

* src/ltlvisit/contain.cc (reduce_tau03_visitor): Remove
the stronger rules for R and M.  They were wrong.
* src/ltltest/reduccmp.test: Test a simpple counterexample.
2010-04-15 16:07:36 +02:00
Alexandre Duret-Lutz
1a91208933 More simplifications rules for M.
* src/ltlvisit/reduce.cc (reduce_visitor): Add the following
implication rewriting rules:
a M (b M c) = a M c if a implies b.
a M (b R c) = a M c if a implies b.
a R (b R c) = a R c if a implies b.
a R (b M c) = b M c if b implies a.
a M (b M c) = b M c if b implies a.
The latter rule was fixed from an incorrectly copied&pasted
rule for a M (b R c) = b R c if b implies a (this is wrong).
* src/ltltest/reduccmp.test: Add more tests.
2010-04-15 16:07:36 +02:00
Alexandre Duret-Lutz
7021e45f70 Fix simplification of "a M true" as Fa.
* src/ltlvisit/simpfg.cc: Typo.
* src/ltltest/reduccmp.test: Add more tests.
2010-04-15 11:44:17 +02:00
Alexandre Duret-Lutz
28094c87da More LTL reductions for W and M.
* src/ltlvisit/basicreduce.cc: Perform the following reductions:
(a R b) | Gb = a R b
(a M b) | Gb = a R b
(a U b) & Fb = a U b
(a W b) & Fb = a U b
* src/ltltest/reduccmp.test: Test them.
2010-04-14 18:58:32 +02:00
Alexandre Duret-Lutz
e6809b8c66 More LTL reductions for W and M.
* src/ltlvisit/basicreduce.cc: Perform the following reductions:
(a U b) & (c W b) = (a & c) U b
(a W b) & (c W b) = (a & c) W b
(a R b) | (c M b) = (a | c) R b
(a M b) | (c M b) = (a | c) M b
* src/ltltest/reduccmp.test: Test them.
2010-04-12 16:40:41 +02:00
Alexandre Duret-Lutz
f003c3d16f Add LTL reductions for strong release.
* src/ltlvisit/basicreduce.cc: Perform the following reductions.
a R (b & F(a)) = a M b
a M (b & F(a)) = a M b
a R Fa = Fa
a M Fa = Fa
a R b & Fa = a M b
a R b & a M c = a M (b & c)
a M b & a M c = a M (b & c)
* src/ltltest/reduccmp.test: More tests.
2010-04-12 16:40:41 +02:00
Alexandre Duret-Lutz
80ceca599c Add LTL reductions for weak until.
* src/ltlvisit/basicreduce.cc: Perform the following reductions.
a U (b | Ga) = a W b
a W (b | Ga) = a W b
a U b | Ga = a W b
a U b | a W c = a W (b | c)
a W b | a W c = a W (b | c)
a U Ga = Ga
a W Ga = Ga
* src/ltltest/reduccmp.test: More tests.
2010-04-12 16:40:41 +02:00
Alexandre Duret-Lutz
0fc0ea3166 Add support for W (weak until) and M (strong release) operators.
* src/ltlast/binop.cc, src/ltlast/binop.cc: Add support for
these new operators.
* src/ltlparse/ltlparse.yy, src/ltlparse/ltlscan.ll: Parse them.
* src/ltltest/reduccmp.test: Add new tests for W and M.
* src/ltlvisit/basicreduce.cc, src/ltlvisit/contain.cc,
src/ltlvisit/lunabbrev.cc, src/ltlvisit/nenoform.cc,
src/ltlvisit/randomltl.cc, src/ltlvisit/randomltl.hh,
src/ltlvisit/reduce.cc, src/ltlvisite/simpfg.cc,
src/ltlvisit/simpfg.hh, src/ltlvisit/syntimpl.cc,
src/ltlvisit/tostring.cc, src/tgba/formula2bdd.cc,
src/tgbaalgos/eltl2tgba_lacim.cc, src/tgbaalgos/ltl2taa.cc,
src/tgbaalgos/ltl2tgba_fm.cc, src/tgbaalgos/ltl2tgba_lacim.cc:
Add support for W and M.
* src/tgbatest/ltl2neverclaim.test: Test never claim output
using LBTT, this is more thorough.  Also we cannot use -N
any more in the spotlbtt.test.
* src/tgbatests/ltl2tgba.cc: Define M and W for ELTL.
* src/tgbatest/ltl2neverclaim.test: Test W and M, and use
-DS instead of -N, because lbtt-translate does not want
to translate these operators for tools that masquerade as Spin.
2010-04-12 16:40:41 +02:00
Alexandre Duret-Lutz
d71ceb3b04 Fix column in LTL error messages, it was off by one.
* src/ltlparse/fmterror.cc (format_parse_errors): Count columns
starting at 1.  Older Bison used to start at 0 but changed to
match the GNU Coding Standards.
* src/ltltest/parseerr.test: Add a test case.
2010-03-10 15:17:05 +01:00
Alexandre Duret-Lutz
3cf2ddbcb0 Do not rewrite F(a & GF(b)) = F(a) & GF(b), this can be harmful.
* src/ltlvisit/basicreduce.cc (basic_reduce_visitor::recurse):
Disable this rule unconditionally.
* src/ltltest/reduccmp.test: Adjust tests.
2010-03-07 12:36:54 +01:00
Alexandre Duret-Lutz
24cde3c21f More * -> & replacements.
* src/ltltest/parse.test, src/ltltest/syntimpl.test: Replace * by &.
2010-01-30 13:21:01 +01:00
Guillaume Sadegh
3a974d61f0 Fix copyrights.
* bench/Makefile.am, bench/gspn-ssp/Makefile.am,
bench/gspn-ssp/defs.in, bench/scc-stats/Makefile.am,
bench/split-product/Makefile.am, configure.ac,
iface/Makefile.am, iface/gspn/Makefile.am, iface/gspn/ssp.hh,
iface/nips/Makefile.am, iface/nips/common.cc,
iface/nips/common.hh, iface/nips/dottynips.cc,
iface/nips/nips.cc, iface/nips/nips.hh, src/Makefile.am,
src/eltlparse/Makefile.am, src/eltlparse/eltlparse.yy,
src/eltlparse/eltlscan.ll, src/eltlparse/fmterror.cc,
src/eltlparse/parsedecl.hh, src/eltltest/Makefile.am,
src/eltltest/defs.in, src/eltltest/nfa.cc, src/evtgba/evtgba.hh,
src/evtgba/product.cc, src/evtgba/product.hh,
src/evtgbaalgos/tgba2evtgba.cc, src/evtgbaparse/Makefile.am,
src/evtgbaparse/evtgbaparse.yy, src/evtgbatest/defs.in,
src/evtgbatest/explicit.test, src/evtgbatest/ltl2evtgba.cc,
src/evtgbatest/ltl2evtgba.test, src/evtgbatest/product.cc,
src/evtgbatest/product.test, src/evtgbatest/readsave.cc,
src/evtgbatest/readsave.test, src/ltlast/atomic_prop.cc,
src/ltlast/atomic_prop.hh, src/ltlast/binop.cc,
src/ltlast/binop.hh, src/ltlast/constant.cc,
src/ltlast/constant.hh, src/ltlast/formula.cc,
src/ltlast/formula.hh, src/ltlast/formula_tree.cc,
src/ltlast/formula_tree.hh, src/ltlast/multop.cc,
src/ltlast/multop.hh, src/ltlast/nfa.cc, src/ltlast/nfa.hh,
src/ltlast/unop.cc, src/ltlast/unop.hh, src/ltlenv/declenv.cc,
src/ltlenv/declenv.hh, src/ltlenv/environment.hh,
src/ltlparse/Makefile.am, src/ltlparse/ltlparse.yy,
src/ltltest/Makefile.am, src/ltltest/defs.in,
src/ltltest/equals.cc, src/ltltest/equals.test,
src/ltltest/lunabbrev.test, src/ltltest/nenoform.test,
src/ltltest/parse.test, src/ltltest/parseerr.test,
src/ltltest/randltl.cc, src/ltltest/readltl.cc,
src/ltltest/reduccmp.test, src/ltltest/syntimpl.cc,
src/ltltest/syntimpl.test, src/ltltest/tostring.cc,
src/ltltest/tostring.test, src/ltltest/tunabbrev.test,
src/ltltest/tunenoform.test, src/ltlvisit/basicreduce.cc,
src/ltlvisit/clone.cc, src/ltlvisit/clone.hh,
src/ltlvisit/contain.cc, src/ltlvisit/destroy.cc,
src/ltlvisit/destroy.hh, src/ltlvisit/lunabbrev.cc,
src/ltlvisit/nenoform.cc, src/ltlvisit/randomltl.cc,
src/ltlvisit/reduce.cc, src/ltlvisit/syntimpl.cc,
src/ltlvisit/tostring.cc, src/misc/bddalloc.cc,
src/misc/bddop.cc, src/misc/bddop.hh, src/misc/freelist.hh,
src/misc/hash.hh, src/misc/minato.cc, src/misc/minato.hh,
src/misc/optionmap.cc, src/misc/timer.cc, src/misc/timer.hh,
src/saba/Makefile.am, src/saba/explicitstateconjunction.cc,
src/saba/explicitstateconjunction.hh, src/saba/saba.cc,
src/saba/saba.hh, src/saba/sabacomplementtgba.cc,
src/saba/sabacomplementtgba.hh, src/saba/sabastate.hh,
src/saba/sabasucciter.hh, src/sabaalgos/Makefile.am,
src/sabaalgos/sabadotty.cc, src/sabaalgos/sabadotty.hh,
src/sabaalgos/sabareachiter.cc, src/sabaalgos/sabareachiter.hh,
src/sabatest/Makefile.am, src/sabatest/defs.in,
src/sanity/Makefile.am, src/tgba/Makefile.am,
src/tgba/bdddict.cc, src/tgba/bddprint.cc,
src/tgba/formula2bdd.cc, src/tgba/state.hh,
src/tgba/succiterconcrete.cc, src/tgba/taatgba.hh,
src/tgba/tgba.hh, src/tgba/tgbabddconcretefactory.cc,
src/tgba/tgbabddconcretefactory.hh, src/tgba/tgbacomplement.cc,
src/tgba/tgbacomplement.hh, src/tgba/tgbaexplicit.cc,
src/tgba/tgbaexplicit.hh, src/tgba/tgbaproduct.cc,
src/tgba/tgbareduc.cc, src/tgba/tgbareduc.hh,
src/tgba/tgbasafracomplement.cc, src/tgba/tgbasgba.cc,
src/tgba/tgbasgba.hh, src/tgba/tgbaunion.cc,
src/tgba/tgbaunion.hh, src/tgbaalgos/dupexp.cc,
src/tgbaalgos/eltl2tgba_lacim.cc,
src/tgbaalgos/eltl2tgba_lacim.hh, src/tgbaalgos/emptiness.cc,
src/tgbaalgos/gtec/gtec.cc, src/tgbaalgos/ltl2taa.cc,
src/tgbaalgos/ltl2taa.hh, src/tgbaalgos/ltl2tgba_lacim.cc,
src/tgbaalgos/neverclaim.cc, src/tgbaalgos/neverclaim.hh,
src/tgbaalgos/powerset.cc, src/tgbaalgos/reachiter.cc,
src/tgbaalgos/reachiter.hh, src/tgbaalgos/reductgba_sim.cc,
src/tgbaalgos/reductgba_sim.hh,
src/tgbaalgos/reductgba_sim_del.cc, src/tgbaalgos/stats.cc,
src/tgbaalgos/stats.hh, src/tgbaparse/Makefile.am,
src/tgbaparse/tgbaparse.yy, src/tgbatest/Makefile.am,
src/tgbatest/bddprod.test, src/tgbatest/complementation.cc,
src/tgbatest/complementation.test, src/tgbatest/defs.in,
src/tgbatest/dfs.test, src/tgbatest/dupexp.test,
src/tgbatest/explicit.cc, src/tgbatest/explicit.test,
src/tgbatest/explpro3.test, src/tgbatest/explpro4.test,
src/tgbatest/explprod.cc, src/tgbatest/explprod.test,
src/tgbatest/ltl2neverclaim.test, src/tgbatest/ltl2tgba.cc,
src/tgbatest/ltl2tgba.test, src/tgbatest/ltlprod.cc,
src/tgbatest/ltlprod.test, src/tgbatest/mixprod.cc,
src/tgbatest/mixprod.test, src/tgbatest/powerset.cc,
src/tgbatest/readsave.cc, src/tgbatest/readsave.test,
src/tgbatest/reduccmp.test, src/tgbatest/reductgba.cc,
src/tgbatest/reductgba.test, src/tgbatest/taatgba.cc,
src/tgbatest/tgbaread.cc, src/tgbatest/tgbaread.test,
src/tgbatest/tripprod.cc, src/tgbatest/tripprod.test,
wrap/python/cgi/ltl2tgba.in, wrap/python/tests/ltl2tgba.py,
wrap/python/tests/ltlparse.py, wrap/python/tests/ltlsimple.py:
Fix copyrights.
2010-01-24 20:51:09 +01:00
Alexandre Duret-Lutz
38a1fadaa0 * src/ltltest/reduc.cc (main): Fix harmless memory leak introduced
today.
2010-01-21 16:56:44 +01:00
Alexandre Duret-Lutz
062045eb45 Speedup reduc.test by not spawning one process per formula.
* src/ltltest/reduc.cc: Add an option -f to read a lost of
formulae from a file.  Running a process for each formula was
too slow.  Also add an option -h to hide reduced formulae.
* src/ltltest/reduc.test: Simplify accordingly.
2010-01-21 14:54:36 +01:00
Alexandre Duret-Lutz
77df39b4dd Deprecate ltl::destroy(f) in favor of f->destroy()
* src/ltlast/formula.cc, src/ltlast/formula.hh (formula::clone):
Transform this static function into a member function.
* src/ltlvisit/destroy.hh (destroy): Document and declare as
deprecated.
* bench/split-product/cutscc.cc, iface/gspn/ltlgspn.cc,
src/eltlparse/eltlparse.yy, src/eltltest/acc.cc,
src/evtgbaalgos/tgba2evtgba.cc, src/evtgbatest/ltl2evtgba.cc,
src/ltlast/automatop.cc, src/ltlast/binop.cc,
src/ltlast/multop.cc, src/ltlast/unop.cc, src/ltlenv/declenv.cc,
src/ltlenv/declenv.hh, src/ltlparse/ltlparse.yy,
src/ltltest/equals.cc, src/ltltest/randltl.cc,
src/ltltest/readltl.cc, src/ltltest/reduc.cc,
src/ltltest/syntimpl.cc, src/ltltest/tostring.cc,
src/ltlvisit/destroy.cc src/ltlvisit/basicreduce.cc,
src/ltlvisit/contain.cc, src/ltlvisit/reduce.cc,
src/ltlvisit/syntimpl.cc, src/tgba/bdddict.cc,
src/tgba/bddprint.cc, src/tgba/taa.cc,
src/tgba/tgbabddconcretefactory.cc, src/tgba/tgbaexplicit.cc,
src/tgba/tgbafromfile.cc, src/tgbaalgos/eltl2tgba_lacim.cc,
src/tgbaalgos/ltl2taa.cc, src/tgbaalgos/ltl2tgba_fm.cc,
src/tgbaalgos/ltl2tgba_lacim.cc, src/tgbaalgos/neverclaim.cc,
src/tgbaalgos/randomgraph.cc, src/tgbaparse/tgbaparse.yy,
src/tgbatest/complementation.cc, src/tgbatest/eltl2tgba.cc,
src/tgbatest/ltl2tgba.cc, src/tgbatest/ltlprod.cc,
src/tgbatest/mixprod.cc, src/tgbatest/randtgba.cc,
src/tgbatest/reductgba.cc, wrap/python/cgi/ltl2tgba.in,
wrap/python/tests/ltl2tgba.py, wrap/python/tests/ltlparse.py,
wrap/python/tests/ltlsimple.py: Adjust destroy() usage, and remove
the #include "destroy.hh" when appropriate.
2009-11-09 07:13:31 +01:00
Alexandre Duret-Lutz
631f4b5bea Make it easier to debug reference counts in LTL nodes.
* src/ltlast/automatop.cc, src/ltlast/automatop.hh,
src/ltlast/binop.cc, src/ltlast/binop.hh, src/ltlast/multop.cc,
src/ltlast/multop.hh, src/ltlast/unop.cc, src/ltlast/unop.hh:
Add a dump_instance() static method to all class.
* src/ltltest/readltl.cc: Add option -r to dump all instances
with their reference count, after parsing and after deletion.
2009-11-09 07:13:31 +01:00
Guillaume Sadegh
d037008cdc * src/ltltest/randltl.cc, src/ltltest/reduc.test,
src/tgbatest/dfs.test: Adjust headers to 80 columns.
2009-10-01 00:32:06 +02:00
Alexandre Duret-Lutz
058bb83c6d Fix a memory leak in randltl.
* src/ltltest/randltl.cc: Free the atomic properties from AP
before exit.
2009-09-07 14:35:35 +02:00
Alexandre Duret-Lutz
dc8cb56b67 Fix path to libtool in test suites.
* src/ltltest/defs.in, src/eltltest/defs.in, src/tgbatest/defs.in,
src/evtgbatest/defs.in (run): Use ../../../libtool instead of
../../libtool, now that testcases have been moved down one directory.
2009-09-02 10:41:19 +02:00
Alexandre Duret-Lutz
1098c62de2 Use Automake 1.11's parallel-tests feature.
* configure.ac: Enable parallel-tests.
* src/eltltest/defs.in, src/evtgbatest/defs.in,
src/ltltest/defs.in, src/tgbatest/defs.in: Always output verbose
tests.  Make a subdirectory for each test case.
* src/ltltest/Makefile.am, src/eltltest/Makefile.am,
src/tgbatest/Makefile.am, src/evtgbatest/Makefile.am: Remove
CLEANFILES and clean the test subdirectories in a distclean-local
rule instead.
* src/eltltest/acc.test, src/eltltest/nfa.test,
src/evtgbatest/explicit.test, src/evtgbatest/ltl2evtgba.test,
src/evtgbatest/product.test, src/evtgbatest/readsave.test,
src/ltltest/equals.test, src/ltltest/lunabbrev.test,
src/ltltest/nenoform.test, src/ltltest/parse.test,
src/ltltest/parseerr.test, src/ltltest/reduc.test,
src/ltltest/reduccmp.test, src/ltltest/syntimpl.test,
src/ltltest/tostring.test, src/ltltest/tunabbrev.test,
src/ltltest/tunenoform.test, src/tgbatest/bddprod.test,
src/tgbatest/complementation.test, src/tgbatest/dfs.test,
src/tgbatest/dupexp.test, src/tgbatest/eltl2tgba.test,
src/tgbatest/emptchk.test, src/tgbatest/emptchke.test,
src/tgbatest/emptchkr.test, src/tgbatest/explicit.test,
src/tgbatest/explpro2.test, src/tgbatest/explpro3.test,
src/tgbatest/explpro4.test, src/tgbatest/explprod.test,
src/tgbatest/ltl2neverclaim.test, src/tgbatest/ltl2tgba.test,
src/tgbatest/ltlprod.test, src/tgbatest/mixprod.test,
src/tgbatest/readsave.test, src/tgbatest/reduccmp.test,
src/tgbatest/reductgba.test, src/tgbatest/scc.test,
src/tgbatest/spotlbtt.test, src/tgbatest/tgbaread.test,
src/tgbatest/tripprod.test: Adjust to run from a subdirectory.
2009-09-02 10:41:19 +02:00
Alexandre Duret-Lutz
b1bfdee870 Revert everything related to Damien's work in 2008 (he will commit a new version soon).
Here are the reverted patches:
8c0d1003b0,
25a3114287,
9afbaf6342,
dc0005f4e1,
543190f2bc.
2009-03-25 16:44:05 +01:00
Alexandre Duret-Lutz
25a3114287 Merge all ltlast/ files into formula.hh. The forward declaration of visitor was causing error messages too cryptic for users. 2008-06-12 16:33:03 +02:00
Alexandre Duret-Lutz
d3b702a97c Make sure Spot compiles with g++-4.3.
* src/ltlast/formula.hh (hash): Remove const from return type.
This kills a g++-4.3 warning.
* src/misc/hash.hh: Adjust to use unordered_set and unordered_map
from TR1 when g++-4.3 is used.
* src/evtgba/product.cc, src/ltltest/randltl.cc,
src/ltlvisit/randomltl.cc, src/ltlvisit/tostring.cc,
src/misc/freelist.hh, src/misc/optionmap.cc,
src/tgba/tgbareduc.hh, src/tgbaalgos/gv04.cc,
src/tgbaalgos/ltl2tgba_fm.cc, src/tgbaalgos/randomgraph.cc,
src/tgbatest/ltl2tgba.cc, src/tgbatest/randtgba.cc,
src/ltltest/equals.cc, src/ltltest/readltl.cc,
src/ltltest/reduc.cc, src/ltltest/syntimpl.cc,
src/ltltest/tostring.cc, src/tgbatest/ltlprod.cc,
src/tgbatest/powerset.cc, src/tgbatest/explprod.cc,
src/tgbatest/mixprod.cc, src/tgbatest/readsave.cc,
src/tgbatest/reductgba.cc, src/tgbatest/tgbaread.cc,
src/tgbatest/tripprod.cc, src/evtgbatest/product.cc,
src/evtgbatest/readsave.cc, src/evtgbatest/ltl2evtgba.cc,
src/evtgbatest/readsave.cc: Add missing includes.
* src/tgbatest/explicit.test, src/tgbatest/explprod.test,
src/tgbatest/explpro2.test, src/tgbatest/troprod.test,
src/tgbatest/emptchk.test: Cope with different outputs.
2008-03-14 22:45:37 +01:00
Alexandre Duret-Lutz
5ef7084b61 Add .gitignore files 2008-03-14 16:59:32 +01:00
Alexandre Duret-Lutz
78d37fa126 * src/ltltest/reduc.cc (main): More cases to test.
* src/ltlvisit/basicreduce.cc (basic_reduce_visitor::visit):
Simplify the formula again after FX->XF and GX->XG permutations.
This is so that formulae like GFXXa become GFa and not just GFXa.
* src/ltlvisit/contain.cc (reduce_tau03_visitor): Fix a typo
in the rules for i|j or i&j, resulting in missing simplifications.
2008-02-25 14:36:59 +01:00