Static Analysis Verification via Centralized Assumption Coordination

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current static analysis procedures for verifying properties of critical computer programs are limited by approximations that may omit errors or falsely indicate issues, and they often cannot account for all aspects of the source code, particularly due to incomplete formal modeling, leading to partial confidence in the program's dependability and security.

Innovation Solution

A method and system utilizing a combination of forward and backward analyzers with a centralizer module to iteratively verify assumptions about property validity at program points, allowing cooperation among multiple analyzers to ensure comprehensive analysis and reduce unverified assumptions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If static analysis procedures use formal modeling of the source code language, then analysis guarantees about program behavior are provided, but the modeling may not take into account certain aspects of the language, making the analysis incapable of processing certain parts of the source program

Engineering Contradiction:
Improveanalysis guaranteesVSAvoidprocessing capability
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The analysis system is divided into multiple independent analyzers, each specializing in verifying specific types of properties at program points. This segmentation allows each analyzer to focus on particular language aspects while the collective system handles the full spectrum of source code analysis requirements.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system creates a universal analysis framework where multiple analyzers with different specializations work together through a central coordinator. This multi-functional architecture enables the system to process diverse language aspects that individual formal models cannot handle alone.

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Reliability

If static analysis procedures proceed by approximations to provide guarantees about program behavior, then analysis can be performed, but certain errors may be omitted or false errors may be indicated

Engineering Contradiction:
Improveanalysis feasibilityVSAvoiderror detection accuracy
Core Design Contradiction:
ReliabilityVSMeasurement precision

Solution Approach 1:

Multiple analyzers with different approximation strategies are merged into a unified system. By combining their results through a central coordinator, the system achieves more precise error detection than individual analyzers could accomplish alone, reducing both false positives and missed errors.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The system implements feedback mechanisms where analyzers exchange information about their findings and assumptions. This feedback loop allows the system to refine its analysis by cross-validating results and adjusting approximations based on evidence from multiple analysis perspectives.

Inventive Principle:
Principle #23Feedback

3Reliability

If multiple analyzers are used to verify properties at program points, then comprehensive analysis is achieved, but the complexity of coordinating and managing multiple analyzers increases

Engineering Contradiction:
Improveverification completenessVSAvoidsystem coordination complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

A central coordinator module acts as an intermediary between multiple analyzers, managing their coordination and communication. This mediator handles the complexity of orchestrating multiple analysis operations, allowing individual analyzers to remain relatively simple while achieving comprehensive verification through their coordinated interaction.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS8352918B2Method and system for verifying properties of a computer program
Publication Date: 2013.01.08 COMMISSARIAT A LENERGIE ATOMIQUE ET AUX ENERGIES ALTERNATIVES
  • US8352918B2 patent drawing
  • US8352918B2 patent drawing
  • US8352918B2 patent drawing

AI summary

A method and a system for verifying properties of a computer program is provided, pertaining to the validity of properties at program points by means of at least one forward analyser and one backward analyser. For each property, in an issuing phase an analyser issues to a centralizer module an assumption on the validity of the property at a point of the program, the centralizer module storing the assumption in a database with an attribute indicating the original analyser and a status indicating that the assumption needs to be verified; in a phase of verifying the assumption, stored in the database, a test analyser is selected to analyse the assumption in cooperation with the other analysers, the centralizer module determining analysers able to cooperate. The verification phase is iterated until all assumptions stored in the base have been analysed by at least one test analyser, a verified assumption being marked as valid.