English
Related papers

Related papers: Cameleer: a Deductive Verification Tool for OCaml …

200 papers

Functional programming offers the perfect ground for building correct-by-construction software. Languages of such paradigm normally feature state-of-the-art type systems, good abstraction mechanisms, and well-defined execution models. We…

Logic in Computer Science · Computer Science 2022-07-21 Daniel Castanho , Mário Pereira

In this paper, we provide a comprehensive, hands-on tutorial on how to apply deductive verification to programs written in OCaml. In particular, we show how one can use the GOSPEL specification language and the Cameleer tool to conduct…

Logic in Computer Science · Computer Science 2024-07-23 Mário Pereira

We present our work on the collaborative use of dynamic and static analysis tools for the verification of software written in the OCaml language. We build upon Gospel, a specification language for OCaml that can be used both in dynamic and…

Logic in Computer Science · Computer Science 2024-07-29 Tiago Lopes Soares , Ion Chirica , Mário Pereira

Algebraic effects and handlers are a powerful abstraction to build non-local control-flow mechanisms such as resumable exceptions, lightweight threads, co-routines, generators, and asynchronous I/O. All of such features have very evolved…

Logic in Computer Science · Computer Science 2023-02-08 Tiago Soares , Mário Pereira

Albeit being a central notion of every programming language, formally and modularly reasoning about iteration proves itself to be a non-trivial feat, specially in the context of higher-order iteration. In this paper, we present a generic…

Programming Languages · Computer Science 2025-06-26 Ion Chirica , Mário Pereira

Over the past two decades, the Web Ontology Language (OWL) has been instrumental in advancing the development of ontologies and knowledge graphs, providing a structured framework that enhances the semantic integration of data. However, the…

Logic in Computer Science · Computer Science 2024-12-13 Atalay Mert Ileri , Nalen Rangarajan , Jack Cannell , Hande McGinty

In this report, we present the preliminary work developed for our research project for the APDC (\'Area Pr\'atica de Desenvolvimento Curricular) course. The main goal of this project is to develop a framework, on top of the Why3 tool, for…

Logic in Computer Science · Computer Science 2020-12-02 Tiago Lopes Soares

This paper presents a translation from Gospel-annotated OCaml programs into Viper, an intermediate verification language featuring Separation Logic. The practical goal is to extend Cameleer with a new back-end to prove heap-dependent OCaml…

Logic in Computer Science · Computer Science 2024-12-20 Charlène Gros , Mário Pereira

A compiler consists of a sequence of phases going from lexical analysis to code generation. Ideally, the formal verification of a compiler should include the formal verification of each component of the tool-chain. An example is the…

Programming Languages · Computer Science 2023-06-22 Wendlasida Ouedraogo , Gabriel Scherer , Lutz Strassburger

Formal verification of complex algorithms is challenging. Verifying their implementations goes beyond the state of the art of current automatic verification tools and usually involves intricate mathematical theorems. Certifying algorithms…

Logic in Computer Science · Computer Science 2013-02-01 Eyad Alkassar , Sascha Böhme , Kurt Mehlhorn , Christine Rizkallah

BSML is a pure functional library for the multi-paradigm language OCaml. BSML embodies the principles of the Bulk Synchronous Parallel (BSP) model, a model of scalable parallel computing. We propose a formalization of BSML primitives with…

Software Engineering · Computer Science 2023-08-01 Olivia Proust , Frédéric Loulergue

We make another assault on the longstanding problem of debugging. After exploring why debuggers are not used as widely as one might expect, especially in functional programming environments, we define the characteristics of a debugger which…

Programming Languages · Computer Science 2019-05-17 John Whitington , Tom Ridge

Motivated by experience in programming and in the teaching of programming, we make another assault on the longstanding problem of debugging. Having explored why debuggers are not used as widely as one might expect, especially in functional…

Programming Languages · Computer Science 2024-11-04 John Whitington

Statistical methods have been widely misused and misinterpreted in various scientific fields, raising significant concerns about the integrity of scientific research. To mitigate this problem, we propose a tool-assisted method for formally…

Software Engineering · Computer Science 2025-06-05 Yusuke Kawamoto , Kentaro Kobayashi , Kohei Suenaga

Recent work has shown that Large Language Models (LLMs) are not only a suitable tool for code generation but also capable of generating annotation-based code specifications. Scaling these methodologies may allow us to deduce provable…

Software Engineering · Computer Science 2025-06-26 Samuel Teuber , Bernhard Beckert

Automated program verifiers are typically implemented using an intermediate verification language (IVL), such as Boogie or Why3. A verifier front-end translates the input program and specification into an IVL program, while the back-end…

Programming Languages · Computer Science 2024-05-13 Gaurav Parthasarathy , Thibault Dardinier , Benjamin Bonneau , Peter Müller , Alexander J. Summers

Dafny is a verification-aware programming language that comes with a compiler and static program verifier. However, neither the compiler nor the verifier is proved correct; in fact, soundness bugs have been found in both tools. This paper…

Programming Languages · Computer Science 2025-12-08 Daniel Nezamabadi , Magnus O. Myreen , Yong Kiam Tan

Automatic software verification tools help to find hard-to-detect faults in programs checked against specified requirements non-interactively. Besides, they can prove program correctness formally under certain assumptions. These…

Software Engineering · Computer Science 2023-09-29 Ilja Zakharov , Evgeny Novikov , Ilya Shchepetkov

Formal methods have been employed for requirements verification for a long time. However, it is difficult to automatically derive properties from natural language requirements. SpecVerify addresses this challenge by integrating large…

Software Engineering · Computer Science 2025-07-08 Weiqi Wang , Marie Farrell , Lucas C. Cordeiro , Liping Zhao

Classes on compiler technology are commonly found in Computer Science curricula, covering aspects of parsing, semantic analysis, intermediate transformations and target code generation. This paper reports on introducing certified…

Programming Languages · Computer Science 2019-06-28 Per Lindgren , Marcus Lindner , Nils Fitinghoff
‹ Prev 1 2 3 10 Next ›