Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Spot
Spot
Commits
c7f4b8e2
Commit
c7f4b8e2
authored
Jun 28, 2011
by
Ala-Eddine Ben-Salem
Committed by
Alexandre Duret-Lutz
Jul 15, 2012
Browse files
Single-pass Testing Automata (STA) optimizations
* src/taalgos/sba2ta.cc, src/taalgos/emptinessta.cc: STA optimizations
parent
782ba001
Changes
2
Hide whitespace changes
Inline
Side-by-side
src/taalgos/emptinessta.cc
View file @
c7f4b8e2
...
...
@@ -205,9 +205,10 @@ namespace spot
(
a_
->
is_hole_state_in_ta_component
(
curr
))
&&
a_
->
is_livelock_accepting_state
(
curr
);
//may be Buchi accepting scc or livelock accepting s
tate
(contains a TA hole and livelock accepting state)
//may be Buchi accepting scc or livelock accepting s
cc
(contains a TA
"
hole and livelock accepting state
"
)
scc
.
top
().
is_accepting
=
(
a_
->
is_accepting_state
(
curr
)
&&
!
succ
->
is_stuttering_transition
())
&&
(
!
succ
->
is_stuttering_transition
()
||
a_
->
is_livelock_accepting_state
(
curr
)))
||
curr_is_livelock_hole_state_in_ta_component
;
bool
is_stuttering_transition
=
succ
->
is_stuttering_transition
();
...
...
src/taalgos/sba2ta.cc
View file @
c7f4b8e2
...
...
@@ -140,14 +140,8 @@ namespace spot
new
state_ta_explicit
(
ta
->
get_tgba
()
->
get_init_state
(),
bddfalse
,
false
,
false
,
true
,
0
,
true
);
state_ta_explicit
*
artificial_livelock_accepting_state_added
=
ta
->
add_state
(
artificial_livelock_accepting_state
);
// unique artificial_livelock_accepting_state
assert
(
artificial_livelock_accepting_state_added
==
artificial_livelock_accepting_state
);
add_artificial_livelock_accepting_state
(
ta
,
artificial_livelock_accepting_state
_added
);
artificial_livelock_accepting_state
);
}
...
...
@@ -160,6 +154,13 @@ namespace spot
state_ta_explicit
*
artificial_livelock_accepting_state
)
{
state_ta_explicit
*
artificial_livelock_accepting_state_added
=
testing_automata
->
add_state
(
artificial_livelock_accepting_state
);
// unique artificial_livelock_accepting_state
assert
(
artificial_livelock_accepting_state_added
==
artificial_livelock_accepting_state
);
ta
::
states_set_t
states_set
=
testing_automata
->
get_states_set
();
ta
::
states_set_t
::
iterator
it
;
...
...
@@ -181,7 +182,7 @@ namespace spot
{
state_ta_explicit
*
dest
=
(
*
it_trans
)
->
dest
;
if
(
dest
->
is_livelock_accepting_state
())
if
(
dest
->
is_livelock_accepting_state
()
&&
!
dest
->
is_accepting_state
()
)
{
conditions_to_livelock_accepting_states
->
insert
(
(
*
it_trans
)
->
condition
);
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment