English
Related papers

Related papers: Reasoning about concurrent loops and recursion wit…

200 papers

Commutativity has proven to be a powerful tool in reasoning about concurrent programs. Recent work has shown that a commutativity-based reduction of a program may admit simpler proofs than the program itself. The framework of…

Programming Languages · Computer Science 2023-11-07 Azadeh Farzan , Dominik Klumpp , Andreas Podelski

We describe the design and implementation of a reasoning engine that facilitates the gamification of loop-invariant discovery. Our reasoning engine enables students, computational agents and regular software engineers with no formal methods…

Artificial Intelligence · Computer Science 2021-09-03 Andrew Walter , Seth Cooper , Panagiotis Manolios

Logic programming with fixed-point definitions is a useful extension of traditional logic programming. Fixed-point definitions can capture simple model checking problems and closed-world assumptions. Its operational semantics is typically…

Logic in Computer Science · Computer Science 2015-08-06 Keehang Kwon

Motivated by applications in automated verification of higher-order functional programs, we develop a notion of constrained Horn clauses in higher-order logic and a decision problem concerning their satisfiability. We show that, although…

Programming Languages · Computer Science 2017-08-02 Toby Cathcart Burn , C. -H. Luke Ong , Steven J. Ramsay

When optimizing a thread in a concurrent program (either done manually or by the compiler), it must be guaranteed that the resulting thread is a refinement of the original thread. Most theories of valid optimizations are formulated in terms…

Programming Languages · Computer Science 2015-10-27 Daniel Poetzl , Daniel Kroening

We extend the simply-typed guarded $\lambda$-calculus with discrete probabilities and endow it with a program logic for reasoning about relational properties of guarded probabilistic computations. This provides a framework for programming…

Programming Languages · Computer Science 2018-02-28 Alejandro Aguirre , Gilles Barthe , Lars Birkedal , Aleš Bizjak , Marco Gaboardi , Deepak Garg

We propose trace logic, an instance of many-sorted first-order logic, to automate the partial correctness verification of programs containing loops. Trace logic generalizes semantics of program locations and captures loop semantics by…

Logic in Computer Science · Computer Science 2020-08-07 Pamina Georgiou , Bernhard Gleiss , Laura Kovács

We tackle the problem of automatically designing concurrent data structure operations given a sequential data structure specification and knowledge about concurrent behavior. Designing concurrent code is a non-trivial task even in simplest…

Programming Languages · Computer Science 2021-09-27 Sarat Chandra Varanasi , Neeraj Mittal , Gopal Gupta

To encourage the development of methods with reproducible and robust training behavior, we propose a challenge paradigm where competitors are evaluated directly on the performance of their learning procedures rather than pre-trained agents.…

In this paper we tackle the problem of automatically designing concurrent data structure operations given a sequential data structure specification and knowledge about concurrent behavior. Designing concurrent code is a non-trivial task…

Logic in Computer Science · Computer Science 2020-11-10 Sarat Chandra Varanasi , Neeraj Mittal , Gopal Gupta

A logic is presented for reasoning on iterated sequences of formulae over some given base language. The considered sequences, or "schemata", are defined inductively, on some algebraic structure (for instance the natural numbers, the lists,…

Logic in Computer Science · Computer Science 2012-04-16 Mnacho Echenim , Nicolas Peltier

Inductive reasoning, a cornerstone of human cognition, enables generalization from limited data but hasn't yet been fully achieved by large language models (LLMs). While modern LLMs excel at reasoning tasks, their ability to maintain stable…

Artificial Intelligence · Computer Science 2025-05-29 Chunyang Li , Weiqi Wang , Tianshi Zheng , Yangqiu Song

A recent trend in object oriented (OO) programming languages is the use of Access Permissions (APs) as an abstraction for controlling concurrent executions of programs. The use of AP source code annotations defines a protocol specifying how…

Logic in Computer Science · Computer Science 2018-02-14 Carlos Olarte , Elaine Pimentel , Camilo Rueda

CLASS is a proof-of-concept general purpose linear programming language, flexibly supporting realistic concurrent programming idioms, and featuring an expressive linear type system ensuring that programs (1) never misuse or leak stateful…

Programming Languages · Computer Science 2025-05-28 Luís Caires

A logic program is an executable specification. For example, merge sort in pure Prolog is a logical formula, yet shows creditable performance on long linked lists. But such executable specifications are a compromise: the logic is distorted…

Programming Languages · Computer Science 2015-09-29 M. H. van Emden

Rust is a popular programming language in building various low-level software in recent years. It aims to provide safe concurrency when implementing multi-threaded software through a suite of compiler checking rules. Unfortunately, there is…

Programming Languages · Computer Science 2019-02-07 Zeming Yu , Linhai Song , Yiying Zhang

We propose a method for inferring \emph{parameterized regular types} for logic programs as solutions for systems of constraints over sets of finite ground Herbrand terms (set constraint systems). Such parameterized regular types generalize…

Logic in Computer Science · Computer Science 2010-02-16 F. Bueno , J. Navas , M. Hermenegildo

Almost-sure termination is an important correctness property for probabilistic programs, and a number of program logics have been developed for establishing it. However, these logics have mostly been developed for first-order programs…

Logic in Computer Science · Computer Science 2024-11-12 Simon Oddershede Gregersen , Alejandro Aguirre , Philipp G. Haselwarter , Joseph Tassarotti , Lars Birkedal

This paper concerns the relation between imperative process algebra and rely/guarantee logic. An imperative process algebra is complemented by a rely/guarantee logic that can be used to reason about how data change in the course of a…

Logic in Computer Science · Computer Science 2025-09-23 C. A. Middelburg

Relational program verification is a variant of program verification where one can reason about two programs and as a special case about two executions of a single program on different inputs. Relational program verification can be used for…

Programming Languages · Computer Science 2019-10-23 Alejandro Aguirre , Gilles Barthe , Marco Gaboardi , Deepak Garg , Pierre-Yves Strub