Network


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

Hotspot


Dive into the research topics where Ulf Norell is active.

Publication


Featured researches published by Ulf Norell.


international conference on advanced functional programming | 2009

Dependently typed programming in Agda

Ulf Norell

Dependently typed languages have for a long time been used to describe proofs about programs. Traditionally, dependent types are used mostly for stating and proving the properties of the programs and not in defining the programs themselves. An impressive example is the certified compiler by Leroy (2006) implemented and proved correct in Coq (Bertot and Castéran 2004). Recently there has been an increased interest in dependently typed programming, where the aim is to write programs that use the dependent type system to a much higher degree. In this way a lot of the properties that were previously proved separately can be integrated in the type of the program, in many cases adding little or no complexity to the definition of the program. New languages, such as Epigram (McBride and McKinna 2004), are being designed, and existing languages are being extended with new features to accomodate these ideas, for instance the work on dependently typed programming in Coq by Sozeau (2007). This talk gives an overview of the Agda programming language (Norell 2007), whose main focus is on dependently typed programming. Agda provides a rich set of inductive types with a powerful mechanism for pattern matching, allowing dependently typed programs to be written with minimal fuss. To read about programming in Agda, see the lecture notes from the Advanced Functional Programming summer school (Norell 2008) and the work by Oury and Swierstra (2008). In the talk a number of examples of interesting dependently typed programs chosen from the domain of programming language implementation are presented as they are implemented in Agda.


theorem proving in higher order logics | 2009

A Brief Overview of Agda --- A Functional Language with Dependent Types

Ana Bove; Peter Dybjer; Ulf Norell

We give an overview of Agda, the latest in a series of dependently typed programming languages developed in Gothenburg. Agda is based on Martin-Lofs intuitionistic type theory but extends it with numerous programming language features. It supports a wide range of inductive data types, including inductive families and inductive-recursive types, with associated flexible pattern-matching. Unlike other proof assistants, Agda is not tactic-based. Instead it has an Emacs-based interface which allows programming by gradual refinement of incomplete type-correct terms.


implementation and application of functional languages | 2003

Polytypic programming in haskell

Ulf Norell; Patrik Jansson

A polytypic (or generic) program captures a common pattern of computation over different datatypes by abstracting over the structure of the datatype. Examples of algorithms that can be defined polytypically are equality tests, mapping functions and pretty printers. A commonly used technique to implement polytypic programming is specialization, where a specialized version of a polytypic function is generated for every datatype it is used at. In this paper we describe an alternative technique that allows polytypic functions to be defined using Haskells class system (extended with multi-parameter type classes and functional dependencies). This technique brings the power of polytypic programming inside Haskell allowing us to define a Haskell library of polytypic functions. It also increases our flexibility, reducing the dependency on a polytypic language compiler.


international conference on software testing verification and validation workshops | 2015

Testing AUTOSAR software with QuickCheck

Thomas Arts; John Hughes; Ulf Norell; Henrik Svensson

AUTOSAR (AUTomotive Open System ARchitecture) is an evolving standard for embedded software in vehicles, defined by the automotive industry, and implemented by many different vendors. On behalf of Volvo Cars, we have developed model-based acceptance tests for some critical AUTOSAR components, to guarantee that implementations from different vendors are compatible. We translated over 3000 pages of textual specifications into QuickCheck models, and tested many different implementations using large volumes of generated tests. This exposed over 200 issues, which we raised with Volvo and the software vendors. Compared to an earlier manual approach, ours is more efficient, more effective, and more correct.


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.


implementation and application of functional languages | 2008

Parsing mixfix operators

Nils Anders Danielsson; Ulf Norell

A simple grammar scheme for expressions containing mixfix operators is presented. The scheme is parameterised by a precedence relation which is only restricted to be a directed acyclic graph; this makes it possible to build up precedence relations in a modular way. Efficient and simple implementations of parsers for languages with user-defined mixfix operators, based on the grammar scheme, are also discussed. In the future we plan to replace the support for mixfix operators in the language Agda with a grammar scheme and an implementation based on this work.


frontiers of combining systems | 2005

Connecting a logical framework to a first-order logic prover

Andreas Abel; Thierry Coquand; Ulf Norell

We present one way of combining a logical framework and first-order logic. The logical framework is used as an interface to a first-order theorem prover. Its main purpose is to keep track of the structure of the proof and to deal with the high level steps, for instance, induction. The steps that involve purely propositional or simple first-order reasoning are left to a first-order resolution prover (the system Gandalf in our prototype). The correctness of this interaction is based on a general meta-theoretic result. One feature is the simplicity of our translation between the logical framework and first-order logic, which uses implicit typing. Implementation and case studies are described.


mathematics of program construction | 2004

Prototyping Generic Programming in Template Haskell

Ulf Norell; Patrik Jansson

Generic Programming deals with the construction of programs that can be applied to many different datatypes. This is achieved by parameterizing the generic programs by the structure of the datatypes on which they are to be applied. Programs that can be defined generically range from simple map functions through pretty printers to complex XML tools.


automation of software test | 2010

Using temporal relations to specify and test an instant messaging server

John Hughes; Ulf Norell; Jérôme Sautret

Asynchronous events are awkward to handle in specification-based testing. State machine specifications become very complex when variable event order, timing constraints, and timing uncertainties must all be captured. We propose an alternative formalism for specifying asynchronous behaviour based on temporal relations, designed to support more declarative and modular specifications. Temporal relations are in a sense a combination of bulk data types and temporal logic. We illustrate the formalism by specifying parts of a simplified instant messaging server, and show that it can handle timing uncertainty very simply. We have implemented the formalism as part of Quviq QuickCheck, a commercial specification-based testing tool, and we describe its application to testing ejabberd, the leading instant messaging server based on the open XMPP protocol.


international conference on software testing verification and validation | 2016

Mysteries of DropBox: Property-Based Testing of a Distributed Synchronization Service

John Hughes; Benjamin C. Pierce; Thomas Arts; Ulf Norell

File synchronization services such as Dropbox are used by hundreds ofmillions of people to replicate vital data. Yet rigorous models of theirbehavior are lacking. We present the first formal -- and testable -- model ofthe core behavior of a modern file synchronizer, and we use it to discoversurprising behavior in two widely deployed synchronizers. Our model isbased on a technique for testing nondeterministic systems that avoidsrequiring that the systems internal choices be made visible to the testing framework.

Collaboration


Dive into the Ulf Norell's collaboration.

Top Co-Authors

Avatar
Top Co-Authors

Avatar

John Hughes

Chalmers University of Technology

View shared research outputs
Top Co-Authors

Avatar

Hans Svensson

Chalmers University of Technology

View shared research outputs
Top Co-Authors

Avatar

Nicholas Smallbone

Chalmers University of Technology

View shared research outputs
Top Co-Authors

Avatar

Patrik Jansson

Chalmers University of Technology

View shared research outputs
Top Co-Authors

Avatar

Ana Bove

Chalmers University of Technology

View shared research outputs
Top Co-Authors

Avatar

Rickard Svenningsson

SP Technical Research Institute of Sweden

View shared research outputs
Top Co-Authors

Avatar

Rolf Johansson

SP Technical Research Institute of Sweden

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Alex Gerdes

Chalmers University of Technology

View shared research outputs
Researchain Logo
Decentralizing Knowledge