Commit graph

2484 commits

Author SHA1 Message Date
Alexandre Duret-Lutz
83ed4f8c90 simulation: use tuple and emplace_back for constraints
* src/tgbaalgos/simulation.cc: Here.
2014-02-12 16:17:51 +01:00
Alexandre Duret-Lutz
ba5aff2460 Replace << "c" by << 'c', and check for it in style.sh
* src/sanity/style.test: Add a test.
* iface/dve2/dve2.cc, iface/dve2/dve2check.cc, src/bin/common_output.cc,
src/bin/dstar2tgba.cc, src/bin/ltl2tgba.cc, src/bin/ltlcross.cc,
src/dstarparse/dra2ba.cc, src/dstarparse/fmterror.cc,
src/dstarparse/nsa2tgba.cc, src/kripke/kripkeprint.cc,
src/kripkeparse/fmterror.cc, src/ltlast/atomic_prop.cc,
src/ltlast/bunop.cc, src/ltltest/ltlrel.cc, src/ltltest/reduc.cc,
src/ltltest/syntimpl.cc, src/ltlvisit/dotty.cc, src/ltlvisit/lbt.cc,
src/ltlvisit/randomltl.cc, src/ltlvisit/relabel.cc,
src/ltlvisit/simplify.cc, src/ltlvisit/tostring.cc, src/misc/bitvect.cc,
src/misc/optionmap.cc, src/misc/timer.cc, src/neverparse/fmterror.cc,
src/priv/freelist.cc, src/saba/sabacomplementtgba.cc,
src/sabaalgos/sabadotty.cc, src/taalgos/dotty.cc,
src/taalgos/minimize.cc, src/tgba/bdddict.cc, src/tgba/bddprint.cc,
src/tgba/futurecondcol.cc, src/tgba/taatgba.hh,
src/tgba/tgbakvcomplement.cc, src/tgba/tgbasafracomplement.cc,
src/tgbaalgos/compsusp.cc, src/tgbaalgos/cycles.cc,
src/tgbaalgos/dotty.cc, src/tgbaalgos/dtbasat.cc,
src/tgbaalgos/dtgbasat.cc, src/tgbaalgos/emptiness.cc,
src/tgbaalgos/gtec/gtec.cc, src/tgbaalgos/gv04.cc,
src/tgbaalgos/lbtt.cc, src/tgbaalgos/ltl2tgba_fm.cc,
src/tgbaalgos/minimize.cc, src/tgbaalgos/neverclaim.cc,
src/tgbaalgos/powerset.cc, src/tgbaalgos/replayrun.cc,
src/tgbaalgos/save.cc, src/tgbaalgos/scc.cc, src/tgbaalgos/sccfilter.cc,
src/tgbaalgos/weight.cc, src/tgbaalgos/word.cc,
src/tgbaparse/fmterror.cc, src/tgbatest/bitvect.cc,
src/tgbatest/complementation.cc, src/tgbatest/intvcmp2.cc,
src/tgbatest/intvcomp.cc, src/tgbatest/ltl2tgba.cc,
src/tgbatest/randtgba.cc: Replace << "c" by << 'c' when
appropriate.
2014-02-12 16:17:51 +01:00
Alexandre Duret-Lutz
49c66c6319 c++11: replace push(Type(args...)) by emplace(args...)
This of course concerns push_back and push_front as well.

