Interpolation-Based Path Reduction in Software Model Checking
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In software model checking, large-scale systems face the state explosion problem, leading to excessive memory consumption and verification time, particularly due to the need for repeated refinements of abstract models and the path explosion problem in Dynamic Symbolic Execution.
Innovation Solution
An interpolation-based path reduction method is introduced, which involves generating and extending Control Flow Graphs (CFGs) with safety and error interpolations, using Craig interpolation to update interpolants, and optimizing traversal by adding attributes like R, S, and E interpolations to nodes and edges, and the W attribute to edges for prioritizing traversal.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If abstract model verification is performed on large-scale systems, then verification completeness is improved, but state space explosion occurs leading to excessive memory consumption and verification time
Solution Approach 1:
The patent segments the verification process into iterative cycles of abstraction and refinement. The state space is divided into abstract models that can be verified separately, with counterexamples guiding selective refinement of specific portions rather than verifying the entire state space at once.
Solution Approach 2:
The patent performs preliminary abstraction to create simplified models before verification. By pre-processing the system into an abstract representation, the verification process operates on a reduced state space, avoiding the need to explore the complete original state space.
2Measurement precision
If repeated refinements of abstract models are performed, then verification accuracy is improved, but verification time increases significantly
Solution Approach 1:
The patent applies partial refinement by selectively refining only those portions of the abstract model that are implicated by counterexamples, rather than performing exhaustive refinement of the entire model. This partial action approach maintains verification accuracy for critical paths while avoiding unnecessary refinement overhead.
Solution Approach 2:
The patent implements feedback loops where counterexamples from verification attempts guide subsequent refinement decisions. The feedback mechanism ensures that refinement efforts are directed toward areas that actually improve verification accuracy, avoiding wasted time on already-verified portions.
3Reliability
If all branches in Dynamic Symbolic Execution are explored, then path coverage is improved, but path explosion occurs
Solution Approach 1:
The patent performs preliminary interpolation analysis to identify infeasible paths before full exploration. By pre-computing interpolants that prove certain paths cannot reach error locations, the system avoids exploring these paths entirely, reducing the number of paths that need to be analyzed while maintaining coverage of all feasible paths.
4Quantity of substance
If interpolation analysis is performed to prune infeasible paths, then path explosion is alleviated, but computational overhead for interpolation computation increases
Solution Approach 1:
The patent performs interpolation computation partially, focusing only on branch points that are relevant to reaching error locations. Rather than computing interpolants for all branches in the program, the system selectively applies interpolation analysis where it is most needed, reducing overall computational overhead while maintaining effectiveness in pruning infeasible paths.
Data Source
AI summary
A method for model checking path reduction based on interpolation comprises: reading a C program, performing grammatical and semantic analysis on the C program, and extracting CFG from an abstract syntax tree; adding safety (S) interpolation and error (E) interpolation to the CFG and extending the CFG; in a process of generating ARG according to the CFG, determining, in each state, whether the safety interpolation and the error interpolation are implied by current path formula. The method improves the verification efficiency by computing the S interpolation and the E interpolation, which makes the algorithm of the model checking a better use in large-scale programs. The S interpolation can be used to avoid the unnecessary traversal, greatly reducing the number of ARG state. The E interpolation can be used to quickly determine whether there is a true counterexample in the program, accelerating the program's verification and improving the efficiency.


