Counterexample Generation
ConceptCounterexample generation is the activity of turning the satisfiable result of checking a negated property into a concrete artifact that witnesses how the property can be violated. In the UCLID5 setting, an SMT solver's satisfying assignment is converted into a counterexample that diagnoses design, modeling, or specification problems. In directed micro-architectural test generation and ADL-driven functional test generation for microprocessors, the same mechanism is repurposed so that counterexamples become concrete test programs (instruction sequences), built by decomposing properties across partitioned modules and merging the partial counterexamples back together. In stochastic and theorem-proving contexts, the notion is extended to collections of violating paths with sufficient probability and to example-driven diagnosis of failed conjectures.
WIKI
Definition
Counterexample generation is the activity of turning the satisfiable result of checking a negated property into a concrete artifact that witnesses how the property can be violated. The cited evidence describes several distinct settings in which this notion appears.
In the UCLID5 setting, the workflow checks a verification condition by asking an SMT solver to satisfy the negation of the desired property; when the solver returns that the formula is satisfiable, it supplies concrete values for all data elements in the formula, including uninterpreted functions, and UCLID5 uses those values to construct a counterexample: a sequence of actions that could occur in the model and violate a verification condition. [counterexample-generation-from-satisfiability]