* src/bin/common_finput.cc, src/bin/dstar2tgba.cc, src/bin/ltl2tgba.cc,
src/bin/ltl2tgta.cc, src/bin/ltlcross.cc, src/bin/ltlfilt.cc,
src/dstarparse/dstarparse.yy, src/kripkeparse/kripkeparse.yy,
src/ltlast/formula.cc, src/ltlparse/ltlparse.yy, src/misc/minato.cc,
src/neverparse/neverclaimparse.yy, src/priv/bddalloc.cc, src/ta/ta.cc,
src/taalgos/emptinessta.cc, src/tgba/taatgba.cc,
src/tgbaalgos/gtec/gtec.cc, src/tgbaalgos/gtec/sccstack.cc,
src/tgbaalgos/magic.cc, src/tgbaalgos/ndfs_result.hxx,
src/tgbaalgos/rundotdec.cc, src/tgbaalgos/scc.cc, src/tgbaalgos/se05.cc,
src/tgbaalgos/simulation.cc, src/tgbaalgos/tau03.cc,
src/tgbaalgos/tau03opt.cc, src/tgbaparse/tgbaparse.yy: Use emplace
to make the code less verbose and avoid creating temporaries.
2014-02-12 14:08:47 +01:00
Alexandre Duret-Lutz
e0bbc2655d c++11: more range-based for
* src/ltlvisit/simplify.cc, src/tgbaalgos/replayrun.cc: Here.
2014-02-12 14:08:47 +01:00
Alexandre Duret-Lutz
b4c125c2b9 Avoid calling done(), as enabled by last patch.
* src/tgbaalgos/bfssteps.cc, src/tgbaalgos/complete.cc,
src/tgbaalgos/cycles.cc, src/tgbaalgos/dtgbacomp.cc,
src/tgbaalgos/gtec/gtec.cc, src/tgbaalgos/gv04.cc,
src/tgbaalgos/isweakscc.cc, src/tgbaalgos/lbtt.cc,
src/tgbaalgos/neverclaim.cc, src/tgbaalgos/reachiter.cc,
src/tgbaalgos/replayrun.cc, src/tgbaalgos/safety.cc,
src/tgbaalgos/save.cc: Avoid calls to done().
2014-02-12 14:08:47 +01:00
Alexandre Duret-Lutz
1a5c0cb1f3 tgba_succ_iterator: have first() and next() return a bool
The returned Boolean indicates whether there is a successor or not.
This way

|  for (i->first(); !i->done(); i->next())
|    {
|       ...
|    }

can be replaced by

| if (i->first()) do
|   {
|      ...
|   }
| while (i->next());

avoiding all the virtual calls to done().

* iface/dve2/dve2.cc, src/kripke/kripkeexplicit.cc,
src/kripke/kripkeexplicit.hh, src/ta/ta.hh, src/ta/taexplicit.cc,
src/ta/taexplicit.hh, src/ta/taproduct.cc, src/ta/taproduct.hh,
src/ta/tgtaproduct.cc, src/ta/tgtaproduct.hh, src/tgba/succiter.hh,
src/tgba/succiterconcrete.cc, src/tgba/succiterconcrete.hh,
src/tgba/taatgba.cc, src/tgba/taatgba.hh, src/tgba/tgba.hh,
src/tgba/tgbaexplicit.hh, src/tgba/tgbakvcomplement.cc,
src/tgba/tgbamask.cc, src/tgba/tgbaproduct.cc,
src/tgba/tgbasafracomplement.cc, src/tgba/tgbasgba.cc,
src/tgba/tgbatba.cc, src/tgba/tgbaunion.cc, src/tgba/tgbaunion.hh,
src/tgba/wdbacomp.cc: Implement and adjust to this new interface.
2014-02-12 14:08:47 +01:00
Alexandre Duret-Lutz
06c69f88ff Introduce tgba::release_iter().
Instead of "delete iter;" we now do "aut->release_iter(iter);" to
give the iterator back to the automaton.  The TGBA classes now
reuse a previously returned tgba_succ_iterator to answer a succ_iter()
call, therefore avoiding (1) memory allocation, as well as (2) vtable
and other constant member initialization.

* src/tgba/tgba.hh, src/tgba/tgba.cc (release_iter, iter_cache_):
Implement a release_iter() that stores the released iterator
in iter_cache_.
* src/tgba/succiter.hh (internal::succ_iterable): Move...
* src/tgba/tgba.hh (tgba::succ_iterable): ... here. And use
release_iter().

