Software Verification via Algebraic Homomorphism

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current methods for analyzing and verifying software for safety and security are inefficient due to the exponential number of execution behaviors, which makes it impossible to test all behaviors, leading to missed errors and high computational costs, and lack holistic understanding and human-in-loop automation capabilities.

Innovation Solution

A computer-implemented method that computes a compact representation of execution behaviors by assigning unknowns to program statements, setting up and solving linear equations, and applying algebraic homomorphisms to reduce the representation to relevant behaviors, enabling efficient verification of software properties.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If software testing is performed by running the program under various conditions, then some execution behaviors can be analyzed, but only a very small fraction of execution behaviors can be tested and errors are missed

Engineering Contradiction:
Improvecoverage of execution behaviorsVSAvoidefficiency of analysis
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent creates symbolic copies of execution behaviors through algebraic expressions rather than actually executing each behavior. The compact representation stores symbolic sequences that represent entire classes of execution behaviors, allowing analysis of all behaviors without running each one individually.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent transforms execution behaviors from concrete runtime instances to algebraic parameterized representations. By changing the representation from specific execution traces to symbolic expressions with variables, the system can manipulate and analyze all possible behaviors simultaneously through algebraic operations.

Inventive Principle:
Principle #35Parameter changes

2Measurement precision

If static analysis is performed with improved accuracy of approximations, then verification accuracy increases, but the size of computation required grows enormously making verification impossible

Engineering Contradiction:
Improveaccuracy of verificationVSAvoidcomputation size
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent changes the computational parameters by using algebraic expressions with symbolic variables instead of concrete values. This allows the system to maintain high verification accuracy while keeping computation size manageable through algebraic manipulation rather than exhaustive enumeration.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent extracts only the essential algebraic properties needed for verification from the full execution behavior space. By taking out and representing only the critical control flow and data flow relationships in algebraic form, the system achieves accurate verification without the computational burden of complete behavior enumeration.

Inventive Principle:
Principle #2Taking out (Extraction)

3Adaptability or versatility

If the number of lines of code increases in software systems, then software functionality improves, but the number of execution behaviors becomes exponential making analysis impossible

Engineering Contradiction:
Improvesoftware functionalityVSAvoidnumber of execution behaviors
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent applies parameter changes by representing execution behaviors algebraically with symbolic parameters instead of enumerating concrete behaviors. This transformation allows the system to handle exponential behavior spaces by working with compact algebraic representations that scale linearly with code size rather than exponentially.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent creates symbolic copies that represent entire families of execution behaviors. Instead of dealing with each individual behavior, the system uses algebraic expressions that serve as compressed representations, allowing analysis of large software systems with millions of lines of code.

Inventive Principle:
Principle #26Copying

4Reliability

If all execution behaviors are enumerated for verification, then complete coverage is achieved, but the computation becomes impossible due to exponential size

Engineering Contradiction:
Improvecompleteness of verificationVSAvoidfeasibility of computation
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent uses symbolic copying to represent all execution behaviors simultaneously through algebraic expressions. Each algebraic expression serves as a compressed copy that encodes entire classes of behaviors, achieving complete verification coverage without the computational infeasibility of explicit enumeration.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS11669613B2Method for analyzing and verifying software for safety and security
Publication Date: 2023.06.06 ENSOFT CORP
  • US11669613B2 patent drawing
  • US11669613B2 patent drawing
  • US11669613B2 patent drawing

AI summary

A computer implemented method for analyzing and verifying software for safety and security. A software program comprising a sequence of program statements to be executed is provided. A compact representation of the program is computed, and the subset of program statements that are relevant to a property of the software to be verified is identified. A homomorphism that maps non-relevant program statements to an identity is computed, and the property is verified using the homomorphism.