Saved in:
Bibliographic Details
Main Authors: Faella, Marco, Parlato, Gennaro
Format: Preprint
Published: 2024
Subjects:
Online Access:https://arxiv.org/abs/2410.09668
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866914971309309952
author Faella, Marco
Parlato, Gennaro
author_facet Faella, Marco
Parlato, Gennaro
contents Verifying programs that manipulate tree data structures often requires complex, ad-hoc proofs that are hard to generalize and automate. This paper introduces an automatic technique for analyzing such programs. Our approach combines automata and logics to tackle the challenges posed by diverse tree data structures uniformly. At the core of our methodology is the knitted-tree encoding, which maps a program execution into a tree data structure encapsulating input, output, and intermediate configurations, within a single structure. By leveraging the compositional properties of knitted-trees, we characterize them using constrained Horn clauses (CHCs). This encoding reduces verification to solving CHC satisfiability, benefiting from ongoing advancements in CHC solvers. While we focus on the memory safety problem for illustration, our technique applies broadly to various verification tasks involving tree data structures.
format Preprint
id arxiv_https___arxiv_org_abs_2410_09668
institution arXiv
publishDate 2024
record_format arxiv
spellingShingle Automated Verification of Tree-Manipulating Programs Using Constrained Horn Clauses
Faella, Marco
Parlato, Gennaro
Programming Languages
Verifying programs that manipulate tree data structures often requires complex, ad-hoc proofs that are hard to generalize and automate. This paper introduces an automatic technique for analyzing such programs. Our approach combines automata and logics to tackle the challenges posed by diverse tree data structures uniformly. At the core of our methodology is the knitted-tree encoding, which maps a program execution into a tree data structure encapsulating input, output, and intermediate configurations, within a single structure. By leveraging the compositional properties of knitted-trees, we characterize them using constrained Horn clauses (CHCs). This encoding reduces verification to solving CHC satisfiability, benefiting from ongoing advancements in CHC solvers. While we focus on the memory safety problem for illustration, our technique applies broadly to various verification tasks involving tree data structures.
title Automated Verification of Tree-Manipulating Programs Using Constrained Horn Clauses
topic Programming Languages
url https://arxiv.org/abs/2410.09668