* iface/dve2/dve2.cc, src/kripke/kripke.cc, src/kripke/kripke.hh,
src/tgba/succiterconcrete.cc, src/tgba/succiterconcrete.hh,
src/tgba/taatgba.hh, src/tgba/tgbabddconcrete.cc,
src/tgba/tgbaexplicit.hh, src/tgba/tgbamask.cc, src/tgba/tgbaproduct.cc,
src/tgba/tgbaproxy.cc, src/tgba/tgbascc.cc, src/tgba/tgbatba.cc,
src/tgba/tgbaunion.cc, src/tgba/tgbaunion.hh, src/tgba/wdbacomp.cc,
src/tgbaalgos/bfssteps.cc, src/tgbaalgos/compsusp.cc,
src/tgbaalgos/cycles.cc, src/tgbaalgos/dtbasat.cc,
src/tgbaalgos/dtgbasat.cc, src/tgbaalgos/gtec/gtec.cc,
src/tgbaalgos/gv04.cc, src/tgbaalgos/isweakscc.cc,
src/tgbaalgos/lbtt.cc, src/tgbaalgos/ltl2tgba_fm.cc,
src/tgbaalgos/magic.cc, src/tgbaalgos/ndfs_result.hxx,
src/tgbaalgos/neverclaim.cc, src/tgbaalgos/reachiter.cc,
src/tgbaalgos/replayrun.cc, src/tgbaalgos/safety.cc,
src/tgbaalgos/scc.cc, src/tgbaalgos/se05.cc,
src/tgbaalgos/simulation.cc, src/tgbaalgos/tau03.cc,
src/tgbaalgos/tau03opt.cc: Use release_iter() instead of deleting
iterators, and used recycle iter_cache_ in implementations of
tgba::succ_iter().
2014-02-12 14:08:47 +01:00
Alexandre Duret-Lutz
487cd01d9f c++11: introduce tgba::succ(s) to replace tgba::succ_iter(s).
| tgba_succ_iterator* i = aut->succ_iter(s);
| for (i->begin(); !i->done(); i->next())
|   {
|      // ...
|   }
| delete i;

becomes

| for (auto i: aut->succ(s))
|   {
|      // ...
|   }

hiding the begin()/done()/next() interface, taking care of the delete,
and allowing more optimization to come.

