@@ -1143,7 +1143,7 @@ to_sva_sequence_property_expr_base(const exprt &expr)
11431143}
11441144
11451145inline sva_sequence_property_expr_baset &
1146- to_sva_sequence_property_base_expr (exprt &expr)
1146+ to_sva_sequence_property_expr_base (exprt &expr)
11471147{
11481148 sva_sequence_property_expr_baset::check (expr);
11491149 return static_cast <sva_sequence_property_expr_baset &>(expr);
@@ -1152,45 +1152,47 @@ to_sva_sequence_property_base_expr(exprt &expr)
11521152class sva_strong_exprt : public sva_sequence_property_expr_baset
11531153{
11541154public:
1155- sva_strong_exprt (exprt __op)
1156- : sva_sequence_property_expr_baset(ID_sva_strong , std::move(__op))
1155+ sva_strong_exprt (irep_idt __id, exprt __op)
1156+ : sva_sequence_property_expr_baset(__id , std::move(__op))
11571157 {
11581158 }
11591159};
11601160
11611161inline const sva_strong_exprt &to_sva_strong_expr (const exprt &expr)
11621162{
1163- PRECONDITION (expr.id () == ID_sva_strong);
1163+ PRECONDITION (
1164+ expr.id () == ID_sva_strong || expr.id () == ID_sva_implicit_strong);
11641165 sva_strong_exprt::check (expr);
11651166 return static_cast <const sva_strong_exprt &>(expr);
11661167}
11671168
11681169inline sva_strong_exprt &to_sva_strong_expr (exprt &expr)
11691170{
1170- PRECONDITION (expr.id () == ID_sva_strong);
1171+ PRECONDITION (
1172+ expr.id () == ID_sva_strong || expr.id () == ID_sva_implicit_strong);
11711173 sva_strong_exprt::check (expr);
11721174 return static_cast <sva_strong_exprt &>(expr);
11731175}
11741176
11751177class sva_weak_exprt : public sva_sequence_property_expr_baset
11761178{
11771179public:
1178- sva_weak_exprt (exprt __op)
1179- : sva_sequence_property_expr_baset(ID_sva_weak , std::move(__op))
1180+ sva_weak_exprt (irep_idt __id, exprt __op)
1181+ : sva_sequence_property_expr_baset(__id , std::move(__op))
11801182 {
11811183 }
11821184};
11831185
11841186inline const sva_weak_exprt &to_sva_weak_expr (const exprt &expr)
11851187{
1186- PRECONDITION (expr.id () == ID_sva_weak);
1188+ PRECONDITION (expr.id () == ID_sva_weak || expr. id () == ID_sva_implicit_weak );
11871189 sva_weak_exprt::check (expr);
11881190 return static_cast <const sva_weak_exprt &>(expr);
11891191}
11901192
11911193inline sva_weak_exprt &to_sva_weak_expr (exprt &expr)
11921194{
1193- PRECONDITION (expr.id () == ID_sva_weak);
1195+ PRECONDITION (expr.id () == ID_sva_weak || expr. id () == ID_sva_implicit_weak );
11941196 sva_weak_exprt::check (expr);
11951197 return static_cast <sva_weak_exprt &>(expr);
11961198}
@@ -1584,4 +1586,11 @@ to_sva_sequence_property_expr(exprt &expr)
15841586 return static_cast <sva_sequence_property_exprt &>(expr);
15851587}
15861588
1589+ // / SVA sequences can be interpreted as weak or strong
1590+ enum class sva_sequence_semanticst
1591+ {
1592+ WEAK,
1593+ STRONG
1594+ };
1595+
15871596#endif
0 commit comments