2009
DOI: 10.1016/j.ic.2007.12.004
|View full text |Cite
|
Sign up to set email alerts
|

Coinductive big-step operational semantics

Abstract: International audienceUsing 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 p… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

1
114
0

Year Published

2012
2012
2020
2020

Publication Types

Select...
8
1

Relationship

0
9

Authors

Journals

citations
Cited by 125 publications
(115 citation statements)
references
References 31 publications
1
114
0
Order By: Relevance
“…For example, one can use co-induction to precisely define diverging computations [18,20], or the pretty-big-step approach to reduce duplication in the definition [10]. Notably, these techniques still define the semantics using inductive (and co-inductive) relations rather than recursive functions, and we are not aware of any relational approach with all of the advantages listed above.…”
Section: Introductionmentioning
confidence: 99%
“…For example, one can use co-induction to precisely define diverging computations [18,20], or the pretty-big-step approach to reduce duplication in the definition [10]. Notably, these techniques still define the semantics using inductive (and co-inductive) relations rather than recursive functions, and we are not aware of any relational approach with all of the advantages listed above.…”
Section: Introductionmentioning
confidence: 99%
“…We now state that if the VCs hold for all functions then any expression having a valid WP executes safely. It is proved by co-induction, using the axiom of excluded middle to distinguish whether the execution of an expression does or does not terminate, following the guidelines of Leroy and Grall [19]. Notice that it is enough to prove the verification conditions for each function separately, even if functions can be mutually recursive, there is no circular reasoning.…”
Section: Soundness Resultsmentioning
confidence: 99%
“…The operational semantics is defined in big-step style following the approach of Leroy and Grall [19]. A first set of inference rules inductively defines the semantics of terminating expressions (Fig.…”
Section: Operational Semanticsmentioning
confidence: 99%
“…In our previous papers, [12] and [14], we defined a small-step semantics which ensures that well-typed programs do not "get stuck". Here, following [19], we give a coinductive characterization of the divergence judgment e | σ | ρ ⇑. The divergence judgment e | σ | ρ ⇑ is defined in Fig.…”
Section: Lemma 2 (Type Preservation For Exceptionsmentioning
confidence: 99%