* src/tgba/succiter.hh, src/tgba/tgba.hh: Implement the above
new interface.
* iface/gspn/ssp.cc, src/dstarparse/nsa2tgba.cc,
src/saba/sabacomplementtgba.cc, src/tgba/tgbakvcomplement.cc,
src/tgba/tgbamask.cc, src/tgba/tgbasafracomplement.cc,
src/tgba/tgbatba.cc, src/tgbaalgos/compsusp.cc, src/tgbaalgos/cutscc.cc,
src/tgbaalgos/degen.cc, src/tgbaalgos/emptiness.cc,
src/tgbaalgos/isdet.cc, src/tgbaalgos/ltl2tgba_fm.cc,
src/tgbaalgos/minimize.cc, src/tgbaalgos/powerset.cc,
src/tgbaalgos/safety.cc, src/tgbaalgos/simulation.cc,
src/tgbaalgos/tau03.cc, src/tgbatest/explicit2.cc: Update for
loops.
2014-02-12 14:08:47 +01:00
Alexandre Duret-Lutz
f59773e3c7 * src/sanity/style.test: Allow &&... 2014-02-12 14:08:47 +01:00
Alexandre Duret-Lutz
2f71741575 Use the degeneralization unicity_table in more places.
* src/tgbaalgos/degen.cc (unicity_table): Move and rename as...
* src/tgba/state.hh (state_unicity_table): ... this.
* src/tgbaalgos/cutscc.cc, src/tgbaalgos/cycles.cc,
src/tgbaalgos/cycles.hh, src/tgbaalgos/minimize.cc,
src/tgbaalgos/powerset.cc, src/tgbaalgos/powerset.hh,
src/tgbaalgos/safety.cc: Use it to simplify existing code.
2014-02-12 14:08:47 +01:00
Alexandre Duret-Lutz
c7b3148cb4 * src/tgbaalgos/degen.cc (unicity_table): Simplify. 2014-02-12 14:08:46 +01:00
Alexandre Duret-Lutz
bd6d88db96 [buddy] Enable C++11 and add a move constructor/assignment operator.
* configure.ac: Enable C++11 mode.
* src/bdd.h: Use noexport, and add a move constructor and
move assignment operator.  The move version of these method
do not have to increment the reference counter, saving time.
On a small test run, this change saved 24% of the calls to
bdd_addref_nc().
2014-02-12 14:08:46 +01:00
Alexandre Duret-Lutz
b37dc0bc90 ltlast: simplify with std::make_pair() and c++11's std::tuple
* src/ltlast/atomic_prop.cc, src/ltlast/atomic_prop.hh,
src/ltlast/automatop.cc, src/ltlast/automatop.hh, src/ltlast/binop.cc,
src/ltlast/binop.hh, src/ltlast/bunop.cc, src/ltlast/bunop.hh,
src/ltlast/multop.cc, src/ltlast/multop.hh, src/ltlast/unop.cc,
src/ltlast/unop.hh: Use std::tuple to replace nested std::pair,
simplify calls to std::map::erase, use auto and std::make_pair with
insert, and simplify the dump() method using a range for.
2014-02-12 14:08:24 +01:00
Alexandre Duret-Lutz
c64503fb33 c++11: Simplify random generation code using C++11.
* src/misc/random.cc, src/misc/random.hh (srand, drand, mrand, rrand,
barand): Simplify using <random> from C++11.
(nrand, bmrand, prand): Remove these unused functions.
* src/tgbaalgos/randomgraph.cc: Adjust the use of barand.
* configure.ac: Do not check for srand48 and drand48.
2014-02-12 14:07:17 +01:00
Alexandre Duret-Lutz
7480470760 Remove the configure check for Boost, since we do not use it anymore.
* README: Do not mention Boost.
* configure.ac: Do not check for Boost.
* m4/boost.m4: Delete.
2014-02-12 14:07:17 +01:00
Alexandre Duret-Lutz
92ef3e1016 safra: get rid of boost::dynamic_bitset.
The bitvect implementation seems a tad faster, but most importantly
this removes the last dependency on Boost.

* src/tgba/tgbasafracomplement.cc: Replace boost::dynamic_bitset by
spot::bitvect.
2014-02-12 14:07:17 +01:00
Alexandre Duret-Lutz
9a097bb02e bitvect: add a is_subset_of method.
* src/misc/bitvect.hh: New method.
* src/tgbatest/bitvect.cc, src/tgbatest/bitvect.test: Test it.
2014-02-12 14:07:16 +01:00
Alexandre Duret-Lutz
90a43db5a4 c++11: Replace boost::shared_ptr by std::shared_ptr.
* src/eltlparse/eltlparse.yy, src/ltlast/formula_tree.hh,
src/ltlast/nfa.hh, src/saba/sabastate.hh, src/tgba/state.hh: Here.
2014-02-12 14:07:16 +01:00
Alexandre Duret-Lutz
67b9e8d882 c++11: get rid of spot::unique_ptr
But do not replace it by std::unique_ptr, because this was not
really equivalent.

