Filters








2,642 Hits in 4.0 sec

Inferring Loop Invariants Using Postconditions [chapter]

Carlo Alberto Furia, Bertrand Meyer
2010 Lecture Notes in Computer Science  
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 observation by using the postcondition as the basis  ...  for invariant inference, using various heuristics such as "uncoupling" which prove useful in many important algorithms.  ...  The authors thank the attendees for their useful comments and criticism.  ... 
doi:10.1007/978-3-642-15025-8_15 fatcat:rgmjakfjhzgr7le2osppy2h7ru

Technology for inferring contracts from code

Francesco Logozzo
2013 ACM SIGAda Ada Letters  
They consists of method preconditions and postconditions, of object invariants, and of assertions and loop invariants.  ...  As a consequence, any usable static verification tool should provide some form of contract inference.  ...  Postconditions Theoretically, an inferred postcondition is similar to a loop invariant: it is just the abstract element at the method return point.  ... 
doi:10.1145/2658982.2527280 fatcat:fqkf4zz3qvhvnavhe6dvkfl36m

DynaMate: Dynamically Inferring Loop Invariants for Automatic Full Functional Verification [chapter]

Juan Pablo Galeotti, Carlo A. Furia, Eva May, Gordon Fraser, Andreas Zeller
2014 Lecture Notes in Computer Science  
DYNAMATE is a tool that automatically infers loop invariants and uses them to prove Java programs correct with respect to a given JML functional specification.  ...  DYNAMATE improves the flexibility of loop invariant inference by integrating static (proving) and dynamic (testing) techniques with the goal of combining their complementary strengths.  ...  Loop headers are highlighted in light blue. The right frame shows the proven loop invariants for the selected loop. Fig. 4 : 4 Loop invariants inferred by DYNAMATE.  ... 
doi:10.1007/978-3-319-13338-6_4 fatcat:ztkjvqi5vjannj5yzgjc65wige

Reducing the Number of Annotations in a Verification-oriented Imperative Language [article]

Guido de Caso, Diego Garbervetsky, Daniel Gorín
2010 arXiv   pre-print
In particular, we show that high-level iteration constructs may alleviate the need for providing complex loop annotations.  ...  Firstly, we showed an inference mechanism for procedure pre and postconditions and then a simple method to strengthen loop invariants and postconditions.  ...  Eliminating the need for explicitly given loop invariants is, of course, highly desirable. A lot of research has been done in loop invariant inference (for instance, [13, 18] ).  ... 
arXiv:1011.3407v1 fatcat:ceysx3sc5vdx3dmsig7hlfmrvq

Optimizing database-backed applications with query synthesis

Alvin Cheung, Armando Solar-Lezama, Samuel Madden
2013 SIGPLAN notices  
The postconditions and invariants are expressed using a new theory of ordered relations that allows us to reason precisely about both the contents and order of the records produced complex code fragments  ...  QBS differs from traditional compiler optimizations as it relies on synthesis technology to generate invariants and postconditions for a code fragment.  ...  Our system automatically infers loop invariants and postconditions associated with the source program, and converts the validated postcondition into SQL queries.  ... 
doi:10.1145/2499370.2462180 fatcat:q67ysla4ybc3jnrhx4jgdespkq

Inferring Loop Invariants by Mutation, Dynamic Analysis, and Static Checking

Juan P. Galeotti, Carlo A. Furia, Eva May, Gordon Fraser, Andreas Zeller
2015 IEEE Transactions on Software Engineering  
We show that significant loop invariant candidates can be generated by systematically mutating postconditions; then, dynamic checking (based on automatically generated tests) weeds out invalid candidates  ...  Verifiers that can prove programs correct against their full functional specification require, for programs with loops, additional annotations in the form of loop invariants---propeties that hold for every  ...  If the proof does not succeed using the loop invariants inferred so far, another round of generating, mining, and verifying starts.  ... 
doi:10.1109/tse.2015.2431688 fatcat:q4mma5k5rrf3paqwig5d4kkmji

Optimizing database-backed applications with query synthesis

Alvin Cheung, Armando Solar-Lezama, Samuel Madden
2013 Proceedings of the 34th ACM SIGPLAN conference on Programming language design and implementation - PLDI '13  
The postconditions and invariants are expressed using a new theory of ordered relations that allows us to reason precisely about both the contents and order of the records produced complex code fragments  ...  QBS differs from traditional compiler optimizations as it relies on synthesis technology to generate invariants and postconditions for a code fragment.  ...  Our system automatically infers loop invariants and postconditions associated with the source program, and converts the validated postcondition into SQL queries.  ... 
doi:10.1145/2491956.2462180 dblp:conf/pldi/CheungSM13 fatcat:cdjekm7n75ht7cmikqut3aihgq

Loop invariants: analysis, classification, and examples [article]

Carlo A. Furia, Bertrand Meyer, Sergey Velder
2014 arXiv   accepted
The contributions also include suggestions for invariant inference and for model-based specification.  ...  Full verification generally requires, as a crucial step, equipping each loop with a "loop invariant".  ...  Hoare and Edsger Dijkstra in introducing and developing the notion of loop invariant.  ... 
arXiv:1211.4470v4 fatcat:wxltjzy66nbglcn6uk5z7n57wm

