translate, postproc: improve parity output
* spot/twaalgos/translate.cc: When producing Parity output, split LTL as we do in the Generic case. * spot/twaalgos/postproc.hh, spot/twaalgos/postproc.cc: Use acd_transform() and add an "acd" option to disable this. * bin/spot-x.cc, NEWS: Document this. * tests/core/genltl.test, tests/core/minusx.test, tests/core/parity2.test: Adjust test cases for improved outputs.
This commit is contained in:
parent
e867242cf6
commit
344e01d4e2
8 changed files with 189 additions and 241 deletions
11
NEWS
11
NEWS
|
|
@ -164,11 +164,20 @@ New in spot 2.10.6.dev (not yet released)
|
||||||
further simplification. This was introduced to help with automata
|
further simplification. This was introduced to help with automata
|
||||||
produced from formulas output by "genltl --eil-gsi" (see above).
|
produced from formulas output by "genltl --eil-gsi" (see above).
|
||||||
|
|
||||||
- spot::postproc has new configuration variable branch-post that
|
- spot::postprocessor has new configuration variable branch-post that
|
||||||
can be used to control the use of branching-postponement (diabled
|
can be used to control the use of branching-postponement (diabled
|
||||||
by default) or delayed-branching (see above, enabled by default).
|
by default) or delayed-branching (see above, enabled by default).
|
||||||
See the spot-x(7) man page for details.
|
See the spot-x(7) man page for details.
|
||||||
|
|
||||||
|
- spot::postprocessor is now using acd_transform() by default when
|
||||||
|
building parity automata. Setting option "acd=0" will revert
|
||||||
|
to using "to_parity()" instead.
|
||||||
|
|
||||||
|
- When asked to build parity automata, spot::translator is now more
|
||||||
|
aggressively using LTL decomposition, as done in the Generic
|
||||||
|
acceptance case before paritizing the result. This results in
|
||||||
|
much smaller automata in many cases.
|
||||||
|
|
||||||
- spot::parallel_policy is an object that can be passed to some
|
- spot::parallel_policy is an object that can be passed to some
|
||||||
algorithm to specify how many threads can be used if Spot has been
|
algorithm to specify how many threads can be used if Spot has been
|
||||||
compiled with --enable-pthread. Currently, only
|
compiled with --enable-pthread. Currently, only
|
||||||
|
|
|
||||||
|
|
@ -80,6 +80,9 @@ only if it is smaller than the original skeleton. This option is only \
|
||||||
used when comp-susp=1 and default to 1 or 2 depending on whether --small \
|
used when comp-susp=1 and default to 1 or 2 depending on whether --small \
|
||||||
or --deterministic is specified.") },
|
or --deterministic is specified.") },
|
||||||
{ nullptr, 0, nullptr, 0, "Postprocessing options:", 0 },
|
{ nullptr, 0, nullptr, 0, "Postprocessing options:", 0 },
|
||||||
|
{ DOC("acd", "Set to 1 (the default) to use paritize automata using \
|
||||||
|
the alternatinc cycle decomposition. Set to 0 to use paritization based \
|
||||||
|
on latest appearance record variants.") },
|
||||||
{ DOC("scc-filter", "Set to 1 (the default) to enable \
|
{ DOC("scc-filter", "Set to 1 (the default) to enable \
|
||||||
SCC-pruning and acceptance simplification at the beginning of \
|
SCC-pruning and acceptance simplification at the beginning of \
|
||||||
post-processing. Transitions that are outside of accepting SCC are \
|
post-processing. Transitions that are outside of accepting SCC are \
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
// -*- coding: utf-8 -*-
|
// -*- coding: utf-8 -*-
|
||||||
// Copyright (C) 2012-2021 Laboratoire de Recherche et Développement
|
// Copyright (C) 2012-2022 Laboratoire de Recherche et Développement
|
||||||
// de l'Epita (LRDE).
|
// de l'Epita (LRDE).
|
||||||
//
|
//
|
||||||
// This file is part of Spot, a model checking library.
|
// This file is part of Spot, a model checking library.
|
||||||
|
|
@ -40,6 +40,7 @@
|
||||||
#include <spot/twaalgos/cobuchi.hh>
|
#include <spot/twaalgos/cobuchi.hh>
|
||||||
#include <spot/twaalgos/cleanacc.hh>
|
#include <spot/twaalgos/cleanacc.hh>
|
||||||
#include <spot/twaalgos/toparity.hh>
|
#include <spot/twaalgos/toparity.hh>
|
||||||
|
#include <spot/twaalgos/zlktree.hh>
|
||||||
|
|
||||||
namespace spot
|
namespace spot
|
||||||
{
|
{
|
||||||
|
|
@ -92,6 +93,7 @@ namespace spot
|
||||||
merge_states_min_ = opt->get("merge-states-min", 128);
|
merge_states_min_ = opt->get("merge-states-min", 128);
|
||||||
wdba_det_max_ = opt->get("wdba-det-max", 4096);
|
wdba_det_max_ = opt->get("wdba-det-max", 4096);
|
||||||
simul_trans_pruning_ = opt->get("simul-trans-pruning", 512);
|
simul_trans_pruning_ = opt->get("simul-trans-pruning", 512);
|
||||||
|
acd_ = opt->get("acd", 1);
|
||||||
|
|
||||||
if (sat_acc_ && sat_minimize_ == 0)
|
if (sat_acc_ && sat_minimize_ == 0)
|
||||||
sat_minimize_ = 1; // Dicho.
|
sat_minimize_ = 1; // Dicho.
|
||||||
|
|
@ -250,7 +252,8 @@ namespace spot
|
||||||
tmp = ensure_ba(tmp);
|
tmp = ensure_ba(tmp);
|
||||||
if (want_parity)
|
if (want_parity)
|
||||||
{
|
{
|
||||||
reduce_parity_here(tmp, COLORED_);
|
if (!acd_was_used_)
|
||||||
|
reduce_parity_here(tmp, COLORED_);
|
||||||
parity_kind kind = parity_kind_any;
|
parity_kind kind = parity_kind_any;
|
||||||
parity_style style = parity_style_any;
|
parity_style style = parity_style_any;
|
||||||
if ((type_ & ParityMin) == ParityMin)
|
if ((type_ & ParityMin) == ParityMin)
|
||||||
|
|
@ -295,6 +298,8 @@ namespace spot
|
||||||
bool via_gba =
|
bool via_gba =
|
||||||
(type_ == Buchi) || (type_ == GeneralizedBuchi) || (type_ == Monitor);
|
(type_ == Buchi) || (type_ == GeneralizedBuchi) || (type_ == Monitor);
|
||||||
bool want_parity = type_ & Parity;
|
bool want_parity = type_ & Parity;
|
||||||
|
acd_was_used_ = false;
|
||||||
|
|
||||||
if (COLORED_ && !want_parity)
|
if (COLORED_ && !want_parity)
|
||||||
throw std::runtime_error("postprocessor: the Colored setting only works "
|
throw std::runtime_error("postprocessor: the Colored setting only works "
|
||||||
"for parity acceptance");
|
"for parity acceptance");
|
||||||
|
|
@ -340,18 +345,26 @@ namespace spot
|
||||||
!(type_ == Generic && PREF_ == Any && level_ == Low))
|
!(type_ == Generic && PREF_ == Any && level_ == Low))
|
||||||
a = remove_alternation(a);
|
a = remove_alternation(a);
|
||||||
|
|
||||||
|
// If we do want a parity automaton, we can use to_parity().
|
||||||
|
// However (1) degeneralization is faster if the input is
|
||||||
|
// GBA, and (2) if we want a deterministic parity automaton and the
|
||||||
|
// input is not deterministic, that is useless here. We need
|
||||||
|
// to determinize it first, and our deterministization
|
||||||
|
// function only deal with TGBA as input.
|
||||||
if ((via_gba || (want_parity && !a->acc().is_parity()))
|
if ((via_gba || (want_parity && !a->acc().is_parity()))
|
||||||
&& !a->acc().is_generalized_buchi())
|
&& !a->acc().is_generalized_buchi())
|
||||||
{
|
{
|
||||||
// If we do want a parity automaton, we can use to_parity().
|
|
||||||
// However (1) degeneralization is better if the input is
|
|
||||||
// GBA, and (2) if we want a deterministic parity automaton and the
|
|
||||||
// input is not deterministic, that is useless here. We need
|
|
||||||
// to determinize it first, and our deterministization
|
|
||||||
// function only deal with TGBA as input.
|
|
||||||
if (want_parity && (PREF_ != Deterministic || is_deterministic(a)))
|
if (want_parity && (PREF_ != Deterministic || is_deterministic(a)))
|
||||||
{
|
{
|
||||||
a = to_parity(a);
|
if (acd_)
|
||||||
|
{
|
||||||
|
a = acd_transform(a, COLORED_);
|
||||||
|
acd_was_used_ = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
a = to_parity(a);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -270,6 +270,8 @@ namespace spot
|
||||||
int simul_max_ = 4096;
|
int simul_max_ = 4096;
|
||||||
int merge_states_min_ = 128;
|
int merge_states_min_ = 128;
|
||||||
int wdba_det_max_ = 4096;
|
int wdba_det_max_ = 4096;
|
||||||
|
bool acd_ = false;
|
||||||
|
bool acd_was_used_;
|
||||||
};
|
};
|
||||||
/// @}
|
/// @}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -137,6 +137,9 @@ namespace spot
|
||||||
twa_graph_ptr aut;
|
twa_graph_ptr aut;
|
||||||
twa_graph_ptr aut2 = nullptr;
|
twa_graph_ptr aut2 = nullptr;
|
||||||
|
|
||||||
|
bool split_hard =
|
||||||
|
type_ == Generic || (type_ & Parity) || type_ == GeneralizedBuchi;
|
||||||
|
|
||||||
if (ltl_split_ && !r.is_syntactic_obligation())
|
if (ltl_split_ && !r.is_syntactic_obligation())
|
||||||
{
|
{
|
||||||
formula r2 = r;
|
formula r2 = r;
|
||||||
|
|
@ -146,11 +149,11 @@ namespace spot
|
||||||
r2 = r2[0];
|
r2 = r2[0];
|
||||||
++leading_x;
|
++leading_x;
|
||||||
}
|
}
|
||||||
if (type_ == Generic || type_ == GeneralizedBuchi)
|
if (split_hard)
|
||||||
{
|
{
|
||||||
// F(q|u|f) = q|F(u)|F(f) only for generic acceptance
|
// F(q|u|f) = q|F(u)|F(f) disabled for GeneralizedBuchi
|
||||||
// G(q&e&f) = q&G(e)&G(f)
|
// G(q&e&f) = q&G(e)&G(f)
|
||||||
bool want_u = r2.is({op::F, op::Or}) && (type_ == Generic);
|
bool want_u = r2.is({op::F, op::Or}) && (type_ != GeneralizedBuchi);
|
||||||
if (want_u || r2.is({op::G, op::And}))
|
if (want_u || r2.is({op::G, op::And}))
|
||||||
{
|
{
|
||||||
std::vector<formula> susp;
|
std::vector<formula> susp;
|
||||||
|
|
@ -213,20 +216,19 @@ namespace spot
|
||||||
oblg.erase(i, oblg.end());
|
oblg.erase(i, oblg.end());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// The only cases where we accept susp and rest to be both
|
||||||
|
// non-empty is when doing Generic/Parity/TGBA
|
||||||
if (!susp.empty())
|
if (!susp.empty())
|
||||||
{
|
{
|
||||||
// The only cases where we accept susp and rest to be both
|
if (!rest.empty() && !split_hard)
|
||||||
// non-empty is when doing Generic acceptance or TGBA.
|
|
||||||
if (!rest.empty()
|
|
||||||
&& !(type_ == Generic || type_ == GeneralizedBuchi))
|
|
||||||
{
|
{
|
||||||
rest.insert(rest.end(), susp.begin(), susp.end());
|
rest.insert(rest.end(), susp.begin(), susp.end());
|
||||||
susp.clear();
|
susp.clear();
|
||||||
}
|
}
|
||||||
// For Parity, we want to translate all suspendable
|
// For Parity, we want to translate all suspendable
|
||||||
// formulas at once.
|
// formulas at once.
|
||||||
if (rest.empty() && type_ & Parity)
|
//if (rest.empty() && type_ & Parity)
|
||||||
susp = { formula::multop(r2.kind(), susp) };
|
// susp = { formula::multop(r2.kind(), susp) };
|
||||||
}
|
}
|
||||||
// For TGBA and BA, we only split if there is something to
|
// For TGBA and BA, we only split if there is something to
|
||||||
// suspend.
|
// suspend.
|
||||||
|
|
|
||||||
|
|
@ -190,29 +190,29 @@ cat >exp<<EOF
|
||||||
"ms-example=4,2",10,10
|
"ms-example=4,2",10,10
|
||||||
"ms-example=4,3",11,11
|
"ms-example=4,3",11,11
|
||||||
"ms-example=4,4",12,12
|
"ms-example=4,4",12,12
|
||||||
"ms-phi-r=0",1,2
|
"ms-phi-r=0",1,1
|
||||||
"ms-phi-r=1",1,12
|
"ms-phi-r=1",1,2
|
||||||
"ms-phi-r=2",1,28
|
"ms-phi-r=2",1,5
|
||||||
"ms-phi-s=0",1,3
|
"ms-phi-s=0",1,1
|
||||||
"ms-phi-s=1",1,7
|
"ms-phi-s=1",1,2
|
||||||
"ms-phi-s=2",1,484
|
"ms-phi-s=2",1,5
|
||||||
"ms-phi-h=0",1,1
|
"ms-phi-h=0",1,1
|
||||||
"ms-phi-h=1",2,3
|
"ms-phi-h=1",2,3
|
||||||
"ms-phi-h=2",4,7
|
"ms-phi-h=2",4,7
|
||||||
"ms-phi-h=3",8,15
|
"ms-phi-h=3",8,15
|
||||||
"ms-phi-h=4",16,31
|
"ms-phi-h=4",16,31
|
||||||
"gf-equiv=0",1,1
|
"gf-equiv=0",1,1
|
||||||
"gf-equiv=1",1,3
|
"gf-equiv=1",1,2
|
||||||
"gf-equiv=2",1,7
|
"gf-equiv=2",1,5
|
||||||
"gf-equiv=3",1,20
|
"gf-equiv=3",1,10
|
||||||
"gf-equiv=4",1,80
|
"gf-equiv=4",1,17
|
||||||
"gf-equiv=5",1,430
|
"gf-equiv=5",1,26
|
||||||
"gf-implies=0",1,1
|
"gf-implies=0",1,1
|
||||||
"gf-implies=1",1,4
|
"gf-implies=1",1,1
|
||||||
"gf-implies=2",1,11
|
"gf-implies=2",1,2
|
||||||
"gf-implies=3",1,33
|
"gf-implies=3",1,3
|
||||||
"gf-implies=4",1,131
|
"gf-implies=4",1,4
|
||||||
"gf-implies=5",1,653
|
"gf-implies=5",1,5
|
||||||
"gf-equiv-xn=1",2,2
|
"gf-equiv-xn=1",2,2
|
||||||
"gf-equiv-xn=2",4,4
|
"gf-equiv-xn=2",4,4
|
||||||
"gf-equiv-xn=3",8,8
|
"gf-equiv-xn=3",8,8
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
# Copyright (C) 2016, 2020, 2021 Laboratoire de Recherche et Développement de
|
# Copyright (C) 2016, 2020-2022 Laboratoire de Recherche et
|
||||||
# l'Epita (LRDE).
|
# Développement de l'Epita (LRDE).
|
||||||
#
|
#
|
||||||
# This file is part of Spot, a model checking library.
|
# This file is part of Spot, a model checking library.
|
||||||
#
|
#
|
||||||
|
|
@ -41,9 +41,9 @@ test 4,1 = `ltl2tgba --stats=%s,%d "$f"`
|
||||||
test 6,0 = `ltl2tgba -x wdba-det-max=4 --stats=%s,%d "$f"`
|
test 6,0 = `ltl2tgba -x wdba-det-max=4 --stats=%s,%d "$f"`
|
||||||
|
|
||||||
# Make sure simul-max has an effect
|
# Make sure simul-max has an effect
|
||||||
f=`genltl --ms-phi-s=2`
|
f=`genltl --ms-phi-h=8`
|
||||||
test 484 -eq `ltl2tgba -P -D --stats=%s "$f"`
|
test 511 -eq `ltl2tgba -P -D --stats=%s "$f"`
|
||||||
test 484 -lt `ltl2tgba -P -D -x simul-max=512 --stats=%s "$f"`
|
test 511 -lt `ltl2tgba -P -D -x simul-max=512 --stats=%s "$f"`
|
||||||
|
|
||||||
# Illustrate issue #455: the simulation-based reduction applied before
|
# Illustrate issue #455: the simulation-based reduction applied before
|
||||||
# tba-det can cause the creation of a DBA that is harder to reduce.
|
# tba-det can cause the creation of a DBA that is harder to reduce.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
# Copyright (C) 2018-2019, 2021 Laboratoire de Recherche et
|
# Copyright (C) 2018-2019, 2021, 2022 Laboratoire de Recherche et
|
||||||
# Développement de l'Epita (LRDE).
|
# Développement de l'Epita (LRDE).
|
||||||
#
|
#
|
||||||
# This file is part of Spot, a model checking library.
|
# This file is part of Spot, a model checking library.
|
||||||
|
|
@ -65,30 +65,24 @@ State: 1
|
||||||
--END--
|
--END--
|
||||||
HOA: v1
|
HOA: v1
|
||||||
name: "(p0 W XXGp0) & G(Fp1 & FGp2)"
|
name: "(p0 W XXGp0) & G(Fp1 & FGp2)"
|
||||||
States: 5
|
States: 3
|
||||||
Start: 0
|
Start: 0
|
||||||
AP: 3 "p0" "p1" "p2"
|
AP: 3 "p0" "p1" "p2"
|
||||||
acc-name: Buchi
|
acc-name: Rabin 1
|
||||||
Acceptance: 1 Inf(0)
|
Acceptance: 2 Fin(0) & Inf(1)
|
||||||
properties: trans-labels explicit-labels trans-acc
|
properties: trans-labels explicit-labels trans-acc deterministic
|
||||||
--BODY--
|
--BODY--
|
||||||
State: 0
|
State: 0
|
||||||
[0] 0
|
[0&!1&2] 0
|
||||||
|
[0&!2] 0 {0}
|
||||||
|
[0&1&2] 0 {1}
|
||||||
[!0] 1
|
[!0] 1
|
||||||
[0&1&2] 2
|
|
||||||
State: 1
|
State: 1
|
||||||
[t] 3
|
[t] 2
|
||||||
[1&2] 4
|
|
||||||
State: 2
|
State: 2
|
||||||
[!0] 1
|
|
||||||
[0&!1&2] 2
|
[0&!1&2] 2
|
||||||
[0&1&2] 2 {0}
|
[0&!2] 2 {0}
|
||||||
State: 3
|
[0&1&2] 2 {1}
|
||||||
[0] 3
|
|
||||||
[0&1&2] 4
|
|
||||||
State: 4
|
|
||||||
[0&!1&2] 4
|
|
||||||
[0&1&2] 4 {0}
|
|
||||||
--END--
|
--END--
|
||||||
HOA: v1
|
HOA: v1
|
||||||
name: "FGa"
|
name: "FGa"
|
||||||
|
|
@ -124,30 +118,24 @@ State: 1
|
||||||
--END--
|
--END--
|
||||||
HOA: v1
|
HOA: v1
|
||||||
name: "(p0 W XXGp0) & G(Fp1 & FGp2)"
|
name: "(p0 W XXGp0) & G(Fp1 & FGp2)"
|
||||||
States: 5
|
States: 3
|
||||||
Start: 0
|
Start: 0
|
||||||
AP: 3 "p0" "p1" "p2"
|
AP: 3 "p0" "p1" "p2"
|
||||||
acc-name: Rabin 1
|
acc-name: Rabin 1
|
||||||
Acceptance: 2 Fin(0) & Inf(1)
|
Acceptance: 2 Fin(0) & Inf(1)
|
||||||
properties: trans-labels explicit-labels trans-acc
|
properties: trans-labels explicit-labels trans-acc deterministic
|
||||||
--BODY--
|
--BODY--
|
||||||
State: 0
|
State: 0
|
||||||
[0] 0
|
[0&!1&2] 0
|
||||||
|
[0&!2] 0 {0}
|
||||||
|
[0&1&2] 0 {1}
|
||||||
[!0] 1
|
[!0] 1
|
||||||
[0&1&2] 2
|
|
||||||
State: 1
|
State: 1
|
||||||
[t] 3
|
[t] 2
|
||||||
[1&2] 4
|
|
||||||
State: 2
|
State: 2
|
||||||
[!0] 1
|
|
||||||
[0&!1&2] 2
|
[0&!1&2] 2
|
||||||
|
[0&!2] 2 {0}
|
||||||
[0&1&2] 2 {1}
|
[0&1&2] 2 {1}
|
||||||
State: 3
|
|
||||||
[0] 3
|
|
||||||
[0&1&2] 4
|
|
||||||
State: 4
|
|
||||||
[0&!1&2] 4
|
|
||||||
[0&1&2] 4 {1}
|
|
||||||
--END--
|
--END--
|
||||||
HOA: v1
|
HOA: v1
|
||||||
name: "FGa"
|
name: "FGa"
|
||||||
|
|
@ -183,30 +171,24 @@ State: 1
|
||||||
--END--
|
--END--
|
||||||
HOA: v1
|
HOA: v1
|
||||||
name: "(p0 W XXGp0) & G(Fp1 & FGp2)"
|
name: "(p0 W XXGp0) & G(Fp1 & FGp2)"
|
||||||
States: 5
|
States: 3
|
||||||
Start: 0
|
Start: 0
|
||||||
AP: 3 "p0" "p1" "p2"
|
AP: 3 "p0" "p1" "p2"
|
||||||
acc-name: Buchi
|
acc-name: parity max even 2
|
||||||
Acceptance: 1 Inf(0)
|
Acceptance: 2 Fin(1) & Inf(0)
|
||||||
properties: trans-labels explicit-labels trans-acc
|
properties: trans-labels explicit-labels trans-acc deterministic
|
||||||
--BODY--
|
--BODY--
|
||||||
State: 0
|
State: 0
|
||||||
[0] 0
|
[0&!1&2] 0
|
||||||
|
[0&1&2] 0 {0}
|
||||||
|
[0&!2] 0 {1}
|
||||||
[!0] 1
|
[!0] 1
|
||||||
[0&1&2] 2
|
|
||||||
State: 1
|
State: 1
|
||||||
[t] 3
|
[t] 2
|
||||||
[1&2] 4
|
|
||||||
State: 2
|
State: 2
|
||||||
[!0] 1
|
|
||||||
[0&!1&2] 2
|
[0&!1&2] 2
|
||||||
[0&1&2] 2 {0}
|
[0&1&2] 2 {0}
|
||||||
State: 3
|
[0&!2] 2 {1}
|
||||||
[0] 3
|
|
||||||
[0&1&2] 4
|
|
||||||
State: 4
|
|
||||||
[0&!1&2] 4
|
|
||||||
[0&1&2] 4 {0}
|
|
||||||
--END--
|
--END--
|
||||||
HOA: v1
|
HOA: v1
|
||||||
name: "FGa"
|
name: "FGa"
|
||||||
|
|
@ -242,30 +224,25 @@ State: 1
|
||||||
--END--
|
--END--
|
||||||
HOA: v1
|
HOA: v1
|
||||||
name: "(p0 W XXGp0) & G(Fp1 & FGp2)"
|
name: "(p0 W XXGp0) & G(Fp1 & FGp2)"
|
||||||
States: 5
|
States: 3
|
||||||
Start: 0
|
Start: 0
|
||||||
AP: 3 "p0" "p1" "p2"
|
AP: 3 "p0" "p1" "p2"
|
||||||
acc-name: Streett 1
|
acc-name: parity min odd 3
|
||||||
Acceptance: 2 Fin(0) | Inf(1)
|
Acceptance: 3 Fin(0) & (Inf(1) | Fin(2))
|
||||||
properties: trans-labels explicit-labels trans-acc colored
|
properties: trans-labels explicit-labels trans-acc colored
|
||||||
|
properties: deterministic
|
||||||
--BODY--
|
--BODY--
|
||||||
State: 0
|
State: 0
|
||||||
[0] 0 {0}
|
[0&!1&2] 0 {2}
|
||||||
[!0] 1 {0}
|
[0&!2] 0 {0}
|
||||||
[0&1&2] 2 {0}
|
[0&1&2] 0 {1}
|
||||||
|
[!0] 1 {2}
|
||||||
State: 1
|
State: 1
|
||||||
[t] 3 {0}
|
[t] 2 {2}
|
||||||
[1&2] 4 {0}
|
|
||||||
State: 2
|
State: 2
|
||||||
[!0] 1 {0}
|
[0&!1&2] 2 {2}
|
||||||
[0&!1&2] 2 {0}
|
[0&!2] 2 {0}
|
||||||
[0&1&2] 2 {1}
|
[0&1&2] 2 {1}
|
||||||
State: 3
|
|
||||||
[0] 3 {0}
|
|
||||||
[0&1&2] 4 {0}
|
|
||||||
State: 4
|
|
||||||
[0&!1&2] 4 {0}
|
|
||||||
[0&1&2] 4 {1}
|
|
||||||
--END--
|
--END--
|
||||||
HOA: v1
|
HOA: v1
|
||||||
name: "FGa"
|
name: "FGa"
|
||||||
|
|
@ -301,30 +278,25 @@ State: 1
|
||||||
--END--
|
--END--
|
||||||
HOA: v1
|
HOA: v1
|
||||||
name: "(p0 W XXGp0) & G(Fp1 & FGp2)"
|
name: "(p0 W XXGp0) & G(Fp1 & FGp2)"
|
||||||
States: 5
|
States: 3
|
||||||
Start: 0
|
Start: 0
|
||||||
AP: 3 "p0" "p1" "p2"
|
AP: 3 "p0" "p1" "p2"
|
||||||
acc-name: parity min odd 3
|
acc-name: parity min odd 3
|
||||||
Acceptance: 3 Fin(0) & (Inf(1) | Fin(2))
|
Acceptance: 3 Fin(0) & (Inf(1) | Fin(2))
|
||||||
properties: trans-labels explicit-labels trans-acc colored
|
properties: trans-labels explicit-labels trans-acc colored
|
||||||
|
properties: deterministic
|
||||||
--BODY--
|
--BODY--
|
||||||
State: 0
|
State: 0
|
||||||
[0] 0 {2}
|
[0&!1&2] 0 {2}
|
||||||
|
[0&!2] 0 {0}
|
||||||
|
[0&1&2] 0 {1}
|
||||||
[!0] 1 {2}
|
[!0] 1 {2}
|
||||||
[0&1&2] 2 {2}
|
|
||||||
State: 1
|
State: 1
|
||||||
[t] 3 {2}
|
[t] 2 {2}
|
||||||
[1&2] 4 {2}
|
|
||||||
State: 2
|
State: 2
|
||||||
[!0] 1 {2}
|
|
||||||
[0&!1&2] 2 {2}
|
[0&!1&2] 2 {2}
|
||||||
|
[0&!2] 2 {0}
|
||||||
[0&1&2] 2 {1}
|
[0&1&2] 2 {1}
|
||||||
State: 3
|
|
||||||
[0] 3 {2}
|
|
||||||
[0&1&2] 4 {2}
|
|
||||||
State: 4
|
|
||||||
[0&!1&2] 4 {2}
|
|
||||||
[0&1&2] 4 {1}
|
|
||||||
--END--
|
--END--
|
||||||
HOA: v1
|
HOA: v1
|
||||||
name: "FGa"
|
name: "FGa"
|
||||||
|
|
@ -360,30 +332,25 @@ State: 1
|
||||||
--END--
|
--END--
|
||||||
HOA: v1
|
HOA: v1
|
||||||
name: "(p0 W XXGp0) & G(Fp1 & FGp2)"
|
name: "(p0 W XXGp0) & G(Fp1 & FGp2)"
|
||||||
States: 5
|
States: 3
|
||||||
Start: 0
|
Start: 0
|
||||||
AP: 3 "p0" "p1" "p2"
|
AP: 3 "p0" "p1" "p2"
|
||||||
acc-name: parity max even 3
|
acc-name: parity max even 4
|
||||||
Acceptance: 3 Inf(2) | (Fin(1) & Inf(0))
|
Acceptance: 4 Fin(3) & (Inf(2) | (Fin(1) & Inf(0)))
|
||||||
properties: trans-labels explicit-labels trans-acc colored
|
properties: trans-labels explicit-labels trans-acc colored
|
||||||
|
properties: deterministic
|
||||||
--BODY--
|
--BODY--
|
||||||
State: 0
|
State: 0
|
||||||
[0] 0 {1}
|
[0&!1&2] 0 {1}
|
||||||
|
[0&1&2] 0 {2}
|
||||||
|
[0&!2] 0 {3}
|
||||||
[!0] 1 {1}
|
[!0] 1 {1}
|
||||||
[0&1&2] 2 {1}
|
|
||||||
State: 1
|
State: 1
|
||||||
[t] 3 {1}
|
[t] 2 {1}
|
||||||
[1&2] 4 {1}
|
|
||||||
State: 2
|
State: 2
|
||||||
[!0] 1 {1}
|
|
||||||
[0&!1&2] 2 {1}
|
[0&!1&2] 2 {1}
|
||||||
[0&1&2] 2 {2}
|
[0&1&2] 2 {2}
|
||||||
State: 3
|
[0&!2] 2 {3}
|
||||||
[0] 3 {1}
|
|
||||||
[0&1&2] 4 {1}
|
|
||||||
State: 4
|
|
||||||
[0&!1&2] 4 {1}
|
|
||||||
[0&1&2] 4 {2}
|
|
||||||
--END--
|
--END--
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
|
@ -777,7 +744,7 @@ State: 0
|
||||||
HOA: v1
|
HOA: v1
|
||||||
name: "G(Fa & Fb)"
|
name: "G(Fa & Fb)"
|
||||||
States: 2
|
States: 2
|
||||||
Start: 1
|
Start: 0
|
||||||
AP: 2 "a" "b"
|
AP: 2 "a" "b"
|
||||||
acc-name: Buchi
|
acc-name: Buchi
|
||||||
Acceptance: 1 Inf(0)
|
Acceptance: 1 Inf(0)
|
||||||
|
|
@ -786,15 +753,15 @@ properties: deterministic stutter-invariant
|
||||||
--BODY--
|
--BODY--
|
||||||
State: 0
|
State: 0
|
||||||
[!1] 0
|
[!1] 0
|
||||||
[1] 1 {0}
|
[0&1] 0 {0}
|
||||||
|
[!0&1] 1
|
||||||
State: 1
|
State: 1
|
||||||
[0&!1] 0
|
[0] 0 {0}
|
||||||
[!0] 1
|
[!0] 1
|
||||||
[0&1] 1 {0}
|
|
||||||
--END--
|
--END--
|
||||||
HOA: v1
|
HOA: v1
|
||||||
name: "(p0 W XXGp0) & G(Fp1 & FGp2)"
|
name: "(p0 W XXGp0) & G(Fp1 & FGp2)"
|
||||||
States: 5
|
States: 3
|
||||||
Start: 0
|
Start: 0
|
||||||
AP: 3 "p0" "p1" "p2"
|
AP: 3 "p0" "p1" "p2"
|
||||||
acc-name: Rabin 1
|
acc-name: Rabin 1
|
||||||
|
|
@ -802,24 +769,16 @@ Acceptance: 2 Fin(0) & Inf(1)
|
||||||
properties: trans-labels explicit-labels trans-acc deterministic
|
properties: trans-labels explicit-labels trans-acc deterministic
|
||||||
--BODY--
|
--BODY--
|
||||||
State: 0
|
State: 0
|
||||||
[0&!1 | 0&!2] 0
|
[0&!1&2] 0
|
||||||
[!0] 1
|
|
||||||
[0&1&2] 2
|
|
||||||
State: 1
|
|
||||||
[!1 | !2] 3
|
|
||||||
[1&2] 4
|
|
||||||
State: 2
|
|
||||||
[0&!2] 0 {0}
|
[0&!2] 0 {0}
|
||||||
|
[0&1&2] 0 {1}
|
||||||
[!0] 1
|
[!0] 1
|
||||||
|
State: 1
|
||||||
|
[t] 2
|
||||||
|
State: 2
|
||||||
[0&!1&2] 2
|
[0&!1&2] 2
|
||||||
|
[0&!2] 2 {0}
|
||||||
[0&1&2] 2 {1}
|
[0&1&2] 2 {1}
|
||||||
State: 3
|
|
||||||
[0&!1 | 0&!2] 3
|
|
||||||
[0&1&2] 4
|
|
||||||
State: 4
|
|
||||||
[0&!2] 3 {0}
|
|
||||||
[0&!1&2] 4
|
|
||||||
[0&1&2] 4 {1}
|
|
||||||
--END--
|
--END--
|
||||||
HOA: v1
|
HOA: v1
|
||||||
name: "FGa"
|
name: "FGa"
|
||||||
|
|
@ -838,7 +797,7 @@ State: 0
|
||||||
HOA: v1
|
HOA: v1
|
||||||
name: "G(Fa & Fb)"
|
name: "G(Fa & Fb)"
|
||||||
States: 2
|
States: 2
|
||||||
Start: 1
|
Start: 0
|
||||||
AP: 2 "a" "b"
|
AP: 2 "a" "b"
|
||||||
acc-name: Rabin 1
|
acc-name: Rabin 1
|
||||||
Acceptance: 2 Fin(0) & Inf(1)
|
Acceptance: 2 Fin(0) & Inf(1)
|
||||||
|
|
@ -847,15 +806,15 @@ properties: deterministic stutter-invariant
|
||||||
--BODY--
|
--BODY--
|
||||||
State: 0
|
State: 0
|
||||||
[!1] 0
|
[!1] 0
|
||||||
[1] 1 {1}
|
[0&1] 0 {1}
|
||||||
|
[!0&1] 1
|
||||||
State: 1
|
State: 1
|
||||||
[0&!1] 0
|
[0] 0 {1}
|
||||||
[!0] 1
|
[!0] 1
|
||||||
[0&1] 1 {1}
|
|
||||||
--END--
|
--END--
|
||||||
HOA: v1
|
HOA: v1
|
||||||
name: "(p0 W XXGp0) & G(Fp1 & FGp2)"
|
name: "(p0 W XXGp0) & G(Fp1 & FGp2)"
|
||||||
States: 5
|
States: 3
|
||||||
Start: 0
|
Start: 0
|
||||||
AP: 3 "p0" "p1" "p2"
|
AP: 3 "p0" "p1" "p2"
|
||||||
acc-name: Rabin 1
|
acc-name: Rabin 1
|
||||||
|
|
@ -863,24 +822,16 @@ Acceptance: 2 Fin(0) & Inf(1)
|
||||||
properties: trans-labels explicit-labels trans-acc deterministic
|
properties: trans-labels explicit-labels trans-acc deterministic
|
||||||
--BODY--
|
--BODY--
|
||||||
State: 0
|
State: 0
|
||||||
[0&!1 | 0&!2] 0
|
[0&!1&2] 0
|
||||||
[!0] 1
|
|
||||||
[0&1&2] 2
|
|
||||||
State: 1
|
|
||||||
[!1 | !2] 3
|
|
||||||
[1&2] 4
|
|
||||||
State: 2
|
|
||||||
[0&!2] 0 {0}
|
[0&!2] 0 {0}
|
||||||
|
[0&1&2] 0 {1}
|
||||||
[!0] 1
|
[!0] 1
|
||||||
|
State: 1
|
||||||
|
[t] 2
|
||||||
|
State: 2
|
||||||
[0&!1&2] 2
|
[0&!1&2] 2
|
||||||
|
[0&!2] 2 {0}
|
||||||
[0&1&2] 2 {1}
|
[0&1&2] 2 {1}
|
||||||
State: 3
|
|
||||||
[0&!1 | 0&!2] 3
|
|
||||||
[0&1&2] 4
|
|
||||||
State: 4
|
|
||||||
[0&!2] 3 {0}
|
|
||||||
[0&!1&2] 4
|
|
||||||
[0&1&2] 4 {1}
|
|
||||||
--END--
|
--END--
|
||||||
HOA: v1
|
HOA: v1
|
||||||
name: "FGa"
|
name: "FGa"
|
||||||
|
|
@ -899,7 +850,7 @@ State: 0
|
||||||
HOA: v1
|
HOA: v1
|
||||||
name: "G(Fa & Fb)"
|
name: "G(Fa & Fb)"
|
||||||
States: 2
|
States: 2
|
||||||
Start: 1
|
Start: 0
|
||||||
AP: 2 "a" "b"
|
AP: 2 "a" "b"
|
||||||
acc-name: Buchi
|
acc-name: Buchi
|
||||||
Acceptance: 1 Inf(0)
|
Acceptance: 1 Inf(0)
|
||||||
|
|
@ -908,15 +859,15 @@ properties: deterministic stutter-invariant
|
||||||
--BODY--
|
--BODY--
|
||||||
State: 0
|
State: 0
|
||||||
[!1] 0
|
[!1] 0
|
||||||
[1] 1 {0}
|
[0&1] 0 {0}
|
||||||
|
[!0&1] 1
|
||||||
State: 1
|
State: 1
|
||||||
[0&!1] 0
|
[0] 0 {0}
|
||||||
[!0] 1
|
[!0] 1
|
||||||
[0&1] 1 {0}
|
|
||||||
--END--
|
--END--
|
||||||
HOA: v1
|
HOA: v1
|
||||||
name: "(p0 W XXGp0) & G(Fp1 & FGp2)"
|
name: "(p0 W XXGp0) & G(Fp1 & FGp2)"
|
||||||
States: 5
|
States: 3
|
||||||
Start: 0
|
Start: 0
|
||||||
AP: 3 "p0" "p1" "p2"
|
AP: 3 "p0" "p1" "p2"
|
||||||
acc-name: parity max even 2
|
acc-name: parity max even 2
|
||||||
|
|
@ -924,24 +875,16 @@ Acceptance: 2 Fin(1) & Inf(0)
|
||||||
properties: trans-labels explicit-labels trans-acc deterministic
|
properties: trans-labels explicit-labels trans-acc deterministic
|
||||||
--BODY--
|
--BODY--
|
||||||
State: 0
|
State: 0
|
||||||
[0&!1 | 0&!2] 0
|
[0&!1&2] 0
|
||||||
[!0] 1
|
[0&1&2] 0 {0}
|
||||||
[0&1&2] 2
|
|
||||||
State: 1
|
|
||||||
[!1 | !2] 3
|
|
||||||
[1&2] 4
|
|
||||||
State: 2
|
|
||||||
[0&!2] 0 {1}
|
[0&!2] 0 {1}
|
||||||
[!0] 1
|
[!0] 1
|
||||||
|
State: 1
|
||||||
|
[t] 2
|
||||||
|
State: 2
|
||||||
[0&!1&2] 2
|
[0&!1&2] 2
|
||||||
[0&1&2] 2 {0}
|
[0&1&2] 2 {0}
|
||||||
State: 3
|
[0&!2] 2 {1}
|
||||||
[0&!1 | 0&!2] 3
|
|
||||||
[0&1&2] 4
|
|
||||||
State: 4
|
|
||||||
[0&!2] 3 {1}
|
|
||||||
[0&!1&2] 4
|
|
||||||
[0&1&2] 4 {0}
|
|
||||||
--END--
|
--END--
|
||||||
HOA: v1
|
HOA: v1
|
||||||
name: "FGa"
|
name: "FGa"
|
||||||
|
|
@ -960,7 +903,7 @@ State: 0
|
||||||
HOA: v1
|
HOA: v1
|
||||||
name: "G(Fa & Fb)"
|
name: "G(Fa & Fb)"
|
||||||
States: 2
|
States: 2
|
||||||
Start: 1
|
Start: 0
|
||||||
AP: 2 "a" "b"
|
AP: 2 "a" "b"
|
||||||
acc-name: Streett 1
|
acc-name: Streett 1
|
||||||
Acceptance: 2 Fin(0) | Inf(1)
|
Acceptance: 2 Fin(0) | Inf(1)
|
||||||
|
|
@ -969,15 +912,15 @@ properties: deterministic stutter-invariant
|
||||||
--BODY--
|
--BODY--
|
||||||
State: 0
|
State: 0
|
||||||
[!1] 0 {0}
|
[!1] 0 {0}
|
||||||
[1] 1 {1}
|
[0&1] 0 {1}
|
||||||
|
[!0&1] 1 {0}
|
||||||
State: 1
|
State: 1
|
||||||
[0&!1] 0 {0}
|
[0] 0 {1}
|
||||||
[!0] 1 {0}
|
[!0] 1 {0}
|
||||||
[0&1] 1 {1}
|
|
||||||
--END--
|
--END--
|
||||||
HOA: v1
|
HOA: v1
|
||||||
name: "(p0 W XXGp0) & G(Fp1 & FGp2)"
|
name: "(p0 W XXGp0) & G(Fp1 & FGp2)"
|
||||||
States: 5
|
States: 3
|
||||||
Start: 0
|
Start: 0
|
||||||
AP: 3 "p0" "p1" "p2"
|
AP: 3 "p0" "p1" "p2"
|
||||||
acc-name: parity min odd 3
|
acc-name: parity min odd 3
|
||||||
|
|
@ -986,24 +929,16 @@ properties: trans-labels explicit-labels trans-acc colored
|
||||||
properties: deterministic
|
properties: deterministic
|
||||||
--BODY--
|
--BODY--
|
||||||
State: 0
|
State: 0
|
||||||
[0&!1 | 0&!2] 0 {2}
|
[0&!1&2] 0 {2}
|
||||||
[!0] 1 {2}
|
|
||||||
[0&1&2] 2 {2}
|
|
||||||
State: 1
|
|
||||||
[!1 | !2] 3 {2}
|
|
||||||
[1&2] 4 {2}
|
|
||||||
State: 2
|
|
||||||
[0&!2] 0 {0}
|
[0&!2] 0 {0}
|
||||||
|
[0&1&2] 0 {1}
|
||||||
[!0] 1 {2}
|
[!0] 1 {2}
|
||||||
|
State: 1
|
||||||
|
[t] 2 {2}
|
||||||
|
State: 2
|
||||||
[0&!1&2] 2 {2}
|
[0&!1&2] 2 {2}
|
||||||
|
[0&!2] 2 {0}
|
||||||
[0&1&2] 2 {1}
|
[0&1&2] 2 {1}
|
||||||
State: 3
|
|
||||||
[0&!1 | 0&!2] 3 {2}
|
|
||||||
[0&1&2] 4 {2}
|
|
||||||
State: 4
|
|
||||||
[0&!2] 3 {0}
|
|
||||||
[0&!1&2] 4 {2}
|
|
||||||
[0&1&2] 4 {1}
|
|
||||||
--END--
|
--END--
|
||||||
HOA: v1
|
HOA: v1
|
||||||
name: "FGa"
|
name: "FGa"
|
||||||
|
|
@ -1022,7 +957,7 @@ State: 0
|
||||||
HOA: v1
|
HOA: v1
|
||||||
name: "G(Fa & Fb)"
|
name: "G(Fa & Fb)"
|
||||||
States: 2
|
States: 2
|
||||||
Start: 1
|
Start: 0
|
||||||
AP: 2 "a" "b"
|
AP: 2 "a" "b"
|
||||||
acc-name: parity min odd 3
|
acc-name: parity min odd 3
|
||||||
Acceptance: 3 Fin(0) & (Inf(1) | Fin(2))
|
Acceptance: 3 Fin(0) & (Inf(1) | Fin(2))
|
||||||
|
|
@ -1031,15 +966,15 @@ properties: deterministic stutter-invariant
|
||||||
--BODY--
|
--BODY--
|
||||||
State: 0
|
State: 0
|
||||||
[!1] 0 {2}
|
[!1] 0 {2}
|
||||||
[1] 1 {1}
|
[0&1] 0 {1}
|
||||||
|
[!0&1] 1 {2}
|
||||||
State: 1
|
State: 1
|
||||||
[0&!1] 0 {2}
|
[0] 0 {1}
|
||||||
[!0] 1 {2}
|
[!0] 1 {2}
|
||||||
[0&1] 1 {1}
|
|
||||||
--END--
|
--END--
|
||||||
HOA: v1
|
HOA: v1
|
||||||
name: "(p0 W XXGp0) & G(Fp1 & FGp2)"
|
name: "(p0 W XXGp0) & G(Fp1 & FGp2)"
|
||||||
States: 5
|
States: 3
|
||||||
Start: 0
|
Start: 0
|
||||||
AP: 3 "p0" "p1" "p2"
|
AP: 3 "p0" "p1" "p2"
|
||||||
acc-name: parity min odd 3
|
acc-name: parity min odd 3
|
||||||
|
|
@ -1048,24 +983,16 @@ properties: trans-labels explicit-labels trans-acc colored
|
||||||
properties: deterministic
|
properties: deterministic
|
||||||
--BODY--
|
--BODY--
|
||||||
State: 0
|
State: 0
|
||||||
[0&!1 | 0&!2] 0 {2}
|
[0&!1&2] 0 {2}
|
||||||
[!0] 1 {2}
|
|
||||||
[0&1&2] 2 {2}
|
|
||||||
State: 1
|
|
||||||
[!1 | !2] 3 {2}
|
|
||||||
[1&2] 4 {2}
|
|
||||||
State: 2
|
|
||||||
[0&!2] 0 {0}
|
[0&!2] 0 {0}
|
||||||
|
[0&1&2] 0 {1}
|
||||||
[!0] 1 {2}
|
[!0] 1 {2}
|
||||||
|
State: 1
|
||||||
|
[t] 2 {2}
|
||||||
|
State: 2
|
||||||
[0&!1&2] 2 {2}
|
[0&!1&2] 2 {2}
|
||||||
|
[0&!2] 2 {0}
|
||||||
[0&1&2] 2 {1}
|
[0&1&2] 2 {1}
|
||||||
State: 3
|
|
||||||
[0&!1 | 0&!2] 3 {2}
|
|
||||||
[0&1&2] 4 {2}
|
|
||||||
State: 4
|
|
||||||
[0&!2] 3 {0}
|
|
||||||
[0&!1&2] 4 {2}
|
|
||||||
[0&1&2] 4 {1}
|
|
||||||
--END--
|
--END--
|
||||||
HOA: v1
|
HOA: v1
|
||||||
name: "FGa"
|
name: "FGa"
|
||||||
|
|
@ -1084,7 +1011,7 @@ State: 0
|
||||||
HOA: v1
|
HOA: v1
|
||||||
name: "G(Fa & Fb)"
|
name: "G(Fa & Fb)"
|
||||||
States: 2
|
States: 2
|
||||||
Start: 1
|
Start: 0
|
||||||
AP: 2 "a" "b"
|
AP: 2 "a" "b"
|
||||||
acc-name: parity max even 3
|
acc-name: parity max even 3
|
||||||
Acceptance: 3 Inf(2) | (Fin(1) & Inf(0))
|
Acceptance: 3 Inf(2) | (Fin(1) & Inf(0))
|
||||||
|
|
@ -1093,15 +1020,15 @@ properties: deterministic stutter-invariant
|
||||||
--BODY--
|
--BODY--
|
||||||
State: 0
|
State: 0
|
||||||
[!1] 0 {1}
|
[!1] 0 {1}
|
||||||
[1] 1 {2}
|
[0&1] 0 {2}
|
||||||
|
[!0&1] 1 {1}
|
||||||
State: 1
|
State: 1
|
||||||
[0&!1] 0 {1}
|
[0] 0 {2}
|
||||||
[!0] 1 {1}
|
[!0] 1 {1}
|
||||||
[0&1] 1 {2}
|
|
||||||
--END--
|
--END--
|
||||||
HOA: v1
|
HOA: v1
|
||||||
name: "(p0 W XXGp0) & G(Fp1 & FGp2)"
|
name: "(p0 W XXGp0) & G(Fp1 & FGp2)"
|
||||||
States: 5
|
States: 3
|
||||||
Start: 0
|
Start: 0
|
||||||
AP: 3 "p0" "p1" "p2"
|
AP: 3 "p0" "p1" "p2"
|
||||||
acc-name: parity max even 4
|
acc-name: parity max even 4
|
||||||
|
|
@ -1110,24 +1037,16 @@ properties: trans-labels explicit-labels trans-acc colored
|
||||||
properties: deterministic
|
properties: deterministic
|
||||||
--BODY--
|
--BODY--
|
||||||
State: 0
|
State: 0
|
||||||
[0&!1 | 0&!2] 0 {1}
|
[0&!1&2] 0 {1}
|
||||||
[!0] 1 {1}
|
[0&1&2] 0 {2}
|
||||||
[0&1&2] 2 {1}
|
|
||||||
State: 1
|
|
||||||
[!1 | !2] 3 {1}
|
|
||||||
[1&2] 4 {1}
|
|
||||||
State: 2
|
|
||||||
[0&!2] 0 {3}
|
[0&!2] 0 {3}
|
||||||
[!0] 1 {1}
|
[!0] 1 {1}
|
||||||
|
State: 1
|
||||||
|
[t] 2 {1}
|
||||||
|
State: 2
|
||||||
[0&!1&2] 2 {1}
|
[0&!1&2] 2 {1}
|
||||||
[0&1&2] 2 {2}
|
[0&1&2] 2 {2}
|
||||||
State: 3
|
[0&!2] 2 {3}
|
||||||
[0&!1 | 0&!2] 3 {1}
|
|
||||||
[0&1&2] 4 {1}
|
|
||||||
State: 4
|
|
||||||
[0&!2] 3 {3}
|
|
||||||
[0&!1&2] 4 {1}
|
|
||||||
[0&1&2] 4 {2}
|
|
||||||
--END--
|
--END--
|
||||||
EOF
|
EOF
|
||||||
diff expected3 res3
|
diff expected3 res3
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue