@@ -86,9 +86,13 @@ exprt normalize_pre_sva_overlapped_implication(
8686exprt normalize_pre_sva_non_overlapped_implication (
8787  sva_non_overlapped_implication_exprt expr)
8888{
89-   //  Same as a->nexttime  b if lhs is not a sequence.
89+   //  Same as a->always[1:1]  b if lhs is not a sequence.
9090  if (!is_SVA_sequence (expr.lhs ()))
91-     return  or_exprt{not_exprt{expr.lhs ()}, sva_nexttime_exprt{expr.rhs ()}};
91+   {
92+     auto  one = natural_typet{}.one_expr ();
93+     return  or_exprt{
94+       not_exprt{expr.lhs ()}, sva_ranged_always_exprt{one, one, expr.rhs ()}};
95+   }
9296  else 
9397    return  std::move (expr);
9498}
@@ -178,7 +182,7 @@ exprt normalize_property(exprt expr)
178182  else  if (expr.id () == ID_sva_s_nexttime)
179183  {
180184    auto  one = natural_typet{}.one_expr ();
181-     expr = sva_ranged_always_exprt {one, one, to_sva_s_nexttime_expr (expr).op ()};
185+     expr = sva_s_always_exprt {one, one, to_sva_s_nexttime_expr (expr).op ()};
182186  }
183187  else  if (expr.id () == ID_sva_indexed_nexttime)
184188  {
@@ -193,11 +197,18 @@ exprt normalize_property(exprt expr)
193197      nexttime_expr.index (), nexttime_expr.index (), nexttime_expr.op ()};
194198  }
195199  else  if (expr.id () == ID_sva_cycle_delay)
200+   {
196201    expr = normalize_pre_sva_cycle_delay (to_sva_cycle_delay_expr (expr));
202+   }
197203  else  if (expr.id () == ID_sva_cycle_delay_plus)
198-     expr = F_exprt{X_exprt{to_sva_cycle_delay_plus_expr (expr).op ()}};
204+   {
205+     expr = sva_s_eventually_exprt{
206+       sva_s_nexttime_exprt{to_sva_cycle_delay_plus_expr (expr).op ()}};
207+   }
199208  else  if (expr.id () == ID_sva_cycle_delay_star)
200-     expr = F_exprt{to_sva_cycle_delay_star_expr (expr).op ()};
209+   {
210+     expr = sva_s_eventually_exprt{to_sva_cycle_delay_star_expr (expr).op ()};
211+   }
201212  else  if (expr.id () == ID_sva_sequence_concatenation)
202213  {
203214    auto  &sequence_concatenation = to_sva_sequence_concatenation_expr (expr);
0 commit comments