English
Related papers

Related papers: Abstraction Functions as Types

200 papers

Functional programs typically interact with stateful libraries that hide state behind typed abstractions. One particularly important class of applications are data structure implementations that rely on such libraries to provide a level of…

Programming Languages · Computer Science 2024-09-30 Zhe Zhou , Qianchuan Ye , Benjamin Delaware , Suresh Jagannathan

Analysis of (partial) groundness is an important application of abstract interpretation. There are several proposals for improving the precision of such an analysis by exploiting type information, icluding our own work with Hill and King,…

Logic in Computer Science · Computer Science 2007-05-23 Jan-Georg Smaus

Value independence is enormously beneficial for reasoning about software systems at scale. These benefits carry over into the world of formal verification. Reasoning about programs algebraically is a simple affair in a proof assistant,…

Programming Languages · Computer Science 2026-02-09 Liam O'Connor , Pilar Selene Linares Arevalo , Christine Rizkallah

We present a new way to control the unfolding of definitions in dependent type theory. Traditionally, proof assistants require users to fix whether each definition will or will not be unfolded in the remainder of a development; unfolding…

Logic in Computer Science · Computer Science 2025-10-16 Daniel Gratzer , Jonathan Sterling , Carlo Angiuli , Thierry Coquand , Lars Birkedal

The mid-1990s saw the design of programming languages for software architectures, which define the high-level aspects of software systems including how code components were composed to form full systems. Our paper "Abstractions for Software…

Software Engineering · Computer Science 2025-03-07 Mary Shaw , Daniel V. Klein , Theodore L. Ross

This paper develops a novel compositional and abstraction-based approach to synthesize edit functions for opacity enforcement in modular discrete event systems. Edit functions alter the output of the system by erasing or inserting events in…

Cryptography and Security · Computer Science 2019-10-02 Sahar Mohajerani , Yiding Ji , Stephane Lafortune

Heap data is potentially unbounded and seemingly arbitrary. As a consequence, unlike stack and static memory, heap memory cannot be abstracted directly in terms of a fixed set of source variable names appearing in the program being…

Programming Languages · Computer Science 2016-07-05 Vini Kanvar , Uday P. Khedker

We propose a method for automatically generating abstract transformers for static analysis by abstract interpretation. The method focuses on linear constraints on programs operating on rational, real or floating-point variables and…

Programming Languages · Computer Science 2008-11-04 David Monniaux

Services are autonomous, self-describing, technology-neutral software units that can be described, published, discovered, and composed into software applications at runtime. Designing software services and composing services in order to…

Programming Languages · Computer Science 2012-08-24 Joakim Bjørk , Dave Clarke , Einar Broch Johnsen , Olaf Owe

A common technique to verify complex logic specifications for dynamical systems is the construction of symbolic abstractions: simpler, finite-state models whose behaviour mimics the one of the systems of interest. Typically, abstractions…

Systems and Control · Electrical Eng. & Systems 2023-03-30 Rudi Coppola , Andrea Peruffo , Manuel Mazo

Abstract interpretation, Hoare logic, and incorrectness (or reverse Hoare) logic are powerful techniques for static analysis of computer programs. All of them have been successfully extended to the quantum setting, but largely developed in…

Logic in Computer Science · Computer Science 2022-06-29 Yuan Feng , Sanjiang Li

We describe a Martin-L\"of-style dependent type theory, called Cocon, that allows us to mix the intensional function space that is used to represent higher-order abstract syntax (HOAS) trees with the extensional function space that…

Logic in Computer Science · Computer Science 2019-05-13 Brigitte Pientka , David Thibodeau , Andreas Abel , Francisco Ferreira , Rebecca Zucchini

Structured recursion schemes such as folds and unfolds have been widely used for structuring both functional programs and program semantics. In this context, it has been customary to implement denotational semantics as folds over an…

Programming Languages · Computer Science 2023-03-17 Marco Paviotti , Nicolas Wu

One of the most attractive features of untyped languages is the flexibility in term creation and manipulation. However, with such power comes the responsibility of ensuring the correctness of these operations. A solution is adding run-time…

Programming Languages · Computer Science 2017-10-17 Nataliia Stulova , José F. Morales , Manuel V. Hermenegildo

We present three projects concerned with applications of proof assistants in the area of programming language theory and mathematics. The first project is about a certified compilation technique for a domain-specific programming language…

Programming Languages · Computer Science 2018-11-29 Danil Annenkov

Despite many advances that enable the application of model checking techniques to the verification of large systems, the state-explosion problem remains the main challenge for scalability. Compositional verification addresses this challenge…

Logic in Computer Science · Computer Science 2013-09-23 Dimitra Giannakopoulou , Corina S. Păsăreanu

We propose a method for automatically generating abstract transformers for static analysis by abstract interpretation. The method focuses on linear constraints on programs operating on rational, real or floating-point variables and…

Logic in Computer Science · Computer Science 2019-03-14 David Monniaux

In the present paper we formally define the notion of abstract program slicing, a general form of program slicing where properties of data are considered instead of their exact value. This approach is applied to a language with numeric and…

Logic in Computer Science · Computer Science 2016-05-20 Isabella Mastroeni , Damiano Zanardini

We propose a method for automatically generating abstract transformers for static analysis by abstract interpretation. The method focuses on linear constraints on programs operating on rational, real or floating-point variables and…

Programming Languages · Computer Science 2010-07-28 David Monniaux

We show that time complexity analysis of higher-order functional programs can be effectively reduced to an arguably simpler (although computationally equivalent) verification problem, namely checking first-order inequalities for validity.…

Logic in Computer Science · Computer Science 2012-10-26 Ugo Dal Lago , Barbara Petit