An Improved Unrolling-Based Decision Procedure for Algebraic Data Types
نویسندگان
چکیده
Reasoning about algebraic data types and functions that operate over these data types is an important problem for a large variety of applications. In this paper, we present a decision procedure for reasoning about data types using abstractions that are provided by catamorphisms: fold functions that map instances of algebraic data types into values in a decidable domain. We show that the procedure is sound and complete for a class of monotonic catamorphisms. Our work extends a previous decision procedure that solves formulas involving algebraic data types via successive unrollings of catamorphism functions. First, we propose the categories of monotonic catamorphisms and associative-commutative catamorphisms, which we argue provide a better formal foundation than previous categorizations of catamorphisms. We use monotonic catamorphisms to fix an incompleteness in the previous unrolling algorithm (and associated proof). We then use these notions to address two open problems from previous work: (1) we provide a bound on the number of unrollings necessary for completeness, showing that it is exponentially small with respect to formula size for associative-commutative catamorphisms, and (2) we demonstrate that associative-commutative catamorphisms can be combined within a formula whilst preserving completeness.
منابع مشابه
On Parameterized Abstractions in Unrolling-Based Decision Procedure for Algebraic Data Types
Reasoning about algebraic data types is an important problem for a variety of proof tasks. Recently, a variety of decision procedures have been proposed for algebraic data types involving creating suitable abstractions of values in the types. A class of abstractions created from catamorphism functions has been shown to be theoretically applicable to a wide variety of reasoning tasks as well as ...
متن کاملOn Decision Procedures for Algebraic Data Types with Abstractions
We describe a parameterized decision procedure that extends the decision procedure for functional recursive algebraic data types (trees) with the ability to specify and reason about abstractions of data structures. The abstract values are specified using recursive abstraction functions that map trees into other data types that have decidable theories. Our result yields a decidable logic which c...
متن کاملFeature graphs and abstract data types: a unifying approach
Feature graphs appearing in unification--based grammar formalisms and algebraic specifications of abstract data types (ADTs) are both used for defining a collection of objects together with functions between these object sets. Starting from this observation we define an algebraic semantics for feature graphs by assigning an algebraic specification to each feature graph. This opens the rich worl...
متن کاملAbstractions in Decision Procedures for Algebraic Data Types Abstractions in Decision Procedures for Algebraic Data Types Abstractions in Decision Procedures for Algebraic Data Types
ions in Decision Procedures for Algebraic Data Types
متن کاملAn Improved Algorithm for Network Reliability Evaluation
Binary Decision Diagram (BDD) is a data structure proved to be compact in representation and efficient in manipulation of Boolean formulas. Using Binary decision diagram in network reliability analysis has already been investigated by some researchers. In this paper we show how an exact algorithm for network reliability can be improved and implemented efficiently by using CUDD - Colorado Univer...
متن کامل