SMT Solver Handling Non-Linear Functions via Uninterpreted Symbols

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current SMT solvers are unable to properly handle non-linear functions, making it difficult to compute results for configuration models that include trigonometric functions, leading to overburden and inability to derive valid configurations.

Innovation Solution

Integration of uninterpreted function symbols into SMT solvers, allowing non-linear functions to be represented and processed by using external applications to validate input/output pairs and update constraints, thereby enabling the computation of valid configurations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If SMT solvers attempt to handle non-linear functions directly, then measurement precision is improved, but device complexity increases and the solver becomes overburdened

Engineering Contradiction:
Improvecomputation accuracy for non-linear functionsVSAvoidsolver complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent introduces uninterpreted function symbols as intermediaries between the SMT solver and non-linear functions. The solver works with symbolic representations (uninterpreted functions) rather than directly processing complex non-linear mathematical expressions. External applications serve as mediators that evaluate these symbolic functions and provide concrete input-output pairs, allowing the solver to maintain simplicity while achieving precise computation through the intermediary layer.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If the configuration model includes non-linear functions, then adaptability is improved, but productivity decreases due to inability to compute results

Engineering Contradiction:
Improvemodel flexibilityVSAvoidcomputation speed
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent segments the computation process into distinct phases: (1) The SMT solver handles symbolic manipulation and constraint satisfaction using uninterpreted function symbols, (2) External applications handle the evaluation of non-linear functions for specific input values. This segmentation allows the configuration model to maintain high adaptability with non-linear functions while recovering productivity by distributing computational tasks to specialized components that can process them efficiently.

Inventive Principle:
Principle #1Segmentation

3Measurement precision

If manual comparison of configuration models is performed, then measurement precision is maintained, but loss of time increases

Engineering Contradiction:
Improvecomparison accuracyVSAvoidcomparison time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent uses uninterpreted function symbols as symbolic copies or abstractions of complex non-linear functions. Instead of manually comparing actual non-linear function implementations (which is time-consuming), the system works with simplified symbolic representations that capture the essential structure and relationships. The SMT solver can efficiently compare and reason about these symbolic copies, maintaining measurement precision while dramatically reducing the time required for configuration model comparison.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS11055448B2Systems and methods for SMT processes using uninterpreted function symbols
Publication Date: 2021.07.06 SIEMENS INDUSTRY SOFTWARE INC
  • US11055448B2 patent drawing
  • US11055448B2 patent drawing
  • US11055448B2 patent drawing

AI summary

Systems and methods for SMT processes using uninterpreted function symbols. A method includes receiving a configuration model. The method includes computing a variant for the configuration model that includes a non-linear function. The method includes identifying input/output pairs in the non-linear function of the variant. The method includes executing a process on an external application for each input/output pair to produce an output value corresponding to each input of the input/output pairs. The method includes comparing the output value corresponding to each input of the input/output pairs with the output corresponding to each input of the input/output pairs. The method includes, when the output value corresponding to each input of the input/output pairs is equal to the output corresponding to each input of the input/output pairs, then the system stores an indication that the variant is correct.