Programming: the derivation of algorithms
Programming: the derivation of algorithms
Gro¨bner bases: a computational approach to commutative algebra
Gro¨bner bases: a computational approach to commutative algebra
Communications of the ACM
The synthesis of loop predicates
Communications of the ACM
Implementation of an array bound checker
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
A Discipline of Programming
The verifying compiler: A grand challenge for computing research
Journal of the ACM (JACM)
Inference rules for program annotation
ICSE '78 Proceedings of the 3rd international conference on Software engineering
Non-linear loop invariant generation using Gröbner bases
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Precise interprocedural analysis through linear algebra
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Automatic Generation of Polynomial Loop Invariants: Algebraic Foundations
ISSAC '04 Proceedings of the 2004 international symposium on Symbolic and algebraic computation
Computing polynomial program invariants
Information Processing Letters
Precise interprocedural analysis using random interpretation
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Automatic generation of polynomial invariants of bounded degree using abstract interpretation
Science of Computer Programming
Program verification using automatic generation of invariants
ICTAC'04 Proceedings of the First international conference on Theoretical Aspects of Computing
A synthesizer of inductive assertions
IEEE Transactions on Software Engineering
Property extraction in well-founded property sets
IEEE Transactions on Software Engineering
Endomorphisms for Non-trivial Non-linear Loop Invariant Generation
Proceedings of the 5th international colloquium on Theoretical Aspects of Computing
Aligator: A Mathematica Package for Invariant Generation (System Description)
IJCAR '08 Proceedings of the 4th international joint conference on Automated Reasoning
Finding positively invariant sets of a class of nonlinear loops via curve fitting
Proceedings of the 2009 conference on Symbolic numeric computation
Reasoning algebraically about P-solvable loops
TACAS'08/ETAPS'08 Proceedings of the Theory and practice of software, 14th international conference on Tools and algorithms for the construction and analysis of systems
Generating polynomial invariants with DISCOVERER and QEPCAD
Formal methods and hybrid real-time systems
Invariant generation for P-solvable loops with assignments
CSR'08 Proceedings of the 3rd international conference on Computer science: theory and applications
Abstract Fixpoint Computations with Numerical Acceleration Methods
Electronic Notes in Theoretical Computer Science (ENTCS)
Inferring loop invariants using postconditions
Fields of logic and computation
An iterative method for generating loop invariants
FAW-AAIM'11 Proceedings of the 5th joint international frontiers in algorithmics, and 7th international conference on Algorithmic aspects in information and management
Invariant and type inference for matrices
VMCAI'10 Proceedings of the 11th international conference on Verification, Model Checking, and Abstract Interpretation
A complete invariant generation approach for p-solvable loops
PSI'09 Proceedings of the 7th international Andrei Ershov Memorial conference on Perspectives of Systems Informatics
Acceleration of the abstract fixpoint computation in numerical program analysis
Journal of Symbolic Computation
Proceedings of the 2011 International Workshop on Symbolic-Numeric Computation
Using dynamic analysis to discover polynomial and array invariants
Proceedings of the 34th International Conference on Software Engineering
CAV'12 Proceedings of the 24th international conference on Computer Aided Verification
Symbolic termination analysis of solvable loops
Journal of Symbolic Computation
Inference of polynomial invariants for imperative programs: a farewell to gröbner bases
SAS'12 Proceedings of the 19th international conference on Static Analysis
ICFEM'12 Proceedings of the 14th international conference on Formal Engineering Methods: formal methods and software engineering
A data driven approach for algebraic loop invariants
ESOP'13 Proceedings of the 22nd European conference on Programming Languages and Systems
Loop invariants: Analysis, classification, and examples
ACM Computing Surveys (CSUR)
Hi-index | 0.00 |
This paper presents a method for automatically generating all polynomial invariants in simple loops. It is first shown that the set of polynomials serving as loop invariants has the algebraic structure of an ideal. Based on this connection, a fixpoint procedure using operations on ideals and Grobner basis constructions is proposed for finding all polynomial invariants. Most importantly, it is proved that the procedure terminates in at most m+1 iterations, where m is the number of program variables. The proof relies on showing that the irreducible components of the varieties associated with the ideals generated by the procedure either remain the same or increase their dimension at every iteration of the fixpoint procedure. This yields a correct and complete algorithm for inferring conjunctions of polynomial equalities as invariants. The method has been implemented in Maple using the Groebner package. The implementation has been used to automatically discover non-trivial invariants for several examples to illustrate the power of the technique.