Journal of Automated Reasoning

, Volume 58, Issue 3, pp 341–362

A Decision Procedure for (Co)datatypes in SMT Solvers

  • Andrew Reynolds
  • Jasmin Christian Blanchette

DOI: 10.1007/s10817-016-9372-6

Cite this article as:
Reynolds, A. & Blanchette, J.C. J Autom Reasoning (2017) 58: 341. doi:10.1007/s10817-016-9372-6


We present a decision procedure that combines reasoning about datatypes and codatatypes. The dual of the acyclicity rule for datatypes is a uniqueness rule that identifies observationally equal codatatype values, including cyclic values. The procedure decides universal problems and is composable via the Nelson–Oppen method. It has been implemented in CVC4, a state-of-the-art SMT solver. An evaluation based on problems generated from formalizations developed with Isabelle demonstrates the potential of the procedure.


(Co)inductive datatypes Automatic theorem provers SMT solvers Decision procedures 

Copyright information

© Springer Science+Business Media Dordrecht 2016

Authors and Affiliations

  • Andrew Reynolds
    • 1
  • Jasmin Christian Blanchette
    • 2
    • 3
  1. 1.École Polytechnique Fédérale de Lausanne (EPFL)LausanneSwitzerland
  2. 2.Inria & LORIANancyFrance
  3. 3.Max-Planck-Institut für InformatikSaarbrückenGermany

Personalised recommendations