Skip to content

Commit 661fd6a

Browse files
committed
fix SVA sequence simplifications
Rewriting SVA sequences to SVA properties only works if these sequences are at the property level.
1 parent 78d038d commit 661fd6a

File tree

2 files changed

+7
-6
lines changed

2 files changed

+7
-6
lines changed

src/temporal-logic/normalize_property.cpp

+5-3
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ exprt normalize_pre_sva_non_overlapped_implication(
3636

3737
exprt normalize_pre_sva_cycle_delay(sva_cycle_delay_exprt expr)
3838
{
39+
#if 0
3940
if(expr.is_unbounded())
4041
{
4142
if(numeric_cast_v<mp_integer>(expr.from()) == 0)
@@ -51,6 +52,7 @@ exprt normalize_pre_sva_cycle_delay(sva_cycle_delay_exprt expr)
5152
}
5253
}
5354
else
55+
#endif
5456
return std::move(expr);
5557
}
5658

@@ -90,12 +92,12 @@ exprt normalize_property_rec(exprt expr)
9092
}
9193
else if(expr.id() == ID_sva_cycle_delay_plus)
9294
{
93-
expr = sva_s_nexttime_exprt{
94-
sva_s_eventually_exprt{to_sva_cycle_delay_plus_expr(expr).op()}};
95+
// expr = sva_s_nexttime_exprt{
96+
// sva_s_eventually_exprt{to_sva_cycle_delay_plus_expr(expr).op()}};
9597
}
9698
else if(expr.id() == ID_sva_cycle_delay_star)
9799
{
98-
expr = sva_s_eventually_exprt{to_sva_cycle_delay_star_expr(expr).op()};
100+
// expr = sva_s_eventually_exprt{to_sva_cycle_delay_star_expr(expr).op()};
99101
}
100102

101103
// normalize the operands

src/trans-word-level/sequence.cpp

+2-3
Original file line numberDiff line numberDiff line change
@@ -378,8 +378,7 @@ sequence_matchest instantiate_sequence(
378378
else
379379
{
380380
// not a sequence, evaluate as state predicate
381-
auto obligations = property_obligations(expr, t, no_timeframes);
382-
auto conjunction = obligations.conjunction();
383-
return {{conjunction.first, conjunction.second}};
381+
auto instantiated = instantiate_property(expr, t, no_timeframes);
382+
return {{instantiated.first, instantiated.second}};
384383
}
385384
}

0 commit comments

Comments
 (0)