Extending Timbuk to Verify Functional Programs

@inproceedings{Genet2018ExtendingTT,
  title={Extending Timbuk to Verify Functional Programs},
  author={Thomas Genet and Tristan Gillard and Timoth{\'e}e Haudebourg and S{\'e}bastien L{\^e} Cong},
  booktitle={WRLA@ETAPS},
  year={2018}
}
Timbuk implements the Tree Automata Completion algorithm whose purpose is to over-approximate sets of terms reachable by a term rewriting system. Completion is parameterized by a set of equations defining which terms are equated in the approximation. In this paper we present two extensions of Timbuk which permit us to automatically verify safety properties on functional programs. The first extension is a language, based on regular tree expressions, which eases the specification of the property… 
Completeness of Tree Automata Completion
  • T. Genet
  • Computer Science, Mathematics
    FSCD
  • 2018
TLDR
A completeness theorem on equational tree automata completion is shown stating that, if there exists a regular over-approximation of the set of reachable terms, then equational completion can compute it (or safely under- approximate it).
Abstract Interpretation of Program Transformations using Regular Tree Grammars
TLDR
An abstract interpreter for the Stratego program transformation language that approximates the syntactic shape of transformed code using regular tree grammars and an abstract interpreter that guarantees well-sortedness are presented.

References

SHOWING 1-10 OF 26 REFERENCES
Verifying Higher-Order Functions with Tree Automata
TLDR
The experiments show that tree automata are sufficiently expressive to prove intricate safety properties and sufficiently simple for the verification result to be certified in Coq.
Reachability Analysis of Innermost Rewriting
TLDR
This work proposes to adapt the Tree Automata Completion algorithm to accurately approximate the set of terms reachable by rewriting under the inner- most strategy, and proves that the proposed technique is sound and precise w.r.t. innermost rewriting.
Automata-Based Abstraction for Automated Verification of Higher-Order Tree-Processing Programs
TLDR
This work proposes an automata-based abstraction of tree data, and a counterexample-guided refinement of the abstraction that can be used to construct a fully-automated verification tool for higher-order, tree-processing functional programs.
Termination criteria for tree automata completion
  • T. Genet
  • Computer Science
    J. Log. Algebraic Methods Program.
  • 2016
Automata Completion and Regularity Preservation
  • T. Genet
  • Computer Science, Mathematics
  • 2017
TLDR
Two completeness theorems are shown that, if the set of reachable terms is regular, then the equational tree automata completion can compute it and one that provides an algorithmic way to safely explore regular approximations with completion.
Equational abstractions
Verifying higher-order functional programs with pattern-matching algebraic data types
TLDR
This paper introduces pattern-matching recursion schemes (PMRS) as an accurate model of computation for functional programs that manipulate algebraic data-types and shows that the (trivial automaton) model-checking problem for weak PMRS is decidable.
Decidable Approximations of Sets of Descendants and Sets of Normal Forms
TLDR
The main technical contribution of the paper is the construction of an approximation automaton which recognises a superset of the set of normal forms of terms in a set E, w.r.t. a Term Rewriting System.
Termination Analysis for Functional Programs using Term Orderings
TLDR
This paper presents a procedure for automated termination proofs of functional programs in contrast to previously presented methods a suited well-founded ordering does not have to be fixed in advance by the user, but can be synthesized automatically.
...
...