#### DMCA

## Dependent types and program equivalence (2009)

### Cached

### Download Links

Venue: | In Proceedings of the 37th ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages (POPL). ACM |

Citations: | 8 - 3 self |

### Citations

1275 |
The Lambda Calculus: Its Syntax and Semantics.
- Barendregt
- 1981
(Show Context)
Citation Context ...e predicate φ(e) = isEqX(·, e, C1 unit). The properties require φ to be nontrivial (since φ(C1 unit) but ¬φ(C2 unit)) and respect β-convertibility, so by a lambda calculus variant of Rice’s theorem ([=-=Barendregt 1981-=-] p.144) φ is undecidable. However, we could have a decidable predicate that does not satisfy the isEq properties but still allows type safety to hold for λ ∼ = . Suppose we have an instantiation isEq... |

629 | M.: A syntactic approach to type soundness
- Wright, Felleisen
- 1994
(Show Context)
Citation Context ... a value v. For that reason, our Substitution Lemma (4.2) on equivalence must hold for pure terms. 4.3 Type safety We prove type safety for our language via standard progress and preservation Lemmas [=-=Wright and Felleisen 1994-=-]. LEMMA 4.9 (Preservation). If Γ ⊢ e : τ and e −→ e ′ , then Γ ⊢ e ′ : τ. The proof is by induction on the reduction relation. In some of the cases, the typing of e ′ depends on a subterm in e ′ that... |

332 | Dependent types in practical programming
- Xi, Pfenning
- 1999
(Show Context)
Citation Context ...ing implies total correctness. If a function has type τ → Σy:τ ′ . P y then one can be assured that it will terminate and produce a value satisfying property P . Other languages, such as Dependent ML =-=[32]-=-, ATS [31], Ωmega [25] and Haskell (with GADTs [21]), allow diverging computation and sacrifice total correctness. They retain decidable type checking by not allowing terms to appear in types. Instead... |

319 |
Interprétation fonctionelle et élimination des coupures de l’arithmétique d’ordre supérieur. Thèse d’Etat
- Girard
- 1972
(Show Context)
Citation Context ...ic. Adding Haskell-style higher-order polymorphism [Jones 1995] would require straightforward changes to the language. Another simple extension is first classpolymorphism, as in Curry-style System F [=-=Girard 1972-=-]. (Note that type checking for Curry-style System F is also undecidable [Wells 1999].) In both cases, type abstraction and application would be implicit as we do not wish to include types in the synt... |

289 | Formal certification of a compiler back-end or: programming a compiler with a proof assistant.
- Leroy
- 2006
(Show Context)
Citation Context ... 2008], and Ynot [Nanevski et al. 2008]. A number of proof assistants, such as Agda [Norell 2007] and Coq [Coq Development Team 2009], have also successfully been used as dependently-typed languages [=-=Leroy 2006-=-, Oury and Swierstra 2008]. We do not attempt to survey this vast field here. Instead, we only describe aspects of the most related systems. Parameterized equivalence Like, λ ∼ = , Dependent ML (DML) ... |

261 | Towards a Practical Programming Language Based on Dependent Type Theory
- NORELL
(Show Context)
Citation Context ...rk has almost uniformly insisted on decidable type checking, and hence decidable term equivalence. Some languages, such as Coq [Coq Development Team 2009], Epigram [McBride and McKinna 2004] or Agda [=-=Norell 2007-=-], do so by employing analysis that force all programs to terminate. This strong requirement has the benefit that type checking implies total correctness. If a function has type τ → Σy:τ ′ . P y then ... |

