2020/05/31 by Fabian Zaiser, C. -H. Luke Ong
Computer Science · #cs.LO #cs.SC
paper · pdf · doi:10.4204/eptcs.320.14
published as EPTCS 320, 2020, pp. 167-196 · In Proceedings VPT/HCVS 2020, arXiv:2008.02483
arxiv created 2020/08/07 · arxiv updated 2020/08/10
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 Frühwirth, 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.