* src/misc/unique_ptr.hh: Delete.
* src/misc/Makefile.am: Adjust.
* src/tgbaalgos/simulation.cc, src/tgbatest/ltl2tgba.cc: Call
delete explicitly.
2014-02-12 14:07:16 +01:00
Alexandre Duret-Lutz
cdd7b475b3 * lib/argp.h: Fix compilation with g++-4.6 -std=c++0x. 2014-02-12 14:07:16 +01:00
Alexandre Duret-Lutz
3a406dc3d7 c++11: improve configure.
* configure.ac, m4/ax_check_compile_flag.m4: Update from
Vaucanson 2.  (Thank you Akim.)
2014-02-12 14:07:16 +01:00
Alexandre Duret-Lutz
ea6a34b0b4 * src/kripke/kripkeexplicit.cc: Work around a clang warning. 2014-02-12 14:07:13 +01:00
Alexandre Duret-Lutz
79d6ef073e * HACKING: Some notes about C++11. 2014-02-12 14:06:19 +01:00
Alexandre Duret-Lutz
c88e22d0ba c++11: work around Swig 2.0
* src/misc/common.hh: Conditionally define SPOT_DELETED to = delete.
* src/ltlvisit/simplify.hh, src/ta/taexplicit.hh, src/ta/taproduct.hh,
src/tgba/bdddict.hh, src/tgba/taatgba.hh, src/tgba/tgbabddconcrete.hh,
src/tgba/tgbaexplicit.hh, src/tgba/tgbaproduct.hh, src/tgba/tgbasgba.hh,
src/tgba/tgbatba.hh, src/tgba/tgbaunion.hh, src/tgba/wdbacomp.cc: Use
SPOT_DELETED.
* wrap/python/spot.i: Include common.hh.
* wrap/python/Makefile.am: Remove useless definition of SPOT_API
and BUDDY_API.
2014-02-12 14:06:19 +01:00
Alexandre Duret-Lutz
9cfc9f0f3f c++11: explicitly delete copy constructors and operator=.
* src/ltlvisit/simplify.hh, src/ta/taexplicit.hh, src/ta/taproduct.hh,
src/tgba/bdddict.hh, src/tgba/taatgba.hh, src/tgba/tgbabddconcrete.hh,
src/tgba/tgbaexplicit.hh, src/tgba/tgbaproduct.hh, src/tgba/tgbasgba.hh,
src/tgba/tgbatba.hh, src/tgba/tgbaunion.hh, src/tgba/wdbacomp.cc: Here.
2014-02-12 14:06:19 +01:00
Alexandre Duret-Lutz
557292bd11 c++11: use for(auto...) to simplify code in src/bin/.
* src/bin/common_finput.cc, src/bin/genltl.cc, src/bin/ltlcross.cc,
src/bin/randltl.cc: Simplify.
2014-02-12 14:06:15 +01:00
Alexandre Duret-Lutz
34e91b7656 c++11: replace Sgi::hash_* by Sgi::unordered_*.
* bench/scc-stats/stats.cc, bench/split-product/cutscc.cc,
iface/gspn/ssp.cc, src/bin/ltlcross.cc, src/bin/ltlfilt.cc,
src/bin/randltl.cc, src/dstarparse/nsa2tgba.cc, src/ltlast/formula.hh,
src/ltlast/nfa.hh, src/ltlvisit/contain.hh, src/ltlvisit/dotty.cc,
src/ltlvisit/mark.hh, src/ltlvisit/relabel.cc, src/ltlvisit/relabel.hh,
src/ltlvisit/simplify.cc, src/ltlvisit/snf.hh, src/misc/hash.hh,
src/misc/mspool.hh, src/priv/acccompl.hh, src/priv/accconv.hh,
src/saba/explicitstateconjunction.hh, src/saba/sabastate.hh,
src/sabaalgos/sabareachiter.hh, src/sanity/style.test,
src/ta/taexplicit.cc, src/ta/taexplicit.hh, src/taalgos/emptinessta.cc,
src/taalgos/minimize.cc, src/taalgos/reachiter.hh, src/tgba/state.hh,
src/tgba/taatgba.hh, src/tgba/tgbabddconcretefactory.hh,
src/tgba/tgbaexplicit.hh, src/tgba/tgbakvcomplement.cc,
src/tgba/tgbasafracomplement.cc, src/tgba/tgbatba.cc,
src/tgba/tgbatba.hh, src/tgbaalgos/cutscc.cc, src/tgbaalgos/cycles.hh,
src/tgbaalgos/degen.cc, src/tgbaalgos/dtbasat.cc,
src/tgbaalgos/dtgbasat.cc, src/tgbaalgos/eltl2tgba_lacim.cc,
src/tgbaalgos/emptiness.cc, src/tgbaalgos/gtec/explscc.hh,
src/tgbaalgos/gtec/nsheap.hh, src/tgbaalgos/gv04.cc,
src/tgbaalgos/ltl2tgba_fm.cc, src/tgbaalgos/magic.cc,
src/tgbaalgos/minimize.cc, src/tgbaalgos/ndfs_result.hxx,
src/tgbaalgos/powerset.hh, src/tgbaalgos/randomgraph.cc,
src/tgbaalgos/reachiter.hh, src/tgbaalgos/replayrun.cc,
src/tgbaalgos/safety.cc, src/tgbaalgos/scc.hh, src/tgbaalgos/se05.cc,
src/tgbaalgos/simulation.cc, src/tgbaalgos/tau03.cc,
src/tgbaalgos/tau03opt.cc: Adjust code.
* src/sanity/style.test: Remove check.
2014-02-12 14:05:04 +01:00
Alexandre Duret-Lutz
c568b4d337 hash.hh: Remove conditional code.
* m4/stl.m4: Delete.
* configure.ac: Do not check for unordered_map and friends.
* src/misc/hash.hh: Remove all conditional code.
2014-02-12 14:04:57 +01:00
Alexandre Duret-Lutz
f3874e05cc * configure.ac: Turn on C++11 flags. 2014-02-12 14:04:10 +01:00
Alexandre Duret-Lutz
2c05a9fdb6 ltlast: move all accessor methods to headers to help the optimizer
* src/ltlast/atomic_prop.cc, src/ltlast/atomic_prop.hh,
src/ltlast/automatop.cc, src/ltlast/automatop.hh, src/ltlast/binop.cc,
src/ltlast/binop.hh, src/ltlast/bunop.cc, src/ltlast/bunop.hh,
src/ltlast/constant.cc, src/ltlast/constant.hh, src/ltlast/multop.cc,
src/ltlast/multop.hh, src/ltlast/unop.cc, src/ltlast/unop.hh: Move all
one-line accessors methods like nth(), child(), op()... from *.cc files
to their respective *.hh files.
2014-02-12 10:43:42 +01:00
Alexandre Duret-Lutz
9020ac8bef * doc/org/satmin.org: Reword last paragraph. 2014-02-12 10:06:53 +01:00
Alexandre Duret-Lutz
be43c1e957 * NEWS, configure.ac: Bump version to 1.2.3a. 2014-02-11 17:30:10 +01:00
Alexandre Duret-Lutz
2a7d5f5f7f Release Spot 1.2.3
* NEWS, configure.ac, doc/org/tools.org: Update version.
2014-02-11 17:20:58 +01:00
Alexandre Duret-Lutz
327b7e18b2 * bench/dtgbasat/README: Update glucose URL. 2014-02-11 17:17:15 +01:00
Alexandre Duret-Lutz
f567d88ff8 * NEWS: mention recent fixes. 2014-02-11 10:45:15 +01:00
Alexandre Duret-Lutz
58878cd405 Work around the clang version installed with MacOS X 10.9.
Apparently their hash tables store the hash functions in a const
member, and this requires a user-supplied default constructor.
Reported by Étienne Renault.

