Commit graph

313 commits

Author SHA1 Message Date
Alexandre Duret-Lutz
1dd524ebce Introduce -ks to print only the size of the automaton (without
SCC information).

* src/tgbatest/ltl2tgba.cc (syntax, main): Add a -ks option.
* src/tgbatest/ltl2tgba.test, bench/ltlclasses/run,
bench/ltlcounter/run: Use -ks instead of -k to speed things up.
2010-12-10 10:02:53 +01:00
Alexandre Duret-Lutz
487c4ac48c * src/tgbatest/ltl2tgba.cc (main): Delete the accepting run
even if it hasn't been printed.
2010-12-01 08:38:47 +01:00
Alexandre Duret-Lutz
75a24111da Rationalize options for counter-example output.
* src/tgbatest/ltl2tgba.cc (main): Either replay the accepting
run or print it, but do not do both.
* src/tgbatest/emptchk.test: Adjust. I.e. use -C instead of -CR
when we expect the run to be displayed.
2010-11-30 17:28:15 +01:00
Alexandre Duret-Lutz
ae03bc6704 Fix a GCC 4.6 warning.
* src/tgbatest/randtgba.cc (main): Remove the set but unused opt_A
variable (the upcoming GCC 4.6 would warn about it) and set opt_ec
to 1 if -A is used without -e.
2010-11-30 12:19:45 +01:00
Alexandre Duret-Lutz
3b3711286b * src/tgbatest/ltl2tgba.cc (syntax): Typo. 2010-11-27 21:45:47 +01:00
Alexandre Duret-Lutz
019c85dff6 Fix more errors reported by Clang.
* src/tgbaalgos/reducerun.hh (tgba_run): Predeclare as a struct
since this is what it is.
* src/tgbatest/randtgba.cc (main): Avoid using "i" with two
different type in the same loop.
2010-11-27 10:21:44 +01:00
Alexandre Duret-Lutz
67f46b85b3 Never claim output used to print the degeneralized automaton
before some optional operations (like more optimizations, or a
product).

* src/tgbatest/ltl2tgba.cc (-N, -NN): Make sure we print the last
automaton computed, not just the automaton when we degeneralized
it.  We may have applied other algorithms since the original
degeneralization.
2010-11-25 20:29:16 +01:00
Alexandre Duret-Lutz
7627b9673b * src/tgbatest/ltl2tgba.test: Test both -l and -f. This should
have been done on 2010-01-30 when the default translation was
changed from -l to -f.
2010-11-25 19:59:46 +01:00
Alexandre Duret-Lutz
1e0f99e824 Cosmetics to please sanity checks.
* src/neverparse/public.hh, src/neverparse/parsedecl.hh: Fix
inclusion guards.
* src/tgba/tgbaexplicit.hh, src/tgbatest/emptchk.test,
src/tgbatest/ltl2tgba.cc: Fix trailing whitespaces.
2010-11-06 17:56:27 +01:00
Alexandre Duret-Lutz
87f69eaf18 * src/tgbatest/ltl2tgba.cc: Clock the time spent reading -P file. 2010-11-06 16:40:44 +01:00
Alexandre Duret-Lutz
b1dbfed17f * src/tgbatest/neverclaimread.test: Check that Spot can read the
neverclaims it outputs.
2010-11-06 15:56:50 +01:00
Alexandre Duret-Lutz
a6677c2984 Do not output a counterexample by default in ltl2tgba, introduce
options -C and -CR for that.

* src/tgbatest/ltl2tgba.cc: Add option -C and -CR to control
whether we want the accepting run to be printed or replayed.
* src/tgbatest/dfs.test, src/tgbatest/eltl2tgba.test,
src/tgbatest/emptchk.test, src/tgbatest/emptchke.test,
src/tgbatest/ltl2tgba.cc, src/tgbatest/ltlcounter.test: Use -CR.
2010-11-06 15:38:00 +01:00
Alexandre Duret-Lutz
fe1f59cd30 Make sure the neverclaim parser works on the output of spin and
ltl2ba.

