• 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

Semantic subtyping with an SMT solver (2010)

Cached

  • Download as a PDF

Download Links

  • [www.research.microsoft.com]
  • [research.microsoft.com]
  • [research.microsoft.com]
  • [research.microsoft.com]
  • [research.microsoft.com]
  • [www.research.microsoft.com]

  • Save to List
  • Add to Collection
  • Correct Errors
  • Monitor Changes
by Gavin M. Bierman , Andrew D. Gordon , Catalin Hritcu , David Langworthy
Citations:10 - 0 self
  • Summary
  • Active Bibliography
  • Co-citation
  • Clustered Documents
  • Version History

BibTeX

@TECHREPORT{Bierman10semanticsubtyping,
    author = {Gavin M. Bierman and Andrew D. Gordon and Catalin Hritcu and David Langworthy},
    title = {Semantic subtyping with an SMT solver},
    institution = {},
    year = {2010}
}

Bookmark

citeulike Connotea Bibsonomy Del.icio.us Digg Reddit

OpenURL

 

Abstract

We study a first-order functional language with the novel combination of the ideas of refinement type (the subset of a type to satisfy a Boolean expression) and type-test (a Boolean expression testing whether a value belongs to a type). Our core calculus can express a rich variety of typing idioms; for example, intersection, union, negation, singleton, nullable, variant, and algebraic types are all derivable. We formulate a semantics in which expressions denote terms, and types are interpreted as first-order logic formulas. Subtyping is defined as valid implication between the semantics of types. The formulas are interpreted in a specific model that we axiomatize using standard first-order theories. On this basis, we present a novel type-checking algorithm able to eliminate many dynamic tests and to detect many errors statically. The key idea is to rely on an SMT solver to compute subtyping efficiently. Moreover, interpreting types as formulas allows us to call the SMT solver at run-time to compute instances of types.

Citations

706 Eiffel: the language - Meyer - 1992
704 Constraint Logic Programming: A Survey - Jaffar, Maher - 1994
611 Systematic Software Development Using VDM - Jones - 1990
580 Types and Programming Languages - Pierce - 2002
490 A syntactic approach to type soundness - Wright, Felleisen - 1994
418 Comprehending monads - Wadler - 1990
359 Symbolic execution and program testing - King - 1976
296 Simplify: a theorem prover for program checking - Detlefs, Nelson, et al.
272 Dependent types in practical programming - Xi, Pfenning - 1999
243 Z3: An Efficient SMT Solver - Moura, Bjørner - 2008
203 Type inclusion constraints and type inference - Aiken, Wimmers - 1993
182 Soft typing with conditional types - Aiken, Wimmers, et al. - 1994
175 Soft typing - Cartwright, Fagan - 1991
161 Boogie: A modular reusable verifier for object-oriented programs - Barnett, Chang, et al. - 2005
157 Regular expression types for XML - Hosoya, Vouillon, et al. - 2000
151 Refinement types for ML - Freeman, Pfenning - 1991
150 Local type inference - Pierce, Turner
133 Towards a mathematical science of computation - McCarthy - 1962
127 XDuce: A statically typed XML processing language - Hosoya, Pierce
111 Principles of programming with complex objects and collection types - Buneman, Naqvi, et al. - 1995
110 Mechanized metatheory for the masses: the POPLMark Challenge - Aydemir, Bohannon, et al. - 2005
105 Design of the programming language Forsythe - Reynolds - 1996
103 A practical soft type system for scheme - Wright, Cartwright - 1997
96 Hybrid type checking - Flanagan - 2006
84 Contracts for higher-order functions - Findler, Felleisen - 2002
82 Data on the web - Abiteboul, Buneman, et al. - 2000
59 Dependent types - Aspinall, Hofmann - 2005
54 An experimental applicative language - HOPE - 1980
53 The essence of XML - Siméon, Wadler - 2003
49 Programming with intersection types, union types, and polymorphism - Pierce - 1991
46 Deciding validity in a spatial logic for trees - Calcagno, Cardelli, et al. - 2005
44 Efficient static analysis of XML paths and types - Genevès, Layaïda, et al. - 2007
43 Refinement types for secure implementations - Bengtson, Bhargavan, et al. - 2008
42 Subtyping with singleton types - Aspinall - 1994
42 The design and implementation of Typed Scheme - Tobin-Hochstadt, Felleisen - 2008
38 Termination of nested and mutually recursive algorithms - Giesl - 1997
32 The application/json Media Type for JavaScript Object Notation - Crockford - 2006
32 Union types for semistructured data - Buneman, Pierce - 1999
31 Tridirectional typechecking - Dunfield, Pfenning - 2004
31 Subtypes for specifications: Predicate subtyping in PVS - Rushby, Owre, et al. - 1998
31 Subset coercions in Coq - Sozeau - 2006
30 Towards a high-level machine configuration system - Anderson - 1994
28 Efficient E-matching for SMT solvers - Moura, Bjørner - 2007
27 The next 700 data description languages - Fisher, Mandelbaum, et al. - 2006
27 The Boyer-Moore theorem prover and its interactive enhancement - Boyer, Kaufmann, et al. - 1995
25 Provenance as dependency analysis - Cheney, Ahmed, et al. - 2007
24 Liquid types - Rondon, Kawaguchi, et al. - 2008
23 Subtyping with union types, intersection types and recursive types - Damm - 1994
21 Lost in translation: Formalizing proposed extensions to C - Bierman, Meijer, et al. - 2007
19 A Unified System of Type Refinements - Dunfield - 2007
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