* src/misc/hash.hh: Add an empty constructor to all hash functions.
2014-02-11 10:40:19 +01:00
Alexandre Duret-Lutz
0b5f63c296 Add missing const.
* src/kripke/kripkeexplicit.cc: Add missing const, reported by Etienne
Renault using Apple's clang version that is installed with OS X 10.9.
2014-02-11 10:05:57 +01:00
Alexandre Lewkowicz
cb0b3d3c67 testsuite: find files when building in remote directory
* doc/Makefile.am, src/ltltest/defs.in, src/ltltest/latex.test: Here.
2014-02-10 16:56:20 +01:00
Alexandre Duret-Lutz
eb778c569a sat: adjust SPOT_SATSOLVER default for glucose 3.0
* src/misc/satsolver.cc: Add the "-model" option.
* NEWS, doc/org/satmin.org, src/bin/man/spot-x.x: Mention it.
2014-02-08 21:34:35 +01:00
Alexandre Duret-Lutz
fd4a963a26 * src/bin/common_setup.cc: Bump copyright year. 2014-02-08 20:31:49 +01:00
Alexandre Duret-Lutz
3c985a3235 sat: document the SPOT_SATLOG envvar
* doc/org/satmin.org, src/bin/man/spot-x.x: Document it.
* NEWS: Mention it.
2014-02-08 20:31:49 +01:00
Alexandre Duret-Lutz
20824b96b9 timer: also consider the time spent in child processes
* src/misc/timer.hh: Fix.
* NEWS: Mention the bug.
2014-02-08 20:31:49 +01:00
Alexandre Duret-Lutz
55ee18b96a sat-minimize: more statistics.
* src/tgbaalgos/dtbasat.cc, src/tgbaalgos/dtgbasat.cc: Record
statistics about intermediate automata if SPOT_SATLOG is set to some
filename, and display intermediate automata if SPOT_SATSHOW is set.
* bench/dtgbasat/stat.sh, bench/dtgbasat/stats.sh,
bench/dtgbasat/tabl.pl, bench/dtgbasat/tabl1.pl,
bench/dtgbasat/tabl2.pl, bench/dtgbasat/tabl3.pl,
bench/dtgbasat/tabl4.pl: Gather these extra statistics.
2014-02-08 20:31:49 +01:00
Alexandre Duret-Lutz
1319ec0bad sat-minimize: limit number of iterations
* src/tgbaalgos/dtbasat.cc, src/tgbaalgos/dtgbasat.cc: Compute the
actual number of reachable states in the produced automaton to prepare
the next iteration.
2014-02-08 20:31:49 +01:00
Alexandre Duret-Lutz
e1be8e6e42 * bench/dtgbasat/README: Typo. 2014-02-08 20:31:49 +01:00
Alexandre Duret-Lutz
9c0021fac8 * src/tgbatest/satmin2.test, src/tgbatest/Makefile.am: New test. 2014-02-08 20:31:49 +01:00
Alexandre Duret-Lutz
7a26a4f1ec Revert "* src/tgbaalgos/dtbasat.cc: Better encoding for weak SCCs."
This was simply wrong.

