Automated Complexity Analysis via Transformations
Automated Complexity Analysis via Transformations
Disciplines
Computer Sciences (70%); Mathematics (30%)
Keywords
-
Computer Science,
Program Analysis,
Runtime Complexity,
Term Rewriting,
Logic,
Symbolic Computation
This project is concerned with analysing the complexity of programs. This is a highly important subject, since the complexity of a program essentially determines its usefulness. We aim at an automated analysis that should work like a "push button" technology: we push a button and the tool gives us detailed information on the complexity of the input program. Furthermore we aim at a tool that performs a static program analysis and that can handle existing programming languages, not only toy languages. In recent years there have been several approaches to the automated analysis of the complexity of programs, for example in the field of embedded systems or in correctness proofs of program libraries. The first application is not surprisising: imagine a small program that is supposed to work efficiently on your smartphone: any unnecessary waste of resources has to be avoided and such a waste has to be detected before the program is distributed world- wide. In this project we will pursue the following aim: "Advance the state of the art of complexity analysis of programs by investigating automated runtime complexity analysis via transformations." Hence we will not pursue a direct approach, but rather a transformational one: First we will translate the input program into a term rewrite system and then we use the results obtained in the course of this project on the (automated) complexity analysis of rewrite systems. Thus we can exploit the simple and elegant framework provided by rewriting. Perhaps it is best to consider the analogy to SAT technology. In principle the question of satisfiability of a propositional formula is only of theoretical nature and may be considered a toy question. But after several breakthroughs in SAT solving and encodings theories SAT technology is now used as an arsenal for search techniques. Hardly any ad-hoc domain-specific algorithm outperforms a typical easy encoding into SAT and the use of an existing SAT solver. This is our vision, that eventually rewriting technology provides similar versatile and powerful tools for the complexity analysis of programs. We anticipate that the research described in this proposal will enhance the state of the art of complexity analysis of programs. It will significantly advance the state of the art in automated transformation techniques and automated complexity analysis in rewriting. Furthermore the project will impact research on amortised cost analysis, analysis of cost relations, and static program analysis in particular and implicit computational complexity and proof theory in general. In sum this project will bring us one step closer to a "push button" technology in the complexity analysis of realistic and large-scale programs.
The ACAT project is concerned with the verification of software. More precisely we have developed new and powerful methods in order to automatically verify whether an analysed software component or computer program can be executed within the provided resources. This is an incredible important area for information technology, as the use of resources of a program has repercussions on its usability. We are concerned in an automated analysis, which functions as a push-button technique. We press a button and the tool provides a detailed account on the resource usage of the analysed program. Furthermore, we are interested in static analysis, that is, an analysis which can already be employed within the development of the software. This method extends existing methods of profiling of programs. Finally, our concern are real programs written in existing programming languages. This aims at future applications of the methods developed in industry.Main results During the course of the project we developed methods, which allow us to analyse computer programs from a variety of application areas with respect to their required runtime and space bounds with a single uniform static analysis. This holds true for so- called imperative as well as declarative programs. Imperative programs follow an explicit command structure. Declarative programs are formulated more abstractly and can often be coded shorter. The mainstream of software is written in an imperative style. However, in recent years there is a strong trend towards the use of declarative languages. Our methods and in particular the developed analyser TCT are unique in their universal applicability. This universality shows itself clearly in international competitions. In these competitions TCT is always indicated as the most general and versatile prover. At the first FLoC Olympic Games, held within the Vienna Summer of Logic 2014, TCT could win a prestigious Kurt Gödel medal.Methodology Our approach to program analysis employs program transformations. First we abstract the given input program into a formally easily describable set of rules (a term rewrite system). This allows us to employ established methods for the resource analysis of term rewrite systems after the transformation. Due to this method we can exploit the technically simple and elegant approach of term rewrite systems. The universality of TCT is founded in this methodology.Factual informationThe ACAT project has been a stand-alone project for foundational research in the area of theoretical computer science and logic. Georg Moser has been the principal investigator.
- Universität Innsbruck - 100%
- Jean-Yves Marion, INRIA Lorraine - France
- Guillaume Bonfante, Université de Lorraine - France
- Johannes Waldmann, Hochschule für Technik, Wirtschaft und Kultur - Germany
- Tobias Nipkow, Technische Universität München - Germany
- Elvira Albert, Universidad Complutense de Madrid - Spain
- Aaron Stump, University of Iowa - USA
Research Output
- 138 Citations
- 28 Publications
-
2019
Title Parametrized bar recursion: a unifying framework for realizability interpretations of classical dependent choice DOI 10.1093/logcom/exv056 Type Journal Article Author Powell T Journal Journal of Logic and Computation Pages 519-554 -
2016
Title The complexity of interaction DOI 10.1145/2837614.2837646 Type Conference Proceeding Abstract Author Gimenez S Pages 243-255 Link Publication -
2016
Title Interaction automata and the ia2d interpreter. Type Journal Article Author Gimenez S Journal Proceedings of the 1st FSCD -
2016
Title The complexity of interaction DOI 10.1145/2914770.2837646 Type Journal Article Author Gimenez S Journal ACM SIGPLAN Notices Pages 243-255 Link Publication -
2016
Title Kruskal's Tree Theorem for Acyclic Term Graphs DOI 10.4204/eptcs.225.5 Type Journal Article Author Moser G Journal Electronic Proceedings in Theoretical Computer Science Pages 25-34 Link Publication -
2015
Title The Complexity of Interaction (Long Version) DOI 10.48550/arxiv.1511.01838 Type Preprint Author Gimenez S -
2015
Title Analysing the Complexity of Functional Programs: Higher-Order Meets First-Order (Long Version) DOI 10.48550/arxiv.1506.05043 Type Preprint Author Avanzini M -
2015
Title On the Computational Content of Termination Proofs DOI 10.1007/978-3-319-20028-6_28 Type Book Chapter Author Moser G Publisher Springer Nature Pages 276-285 -
2015
Title Leftmost outermost revisited. Type Journal Article Author Hirokawa N Journal Proceedings of the 26th RTA -
2017
Title Bar recursion over finite partial functions DOI 10.1016/j.apal.2016.11.003 Type Journal Article Author Oliva P Journal Annals of Pure and Applied Logic Pages 887-921 Link Publication -
2017
Title A proof theoretic study of abstract termination principles DOI 10.48550/arxiv.1706.03577 Type Preprint Author Powell T -
2016
Title The complexity of interaction. Type Conference Proceeding Abstract Author Gimenez S Conference Proceedings of the 7th DICE -
2016
Title Kruskal's Tree Theorem for Acyclic Term Graphs DOI 10.48550/arxiv.1609.03642 Type Preprint Author Moser G -
2016
Title Complexity of Acyclic Term Graph Rewriting DOI 10.4230/lipics.fscd.2016.10 Type Conference Proceeding Abstract Author Avanzini M Conference LIPIcs, Volume 52, FSCD 2016 Pages 10:1 - 10:18 Link Publication -
2016
Title Gödel's functional interpretation and the concept of learning DOI 10.1145/2933575.2933605 Type Conference Proceeding Abstract Author Powell T Pages 136-145 -
2020
Title Dependent choice as a termination principle DOI 10.1007/s00153-019-00706-6 Type Journal Article Author Powell T Journal Archive for Mathematical Logic Pages 503-516 -
2019
Title A proof-theoretic study of abstract termination principles DOI 10.1093/logcom/exz026 Type Journal Article Author Powell T Journal Journal of Logic and Computation Pages 1345-1366 Link Publication -
2014
Title Amortised Resource Analysis and Typed Polynomial Interpretations DOI 10.1007/978-3-319-08918-8_19 Type Book Chapter Author Hofmann M Publisher Springer Nature Pages 272-286 -
2016
Title TcT: Tyrolean Complexity Tool DOI 10.1007/978-3-662-49674-9_24 Type Book Chapter Author Avanzini M Publisher Springer Nature Pages 407-423 -
2015
Title Analysing the complexity of functional programs: higher-order meets first-order DOI 10.1145/2858949.2784753 Type Journal Article Author Avanzini M Journal ACM SIGPLAN Notices -
2015
Title Analysing the complexity of functional programs: higher-order meets first-order DOI 10.1145/2784731.2784753 Type Conference Proceeding Abstract Author Avanzini M Pages 152-164 Link Publication -
2015
Title Multivariate amortised resource analysis for term rewrite systems. Type Journal Article Author Hofmann M Journal Proceedings of the 13th TLCA -
2015
Title Higher-order complexity analysis: Harnessing first-order tools. Type Conference Proceeding Abstract Author Avanzini M Conference Proceedings of 6th DICE, 2015 -
2014
Title Amortised Resource Analysis and Typed Polynomial Interpretations (extended version) DOI 10.48550/arxiv.1402.1922 Type Preprint Author Hofmann M -
2014
Title A complexity preserving transformation from Jinja Bytecode to rewrite systems. Type Conference Proceeding Abstract Author Moser G Conference Proceedings of the 1st WPTE -
2018
Title From Jinja bytecode to term rewriting: A complexity reflecting transformation DOI 10.1016/j.ic.2018.05.007 Type Journal Article Author Moser G Journal Information and Computation Pages 116-143 -
0
DOI 10.1145/2784731 Type Other -
0
Title Parametrised bar recursion: A unifying framework for realizability interpretations of classical dependent choice. Type Other Author Powell T