Library Dependency Conflict Resolution via Logical Formula SAT Solving

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In program development, conflicts between libraries with the same name but different versions can lead to compiler ambiguity, resulting in the selection of unintended libraries and generation of incorrect executable programs, which is inefficient and error-prone, especially when manually resolving dependency conflicts is complex.

Innovation Solution

A non-transitory computer-readable medium containing a program that detects conflicts between libraries by generating logical formulas indicating dependency relationships, using SAT solvers to determine satisfiability, and outputting modified definition files to resolve conflicts automatically, ensuring the selection of intended libraries and generating independent executable programs.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a build tool selects a library using tool-dependent methods to eliminate conflicts, then the conflict between libraries is resolved, but the library intended by the developer is not always selected

Engineering Contradiction:
Improvelibrary selection accuracyVSAvoidmanual intervention requirement
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The system automatically resolves library conflicts by generating and evaluating logical formulas to determine satisfiability, eliminating the need for manual intervention. The conflict resolution process is performed autonomously by the build tool, selecting libraries based on logical constraints rather than tool-dependent heuristics.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent replaces manual or heuristic-based conflict resolution with an automated logical formulation system. By translating dependency conflicts into logical formulas and using satisfiability checking, the system substitutes mechanical/tool-dependent selection with formal logical reasoning to determine library dependencies.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

2Reliability

If manual resolution of dependency conflicts is performed, then the intended library can be selected, but the process is complex and time-consuming

Engineering Contradiction:
Improvelibrary selection accuracyVSAvoidconflict resolution time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs preliminary action by automatically generating logical formulas that represent dependency conflicts before the actual library selection is needed. By pre-formulating the logical constraints and using satisfiability checking, the system resolves conflicts efficiently without requiring manual analysis of complex dependency graphs.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent substitutes manual conflict resolution with automated logical formulation and satisfiability checking. This replaces time-consuming manual analysis with efficient algorithmic processing, significantly reducing the time required to resolve dependency conflicts while maintaining accuracy.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

3Productivity

If tool-dependent methods are used to eliminate library conflicts, then the build process can complete, but the generated executable program may differ from developer intention

Engineering Contradiction:
Improvebuild process efficiencyVSAvoidprogram correctness
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system incorporates feedback by using satisfiability checking to verify whether the selected library configuration satisfies the developer's intended dependencies. The logical formula generation and satisfiability evaluation provide feedback on whether the conflict resolution aligns with developer intentions, ensuring correct program generation.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The patent replaces tool-dependent heuristic selection with formal logical reasoning to determine library dependencies. By using logical formulas and satisfiability checking, the system ensures that the selected libraries accurately reflect developer intentions, preventing incorrect executable generation while maintaining build efficiency.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Data Source

PatentUS11461079B2Non-transitory computer-readable medium
Publication Date: 2022.10.04 FUJITSU LTD
  • US11461079B2 patent drawing
  • US11461079B2 patent drawing
  • US11461079B2 patent drawing

AI summary

A non-transitory computer-readable medium having stored therein a program for causing a computer to execute a process, the process includes detecting a conflict between a first library and a second library in a first program based on a first definition file indicating that the first program depends on the first library and the second library among a plurality of libraries, generating a logical formula indicating that the first program depends on the first library and does not depend on the second library, and outputting a second definition file indicating that the first program depends on the first library and does not depend on the second library when the logical formula is determined to be satisfiable.