Zertifizierte Terminierung und Komplexität von Programmen
Certifying termination and complexity proofs of programs
Wissenschaftsdisziplinen
Informatik (40%); Mathematik (60%)
Keywords
-
Certification,
Complexity,
Programming Languages,
Term Rewriting,
Termination,
Theorem Proving
Terminierung (alle Berechnungen führen zu einem Ergebnis) und Komplexität (wie lange dauert die Berechnung, und wie hoch ist der Speicherbedarf) sind fundamentale Eigenschaften eines Programms. Obwohl diese Eigenschaften im Allgemeinen unentscheidbar sind, wurden viele Verfahren für deren automatische Analyse entwickelt. Obwohl die Antwort entsprechender Tools sehr einfach ausfallen kann (ja, dieses Programm terminiert), ist der zugrundeliegende Beweis meist nicht einfach. Es ist ein Fakt, dass viele Tools für die automatische Analyse der Komplexität und Terminierung selbst komplex sind, und intern verschiedenste Verfahren kombinieren, um das Verhalten eines Programms zu analysieren. Folglich können diese Tools Fehler enthalten, die zu falschen Antworten und Beweisen führen. Eine Lösung zu diesem Problem bieten Zertifizierer, welche die generierten Beweise der Tools validieren können. Um die Korrektheit der Zertifizierer zu gewährleisten, wird diese in einem Theorem-Beweiser formal nachgewiesen. Mit Hilfe solcher Zertifizierer konnten bereits viele Fehler entdeckt werden, sowohl in den Implementierungen der Tools als auch in den Korrektheitsbeweisen der Terminierungstechniken. Leider ist die Anwendbarkeit der verfügbaren Zertifizierer in diesem Gebiet recht eingeschränkt: die unterstützten Techniken sind meist für Terminierung-Beweise und nicht für Komplexitäts-Beweise; zudem sind die Zertifizierer eingeschränkt auf Termersetzung, einem einfachen, aber dennoch mächtigen Berechenbarkeitsmodell, welches zu großen Teilen der deklarativen Programmierung, sowie dem automatischen Beweisen zu Grunde liegt. In diesem Projekt werden wir die Anwendbarkeit der Zertifizierer in zwei wichtige Richtungen erweitern: sie sollen eine große Klasse von Komplexitäts-Beweisen unterstützen, sowie Terminierungs-Beweise für zwei reale Programmiersprachen, Java und Haskell. Zu diesem Zweck werden wir viele interessante Formalisierungen entwickeln, wie etwa eine umfassende Bibliothek über lineare Algebra, die für die Zertifizierung von Komplexitäts-Beweisen notwendig ist. Des Weiteren werden wir die Arbeit von Klein und Nipkow über Jinja in Richtung Java ausbauen, und wir werden eine Semantik für Haskell formalisieren. Unsere Arbeit wird die Zuverlässigkeit aktueller Termierungs- und Komplexitäts-Tools weitreichend verbessern. Ferner bietet sie einen guten Ausgangspunkt für weitere Formalisierungen in dem Gebiet der Programm-Analyse und der Programm-Transformation.
Computer-Programme dringen in immer mehr Bereiche unseres Lebens ein: sie verwalten unser Geld, steuern Abläufe in Fahrzeugen und kontrollieren medizinische Geräte. Deshalb ist es wichtig, dass Programme richtig funktionieren. Hierbei sind Terminierung (alle Berechnungen führen zu einem Ergebnis) und Komplexität (wie lange dauert die Berechnung, und wie hoch ist der Speicherbedarf) fundamentale Eigenschaften eines Programms. Leider sind diese fundamentalen Eigenschaften unentscheidbar: es ist z.B. nicht möglich, ein Analyse-Programm zu entwickeln, das für alle anderen Programme angibt, ob sie terminieren oder nicht. Trotzdem wurden viele Verfahren für die automatische Analyse entwickelt, die oft, aber nicht immer die gewünschte Eigenschaft nachweisen können. Obwohl die Antwort entsprechender Analyse-Programme sehr einfach ausfallen kann (ja, dieses analysierte Programm terminiert), ist die Argumentation, warum die erzeugte Antwort richtig ist, also der zugrundeliegende Beweis, meist nicht einfach. Es ist ein Fakt, dass viele Analyse-Programme für Komplexität und Terminierung selbst komplex sind, und intern verschiedenste Verfahren kombinieren, um das Verhalten eines Programms zu analysieren. Folglich können die Analyse-Programme Fehler enthalten, die zu falschen Antworten und falschen Beweisen führen. Unsere Lösung des Problems besteht aus dem Programm CeTA (Certified Tool Assertions), ein Zertifizierer, der in diesem Projekt entwickelt wurde. CeTA kann überprüfen, ob ein generierter Beweis eines Analyse-Programms korrekt ist oder nicht. Um die Korrektheit von CeTA selber sicherzustellen, wurden alle Algorithmen, die CeTA intern verwendet, formal mittels des Theorem Beweisers Isabelle verifiziert. Im Vergleich zu vorigen Zertifizierern hat CeTA folgende Alleinstellungsmerkmale: - CeTA unterstützt viele Arten von Komplexitätsbeweisen von verschiedenen Analyse-Programmen. - CeTA unterstützt die Prüfung von Terminierungsbeweisen von LLVM, einer weit-verbreiteten Zwischensprache, die zur Übersetzung populärer Programmiersprachen wie C und Haskell genutzt wird. - Um Komplexitätsbeweise zu prüfen, nutzt CeTA intern präzise Berechnungen mit algebraischen Zahlen. Zum Beispiel kann CeTA alle Nullstellen eines Polynoms wie x^8 - 5x^6 + 7x^3 - 17 ohne Rundungsfehler bestimmen. - Um Terminierungsbeweise für LLVM zu prüfen, bietet CeTA eine Methode zur Lösung von linearen Ungleichungen an. Zum Beispiel kann CeTA herausfinden, ob es ganze Zahlen x, y und z gibt, welche die Ungleichungen 2x + 3y - 2z > 7, x - 5y + 4z > -2 und 3x + 4y + z < 15 erfüllen. Weitere Ergebnisse dieses Projekts sind aufgedeckte (und korrigierte) Fehler in Fachbüchern und Fachartikeln, die während der Formalisierung gefunden wurden. Zudem hat CeTA mehrere Fehler in generierten Beweisen entdeckt, so dass Fehler in den entsprechenden Analyse-Programmen korrigiert werden konnten. Schlußendlich bieten die verifizierten Algorithmen einen guten Startpunkt, um weitere Formalisierungen im Bereich der Programm-Analyse durchzuführen.
- Universität Innsbruck - 100%
- Johannes Waldmann, Hochschule für Technik, Wirtschaft und Kultur - Deutschland
- Tobias Nipkow, Technische Universität München - Deutschland
- Nao Hirokawa, Japan Advanced Institute of Science and Technology - Japan
Research Output
- 391 Zitationen
- 70 Publikationen
- 2 Software
- 2 Disseminationen
- 8 Wissenschaftliche Auszeichnungen
-
2022
Titel Tuple Interpretations for Termination of Term Rewriting DOI 10.1007/s10817-022-09640-4 Typ Journal Article Autor Yamada A Journal Journal of Automated Reasoning Seiten 667-688 -
2022
Titel A Formalization of the Smith Normal Form in Higher-Order Logic DOI 10.1007/s10817-022-09631-5 Typ Journal Article Autor Divasón J Journal Journal of Automated Reasoning Seiten 1065-1095 Link Publikation -
2022
Titel Certifying Termination Proofs of LLVM IR Programs Typ PhD Thesis Autor Maximilian Haslbeck Link Publikation -
2018
Titel A Formalization of the LLL Basis Reduction Algorithm DOI 10.1007/978-3-319-94821-8_10 Typ Book Chapter Autor Divasón J Verlag Springer Nature Seiten 160-177 -
2018
Titel Finding models through graph saturation DOI 10.1016/j.jlamp.2018.06.005 Typ Journal Article Autor Joosten S Journal Journal of Logical and Algebraic Methods in Programming Seiten 98-112 Link Publikation -
2018
Titel Verified Analysis of Random Binary Tree Structures DOI 10.1007/978-3-319-94821-8_12 Typ Book Chapter Autor Eberl M Verlag Springer Nature Seiten 196-214 -
2018
Titel A Verified Efficient Implementation of the LLL Basis Reduction Algorithm DOI 10.29007/xwwh Typ Conference Proceeding Abstract Autor Bottesch R Seiten 164-146 Link Publikation -
2017
Titel Foundational (Co)datatypes and (Co)recursion for Higher-Order Logic DOI 10.5281/zenodo.3228083 Typ Other Autor Biendarra J Link Publikation -
2018
Titel Efficient certification of complexity proofs: formalizing the Perron–Frobenius theorem (invited talk paper) DOI 10.1145/3176245.3167103 Typ Conference Proceeding Abstract Autor Divasón J Seiten 2-13 Link Publikation -
2018
Titel Efficient certification of complexity proofs: formalizing the Perron–Frobenius theorem (invited talk paper) DOI 10.1145/3167103 Typ Conference Proceeding Abstract Autor Divasón J Seiten 2-13 Link Publikation -
2015
Titel Certification of Complexity Proofs using CeTA Typ Conference Proceeding Abstract Autor Avanzini M Konferenz 26th International Conference on Rewriting Techniques and Applications (RTA 2015) Seiten 23-39 Link Publikation -
2015
Titel Deriving class instances for datatypes Typ Journal Article Autor Sternagel C Journal Archive of Formal Proofs Link Publikation -
2015
Titel Matrices, Jordan Normal Forms, and Spectral Radius Theory Typ Journal Article Autor Thiemann R Journal Archive of Formal Proofs Link Publikation -
2015
Titel Algebraic Numbers in Isabelle/HOL Typ Journal Article Autor Thiemann R Journal Archive of Formal Proofs Link Publikation -
2015
Titel Formalizing Soundness and Completeness of Unravelings DOI 10.1007/978-3-319-24246-0_15 Typ Book Chapter Autor Winkler S Verlag Springer Nature Seiten 239-255 -
2016
Titel Algebraic Numbers in Isabelle/HOL DOI 10.1007/978-3-319-43144-4_24 Typ Book Chapter Autor Thiemann R Verlag Springer Nature Seiten 391-408 -
2016
Titel Preface DOI 10.1016/j.entcs.2016.06.001 Typ Journal Article Autor Benevides M Journal Electronic Notes in Theoretical Computer Science Seiten 1-2 Link Publikation -
2017
Titel A formalization of the Berlekamp-Zassenhaus factorization algorithm DOI 10.1145/3018610.3018617 Typ Conference Proceeding Abstract Autor Divasón J Seiten 17-29 Link Publikation -
2017
Titel Certifying Safety and Termination Proofs for Integer Transition Systems DOI 10.1007/978-3-319-63046-5_28 Typ Book Chapter Autor Brockschmidt M Verlag Springer Nature Seiten 454-471 -
2017
Titel Parsing and Printing of and with Triples DOI 10.1007/978-3-319-57418-9_10 Typ Book Chapter Autor Joosten S Verlag Springer Nature Seiten 159-176 -
2016
Titel Formalizing Jordan normal forms in Isabelle/HOL DOI 10.1145/2854065.2854073 Typ Conference Proceeding Abstract Autor Thiemann R Seiten 88-99 Link Publikation -
2016
Titel Analyzing Program Termination and Complexity Automatically with AProVE DOI 10.1007/s10817-016-9388-y Typ Journal Article Autor Giesl J Journal Journal of Automated Reasoning Seiten 3-31 -
2015
Titel Reducing Relative Termination to Dependency Pair Problems DOI 10.1007/978-3-319-21401-6_11 Typ Book Chapter Autor Iborra J Verlag Springer Nature Seiten 163-178 -
2015
Titel Deriving Comparators and Show Functions in Isabelle/HOL DOI 10.1007/978-3-319-22102-1_28 Typ Book Chapter Autor Sternagel C Verlag Springer Nature Seiten 421-437 -
2015
Titel Certification of Complexity Proofs using CeTA DOI 10.4230/lipics.rta.2015.23 Typ Conference Proceeding Abstract Autor Avanzini M Konferenz LIPIcs, Volume 36, RTA 2015 Seiten 23 - 39 Link Publikation -
2020
Titel On probabilistic term rewriting DOI 10.1016/j.scico.2019.102338 Typ Journal Article Autor Avanzini M Journal Science of Computer Programming Seiten 102338 Link Publikation -
2020
Titel Certifying the Weighted Path Order (Invited Talk) DOI 10.4230/lipics.fscd.2020.4 Typ Conference Proceeding Abstract Autor Schöpf J Konferenz LIPIcs, Volume 167, FSCD 2020 Seiten 4:1 - 4:20 Link Publikation -
2021
Titel Two algorithms based on modular arithmetic: lattice basis reduction and Hermite normal form computation Typ Journal Article Autor Bottesch R Journal Archive of Formal Proofs Link Publikation -
2021
Titel Solving Cubic and Quartic Equations Typ Journal Article Autor Thiemann R Journal Archive of Formal Proofs Link Publikation -
2021
Titel A Formalization of Weighted Path Orders and Recursive Path Orders Typ Journal Article Autor Sternagel C Journal Archive of Formal Proofs Link Publikation -
2021
Titel Factorization of Polynomials with Algebraic Coefficients Typ Journal Article Autor Eberl M Journal Archive of Formal Proofs Link Publikation -
2021
Titel Regular Tree Relations Typ Journal Article Autor Felgenhauer B Journal Archive of Formal Proofs Link Publikation -
2021
Titel Multi-Dimensional Interpretations for Termination of Term Rewriting DOI 10.1007/978-3-030-79876-5_16 Typ Book Chapter Autor Yamada A Verlag Springer Nature Seiten 273-290 -
2021
Titel A Perron–Frobenius theorem for deciding matrix growth DOI 10.1016/j.jlamp.2021.100699 Typ Journal Article Autor Thiemann R Journal Journal of Logical and Algebraic Methods in Programming Seiten 100699 Link Publikation -
2022
Titel 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 Typ Journal Article Autor Chandran K Journal In Silico Pharmacology Seiten 14 -
2022
Titel Automatic search intervals for the smoothing parameter in penalized splines DOI 10.1007/s11222-022-10178-z Typ Journal Article Autor Li Z Journal Statistics and Computing Seiten 1 Link Publikation -
2022
Titel Spatial patterns and determinants of avocado frontier dynamics in Mexico DOI 10.1007/s10113-022-01883-6 Typ Journal Article Autor Ramírez-Mejía D Journal Regional Environmental Change Seiten 28 Link Publikation -
2019
Titel A Hierarchy of Polynomial Kernels DOI 10.48550/arxiv.1902.11006 Typ Preprint Autor Witteveen J -
2018
Titel On Probabilistic Term Rewriting DOI 10.1007/978-3-319-90686-7_9 Typ Book Chapter Autor Avanzini M Verlag Springer Nature Seiten 132-148 -
2019
Titel A Hierarchy of Polynomial Kernels DOI 10.1007/978-3-030-10801-4_39 Typ Book Chapter Autor Witteveen J Verlag Springer Nature Seiten 504-518 -
2019
Titel Verifying an Incremental Theory Solver for Linear Arithmetic in Isabelle/HOL DOI 10.1007/978-3-030-29007-8_13 Typ Book Chapter Autor Bottesch R Verlag Springer Nature Seiten 223-239 Link Publikation -
2017
Titel Subresultants Typ Journal Article Autor Joosten S Journal Archive of Formal Proofs Link Publikation -
2017
Titel Stochastic Matrices and the Perron-Frobenius Theorem Typ Journal Article Autor Thiemann R Journal Archive of Formal Proofs Link Publikation -
2017
Titel Foundational (Co)datatypes and (Co)recursion for Higher-Order Logic DOI 10.1007/978-3-319-66167-4_1 Typ Book Chapter Autor Biendarra J Verlag Springer Nature Seiten 3-21 -
2017
Titel Reachability, confluence, and termination analysis with state-compatible automata DOI 10.1016/j.ic.2016.06.011 Typ Journal Article Autor Felgenhauer B Journal Information and Computation Seiten 467-483 Link Publikation -
2020
Titel A Formalization of Knuth-Bendix Orders Typ Journal Article Autor Sternagel C Journal Archive of Formal Proofs Link Publikation -
2020
Titel Certifying the Weighted Path Order (Invited Talk) Typ Conference Proceeding Abstract Autor Schöpf J Konferenz 5th International Conference on Formal Structures for Computation and Deduction (FSCD 2020) Seiten 4:1-4:20 Link Publikation -
2020
Titel Formalizing the LLL Basis Reduction Algorithm and the LLL Factorization Algorithm in Isabelle/HOL DOI 10.1007/s10817-020-09552-1 Typ Journal Article Autor Thiemann R Journal Journal of Automated Reasoning Seiten 827-856 Link Publikation -
2020
Titel Verifying a Solver for Linear Mixed Integer Arithmetic in Isabelle/HOL DOI 10.1007/978-3-030-55754-6_14 Typ Book Chapter Autor Bottesch R Verlag Springer Nature Seiten 233-250 -
2018
Titel A Verified Implementation of Algebraic Numbers in Isabelle/HOL DOI 10.1007/s10817-018-09504-w Typ Journal Article Autor Joosten S Journal Journal of Automated Reasoning Seiten 363-389 Link Publikation -
2018
Titel Finding models through graph saturation DOI 10.48550/arxiv.1806.09392 Typ Preprint Autor Joosten S -
2018
Titel On Probabilistic Term Rewriting DOI 10.48550/arxiv.1802.09774 Typ Preprint Autor Avanzini M -
2018
Titel On W[1]-Hardness as Evidence for Intractability Typ Conference Proceeding Abstract Autor Bottesch R Konferenz 43rd International Symposium on Mathematical Foundations of Computer Science (MFCS 2018) Seiten 73:1-73:15 Link Publikation -
2018
Titel First-Order Terms Typ Journal Article Autor Sternagel C Journal Archive of Formal Proofs Link Publikation -
2018
Titel A verified LLL algorithm Typ Journal Article Autor Bottesch R Journal Archive of Formal Proofs Link Publikation -
2018
Titel A verified factorization algorithm for integer polynomials with polynomial complexity Typ Journal Article Autor Divasón J Journal Archive of Formal Proofs Link Publikation -
2018
Titel An Incremental Simplex Algorithm with Unsatisfiable Core Generation Typ Journal Article Autor Marić F Journal Archive of Formal Proofs Link Publikation -
2020
Titel Verified Analysis of Random Binary Tree Structures DOI 10.1007/s10817-020-09545-0 Typ Journal Article Autor Eberl M Journal Journal of Automated Reasoning Seiten 879-910 Link Publikation -
2021
Titel An Isabelle/HOL formalization of AProVE’s termination method for LLVM IR DOI 10.1145/3437992.3439935 Typ Conference Proceeding Abstract Autor Haslbeck M Seiten 238-249 Link Publikation -
2019
Titel Farkas' Lemma and Motzkin's Transposition Theorem Typ Journal Article Autor Bottesch R Journal Archive of Formal Proofs Link Publikation -
2019
Titel Linear Inequalities Typ Journal Article Autor Bottesch R Journal Archive of Formal Proofs Link Publikation -
2019
Titel A Verified Implementation of the Berlekamp–Zassenhaus Factorization Algorithm DOI 10.1007/s10817-019-09526-y Typ Journal Article Autor Divasón J Journal Journal of Automated Reasoning Seiten 699-735 Link Publikation -
2016
Titel Relative Termination via Dependency Pairs DOI 10.1007/s10817-016-9373-5 Typ Journal Article Autor Iborra J Journal Journal of Automated Reasoning Seiten 391-411 Link Publikation -
2016
Titel The Factorization Algorithm of Berlekamp and Zassenhaus Typ Journal Article Autor Divasón J Journal Archive of Formal Proofs Link Publikation -
2016
Titel Perron-Frobenius Theorem for Spectral Radius Analysis Typ Journal Article Autor Divasón J Journal Archive of Formal Proofs Link Publikation -
2016
Titel Polynomial Factorization Typ Journal Article Autor Thiemann R Journal Archive of Formal Proofs Link Publikation -
2016
Titel Polynomial Interpolation Typ Journal Article Autor Thiemann R Journal Archive of Formal Proofs Link Publikation -
2016
Titel AC Dependency Pairs Revisited Typ Conference Proceeding Abstract Autor Sternagel C Konferenz 25th EACSL Annual Conference on Computer Science Logic (CSL 2016) Seiten 8:1-8:16 Link Publikation -
2014
Titel Lifting Definition Option Typ Journal Article Autor Thiemann R Journal Archive of Formal Proofs Link Publikation -
2015
Titel Termination Competition (termCOMP 2015) DOI 10.1007/978-3-319-21401-6_6 Typ Book Chapter Autor Giesl J Verlag Springer Nature Seiten 105-108
-
2020
Titel FSCD-IJCAR 2020 Typ Personally asked as a key note speaker to a conference Bekanntheitsgrad Continental/International -
2020
Titel WRLA 2020 Typ Personally asked as a key note speaker to a conference Bekanntheitsgrad Continental/International -
2019
Titel WPTE 2019 Typ Personally asked as a key note speaker to a conference Bekanntheitsgrad Continental/International -
2019
Titel IFIP 2019 Typ Personally asked as a key note speaker to a conference Bekanntheitsgrad Continental/International -
2019
Titel Reynaud 2019 Typ Attracted visiting staff or user to your research group Bekanntheitsgrad Continental/International -
2018
Titel CPP 2018 Typ Personally asked as a key note speaker to a conference Bekanntheitsgrad Continental/International -
2017
Titel AFP Typ Appointed as the editor/advisor to a journal or book series Bekanntheitsgrad Continental/International -
2014
Titel LSFA 2014 Typ Personally asked as a key note speaker to a conference Bekanntheitsgrad Continental/International