197 | A system of constructor classes: Overloading and implicit higher-order polymorphism.
- Jones
- 1993
(Show Context)
Citation Context ...atures. Here, we discuss extensions that would make it more practical as a programming language. Polymorphism For simplicity, λ ∼ = is not polymorphic. Adding Haskell-style higher-order polymorphism [=-=Jones 1995-=-] would require straightforward changes to the language. Another simple extension is first classpolymorphism, as in Curry-style System F [Girard 1972]. (Note that type checking for Curry-style System ... |

193 | Simple unificationbased type inference for gadts. In:
- Jones, Vytiniotis, et al.
- 2006
(Show Context)
Citation Context ...red that it will terminate and produce a value satisfying property P . Other languages, such as Dependent ML [Xi and Pfenning 1999], ATS [Xi 2004], Ωmega [Sheard 2006] and Haskell (with GADTs [Peyton =-=Jones et al. 2006-=-]), allow diverging computation and sacrifice total correctness. They retain decidable type checking by not allowing terms to appear in types. Instead, they identify a terminating index language (such... |

184 |
The View from the Left.
- McBride, McKinna
- 2004
(Show Context)
Citation Context ...that the term equivalence relation be decidable. Previous work has almost uniformly insisted on decidable type checking, and hence decidable term equivalence. Some languages, such as Coq [7], Epigram =-=[15]-=- or Agda [18], do so by employing analysis that force all programs to terminate. This strong requirement has the benefit that type checking implies total correctness. If a function has type τ → Σy:τ ′... |

143 | Guarded recursive datatype constructors
- Xi, Chen, et al.
- 2003
(Show Context)
Citation Context ... type system uses β-equivalence as the term equivalence relation. Likewise, some specifications of generalized algebraic datatypes (GADTs, aka guarded recursive datatypes) use equivalence assumptions =-=[23, 33]-=-. GADTs add index equivalences (but not scrutinee/pattern equivalences) to the context when type checking pattern matching. In these settings, the index language is restricted so that there is an effe... |

120 | Equivalence in functional languages with effects
- Mason, Talcott
- 1991
(Show Context)
Citation Context ... contextually equivalent in the presence of equivalence assumptions. We take as our starting point the notion of CIUequivalence, which is one of many equivalent definitions of contextual equivalence [=-=Mason and Talcott 1991-=-]. It says that two terms are equivalent if all Closed Instantiations (substitutions of values for free variables) of them have the same termination behavior when Used (placed in a closed evaluation c... |

111 |
An Algorithm for Testing Conversion in Type Theory, Logical Frameworks
- Coquand
- 1991
(Show Context)
Citation Context ... typing information from the type checker, such as type annotations embedded in the terms, or the types of the two terms, or a typing context. Therefore, certain type-directed equivalence algorithms [=-=Coquand 1991-=-, Stone and Harper 2000], which use type information to provide stronger extensionality properties, cannot be used for isEq. However, in a call-by-value language with nontermination, η-equivalences ar... |

70 | Typability and type checking in system F are equivalent and undecidable
- Wells
- 1999
(Show Context)
Citation Context ...tforward changes to the language. Another simple extension is first classpolymorphism, as in Curry-style System F [Girard 1972]. (Note that type checking for Curry-style System F is also undecidable [=-=Wells 1999-=-].) In both cases, type abstraction and application would be implicit as we do not wish to include types in the syntax of terms. Adding abstractions to the type language, such as in Fω, would require ... |

57 | Ynot: Dependent types for imperative programs
- Nanevski, Morrisett, et al.
- 2008
(Show Context)
Citation Context ...7], DML [Xi and Pfenning 1999], ATS [Xi 2004], DML reformulated [Licata and Harper 2005], GURU [Stump et al. 2009], ConCoqtion [Fogarty et al. 2007], Delphin [Poswolsky and Schürmann 2008], and Ynot [=-=Nanevski et al. 2008-=-]. A number of proof assistants, such as Agda [Norell 2007] and Coq [Coq Development Team 2009], have also successfully been used as dependently-typed languages [Leroy 2006, Oury and Swierstra 2008]. ... |

45 | Deciding type equivalence in a language with singleton kinds
- Stone, Harper
- 2000
(Show Context)
Citation Context ...ation from the type checker, such as type annotations embedded in the terms, or the types of the two terms, or a typing context. Therefore, certain type-directed equivalence algorithms [Coquand 1991, =-=Stone and Harper 2000-=-], which use type information to provide stronger extensionality properties, cannot be used for isEq. However, in a call-by-value language with nontermination, η-equivalences are restricted: λx.e x is... |

44 | The implicit calculus of constructions as a programming language with dependent types
- Barras, Bernardo
- 2008
(Show Context)
Citation Context ...type inference technology available for elaboration. As long as elaboration produces valid λ ∼ = typing derivations, this external language is type safe. In particular, ideas from the design of ICC* [=-=Barras and Bernardo 2008-=-] seem relevant. Type-directed term equivalence Our design decision that the properties of isEq should not refer to the type system means that isEq cannot receive any typing information from the type ... |

43 | Dynamic typing with dependent types
- Ou, Tan, et al.
- 2004
(Show Context)
Citation Context ...t relation as the index language is never evaluated. To program in DML, singleton types must be used to make a connection between the index language and computations, leading to redundancy. Ou et al. =-=[19]-=- also axiomatize an equivalence judgment on terms in the context of a dependent type system that include general recursion and mutable reference. To ensure decidability of type checking, they restrict... |

38 | Stratified type inference for generalized algebraic data types
- Pottier, Régis-Gianas
- 2006
(Show Context)
Citation Context ... type system uses β-equivalence as the term equivalence relation. Likewise, some specifications of generalized algebraic datatypes (GADTs, aka guarded recursive datatypes) use equivalence assumptions =-=[23, 33]-=-. GADTs add index equivalences (but not scrutinee/pattern equivalences) to the context when type checking pattern matching. In these settings, the index language is restricted so that there is an effe... |

37 | The Power of Pi. In:
- Oury, Swierstra
- 2008
(Show Context)
Citation Context ...Ynot [Nanevski et al. 2008]. A number of proof assistants, such as Agda [Norell 2007] and Coq [Coq Development Team 2009], have also successfully been used as dependently-typed languages [Leroy 2006, =-=Oury and Swierstra 2008-=-]. We do not attempt to survey this vast field here. Instead, we only describe aspects of the most related systems. Parameterized equivalence Like, λ ∼ = , Dependent ML (DML) [Xi and Pfenning 1999] is... |

33 | Concoqtion: Indexed Types Now
- FOGARTY, PASALIC, et al.
- 2007
(Show Context)
Citation Context ... and McKinna 2004], Ωmega [Sheard 2006], PIE [Vytiniotis and Weirich 2007], DML [Xi and Pfenning 1999], ATS [Xi 2004], DML reformulated [Licata and Harper 2005], GURU [Stump et al. 2009], ConCoqtion [=-=Fogarty et al. 2007-=-], Delphin [Poswolsky and Schürmann 2008], and Ynot [Nanevski et al. 2008]. A number of proof assistants, such as Agda [Norell 2007] and Coq [Coq Development Team 2009], have also successfully been us... |

33 | Practical programming with higherorder encodings and dependent types
- Poswolsky, Schürmann
- 2008
(Show Context)
Citation Context ...rd 2006], PIE [Vytiniotis and Weirich 2007], DML [Xi and Pfenning 1999], ATS [Xi 2004], DML reformulated [Licata and Harper 2005], GURU [Stump et al. 2009], ConCoqtion [Fogarty et al. 2007], Delphin [=-=Poswolsky and Schürmann 2008-=-], and Ynot [Nanevski et al. 2008]. A number of proof assistants, such as Agda [Norell 2007] and Coq [Coq Development Team 2009], have also successfully been used as dependently-typed languages [Leroy... |

26 | A formulation of Dependent ML with explicit equality proofs
- Licata, Harper
- 2005
(Show Context)
Citation Context ...anguages, including Cayenne [Augustsson 1998], Epigram [McBride and McKinna 2004], Ωmega [Sheard 2006], PIE [Vytiniotis and Weirich 2007], DML [Xi and Pfenning 1999], ATS [Xi 2004], DML reformulated [=-=Licata and Harper 2005-=-], GURU [Stump et al. 2009], ConCoqtion [Fogarty et al. 2007], Delphin [Poswolsky and Schürmann 2008], and Ynot [Nanevski et al. 2008]. A number of proof assistants, such as Agda [Norell 2007] and Coq... |

22 | T.W.: Verified programming in guru.
- Stump, Deters, et al.
- 2009
(Show Context)
Citation Context ...gustsson 1998], Epigram [McBride and McKinna 2004], Ωmega [Sheard 2006], PIE [Vytiniotis and Weirich 2007], DML [Xi and Pfenning 1999], ATS [Xi 2004], DML reformulated [Licata and Harper 2005], GURU [=-=Stump et al. 2009-=-], ConCoqtion [Fogarty et al. 2007], Delphin [Poswolsky and Schürmann 2008], and Ynot [Nanevski et al. 2008]. A number of proof assistants, such as Agda [Norell 2007] and Coq [Coq Development Team 200... |

17 | Erasure and Polymorphism in Pure Type Systems
- Mishra-Linger, Sheard
- 2008
(Show Context)
Citation Context ...ions. In a dependentlytyped program, many terms are the encodings of proofs that are needed for the program to type check, but otherwise do not affect the actual result of computation. Some languages =-=[5, 7, 16]-=- distinguish between computational and proof terms, allowing the latter to be erased prior to execution. This erasure leads to significant gains in performance. However, such optimization must not cha... |

16 | LNgen: Tool support for locally nameless representations - Aydemir, Weirich - 2010 |

16 | A polymorphic lambda-calculus with Type:Type
- Cardelli
- 1986
(Show Context)
Citation Context ...pports indexed datatypes with elimination forms to both terms (case expressions) and types (large eliminations). Dependent type systems with undecidable type checking are compatible with type safety [=-=Cardelli 1986-=-], and have been explored before [Augustsson 1998]. We extend this line of work by making key design decisions that permit a simple proof of type saftey. Our straightforward proof of type safety is ba... |

14 |
Applied type system
- Xi
- 2004
(Show Context)
Citation Context .... If a function has type τ → Σy:τ ′ . P y then one can be assured that it will terminate and produce a value satisfying property P . Other languages, such as Dependent ML [Xi and Pfenning 1999], ATS [=-=Xi 2004-=-], Ωmega [Sheard 2006] and Haskell (with GADTs [Peyton Jones et al. 2006]), allow diverging computation and sacrifice total correctness. They retain decidable type checking by not allowing terms to ap... |

4 |
PiSigma: A core language for dependently typed programming
- Altenkirch, Oury
(Show Context)
Citation Context ...= is substitutive. There are some languages that use equivalence assumptions to specify dependently-typed case analysis. A notable example is Altenkirch and Oury’s core dependently-typed language ΠΣ [=-=Altenkirch and Oury 2008-=-]. Like λ ∼ = , type checking in ΠΣ is undecidable. However, ΠΣ differs from λ ∼ = in that its type system uses β-equivalence as the term equivalence relation. Likewise, some specifications of general... |

3 |
Rok Strnǐsa. Ott: Effective tool support for the working semanticist
- Sewell, Nardelli, et al.
- 2007
(Show Context)
Citation Context ...ed by isEqCA defines a type safe language. Acknowledgments Thanks to IFIP WG 2.11, IFIP WG 2.8, and Penn PLClub for discussion. Assistance in typesetting and formalizing this work was provided by OTT =-=[24]-=-, LNgen [3], and Coq [7]. This project was supported by NSF awards 0702545, 0715936, 0910786 and DARPA CSSG Phase II. References [1] Thorsten Altenkirch and Nicolas Oury. PiSigma: A core language for ... |

3 |
Dependent types: Easy as PIE
- Vytiniotis, Weirich
- 2007
(Show Context)
Citation Context ...ork The past decade has seen much research in the design of dependently-typed programming languages, including Cayenne [Augustsson 1998], Epigram [McBride and McKinna 2004], Ωmega [Sheard 2006], PIE [=-=Vytiniotis and Weirich 2007-=-], DML [Xi and Pfenning 1999], ATS [Xi 2004], DML reformulated [Licata and Harper 2005], GURU [Stump et al. 2009], ConCoqtion [Fogarty et al. 2007], Delphin [Poswolsky and Schürmann 2008], and Ynot [N... |

3 | Emir Pasalic, Jeremy Siek, and Walid Taha. Concoqtion: indexed types now - Fogarty - 2007 |

2 |
Type-level computation using narrowing in Ωomega
- Sheard
- 2006
(Show Context)
Citation Context ...as type τ → Σy:τ ′ . P y then one can be assured that it will terminate and produce a value satisfying property P . Other languages, such as Dependent ML [Xi and Pfenning 1999], ATS [Xi 2004], Ωmega [=-=Sheard 2006-=-] and Haskell (with GADTs [Peyton Jones et al. 2006]), allow diverging computation and sacrifice total correctness. They retain decidable type checking by not allowing terms to appear in types. Instea... |

1 | Erasure and polymorphism in Pure Type Systems
- Mishra-Linger, Sheard
- 2008
(Show Context)
Citation Context ...e encodings of proofs that are needed for the program to type check, but otherwise do not affect the actual result of computation. Some languages [Coq Development Team 2009, Barras and Bernardo 2008, =-=Mishra-Linger and Sheard 2008-=-] distinguish between computational and proof terms, allowing the latter to be erased prior to execution. This erasure leads to significant gains in performance. However, such optimization must not ch... |

1 | and Wouter Swierstra. The power of Pi - Oury - 2008 |