Static Analysis for Sound Interleaving Pruning in Model Checking

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Multithreaded programming introduces concurrency bugs and scalability issues in model checking due to exponential growth in processing time and power requirements, making it difficult to verify concurrent software effectively.

Innovation Solution

A hybrid approach that performs static analysis to identify redundant paths and prune the search space by generating an instrumented version of the program with locks, reducing the state space and processing time while maintaining accuracy through static instrumentation and enumerative model checking.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If DPOR techniques are used to verify concurrent software, then soundness and completeness are ensured, but processing time and power requirements grow exponentially

Engineering Contradiction:
Improvesoundness and completenessVSAvoidprocessing time and power
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The patent performs static analysis before model checking to pre-identify invariants and generate pruning constraints. This preliminary action reduces the state space before enumerative model checking begins, preventing exponential growth in processing time while preserving soundness through mathematically guaranteed invariant properties

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent extracts and removes redundant interleavings from the model checking process by identifying invariants that hold across multiple thread executions. By taking out these redundant paths through static analysis and constraint generation, the exponential state space explosion is prevented while maintaining verification completeness

Inventive Principle:
Principle #2Taking out (Extraction)

2Reliability

If DPOR techniques are applied to real-life software, then concurrency bugs can be detected, but the exponential cost makes it difficult to scale

Engineering Contradiction:
Improveconcurrency bug detectionVSAvoidscalability
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

Static analysis is performed ahead of model checking to identify invariants and generate pruning constraints that reduce the search space. This preliminary processing enables scalable verification of real-life software by preventing exponential state space growth before it occurs during model checking

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an intermediary static analysis phase that bridges the gap between raw source code and model checking. This intermediary generates invariants and constraints that mediate between the original program and the model checker, enabling scalable verification without sacrificing bug detection capability

Inventive Principle:
Principle #24Intermediary (Mediator)

3Loss of time

If static analysis is performed to identify invariants, then redundant interleavings can be pruned, but additional processing overhead is introduced

Engineering Contradiction:
Improvemodel checking timeVSAvoidstatic analysis overhead
Core Design Contradiction:
Loss of timeVSUse of energy by moving object

Solution Approach 1:

Static analysis is performed as a preliminary step to identify invariants and generate pruning constraints before model checking. Although this introduces initial overhead, it dramatically reduces the subsequent model checking time by eliminating redundant interleavings, resulting in net time savings for complex concurrent programs

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The static analysis phase quickly identifies and skips over redundant interleavings by generating pruning constraints based on invariants. This allows the model checker to rush through only the necessary state space, avoiding wasted computation on equivalent executions and reducing overall processing time

Inventive Principle:
Principle #21Skipping (Rushing through)

Data Source

PatentUS20240202098A1Static analysis for sound interleaving pruning in enumerative model checking
Publication Date: 2024.06.20 TECH INNOVATION INST SOLE PROPRIETORSHIP LLC
  • US20240202098A1 patent drawing
  • US20240202098A1 patent drawing
  • US20240202098A1 patent drawing

AI summary

An example embodiment includes a method for model checking a program. The method includes performing, by a processor, static analysis of source code of the program to inductively determine at least one invariant present in interleavings of by the program, and performing, by the processor, static instrumentation of the source code of program to generate an instrumented equivalent version of the program. The instrumented equivalent version of the program comprises locks to avoid execution of a subset of the interleavings corresponding to the at least one invariant. The instrumented equivalent version of the program is configured for enumerative model checking that avoids execution of the subset of the interleavings.