CPP 2012: Certified Programs and Proofs pp 160-172

# Shall We Juggle, Coinductively?

• Keisuke Nakano
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7679)

## Abstract

Buhler et al. presented a mathematical theory of toss juggling by regarding a toss pattern as an arithmetic function, where the function must satisfy a condition for the pattern to be valid. In this paper, the theory is formalized in terms of coinduction, reflecting the fact that the validity of toss juggling is related to a property of infinite phenomena. A tactic is implemented for proving the validity of toss patterns in Coq. Additionally, the completeness and soundness of a well-known algorithm for checking the validity is demonstrated. The result exposes a practical aspect of coinductive proofs.

## Keywords

Auxiliary Lemma Proof Tree Validation Rule Guardedness Condition Judgment Rule
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

## References

1. [BEGW94]
Buhler, J., Eisenbud, D., Graham, R., Wright, C.: Juggling Drops and Descents. American Mathematical Monthly 101(6), 507–519 (1994)
2. [Chl11]
Chlipala, A.: Certified Programming with Dependent Types. MIT Press (2011), http://adam.chlipala.net/cpdt/
3. [GC98]
Giménez, E., Castéran, P.: A Tutorial on [Co-]Inductive Types in Coq (1998)Google Scholar
4. [Gim95]
Giménez, E.: Codifying Guarded Definitions with Recursive Schemes. In: Smith, J., Dybjer, P., Nordström, B. (eds.) TYPES 1994. LNCS, vol. 996, pp. 39–59. Springer, Heidelberg (1995)
5. [How80]
Howard, W.A.: The Formulae-As-Types Notion of Construction. In: Seldin, J.P., Hindley, J.R. (eds.) To H. B. Curry: Essays on Combinatory Logic, Lambda Calculus and Formalism, pp. 479–490. Academic Press (1980)Google Scholar
6. [LG09]
Leroy, X., Grall, H.: Coinductive big-step operational semantics. Information and Computation 207(2), 284–304 (2009)
7. [NU09]
Nakata, K., Uustalu, T.: Trace-Based Coinductive Operational Semantics for While. In: Berghofer, S., Nipkow, T., Urban, C., Wenzel, M. (eds.) TPHOLs 2009. LNCS, vol. 5674, pp. 375–390. Springer, Heidelberg (2009)
8. [OEIS]
OEIS Foundation Inc. Sequence A010060. The On-Line Encyclopedia of Integer Sequences, published electronically at http://oeis.org/A010060
9. [San09]
Sangiorgi, D.: On the Origins of Bisimulation and Coinduction. ACM Transactions on Programming Languages and Systems 31(4), 15:1–15:41 (2009)Google Scholar