* src/neverparse/neverclaimparse.yy: Accept multiple labels
for the same state.  Honor accepting states.  Forward parse
error from the parser used for guards.  Accept "false" as a
single instruction for a state.
* src/neverparse/neverclaimscan.ll: Recognize "false" specifically,
and remove the ";" hack.
* src/tgba/tgbaexplicit.cc
(tgba_explicit_string::~tgba_explicit_string): Adjust not to
destroy a state twice.
* src/tgba/tgbaexplicit.hh
(tgba_explicit_string::add_state_alias): New function.
* src/tgbatest/defs.in (SPIN, LTL2BA): New variables.
* src/tgbatest/neverclaimread.test: Check error messages for
syntax errors in guards.  Make sure we can read the output
of `spin -f' and `ltl2ba -f' on a few test formulae.
2010-11-06 14:35:31 +01:00
Alexandre Duret-Lutz
ac08c5abce Cleanup neverclaim support.
* src/neverclaimparse/: Shorthen as ...
* src/neverparse/:... this.
* src/Makefile.am: Adjust, and add back the directories mistakenly
removed by previous patch.
* README: Adjust, and keep the file's width under 80 columns.
* configure.ac: Adjust.
* src/neverparse/Makefile.am, src/neverparse/fmterror.cc,
src/neverparse/neverclaimparse.yy,
src/neverparse/neverclaimscan.ll, src/neverparse/public.hh:
Fix copyright.
* src/tgbatest/Makefile.am (check_PROGRAMS): Remove neverclaimread.
* src/tgbatest/ltl2tgba.cc: Add option -XN to read a neverclaim.
* src/tgbatest/readneverclaim.cc: Delete.
* src/tgbatest/neverclaimread.test: Use ltl2tgba instead of
neverclaimread.
2010-11-06 14:35:31 +01:00
Felix Abecassis
ab6ec5cb63 Add never claim parser.
* src/neverclaimparse/: New directory.
* src/neverclaimparse/fmterror.cc: New file.  Print a formatted parse
error on a output stream.
* src/neverclaimparse/neverclaimparse.yy: New file.  Parser declaration
for Bison.
* src/neverclaimparse/neverclaimscan.ll: New file.  Scanner declaration
for Flex.
* src/neverclaimparse/public.hh: New file.  Public header for external
use.
* src/neverclaimparse/parsedecl.hh: New file.  Header file for
Flex-Bison interaction.
* src/neverclaimparse/Makefile.am: New Makefile.
* src/tgbatest/neverclaimread.cc: New file.  Test program for the
never claim parser.
* src/tgbatest/neverclaimread.test: New file.  Test script for the
never claim parser.
* src/tgbatest/Makefile.am: Adjust.
* configure.ac : Adjust.
* README: Adjust.
2010-11-06 14:35:23 +01:00
Alexandre Duret-Lutz
7da112344e Remove `readsave' and fix line numbers in tgbaparse error messages.
* src/tgbaparse/tgbaparse.yy (line): Fix computation of line number
for error messages when parsing conditions.
* src/tgbatest/readsave.test: Check the syntax position of syntax errors
in the diagnostics.  Use ltl2tgba instead of readsave.
* src/tgbatest/Makefile.am (check_PROGRAMS): Remove readsave.
2010-11-06 14:14:18 +01:00
Alexandre Duret-Lutz
498b44f742 Revert "Add never claim parser."
Such changes should not be pushed to master before they are finished
(this doesn't pass distcheck).

This reverts commit 9aaa638b27.
2010-06-21 17:42:29 +02:00
Felix Abecassis
9aaa638b27 Add never claim parser.
* src/neverclaimparse/: New directory.
* src/neverclaimparse/fmterror.cc: New file.  Print a formatted parse
error on a output stream.
* src/neverclaimparse/neverclaimparse.yy: New file.  Parser declaration
for Bison.
* src/neverclaimparse/neverclaimscan.ll: New file.  Scanner declaration
for Flex.
* src/neverclaimparse/public.hh: New file.  Public header for external
use.
* src/neverclaimparse/parsedecl.hh: New file.  Header file for
Flex-Bison interaction.
* src/neverclaimparse/Makefile.am: New Makefile.
* src/tgbatest/neverclaimread.cc: New file.  Test program for the
never claim parser.
* src/tgbatest/neverclaimread.test: New file.  Test script for the
never claim parser.
* src/tgbatest/Makefile.am: Adjust.
* configure.ac : Adjust.
* README: Adjust.
2010-05-25 16:45:08 +02:00
Alexandre Duret-Lutz
70669c99ed * src/tgbatest/ltl2tgba.cc (syntax): Add missing black line in
help output.
2010-04-15 09:46:18 +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
27b419ce17 Keep acceptance conditions on transitions going to accepting SCCs
by default in scc_filter().

Doing so helps the degeneralization algorithm, because it will
have more opportunity to be in an accepting level when it reaches
the accepting SCCs.

* src/tgbaalgos/sccfilter.cc (filter_iter::filter_iter): Take a
remove_all_useless argument.
(filter_iter::process_link): Use the flag to decide whether to
filter acceptance conditions going to accepting SCCs.
(scc_filter): Take a remove_all_useless argument and pass it to
filter_iter.
* src/tgbaalgos/sccfilter.hh (filter_iter): Add the new argument
and document the function.
* src/tgbatest/tgbatests/ltl2tgba.cc (main): Add option use -R3
for remove_all_useless=false and add -R3f for
remove_all_useless=true.
* src/tgbatest/ltl2tgba.test: Show one case where -R3f makes
the degeneralization worse than -R3.
2010-03-06 00:24:16 +01:00
Alexandre Duret-Lutz
34af32879c Better selection of the acceptance of the initial state in SBA.
* src/tgba/tgbatba.cc (tgba_sba_proxy::tgba_sba_proxy): Set
cycle_start_ to start in the accepting layer of the degeneralized
automaton if the initial state has an accepting self-loop.
Otherwise, starts at the level of the first acceptance condition
as previously.
(tgba_sba_proxy::get_init_state): Use cycle_start_.
* src/tgba/tgbatba.hh (tgba_tba_proxy::a_): Make it protected so
that we can use it in tgba_sba_proxy::tgba_sba_proxy.
(tgba_sba_proxy::cycle_start_, tgba_sba_proxy::get_init_state):
Declare.
* src/tgbatest/ltl2tgba.test: More tests.
2010-03-05 22:35:18 +01:00
Alexandre Duret-Lutz
96cc3a3f67 Optimize tgba_tba_proxy and tgba_sba_proxy for states that share
an acceptance condition on all outgoing transitions.

This was motivated by experiments from Rdiger Ehlers, showing
that "ltl2ba -f 'a U (b U c)'" outperformed "ltl2tgba -f -N -R3 'a
U (b U c)'".  With this change and the previous one, it is no
longer the case.

* src/tgba/tgbatba.cc (tgba_tba_proxy_succ_iterator::aut_): Store
a pointer to the source automaton and...
(tgba_tba_proxy_succ_iterator::sync_): ... use it in an extra
optimization step to gather the acceptance conditions common
to all outgoing transitions of the destination state, and pretend
they are on the current (ingoing) transition.
(tgba_tba_proxy::succ_iter): Pass the
source automaton to the constructed iterator.
* src/tgbatest/spotlbtt.test: Test -f -N -R3 -r7.
* src/tgbatest/ltl2tgba.test: Add a test case for 'a U (b U c)'.
2010-03-03 12:42:11 +01:00
Alexandre Duret-Lutz
efb15a9171 ltl2tgba: apply -R3 before -D or -DS.
* src/tgbatest/ltl2tgba.cc (main): Call scc_filter() before the
degeneralization, because it might remove useless acceptance
conditions.  I realized this while looking at experiments from
Rdiger Ehlers.
2010-03-03 08:42:45 +01:00
Alexandre Duret-Lutz
2183276008 Fix random_graph() not to generate dead states.
This is actually the third time I fix random_graph().  On
2007-02-06 I changed the function not to generated dead states,
but in a way that made it non-deterministic.  On 2010-01-20 I made
the function deterministic again, but it started to generate dead
states as a side effect.  This time, I'm making sure that dead
states won't come again with a test-case that we should have had
from the beginning.

* src/tgbaalgos/randomgraph.cc (random_graph): Add an extra
indirection array, state_randomizer[], so that we can reorder
states indices after a random selection without actually changing
the value of the indices used by unreachable_states and
nodes_to_process.
* src/tgbatest/randtgba.test: New file.
* src/tgbatest/Makefile.am: Add randtgba.test.
2010-02-23 17:20:59 +01:00
Alexandre Duret-Lutz
dd3ac6b4f3 Check for missing Copyright blurbs, and add them.
* src/sanity/style.test: Check for missing Copyrights blurbs.
* src/sanity/Makefile.am: Run style.test before includes.test.
* iface/gspn/dcswave.test, iface/gspn/dcswaveeltl.test,
iface/gspn/dcswavefm.test, iface/gspn/dcswaveltl.test,
iface/gspn/simple.test, iface/gspn/udcsefm.test,
iface/gspn/udcseltl.test, iface/gspn/udcsfm.test,
iface/gspn/udcsltl.test, iface/nips/nipstest/dotty.test,
iface/nips/nipstest/emptiness.test, src/eltltest/acc.test,
src/eltltest/nfa.test, src/saba/sabacomplementtgba.cc,
src/sabatest/sabacomplementtgba.cc, src/tgbatest/eltl2tgba.test,
src/tgbatest/taatgba.test: Add missing Copyright blurb.
2010-01-30 16:32:13 +01:00
Alexandre Duret-Lutz
dd71e37df2 Remove the theoretically bogus "containment" option of ltl2tgba_fm.
* src/tgbaalgos/ltl2tgba_fm.cc, src/tgbaalgos/ltl2tgba_fm.hh:
Remove the containment option.
* src/tgbafromfile.cc, src/tgbafromfile.hh: Remove the
containment_ member.
* src/tgbatest/ltl2tgba.cc (syntax): Remove -c option for
FM algorithm, use it exclusively for TAA.
2010-01-30 12:32:01 +01:00
Alexandre Duret-Lutz
7647ba0fdd Rename tgba_complement as tgba_kv_complement.
* src/tgba/tgbacomplement.hh, src/tgba/tgbacomplement.cc: Rename
as...
* src/tgba/tgbakvcomplement.hh, src/tgba/tgbakvcomplement.cc:
... these. It makes more sense since we also have
tgba_safra_complement.
* src/tgba/Makefile.am, src/tgbatest/complement.cc, NEWS: Adjust.
2010-01-30 12:31:57 +01:00
Alexandre Duret-Lutz
85532dc8f8 Do not recognize "*" as "and". This leaves room for an
implementation of rational operators in a future version.

* src/ltlparse/ltlscan.ll: Do not recognize "*".
* wrap/python/cgi-bin/ltl2tgba.in: Undocument it.
* NEWS: Mention this.
* src/tgbatest/kv.test, src/tgbatest/ltl2tgba.test,
src/tgbatest/reductgba.test: Replace "*" by "&".
2010-01-30 12:27:20 +01:00
Alexandre Duret-Lutz
55b693e123 Make Couvreur/FM the default translation.
* src/tgbatest/ltl2tgba.cc (syntax, main): Do it.
* NEWS: Mention it.
2010-01-30 12:27:15 +01:00
Alexandre Duret-Lutz
369e4c419b Overhaul LaCIM's ELTL options.
* src/tgbatest/ltl2tgba.cc (syntax, main): Introduce -le to select
this algorithm and -lo to add the default LTL operators.  This
replace the undocumented hack to add LTL operators when the
formula with read for command-line, or the automaton was output
for LBTT.
* src/tgbatest/eltl2tgba.test, src/tgbatest/spotlbtt.test: Update
call syntax.
* NEWS: Mention -le, -lo, and -taa.
2010-01-30 11:16:12 +01:00
Alexandre Duret-Lutz
9a43a06b45 Touch up -R3b handling.
* src/tgbatest/ltl2tgba.cc (syntax): Move -R3b with the other
LaCIM options.
(main): Speak of "symbolic SCC pruning" instead of "deleting
unaccepting SCC", and do that right after the translation, before
degeneralization.  Also error out when -R3b is used on non
symbolic automata.
2010-01-30 09:46:46 +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
eef27f4496 * src/tgbatest/randtgba.cc: Do not include <string> twice. 2010-01-21 14:55:01 +01:00
Alexandre Duret-Lutz
7262dff0d9 Move the last test from emptchk.test to emptchke.test.
* src/tgbatest/emptchk.test: Move the newly added test ...
* src/tgbatest/emptchke.test: ... here, with other explicit test.
Also test more algorithms.
2010-01-21 13:50:25 +01:00
Alexandre Duret-Lutz
79cb3ff512 Fix a memory leak in Cou99 statistics.
* src/tgbaalgos/gtec/ce.cc (couvreur99_check_result::acss_states):
Delete the iterator after using it.
* src/tgbatest/emptchkr.test: Run 'randtgba -z' with valgrind too.
2010-01-21 12:00:04 +01:00
Alexandre Duret-Lutz
99884e8e0f Fix a longstanding bug in our implementation of GV04.
* src/tgbaalgos/gv04.cc (push): Fix the tracking of the accepting
link.  This bug was discovered on a random generated graph with
a complex accepting cycle.
* src/tgbatest/emptchk.test: Add the troublesome graph as
test case.
2010-01-21 12:00:04 +01:00
Damien Lefortier
9cebcdc124 * src/tgba/taatgba.cc, src/tgba/taatgba.hh: Fix memory issues
occuring when labels are pointers.
* src/tgbaalgos/ltl2taa.cc: Fix a bug.
* src/tgbatest/ltl2tgba.cc: Fix a bug.
2010-01-18 18:27:53 +01:00
Damien Lefortier
7c20d8ae5d Introduce taa_tgba_labelled<label> so that we can build
taa_tgba instances labelled by other objects than strings
in the same way Alexandre did for tgba_explicit.

* src/tgba/taatgba.cc, src/tgba/taatgba.hh: Split taa_tgba in two
levels: taa_tgba with no label and taa_tgba_labelled templated by
the type of the label.  Define taa_tgba_string (with the interface
of the former taa_tgba class) and taa_tgba_formula for future use
in ltl2taa.cc.
* src/tgbaalgos/ltl2taa.cc, src/tgbatest/taatgba.cc: Adjust to use
taa_tgba_string.
2010-01-16 13:15:42 +01:00
Damien Lefortier
830e482836 Merge eltl2tgba.cc into ltl2tgba.cc.
* src/tgbatest/eltl2tgba.cc: Remove.
* src/tgbatest/Makefile.am: Adjust.
* src/tgbatest/ltl2tgba.cc: New option: -xltl to translate an
extended LTL instead of an LTL, a feature previously offered by
eltl2tgba.cc. Also: -R3b to use delete_unaccepting_scc.
* src/tgbatest/spotlbtt.test: Adjust.
2010-01-05 23:06:58 +01:00
Damien Lefortier
1aa10e1395 * src/tgba/tgbabddcoredata.cc (delete_unaccepting_scc): Fix a bug.
* src/tgbatest/spotlbtt.test: Use the above function with LaCIM
for ELTL which greatly reduce the size of the automata!
2009-12-18 12:19:07 +01:00
Guillaume Sadegh
f00aa49dc3 Rename the class taa as taa_tgba.
* src/tgba/taa.cc, src/tgba/taa.hh: Rename as ...
* src/tgba/taatgba.cc, src/tgba/taatgba.hh: ... these, and
rename the class taa as taa_tgba.
* src/tgbaalgos/ltl2taa.cc, src/tgbaalgos/ltl2taa.hh,
src/tgbaalgos/Makefile.am: Adjust.
* src/tgbatest/ltl2tgba.cc, src/tgbatest/Makefile.am: Adjust.
* src/tgbatest/taa.test: Rename as ...
* src/tgbatest/taatgba.test ... this.
* src/tgbatest/taa.cc: Rename as ...
* src/tgbatest/taatgba.cc ... this, and adjust.
2009-11-27 23:28:23 +01:00
Alexandre Duret-Lutz
d362e752d1 * src/tgbatest/ltl2tgba.cc (main): Fix typo to re-enable
reductions by simulation.
2009-11-26 17:40:21 +01:00
Alexandre Duret-Lutz
1e19aa3a5f * src/tgbatest/ltl2tgba.cc (main): Stop the SCC timer. I mean
really stop it!
2009-11-25 18:06:46 +01:00
Alexandre Duret-Lutz
b796bb3d0a Detect running timers, and stop a timer in ltl2tgba.
* src/misc/timer.hh (time_info::running): New attribute.
(time_info::start, time_info::stop): Update and check
time_info::running.
* src/misc/timer.cc (timer_map::print): Mark running timers with
a "+" in the output.
* src/tgbatest/ltl2tgba.cc (main): Rename the name of the timers
for SCC and simulation reduction, and actually stop the SCC timer.
2009-11-24 11:47:42 +01:00
Alexandre Duret-Lutz
7ea51cc65f Replace prune_scc() by scc_filter().
prune_scc() leaked memory and failed to remove chains of useless SCCs.

* src/tgbaalgos/reductgba_sim.cc (reduc_tgba_sim): Call
scc_filter() instead of prune_scc(), and do it before running
any simulation-based reduction.
* src/tgbaalgos/reductgba_sim.hh (reduc_tgba_sim): Return a const
tgba*.
* src/tgbatest/ltl2tgba.cc: Call scc_filter() instead of
prune_scc().
* src/tgbatest/scc.test: Add two more tests that failed with
prune_scc().
2009-11-18 18:22:45 +01:00
Alexandre Duret-Lutz
8cdc196719 Use -l wherever we where expecting ltl2tgba to default to LaCIM.
* bench/ltl2tgba/algorithms: Use -l for all LaCIM invocations.
* src/tgbatest/dupexp.test, src/tgbatest/emptchk.test,
src/tgbatest/spotlbtt.test: Likewise.
2009-11-12 16:46:04 +01:00
Alexandre Duret-Lutz
c9b65cff71 Cleanup the help of ltl2tgba.
* src/tgbatest/ltl2tgba.cc (syntax): Reorganize the help text, so
that we can find options without resorting to grep...  Also
cleanup the program name if it is a libtool wrapper.
2009-11-12 16:38:24 +01:00
Alexandre Duret-Lutz
8ccc2b81c1 * src/tgbatest/ltl2tgba.cc (-l): New option to select the lacim
translation.  It still is the default translation.
(opt_fm, opt_taa): Replace these two variables by ...
(translation): ... this enum.  And use a switch to call the
correct translation.
2009-11-12 15:30:55 +01:00
Alexandre Duret-Lutz
8c6a2b33d9 Do not comment states in the never claim by default. It takes too
much time when the formula is large, and it is useless when the
purpose is model-checking with Spin.

* src/tgbaalgos/neverclaim.hh (never_claim_reachable): Add the
comments option.
* src/tgbaalgos/neverclaim.cc (never_claim_bfs,
never_claim_reachable): Honor the comment option.
* src/tgba/tests/ltl2tgba.cc (-N): Do not comment states.
(-NN) New option to output a commented never claim.
2009-11-10 17:46:25 +01:00