English
Related papers

Related papers: Modular Verification of Recursive Programs

200 papers

Using the programming language Haskell, we introduce an implementation of propositional calculus, number theory, and a simple imperative language that can evaluate arithmetic and boolean expressions. Finally, we provide an implementation of…

Programming Languages · Computer Science 2021-12-28 Boro Sitnikovski

Although they differ in the functionality they offer, low-level systems exhibit certain patterns of design and utilization of computing resources. In this paper, we argue the position that modalities, in the sense of modal logic, should be…

Logic in Computer Science · Computer Science 2025-09-30 Ismail Kuru , Colin S. Gordon

Choreographic programming is a paradigm where a concurrent or distributed system is developed in a top-down fashion. Programs, called choreographies, detail the desired interactions between processes, and can be compiled to distributed…

Programming Languages · Computer Science 2023-05-01 Luís Cruz-Filipe , Eva Graversen , Fabrizio Montesi , Marco Peressotti

This paper presents an extension to Hoare logic for pointer program verification. Logic formulas with user-defined recursive functions are used to specify properties on the program states before/after program executions. Three basic…

Logic in Computer Science · Computer Science 2010-12-14 Jianhua Zhao , Xuandong Li

Specifications for modular program verifiers are expressed as constraints on program states (e.g. preconditions) and relations on program states (e.g. postconditions). For programs whose domain is managing resources of any kind (e.g.…

Programming Languages · Computer Science 2024-04-19 Zachary Grannan , Alexander J. Summers

The need for rigorous process composition is encountered in many situations pertaining to the development and analysis of complex systems. We discuss the use of Classical Linear Logic (CLL) for correct-by-construction resource-based process…

Logic in Computer Science · Computer Science 2018-08-20 Petros Papapanagiotou , Jacques Fleuriot

The general completeness problem of Hoare logic relative to the standard model $N$ of Peano arithmetic has been studied by Cook, and it allows for the use of arbitrary arithmetical formulas as assertions. In practice, the assertions would…

Logic in Computer Science · Computer Science 2017-03-02 Zhaowei Xu , Wenhui Zhang , Yuefei Sui

Verifying whether a procedure is observationally pure is useful in many software engineering scenarios. An observationally pure procedure always returns the same value for the same argument, and thus mimics a mathematical function. The…

Software Engineering · Computer Science 2019-02-15 Himanshu Arora , Raghavan Komondoor , G. Ramalingam

There are many techniques and tools for termination of C programs, but up to now they were not very powerful for termination proofs of programs whose termination depends on recursive data structures like lists. We present the first approach…

Logic in Computer Science · Computer Science 2023-07-21 Jera Hensel , Jürgen Giesl

VeriFast is a prototype tool based on separation logic for modular verification of C and Java programs. We are in the process of adding support for C++. In this report, we describe the features of C++ for which we added support so far, as…

Logic in Computer Science · Computer Science 2022-12-29 Niels Mommen , Bart Jacobs

We consider Hoare-style verification for the graph programming language GP 2. In previous work, graph properties were specified by so-called E-conditions which extend nested graph conditions. However, this type of assertions is not easy to…

Logic in Computer Science · Computer Science 2020-12-04 Gia S. Wulandari , Detlef Plump

In previous work, summarized in this paper, we proposed an operation of parallel composition for rewriting-logic theories, allowing compositional specification of systems and reusability of components. The present paper focuses on…

Logic in Computer Science · Computer Science 2023-08-01 Óscar Martín , Alberto Verdejo , Narciso Martí-Oliet

Theoretical foundations of compositional reasoning about heaps in imperative programming languages are investigated. We introduce a novel concept of compositional symbolic memory and its relevant properties. We utilize these formal…

Programming Languages · Computer Science 2019-06-27 Yurii Kostyukov , Konstantin Batoev , Dmitry Mordvinov , Michael Kostitsyn , Aleksandr Misonizhnik

We consider Hoare-style verification for the graph programming language GP 2. In previous work, graph properties were specified by so-called E-conditions which extend nested graph conditions. However, this type of assertions is not easy to…

Logic in Computer Science · Computer Science 2020-11-04 Gia Wulandari , Detlef Plump

We present a novel and well automatable approach to formal verification of C programs with underspecified semantics, i.e., a language semantics that leaves open the order of certain evaluations. First, we reduce this problem to…

Programming Languages · Computer Science 2022-08-10 Eduard Kamburjan , Nathan Wasser

We derive multiple program logics, including correctness, incorrectness, and relational Hoare logic, from the axioms of imperative categories: uniformly traced distributive copy-discard categories. We introduce an internal language for…

Logic in Computer Science · Computer Science 2025-07-25 Filippo Bonchi , Elena Di Lavore , Mario Román , Sam Staton

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

Static verification provides strong correctness guarantees for code; however, fully specifying programs for static verification is a complex, burdensome process for users. Gradual verification was introduced to make this process easier by…

Programming Languages · Computer Science 2025-07-21 Priyam Gupta

Using standard domain-theoretic fixed-points, we present an approach for defining recursive functions that are formulated in monadic style. The method works both in the simple option monad and the state-exception monad of Isabelle/HOL's…

Logic in Computer Science · Computer Science 2010-12-23 Alexander Krauss

This paper proposes a modal typing system that enables us to handle self-referential formulae, including ones with negative self-references, which on one hand, would introduce a logical contradiction, namely Russell's paradox, in the…

Logic in Computer Science · Computer Science 2017-03-30 Hiroshi Nakano