Wouter swierstra thesis

The proof of the four-colour theorem is a fine example: Instead, Agda has support for automation via reflection.

We get smaller proofs, higher-level explanation, faster checking. Inductive types[ edit ] The main way of defining data types in Agda is via inductive data types which are similar to algebraic data types in non-dependently typed programming languages.

The library is in beta, and is under active development. The latter is a big success for LTac: This action accepts hints, e.

It enumerates possible proof terms limited to 5 secondsand if one of the terms fits the specification, it will be put in the meta variable where the action is invoked. Chlipala and Licata both have good stories about this.

Agda (programming language)

Proof automation[ edit ] Programming in pure type theory involves a lot of tedious and repetitive proofs, and Agda has no support for tactics. The reflection mechanism allows one to quote program fragments into — or unquote them from — the abstract syntax tree. We should not be saying "here is my datatype; now I construct the equipment", we should be saying "here is my syntax; thank you for the equipment".

MODERATORS

The way reflection is used is similar to the way Wouter swierstra thesis Haskell works. A tactic and here I really mean a tactic which does proof search and construct certificates on success is not itself an explanation of anything: Unicode[ edit ] One of the more notable features of Agda is a heavy reliance on Unicode in program source code.

The latter are just asking for reflection, to cut down the size of the certificate. Here is a definition of Peano numbers in Agda: In Agda, dependently typed pattern matching is used instead. The hidden argument synthesis mechanism might then be extended with a matching procedure which attempts to invert this fold, inferring a syntactic object with the given interpretation: Dependently typed pattern matching[ edit ] In core type theory, induction and recursion principles are used to prove theorems about inductive types.

As well as the issue of representing problems and supporting quotation, we also have to write certified problem solvers. Here is a definition of the "less than or equal" relation between two natural numbers: What I mean by "reflection will beat tactics" is really "reflection will optimize tactics, doing more of the work inside the kernel".

People are beginning to get good at both.Beauty in the Beast Wouter Swierstra Thorsten Altenkirch University of Nottingham {wss, txa}@ultimedescente.com Abstract lar approach to doing teletype IO in his thesis [13], and cites related work dating back more than twenty years [16, 19].

Rather than use. Agda is a dependently typed functional programming language originally developed by Ulf Norell at Chalmers University of Technology with implementation described in his PhD thesis.

Publications

The current version of Agda was originally known as Agda 2. The original Agda system was developed at Chalmers by Catarina Coquand in Paradigm: Functional. Wouter Swierstra February Thesis submitted to the University of Nottingham for the degree of Doctor of Philosophy.

Wouter Swierstra showed in his PhD thesis how to implement stateful computations in the dependently typed functional programming language Agda. In particular he defined a notion of state which is parameterized by a list of types indicating what kind of data are to be stored in the respective locations.

Supervisor: Wouter Swierstra PhD, So ware Technology Group of Utrecht Univer-sity Abstract: e thesis deals with correctness of a compiler of a simple language featuring exceptions.

We present formal semantics, both denotational semantics of ahigh-levellanguageandoperationalsemanticsofalow-levellanguageforasimple stack machine. Dependently Typed Programming with Domain-Specific Logics Daniel R. Licata CMU-CS Carnegie Mellon University Pittsburgh, PA Thesis Committee: Robert Harper, Chair Karl Crary Frank Pfenning Greg Morrisett, Harvard University Submitted in partial fulfillment of the requirements I would also like to thank Wouter Swierstra.

Download
Wouter swierstra thesis
Rated 4/5 based on 47 review