Certifying termination and complexity proofs of programs
Certifying termination and complexity proofs of programs
Disciplines
Computer Sciences (40%); Mathematics (60%)
Keywords
-
Certification,
Complexity,
Programming Languages,
Term Rewriting,
Termination,
Theorem Proving
Termination (all computations produce a result) and complexity (how long does it take to get the result, and how much memory is required) are fundamental properties of programs. Although undecidable in general, much work has been spent on automated termination and complexity analysis. Whereas the answer to the question for a given program might be simple (yes, the program is terminating), the underlying proof is usually not that simple. In fact, most tools for automated complexity and termination analysis are complex tools, which combine several techniques while trying to analyze the behavior of a program. Consequently, these tools may contain errors and give wrong answers and proofs. One solution to this problem is the usage of certifiers, which can check the proofs that are generated by the tools. For reliability, the soundness of the certifiers itself has to be formally proven within a theorem prover. Note that with the help of the certifiers, several bugs have been spotted, both in the implementations of the tools, as well as in soundness proofs of termination techniques. Unfortunately, so far the applicability of the available certifiers in this area is rather limited: they mainly handle termination proofs, but not complexity proofs; and they are limited to term rewriting, a simple computational model that underlies much of declarative programming and automated theorem proving. In this project, we will extend the applicability of certifiers in two important directions: we want to support a large class of complexity proofs, and we want to support termination proofs for two real programming languages, Java and Haskell. To this end, we will develop several interesting formalizations. This includes a large library on linear algebra, which will be required for dealing with complexity proofs. Moreover, we will extend the work of Klein and Nipkow on Jinja towards Java, and we will develop a formalized semantic for Haskell. Our work will drastically improve the reliability of current termination and complexity tools. Furthermore, it can serve as a starting point for performing other formalizations in the area of program analysis and program transformations.
Computer programs become ubiquitous in our world: they are used to manage our money, to control activities in vehicles, and to interact with medical equipment. Therefore, it is of vital importance that programs behave correctly. Here, termination (all computations produce a result) and complexity (how long does it take to get the result, and how much memory is required) are fundamental properties of programs. Unfortunately, these fundamental properties are undecidable. For example, it is not possible to design an analyser-program which decides for each other program, whether it terminates or not. Nevertheless, much work has been spent on the development of such analysers which are often able to guarantee the property of concern. Whereas the answer of an analysis for a given program might be simple (yes, the program is terminating), the underlying argument for this answer, i.e., the proof, is usually not simple. In fact, most analysers for the properties complexity and termination are complex programs on their own, which combine several techniques while trying to determine the behaviour of a program. Consequently, these analysers may contain errors and give wrong answers and proofs. Our solution to this problem is the program CeTA (Certified Tool Assertions), a certifier that was developed in this project. CeTA can figure out whether the proofs that are generated by the analysers are correct or not. To make CeTA trustworthy, we formally verified all algorithms within CeTA with the help of the theorem prover Isabelle. In comparison to previous certifiers, CeTA offers the following unique features: - CeTA supports several kinds of complexity proofs from various analysers. - CeTA supports checking termination proofs for LLVM, a widely used intermediate language that is utilised when compiling programs written in popular programming languages such as C and Haskell. - For checking complexity proofs, internally CeTA supports precise calculations via algebraic numbers. For instance, CeTA is able to compute all roots of a polynomial such as x^8 - 5x^6 + 7x^3 - 17 without any rounding errors. - For checking LLVM proofs, CeTA provides a validity checker for linear inequalities, e.g., it can decide whether there are integers x, y and z such that 2x + 3y - 2z > 7, x - 5y + 4z > -2 and 3x + 4y + z < 15. As further results of this project, mistakes in textbooks and published research articles have been spotted (and corrected) during the formalisation of the algorithms that are used in CeTA; wrong proofs of some analysis tools have been identified by CeTA and the corresponding tools have been fixed; and finally, the developed verified algorithms can serve as a good starting point for other formalisations in the area of program analysis.
- Universität Innsbruck - 100%
- Johannes Waldmann, Hochschule für Technik, Wirtschaft und Kultur - Germany
- Tobias Nipkow, Technische Universität München - Germany
- Nao Hirokawa, Japan Advanced Institute of Science and Technology - Japan
Research Output
- 391 Citations
- 70 Publications
- 2 Software
- 2 Disseminations
- 8 Scientific Awards
-
2022
Title Tuple Interpretations for Termination of Term Rewriting DOI 10.1007/s10817-022-09640-4 Type Journal Article Author Yamada A Journal Journal of Automated Reasoning Pages 667-688 -
2022
Title A Formalization of the Smith Normal Form in Higher-Order Logic DOI 10.1007/s10817-022-09631-5 Type Journal Article Author Divasón J Journal Journal of Automated Reasoning Pages 1065-1095 Link Publication -
2022
Title Certifying Termination Proofs of LLVM IR Programs Type PhD Thesis Author Maximilian Haslbeck Link Publication -
2018
Title A Formalization of the LLL Basis Reduction Algorithm DOI 10.1007/978-3-319-94821-8_10 Type Book Chapter Author Divasón J Publisher Springer Nature Pages 160-177 -
2018
Title Finding models through graph saturation DOI 10.1016/j.jlamp.2018.06.005 Type Journal Article Author Joosten S Journal Journal of Logical and Algebraic Methods in Programming Pages 98-112 Link Publication -
2018
Title Verified Analysis of Random Binary Tree Structures DOI 10.1007/978-3-319-94821-8_12 Type Book Chapter Author Eberl M Publisher Springer Nature Pages 196-214 -
2018
Title A Verified Efficient Implementation of the LLL Basis Reduction Algorithm DOI 10.29007/xwwh Type Conference Proceeding Abstract Author Bottesch R Pages 164-146 Link Publication -
2017
Title Foundational (Co)datatypes and (Co)recursion for Higher-Order Logic DOI 10.5281/zenodo.3228083 Type Other Author Biendarra J Link Publication -
2018
Title Efficient certification of complexity proofs: formalizing the Perron–Frobenius theorem (invited talk paper) DOI 10.1145/3176245.3167103 Type Conference Proceeding Abstract Author Divasón J Pages 2-13 Link Publication -
2018
Title Efficient certification of complexity proofs: formalizing the Perron–Frobenius theorem (invited talk paper) DOI 10.1145/3167103 Type Conference Proceeding Abstract Author Divasón J Pages 2-13 Link Publication -
2015
Title Certification of Complexity Proofs using CeTA Type Conference Proceeding Abstract Author Avanzini M Conference 26th International Conference on Rewriting Techniques and Applications (RTA 2015) Pages 23-39 Link Publication -
2015
Title Deriving class instances for datatypes Type Journal Article Author Sternagel C Journal Archive of Formal Proofs Link Publication -
2015
Title Matrices, Jordan Normal Forms, and Spectral Radius Theory Type Journal Article Author Thiemann R Journal Archive of Formal Proofs Link Publication -
2015
Title Algebraic Numbers in Isabelle/HOL Type Journal Article Author Thiemann R Journal Archive of Formal Proofs Link Publication -
2015
Title Formalizing Soundness and Completeness of Unravelings DOI 10.1007/978-3-319-24246-0_15 Type Book Chapter Author Winkler S Publisher Springer Nature Pages 239-255 -
2016
Title Algebraic Numbers in Isabelle/HOL DOI 10.1007/978-3-319-43144-4_24 Type Book Chapter Author Thiemann R Publisher Springer Nature Pages 391-408 -
2016
Title Preface DOI 10.1016/j.entcs.2016.06.001 Type Journal Article Author Benevides M Journal Electronic Notes in Theoretical Computer Science Pages 1-2 Link Publication -
2017
Title A formalization of the Berlekamp-Zassenhaus factorization algorithm DOI 10.1145/3018610.3018617 Type Conference Proceeding Abstract Author Divasón J Pages 17-29 Link Publication -
2017
Title Certifying Safety and Termination Proofs for Integer Transition Systems DOI 10.1007/978-3-319-63046-5_28 Type Book Chapter Author Brockschmidt M Publisher Springer Nature Pages 454-471 -
2017
Title Parsing and Printing of and with Triples DOI 10.1007/978-3-319-57418-9_10 Type Book Chapter Author Joosten S Publisher Springer Nature Pages 159-176 -
2016
Title Formalizing Jordan normal forms in Isabelle/HOL DOI 10.1145/2854065.2854073 Type Conference Proceeding Abstract Author Thiemann R Pages 88-99 Link Publication -
2016
Title Analyzing Program Termination and Complexity Automatically with AProVE DOI 10.1007/s10817-016-9388-y Type Journal Article Author Giesl J Journal Journal of Automated Reasoning Pages 3-31 -
2015
Title Reducing Relative Termination to Dependency Pair Problems DOI 10.1007/978-3-319-21401-6_11 Type Book Chapter Author Iborra J Publisher Springer Nature Pages 163-178 -
2015
Title Deriving Comparators and Show Functions in Isabelle/HOL DOI 10.1007/978-3-319-22102-1_28 Type Book Chapter Author Sternagel C Publisher Springer Nature Pages 421-437 -
2015
Title Certification of Complexity Proofs using CeTA DOI 10.4230/lipics.rta.2015.23 Type Conference Proceeding Abstract Author Avanzini M Conference LIPIcs, Volume 36, RTA 2015 Pages 23 - 39 Link Publication -
2020
Title On probabilistic term rewriting DOI 10.1016/j.scico.2019.102338 Type Journal Article Author Avanzini M Journal Science of Computer Programming Pages 102338 Link Publication -
2020
Title Certifying the Weighted Path Order (Invited Talk) DOI 10.4230/lipics.fscd.2020.4 Type Conference Proceeding Abstract Author Schöpf J Conference LIPIcs, Volume 167, FSCD 2020 Pages 4:1 - 4:20 Link Publication -
2021
Title Two algorithms based on modular arithmetic: lattice basis reduction and Hermite normal form computation Type Journal Article Author Bottesch R Journal Archive of Formal Proofs Link Publication -
2021
Title Solving Cubic and Quartic Equations Type Journal Article Author Thiemann R Journal Archive of Formal Proofs Link Publication -
2021
Title A Formalization of Weighted Path Orders and Recursive Path Orders Type Journal Article Author Sternagel C Journal Archive of Formal Proofs Link Publication -
2021
Title Factorization of Polynomials with Algebraic Coefficients Type Journal Article Author Eberl M Journal Archive of Formal Proofs Link Publication -
2021
Title Regular Tree Relations Type Journal Article Author Felgenhauer B Journal Archive of Formal Proofs Link Publication -
2021
Title Multi-Dimensional Interpretations for Termination of Term Rewriting DOI 10.1007/978-3-030-79876-5_16 Type Book Chapter Author Yamada A Publisher Springer Nature Pages 273-290 -
2021
Title A Perron–Frobenius theorem for deciding matrix growth DOI 10.1016/j.jlamp.2021.100699 Type Journal Article Author Thiemann R Journal Journal of Logical and Algebraic Methods in Programming Pages 100699 Link Publication -
2022
Title Docking simulation and ADMET prediction based investigation on the phytochemical constituents of Noni (Morinda citrifolia) fruit as a potential anticancer drug DOI 10.1007/s40203-022-00130-4 Type Journal Article Author Chandran K Journal In Silico Pharmacology Pages 14 -
2022
Title Automatic search intervals for the smoothing parameter in penalized splines DOI 10.1007/s11222-022-10178-z Type Journal Article Author Li Z Journal Statistics and Computing Pages 1 Link Publication -
2022
Title Spatial patterns and determinants of avocado frontier dynamics in Mexico DOI 10.1007/s10113-022-01883-6 Type Journal Article Author RamÃrez-MejÃa D Journal Regional Environmental Change Pages 28 Link Publication -
2019
Title A Hierarchy of Polynomial Kernels DOI 10.48550/arxiv.1902.11006 Type Preprint Author Witteveen J -
2018
Title On Probabilistic Term Rewriting DOI 10.1007/978-3-319-90686-7_9 Type Book Chapter Author Avanzini M Publisher Springer Nature Pages 132-148 -
2019
Title A Hierarchy of Polynomial Kernels DOI 10.1007/978-3-030-10801-4_39 Type Book Chapter Author Witteveen J Publisher Springer Nature Pages 504-518 -
2019
Title Verifying an Incremental Theory Solver for Linear Arithmetic in Isabelle/HOL DOI 10.1007/978-3-030-29007-8_13 Type Book Chapter Author Bottesch R Publisher Springer Nature Pages 223-239 Link Publication -
2017
Title Subresultants Type Journal Article Author Joosten S Journal Archive of Formal Proofs Link Publication -
2017
Title Stochastic Matrices and the Perron-Frobenius Theorem Type Journal Article Author Thiemann R Journal Archive of Formal Proofs Link Publication -
2017
Title Foundational (Co)datatypes and (Co)recursion for Higher-Order Logic DOI 10.1007/978-3-319-66167-4_1 Type Book Chapter Author Biendarra J Publisher Springer Nature Pages 3-21 -
2017
Title Reachability, confluence, and termination analysis with state-compatible automata DOI 10.1016/j.ic.2016.06.011 Type Journal Article Author Felgenhauer B Journal Information and Computation Pages 467-483 Link Publication -
2020
Title A Formalization of Knuth-Bendix Orders Type Journal Article Author Sternagel C Journal Archive of Formal Proofs Link Publication -
2020
Title Certifying the Weighted Path Order (Invited Talk) Type Conference Proceeding Abstract Author Schöpf J Conference 5th International Conference on Formal Structures for Computation and Deduction (FSCD 2020) Pages 4:1-4:20 Link Publication -
2020
Title Formalizing the LLL Basis Reduction Algorithm and the LLL Factorization Algorithm in Isabelle/HOL DOI 10.1007/s10817-020-09552-1 Type Journal Article Author Thiemann R Journal Journal of Automated Reasoning Pages 827-856 Link Publication -
2020
Title Verifying a Solver for Linear Mixed Integer Arithmetic in Isabelle/HOL DOI 10.1007/978-3-030-55754-6_14 Type Book Chapter Author Bottesch R Publisher Springer Nature Pages 233-250 -
2018
Title A Verified Implementation of Algebraic Numbers in Isabelle/HOL DOI 10.1007/s10817-018-09504-w Type Journal Article Author Joosten S Journal Journal of Automated Reasoning Pages 363-389 Link Publication -
2018
Title Finding models through graph saturation DOI 10.48550/arxiv.1806.09392 Type Preprint Author Joosten S -
2018
Title On Probabilistic Term Rewriting DOI 10.48550/arxiv.1802.09774 Type Preprint Author Avanzini M -
2018
Title On W[1]-Hardness as Evidence for Intractability Type Conference Proceeding Abstract Author Bottesch R Conference 43rd International Symposium on Mathematical Foundations of Computer Science (MFCS 2018) Pages 73:1-73:15 Link Publication -
2018
Title First-Order Terms Type Journal Article Author Sternagel C Journal Archive of Formal Proofs Link Publication -
2018
Title A verified LLL algorithm Type Journal Article Author Bottesch R Journal Archive of Formal Proofs Link Publication -
2018
Title A verified factorization algorithm for integer polynomials with polynomial complexity Type Journal Article Author Divasón J Journal Archive of Formal Proofs Link Publication -
2018
Title An Incremental Simplex Algorithm with Unsatisfiable Core Generation Type Journal Article Author Marić F Journal Archive of Formal Proofs Link Publication -
2020
Title Verified Analysis of Random Binary Tree Structures DOI 10.1007/s10817-020-09545-0 Type Journal Article Author Eberl M Journal Journal of Automated Reasoning Pages 879-910 Link Publication -
2021
Title An Isabelle/HOL formalization of AProVE’s termination method for LLVM IR DOI 10.1145/3437992.3439935 Type Conference Proceeding Abstract Author Haslbeck M Pages 238-249 Link Publication -
2019
Title Farkas' Lemma and Motzkin's Transposition Theorem Type Journal Article Author Bottesch R Journal Archive of Formal Proofs Link Publication -
2019
Title Linear Inequalities Type Journal Article Author Bottesch R Journal Archive of Formal Proofs Link Publication -
2019
Title A Verified Implementation of the Berlekamp–Zassenhaus Factorization Algorithm DOI 10.1007/s10817-019-09526-y Type Journal Article Author Divasón J Journal Journal of Automated Reasoning Pages 699-735 Link Publication -
2016
Title Relative Termination via Dependency Pairs DOI 10.1007/s10817-016-9373-5 Type Journal Article Author Iborra J Journal Journal of Automated Reasoning Pages 391-411 Link Publication -
2016
Title The Factorization Algorithm of Berlekamp and Zassenhaus Type Journal Article Author Divasón J Journal Archive of Formal Proofs Link Publication -
2016
Title Perron-Frobenius Theorem for Spectral Radius Analysis Type Journal Article Author Divasón J Journal Archive of Formal Proofs Link Publication -
2016
Title Polynomial Factorization Type Journal Article Author Thiemann R Journal Archive of Formal Proofs Link Publication -
2016
Title Polynomial Interpolation Type Journal Article Author Thiemann R Journal Archive of Formal Proofs Link Publication -
2016
Title AC Dependency Pairs Revisited Type Conference Proceeding Abstract Author Sternagel C Conference 25th EACSL Annual Conference on Computer Science Logic (CSL 2016) Pages 8:1-8:16 Link Publication -
2014
Title Lifting Definition Option Type Journal Article Author Thiemann R Journal Archive of Formal Proofs Link Publication -
2015
Title Termination Competition (termCOMP 2015) DOI 10.1007/978-3-319-21401-6_6 Type Book Chapter Author Giesl J Publisher Springer Nature Pages 105-108
-
2020
Title FSCD-IJCAR 2020 Type Personally asked as a key note speaker to a conference Level of Recognition Continental/International -
2020
Title WRLA 2020 Type Personally asked as a key note speaker to a conference Level of Recognition Continental/International -
2019
Title WPTE 2019 Type Personally asked as a key note speaker to a conference Level of Recognition Continental/International -
2019
Title IFIP 2019 Type Personally asked as a key note speaker to a conference Level of Recognition Continental/International -
2019
Title Reynaud 2019 Type Attracted visiting staff or user to your research group Level of Recognition Continental/International -
2018
Title CPP 2018 Type Personally asked as a key note speaker to a conference Level of Recognition Continental/International -
2017
Title AFP Type Appointed as the editor/advisor to a journal or book series Level of Recognition Continental/International -
2014
Title LSFA 2014 Type Personally asked as a key note speaker to a conference Level of Recognition Continental/International