English
Related papers

Related papers: Treating for-Loops as First-Class Citizens in Proo…

200 papers

Loop scopes have been shown to be a helpful tool in creating sound loop invariant rules which do not require program transformation of the loop body. Here we extend this idea from while-loops to for-loops and also present sound loop…

Programming Languages · Computer Science 2019-01-25 Nathan Wasser , Dominic Steinhöfel

In software engineering, taking a good election between recursion and iteration is essential because their efficiency and maintenance are different. In fact, developers often need to transform iteration into recursion (e.g., in debugging,…

Programming Languages · Computer Science 2014-10-22 David Insa , Josep Silva

Pragmas for loop transformations, such as unrolling, are implemented in most mainstream compilers. They are used by application programmers because of their ease of use compared to directly modifying the source code of the relevant loops.…

Programming Languages · Computer Science 2019-01-31 Michael Kruse , Hal Finkel

Loop invariants play a central role in the verification of imperative programs. However, finding these invariants is often a difficult and time-consuming task for the programmer. We have previously shown how program transformation can be…

Logic in Computer Science · Computer Science 2017-08-25 G. W. Hamilton

Software verification has emerged as a key concern for ensuring the continued progress of information technology. Full verification generally requires, as a crucial step, equipping each loop with a "loop invariant". Beyond their role in…

Software Engineering · Computer Science 2014-01-14 Carlo A. Furia , Bertrand Meyer , Sergey Velder

While loops are present in virtually all imperative programming languages. They are important both for practical reasons (performing a number of iterations not known in advance) and theoretical reasons (achieving Turing completeness). In…

Programming Languages · Computer Science 2023-09-26 David Nowak , Vlad Rusu

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…

Classical first-order logic is in many ways central to work in mathematics, linguistics, computer science and artificial intelligence, so it is worthwhile to define it in full detail. We present soundness and completeness proofs of a…

Logic in Computer Science · Computer Science 2020-03-02 Asta Halkjær From , Alexander Birch Jensen , Anders Schlichtkrull , Jørgen Villadsen

We examine the relationships between axiomatic and cyclic proof systems for the partial and total versions of Hoare logic and those of its dual, known as reverse Hoare logic (or sometimes incorrectness logic). In the axiomatic proof systems…

Logic in Computer Science · Computer Science 2026-03-03 James Brotherston , Quang Loc Le , Gauri Desai , Yukihiro Oda

First-order logic (FOL) has proved to be a versatile and expressive tool as the basis of abstract modeling languages. Used to verify complex systems with unbounded domains, such as heap-manipulating programs and distributed protocols, FOL,…

Programming Languages · Computer Science 2024-12-02 Neta Elad , Sharon Shoham

Invariants are the predominant approach to verify the correctness of loops. As an alternative, loop contracts, which make explicit the premise and conclusion of the underlying induction proof, can sometimes capture correctness conditions…

Logic in Computer Science · Computer Science 2021-10-13 Gidon Ernst

In this paper we use pre existing language support for type modifiers and object capabilities to enable a system for sound runtime verification of invariants. Our system guarantees that class invariants hold for all objects involved in…

Programming Languages · Computer Science 2019-02-28 Isaac Oscar Gariano , Marco Servetto , Alex Potanin

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

The purpose of this paper is to develop and study recursive proofs of coinductive predicates. Such recursive proofs allow one to discover proof goals in the construction of a proof of a coinductive predicate, while still allowing the use of…

Logic in Computer Science · Computer Science 2018-02-21 Henning Basold

Cyclic proof theory breaks tradition by allowing certain infinite proofs: those that can be represented by a finite graph, while satisfying a soundness condition. We reconcile cyclic proofs with traditional finite proofs: we extend abstract…

Logic in Computer Science · Computer Science 2026-02-13 Lide Grotenhuis , Daniël Otten

In this paper we adapt the definitions and results from Apt and Vermeulen on `First order logic as a constraint programming language' (in: Proceedings of LPAR2001, Baaz and Voronkov (eds.), Springer LNAI 2514) to include important ideas…

Logic in Computer Science · Computer Science 2007-05-23 C. F. M. Vermeulen

One of the obstacles in automatic program proving is to obtain suitable loop invariants. The invariant of a loop is a weakened form of its postcondition (the loop's goal, also known as its contract); the present work takes advantage of this…

Software Engineering · Computer Science 2013-08-14 Carlo A. Furia , Bertrand Meyer

Techniques to achieve various forms of test coverage, such as branch coverage, typically do not iterate loops; in other words, they treat a loop as a conditional, executed zero or one time. Existing work by the author and collaborators…

Software Engineering · Computer Science 2024-08-13 Bertrand Meyer

We present the first approach to prove non-termination of integer programs that is based on loop acceleration. If our technique cannot show non-termination of a loop, it tries to accelerate it instead in order to find paths to other…

Logic in Computer Science · Computer Science 2019-08-09 Florian Frohn , Jürgen Giesl

A first step towards more reliable software is to execute each statement and each control-flow path in a method once. In this paper, we present a formal method to automatically compute test cases for this purpose based on the idea of a…

Programming Languages · Computer Science 2012-05-31 Jürgen Christ , Jochen Hoenicke , Martin Schäf
‹ Prev 1 2 3 10 Next ›