Commit graph

32 commits

Author SHA1 Message Date
Alexandre Duret-Lutz
95cc50da51 Update gspn interface for recent tools.
* iface/gspn/ssp.cc: Use the new destroy() interface, and
fix a couple of recent g++ reports.
* iface/gspn/gspn.cc: Adjust to newer g++.
2011-01-27 10:48:48 +01:00
Alexandre Duret-Lutz
40c4476ce4 Keep track of the number of inclusions detected in ssp_semi 2008-08-26 14:19:59 +02:00
Alexandre Duret-Lutz
d3b5e5bdad Add option -e54 to ltlgspn-ssp 2008-08-07 14:10:28 +02:00
Alexandre Duret-Lutz
cc0ca4ae54 This is something Soheib and I worked on back in July, but a
intricate memory corruption bug prevented me to check the patch
in.  It took me two days to realize why find_state() must do a
double loop over the candidates to check for equality before
checking for inclusion(s).

* iface/gspn/ltlgspn.cc: New options, -e45 and -n.
* iface/gspn/ssp.cc, iface/gspn/ssp.hh: Handle these.
* src/tgbaalgos/gtec/gtec.cc (TRACE): Add some debugging traces.
(couvreur99_check_shy::dump_queue): New function.
* src/tgbaalgos/gtec/gtec.hh (couvreur99_check_shy::dump_queue):
New function.
2008-02-25 14:37:55 +01:00
Alexandre Duret-Lutz
b8fd421232 * iface/gspn/ltlgspn.cc: New option -L.
* iface/gspn/ssp.cc, iface/gspn/ssp.hh (gspn_ssp_interface)
support for a new option "pushfront".
2008-02-25 14:37:54 +01:00
Alexandre Duret-Lutz
0dc53d3d2a * iface/gspn/ssp.cc (tgba_gspn_ssp_private_::~tgba_gspn_ssp_private_):
Fix the declaration for GCC 4.1.2.
* iface/gspn/gspn.cc (tgba_gspn_private_::~tgba_gspn_private_):
Likewise.
2008-02-25 14:37:00 +01:00
Alexandre Duret-Lutz
e84647b30b * iface/gspn/common.hh, iface/gspn/common.cc, iface/gspn/gspn.cc,
iface/gspn/ltlgspn.cc, iface/gspn/dottygspn.cc, iface/gspn/ssp.cc,
iface/gspn/dottyssp.cc: s/exeption/exception/g.
2008-02-25 14:36:57 +01:00
Alexandre Duret-Lutz
983d12cc5a * src/tgbaalgos/gtec/gtec.cc, src/tgbaalgos/gtec/gtec.hh:
(couvreur99_check_shy_ssp): Add a onepass_ attribute to
disable the "shyness", and do not increment pos before calling
find_state since gspn's implementation uses it.
* iface/gspn/ssp.cc: Enable "onepass_" for all "shy" variants,
and also fix find_state for the case where onepass_ is
disabled (but I do not yet know why the latter fix isn't enough).
2008-02-25 14:36:57 +01:00
Alexandre Duret-Lutz
644b74f8c0 * src/tgbaalgos/gtec/gtec.cc: Add a third level hash, to split
each container into lists of states with identical formula states.
2008-02-25 14:36:57 +01:00
Alexandre Duret-Lutz
afd4ea0eb4 * iface/gspn/ltlgspn.cc, src/tgbaalgos/gtec/gtec.cc,
src/tgbaalgos/gtec/gtec.hh: New option (-e6) to disable
inclusion check in the stack.
2008-02-25 14:36:57 +01:00
Alexandre Duret-Lutz
857f0ac54e * iface/gspn/ssp.cc (couvreur99_check_shy_ssp::find_state,
numbered_state_heap_ssp_semi): Implement a double hash_map using
greatspn's new container() function.
* iface/gspn/ssp.hh (gspn_ssp_interface): Add a doublehash option.
* iface/gspn/ltlgspn.cc: Add option -1 to disable this optimization.
2008-02-25 14:36:57 +01:00
Alexandre Duret-Lutz
d2cf7199bc * iface/gspn/ltlgspn.cc (display_stats): New function.
(main): Use it.
* iface/gspn/ssp.cc: Add more counters for statistics.
2008-02-25 14:36:57 +01:00
Alexandre Duret-Lutz
723054ce80 * iface/gspn/ssp.cc (couvreur99_check_shy_ssp::find_state): Correctly
update the emptiness statistics.

* m4/gspnlib.m4: Typo.
2008-02-25 14:36:56 +01:00
Alexandre Duret-Lutz
ffd47e425e * iface/gspn/ssp.cc: Pacify sanity.test. 2008-02-25 14:36:56 +01:00
Alexandre Duret-Lutz
2a843fab1a * iface/gspn/ssp.cc (spot): Typo. 2008-02-25 14:36:56 +01:00
Alexandre Duret-Lutz
236742aed8 * src/tgbaalgos/gtec/gtec.cc (couvreur99_check_shy::check):
Reorganize this function so that syntactically there is only one
loop over the successors, and not two.  Call reintroduce the call
to couvreur99_check_shy::state_index(), needed by SSP, and
suppress that to index_and_insert introduced on 2004-12-29.  Also
split the "group" option in two: "group" and "group2".  "group2"
is the equivalent of the older "group", while the new "group" is
weaker and faster.
(couvreur99_check_shy::state_index): Change prototype as needed by
the algorithm.
* src/tgbaalgos/gtec/gtec.hh: Adjust.
* src/tgbaalgos/gtec/nsheap.hh, src/tgbaalgos/gtec/nsheap.cc
(index_and_insert): Remove.
* iface/gspn/ssp.cc (couvreur99_check_shy_ssp::state_index): Adjust
to new prototype.
* bench/emptchk/README, bench/emptchk/algorithms: Adjust references
to group/group2.
2008-02-25 14:36:56 +01:00
Alexandre Duret-Lutz
cc4137e5ba * iface/gspn/ssp.cc: Typo in comment. 2008-02-25 14:36:55 +01:00
Alexandre Duret-Lutz
f3effb9da0 * src/misc/optionmap.cc, src/misc/optionmap.hh (option_map::get,
option_map::set): Handle default values.
(anonymous::to_int): Do not print anything.
* src/tgbaalgos/gv04.cc, src/tgbaalgos/gv04.hh,
src/tgbaalgos/tau03.cc, src/tgbaalgos/tau03.hh,
src/tgbaalgos/tau03opt.cc, src/tgbaalgos/tau03opt.hh,
src/tgbaalgos/ce.cc, src/tgbaalgos/ce.hh: Take an option_map in
the constructor.
* src/tgbaalgos/gtec.cc, src/tgbaalgos/gtec.hh: Likewise.  Handle
the "poprem", "group", and "shy" options via the option_map.
Supply a couvreur99() wrapper to the shy/non-shy variant.
* src/tgbatest/ltl2tgba.cc, src/tgbatest/randtgba.cc,
iface/gspn/ssp.cc: Adjust.
2005-02-16 18:53:18 +00:00
Alexandre Duret-Lutz
93f77c5782 * src/tgbaalgos/gtec/nsheap.hh, src/tgbaalgos/gtec/nsheap.cc
(index_and_insert): New function.
* src/tgbaalgos/gtec/gtec.cc (couvreur99_check_shy::check): Rewrite.
(couvreur99_check_shy::clear_todo): New method.
* src/tgbaalgos/gtec/gtec.hh (couvreur99_check_shy::todo_item): New
struct.
* iface/gspn/ssp.cc (numbered_state_heap_ssp_semi::index_and_insert):
New method.
2004-12-29 15:29:26 +00:00
Alexandre Duret-Lutz
abbd0eee07 * src/tgbaalgos/gtec/status.hh
(couvreur99_check_status::cycle_seed): New attribute.
* src/tgbaalgos/gtec/gtec.cc (couvreur99_check::check,
couvreur99_check_shy::check): Fill cycle_seed.
* src/tgbaalgos/gtec/ce.hh, src/tgbaalgos/gtec/ce.cc:
(couvreur99_check_result::accepting_run,
couvreur99_check_result::accepting_cycle): Revamp to compute a
cycle from the cycle_start, and then the shortest prefix to this
cycle.
2004-12-10 18:33:39 +00:00
Alexandre Duret-Lutz
9782b822f0 * src/tgbaalgos/gtec/gtec.hh, src/tgbaalgos/gtec/gtec.cc
(couvreur99_check_shy::couvreur99_check_shy): Add the group option,
and redefine todo as a list so it can be iterated over.
* src/tgbatest/ltl2tgba.cc, src/tgbatest/randtgba.cc: Introduce
couvreur99_shy- (for group=false) in addition to couvreur99_shy
(for group=true).
* iface/gspn/ssp.cc (couvreur99_check_ssp_shy_semi,
couvreur99_check_ssp_shy): Use group=true;
2004-12-10 16:16:38 +00:00
Alexandre Duret-Lutz
55014e9dcc * src/sanity/style.test: Diagnose superfluous constructs such
as `if (x) delete x;'.
* iface/gspn/gspn.cc, iface/gspn/ssp.cc, src/ltlvisit/basicreduce.cc,
src/tgba/tgba.cc, src/tgba/tgbaproduct.cc, src/tgbaalgos/magic.cc,
src/tgbatest/ltl2tgba.cc: Remove such constructs.
2004-10-29 14:29:02 +00:00
Alexandre Duret-Lutz
6c815004c4 Introduce an emptiness-check interface, and modify the existing
algorithms to conform to it, uniformly.  This will unfortunately
break third-party code that were using these algorithms.
* src/tgbaalgos/emptiness.cc, src/tgbaalgos/emptiness.hh: New files.
* src/tgbaalgos/Makefile.am: New files.
* src/tgbaalgos/magic.cc, src/tgbaalgos/magic.hh: Adjust to
conform to the new emptiness-check interface.
* src/tgbaalgos/gtec/ce.cc, src/tgbaalgos/gtec/ce.hh,
src/tgbaalgos/gtec/gtec.cc, src/tgbaalgos/gtec/gtec.hh,
src/tgbaalgos/gtec/status.cc, src/tgbaalgos/gtec/status.hh:
Likewise.  The classes have been renamed are as following
  emptiness_check -> couvreur99_check
  emptiness_check_shy -> couvreur99_check_shy
  counter_example -> couvreur99_check_result
* src/tgbatest/ltl2tgba.cc, iface/gspn/ltlgspn.cc, iface/gspn/ssp.hh,
iface/gspn/ssp.cc: Adjust to renaming and new interface.
2004-10-27 16:47:54 +00:00
Alexandre Duret-Lutz
3f2cba6304 * src/sanity/style.test: Suggest ++i over i++ when it does not
matter, for consistency.
* src/tgbaalgos/tarjan_on_fly.cc, iface/gspn/ssp.cc,
src/tgbaalgos/reductgba_sim_del.cc, src/tgbaalgos/reductgba_sim.cc,
src/tgbaalgos/minimalce.cc, src/tgba/tgbareduc.cc: Adjust.
2004-09-23 12:20:10 +00:00
Alexandre Duret-Lutz
bec7402a67 * iface/gspn/ssp.cc: Typos. 2004-07-16 11:52:19 +00:00
Alexandre Duret-Lutz
478844dad8 * src/tgbaalgos/gtec/gtec.hh (emptiness_check_shy::find_state): Add
comments.
* iface/gspn/ssp.cc (emptiness_check_shy_ssp::find_state): Likewise.
Soheib and I had a hard time figuring why we did this...
2004-07-07 12:00:11 +00:00
Alexandre Duret-Lutz
84e72c8764 * iface/gspn/ssp.cc (emptiness_check_shy_ssp::find_state): Free s.
This fixes a memory leak observed by Soheib Baarir.
2004-06-17 09:07:36 +00:00
Alexandre Duret-Lutz
383f7e170a * iface/gspn/common.cc, iface/gspn/common.hh: Remove the
class gspn_environment, and move it to ...
* src/ltlenv/declenv.cc, src/ltlenv/declenv.hh: .. this new file
as class declarative_environment.
* src/ltlenv/Makefile.am (ltlenv_HEADERS): Add declenv.hh.
(libltlenv_la_SOURCES): Add declenv.cc.
* iface/gspn/dottygspn.cc, iface/gspn/dottyssp.cc,
iface/gspn/gspn.cc, iface/gspn/gspn.hh, iface/gspn/ltlgspn.cc,
iface/gspn/ssp.cc, iface/gspn/ssp.hh: Adjust references
to declarative_environment.
2004-06-02 16:21:49 +00:00
Alexandre Duret-Lutz
8e324fa2a2 * HACKING, src/sanity/style.test: NULL is not portable, prohibit it.
* iface/gspn/ssp.cc, src/ltltest/reduc.cc, src/ltltest/syntimpl.cc,
src/ltlvisit/basereduc.cc, src/ltlvisit/reducform.cc,
src/ltlvisit/syntimpl.cc: Use 0 instead of NULL.
2004-06-02 15:16:47 +00:00
Alexandre Duret-Lutz
57fa1c8b5f * iface/gspn/ssp.hh (gspn_ssp_interface::gspn_ssp_interface): Add
the `inclusion' flag.
* iface/gspn/ssp.cc (gspn_ssp_interface::gspn_ssp_interface): Call
inclusion_version when inclusion is set.
* iface/gspn/ltlgspn.cc (main) [SSP]: Turn on inclusion for -e3,
-e4, and -e5.
2004-05-24 11:53:57 +00:00
Alexandre Duret-Lutz
3e968a3c9d * src/sanity/style.test: Check the iface/ tree too.
* iface/gspn/gspn.cc, iface/gspn/ssp.cc: Fix style.
2004-05-21 11:55:36 +00:00
Alexandre Duret-Lutz
133bcf9442 Rename EESRG as SSP.
* iface/gspn/eesrg.cc, iface/gspn/eesrg.hh,
iface/gspn/dottyeesrg.cc: Rename as ...
* iface/gspn/ssp.cc, iface/gspn/ssp.hh, iface/gspn/dottyssp.cc:
... these.  Adjust all classes and function names.
* iface/gspn/ltlgspn.cc, iface/gspn/Makefile.am: Adjust all classes
filenames and function names.
* m4/gspnlib.m4: Define WITH_GSPN_SSP and LIBGSPNSSP_LDFLAGS.
2004-04-15 12:05:20 +00:00
Renamed from iface/gspn/eesrg.cc (Browse further)