get read of twa_safra_complement

* spot/twa/twasafracomplement.cc, spot/twa/twasafracomplement.hh,
tests/core/complementation.cc: Delete.
* tests/Makefile.am, spot/twa/Makefile.am: Adjust.
* tests/core/complementation.test: Rewrite using the new determinization
code.
* python/spot/impl.i: Do not mention twa_safra_complement anymore.
* NEWS: Mention the removal.
This commit is contained in:
Alexandre Duret-Lutz 2016-02-12 15:06:34 +01:00
parent df0f99410c
commit 6a662a6d8e
8 changed files with 47 additions and 1619 deletions

View file

@ -1,6 +1,6 @@
#!/bin/sh
# -*- coding: utf-8 -*-
# Copyright (C) 2009, 2011, 2014, 2015 Laboratoire de Recherche et
# Copyright (C) 2009, 2011, 2014, 2015, 2016 Laboratoire de Recherche et
# Développement de l'Epita (LRDE).
#
# This file is part of Spot, a model checking library.
@ -22,9 +22,7 @@
set -e
while read f; do
run 0 ../complement -f "$f"
done <<EOF
cat >input <<EOF
GFa
FGa
<>p1->p0
@ -37,8 +35,37 @@ GFa&&FGa
U (p1 || ((p0 && ! p1) U ((p1 || (! p0 U (p1 || [] ! p0))) || [] p0)))))))))
EOF
ltlcross -F input 'ltl2tgba --generic -D' --csv=out.csv
# Make sure all the automata produced where deterministic
cut -d, -f16 < out.csv > det.csv
cat >expected <<EOF
"nondet_aut"
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
EOF
diff det.csv expected
# The following test-case was supplied by Martin Dieguez Lodeiro to
# demonstrate a bug in our Safra implementation.
# demonstrate a bug in our first Safra implementation. It has now
# been adapted to our new determinization function, just in case.
cat >x.hoa <<EOF
HOA: v1
States: 3
@ -59,11 +86,15 @@ State: 2
[0] 2 {0}
--END--
EOF
# x.tgba accepts some run
run 0 ../ikwiad -XH -e x.hoa
run 0 autfilt -D x.hoa > x2.hoa
# x.hoa accepts some run
run 0 autfilt -q -v --is-empty x.hoa
run 0 autfilt -q -v --is-empty x2.hoa
# so does its complement
run 0 ../complement -H -a x.hoa > nx.hoa
run 0 ../ikwiad -XH -e nx.hoa
run 0 autfilt -q -v --is-empty --complement x2.hoa > x3.hoa
# however the intersection of both should not
# accept any run.
run 1 autfilt -q nx.hoa --intersect x.hoa
run 1 autfilt -q --intersect x2.hoa x3.hoa
: