English
Related papers

Related papers: An Outline of Separation Logic

200 papers

We present Polaris, a concurrent separation logic with support for probabilistic reasoning. As part of our logic, we extend the idea of coupling, which underlies recent work on probabilistic relational logics, to the setting of programs…

Programming Languages · Computer Science 2018-11-22 Joseph Tassarotti , Robert Harper

Over-approximating (OX) program logics, such as separation logic (SL), are used for verifying properties of heap-manipulating programs: all terminating behaviour is characterised, but established results and errors need not be reachable. OX…

Logic in Computer Science · Computer Science 2023-08-31 Petar Maksimović , Caroline Cronjäger , Andreas Lööw , Julian Sutherland , Philippa Gardner

It is well known that, under certain conditions, it is possible to split logic programs under stable model semantics, i.e. to divide such a program into a number of different "levels", such that the models of the entire program can be…

Artificial Intelligence · Computer Science 2007-05-23 Joost Vennekens , David Gilis , Marc Denecker

In the logic programming paradigm, a program is defined by a set of methods, each of which can be executed when specific conditions are met during the current state of an execution. The semantics of these programs can be elegantly…

Logic in Computer Science · Computer Science 2024-10-02 Matteo Acclavio , Roberto Maieli

Type-based amortised resource analysis following Hofmann and Jost---where resources are associated with individual elements of data structures and doled out to the programmer under a linear typing discipline---have been successful in…

Logic in Computer Science · Computer Science 2015-07-01 Robert Atkey

Most automated verifiers for separation logic target the symbolic-heap fragment, disallowing both the magic-wand operator and the application of classical Boolean operators to spatial formulas. This is not surprising, as support for the…

Logic in Computer Science · Computer Science 2021-03-15 Jens Pagel , Florian Zuleger

We encode arrays as functions which, in turn, are encoded as sets of ordered pairs. The set cardinality of each of these functions coincides with the length of the array it is representing. Then we define a fragment of set theory that is…

Logic in Computer Science · Computer Science 2026-05-12 Maximiliano Cristiá , Gianfranco Rossi

Probabilistic couplings are the foundation for many probabilistic relational program logics and arise when relating random sampling statements across two programs. In relational program logics, this manifests as dedicated coupling rules…

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

Symbolic execution is a well established method for test input generation. Despite of having achieved tremendous success over numerical domains, existing symbolic execution techniques for heap-based programs are limited due to the lack of a…

Software Engineering · Computer Science 2019-09-17 Long H. Pham , Quang Loc Le , Quoc-Sang Phan , Jun Sun , Shengchao Qin

Separation Logic is a non-classical logic used to verify pointer-intensive code. In this paper, however, we show that Separation Logic, along with its natural extensions, can also be used as a specification language for concurrent-system…

Logic in Computer Science · Computer Science 2009-11-12 Edgar G. Daylight , Sandeep K. Shukla , Davide Sergio

Answer Set Programming (ASP) is a successful method for solving a range of real-world applications. Despite the availability of fast ASP solvers, computing answer sets demands a very large computational power, since the problem tackled is…

Artificial Intelligence · Computer Science 2021-09-20 Rachel Ben-Eliyahu-Zohary

Separation logic was conceived in order to make the verification of pointer programs scalable to large systems and it has proven extremely effective. The key idea is that programs typically access only small parts of memory, allowing for…

Logic in Computer Science · Computer Science 2025-08-05 Berend van Starkenburg , Henning Basold , Chase Ford

Over the past decade a considerable amount of research has been done to expand logic programming languages to handle incomplete information. One such language is the language of epistemic specifications. As is usual with logic programming…

Artificial Intelligence · Computer Science 2007-05-23 Richard Watson

We present Lilac, a separation logic for reasoning about probabilistic programs where separating conjunction captures probabilistic independence. Inspired by an analogy with mutable state where sampling corresponds to dynamic allocation, we…

Programming Languages · Computer Science 2023-05-29 John M. Li , Amal Ahmed , Steven Holtzen

Slicing is a program analysis technique originally developed for imperative languages. It facilitates understanding of data flow and debugging. This paper discusses slicing of Constraint Logic Programs. Constraint Logic Programming (CLP) is…

Software Engineering · Computer Science 2007-05-23 Gyongyi Szilagyi , Tibor Gyimothy , Jan Maluszynski

Rule-based reasoning is an essential part of human intelligence prominently formalized in artificial intelligence research via logic programs. Describing complex objects as the composition of elementary ones is a common strategy in computer…

Artificial Intelligence · Computer Science 2023-12-15 Christian Antic

We investigate array separation logic (ASL), a variant of symbolic-heap separation logic in which the data structures are either pointers or arrays, i.e., contiguous blocks of allocated memory. This logic provides a language for…

Logic in Computer Science · Computer Science 2016-11-21 James Brotherston , Nikos Gorogiannis , Max Kanovich

In systems verification we are often concerned with multiple, inter-dependent properties that a program must satisfy. To prove that a program satisfies a given property, the correctness of intermediate states of the program must be…

Logic in Computer Science · Computer Science 2024-10-23 Danielle Matichuk

Separation logic is successful for software verification of heap-manipulating programs. Numbers are necessary to be added to separation logic for verification of practical software where numbers are important. However, properties of the…

Logic in Computer Science · Computer Science 2026-05-25 Sohei Ito , Makoto Tatsuta

Dynamically typed object-oriented languages enable programmers to write elegant, reusable and extensible programs. However, with the current methodology for program verification, the absence of static type information creates significant…

Programming Languages · Computer Science 2015-01-13 Björn Engelmann , Ernst-Rüdiger Olderog , Nils Erik Flick