Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Andreas Abel is active.

Publication


Featured researches published by Andreas Abel.


Theoretical Informatics and Applications | 2004

Termination checking with types

Andreas Abel

The paradigm of type-based termination is explored for functional programming with recursive data types. The article introduces Lambda(mu)(+), a lambda-calculus with recursion, inductive types, subtyping and bounded quanti. cation. Decorated type variables representing approximations of inductive types are used to track the size of function arguments and return values. The system is shown to be type safe and strongly normalizing. The main novelty is a bidirectional type checking algorithm whose soundness is established formally.


foundations of software science and computation structure | 2005

Iteration and coiteration schemes for higher-order and nested datatypes

Andreas Abel; Ralph Matthes; Tarmo Uustalu

This article studies the implementation of inductive and coinductive constructors of higher kinds (higher-order nested datatypes) in typed term rewriting, with emphasis on the choice of the iteration and coiteration constructions to support as primitive. We propose and compare several well-behaved extensions of System Fω with some form of iteration and coiteration uniform in all kinds. In what we call Mendler-style systems, the iterator and coiterator have a computational behavior similar to the general recursor, but their types guarantee termination. In conventional-style systems, monotonicity witnesses are used for a notion of monotonicity defined uniformly for all kinds. Our most expressive systems GMItω and GItω of generalized Mendler, resp. conventional (co)iteration encompass Martin, Gibbons and Baileys efficient folds for rank-2 inductive types. Strong normalization of all systems considered is proved by providing an embedding of the basic Mendler-style system MItω into System Fω


symposium on principles of programming languages | 2013

Copatterns: programming infinite structures by observations

Andreas Abel; Brigitte Pientka; David Thibodeau; Anton Setzer

Inductive datatypes provide mechanisms to define finite data such as finite lists and trees via constructors and allow programmers to analyze and manipulate finite data via pattern matching. In this paper, we develop a dual approach for working with infinite data structures such as streams. Infinite data inhabits coinductive datatypes which denote greatest fixpoints. Unlike finite data which is defined by constructors we define infinite data by observations. Dual to pattern matching, a tool for analyzing finite data, we develop the concept of copattern matching, which allows us to synthesize infinite data. This leads to a symmetric language design where pattern matching on finite and infinite data can be mixed. We present a core language for programming with infinite structures by observations together with its operational semantics based on (co)pattern matching and describe coverage of copatterns. Our language naturally supports both call-by-name and call-by-value interpretations and can be seamlessly integrated into existing languages like Haskell and ML. We prove type soundness for our language and sketch how copatterns open new directions for solving problems in the interaction of coinductive and dependent types.


Journal of Functional Programming | 2002

A predicative analysis of structural recursion

Andreas Abel; Thorsten Altenkirch

We introduce a language based upon lambda calculus with products, coproducts and strictly positive inductive types that allows the definition of recursive terms. We present the implementation (foetus) of a syntactical check that ensures that all such terms are structurally recursive, i.e. recursive calls appear only with arguments structurally smaller than the input parameters of terms considered. To ensure the correctness of the termination checker, we show that all structurally recursive terms are normalizing with respect to a given operational semantics. To this end, we define a semantics on all types and a structural ordering on the values in this semantics and prove that all values are accessible with regard to this ordering. Finally, we point out how to do this proof predicatively using set based operators.


international conference on functional programming | 2013

Wellfounded recursion with copatterns: a unified approach to termination and productivity

Andreas Abel; Brigitte Pientka

In this paper, we study strong normalization of a core language based on System F-omega which supports programming with finite and infinite structures. Building on our prior work, finite data such as finite lists and trees are defined via constructors and manipulated via pattern matching, while infinite data such as streams and infinite trees is defined by observations and synthesized via copattern matching. In this work, we take a type-based approach to strong normalization by tracking size information about finite and infinite data in the type. This guarantees compositionality. More importantly, the duality of pattern and copatterns provide a unifying semantic concept which allows us for the first time to elegantly and uniformly support both well-founded induction and coinduction by mere rewriting. The strong normalization proof is structured around Girards reducibility candidates. As such our system allows for non-determinism and does not rely on coverage. Since System F-omega is general enough that it can be the target of compilation for the Calculus of Constructions, this work is a significant step towards representing observation-centric infinite data in proof assistants such as Coq and Agda.


