IDL-Based Correctness Verification for Software and Embedded Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Correctness verification of complex software and embedded systems is challenging, especially in edge cases, and existing domain-specific languages and programming environments are not universally applicable.

Innovation Solution

Encoding correctness contracts, constraints, and bounds information into Interface Definition Languages (IDLs) to verify properties like functional safety, security, and resource utilization, using tools like SAT solvers and SMT solvers for dynamic verification.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If correctness verification is performed on complex software and embedded systems using traditional methods, then verification completeness can be achieved, but verification time increases exponentially

Engineering Contradiction:
Improveverification completenessVSAvoidverification time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent segments the verification process into two distinct phases: (1) pre-computation phase where the verification engine analyzes system models and generates verification conditions before runtime, and (2) runtime phase where only the generated verification conditions are checked against actual system behavior. This segmentation transforms the exponentially complex full verification task into a manageable pre-computation step followed by efficient runtime checks.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The verification engine performs preliminary analysis offline to generate verification conditions, invariants, and constraints before the system runs. This preliminary action includes analyzing system architecture, identifying critical properties, and formulating verification requirements. By doing this work beforehand, the runtime verification overhead is dramatically reduced while maintaining comprehensive verification coverage.

Inventive Principle:
Principle #10Preliminary action

2Measurement precision

If domain-specific languages are used to encode correctness constraints, then verification precision is improved, but language universality deteriorates

Engineering Contradiction:
Improveverification precisionVSAvoidlanguage universality
Core Design Contradiction:
Measurement precisionVSAdaptability or versatility

Solution Approach 1:

The patent creates a universal verification framework that can handle multiple domain-specific languages and system types (software, embedded systems, hardware) through a common architecture. The verification engine accepts diverse system models in different languages, translates them into a unified internal representation, and applies the same verification techniques across all domains, making the tool universally applicable while maintaining domain-specific precision.

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

Solution Approach 2:

The verification engine acts as an intermediary layer between domain-specific system models and the verification process. It provides language-agnostic interfaces that can ingest models from different domains, translates them into a common intermediate representation, and applies verification techniques uniformly. This intermediary approach preserves the precision of domain-specific languages while achieving universality across different system types.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If runtime verification is implemented for all system properties, then property coverage is improved, but system performance overhead increases

Engineering Contradiction:
Improveproperty coverageVSAvoidsystem performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The framework implements selective runtime verification by identifying and verifying only the most critical system properties that have the greatest impact on correctness. Rather than verifying all possible properties, the verification engine prioritizes safety-critical and security-relevant properties, performing partial verification that provides sufficient assurance while minimizing performance overhead. This selective approach verifies excessive properties only when necessary.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentEP4250091B1Correctness verification system, method, device, and program
Publication Date: 2025.10.15 WOVEN BY TOYOTA INC
  • EP4250091B1 patent drawingFigure 1
  • EP4250091B1 patent drawingFigure 2
  • EP4250091B1 patent drawingFigure 3

AI summary

A method for determining correctness of properties in components of a system, executed by an electronic device, the method comprising: setting known properties of the components of the system; dynamically determining unknown properties of the components of the system, wherein the dynamically determining comprises: defining one or more pre-conditions for an operation, wherein the one or more pre-conditions must be satisfied for the operation to be performed correctly; defining one or more post-conditions for the operation, wherein the one or more post-conditions must be satisfied after the operation being performed correctly; and identifying boundaries of the unknown properties of the components of the system through testing; verifying the known properties of the components of the system and the unknown properties of the components of the system; and updating Interface Definition Language (IDL) program code to reflect the known properties of the components of the system and unknown properties of the components of the system.