@@ -519,6 +519,11 @@ static obligationst property_obligations_rec(
519519 return property_obligations_rec (
520520 op_negated_opt.value (), current, no_timeframes);
521521 }
522+ else if (is_SVA_sequence (op))
523+ {
524+ return obligationst{
525+ instantiate_property (property_expr, current, no_timeframes)};
526+ }
522527 else if (is_temporal_operator (op))
523528 {
524529 throw ebmc_errort () << " failed to make NNF for " << op.id ();
@@ -530,6 +535,23 @@ static obligationst property_obligations_rec(
530535 instantiate_property (property_expr, current, no_timeframes)};
531536 }
532537 }
538+ else if (property_expr.id () == ID_sva_implies)
539+ {
540+ // We need NNF, hence we go via implies_exprt.
541+ // Note that this is not an SVA sequence operator.
542+ auto &sva_implies_expr = to_sva_implies_expr (property_expr);
543+ auto implies_expr =
544+ implies_exprt{sva_implies_expr.lhs (), sva_implies_expr.rhs ()};
545+ return property_obligations_rec (implies_expr, current, no_timeframes);
546+ }
547+ else if (property_expr.id () == ID_sva_iff)
548+ {
549+ // We need NNF, hence we go via equal_exprt.
550+ // Note that this is not an SVA sequence operator.
551+ auto &sva_iff_expr = to_sva_iff_expr (property_expr);
552+ auto equal_expr = equal_exprt{sva_iff_expr.lhs (), sva_iff_expr.rhs ()};
553+ return property_obligations_rec (equal_expr, current, no_timeframes);
554+ }
533555 else
534556 {
535557 return obligationst{
@@ -549,6 +571,26 @@ Function: property_obligations
549571
550572\*******************************************************************/
551573
574+ obligationst property_obligations (
575+ const exprt &property_expr,
576+ const mp_integer &t,
577+ const mp_integer &no_timeframes)
578+ {
579+ return property_obligations_rec (property_expr, t, no_timeframes);
580+ }
581+
582+ /* ******************************************************************\
583+
584+ Function: property_obligations
585+
586+ Inputs:
587+
588+ Outputs:
589+
590+ Purpose:
591+
592+ \*******************************************************************/
593+
552594obligationst property_obligations (
553595 const exprt &property_expr,
554596 const mp_integer &no_timeframes)
0 commit comments