Symbolic Bound Computation for Procedure Control Locations

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional methods for estimating the number of times a control location executes in a program are imprecise and conservative, leading to inadequate resource bounding in computing devices, particularly in real-time systems and low-power environments.

Innovation Solution

The development of a system that computes a worst-case symbolic bound on the number of visits to a control location by generating a disjunctive transition system, using invariants and backward symbolic engines to translate inputs, and employing ranking functions to determine precise bounds on resource usage and data perturbation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If conventional loop bound computation techniques are used to estimate the number of times a control location executes, then the computation is simpler and faster, but the precision and accuracy of the bound is insufficient and overly conservative

Engineering Contradiction:
Improveprecision of control location boundVSAvoidcomplexity of bound computation system
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent segments the bound computation process into distinct components: (1) computing a disjunctive transition system T for the control location, (2) computing a bound for the transition system, and (3) translating the bound into terms of procedure inputs. This segmentation allows each component to be optimized independently, achieving precise bounds while managing system complexity through modular architecture.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a disjunctive transition system as an intermediary representation between the original program and the final bound. This transition system serves as a mediator that captures the control flow and variable updates in a structured form, enabling precise bound computation while maintaining a clear separation between program analysis and bound translation.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If precise symbolic bounds are computed using disjunctive transition systems and ranking functions, then resource bounding accuracy improves, but the computational complexity and analysis time increase

Engineering Contradiction:
Improvereliability of resource boundVSAvoidtime for bound computation
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent performs preliminary computation of the disjunctive transition system and its invariants before computing the final bound. By pre-processing the program to establish the transition system structure and variable relationships upfront, the subsequent bound computation using ranking functions becomes more efficient, reducing overall analysis time while maintaining reliability.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent replaces traditional mechanical loop bound computation methods with a symbolic approach using disjunctive transition systems and ranking functions. This substitution enables automated, systematic computation of precise bounds without manual intervention, improving reliability while the automation helps manage computational time through algorithmic efficiency.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Data Source

PatentUS8752029B2Computing a symbolic bound for a procedure
Publication Date: 2014.06.10 SURFATECH
  • US8752029B2 patent drawing
  • US8752029B2 patent drawing
  • US8752029B2 patent drawing

AI summary

A system that facilitates computing a symbolic bound with respect to a procedure that is executable by a processor on a computing device is described herein. The system includes a transition system generator component that receives the procedure and computes a disjunctive transition system for a control location in the procedure. A compute bound component computes a bound for the transition system, wherein the bound is expressed in terms of inputs to the transition system. The system further includes a translator component that translates the bound computed by the compute bound component such that the bound is expressed in terms of inputs to the procedure.