* src/tgbaalgos/dtbasat.cc: reverts commit
fc5a00d24d5964d6f6a48d362ecbdec357eaf154.
2014-02-08 20:31:26 +01:00
Alexandre Duret-Lutz
b4d0b9ee42 sat: more debug.
* src/tgbaalgos/dtbasat.cc, src/tgbaalgos/dtgbasat.cc: More debuging
code.
2014-02-07 12:07:16 +01:00
Alexandre Duret-Lutz
9c98975c19 sat: factor the creation of temporary files
* src/misc/satsolver.hh, src/misc/satsolver.cc: Present
the SAT solver as an object with a stream interface, to
prepare for a better implementation.
* src/tgbaalgos/dtbasat.cc, src/tgbaalgos/dtgbasat.cc:
Adjust to the new interface, removing all the handling
of temporary files.
* src/tgbatest/readsat.cc: Adjust.
2014-02-07 12:07:16 +01:00
Alexandre Duret-Lutz
1853bdd53b sat: fix some non-determinism of the encoding
* src/tgbaalgos/dtbasat.cc, src/tgbaalgos/dtgbasat.cc: Rewrite the
loops that number the states of the reference automaton so that
they declare CNF variable numbers in the same order as the states
of the automaton.
2014-02-07 12:07:16 +01:00