English
Related papers

Related papers: Generating Loop Invariants for Program Verificatio…

200 papers

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

Software model checking is a challenging problem, and generating relevant invariants is a key factor in proving the safety properties of a program. Program invariants can be obtained by various approaches, including lightweight procedures…

Software Engineering · Computer Science 2024-10-28 Dirk Beyer , Po-Chun Chien , Nian-Ze Lee

This paper summarises the results obtained by the author and his collaborators in a program logic approach to the verification of quantum programs, including quantum Hoare logic, invariant generation and termination analysis for quantum…

Quantum Physics · Physics 2018-08-01 Mingsheng Ying

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

In the verification of loop programs, disjunctive invariants are essential to capture complex loop dynamics such as phase and mode changes. In this work, we develop a novel approach for the automated generation of affine disjunctive…

Logic in Computer Science · Computer Science 2024-11-20 Jingyu Ke , Hongfei Fu , Hongming Liu , Zhouyue Sun , Liqian Chen , Guoqiang Li

We present a verification technique for program safety that combines Iterated Specialization and Interpolating Horn Clause Solving. Our new method composes together these two techniques in a modular way by exploiting the common Horn Clause…

Logic in Computer Science · Computer Science 2014-12-04 Emanuele De Angelis , Fabio Fioravanti , Jorge A. Navas , Maurizio Proietti

Modern languages are equipped with static type checking/inference that helps programmers to keep a clean programming style and to reduce errors. However, the ever-growing size of programs and their continuous evolution require building fast…

Programming Languages · Computer Science 2018-11-28 Matteo Busi , Pierpaolo Degano , Letterio Galletta

We apply multivariate Lagrange interpolation to synthesize polynomial quantitative loop invariants for probabilistic programs. We reduce the computation of an quantitative loop invariant to solving constraints over program variables and…

Software Engineering · Computer Science 2015-07-29 Yu-Fang Chen , Chih-Duo Hong , Bow-Yaw Wang , Lijun Zhang

We address the predicate generation problem in the context of loop invariant inference. Motivated by the interpolation-based abstraction refinement technique, we apply the interpolation theorem to synthesize predicates implicitly implied by…

Logic in Computer Science · Computer Science 2015-07-01 Wonchan Lee , Yungbum Jung , Bow-yaw Wang , Kwangkuen Yi

This paper proposes a technique to specify and verify whether a loop can be parallelised. Our approach can be used as an additional step in a parallelising compiler to verify user annotations about loop dependences. Essentially, our…

Software Engineering · Computer Science 2014-06-16 Stefan Blom , Saeed Darabi , Marieke Huisman

Program invariants are important for defect detection, program verification, and program repair. However, existing techniques have limited support for important classes of invariants such as disjunctions, which express the semantics of…

Software Engineering · Computer Science 2019-04-17 ThanhVu Nguyen , Deepak Kapur , Westley Weimer , Stephanie Forrest

A fundamental problem in program verification concerns the termination of simple linear loops of the form x := u ; while Bx >= b do {x := Ax + a} where x is a vector of variables, u, a, and c are integer vectors, and A and B are integer…

Computational Complexity · Computer Science 2014-10-14 Joël Ouaknine , João Sousa Pinto , James Worrell

Human written source code in imperative programming languages exhibits typical patterns for variable use such as flags, loop iterators, counters, indices, bitvectors etc. Although it is widely understood by practitioners that these variable…

Programming Languages · Computer Science 2013-06-17 Yulia Demyanova , Helmut Veith , Florian Zuleger

We present a method for verifying the correctness of imperative programs which is based on the automated transformation of their specifications. Given a program prog, we consider a partial correctness specification of the form $\{\varphi\}$…

Logic in Computer Science · Computer Science 2020-02-19 Emanuele De Angelis , Fabio Fioravanti , Alberto Pettorossi , Maurizio Proietti

Software development is inherently incremental. Nowadays, many software companies adopt an agile process and a shorter release cycle, where software needs to be delivered faster with quality assurances. On the other hand, the majority of…

Software Engineering · Computer Science 2020-07-01 Ashwin Kallingal Joshy , Wei Le

We present an approach for implementing a formally certified loop-invariant code motion optimization by composing an unrolling pass and a formally certified yet efficient global subexpression elimination.This approach is lightweight: each…

Programming Languages · Computer Science 2021-05-05 David Monniaux , Cyril Six

We report on the automation of a technique to prove the correctness of program transformations in higher-order program calculi which may permit recursive let-bindings as they occur in functional programming languages. A program…

Logic in Computer Science · Computer Science 2019-02-25 David Sabel

Bounded verification has proved useful to detect bugs and to increase confidence in the correctness of a program. In contrast to unbounded verification, reasoning about calls via (bounded) inlining and about loops via (bounded) unrolling…

Logic in Computer Science · Computer Science 2023-03-14 Thibault Dardinier , Gaurav Parthasarathy , Peter Müller

Indexed loop scopes have been shown to be a helpful tool in creating sound loop invariant rules in dynamic logic for programming languages with abrupt completion, such as Java. These rules do not require program transformation of the loop…

Programming Languages · Computer Science 2020-02-10 Nathan Wasser , Dominic Steinhöfel

Refinement is a powerful mechanism for mastering the complexities that arise when formally modelling systems. Refinement also brings with it additional proof obligations -- requiring a developer to discover properties relating to their…

Logic in Computer Science · Computer Science 2011-06-22 Maria Teresa Llano , Andrew Ireland , Alison Pease
‹ Prev 1 3 4 5 6 7 10 Next ›