• Documents
  • Authors
  • Tables
  • Other Seers ▼
    RefSeer AckSeer CollabSeer SeerSeer
  • Log in
  • Sign up
  • MetaCart

CiteSeerX logo

Advanced Search Include Citations
Advanced Search Include Citations | Disambiguate

Dependent Types from Counterexamples (2010)

Cached

  • Download as a PDF

Download Links

  • [www.kb.ecei.tohoku.ac.jp]
  • [www.kb.ecei.tohoku.ac.jp]
  • [www.kb.ecei.tohoku.ac.jp]

  • Save to List
  • Add to Collection
  • Correct Errors
  • Monitor Changes
by Tachio Terauchi
Citations:4 - 0 self
  • Summary
  • Active Bibliography
  • Co-citation
  • Clustered Documents
  • Version History

BibTeX

@MISC{Terauchi10dependenttypes,
    author = {Tachio Terauchi},
    title = {Dependent Types from Counterexamples },
    year = {2010}
}

Bookmark

citeulike Connotea Bibsonomy Del.icio.us Digg Reddit

OpenURL

 

Abstract

Motivated by recent research in abstract model checking, we present a new approach to inferring dependent types. Unlike many of the existing approaches, our approach does not rely on programmers to supply the candidate (or the correct) types for the recursive functions and instead does counterexample-guided refinement to automatically generate the set of candidate dependent types. The main idea is to extend the classical fixed-point type inference routine to return a counterexample if the program is found untypable with the current set of candidate types. Then, an interpolating theorem prover is used to validate the counterexample as a real type error or generate additional candidate dependent types to refute the spurious counterexample. The process is repeated until either a real type error is found or sufficient candidates are generated to prove the program typable. Our system makes non-trivial use of “linear” intersection types in the refinement phase. The paper presents the type inference system and reports on the experience with a prototype implementation that infers dependent types for a subset of the Ocaml language. The implementation infers dependent types containing predicates from the quantifierfree theory of linear arithmetic and equality with uninterpreted function symbols.

Citations

490 A syntactic approach to type soundness - Wright, Felleisen - 1994
482 Counterexample-Guided Abstraction Refinement for Symbolic Model Checking - Clarke, Grumberg, et al. - 2003
406 The omega test: a fast and practical integer programming algorithm for dependence analysis - Pugh - 1991
378 G.: Lazy abstraction - Henzinger, Jhala, et al. - 2002
317 The SLAM project: Debugging system software via static analysis - Ball, Rajamani - 2002
272 Dependent types in practical programming - Xi, Pfenning - 1999
235 The essence of compiling with continuations - Flanagan, Sabry, et al. - 1993
196 Cayenne - a language with dependent types - Augustsson - 1998
162 K.L.: Abstractions from proofs - Henzinger, Jhala, et al. - 2004
159 Lambda lifting: Transforming programs to recursive equations - Johnsson - 1985
152 Interpolation and SAT-Based Model Checking - McMillan - 2003
151 Refinement types for ML - Freeman, Pfenning - 1991
96 Hybrid type checking - Flanagan - 2006
77 The essence of principal typings - Wells - 2002
71 reasoning. A new form of the Herbrand-Gentzen theorem - Craig - 1957
48 Calculating sized types - Chin, Khoo
44 Dependent types for low-level programming - Condit, Harren, et al. - 2007
43 Refinement types for secure implementations - Bengtson, Bhargavan, et al. - 2008
43 An interpolating theorem prover - McMillan - 2005
40 Lazy abstraction with interpolants - McMillan - 2006
29 Interpolant-based transition relation approximation - Jhala, McMillan - 2005
28 On model-checking trees generated by higher-order recursion schemes - Ong - 2006
28 Dynamic typing with dependent types - Ou, Tan, et al. - 2004
24 Principality and type inference for intersection types using expansion variables - Kfoury, Wells - 2001
24 Liquid types - Rondon, Kawaguchi, et al. - 2008
18 The Typed lambda-Calculus is not Elementary Recursive. FOCS - Statman - 1977
15 Efficient interpolant generation in satisfiability modulo theories - Cimatti, Griggio, et al. - 2008
14 Interpolation for data structures - Kapur, Majumdar, et al. - 2006
13 Types and higher-order recursion schemes for verification of higher-order programs - Kobayashi - 2009
11 G.: Counterexamples with loops for predicate abstraction - Kroening, Weissenbacher - 2006
9 Type reconstruction for general refinement types - Knowles, Flanagan - 2007
7 Types, potency, and idempotency: why nonlinearity and amnesia make a type system work - Neergaard, Mairson - 2004
6 R.: CSIsat: Interpolation for LA+EUF - Beyer, Zufferey, et al. - 2008
5 Leaping loops in the presence of abstraction - Ball, Kupferman, et al. - 2007
4 Extending sized type with collection analysis - Chin, Khoo, et al. - 2003
4 Efficient Craig interpolation for linear diophantine (dis)equations and linear modular equations - Jain, Clarke, et al.
3 Dependent type inference with interpolants - Unno, Kobayashi - 2009
1 Compositional reasoning and decidable checking for dependent contract types - Knowles, Flanagan - 2009
1 Theoretical pearls: A bargain for intersection types: a simple strong normalization proof - Neergaard - 2005
The National Science Foundation
  • About CiteSeerX
  • Submit Documents
  • Privacy Policy
  • Help
  • Data
  • Source
  • Contact Us

Developed at and hosted by The College of Information Sciences and Technology

© 2007-2010 The Pennsylvania State University