English
Related papers

Related papers: Abstraction Functions as Types

200 papers

Abstraction-based techniques are an attractive approach for synthesizing correct-by-construction controllers to satisfy high-level temporal requirements. A main bottleneck for successful application of these techniques is the memory…

Systems and Control · Electrical Eng. & Systems 2023-07-11 Rupak Majumdar , Mahmoud Salamati , Sadegh Soudjani

We study transformational program logics for correctness and incorrectness that we extend to explicitly handle both termination and nontermination. We show that the logics are abstract interpretations of the right image transformer for a…

Logic in Computer Science · Computer Science 2023-11-27 Patrick Cousot

This paper presents an abstraction of Hoare logic to traced symmetric monoidal categories, a very general framework for the theory of systems. Our abstraction is based on a traced monoidal functor from an arbitrary traced monoidal category…

Logic in Computer Science · Computer Science 2013-05-09 Rob Arthan , Ursula Martin , Erik A. Mathiesen , Paulo Oliva

We classify programming languages according to evaluation order: each language fixes one evaluation order as the default, making it transparent to program in that evaluation order, and troublesome to program in the other. This paper…

Programming Languages · Computer Science 2020-08-25 Jana Dunfield

Verification of concurrent systems with thousands of multiple threads and transactions is a challenging problem not just for simulation or emulation but also for formal. To get designs to work correctly and provide optimal PPA the designers…

Software Engineering · Computer Science 2017-05-02 Ashish Darbari , Iain Singleton

We present a thread-modular abstract interpretation(TMAI) technique to verify programs under the release-acquire (RA) memory model for safety property violations. The main contributions of our work are: we capture the execution order of…

Programming Languages · Computer Science 2021-08-19 Divyanjali Sharma , Subodh Sharma

Many object-oriented dynamic languages allow programmers to _extract methods_ from objects and treat them as functions. This allows for flexible programming patterns, but presents challenges for type systems. In particular, a simple…

Programming Languages · Computer Science 2021-11-23 Yuquan Fu , Sam Tobin-Hochstadt

Writing parallel codes is difficult and exhibits a fundamental trade-off between abstraction and performance. The high level language abstractions designed to simplify the complexities of parallelism make certain assumptions that impacts…

Programming Languages · Computer Science 2020-10-28 Nick Brown , Ludovic Capelli , J. Mark Bull

We present a framework for compositional program verification based on polynomial functors in dependent type theory. In this framework, polynomial functors serve as program interfaces, Kleisli morphisms for the free monad monad serve as…

Logic in Computer Science · Computer Science 2026-04-03 C. B. Aberlé

Abstraction is one of the most important strategies for dealing with the state space explosion problem in model checking. In the abstract model, although the state space is largely reduced, however, a counterexample found in such a model…

Logic in Computer Science · Computer Science 2010-07-27 Cong Tian , Zhenhua Duan

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…

Programming Languages · Computer Science 2019-01-14 Brigitte Pientka , Andreas Abel , Francisco Ferreira , David Thibodeau , Rebecca Zucchini

Characterizing hybrid ASP solving in a generic way is difficult since one needs to abstract from specific theories. Inspired by lazy SMT solving, this is usually addressed by treating theory atoms as opaque. Unlike this, we propose a…

Logic in Computer Science · Computer Science 2020-03-16 Pedro Cabalar , Jorge Fandinno , Torsten Schaub , Philipp Wanko

A standard informal method for analyzing the asymptotic complexity of a program is to extract a recurrence that describes its cost in terms of the size of its input, and then to compute a closed-form upper bound on that recurrence. We give…

Programming Languages · Computer Science 2022-08-09 Norman Danner , Daniel R. Licata

Abstract interpretation offers a powerful toolset for static analysis, tackling precision, complexity and state-explosion issues. In the literature, state partitioning abstractions based on (bi)simulation and property-preserving state…

Logic in Computer Science · Computer Science 2025-06-09 Paolo Baldan , Roberto Bruni , Francesco Ranzato , Diletta Rigo

We present a new method for inferring complexity properties for a class of programs in the form of flowcharts annotated with loop information. Specifically, our method can (soundly and completely) decide if computed values are polynomially…

Programming Languages · Computer Science 2016-07-11 Amir M. Ben-Amram , Aviad Pineles

We take a utility-based approach to categorization. We construct generalizations about events and actions by considering losses associated with failing to distinguish among detailed distinctions in a decision model. The utility-based…

Artificial Intelligence · Computer Science 2013-03-08 Eric J. Horvitz , Adrian Klein

Information-flow security type systems ensure confidentiality by enforcing noninterference: a program cannot leak private data to public channels. However, in practice, programs need to selectively declassify information about private data.…

Programming Languages · Computer Science 2019-11-13 Raimil Cruz , Éric Tanter

Hoare-style program logics are a popular and effective technique for software verification. Relational program logics are an instance of this approach that enables reasoning about relationships between the execution of two or more programs.…

Programming Languages · Computer Science 2022-09-09 Robert Dickerson , Qianchuan Ye , Michael K. Zhang , Benjamin Delaware

The Curry-Howard correspondence is about a relationship between types and programs on the one hand and propositions and proofs on the other. The implications for programming language design and program verification is an active field of…

Programming Languages · Computer Science 2015-09-15 Jørgen Steensgaard-Madsen

Context: Reynolds showed us how to use continuation-passing style and defunctionalization to transform a recursive interpreter for a language into an abstract machine for programs in that language. The same techniques explain other…

Programming Languages · Computer Science 2021-11-23 Jeremy Gibbons