babiak.test 3.07 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
#!/bin/sh
# Copyright (C) 2011 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 2 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 Spot; see the file COPYING.  If not, write to the Free
# Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# 02111-1307, USA.

# While running some benchmark, Tomáš Babiak found that Spot took too
# much time (i.e. >1h) to translate those six formulae.  It turns out
# that the WDBA minimization was performed after the degeneralization
# algorithm, while this is not necessary (WDBA will produce a BA, so
# we may as well skip degeneralization).  Translating these formulae
# in the test-suite ensure that they don't take too much time (the
# buildfarm will timeout if it does).

. ./defs

set -e

cat >formulae <<EOF
(p6 V X(G(F(F(X X(F X(F((G X F p1)|((F p5)U p1))))U((F p4)&(!p2|(G p0))))))))
(F((G 1)&(!p6 V X!p2)))V((F((G X(!p1 V!p3))V F!p2))U(X((G p3)U(p6 U p7))V X p5))
(((F p0)V((F p3)&!p4))V((((!p0|!p5)V X!p5)V p6)U(p5|(!p3 U(G(p1 U p2))))))
(G(((F((p3 &!p3)|(G((G!p2)V!p5))))|(p1 V!p4))U((X(G((F!p0)U!p6))U X!p2)|!p7)))
X((X(!p1 V F!p6)V F!p4)U p2)&(F(G((0 U(F p6))U((p1 U(G(p4 U F p0)))U X p7))))
(G(G(((F p5)U((((F!p1)V(p2 &!p4))|!p2)|((X!p7 U!p4)V(F(F((G p2)&p5))))))U p6)))
EOF

cat > config <<EOF
Algorithm
{
   Name = "Spot/FM basic"
   Path = "${LBTT_TRANSLATE}"
   Parameters = "--spot '../ltl2tgba -F -f -t'"
   Enabled = yes
}

Algorithm
{
   Name = "Spot/FM, with reductions + degeneralization (neverclaim)"
   Path = "${LBTT_TRANSLATE}"
   Parameters = "--spin '../ltl2tgba -r4 -R3f -F -f -N'"
   Enabled = yes
}

Algorithm
{
   Name = "Spot/FM, with reducetion + WDBA + degeneralization (neverclaim)"
   Path = "${LBTT_TRANSLATE}"
   Parameters = "--spin '../ltl2tgba -r7 -R3 -f -x -N -F -Rm'"
   Enabled = yes
}

Algorithm
{
   Name = "Spot/FM, with reducetion + WDBA + degeneralization (DS)"
   Path = "${LBTT_TRANSLATE}"
   Parameters = "--spot '../ltl2tgba -r7 -R3 -f -x -DS -t -F -Rm'"
   Enabled = yes
}

GlobalOptions
{
   Rounds = 6
   Interactive = Never
#   Verbosity = 5
#   ComparisonCheck = no
#   ConsistencyCheck = no
#   IntersectionCheck = no
}

# Not used, but LBTT seems to want it.
FormulaOptions
{
  Size = 1...13
  Propositions = 6

  AbbreviatedOperators = Yes
  GenerateMode = Normal
  OutputMode = Normal
  PropositionPriority = 50

  TruePriority = 1
  FalsePriority = 1

  AndPriority = 10
  OrPriority = 10
  XorPriority = 0
  # EquivalencePriority = 0

  BeforePriority = 0

  DefaultOperatorPriority = 5
}
EOF

${LBTT} --formulafile=formulae
rm config