arXiv: Programming Languages | 2010

MiniAgda: Integrating Sized and Dependent Types.

Andreas Abel

Sized types are a modular and theoretically well-understood tool for checking termination of recursive and productivity of corecursive definitions. The essential idea is to track structural descent and guardedness in the type system to make termination checking robust and suitable for strong abstractions like higher-order functions and polymorphism. To study the application of sized types to proof assistants and programming languages based on dependent type theory, we have implemented a core language, MiniAgda, with explicit handling of sizes. New considerations were necessary to soundly integrate sized types with dependencies and pattern matching, which was made possible by modern concepts such as inaccessible patterns and parametric function spaces. This paper provides an


logic in computer science | 2007

Normalization by Evaluation for Martin-Lof Type Theory with Typed Equality Judgements

Andreas Abel; Thierry Coquand; Peter Dybjer

The decidability of equality is proved for Martin-Lof type theory with a universe a la Russell and typed beta-eta- equality judgements. A corollary of this result is that the constructor for dependent function types is injective, a property which is crucial for establishing the correctness of the type-checking algorithm. The decision procedure uses normalization by evaluation, an algorithm which first interprets terms in a domain with untyped semantic elements and then extracts normal forms. The correctness of this algorithm is established using a PER-model and a logical relation between syntax and semantics.


mathematics of program construction | 2008

Verifying a Semantic βη-Conversion Test for Martin-Löf Type Theory

Andreas Abel; Thierry Coquand; Peter Dybjer

Type-checking algorithms for dependent type theories often relyon the interpretation of terms in some semantic domain ofvalueswhen checking equalities. Here we analyze a versionof Coquands algorithm for checking theβη-equality of such semantic values in a theorywith a predicative universe hierarchy and large elimination rules.Although this algorithm does not rely on normalization byevaluation explicitly, we show that similar ideas can be employedfor its verification. In particular, our proof uses the new notionsof contextualreification and strong semanticequality. The algorithm is part of a bi-directional type checkingalgorithm which checks whether a normal term has a certain semantictype, a technique used in the proof assistants Agda and Epigram. Wework with an abstract notion of semantic domain in order toaccommodate a variety of possible implementation techniques, suchas normal forms, weak head normal forms, closures, and compiledcode. Our aim is to get closer than previous work to verifying thetype-checking algorithms which are actually used in practice.


symposium/workshop on haskell | 2005

Verifying haskell programs using constructive type theory

Andreas Abel; Marcin Benke; Ana Bove; John Hughes; Ulf Norell

Proof assistants based on dependent type theory are closely related to functional programming languages, and so it is tempting to use them to prove the correctness of functional programs. In this paper, we show how Agda, such a proof assistant, can be used to prove theorems about Haskell programs. Haskell programs are translated into an Agda model of their semantics, by translating via GHCs Core language into a monadic form specially adapted to represent Haskells polymorphism in Agdas predicative type system. The translation can support reasoning about either total values only, or total and partial values, by instantiating the monad appropriately. We claim that, although these Agda models are generated by a relatively complex translation process, proofs about them are simple and natural, and we offer a number of examples to support this claim.


computer science logic | 2006

Semi-continuous sized types and termination

Andreas Abel

A type-based approach to termination uses sized types: an ordinal bound for the size of a data structure is stored in its type. A recursive function over a sized type is accepted if it is visible in the type system that recursive calls occur just at a smaller size. This approach is only sound if the type of the recursive function is admissible, i.e., depends on the size index in a certain way. To explore the space of admissible functions in the presence of higher-kinded data types and impredicative polymorphism, a semantics is developed where sized types are interpreted as functions from ordinals into sets of strongly normalizing terms. It is shown that upper semi-continuity of such functions is a sufficient semantical criterion for admissibility. To provide a syntactical criterion, a calculus for semi-continuous function is developed.

Collaboration


Dive into the Andreas Abel's collaboration.

Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Peter Dybjer

Chalmers University of Technology

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Andrea Vezzosi

Chalmers University of Technology

View shared research outputs
Top Co-Authors

Avatar

Miguel Pagano

National University of Cordoba

View shared research outputs
Top Co-Authors

Avatar

Tarmo Uustalu

Tallinn University of Technology

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Jesper Cockx

University of Gothenburg

View shared research outputs
Researchain Logo
Decentralizing Knowledge