Inter-procedural Analysis Using CTL Model Checking
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current software development methods are time-consuming and costly, often revealing bugs only after product deployment, necessitating inefficient late-stage detection and assurance processes.
Innovation Solution
An inter-procedural checking method using computational tree logic (CTL) syntax to analyze source code by mapping functions into recursive Kripke structures, allowing for automated model checking to identify potential bugs across multiple functions and procedures.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of time
If traditional software development methods are used, then development time and cost are reduced in early stages, but bugs are only detected after product deployment causing time-consuming late-stage detection
Solution Approach 1:
The patent applies preliminary action by performing static analysis and model checking during the development phase before product deployment. The system automatically generates control flow graphs, maps them to Kripke structures, and verifies temporal logic properties early in the development process, preventing bugs from reaching production and eliminating the need for time-consuming late-stage detection.
2Reliability
If inter-procedural analysis is performed across multiple functions, then comprehensive bug detection is achieved, but analysis complexity increases significantly
Solution Approach 1:
The patent segments the analysis process into distinct modular components: control flow graph generation for each function, mapping to Kripke structures, temporal logic property specification, and model checking. This segmentation allows comprehensive inter-procedural analysis to be broken down into manageable steps that can be performed systematically across multiple functions without overwhelming complexity.
Solution Approach 2:
The patent introduces Kripke structures as an intermediary representation between the control flow graphs and temporal logic properties. This intermediary layer standardizes the transformation process and enables systematic verification of inter-procedural properties without directly managing the complexity of analyzing all function interactions simultaneously.
3Productivity
If automated model checking is implemented, then bug detection efficiency is improved, but tool complexity and setup requirements increase
Solution Approach 1:
The patent implements self-service by providing automated tools that automatically generate control flow graphs, construct Kripke structures, and perform model checking without requiring manual intervention. The system autonomously analyzes source code, specifies temporal logic properties, and verifies them, eliminating the need for complex manual setup and reducing tool complexity barriers while maintaining high detection efficiency.
Data Source
AI summary
This invention concerns inter-procedural analysis of computer programs. The need for inter-procedural analysis arises, for instance, where information is to be passed across the boundaries between functions; for example, by passing a pointer of variables to another function. The pointer needs to identify a valid memory location when used by a calling function. In one aspect the invention is a method and in another aspect the invention is a computer programmed to perform the method. The heart of the method involves the use of computational tree logic (CTL) model checking each sub-structure of the code to iteratively check alternately whether guarantees associated with the code are true, false or undetermined for each external assumption, and whether the internal assumptions are consistent with the guarantees of the caller sub-structures.


