English
Related papers

Related papers: A formally verified compiler back-end

200 papers

A program verifier produces reliable results only if both the logic used to justify the program's correctness is sound, and the implementation of the program verifier is itself correct. Whereas it is common to formally prove soundness of…

Programming Languages · Computer Science 2021-06-01 Gaurav Parthasarathy , Peter Müller , Alexander J. Summers

Expressive static typing disciplines are a powerful way to achieve high-quality software. However, the adoption cost of such techniques should not be under-estimated. Just like gradual typing allows for a smooth transition from…

Programming Languages · Computer Science 2015-08-25 Éric Tanter , Nicolas Tabareau

Even with the increase of popularity of functional programming, imperative programming remains a key programming paradigm, especially for programs operating at lower levels of abstraction. When such software offers key components of a…

Programming Languages · Computer Science 2025-09-17 Frédéric Fort , David Nowak , Vlad Rusu

These notes present some extensions of a formal method introduced in an earlier paper. The formal method is designed as a tool for program verification of numerical computation and forms the basis of the software package VPC. Included in…

Logic in Computer Science · Computer Science 2014-11-21 Garry Pantelis

We present Pyrosome, a generic framework for modular language metatheory that embodies a novel approach to extensible semantics and compilation, implemented in Coq. Common techniques for semantic reasoning are often tied to the specific…

Programming Languages · Computer Science 2025-07-10 Dustin Jamner , Gabriel Kammer , Ritam Nag , Adam Chlipala

This paper focuses on formally specifying and verifying the chain of formal semantics of the Esterel synchronous programming language using the Coq proof assistant. In particular, in addition to the standard logical (LBS) semantics,…

Formal Languages and Automata Theory · Computer Science 2025-01-08 Gérard Berry , Lionel Rieg

In this paper we present a translation from the quantum programming language Quipper to the QPMC model checker, with the main aim of verifying Quipper programs. Quipper is an embedded functional programming language for quantum computation.…

Logic in Computer Science · Computer Science 2017-08-22 Linda Anticoli , Carla Piazza , Leonardo Taglialegne , Paolo Zuliani

What provides the highest level of assurance for correctness of execution within a programming language? One answer, and our solution in particular, to this problem is to provide a formalization for, if it exists, the denotational semantics…

Category Theory · Mathematics 2023-03-17 Zachary Flores , Angelo Taranto , Eric Bond , Yakir Forman

VeriFast is a powerful tool for verification of various correctness properties of C programs using symbolic execution. However, VeriFast itself has not been verified. We present a proof-of-concept extension which generates a correctness…

Logic in Computer Science · Computer Science 2023-08-31 Stefan Wils , Bart Jacobs

Compiler correctness proofs for higher-order concurrent languages are difficult: they involve establishing a termination-preserving refinement between a concurrent high-level source language and an implementation that uses low-level shared…

Programming Languages · Computer Science 2017-01-23 Joseph Tassarotti , Ralf Jung , Robert Harper

The goal of this lecture is to show how modern theorem provers---in this case, the Coq proof assistant---can be used to mechanize the specification of programming languages and their semantics, and to reason over individual programs and…

Programming Languages · Computer Science 2010-10-28 Xavier Leroy

Programming language frameworks allow us to generate language tools (e.g., interpreters) just from a formal description of the syntax and semantics of a programming language. As these frameworks tend to be quite complex, an issue arises…

Programming Languages · Computer Science 2024-09-19 Jan Tušil , Jan Obdržálek

Cyber-physical systems (CPS) such as autonomous cars, aircraft, and robots are often also safety-critical; thus it is imperative that they operate as intended with a high degree of certainty. Formal verification has been employed to verify…

Programming Languages · Computer Science 2026-05-07 Serra Z. Dane , Jiawei Chen , Marc Pouzet , Jean-Baptiste Jeannin

An engineering design process may involve software modules that can executed concurrently. Concurrent modules can be very easily subject to some synchronization errors. This paper discusses verification process for such engineering…

Software Engineering · Computer Science 2017-04-24 Jerzy Mieścicki , Mikołaj Baszun , Wiktor B. Daszczuk , Bogdan D. Czejdo

Undefined behavior in C often causes devastating security vulnerabilities. One practical mitigation is compartmentalization, which allows developers to structure large programs into mutually distrustful compartments with clearly specified…

Interactive proof assistants are computer programs carefully constructed to check a human-designed proof of a mathematical claim with high confidence in the implementation. However, this only validates truth of a formal claim, which may…

Programming Languages · Computer Science 2022-05-17 Colin S. Gordon , Sergey Matskevich

The Coq Platform is a continuously developed distribution of the Coq proof assistant together with commonly used libraries, plugins, and external tools useful in Coq-based formal verification projects. The Coq Platform enables reproducing…

Logic in Computer Science · Computer Science 2022-03-21 Karl Palmskog , Enrico Tassi , Théo Zimmermann

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

Formal methods provide systematic and rigorous techniques for software development. We strongly believe that they must be taught in computer science curricula. In this paper we present the pedagogic rationale and the concrete implementation…

Logic in Computer Science · Computer Science 2021-11-17 Salwa Souaf , Frédéric Loulergue

This article presents the formal semantics of a large subset of the C language called Clight. Clight includes pointer arithmetic, "struct" and "union" types, C loops and structured "switch" statements. Clight is the source language of the…

Programming Languages · Computer Science 2009-09-18 Sandrine Blazy , Xavier Leroy