English

Coinductive big-step operational semantics

Programming Languages 2008-08-06 v1

Abstract

Using a call-by-value functional language as an example, this article illustrates the use of coinductive definitions and proofs in big-step operational semantics, enabling it to describe diverging evaluations in addition to terminating evaluations. We formalize the connections between the coinductive big-step semantics and the standard small-step semantics, proving that both semantics are equivalent. We then study the use of coinductive big-step semantics in proofs of type soundness and proofs of semantic preservation for compilers. A methodological originality of this paper is that all results have been proved using the Coq proof assistant. We explain the proof-theoretic presentation of coinductive definitions and proofs offered by Coq, and show that it facilitates the discovery and the presentation of the results.

Keywords

Cite

@article{arxiv.0808.0586,
  title  = {Coinductive big-step operational semantics},
  author = {Xavier Leroy and Hervé Grall},
  journal= {arXiv preprint arXiv:0808.0586},
  year   = {2008}
}
R2 v1 2026-06-21T11:07:36.462Z