User loginNavigation |
Type TheoryPropositions as [Types]Propositions as [Types], Steve Awodey and Adrej Bauer.
I figure I should say a few words about why proof irrelevance is an interesting idea. In math, you often want to consider elements of a certain type that have certain properties -- for example, you might want the set of satisfiable boolean formulas as part of a proof as a hypothesis of a theorem. The way you might represent this in dependent type theory is by giving a pair, consisting of a formula and a satisfying assignment. You might write this as One way of addressing this problem is to treat the second component of the pair as a proof irrelevant type. The basic idea is that for each type I should also add that this is an old idea in type theory; this is the paper that made it clear to me. (Thanks to Bob Harper for suggesting clarifications to my comments.) By neelk at 2007-03-03 19:19 | Category Theory | Type Theory | 5 comments | other blogs | 7868 reads
Gradual Typing for ObjectsGradual Typing for Objects. Jeremy Siek and Walid Taha.
The authors' previous work on gradual typing was discussed here. This brings it to an object-oriented setting which is (as the abstract points out) very directly applicable to mainstream scripting languages, at least in principle. [Edit: This is from the types list, where the authors also added: "We will present the paper at ECOOP 2007 and would be especially interested in any feedback on the paper before the final submission is due on April 25."] By Matt Hellige at 2007-02-12 21:44 | OOP | Semantics | Type Theory | 1 comment | other blogs | 14693 reads
The Missing Link - Dynamic Components for MLThe Missing Link - Dynamic Components for ML, Andreas Rossberg. ICFP 2006.
This is a very nice paper showing how to integrate dynamic loading into the ML module system. Er, I guess I'm repeating the abstract. I thought this paper, in addition to the feature it gave, was also a good demonstration of how to put the Dreyer-Crary-Harper account of ML modules to work. By neelk at 2007-02-10 19:32 | Functional | Implementation | Type Theory | 1 comment | other blogs | 9630 reads
Type-Level Computation Using Narrowing in OmegaHaven't seen this paper by Tim Sheard mentioned on Ltu before. As in previous papers Sheard tries to put Howard Curry to work in terms that are understandable for those that don't have a Phd in type theory.
By Niels Hoogeveen at 2007-02-08 20:21 | Functional | Meta-Programming | Type Theory | 1 comment | other blogs | 7279 reads
Termination Checking with TypesTermination Checking with Types, Andreas Abel. 2004.
Recently on LtU, there has been a good deal of discussion about total functional programming, so I thought I'd link to an article that shows how to use typing to enforce termination. The main advantage of type-based approaches (as compared to analyzing the program text directly) is that the termination check is not as sensitive to the precise shape of the program; for example, you can beta-reduce a term and not alter whether the system thinks the program will terminate or not. This paper is also nice because it provides a relatively simple example of bidirectional type checking, which is an important idea both practically (it reduces spurious type annotations and helps produce better error messages) and theoretically (it is intimately related to cut elimination). State of the Union: Type Inference via Craig InterpolationState of the Union: Type Inference via Craig Interpolation, by Ranjit Jhala, Rupak Majumdar, and Ru-Gang Xu The ad-hoc use of unions to encode disjoint sum types in C programs and the inability of C's type system to check the safe use of these unions is a long standing source of subtle bugs. We present a dependent type system that rigorously captures the ad-hoc protocols that programmers use to encode disjoint sums, and introduce a novel technique for automatically inferring, via Craig Interpolation, those dependent types and thus those protocols. In addition to checking the safe use of unions, the dependent type information inferred by interpolation gives programmers looking to modify or extend legacy code a precise understanding of the conditions under which some fields may be safely accessed. We present an empirical evaluation of our technique on 350KLOC of open source C code. In 80 out of 90 predicated edges (corresponding to 1472 out of 1684 union accesses), our type system is able to infer the correct dependent types. This demonstrates that our type system captures and explicates programmers' informal reasoning about unions, without requiring manual annotation or rewriting. By Jim Apple at 2007-02-04 05:05 | Implementation | Type Theory | 4 comments | other blogs | 6353 reads
RZ for Constructive Mathematics in ProgrammingRZ for Constructive Mathematics in Programming by Chris Stone and Andrej Bauer. Realizability theory is not only a fundamental tool in logic and computability, but also has direct application to the design and implementation of programs: it can produce interfaces for the data structure corresponding to a mathematical theory. Our tool, called RZ, serves as a bridge between the worlds of constructive mathematics and programming. By using the realizability interpretation of constructive mathematics, RZ translates specifications in constructive logic into annotated interface code in Objective Caml. The system supports a rich input language allowing descriptions of complex mathematical structures. RZ does not extract code from proofs, but allows any implementation method, from handwritten code to code extracted from proofs by other tools. I haven't read the paper yet, but the abstract reminded me of PADS. By Jim Apple at 2007-02-03 21:19 | DSL | Semantics | Theory | Type Theory | 3 comments | other blogs | 6387 reads
On Decidability of Nominal Subtyping with VarianceOn Decidability of Nominal Subtyping with Variance. Andrew J. Kennedy, Benjamin C. Pierce. FOOL'07. January 2007
The undecidability of subtyping is proved by reduction from the Post Correspondence Problem. Section 5 presents several decidable fragments. Hot stuff! Ott--a tool for writing definitions of programming languages and calculi.Ott—a tool for writing definitions of programming languages and calculi.
Peter Sewell and his team continue to bridge the gap between the informal and formal worlds of programming language semantics. By Paul Snively at 2007-01-23 07:06 | DSL | Meta-Programming | Semantics | Type Theory | login or register to post comments | other blogs | 12711 reads
Beauty in the Beast
Beauty in the Beast by Wouter Swierstra, Thorsten Altenkirch. 2006.
We provide a functional specification of three central components of Simon Peyton Jones’s awkward squad: teletype I/O, mutable state and concurrency. By constructing an internal model of such concepts within our programming language, we can reason about programs that perform I/O as if they were pure functions. One important application of our approach is accommodating I/O in a dependently typed programming language. By Andris Birkmanis at 2007-01-15 15:29 | Functional | Semantics | Type Theory | 1 comment | other blogs | 8426 reads
|
Browse archives
Active forum topics |
Recent comments
4 weeks 2 days ago
4 weeks 3 days ago
4 weeks 5 days ago
4 weeks 5 days ago
5 weeks 3 days ago
5 weeks 3 days ago
5 weeks 3 days ago
8 weeks 3 days ago
9 weeks 2 days ago
9 weeks 2 days ago