English
Related papers

Related papers: Predicate Abstraction for Linked Data Structures

200 papers

We recently proposed an approach for the specification and modular formal verification of the interactive (I/O) behavior of programs, based on an embedding of Petri nets into separation logic. While this approach is scalable and modular in…

Logic in Computer Science · Computer Science 2019-01-31 Willem Penninckx , Amin Timany , Bart Jacobs

Most methods for neural network verification focus on bounding the image, i.e., set of outputs for a given input set. This can be used to, for example, check the robustness of neural network predictions to bounded perturbations of an input.…

Machine Learning · Computer Science 2025-06-24 Xiyue Zhang , Benjie Wang , Marta Kwiatkowska , Huan Zhang

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

Recently, data abstraction has been studied in the context of separation logic, with noticeable practical successes: the developed logics have enabled clean proofs of tricky challenging programs, such as subject-observer patterns, and they…

Programming Languages · Computer Science 2015-07-01 Jacob Thamsborg , Lars Birkedal , Hongseok Yang

We argue that the implementation and verification of compilers for functional programming languages are greatly simplified by employing a higher-order representation of syntax known as Higher-Order Abstract Syntax or HOAS. The underlying…

Programming Languages · Computer Science 2017-02-14 Yuting Wang

High-level transformation languages like Rascal include expressive features for manipulating large abstract syntax trees: first-class traversals, expressive pattern matching, backtracking and generalized iterators. We present the design and…

Programming Languages · Computer Science 2018-09-18 Ahmad Salim Al-Sibahi , Thomas P. Jensen , Aleksandar S. Dimovski , Andrzej Wasowski

Static program analysis is a valuable tool for any programming language that people write programs in. The prevalence of scripting languages in the world suggests programming language interpreters are relatively easy to write. Users of…

Programming Languages · Computer Science 2015-05-01 James Ian Johnson

Region-based type systems are a powerful tool for various kinds of program analysis. We introduce a new inference algorithm for region types based on an abstract notion of environment transformation. It analyzes the code of a method only…

Programming Languages · Computer Science 2022-09-09 Ulrich Schöpp , Chuangjie Xu

The framework Pure Type System (PTS) offers a simple and general approach to designing and formalizing type systems. However, in the presence of dependent types, there often exist certain acute problems that make it difficult for PTS to…

Programming Languages · Computer Science 2017-03-28 Hongwei Xi

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

Toman et al. have proposed a type system for automatic verification of low-level programs, which combines ownership types and refinement types to enable strong updates of refinement types in the presence of pointer aliases. We extend their…

Programming Languages · Computer Science 2023-12-12 Izumi Tanaka , Ken Sakayori , Naoki Kobayashi

Large language models (LLMs) have achieved impressive proficiency on logic and programming tasks, often rivaling expert-level performance. However, generating functionally correct hardware description language (HDL) code from natural…

Programming Languages · Computer Science 2025-05-27 Matthew DeLorenzo , Kevin Tieu , Prithwish Jana , Piyush Jha , Dileep Kalathil , Vijay Ganesh , Jeyavijayan Rajendran

Abstraction is a key verification technique to improve scalability. However, its use for neural networks is so far extremely limited. Previous approaches for abstracting classification networks replace several neurons with one of them that…

Logic in Computer Science · Computer Science 2023-07-21 Calvin Chau , Jan Křetínský , Stefanie Mohr

Assumption-based argumentation (ABA) is a central structured argumentation formalism. As shown recently, answer set programming (ASP) enables efficiently solving NP-hard reasoning tasks of ABA in practice, in particular in the commonly…

Artificial Intelligence · Computer Science 2021-08-10 Tuomo Lehtonen , Johannes P. Wallner , Matti Järvisalo

We propose a hierarchical abstract domain for the analysis of free-list memory allocators that tracks shape and numerical properties about both the heap and the free lists. Our domain is based on Separation Logic extended with predicates…

Programming Languages · Computer Science 2016-08-22 Bin Fang , Mihaela Sighireanu

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

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 2023-11-27 Aurel Bílý , João C. Pereira , Jan Schär , Peter Müller

We introduce Flux, which shows how logical refinements can work hand in glove with Rust's ownership mechanisms to yield ergonomic type-based verification of low-level pointer manipulating programs. First, we design a novel refined type…

Programming Languages · Computer Science 2022-11-15 Nico Lehmann , Adam Geller , Niki Vazou , Ranjit Jhala

Safety verification of robot applications is extremely challenging due to the complexity of the environment that a robot typically operates in. Formal verification with model-checking provides guarantees but it may often take too long or…

Robotics · Computer Science 2025-05-30 Christoph Luckeneder , Ralph Hoch , Hermann Kaindl

This paper presents a compositional approach to specification-guided abstraction refinement for control synthesis of a nonlinear system associated with a method to over-approximate its reachable sets. Given an initial coarse partition of…

Systems and Control · Computer Science 2017-12-19 Pierre-Jean Meyer , Dimos V. Dimarogonas