under-approximation & over-approximation

Under-approximation and over-approximation are concepts often used in the context of formal methods, a field that applies rigorous mathematical reasoning to systems, such as computer programs, to ensure their correctness. Both of these techniques are used to simplify complex systems so that they can be analyzed more easily.

  1. Under-approximation: This involves reducing the scope of the system or model to a smaller set that excludes some behaviors. It essentially considers fewer behaviors than the system is capable of. The goal is to ensure that any properties proven about the under-approximation also hold for the actual system. However, there might be behaviors in the real system that are not captured in the under-approximation.

  2. Over-approximation: This, conversely, extends the system or model to a larger set that includes additional, potentially non-existent behaviors. It considers more behaviors than the system might actually exhibit. While this can lead to false positives (detecting errors that don’t exist in the real system), any error found in the over-approximation is guaranteed to exist in the actual system.

These methods are frequently used in software verification, model checking, abstract interpretation, and static analysis, where you want to reason about a complex system but need to balance the trade-off between accuracy and computational complexity.

你可能感兴趣的:(软件分析,软件分析)