## Coinductive big-step operational semantics (2006)

### Cached

### Download Links

- [hal.archives-ouvertes.fr]
- [hal.inria.fr]
- [cristal.inria.fr]
- [gallium.inria.fr]
- [pauillac.inria.fr]
- CiteULike
- DBLP

### Other Repositories/Bibliography

Venue: | In European Symposium on Programming (ESOP 2006 |

Citations: | 36 - 5 self |

### BibTeX

@INPROCEEDINGS{Leroy06coinductivebig-step,

author = {Xavier Leroy},

title = {Coinductive big-step operational semantics},

booktitle = {In European Symposium on Programming (ESOP 2006},

year = {2006},

pages = {54--68},

publisher = {Springer}

}

### Years of Citing Articles

### OpenURL

### Abstract

Abstract. This paper illustrates the use of coinductive definitions and proofs in big-step operational semantics, enabling the latter to describe diverging evaluations in addition to terminating evaluations. We show applications to proofs of type soundness and to proofs of semantic preservation for compilers. 1

### Citations

576 | A syntactic approach to type soundness
- Wright, Felleisen
- 1994
(Show Context)
Citation Context ... λf. (λx. f (x x)) (λx. f (λy. (x x) y)) is well-typed, with types ((τ → τ ′ ) → τ → τ ′ ) → τ → τ ′ for all types τ, τ ′ . 6s4.1 Type soundness proofs using small-step semantics Felleisen and Wright =-=[20]-=- introduced a proof technique for showing type soundness that relies on small-step semantics and is standard nowadays. The proof relies on the twin properties of type preservation (also called subject... |

515 |
Interactive Theorem Proving and Program Development. Coq’Art: The Calculus of Inductive Constructions. Texts in Theoretical Computer Science. An EATCS series
- Bertot, Castéran
- 2004
(Show Context)
Citation Context ... proved using a proof assistant (the Coq system), but even developed in interaction with this tool, and only then transcribed to standard mathematical notations in this paper. The Coq proof assistant =-=[3]-=- provides built-in support for coinductive definitions and proofs by a limited form of coinduction called guarded structural coinduction. (See [6, 2, 3] for descriptions of this approach to coinductio... |

243 | Formal certification of a compiler back-end, or: Programming a compiler with a proof assistant
- Leroy
- 2006
(Show Context)
Citation Context ...ving the correctness (preservation of program behaviours) of program transformations, especially compilation of a high-level language down to a lower-level language. Our experience and that of others =-=[14, 12, 19]-=- is that fairly complex, optimizing compilation passes can be proved correct relatively easily using big-step semantics, by induction on the structure of big-step evaluation derivations. In contrast, ... |

108 | A machine-checked model for a Java-like language, virtual machine and compiler
- Klein, Nipkow
(Show Context)
Citation Context ...ving the correctness (preservation of program behaviours) of program transformations, especially compilation of a high-level language down to a lower-level language. Our experience and that of others =-=[14, 12, 19]-=- is that fairly complex, optimizing compilation passes can be proved correct relatively easily using big-step semantics, by induction on the structure of big-step evaluation derivations. In contrast, ... |

96 |
Inductive definitions, semantics and abstract interpretation
- Cousot, Cousot
- 1992
(Show Context)
Citation Context ...cs to describe both finite and infinite evaluations. The target of our study is a simple call-by-value functional language. We study two approaches: the first, initially proposed by Cousot and Cousot =-=[4]-=-, complements the normal inductive big-step evaluation rules for finite evaluations with coinductive big-step rules describing diverging evaluations; the second simply interprets coinductively the nor... |

80 |
Co-induction in relational semantics
- Milner, Tofte
- 1991
(Show Context)
Citation Context ...but use increasing sequences of finite, incomplete derivations to do so, instead of infinite derivations. We do not know yet how their approach relates to our ∞ ⇒ and co ⇒ relations. Milner and Tofte =-=[16]-=- and later Leroy and Rouaix [15] used coinduction in the context of a big-step semantics for functional and imperative languages, not to describe diverging evaluations, but to capture safety propertie... |

76 |
Codifying guarded definitions with recursive schemes
- Giménez
- 1994
(Show Context)
Citation Context ...ical notations in this paper. The Coq proof assistant [3] provides built-in support for coinductive definitions and proofs by a limited form of coinduction called guarded structural coinduction. (See =-=[6, 2, 3]-=- for descriptions of this approach to coinduction.) Such proofs are easier than the standard, on-paper proofs by coinduction; in particular, there is no need to exhibit F -consistent relations [5]. Th... |

61 | Security properties of typed applets
- Leroy, Rouaix
- 1998
(Show Context)
Citation Context ...finite, incomplete derivations to do so, instead of infinite derivations. We do not know yet how their approach relates to our ∞ ⇒ and co ⇒ relations. Milner and Tofte [16] and later Leroy and Rouaix =-=[15]-=- used coinduction in the context of a big-step semantics for functional and imperative languages, not to describe diverging evaluations, but to capture safety properties over possibly cyclic memory st... |

40 | Recursive subtyping revealed
- Gapeyev, Levin, et al.
- 2000
(Show Context)
Citation Context ..., 2, 3] for descriptions of this approach to coinduction.) Such proofs are easier than the standard, on-paper proofs by coinduction; in particular, there is no need to exhibit F -consistent relations =-=[5]-=-. This enables us to play fast and loose with coinduction in the proof sketches given in this paper; the skeptical reader is referred to the corresponding Coq development [13] for details. Another ben... |

30 |
Sleep and F.J. de Vries. Infinitary lambda calculus, Theoret
- Kennaway, R
- 1997
(Show Context)
Citation Context ...beled transition systems arising from process calculi. The flavours of coinduction used there, especially proofs by bisimulations, are quite different from the present work. The infinitary λ-calculus =-=[11, 1]-=- studies diverging computations from a very different angle: not only the authors use reduction semantics, but their terms are also infinite, and they use topological tools (metrics, convergence, etc)... |

22 | Filters on coinductive streams, an application to eratosthenes’ sieve. Pages 102–115 of: TLCA’05
- Bertot
- 2005
(Show Context)
Citation Context ...ical notations in this paper. The Coq proof assistant [3] provides built-in support for coinductive definitions and proofs by a limited form of coinduction called guarded structural coinduction. (See =-=[6, 2, 3]-=- for descriptions of this approach to coinduction.) Such proofs are easier than the standard, on-paper proofs by coinduction; in particular, there is no need to exhibit F -consistent relations [5]. Th... |

9 |
Compiler verification for C0
- Strecker
- 2005
(Show Context)
Citation Context ...ving the correctness (preservation of program behaviours) of program transformations, especially compilation of a high-level language down to a lower-level language. Our experience and that of others =-=[14, 12, 19]-=- is that fairly complex, optimizing compilation passes can be proved correct relatively easily using big-step semantics, by induction on the structure of big-step evaluation derivations. In contrast, ... |

8 |
Compilation des termes de preuves: un (nouveau) mariage entre Coq et Ocaml. Thèse de doctorat, Université Paris 7
- Grégoire
- 2003
(Show Context)
Citation Context ...n on the structure of big-step evaluation derivations. In contrast, compiler correctness proofs using small-step semantics are significantly harder even for simple, non-optimizing compilation schemes =-=[10, 8]-=-. In this paper, we illustrate how coinductive definitions and proofs enable big-step semantics to describe both finite and infinite evaluations. The target of our study is a simple call-by-value func... |

8 | A proof-theoretic assessment of runtime type errors
- Gunter, Rémy
- 1993
(Show Context)
Citation Context ...ke our ⇒ and ∞ ⇒ predicates, his big-step semantics also generate finite or infinite traces of elementary computation steps, traces which he uses to define observational equivalences. Gunter and Rémy =-=[9]-=- and Stoughton [18] have the same initial goal as us, namely describe both terminating and diverging computations with big-step semantics, but use increasing sequences of finite, incomplete derivation... |

6 |
Functional runtimes within the lambdasigma calculus
- Hardin, Maranget, et al.
- 1998
(Show Context)
Citation Context ...n on the structure of big-step evaluation derivations. In contrast, compiler correctness proofs using small-step semantics are significantly harder even for simple, non-optimizing compilation schemes =-=[10, 8]-=-. In this paper, we illustrate how coinductive definitions and proofs enable big-step semantics to describe both finite and infinite evaluations. The target of our study is a simple call-by-value func... |

4 |
Infinite lambda-calculus and types
- Berarducci, Dezani-Ciancaglini
- 1999
(Show Context)
Citation Context ...beled transition systems arising from process calculi. The flavours of coinduction used there, especially proofs by bisimulations, are quite different from the present work. The infinitary λ-calculus =-=[11, 1]-=- studies diverging computations from a very different angle: not only the authors use reduction semantics, but their terms are also infinite, and they use topological tools (metrics, convergence, etc)... |

4 |
Deux critères de sécurité pour l’exécution de code mobile
- Grall
- 2003
(Show Context)
Citation Context ...stance: Lemma 2. ω ⇒ v is false for all terms v. Proof sketch. We show that a ⇒ v implies a �= ω by induction on the derivation of a ⇒ v. Following Cousot and Cousot [4] and more recent work by Grall =-=[7]-=-, we define divergence (infinite evaluations) by the following inference rules, interpreted coinductively: 2 a1 a1 a2 ∞ ⇒ ( ∞ ⇒-app-l) ∞ ⇒ a1 ⇒ v a2 a1 a2 ∞ ⇒ a1 ⇒ λx.b a2 ⇒ v b[x ← v] ∞ ⇒ ( ∞ ⇒-app-f... |

3 |
An operational semantics framework supporting the incremental construction of derivation trees
- Stoughton
- 1998
(Show Context)
Citation Context ...redicates, his big-step semantics also generate finite or infinite traces of elementary computation steps, traces which he uses to define observational equivalences. Gunter and Rémy [9] and Stoughton =-=[18]-=- have the same initial goal as us, namely describe both terminating and diverging computations with big-step semantics, but use increasing sequences of finite, incomplete derivations to do so, instead... |

2 |
Proving the correctness of a virtual machine by a bisimulation. Licentiate thesis
- Rittri
- 1988
(Show Context)
Citation Context ...g terms using only the standard big-step semantics. This led several authors to prove semantic preservation for compilation to abstract machines using small-step semantics with explicit substitutions =-=[10, 17]-=-. Such proofs are difficult, however, because the obvious simulation property If a[e] → a ′ [e ′ ] then [[a]]; S; [[e]] + → [a ′ ]]; S ′ ; [[e ′ ] (for some S ′ ) does not hold: the transitions of the... |

1 |
Coinductive big-step operational semantics – the Coq development. Available from pauillac.inria.fr/~xleroy
- Leroy
- 2005
(Show Context)
Citation Context ...t F -consistent relations [5]. This enables us to play fast and loose with coinduction in the proof sketches given in this paper; the skeptical reader is referred to the corresponding Coq development =-=[13]-=- for details. Another benefit of using Coq is that our formalization and proofs use rather modest mathematics: just syntactic definitions, no domain theory, and constructive logic plus the axiom of ex... |