2012
DOI: 10.1007/978-3-642-31424-7_13
|View full text |Cite
|
Sign up to set email alerts
|

Automated Termination Proofs for Java Programs with Cyclic Data

Abstract: Abstract. In earlier work, we developed a technique to prove termination of Java programs automatically: first, Java programs are automatically transformed to term rewrite systems (TRSs) and then, existing methods and tools are used to prove termination of the resulting TRSs. In this paper, we extend our technique in order to prove termination of algorithms on cyclic data such as cyclic lists or graphs automatically. We implemented our technique in the tool AProVE and performed extensive experiments to evaluat… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
45
0

Year Published

2013
2013
2023
2023

Publication Types

Select...
6
1

Relationship

4
3

Authors

Journals

citations
Cited by 27 publications
(45 citation statements)
references
References 31 publications
0
45
0
Order By: Relevance
“…Therefore, runtime complexity corresponds to the usual notion of "complexity" for programs [4,5]. Note that most termination techniques which transform programs to TRSs (e.g., [8,13,14,28]) result in rewrite systems where one only regards innermost rewrite sequences. This also holds for techniques to analyze termination of languages like Haskell by term rewriting [13], although Haskell has a lazy (outermost) evaluation strategy.…”
Section: Runtime Complexity Of Term Rewritingmentioning
confidence: 99%
See 1 more Smart Citation
“…Therefore, runtime complexity corresponds to the usual notion of "complexity" for programs [4,5]. Note that most termination techniques which transform programs to TRSs (e.g., [8,13,14,28]) result in rewrite systems where one only regards innermost rewrite sequences. This also holds for techniques to analyze termination of languages like Haskell by term rewriting [13], although Haskell has a lazy (outermost) evaluation strategy.…”
Section: Runtime Complexity Of Term Rewritingmentioning
confidence: 99%
“…Techniques for automated termination analysis of term rewriting are very powerful and have been successfully used to analyze termination of programs in many different languages (e.g., Java [8,28], Haskell [13], and Prolog [14]). Hence, by adapting these termination techniques, the ultimate goal is to obtain approaches which can also analyze the complexity of programs automatically.…”
Section: Introductionmentioning
confidence: 99%
“…However, decomposability is a restriction and there are programs in the TPDB whose complexity we cannot analyze, because our graph construction yields a non-decomposable evaluation graph. 9 For instance, the graph in Ex. 21 is not decomposable.…”
Section: Definition 24 (Decomposable Graphs)mentioning
confidence: 99%
“…But our approach could be extended by generating TRSs with built-in integers [14] from the evaluation graphs. This was also done in our approaches for termination analysis of Java via term rewriting [7,9].…”
Section: Theorem 27 (Soundness Of Complexity Analysis Ii)mentioning
confidence: 99%
See 1 more Smart Citation