Results 1  10
of
22
Automatically generating loop invariants using quantifier elimination
 In Deduction and Applications
, 2005
"... Abstract. An approach for automatically generating loop invariants using quantifierelimination is proposed. An invariant of a loop is hypothesized as a parameterized formula. Parameters in the invariant are discovered by generating constraints on the parameters by ensuring that the formula is indee ..."
Abstract

Cited by 27 (0 self)
 Add to MetaCart
Abstract. An approach for automatically generating loop invariants using quantifierelimination is proposed. An invariant of a loop is hypothesized as a parameterized formula. Parameters in the invariant are discovered by generating constraints on the parameters by ensuring that the formula is indeed preserved by the execution path corresponding to every basic cycle of the loop. The parameterized formula can be successively refined by considering execution paths one by one; heuristics can be developed for determining the order in which the paths are considered. Initialization of program variables as well as the precondition and postcondition of the loop, if available, can also be used to further refine the hypothesized invariant. Constraints on parameters generated in this way are solved for possible values of parameters. If no solution is possible, this means that an invariant of the hypothesized form does not exist for the loop. Otherwise, if the parametric constraints are solvable, then under certain conditions on methods for generating these constraints, the strongest possible invariant of the hypothesized form can be generated from most general solutions of the parametric constraints. The approach is illustrated using the firstorder theory of polynomial equations as well as Presburger arithmetic. 1.
An abstract interpretation approach for automatic generation of polynomial invariants
 In 11th Static Analysis Symposium
, 2004
"... www.cs.unm.edu/~kapur Abstract. A method for generating polynomial invariants of imperative programs is presented using the abstract interpretation framework. It is shown that for programs with polynomial assignments, an invariant consisting of a conjunction of polynomial equalities can be automatic ..."
Abstract

Cited by 15 (4 self)
 Add to MetaCart
www.cs.unm.edu/~kapur Abstract. A method for generating polynomial invariants of imperative programs is presented using the abstract interpretation framework. It is shown that for programs with polynomial assignments, an invariant consisting of a conjunction of polynomial equalities can be automatically generated for each program point. The proposed approach takes into account tests in conditional statements as well as in loops, insofar as they can be abstracted to be polynomial equalities and disequalities. The semantics of each statement is given as a transformation on polynomial ideals. Merging of paths in a program is defined as the intersection of the polynomial ideals associated with each path. For a loop junction, a widening operator based on selecting polynomials up to a certain degree is proposed. The algorithm for finding invariants using this widening operator is shown to terminate in finitely many steps. The proposed approach has been implemented and successfully tried on many programs. A table providing details about the programs is given. 1
Large Experimental Program Verification in the Theorema System
 In Proceedings ISOLA 2004, Cyprus
, 2004
"... Abstract We describe practical experiments of program verification in the frame of the Theorema system. This includes both imperative programs (using Hoare logic), as well as functional programs (using fixpoint theory). For a certain class of imperative programs we are able to generate automatically ..."
Abstract

Cited by 10 (8 self)
 Add to MetaCart
Abstract We describe practical experiments of program verification in the frame of the Theorema system. This includes both imperative programs (using Hoare logic), as well as functional programs (using fixpoint theory). For a certain class of imperative programs we are able to generate automatically the loop invariants and then verification conditions, by using combinatorial and algebraic techniques. Verification conditions for functional recursive programs are derived and soundness theorem is proven. The verification conditions in both cases are generated as naturalstyle predicate logic formulae, which can be then proven by Theorema, by issuing naturalstyle proofs which are human–readable.
Interprocedurally analyzing polynomial identities
 IN PROC. OF STACS 2006
, 2006
"... Since programming languages are Turing complete, it is impossible to decide for all programs whether a given nontrivial semantic property is valid or not. The wayout chosen by abstract interpretation is to provide approximate methods which may fail to certify a program property on some programs. ..."
Abstract

Cited by 9 (1 self)
 Add to MetaCart
Since programming languages are Turing complete, it is impossible to decide for all programs whether a given nontrivial semantic property is valid or not. The wayout chosen by abstract interpretation is to provide approximate methods which may fail to certify a program property on some programs. Precision of the analysis can be measured by providing classes of programs for which the analysis is complete, i.e., decides the property in question. Here, we consider analyses of polynomial identities between integer variables such as x1 · x2 − 2x3 = 0. We describe current approaches and clarify their completeness properties. We also present an extension of our approach based on weakest precondition computations to programs with procedures and equality guards.
Generation of basic semialgebraic invariants using convex polyhedra
 Static Analysis: Proceedings of the 12th International Symposium, volume 3672 of Lecture Notes in Computer Science
"... Abstract. A technique for generating invariant polynomial inequalities of bounded degree is presented using the abstract interpretation framework. It is based on overapproximating basic semialgebraic sets, i.e., sets defined by conjunctions of polynomial inequalities, by means of convex polyhedra. ..."
Abstract

Cited by 9 (0 self)
 Add to MetaCart
