PolyVer: A Compositional Approach for Polyglot System Modeling and Verification

📅 2025-03-05
📈 Citations: 0
Influential: 0
📄 PDF
🤖 AI Summary
Formal verification of multilingual software systems is challenging due to semantic mismatches and loss of fidelity when translating entire systems into a single modeling language. Method: This paper introduces the first contract-driven compositional verification framework that avoids full-system translation. It features: (1) a novel dual-loop abstraction-refinement mechanism integrating CEGAR and CEGIS; (2) syntax-guided, automated contract generation for cross-language update functions, augmented by SyGuS and LLMs; and (3) coordinated integration of the UCLID5 model checker with language-specific verifiers (e.g., CBMC, Kani) via shared contracts. Contribution/Results: The framework enables end-to-end, system-level property verification of native C and Rust components within Lingua Franca systems—preserving language semantics and avoiding distortion. It significantly improves verification precision and scalability, establishing a new paradigm for compositional, scalable, and language-preserving verification of multilingual systems.

Technology Category

Application Category

📝 Abstract
Several software systems are polyglot; that is, they comprise programs implemented in a combination of programming languages. Verifiers that directly run on mainstream programming languages are currently customized for single languages. Thus, to verify polyglot systems, one usually translates them into a common verification language or formalism on which the verifier runs. In this paper, we present an alternative approach, PolyVer, which employs abstraction, compositional reasoning, and synthesis to directly perform polyglot verification. PolyVer constructs a formal model of the original polyglot system as a transition system where the update functions associated with transitions are implemented in target languages such as C or Rust. To perform verification, PolyVer then connects a model checker for transition systems with language-specific verifiers (e.g., for C or Rust) using pre/post-condition contracts for the update functions. These contracts are automatically generated by synthesis oracles based on syntax-guided synthesis or large language models (LLMs), and checked by the language-specific verifiers. The contracts form abstractions of the update functions using which the model checker verifies the overall system-level property on the polyglot system model. PolyVer iterates between counterexample-guided abstraction-refinement (CEGAR) and counterexample-guided inductive synthesis (CEGIS) until the property is verified or a true system-level counterexample is found. We demonstrate the utility of PolyVer for verifying programs in the Lingua Franca polyglot language using the UCLID5 model checker connected with the CBMC and Kani verifiers for C and Rust respectively.
Problem

Research questions and friction points this paper is trying to address.

Verification of polyglot systems using multiple programming languages.
Direct verification without translating to a common formalism.
Integration of model checking with language-specific verifiers.
Innovation

Methods, ideas, or system contributions that make the work stand out.

Uses abstraction and compositional reasoning for polyglot verification.
Connects model checker with language-specific verifiers via contracts.
Employs CEGAR and CEGIS for iterative verification refinement.
🔎 Similar Papers
No similar papers found.