IDL-Based Correctness Verification for Software and Embedded Systems
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
2Measurement precision
If domain-specific languages are used to encode correctness constraints, then verification precision is improved, but language universality deteriorates
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.
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.
3Reliability
If runtime verification is implemented for all system properties, then property coverage is improved, but system performance overhead increases
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.
Data Source
Figure 1
Figure 2
Figure 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.