Abstract: The Extended Theory of Trees and Algebraic (Co)datatypes

The first-order theory of finite and infinite trees has been studied since the eighties, especially by the logic programming community. Following Djelloul, Dao and Fruhwirth, we consider an extension of this theory with an additional predicate for finiteness of trees, which is useful for expressing properties about (not just datatypes but also) codatatypes. Based on their work, we present a simplification procedure that determines whether any given (not necessarily closed) formula is satisfiable, returning a simplified formula which enables one to read off all possible models. Our extension makes the algorithm usable for algebraic (co)datatypes, which was impossible in their original work due to restrictive assumptions. We also provide a prototype implementation of our simplification procedure and evaluate it on instances from the SMT-LIB.

[1]  Emil L. Post A variant of a recursively unsolvable problem , 1946 .

[2]  Wilhelm Ackermann,et al.  Solvable Cases Of The Decision Problem , 1954 .

[3]  Daniel Kroening,et al.  Decision Procedures - An Algorithmic Point of View , 2008, Texts in Theoretical Computer Science. An EATCS Series.

[4]  Jean-Pierre Jouannaud,et al.  Proofs by induction in equational theories without constructors , 1985, Bull. EATCS.

[5]  C.-H. Luke Ong,et al.  Higher-Order Model Checking: An Overview , 2015, 2015 30th Annual ACM/IEEE Symposium on Logic in Computer Science.

[6]  Cesare Tinelli,et al.  An Abstract Decision Procedure for a Theory of Inductive Data Types , 2007, J. Satisf. Boolean Model. Comput..

[7]  Michael J. Maher Complete axiomatizations of the algebras of finite, rational and infinite trees , 1988, [1988] Proceedings. Third Annual Information Symposium on Logic in Computer Science.

[8]  Hubert Comon-Lundh,et al.  Equational Problems and Disunification , 1989, J. Symb. Comput..

[9]  Daniel Kroening,et al.  Decision Procedures , 2016, Texts in Theoretical Computer Science. An EATCS Series.

[10]  Sergei G. Vorobyov An Improved Lower Bound for the Elementary Theories of Trees , 1996, CADE.

[11]  Jasmin Christian Blanchette,et al.  A Decision Procedure for (Co)datatypes in SMT Solvers , 2016, Journal of Automated Reasoning.

[12]  Thom W. Frühwirth,et al.  Theory of finite or infinite trees revisited , 2007, Theory and Practice of Logic Programming.

[13]  C.-H. Luke Ong,et al.  HoCHC: A Refutationally Complete and Semantically Invariant System of Higher-order Logic Modulo Theories , 2019, 2019 34th Annual ACM/IEEE Symposium on Logic in Computer Science (LICS).

[14]  Clark W. Barrett,et al.  The SMT-LIB Standard Version 2.0 , 2010 .

[15]  David Turner An overview of Miranda , 1986, SIGP.

[16]  J. W. Lloyd,et al.  Foundations of logic programming; (2nd extended ed.) , 1987 .

[17]  Derek C. Oppen Reasoning About Recursively Defined Data Structures , 1980, J. ACM.

[18]  John Wylie Lloyd,et al.  Foundations of Logic Programming , 1987, Symbolic Computation.