Bounded Model Checking
ConceptBounded Model Checking (BMC) is a hardware and software formal verification technique that restricts analysis to a fixed number of execution steps. It reduces the model-checking problem to a sequence of satisfiability queries discharged to SAT, QBF, or SMT solvers, and is widely used in hardware verification (Yosys-SMTBMC, SymbiYosys), in software model checkers such as CBMC, and in fault-injection and SEU reliability frameworks such as µArchiFI and the Ibex-based evaluation of Single Event Upsets. BMC mitigates the state-space explosion that limits exhaustive model checking, can effectively reduce the state space and scale to large industrial designs, and although it only covers a bounded trace, completeness can be guaranteed with an appropriate threshold so that 'Undetermined' results are often acceptable.
WIKI
Overview
Bounded model checking (BMC) is a hardware and software verification technique that limits its analysis to a fixed number of execution steps. Rather than exploring the full reachable state space, BMC checks whether any counterexample to a property exists within a finite bound [arxiv:0710.4629]. In the µArchiFI fault-injection workflow, the BMC bound k is fixed according to the length of the longest program execution trace plus a small safety margin (e.g., a 10-percent increment) to capture possible modifications in the control flow induced by faults [1].
The result of a BMC run can be one of three outcomes: Proven (the assertion is fully proved), Failure (the model checker produces a counterexample), or Undetermined / Bounded Proven (the tool cannot prove or disprove the assertion within the bounded trace or time) [2]. When a counterexample is produced by µArchiFI's external model checker, a VCD file reports precisely where the fault is injected and when the attacker's goal is reached, although understanding the propagation of the fault and its consequences still requires further analysis [3].
NEIGHBORHOOD
No graph connections found for this entity yet. It may appear in future ingestion runs.
explore full graph →