spot/spot/twaalgos
Alexandre Duret-Lutz 67b5d2aa9a fix several algorithms that incorrectly preserved !weak
This massive set of changes was triggered by issue #546.
In addition to the better handling of !weak, this also adds some
weak properties in a few places.

* spot/twaalgos/product.cc (product_aux): Throw some exception
if an automaton with t or f acceptance has the !weak property.  This
is a cheap sanity check to help detect algorithms that incorrectly
assumed !weak input would necessarily become !weak output.
* spot/twaalgos/hoa.cc (print_hoa): Likewise, also do not assume
that terminal implies very-weak.
* spot/parseaut/parseaut.yy: Add several diagnostics for similar
cases.  E.g., a one-state automaton cannot be declared as !very-weak.
* tests/core/parseaut.test: Check those new diagnostics.
* spot/twa/twa.cc (twa::intersecting_run): Temporary remove the weak
property by setting it to maybe, not to false.
* spot/twaalgos/minimize.cc, spot/twaalgos/parity.cc,
spot/twaalgos/sccfilter.cc, spot/twaalgos/simulation.cc: Account for
the fact that these algorithm may in fact improve the weakness.
* spot/twaalgos/strength.cc: Only look at colors used by the
acceptance condition when deciding weakness.
* spot/twaalgos/synthesis.cc: Declare the strategy as weak.
* bin/randaut.cc: Add weak to automata with t/f acceptance.
* spot/kripke/kripke.hh: Make kripke structures as weak.
* tests/core/acc_word.test, tests/core/alternating.test,
tests/core/complement.test, tests/core/complete.test,
tests/core/ltlsynt.test, tests/core/randomize.test,
tests/core/readsave.test, tests/core/remfin.test,
tests/core/sccsimpl.test, tests/core/strength.test,
tests/core/wdba2.test, tests/ltsmin/kripke.test,
tests/python/automata-io.ipynb, tests/python/automata.ipynb,
tests/python/dbranch.py, tests/python/highlighting.ipynb,
tests/python/kripke.py, tests/python/ltsmin-dve.ipynb,
tests/python/mealy.py, tests/python/simstate.py: Adjust all these test
cases.
* NEWS: Mention the fixes.
2023-11-10 23:38:25 +01:00
..
gtec ignore false edges in emptiness checks and scc_info 2020-04-11 11:24:55 +02:00
.gitignore rename src/ as spot/ and use include <spot/...> 2015-12-04 20:13:59 +01:00
aiger.cc Fix warnings with GCC 7 on Centos 7 2023-11-03 10:14:34 +01:00
aiger.hh introduce realizability_simplifier to share more of ltlsynt's code 2023-10-09 17:53:12 +02:00
alternation.cc replace bdd_relprod by bdd_restrict 2022-10-11 10:43:27 +02:00
alternation.hh introduce output_aborter, and use it in ltlcross 2019-05-28 14:27:30 +02:00
are_isomorphic.cc include config.h in all *.cc files 2018-02-21 17:59:09 +01:00
are_isomorphic.hh sanity: Replace tabulars by spaces in *.cc *.hh *.hxx 2016-03-10 17:40:46 +01:00
bfssteps.cc ignore false edges in emptiness checks and scc_info 2020-04-11 11:24:55 +02:00
bfssteps.hh more doxygen 2018-01-18 18:00:11 +01:00
canonicalize.cc include config.h in all *.cc files 2018-02-21 17:59:09 +01:00
canonicalize.hh rename src/ as spot/ and use include <spot/...> 2015-12-04 20:13:59 +01:00
cleanacc.cc simplify_acceptance: generalize the complementary mark rewriting 2020-07-29 15:01:55 +02:00
cleanacc.hh Inf(i)|Inf(j) -> Inf(k) and Fin(i)&Fin(j) -> Fin(k) 2020-01-28 09:37:28 +01:00
cobuchi.cc degen: learn to work on generalized-Co-Büchi as well 2022-09-12 14:14:43 +02:00
cobuchi.hh degen: learn to work on generalized-Co-Büchi as well 2022-09-12 14:14:43 +02:00
complement.cc complement: fix a regression with 2.9.8 2021-12-17 12:20:12 +01:00
complement.hh bib: more references 2022-01-14 15:52:49 +01:00
complete.cc complete: do not force Büchi on universal automata 2022-05-20 14:51:48 +02:00
complete.hh complete: do not force Büchi on universal automata 2022-05-20 14:51:48 +02:00
compsusp.cc * spot/twaalgos/compsusp.cc: Fix a warning from gcc-snapshot. 2019-12-11 19:46:17 +01:00
compsusp.hh remove useless forward declaration 2018-07-23 10:00:56 +02:00
contains.cc forq: make it easier to select contains's version 2023-09-15 10:51:00 +02:00
contains.hh forq: make it easier to select contains's version 2023-09-15 10:51:00 +02:00
copy.hh deprecate copy() in favor of make_twa_graph() 2017-07-25 11:35:37 +02:00
couvreurnew.cc address a new g++-10 warnings 2020-07-13 16:30:29 +02:00
couvreurnew.hh Add a new, parameterized, version of the Couvreur emptiness check. 2016-12-13 16:18:31 +01:00
cycles.cc include config.h in all *.cc files 2018-02-21 17:59:09 +01:00
cycles.hh use a bibtex file to collect all references in Doxygen 2019-06-14 21:02:27 +02:00
dbranch.cc dbranch: fix handling of state-based acceptance 2023-02-03 09:35:46 +01:00
dbranch.hh dbranch: fix handling of state-based acceptance 2023-02-03 09:35:46 +01:00
degen.cc degen: learn to work on generalized-Co-Büchi as well 2022-09-12 14:14:43 +02:00
degen.hh degen: learn to work on generalized-Co-Büchi as well 2022-09-12 14:14:43 +02:00
determinize.cc determinize: work around overflow in reachability matrix indices 2023-09-05 09:12:15 +02:00
determinize.hh determinize: work around overflow in reachability matrix indices 2023-09-05 09:12:15 +02:00
dot.cc dot: fix 'g' with a Mealy machine 2022-10-03 10:35:38 +02:00
dot.hh Adding dot suppport for aiger class 2021-09-16 14:53:47 +02:00
dtbasat.cc simplify several comparison operators 2023-01-05 17:50:37 +01:00
dtbasat.hh dtwasat: various fixes 2021-09-29 16:50:49 +02:00
dtwasat.cc simplify several comparison operators 2023-01-05 17:50:37 +01:00
dtwasat.hh sat_minimize: improve logs and document Python bindings 2018-03-30 18:01:59 +02:00
dualize.cc replace bdd_relprod by bdd_restrict 2022-10-11 10:43:27 +02:00
dualize.hh use a bibtex file to collect all references in Doxygen 2019-06-14 21:02:27 +02:00
emptiness.cc twa_run: let as_twa work on the result of intersecting_run 2023-04-18 22:18:16 +02:00
emptiness.hh twa_run: let as_twa work on the result of intersecting_run 2023-04-18 22:18:16 +02:00
emptiness_stats.hh emptiness stats: remove some unused code 2017-03-10 16:24:46 +01:00
forq_contains.cc Fix warnings with GCC 7 on Centos 7 2023-11-03 10:14:34 +01:00
forq_contains.hh forq: swap arguments of contains_forq 2023-09-15 10:50:52 +02:00
game.cc Fix parity solver if edgevector is not contiguous 2023-03-31 15:17:57 +02:00
game.hh Adding option to solve parity games globally 2023-03-23 09:02:09 +01:00
genem.cc gen: generalize fin_unit to mafins() 2023-07-25 16:44:21 +02:00
genem.hh Add a procedure that detects if an automaton is parity-type 2022-07-07 20:43:21 +02:00
gfguarantee.cc use bdd_have_common_assignment in more places 2021-07-30 12:06:23 +02:00
gfguarantee.hh * spot/twaalgos/gfguarantee.hh: Typos in comments. 2022-03-22 15:50:36 +01:00
gv04.cc ignore false edges in emptiness checks and scc_info 2020-04-11 11:24:55 +02:00
gv04.hh use a bibtex file to collect all references in Doxygen 2019-06-14 21:02:27 +02:00
hoa.cc fix several algorithms that incorrectly preserved !weak 2023-11-10 23:38:25 +01:00
hoa.hh misc Doxygen fixes 2022-11-10 17:08:30 +01:00
iscolored.cc avoid mark_t::count() when possible 2020-04-19 09:11:16 +02:00
iscolored.hh doc: fix some doxygen commands 2017-11-01 10:40:41 +01:00
isdet.cc use bdd_have_common_assignment in more places 2021-07-30 12:06:23 +02:00
isdet.hh introduce count_univbranch_states() and count_univbranch_edges() 2018-11-08 10:33:49 +01:00
isunamb.cc use the generic emptiness check 2018-07-24 13:36:04 +02:00
isunamb.hh remove useless forward declaration 2018-07-23 10:00:56 +02:00
isweakscc.cc scc_has_rejecting_cycle: rewrite without copy 2019-06-22 12:17:31 +02:00
isweakscc.hh is_weak_scc and friend: make them work for alternating automata 2017-08-04 15:12:27 +02:00
langmap.cc work around some g++-7.3 issues 2018-03-27 22:25:26 +02:00
langmap.hh langmap: adjust to only color non-unique languages 2017-01-17 21:58:03 +01:00
lbtt.cc modernize std::string("foo") into "foo"s 2018-07-19 11:02:47 +02:00
lbtt.hh sanity: Replace tabulars by spaces in *.cc *.hh *.hxx 2016-03-10 17:40:46 +01:00
ltl2taa.cc work around spurious gcc 12 "potentially null dereference" 2022-05-17 15:25:17 +02:00
ltl2taa.hh use a bibtex file to collect all references in Doxygen 2019-06-14 21:02:27 +02:00
ltl2tgba_fm.cc Work around spurious g++-12 warnings 2022-12-09 09:30:10 +01:00
ltl2tgba_fm.hh translator: add tls-max-states option 2020-09-18 09:41:29 +02:00
magic.cc ignore false edges in emptiness checks and scc_info 2020-04-11 11:24:55 +02:00
magic.hh use a bibtex file to collect all references in Doxygen 2019-06-14 21:02:27 +02:00
Makefile.am implement a FORQ-based inclusion check for SBAs 2023-09-13 15:48:17 +02:00
mask.cc include config.h in all *.cc files 2018-02-21 17:59:09 +01:00
mask.hh is_weak_scc and friend: make them work for alternating automata 2017-08-04 15:12:27 +02:00
mealy_machine.cc Fix warnings with GCC 7 on Centos 7 2023-11-03 10:14:34 +01:00
mealy_machine.hh Improving minimize_mealy benchmarking 2022-09-21 21:03:06 +02:00
minimize.cc fix several algorithms that incorrectly preserved !weak 2023-11-10 23:38:25 +01:00
minimize.hh postproc: option to wdba-minimize only when sure 2020-07-13 16:30:29 +02:00
ndfs_result.hxx build: fix multiple GCC warnings 2021-09-17 17:09:42 +02:00
neverclaim.cc modernize std::string("foo") into "foo"s 2018-07-19 11:02:47 +02:00
neverclaim.hh sanity: Replace tabulars by spaces in *.cc *.hh *.hxx 2016-03-10 17:40:46 +01:00
parity.cc fix several algorithms that incorrectly preserved !weak 2023-11-10 23:38:25 +01:00
parity.hh reduce_parity: expose the internal vectors of colors 2022-10-17 15:42:45 +02:00
postproc.cc fix previous patch 2022-10-05 16:29:47 +02:00
postproc.hh translate, postproc: improve parity output 2022-10-05 11:08:19 +02:00
powerset.cc powerset: speedup computation for singleton with single edge 2023-11-03 10:15:24 +01:00
powerset.hh powerset: deal with accepting sinks more effectively 2020-12-08 17:55:50 +01:00
product.cc fix several algorithms that incorrectly preserved !weak 2023-11-10 23:38:25 +01:00
product.hh product: Büchi|Büchi=Büchi, CoBüchi&CoBüchi=CoBüchi 2022-09-06 18:05:52 +02:00
randomgraph.cc Clean the usage of spot::acc_cond::mark_t 2018-03-15 10:05:24 +01:00
randomgraph.hh use a bibtex file to collect all references in Doxygen 2019-06-14 21:02:27 +02:00
randomize.cc include config.h in all *.cc files 2018-02-21 17:59:09 +01:00
randomize.hh highlight: improve support for highlighted edges 2016-07-18 23:23:01 +02:00
reachiter.cc include config.h in all *.cc files 2018-02-21 17:59:09 +01:00
reachiter.hh sanity: Replace tabulars by spaces in *.cc *.hh *.hxx 2016-03-10 17:40:46 +01:00
relabel.cc Fix warnings with GCC 7 on Centos 7 2023-11-03 10:14:34 +01:00
relabel.hh introduce partitioned_relabel_here 2022-12-09 17:00:51 +01:00
remfin.cc tra_to_tba: finish 05e6e0885 2020-07-27 14:43:27 +02:00
remfin.hh rabin_to_buchi_if_realizable: new function 2020-02-05 17:44:45 +01:00
remprop.cc to_finit: fix issue #526 2023-02-07 14:40:20 +01:00
remprop.hh improve support for LTLf semantics 2022-02-07 16:41:59 +01:00
sbacc.cc sbacc: ignore false edges and unreachable states 2023-10-12 16:06:00 +02:00
sbacc.hh introduce the original-classes named property 2021-12-17 22:36:16 +01:00
sccfilter.cc fix several algorithms that incorrectly preserved !weak 2023-11-10 23:38:25 +01:00
sccfilter.hh specialize scc_filter for inherently_weak automata 2018-06-11 15:01:49 +02:00
sccinfo.cc sccinfo: implement PROCESS_UNREACHABLE_STATES 2023-10-02 14:19:53 +02:00
sccinfo.hh sccinfo: implement PROCESS_UNREACHABLE_STATES 2023-10-02 14:19:53 +02:00
se05.cc ignore false edges in emptiness checks and scc_info 2020-04-11 11:24:55 +02:00
se05.hh use a bibtex file to collect all references in Doxygen 2019-06-14 21:02:27 +02:00
sepsets.cc sepsets: fix infinite loop 2019-04-26 11:35:55 +02:00
sepsets.hh more doxygen 2018-01-18 18:00:11 +01:00
simulation.cc fix several algorithms that incorrectly preserved !weak 2023-11-10 23:38:25 +01:00
simulation.hh postproc: add support for -x dpa-simul and simul-trans-pruning 2021-04-30 22:22:02 +02:00
split.cc split: add a new split_edge variant 2023-09-13 15:48:17 +02:00
split.hh split: add a new split_edge variant 2023-09-13 15:48:17 +02:00
stats.cc stats: add options to count unreachable states and transitions 2022-10-19 17:10:37 +02:00
stats.hh stats: add options to count unreachable states and transitions 2022-10-19 17:10:37 +02:00
strength.cc fix several algorithms that incorrectly preserved !weak 2023-11-10 23:38:25 +01:00
strength.hh use a bibtex file to collect all references in Doxygen 2019-06-14 21:02:27 +02:00
stripacc.cc remove useless reachiter.hh includes 2018-05-16 14:27:49 +02:00
stripacc.hh monitor: fix -MD/-M difference in property output 2017-03-03 18:37:32 +01:00
stutter.cc replace bdd_satoneset(x,y,bddtrue) loops by minterms_of(x,y) 2021-04-14 17:31:45 +02:00
stutter.hh add a --check=stutter-sensitive-example option 2019-12-05 08:00:47 +01:00
sum.cc Clean the usage of spot::acc_cond::mark_t 2018-03-15 10:05:24 +01:00
sum.hh twaalgos: more doxygen comments 2018-01-16 08:12:28 +01:00
synthesis.cc fix several algorithms that incorrectly preserved !weak 2023-11-10 23:38:25 +01:00
synthesis.hh Using partitioned_relabel_here 2022-12-09 17:00:52 +01:00
tau03.cc build: fix multiple GCC warnings 2021-09-17 17:09:42 +02:00
tau03.hh use a bibtex file to collect all references in Doxygen 2019-06-14 21:02:27 +02:00
tau03opt.cc build: fix multiple GCC warnings 2021-09-17 17:09:42 +02:00
tau03opt.hh sanity: Replace tabulars by spaces in *.cc *.hh *.hxx 2016-03-10 17:40:46 +01:00
toparity.cc Fix warnings with GCC 7 on Centos 7 2023-11-03 10:14:34 +01:00
toparity.hh to_parity: Rewrite the function and add new transformations 2022-07-07 20:43:21 +02:00
totgba.cc postproc: simplify the acceptance condition 2018-06-22 17:17:45 +02:00
totgba.hh use a bibtex file to collect all references in Doxygen 2019-06-14 21:02:27 +02:00
toweak.cc replace bdd_relprod by bdd_restrict 2022-10-11 10:43:27 +02:00
toweak.hh use a bibtex file to collect all references in Doxygen 2019-06-14 21:02:27 +02:00
translate.cc translate: add a new relabel-overlap option 2023-08-30 16:49:28 +02:00
translate.hh translate: add a new relabel-overlap option 2023-08-30 16:49:28 +02:00
word.cc word: introduce use_all_aps() 2019-05-24 23:26:43 +02:00
word.hh twa_run: let as_twa work on the result of intersecting_run 2023-04-18 22:18:16 +02:00
zlktree.cc Fix warnings with GCC 7 on Centos 7 2023-11-03 10:14:34 +01:00
zlktree.hh misc Doxygen fixes 2022-11-10 17:08:30 +01:00