Abstract. A technique for generating invariant polynomial inequalities of bounded degree is presented using the abstract interpretation framework. It is based on overapproximating basic semialgebraic sets, i.e., sets defined by conjunctions of polynomial inequalities, by means of convex polyhedra. While improving on the existing methods for generating invariant polynomial equalities, since polynomial inequalities are allowed in the guards of the transition system, the approach does not suffer from the prohibitive complexity of the methods based on quantifierelimination. The application of our implementation to benchmark programs shows that the method produces nontrivial invariants in reasonable time. In some cases the generated invariants are essential to verify safety properties that cannot be proved with classical linear invariants. 1
Finding Polynomial Invariants for Imperative Loops in the Theorema System
, 2006
"... Abstract. We present an algorithm for finding valid polynomial relations (i. e. invariants) among program variables for imperative loops. The algorithm is implemented in the verification environment for imperative programs (using Hoare logic) in the frame of the Theorema system (www.theorema.org). W ..."
Abstract

Cited by 8 (4 self)
 Add to MetaCart
Abstract. We present an algorithm for finding valid polynomial relations (i. e. invariants) among program variables for imperative loops. The algorithm is implemented in the verification environment for imperative programs (using Hoare logic) in the frame of the Theorema system (www.theorema.org). We use techniques from (polynomial) algebra and combinatorics, namely Gröbner Bases, variable elimination, algebraic dependencies and symbolic summation (the Gosper algorithm, handling geometric series, Cfinite solving). These methods are demonstrated on several examples which have been treated completely automatically by our implementation.
Combining Logic and Algebraic Techniques for Program Verification in Theorema
 SECOND INTERNATIONAL SYMPOSIUM ON LEVERAGING APPLICATIONS OF FORMAL METHODS, VERIFICATION AND VALIDATION
, 2007
"... We study and implement concrete methods for the verification of both imperative as well as functional programs in the frame of the Theorema system. The distinctive features of our approach consist in the automatic generation of loop invariants (by using combinatorial and algebraic techniques), and ..."
Abstract

Cited by 8 (8 self)
 Add to MetaCart
We study and implement concrete methods for the verification of both imperative as well as functional programs in the frame of the Theorema system. The distinctive features of our approach consist in the automatic generation of loop invariants (by using combinatorial and algebraic techniques), and the generation of verification conditions as first–order logical formulae which do not refer to a specific model of computation.
Customised induction rules for proving correctness of imperative programs
, 2004
"... This thesis is aimed at simplifying the userinteraction in semiinteractive theorem proving for imperative programs. More specifically, we describe the creation of customised induction rules that are tailormade for the specific program to verify and thus make the resulting proof simpler. The conce ..."
Abstract

Cited by 8 (1 self)
 Add to MetaCart
This thesis is aimed at simplifying the userinteraction in semiinteractive theorem proving for imperative programs. More specifically, we describe the creation of customised induction rules that are tailormade for the specific program to verify and thus make the resulting proof simpler. The concern is in user interaction, rather than in proof strength. To achieve this, two different verification techniques are used. In the first approach, we develop an idea where a software testing technique, partition analysis, is used to compute a partition of the domain of the induction variable, based on the branch predicates in the program we wish to prove correct. Based on this partition we derive mechanically a partitioned induction rule, which then inherits the divideandconquer style of partition analysis, and (hopefully) is easier to use than the standard (Peano) induction rule. The second part of the thesis continues with a more thorough development of the method. Here the connection to software testing is completely removed
Optimal abstraction on realvalued programs
, 2007
"... In this paper, we show that it is possible to abstract program fragments using real variables using formulas in the theory of real closed fields. This abstraction is compositional and modular. We first propose domain (in a wide class including intervals and octagons), we then show how to obtain an o ..."
Abstract

Cited by 6 (6 self)
 Add to MetaCart
In this paper, we show that it is possible to abstract program fragments using real variables using formulas in the theory of real closed fields. This abstraction is compositional and modular. We first propose domain (in a wide class including intervals and octagons), we then show how to obtain an optimal abstraction of program fragments with respect to that domain. This abstraction allows computing optimal fixed points inside that abstract domain, without the need for a widening operator. 1
Automated Generation of Loop Invariants by Recurrence Solving in Theorema
 Proc. of SNASC’04 (Symbolic and Numeric Algorithms for Scientific Computing
, 2004
"... Abstract. Most of the properties established during program verification are either invariants or depend crucially on invariants. The effectiveness of automated verification of (imperative) programs is therefore sensitive to the ease with which invariants, even trivial ones, can be automatically ded ..."
Abstract

Cited by 4 (2 self)
 Add to MetaCart
Abstract. Most of the properties established during program verification are either invariants or depend crucially on invariants. The effectiveness of automated verification of (imperative) programs is therefore sensitive to the ease with which invariants, even trivial ones, can be automatically deduced. We present a method for invariant generation that relies on combinatorial techniques, namely on recurrence solving and variable elimination. The effectiveness of the method is demonstrated on examples.