English
Related papers

Related papers: Verifying Programs via Intermediate Interpretation

200 papers

We study when a programming language can emulate programs written in that same language without delegating the guest program back to the host evaluator or compiler. We call this property emulation-completeness. The central observation is…

Programming Languages · Computer Science 2026-04-20 Gregory Morse , Tamás Kozsik

Implicit computational complexity, which aims at characterizing complexity classes by machine-independent means, has traditionally been based, on the one hand, on programs and deductive formalisms for free algebras, and on the other hand on…

Logic in Computer Science · Computer Science 2018-02-12 Daniel Leivant , Jean-Yves Marion

Our scientific knowledge is increasingly built on software output. User code which defines data analysis pipelines and computational models is essential for research in the natural and social sciences, but little is known about how to…

Software Engineering · Computer Science 2020-03-16 Maxwell Shinn

Researchers have recently designed a number of application-specific fault tolerance mechanisms that enable applications to either be naturally resilient to errors or include additional detection and correction steps that can bring the…

Programming Languages · Computer Science 2018-05-17 Brett Boston , Zoe Gong , Michael Carbin

We consider the problem of automatically verifying programs which manipulate arbitrary data structures. Our specification language is expressive, contains a notion of \emph{separation}, and thus enables a precise specification of…

Programming Languages · Computer Science 2017-11-16 Duc-Hiep Chu , Joxan Jaffar

Formal verification of software is a bit of a niche activity: it is only applied to the most safety-critical or security-critical software and it is typically only performed by specialized verification engineers. This paper considers…

Logic in Computer Science · Computer Science 2020-11-02 Alastair Reid , Luke Church , Shaked Flur , Sarah de Haas , Maritza Johnson , Ben Laurie

Evaluating the effectiveness of software protection is crucial for selecting the most effective methods to safeguard assets within software applications. Obfuscation involves techniques that deliberately modify software to make it more…

Cryptography and Security · Computer Science 2025-11-27 Leonardo Regano , Daniele Canavese , Cataldo Basile , Marco Torchiano

In this paper, we survey the complexity of distinct methods that allow the programmer to synthesize a sup-interpretation, a function providing an upper- bound on the size of the output values computed by a program. It consists in a static…

Computational Complexity · Computer Science 2012-11-29 Romain Péchoux

The computational burden of probabilistic inference remains a hurdle for applying probabilistic programming languages to practical problems of interest. In this work, we provide a semantic and algorithmic foundation for efficient exact…

Programming Languages · Computer Science 2019-07-02 Steven Holtzen , Todd Millstein , Guy Van den Broeck

Security protocols are essential building blocks of modern IT systems. Subtle flaws in their design or implementation may compromise the security of entire systems. It is, thus, important to prove the absence of such flaws through formal…

Cryptography and Security · Computer Science 2023-09-12 Linard Arquint , Malte Schwerhoff , Vaibhav Mehta , Peter Müller

The benchmark for computation is typically given as Turing computability; the ability for a computation to be performed by a Turing Machine. Many languages exploit (indirect) encodings of Turing Machines to demonstrate their ability to…

Formal Languages and Automata Theory · Computer Science 2014-10-29 Thomas Given-Wilson

In various provers and deductive verification tools, logical transformations are used extensively in order to reduce a proof task into a number of simpler tasks. Logical transformations are often part of the trusted base of such tools. In…

Logic in Computer Science · Computer Science 2021-07-07 Quentin Garchery

Verifying specifications for large-scale modern engineering systems can be a time-consuming task, as most formal verification methods are limited to systems of modest size. Recently, contract-based design and verification has been proposed…

Systems and Control · Electrical Eng. & Systems 2021-03-26 Miel Sharf , Bart Besselink , Karl Henrik Johansson

Verification proofs encode complete program behavior, yet we discard them after checking correctness. We present compiling by proving, a paradigm that transforms these proofs into optimized execution rules. By constructing All-Path…

Programming Languages · Computer Science 2025-09-29 Jianhong Zhao , Everett Hildenbrandt , Juan Conejero , Yongwang Zhao

A sup-interpretation is a tool which provides an upper bound on the size of a value computed by some symbol of a program. Sup-interpretations have shown their interest to deal with the complexity of first order functional programs. For…

Programming Languages · Computer Science 2007-06-18 Jean-Yves Marion , Romain Pechoux

C-RASP is a simple programming language that was recently shown to capture concepts expressible by transformers. In this paper, we develop new algorithmic techniques for automatically verifying C-RASPs. To this end, we establish a…

Machine Learning · Computer Science 2026-05-19 Hongjian Jiang , Matthew Hague , Philipp Rümmer , Anthony Widjaja Lin

Refinement transforms an abstract system model into a concrete, executable program, such that properties established for the abstract model carry over to the concrete implementation. Refinement has been used successfully in the development…

Logic in Computer Science · Computer Science 2021-10-27 Aurel Bílý , Christoph Matheja , Peter Müller

To derive a program for a given specification R means to find an artifact P that satisfies two conditions: P is executable in some programming language; and P is correct with respect to R. Refinement-based program derivation achieves this…

Software Engineering · Computer Science 2018-10-24 Marwa Benabdelali , Lamia Labed Jilani , Wided Ghardallou , Ali Mili

We show how the complexity of higher-order functional programs can be analysed automatically by applying program transformations to a defunctionalized versions of them, and feeding the result to existing tools for the complexity analysis of…

Logic in Computer Science · Computer Science 2015-06-17 Martin Avanzini , Ugo Dal Lago , Georg Moser

There are two ways to check if a program is correct, namely execute it or review it. While executing a program is the ultimate test for its correctness reviewing the program can occur earlier in its development and find problems if done…

Software Engineering · Computer Science 2024-07-03 Scott Ballentine , Eitan Farchi