English
Related papers

Related papers: Verifying Functional Correctness Properties At the…

200 papers

JDBC remains a key technology for database access in Java applications. Since the database dictionary and the Java type system have distinct scopes, developers inevitably need to deal with bugs in SQL-to-Java type mappings. We propose an…

Databases · Computer Science 2026-05-05 Thomas James Kirz , Werner Dietl , Mattias Ulbrich , Stefanie Scherzinger

MiniJava is a subset of the object-oriented programming language Java. Standard ML is the canonical representative of the ML family of functional programming languages, which includes F# and OCaml. Different program analysis and…

Programming Languages · Computer Science 2021-01-01 Martin Mariusz Lester

Relational properties describe relationships that hold over multiple executions of one or more programs, such as functional equivalence. Conventional approaches for automatically verifying such properties typically rely on syntax-based,…

Programming Languages · Computer Science 2019-07-10 Qi Zhou , David Heath , William Harris

Formal specifications play a central role in ensuring software reliability and correctness. However, automatically synthesizing high-quality formal specifications remains a challenging task, often requiring domain expertise. Recent work has…

Software Engineering · Computer Science 2026-04-02 Md Rakib Hossain Misu , Iris Ma , Cristina V. Lopes

VeriFast is a prototype tool based on separation logic for modular verification of C and Java programs. We are in the process of adding support for C++. In this report, we describe the features of C++ for which we added support so far, as…

Logic in Computer Science · Computer Science 2022-12-29 Niels Mommen , Bart Jacobs

As a particular case study of the formal verification of state-of-the-art, real software, we discuss the specification and verification of a corrected version of the implementation of a linked list as provided by the Java Collection…

Logic in Computer Science · Computer Science 2019-11-12 Hans-Dieter A. Hiep , Olaf Maathuis , Jinting Bian , Frank S. de Boer , Marko van Eekelen , Stijn de Gouw

A bug or error is a common problem that any software or computer program may encounter. It can occur from badly writing the program, a typing error or bad memory management. However, errors can become a significant issue if the unsafe…

Programming Languages · Computer Science 2019-08-29 Zeinab Nehai , François Bobot

Static verification provides strong correctness guarantees for code; however, fully specifying programs for static verification is a complex, burdensome process for users. Gradual verification was introduced to make this process easier by…

Programming Languages · Computer Science 2025-07-21 Priyam Gupta

Binary code similarity detection is a core task in reverse engineering. It supports malware analysis and vulnerability discovery by identifying semantically similar code in different contexts. Modern methods have progressed from manually…

Artificial Intelligence · Computer Science 2025-09-30 Charles E. Gagnon , Steven H. H. Ding , Philippe Charland , Benjamin C. M. Fung

Regression testing assures software correctness after changes but is resource-intensive. Test Case Prioritisation (TCP) mitigates this by ordering tests to maximise early fault detection. Diversity-based TCP prioritises dissimilar tests,…

Software Engineering · Computer Science 2025-04-18 Islam T. Elgendy , Robert M. Hierons , Phil McMinn

Variational execution is a novel dynamic analysis technique for exploring highly configurable systems and accurately tracking information flow. It is able to efficiently analyze many configurations by aggressively sharing redundancies of…

Programming Languages · Computer Science 2018-09-13 Chu-Pan Wong , Jens Meinicke , Lukas Lazarek , Christian Kästner

Code sandboxes have emerged as a critical infrastructure for advancing the coding capabilities of large language models, providing verifiable feedback for both RL training and evaluation. However, existing systems fail to provide accurate…

Software Engineering · Computer Science 2026-05-01 Jiasheng Zheng , Xin Zheng , Boxi Cao , Pengbo Wang , Zhengzhao Ma , Qiming Zhu , Jiazhen Jiang , Yaojie Lu , Hongyu Lin , Xianpei Han , Le Sun

We describe a successful attempt to formally verify a simple genetic algorithm written in Java. To this end, we compare several formal verification tools designed for Java, and select Krakatoa as the most appropriate for the task. Based on…

Logic in Computer Science · Computer Science 2018-09-11 Dmitry Brizhinev , Rajeev Goré

To guarantee that machine learning models yield outputs that are not only accurate, but also robust, recent works propose formally verifying robustness properties of machine learning models. To be applicable to realistic safety-critical…

Machine Learning · Computer Science 2021-05-07 John Törnblom , Simin Nadjm-Tehrani

We extend the Stainless deductive verifier with floating-point support, providing the first automated verification support for floating-point numbers for a subset of Scala that includes polymorphism, recursion and higher-order functions. We…

Programming Languages · Computer Science 2026-01-21 Andrea Gilot , Axel Bergström , Eva Darulova

Current static verification techniques support a wide range of programs. However, such techniques only support complete and detailed specifications, which places an undue burden on users. To solve this problem, prior work proposed gradual…

We introduce a new methodology based on refinement for testing the functional correctness of hardware and low-level software. Our methodology overcomes several major drawbacks of the de facto testing methodologies used in industry: (1) it…

Logic in Computer Science · Computer Science 2017-03-17 Mitesh Jain , Panagiotis Manolios

Decompilation, the process of converting machine-level code into readable source code, plays a critical role in reverse engineering. Given that the main purpose of decompilation is to facilitate code comprehension in scenarios where the…

Software Engineering · Computer Science 2024-10-01 Ruixin Qin , Yifan Xiong , Yifei Lu , Minxue Pan

Empirical evaluation of verification tools by benchmarking is a common method in software verification research. The Competition on Software Verification (SV-COMP) aims at standardization and reproducibility of benchmarking within the…

Logic in Computer Science · Computer Science 2019-03-05 Lucas Cordeiro , Daniel Kroening , Peter Schrammel

We propose a light-weight approach for certification of monitor inlining for sequential Java bytecode using proof-carrying code. The goal is to enable the use of monitoring for quality assurance at development time, while minimizing the…

Logic in Computer Science · Computer Science 2010-12-15 Mads Dam , Andreas Lundblad