Program Verification via Path Logic and Tree Structures

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current methods for securing complex programs, such as those in critical systems like rocket control, face challenges due to their complexity, leading to difficulties in formal verification and high resource consumption, as existing techniques based on mathematical logic struggle to efficiently prove program properties, especially in systems where security and correctness are paramount.

Innovation Solution

The method employs path logic within the program to reduce complexity by using evolution rules, exit points, and branchings to create a tree structure, allowing for the propagation of constraints and transitive closure to prove program properties, and establishes sufficiency relationships between local properties of different programs to facilitate secure execution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If mathematical logic-based formal verification methods are used to secure complex programs, then program correctness and security are improved, but the complexity and resource consumption of the verification process increases significantly

Engineering Contradiction:
Improveprogram correctnessVSAvoidverification process complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments the complex program into multiple sub-programs or modules that can be verified independently. Each sub-program is assigned a specific verification task, allowing the overall verification process to be divided into manageable parts. This reduces the complexity of verifying the entire program at once while maintaining comprehensive security coverage.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces intermediary verification components or abstraction layers that mediate between the complex program and the formal verification system. These intermediaries simplify the representation of program behavior, making it more amenable to logical analysis while preserving essential security properties. The intermediaries act as translators that convert complex program logic into verifiable forms.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If mathematical logic-based formal verification methods are used to secure complex programs, then program correctness and security are improved, but the time and resources required for verification increase

Engineering Contradiction:
Improveprogram correctnessVSAvoidverification time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent performs preliminary analysis and preparation of program code before formal verification. This includes automated code parsing, generation of verification-ready intermediate representations, and pre-computation of program properties. By preparing the program in advance, the actual formal verification process requires less time and computational resources during the critical verification phase.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent applies formal verification selectively to critical security-relevant parts of the program rather than attempting to verify the entire program in full detail. This partial verification approach focuses resources on proving correctness of essential security properties while accepting that less critical portions may receive less rigorous verification, thereby reducing overall verification time while maintaining adequate security guarantees.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentEP2962206B1Method for securing a program
Publication Date: 2020.07.15 BOLIGNANO DOMINIQUE
  • EP2962206B1 patent drawingFigure 1~2

AI summary

A method for securing a first program, the first program comprising a finite number of program points and evolution rules associated to program points and defining the passage of a program point to another, comprising: • a definition of a plurality of exit cases and, when a second program is used in the definition of the first program, for each exit case, definition of a branching toward a specific program point of the first program or a declaration of branching impossibility; and • a definition of a set of properties to be proven, each associated with one of the constitutive elements of the first program, said set of properties comprising the branching impossibility as a particular property; • establishment of the formal proof of the set of properties.