Circular Coinduction in Coq Using Bisimulation-Up-To Techniques

We investigate methods for proving equality of infinite objects using circular coinduction, a combination of coinduction with term rewriting, in the Coq proof assistant. In order to ensure productivity, Coq requires the corecursive construction of infinite objects to be guarded. However, guardedness forms a severe confinement for defining infinite objects, and this includes coinductive proof terms. In particular, circular coinduction is troublesome in Coq, since rewriting usually obstructs guardedness. Typically, applications of transitivity are in between the guard and the coinduction hypothesis. Other problems concern the use of lemmas, and rewriting under causal contexts. We show that the method of bisimulation-up-to allows for an elegant rendering of circular coinduction, and we use this to overcome the troubles with guardedness.

[1]  Grigore Rosu,et al.  Circular Coinduction: A Proof Theoretical Foundation , 2009, CALCO.

[2]  Chung-Kil Hur,et al.  The power of parameterization in coinductive proof , 2013, POPL.

[3]  Andreas Abel Termination and Productivity Checking with Continuous Types , 2003, TLCA.

[4]  Thierry Coquand,et al.  Infinite Objects in Type Theory , 1994, TYPES.

[5]  Davide Sangiorgi,et al.  Enhancements of the bisimulation proof method , 2012, Advanced Topics in Bisimulation and Coinduction.

[6]  Sam Lindley,et al.  Extensional Rewriting with Sums , 2007, TLCA.

[7]  Eduardo Giménez,et al.  Codifying Guarded Definitions with Recursive Schemes , 1994, TYPES.

[8]  Ajitha Rajan,et al.  Requirements Coverage as an Adequacy Measure for Conformance Testing , 2008, ICFEM.

[9]  Hans Zantema,et al.  Proving Equality of Streams Automatically , 2011, RTA.

[10]  Hugo Herbelin,et al.  The Coq proof assistant : reference manual, version 6.1 , 1997 .

[11]  Alexander Kurz,et al.  Algebra and Coalgebra in Computer Science, Third International Conference, CALCO 2009, Udine, Italy, September 7-10, 2009. Proceedings , 2009, CALCO.

[12]  Emil L. Post Formal Reductions of the General Combinatorial Decision Problem , 1943 .

[13]  Nils Anders Danielsson Beating the Productivity Checker Using Embedded Languages , 2010, PAR@ITP.

[14]  Davide Sangiorgi,et al.  Advanced Topics in Bisimulation and Coinduction: List of contributors , 2011 .

[15]  Frank Wolter,et al.  Monodic fragments of first-order temporal logics: 2000-2001 A.D , 2001, LPAR.

[16]  Amr Sabry,et al.  Proving the correctness of reactive systems using sized types , 1996, POPL '96.

[17]  Robin Milner,et al.  Communication and concurrency , 1989, PHI Series in computer science.

[18]  Grigore Rosu,et al.  Circular Coinduction with Special Contexts , 2009, ICFEM.

[19]  Jan Willem Klop,et al.  Productivity of stream definitions , 2007, Theor. Comput. Sci..

[20]  Paula Severi,et al.  Pure type systems with corecursion on streams: from finite to infinitary normalisation , 2012, ICFP.

[21]  Jörg Endrullis,et al.  Lazy productivity via termination , 2011, Theor. Comput. Sci..

[22]  Grigore Rosu,et al.  Circular coinductive rewriting , 2000, Proceedings ASE 2000. Fifteenth IEEE International Conference on Automated Software Engineering.

[23]  J. Shallit,et al.  Automatic Sequences: Contents , 2003 .

[24]  Jörg Endrullis,et al.  Data-Oblivious Stream Productivity , 2008, LPAR.

[25]  Jeffrey Shallit,et al.  Automatic Sequences by Jean-Paul Allouche , 2003 .

[26]  Maribel Fernández,et al.  Curry-Style Types for Nominal Terms , 2006, TYPES.

[27]  Jeffrey Shallit,et al.  Automatic Sequences: Theory, Applications, Generalizations , 2003 .