Bisimilarity as a theory of functional programming
Theoretical Computer Science - Special issue on mathematical foundations of programming semantics
Communicating and mobile systems: the &pgr;-calculus
Communicating and mobile systems: the &pgr;-calculus
Theoretical Computer Science
A Note on Model Checking the Modal nu-Calculus
ICALP '89 Proceedings of the 16th International Colloquium on Automata, Languages and Programming
Codifying Guarded Definitions with Recursive Schemes
TYPES '94 Selected papers from the International Workshop on Types for Proofs and Programs
Local Model Checking in the Modal Mu-Calculus
TAPSOFT '89/CAAP '89 Proceedings of the International Joint Conference on Theory and Practice of Software Development, Volume 1: Advanced Seminar on Foundations of Innovative Software Development I and Colloquium on Trees in Algebra and Programming
Proof System for Hennessy-Milner Logic with Recursion
CAAP '88 Proceedings of the 13th Colloquium on Trees in Algebra and Programming
On the bisimulation proof method
Mathematical Structures in Computer Science
Type-based termination of recursive definitions
Mathematical Structures in Computer Science
Recursion on Nested Datatypes in Dependent Type Theory
CiE '08 Proceedings of the 4th conference on Computability in Europe: Logic and Theory of Algorithms
Relaxed-memory concurrency and verified compilation
Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Advanced Topics in Bisimulation and Coinduction
Advanced Topics in Bisimulation and Coinduction
Introduction to Bisimulation and Coinduction
Introduction to Bisimulation and Coinduction
The marriage of bisimulations and Kripke logical relations
POPL '12 Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Iterative circular coinduction for CoCasl in isabelle/HOL
FASE'05 Proceedings of the 8th international conference, held as part of the joint European Conference on Theory and Practice of Software conference on Fundamental Approaches to Software Engineering
Incremental pattern-based coinduction for process algebra and its isabelle formalization
FOSSACS'10 Proceedings of the 13th international conference on Foundations of Software Science and Computational Structures
Mtac: a monad for typed tactic programming in Coq
Proceedings of the 18th ACM SIGPLAN international conference on Functional programming
Making the java memory model safe
ACM Transactions on Programming Languages and Systems (TOPLAS)
Circular coinduction in coq using bisimulation-up-to techniques
ITP'13 Proceedings of the 4th international conference on Interactive Theorem Proving
Coinductive Predicates and Final Sequences in a Fibration
Electronic Notes in Theoretical Computer Science (ENTCS)
Hi-index | 0.00 |
Coinduction is one of the most basic concepts in computer science. It is therefore surprising that the commonly-known lattice-theoretic accounts of the principles underlying coinductive proofs are lacking in two key respects: they do not support compositional reasoning (i.e. breaking proofs into separate pieces that can be developed in isolation), and they do not support incremental reasoning (i.e. developing proofs interactively by starting from the goal and generalizing the coinduction hypothesis repeatedly as necessary). In this paper, we show how to support coinductive proofs that are both compositional and incremental, using a dead simple construction we call the parameterized greatest fixed point. The basic idea is to parameterize the greatest fixed point of interest over the accumulated knowledge of "the proof so far". While this idea has been proposed before, by Winskel in 1989 and by Moss in 2001, neither of the previous accounts suggests its general applicability to improving the state of the art in interactive coinductive proof. In addition to presenting the lattice-theoretic foundations of parameterized coinduction, demonstrating its utility on representative examples, and studying its composition with "up-to" techniques, we also explore its mechanization in proof assistants like Coq and Isabelle. Unlike traditional approaches to mechanizing coinduction (e.g. Coq's cofix), which employ syntactic "guardedness checking", parameterized coinduction offers a semantic account of guardedness. This leads to faster and more robust proof development, as we demonstrate using our new Coq library, Paco.