1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
// Copyright 2024-2025 Cornell University // released under BSD 3-Clause License // author: Kevin Laeufer <laeufer@cornell.edu> use crate::expr::*; use crate::mc::ModelCheckResult; use crate::mc::bmc::start_bmc_or_pdr; use crate::smt::*; use crate::system::TransitionSystem; /// Runs PDR pub fn pdr( ctx: &mut Context, smt_ctx: &mut impl SolverContext, sys: &TransitionSystem, ) -> Result<ModelCheckResult> { let _enc = match start_bmc_or_pdr(ctx, smt_ctx, sys)? { (r, None) => return Ok(r), (_, Some(enc)) => enc, }; Ok(ModelCheckResult::Unknown) }