English
Related papers

Related papers: Operationally-based Program Equivalence Proofs usi…

200 papers

We present a new soundness proof of Concurrent Separation Logic (CSL) based on a structural operational semantics (SOS). We build on two previous proofs and develop new auxiliary notions to achieve the goal. One uses a denotational…

Logic in Computer Science · Computer Science 2017-12-06 Pedro Soares , António Ravara , Simão Melo de Sousa

Constructor-Based Conditional Rewriting Logic is a general framework for integrating first-order functional and logic programming which gives an algebraic semantics for non-deterministic functional-logic programs. In the context of this…

Logic in Computer Science · Computer Science 2007-05-23 Juan M. Molina , Ernesto Pimentel

Development of energy and performance-efficient embedded software is increasingly relying on application of complex transformations on the critical parts of the source code. Designers applying such nontrivial source code transformations are…

Logic in Computer Science · Computer Science 2011-11-09 K. C. Shashidhar , Maurice Bruynooghe , Francky Catthoor , Gerda Janssens

In this paper, we show a new approach to transformations of an imperative program with function calls and global variables into a logically constrained term rewriting system. The resulting system represents transitions of the whole…

Logic in Computer Science · Computer Science 2019-02-25 Yoshiaki Kanazawa , Naoki Nishida

Concurrent program refinement algebra provides a suitable basis for supporting mechanised reasoning about shared-memory concurrent programs in a compositional manner, for example, it supports the rely/guarantee approach of Jones. The…

Logic in Computer Science · Computer Science 2018-05-30 Ian J. Hayes , Larissa A. Meinicke

To maximize the information gained from a single execution when verifying a concurrent system, one can derive all concurrency-aware equivalent executions and check them against linear specifications. This paper offers an alternative…

Logic in Computer Science · Computer Science 2025-07-08 Martin Leucker

Dijkstra observed that verifying correctness of a program is difficult and conjectured that derivation of a program hand-in-hand with its proof of correctness was the answer. We illustrate this goal-oriented approach by applying it to the…

Mathematical Software · Computer Science 2017-10-13 Devangi N. Parikh , Maggie E. Myers , Robert A. van de Geijn

We give new proofs of asymptotic upper bounds of coding theory obtained within the frame of Delsarte's linear programming method. The proofs rely on the analysis of eigenvectors of some finite-dimensional operators related to orthogonal…

Information Theory · Computer Science 2019-05-14 Alexander Barg , Dmitry Nogin

We introduce a first proofs-as-parallel-programs correspondence for classical logic. We define a parallel and more powerful extension of the simply typed lambda calculus corresponding to an analytic natural deduction based on the excluded…

Logic in Computer Science · Computer Science 2018-09-24 Federico Aschieri , Agata Ciabattoni , Francesco Antonio Genco

Large language models (LLMs) are increasingly deployed for understanding large codebases, but whether they understand operational semantics of long code context or rely on pattern matching shortcuts remains unclear. We distinguish between…

Computation and Language · Computer Science 2026-04-21 Adam Štorek , Mukur Gupta , Samira Hajizadeh , Prashast Srivastava , Suman Jana

The demonstrated code-understanding capability of LLMs raises the question of whether they can be used for automated program verification, a task that demands high-level abstract reasoning about program properties that is challenging for…

Formal Languages and Automata Theory · Computer Science 2024-04-26 Haoze Wu , Clark Barrett , Nina Narodytska

We define an extension of lambda-calculus with dependents types that enables us to encode transparent and opaque probabilistic programs and prove a strong normalisation result for it by a reducibility technique. While transparent…

Logic in Computer Science · Computer Science 2026-03-10 Francesco A. Genco

Program reductions are used widely to simplify reasoning about the correctness of concurrent and distributed programs. In this paper, we propose a general approach to proof simplification of concurrent programs based on exploring generic…

Programming Languages · Computer Science 2019-11-01 Azadeh Farzan , Anthony Vandikas

Many tools used to process programs, like compilers, analyzers, or verifiers, perform transformations on their intermediate program representation, like abstract syntax trees. Implementing such program transformations is a non-trivial task,…

Programming Languages · Computer Science 2026-01-21 Michael Hanus , Steven Libby

Formal semantics provides rigorous, mathematically precise definitions of programming languages, with which we can argue about program behaviour and program equivalence by formal means; in particular, we can describe and verify our…

Programming Languages · Computer Science 2020-11-23 Péter Bereczky , Dániel Horpácsi , Simon Thompson

Loop invariants are fundamental to reasoning about programs with loops. They establish properties about a given loop's behavior. When they additionally are inductive, they become useful for the task of formal verification that seeks to…

Logic Programs with Ordered Disjunction (LPODs) extend classical logic programs with the capability of expressing preferential disjunctions in the heads of program rules. The initial semantics of LPODs, although simple and quite intuitive,…

Logic in Computer Science · Computer Science 2022-05-11 Angelos Charalambidis , Christos Nomikos , Panos Rondogiannis

Algorithm extraction aims to synthesize executable programs directly from models trained on algorithmic tasks, enabling de novo algorithm discovery without relying on human-written code. However, applying this paradigm to Transformer is…

Machine Learning · Computer Science 2026-03-20 Yifan Zhang , Wei Bi , Kechi Zhang , Dongming Jin , Jie Fu , Zhi Jin

In this work we target the problem of provably computing the equivalence between two programs represented as dataflow graphs. To this end, we formalize the problem of equivalence between two programs as finding a set of semantics-preserving…

Machine Learning · Computer Science 2021-06-07 Steve Kommrusch , Théo Barollet , Louis-Noël Pouchet

Modern program verifiers use logic-based encodings of the verification problem that are discharged by a back end reasoning engine. However, instances of such encodings for large programs can quickly overwhelm these back end solvers. Hence,…

Logic in Computer Science · Computer Science 2016-07-18 Peter Schrammel