## Biorthogonality, Step-Indexing and Compiler Correctness (2009)

### Cached

### Download Links

Citations: | 24 - 10 self |

### BibTeX

@MISC{Benton09biorthogonality,step-indexing,

author = {Nick Benton and Chung-Kil Hur},

title = { Biorthogonality, Step-Indexing and Compiler Correctness},

year = {2009}

}

### OpenURL

### Abstract

We define logical relations between the denotational semantics of a simply typed functional language with recursion and the operational behaviour of low-level programs in a variant SECD machine. The relations, which are defined using biorthogonality and stepindexing, capture what it means for a piece of low-level code to implement a mathematical, domain-theoretic function and are used to prove correctness of a simple compiler. The results have been formalized in the Coq proof assistant.

### Citations

615 | From System F to typed assembly language
- Morrisett, Walker, et al.
- 1998
(Show Context)
Citation Context ...y, memory-safety or resource-boundedness. Although these terms are widely used, they are subject to a range of interpretations. For example, type-safety sometimes refers to a simple syntactic notion (=-=Morrisett et al. 1999-=-) (‘is the generated code typable using these rules?’) and sometimes to a deeper semantic one (‘does the observable behaviour of the code satisfy this desirable property?’). In previous work (Benton 2... |

405 |
LCF considered as a programming language
- Plotkin
- 1977
(Show Context)
Citation Context ...perational logical relations for languages with recursion generally need to satisfy some analogue of admissibility. One such that has often been used with operational semantics based on lambda terms (=-=Plotkin 1977-=-; Pitts and Stark 1998) considers replacing the recursion construct rec f x=M (or fixpoint combinator) with a family of finite approximations: recn f x=M for n ∈ N, unfolds the recursive function n ti... |

347 |
The mechanical evaluation of expressions
- Landin
- 1963
(Show Context)
Citation Context ...ith discussion of the Coq formalization of the semantics, in Benton et al. (2009). 4. Target Language and Compilation 4.1 An SECD Machine The low-level target is a variant of an SECD virtual machine (=-=Landin 1964-=-). We have chosen such a machine rather than a lowerlevel assembly language, such as that of our previous work, so as to keep the formal development less cluttered with detail. But we are emphatically... |

248 | The Formal Semantics of Programming Languages - Winskel - 1993 |

241 | Formal certification of a compiler back-end, or: Programming a compiler with a proof assistant - Leroy - 2006 |

137 | An indexed model of recursive types for foundational proofcarrying code - Appel, McAllester - 2001 |

113 | Operational reasoning for functions with local state
- Pitts, Stark
- 1998
(Show Context)
Citation Context ...ical relations for languages with recursion generally need to satisfy some analogue of admissibility. One such that has often been used with operational semantics based on lambda terms (Plotkin 1977; =-=Pitts and Stark 1998-=-) considers replacing the recursion construct rec f x=M (or fixpoint combinator) with a family of finite approximations: recn f x=M for n ∈ N, unfolds the recursive function n times in M and thereafte... |

91 | Correctness of a compiler for arithmetic expressions
- McCarthy, Painter
- 1967
(Show Context)
Citation Context ...are used to prove correctness of a simple compiler. The results have been formalized in the Coq proof assistant. 1. Introduction Proofs of compiler correctness have been studied for over forty years (=-=McCarthy and Painter 1967-=-; Dave 2003) and have recently been the subject of renewed attention, firstly because of increased interest in security and certification in a networked world and secondly because of advances in verif... |

81 | Protection in programming-language translations
- Abadi
- 1998
(Show Context)
Citation Context ...equivalence or encapsulation at the source level does not generally translate to the target, which can lead to unsound program transformations in optimizing compilers and to security vulnerabilities (=-=Abadi 1998-=-; Kennedy 2006). Ahmed and Blume (2008) also argue that fully abstract translation should be the goal, and prove full abstraction for (source to source) typed closure conversion for a polymorphic lamb... |

71 | Step-indexed syntactic logical relations for recursive and quantified types
- Ahmed
- 2006
(Show Context)
Citation Context ... which have since been refined and succesfully applied by various authors to operational reasoning problems for both high and low level languages, many of which involve challenging language features (=-=Ahmed 2006-=-; Appel et al. 2007; Benton and Tabareau 2009; Ahmed et al. 2009). Step-indexing works with small-step operational semantics N-indexed sets of values, with (n, v) ∈ P (or v ∈ Pn) meaning ‘value v has ... |

63 | State-dependent representation independence
- Ahmed, Dreyer, et al.
- 2009
(Show Context)
Citation Context ... various authors to operational reasoning problems for both high and low level languages, many of which involve challenging language features (Ahmed 2006; Appel et al. 2007; Benton and Tabareau 2009; =-=Ahmed et al. 2009-=-). Step-indexing works with small-step operational semantics N-indexed sets of values, with (n, v) ∈ P (or v ∈ Pn) meaning ‘value v has property P for n steps of reduction’. An interesting feature of ... |

46 | VLISP: A verified implementation of Scheme - Guttman, Ramsdell, et al. - 1995 |

45 | Classical logic, storage operators and second-order lambda-calculus - Krivine - 1994 |

40 | A certified type-preserving compiler from lambda calculus to assembly language - Chlipala |

37 |
A very modal model of a modern, major, general type system
- Appel, Melliès, et al.
- 2007
(Show Context)
Citation Context ...since been refined and succesfully applied by various authors to operational reasoning problems for both high and low level languages, many of which involve challenging language features (Ahmed 2006; =-=Appel et al. 2007-=-; Benton and Tabareau 2009; Ahmed et al. 2009). Step-indexing works with small-step operational semantics N-indexed sets of values, with (n, v) ∈ P (or v ∈ Pn) meaning ‘value v has property P for n st... |

36 | Compiler verification: a bibliography - Dave |

24 | Semantic Types: A Fresh Look at the Ideal Model for Types - Vouillon, Melliès - 2004 |

22 | top-top-closed relations and admissibility - Abadi |

19 | When is a functional program not a functional program - Longley - 1999 |

18 | Abstracting Allocation: The New new thing
- Benton
- 2006
(Show Context)
Citation Context ...al. 1999) (‘is the generated code typable using these rules?’) and sometimes to a deeper semantic one (‘does the observable behaviour of the code satisfy this desirable property?’). In previous work (=-=Benton 2006-=-; Benton and Zarfaty 2007; Benton and Tabareau 2009), we have looked at establishing type-safety in the latter, more semantic, sense. Our key notion is that a highlevel type translates to a low-level ... |

17 | Typed closure conversion preserves observational equivalence - Ahmed, Blume - 2008 |

17 | Securing the .NET programming model - Kennedy |

15 | Compiling functional types to relational specifications for low level imperative code
- Benton, Tabareau
- 2009
(Show Context)
Citation Context ...ble using these rules?’) and sometimes to a deeper semantic one (‘does the observable behaviour of the code satisfy this desirable property?’). In previous work (Benton 2006; Benton and Zarfaty 2007; =-=Benton and Tabareau 2009-=-), we have looked at establishing type-safety in the latter, more semantic, sense. Our key notion is that a highlevel type translates to a low-level specification that should be satisfied by any code ... |

12 | Formalizing and verifying semantic type soundness of a simple compiler - Benton, Zarfaty - 2007 |

12 | Some domain theory and denotational semantics in coq
- Benton, Varming
(Show Context)
Citation Context ...ake of them. The results in the paper have been formalized and proved in the Coq proof assistant, making use of a formalization of domain theory and denotational semantics that we describe elsewhere (=-=Benton et al. 2009-=-). 2. Orthogonality and Step-Indexing 2.1 Biorthogonality Biorthogonality is a powerful and rather general idea that has been widely used in diffent kinds of semantics in recent years, beginning with ... |