Outer Loop Abstraction for Verifying Nested Reactive Loops
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing verification techniques for reactive systems with nested loops suffer from inefficiencies due to complex loop abstractions and resource exhaustion, as they do not perform loop optimization before abstraction, leading to increased complexity and resource consumption.
Innovation Solution
A method and system for performing outer loop abstraction (OLA) that simplifies nested loops by identifying and abstracting the outer loop based on property assertions, allowing selective analysis and reducing verification time.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If mathematical induction is used to perform loop abstraction for verifying reactive systems with nested loops, then verification can be performed on nested loop structures, but the abstraction becomes increasingly complex as code size and nesting depth increase, causing the verifier to run out of resources
Solution Approach 1:
The patent segments the nested loop verification problem by treating the outer loop and inner loop separately. The outer loop is analyzed for property assertions, and only relevant iterations are selected for inner loop analysis. This segmentation prevents the exponential complexity growth that would occur if all nested iterations were analyzed together, thereby resolving the contradiction between verifying nested loops and managing abstraction complexity.
Solution Approach 2:
The patent applies partial action by selectively analyzing only certain iterations of the outer loop rather than all iterations. The property-directed approach identifies and focuses on iterations that are relevant to the verification property, ignoring others. This partial analysis reduces the overall complexity while maintaining verification effectiveness, resolving the resource exhaustion problem.
2Productivity
If standard optimizations are applied after loop abstraction, then code optimization can be achieved, but loop abstraction changes the loop behavior making standard optimizations inapplicable
Solution Approach 1:
The patent performs loop optimization before loop abstraction, not after. By optimizing the loop structure first (e.g., removing redundant iterations, simplifying loop conditions), and then applying abstraction, the patent maintains the ability to apply standard optimizations while avoiding the problem of optimizations being inapplicable to abstracted loops. This preliminary action resolves the contradiction between achieving optimization and preserving loop behavior integrity.
3Reliability
If the outer loop is represented thrice in the induction (base case, hypothesis, and induction check), then complete verification coverage is achieved, but the code size and verification complexity increase significantly
Solution Approach 1:
The patent extracts and eliminates redundant representations of the outer loop from the verification process. Instead of fully representing the outer loop three times in the induction, the property-directed approach identifies that certain representations are unnecessary for the given property. By taking out these redundant elements, the patent maintains verification coverage while significantly reducing code size and complexity.
Solution Approach 2:
The patent discards redundant loop representations that do not contribute to the verification property, and recovers only the essential information needed for verification. This selective discarding and recovering approach reduces the quantity of code and data structures while preserving the necessary verification coverage, resolving the contradiction between reliability and quantity.
Data Source
Figure 1~2
Figure 3
Figure 4A
AI summary
Reactive systems commonly feature an outer infinite loop that captures environmental input and according to the inputs decides the system's response. The outer infinite loop implies that almost every reactive system contains nested loops. Existing verification techniques, such as model checking and loop abstraction methods, often struggle in terms of accuracy and efficiency in the presence of nested loops. Present disclosure provides a method and a system for performing outer loop abstraction for verification of reactive systems. The system first checks whether code in outer loop can be executed before the outer loop. Then, the system performs optimization of the outer loop. Thereafter, the system abstracts outer loop which infinitely read and process environmental input. Further, the system transforms the input code to obtain outer loop abstracted code which is then passed on to an industrial verifier for verification of the reactive system.