Search papers, labs, and topics across Lattice.
This paper introduces a pipeline for converting imperative programs and their annotations into typed, attributed graphs, aiming to facilitate verification artifact reuse. The pipeline combines AST parsing with semantic embeddings from SentenceTransformer and CodeBERT to capture both structural and semantic information. Experiments across C, Java, and Dafny demonstrate the pipeline's ability to generate consistent graph representations across different languages and annotation styles.
Unlock verification artifact reuse across languages by representing programs as typed, attributed graphs that capture both structure and semantics.
Reusing verification artefacts requires identifying structural and semantic similarities across programs and their specifications. In this paper, we focus on graph construction as a foundational step toward this goal. We present a pipeline that converts imperative programs and their annotations into typed, attributed graphs. Our experiments cover datasets including C with ACSL, Java with JML, and Dafny for C\#. The pipeline integrates abstract syntax tree parsing with semantic embeddings derived from models such as SentenceTransformer and CodeBERT. This enables the generation of graph representations that capture both structural relationships and semantic context. Our results show that consistent graph representations can be constructed across different languages and annotation styles. This work provides a practical basis for future steps in semantic enrichment and approximate graph matching for scalable verification artefact reuse.