Inferring SQL Queries Using Program Synthesis [article]

Alvin Cheung and Armando Solar-Lezama and Samuel Madden
2012 arXiv   pre-print
The postconditions and invariants are expressed using a theory of ordered relations that allows us to reason precisely about the contents and order of the records produced even by complex code fragments  ...  The QBS algorithm works by automatically synthesizing invariants and postconditions for the original code fragment.  ...  Our technique solves the postcondition and loop invariant inference problem by analyzing the input program and inferring a grammar that describes the likely structure of the unknown predicates.  ... 
arXiv:1208.2013v1 fatcat:i6laoh3y6vd27pazlaelufaube

DySy

Christoph Csallner, Nikolai Tillmann, Yannis Smaragdakis
2008 Proceedings of the 13th international conference on Software engineering - ICSE '08  
In this way, we obtain the benefits of dynamic inference tools like Daikon: the inferred invariants correspond to the observed program behaviors.  ...  At the same time, however, our inferred invariants are much more suited to the program at hand than Daikon's hardcoded invariant patterns.  ...  We next discuss the heuristics that DySy uses for abstraction in the case of loops.  ... 
doi:10.1145/1368088.1368127 dblp:conf/icse/CsallnerTS08 fatcat:3vfsj7quqbcqddhstcjkxq6jcu

A comparative study of programmer-written and automatically inferred contracts

Nadia Polikarpova, Ilinca Ciupa, Bertrand Meyer
2009 Proceedings of the eighteenth international symposium on Software testing and analysis - ISSTA '09  
We found that a contract inference tool can be used to strengthen programmer-written contracts, but cannot infer all contracts that humans write.  ...  Working on 25 classes taken from different sources such as widely-used standard libraries and code written by students, we applied Daikon to infer contracts and compared the results (totaling more than  ...  The averages for loop invariants, preconditions, and postconditions and class invariants (shown in table 5) show again that programmers write more preconditions than postconditions and class invariants  ... 
doi:10.1145/1572272.1572284 dblp:conf/issta/PolikarpovaCM09 fatcat:lcxbyf5b5rcejfh7pzbb3tbtsm

Certified Abstract Cost Analysis [chapter]

Elvira Albert, Reiner Hähnle, Alicia Merayo, Dominic Steinhöfel
2021 Lecture Notes in Computer Science  
Placeholder symbols occur naturally in program transformation rules, as used in refactoring, compilation, optimization, or parallelization.  ...  Therefore, we certify by deductive verification that the inferred abstract cost bounds are correct and sufficiently precise. It is the first approach solving this problem.  ...  The generation of inductive ACIs for nested loops uses the cost postcondition of inner loops to compute the invariants of the outer ones.  ... 
doi:10.1007/978-3-030-71500-7_2 fatcat:lq5fapuqcjfz3j6xzjfyjskhhu

Static Contract Checking with Abstract Interpretation [chapter]

Manuel Fähndrich, Francesco Logozzo
2011 Lecture Notes in Computer Science  
The use of abstract interpretation (vs usual weakest precondition-based checkers) has two main advantages: (i) the checker automatically infers loop invariants letting the user focus only on boundary specifications  ...  CodeContracts enable a compiler and languageindependent specification of Contracts (precondition, postconditions and object invariants).  ...  Clousot analyzes annotated programs to infer facts (including loop invariants), and it uses this information to discharge proof obligations.  ... 
doi:10.1007/978-3-642-18070-5_2 fatcat:jsm5vgbhybd3hl2kl673sxbqcm

Valigator: A Verification Tool with Bound and Invariant Generation [chapter]

Thomas A. Henzinger, Thibaud Hottelier, Laura Kovács
2008 Lecture Notes in Computer Science  
The system offers support for automatically generating and proving verification conditions and, most importantly, for automatically inferring loop invariants and bound assertions by means of symbolic summation  ...  In addition, Valigator supports generating and proving verification conditions using the inferred loop invariants, and proving the partial correctness of programs annotated with pre-and postconditions.  ...  [2, 4] ), in Valigator we do not use assert for annotating loops with invariants. Instead, VCG invokes Aligator as its invariant inference engine whenever a loop is encountered.  ... 
doi:10.1007/978-3-540-89439-1_24 fatcat:ldt6quupwrghpbwlnohwuln5rm

Predicate abstraction for software verification

Cormac Flanagan, Shaz Qadeer
2002 SIGPLAN notices  
This annotation overhead, particularly of loop invariants, is a significant hurdle in the acceptance of static checking. We reduce the annotation burden by inferring loop invariants automatically.  ...  Experiments on a 44KLOC program show that our approach can automatically infer the necessary predicates and invariants for all but 31 of the 396 routines that contain loops.  ...  that enabled us to implement and evaluate our ideas.  ... 
doi:10.1145/565816.503291 fatcat:i6woyl74gzekxizrbcsnvbeipu
« Previous Showing results 1 — 15 out of 2,642 results