English
Related papers

Related papers: Verifying and Synthesizing Constant-Resource Imple…

200 papers

Modern languages are equipped with static type checking/inference that helps programmers to keep a clean programming style and to reduce errors. However, the ever-growing size of programs and their continuous evolution require building fast…

Programming Languages · Computer Science 2018-11-28 Matteo Busi , Pierpaolo Degano , Letterio Galletta

We develop new methods to statically bound the resources needed for the execution of systems of concurrent, interactive threads. Our study is concerned with a \emph{synchronous} model of interaction based on cooperative threads whose…

Programming Languages · Computer Science 2007-06-13 Roberto Amadio , Silvano Dal Zilio

Formally verifying properties of programs that manipulate arrays in loops is computationally challenging. In this paper, we focus on a useful class of such programs, and present a novel property-driven verification method that first infers…

Software Engineering · Computer Science 2017-10-05 Supratik Chakraborty , Ashutosh Gupta , Divyesh Unadkat

Erlang's dynamic typing discipline can lead to runtime errors that persist even after process restarts. Some of these runtime errors could be prevented through static type checking. While Erlang provides a type specification language, the…

Programming Languages · Computer Science 2026-03-24 Albert Schimpf , Stefan Wehr , Annette Bieniusa

A type system combining type application, constants as types, union types (associative, commutative and idempotent) and recursive types has recently been proposed for statically typing path polymorphism, the ability to define functions that…

Logic in Computer Science · Computer Science 2020-06-30 Juan Edi , Andrés Viso , Eduardo Bonelli

Graded Type Theory provides a mechanism to track and reason about resource usage in type systems. In this paper, we develop GraD, a novel version of such a graded dependent type system that includes functions, tensor products, additive…

Programming Languages · Computer Science 2021-01-07 Pritam Choudhury , Harley Eades , Richard A. Eisenberg , Stephanie C Weirich

We target the problem of controlling electrical microgrids with little inertia in real time. We consider a central controller and a number of resources, where each resource is either a load, a generator, or a combination thereof, like a…

Optimization and Control · Mathematics 2015-11-30 Andrey Bernstein , Niek J. Bouman , Jean-Yves Le Boudec

The PQDSS standardization process requires cryptographic primitives to be free from vulnerabilities, including timing and cache side-channels. Resistance to timing leakage is therefore an essential property, and achieving this typically…

Refinement types enable lightweight verification of functional programs. Algorithms for statically inferring refinement types typically work by reduction to solving systems of constrained Horn clauses extracted from typing derivations. An…

Programming Languages · Computer Science 2020-11-11 Zvonimir Pavlinovic , Yusen Su , Thomas Wies

Guaranteeing runtime integrity of embedded system software is an open problem. Trade-offs between security and other priorities (e.g., cost or performance) are inherent, and resolving them is both challenging and important. The…

Cryptography and Security · Computer Science 2022-09-05 Ivan De Oliveira Nunes , Sashidhar Jakkamsetti , Youngil Kim , Gene Tsudik

A coverage type generalizes refinement types found in many functional languages with support for must-style underapproximate reasoning. Property-based testing frameworks are one particularly useful domain where such capabilities are useful…

Programming Languages · Computer Science 2025-09-03 Zhe Zhou , Benjamin Delaware , Suresh Jagannathan

Traditional threat modeling occurs during design, but cloud deployments introduce unanticipated threats, especially multi-stage attacks chaining vulnerabilities across trust boundaries. Existing security tools analyze components in…

Cryptography and Security · Computer Science 2026-03-25 Nicholas Pecka , Lotfi Ben Othmane , Bharat Bhargava , Renee Bryce

Reactive computer systems bear inherent complexity due to continuous interactions with their environment. While this environment often proves to be uncontrollable, we still want to ensure that critical computer systems will not fail, no…

Computer Science and Game Theory · Computer Science 2012-10-19 Mickael Randour

Verification of temporal logic properties plays a crucial role in proving the desired behaviors of continuous systems. In this paper, we propose an interval method that verifies the properties described by a bounded signal temporal logic.…

Logic in Computer Science · Computer Science 2016-02-09 Daisuke Ishii , Naoki Yonezaki , Alexandre Goldsztejn

We present a method for synthesizing recursive functions that satisfy both a functional specification and an asymptotic resource bound. Prior methods for synthesis with a resource metric require the user to specify a concrete expression…

Programming Languages · Computer Science 2021-05-27 Qinheping Hu , John Cyphert , Loris D'Antoni , Thomas Reps

Effective program synthesis requires a way to minimise the number of candidate programs being searched. A type signature, for example, places some small restrictions on the structure of potential candidates. We introduce and motivate a…

Programming Languages · Computer Science 2019-07-15 Bruce Collie , Michael O'Boyle

We present a compositional framework for certifying resource bounds in typed programs. Terms are typed with synthesized bounds drawn from an abstract resource lattice, enabling uniform treatment of time, memory, gas, and domain-specific…

Logic in Computer Science · Computer Science 2025-12-09 Mirco A. Mannucci , Corey Thuro

Intermittently powered energy-harvesting devices enable new applications in inaccessible environments. Program executions must be robust to unpredictable power failures, introducing new challenges in programmability and correctness. One…

Programming Languages · Computer Science 2021-06-22 Milijana Surbatovich , Limin Jia , Brandon Lucia

Stream-based monitoring is a runtime verification approach where a monitor aggregates streams of input data from sensors and other sources to give real-time statistics and assessments of a system's health. One of the central challenges in…

Programming Languages · Computer Science 2026-05-27 Florian Kohn , Arthur Correnson , Jan Baumeister , Bernd Finkbeiner

We introduce a new two-sided type system for verifying the correctness and incorrectness of functional programs with atoms and pattern matching. A key idea in the work is that types should range over sets of normal forms, rather than sets…

Programming Languages · Computer Science 2026-05-11 Celia Mengyue Li , Sophie Pull , Steven Ramsay