#!/bin/sh
# -*- coding: utf-8 -*-
# Copyright (C) 2014, 2015, 2017, 2019 Laboratoire de Recherche et
# Développement de l'Epita (LRDE).
#
# This file is part of Spot, a model checking library.
#
# Spot is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# Spot is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
# License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.


. ./defs

set -e

cat >expect <<EOF
Inf(0)&Inf(1)&Inf(2)&Inf(3)
0 0
3 2
#2: {0,2}
#2: {0,3}
#2: {1,2}
#3: {0,2,3}
#1: {0}
#4: {0,1,2,3} accepting
#2: {0,2}
#2: {0,3}
#2: {1,2}
#3: {0,2,3}
#1: {0}
#4: {0,1,2,3}
#0: {}
#5: {0,1,2,3,4} accepting
#2: {1,2}
5 + 5 = 10
8 1
#4: {0,3,6,7}
#7: {0,1,2,3,4,6,7}
#10: {0,1,2,3,4,5,6,7,8,9} accepting
0,1,2,3,4,5,6,7,8,9
#0: {} accepting
#0: {} accepting
#1: {3}
#4: {0,1,2,3}
#2: {0,2}
stripping
#2: {0,2}
#0: {}
#2: {0,3}
#1: {1}
#2: {1,2}
#1: {0}
#1: {4}
#1: {2}
2 Inf(0)&Inf(1)&Inf(3) 1
5 Fin(2) | (Inf(0)&Inf(1)&Inf(3)) 1
5 (Fin(0)|Fin(2)) | (Inf(0)&Inf(1)&Inf(3)) 1
5 (Fin(0)|Fin(2)) | (Inf(0)&Inf(1)&Inf(3)) 1
5 (Fin(0)|Fin(2)) | (Inf(0)&Inf(1)&Inf(3)) 1
8 (Fin(0)|Fin(1)) & ((Fin(0)|Fin(2)) | (Inf(0)&Inf(1)&Inf(3))) 0
2 f 1
5 (Fin(0)|Fin(1)|Fin(2)) | (Inf(0)&Inf(1)&Inf(3)) 1
5 (Fin(2)|Fin(3)) & (Inf(0)&Inf(1)) 0
(Fin(2)|Fin(3)) & (Inf(0)&Inf(1)) {0} true
{1}
{!2, !3}
(Fin(2)|Fin(3)) & (Inf(0)&Inf(1)) {0} false
{!1, 2}
{!1, 3}
t
f
Fin(2)
Inf(2)
Fin(2) | Inf(2)
Inf(2) & Fin(2)
(Fin(0)|Fin(3)) | (Inf(1) & Fin(2))
(Fin(0)|Fin(3)) | (Inf(1) & Fin(2))
Inf(5) | Inf(0)
Fin(1) | Inf(0)
Inf(0) | Fin(2)
EOF

run 0 ../acc > stdout
diff stdout expect
