Results 1 
7 of
7
Functors for Proofs and Programs
, 2003
"... This paper presents the formal verication with the Coq proof assistant of several applicative data structures implementing nite sets. These implementations are parameterized by an ordered type for the elements, using functors from the ML module system. The verication follows closely this scheme, ..."
Abstract

Cited by 17 (3 self)
 Add to MetaCart
This paper presents the formal verication with the Coq proof assistant of several applicative data structures implementing nite sets. These implementations are parameterized by an ordered type for the elements, using functors from the ML module system. The verication follows closely this scheme, using the newly Coq module system.
Dependently Typed Data Structures
, 1999
"... The mechanism for declaring datatypes in functional programming languages such as ML and Haskell is of great use in practice. This mechanism, however, often suffers from its imprecision in capturing the invariants inherent in data structures. We remedy the situation with the introduction of dependen ..."
Abstract

Cited by 14 (3 self)
 Add to MetaCart
The mechanism for declaring datatypes in functional programming languages such as ML and Haskell is of great use in practice. This mechanism, however, often suffers from its imprecision in capturing the invariants inherent in data structures. We remedy the situation with the introduction of dependent datatypes so that we can model data structures with significantly more accuracy. We present a few interesting examples such as implementations of redblack trees and binomial heaps to illustrate the use of dependent datatypes in capturing some sophisticated invariants in data structures. We claim that dependent datatypes can enable the programmer to implement algorithms in a way that is more robust and easier to understand.
A Simple Implementation Technique for Priority Search Queues
 Proceedings of the 2001 International Conference on Functional Programming
, 2001
"... This paper presents a new implementation technique for priority search queues. This abstract data type is an amazing blend of finite maps and priority queues. Our implementation supports logarithmic access to a binding with a given key and constant access to a binding with the minimum value. Priorit ..."
Abstract

Cited by 8 (2 self)
 Add to MetaCart
This paper presents a new implementation technique for priority search queues. This abstract data type is an amazing blend of finite maps and priority queues. Our implementation supports logarithmic access to a binding with a given key and constant access to a binding with the minimum value. Priority search queues can be used, for instance, to give a simple, purely functional implementation of Dijkstra's singlesource shortestpaths algorithm.
An Algebra of Scans
 In Mathematics of Program Construction
, 2004
"... A parallel prefix circuit takes n inputs x1 , x2 , . . . , xn and produces the n outputs x1 , x1 x2 , . . . , x1 x2 xn , where `#' is an arbitrary associative binary operation. Parallel prefix circuits and their counterparts in software, parallel prefix computations or scans, have numerous app ..."
Abstract

Cited by 8 (0 self)
 Add to MetaCart
A parallel prefix circuit takes n inputs x1 , x2 , . . . , xn and produces the n outputs x1 , x1 x2 , . . . , x1 x2 xn , where `#' is an arbitrary associative binary operation. Parallel prefix circuits and their counterparts in software, parallel prefix computations or scans, have numerous applications ranging from fast integer addition over parallel sorting to convex hull problems. A parallel prefix circuit can be implemented in a variety of ways taking into account constraints on size, depth, or fanout. Traditionally, implementations are either defined graphically or by enumerating the underlying graph. Both approaches have their pros and cons. A figure if well drawn conveys the possibly recursive structure of the scan but it is not amenable to formal manipulation. A description in form of a graph while rigorous obscures the structure of a scan and is equally hard to manipulate. In this paper we show that parallel prefix circuits enjoy a very pleasant algebra. Using only two basic building blocks and four combinators all standard designs can be described succinctly and rigorously. The rules of the algebra allow us to prove the circuits correct and to derive circuit designs in a systematic manner. lord darlington. . . . [Sees a fan lying on the table.] And what a wonderful fan! May I look at it? lady windermere. Do. Pretty, isn't it! It's got my name on it, and everything. I have only just seen it myself. It's my husband's birthday present to me. You know today is my birthday?  Oscar Wilde, Lady Windermere's Fan 1
Fast list Viterbi decoding and application for sourcechannel coding of images
 KONSTANZER SCHRIFTEN IN MATHEMATIK UND INFORMATIK [ONLINE] PREPRINT NO. 182, HTTP://WWW.INF.UNIKONSTANZ.DE/ PREPRINTS/PREPRINTSALL.HTML
, 2002
"... ..."
Fast TreeTrellis List Viterbi Decoding
, 2005
"... JOURNAL, VOL., NO., YEAR 2 A list Viterbi algorithm (LVA) finds n most likely paths in a trellis diagram of a convolutional code. One of the most efficient LVAs is the treetrellis algorithm of Soong and Huang. We propose a new implementation of this algorithm. Instead of storing the candidate paths ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
JOURNAL, VOL., NO., YEAR 2 A list Viterbi algorithm (LVA) finds n most likely paths in a trellis diagram of a convolutional code. One of the most efficient LVAs is the treetrellis algorithm of Soong and Huang. We propose a new implementation of this algorithm. Instead of storing the candidate paths in a single list sorted according to the metrics of the paths, we show that it is computationally more efficient to use several unsorted lists, where all paths of the same list have the same metric. For an arbitrary integer bit metric, both the time and space complexity of our implementation are linear in n. Experimental results for a binary symmetric channel and an additive white Gaussian noise channel show that our implementation is much faster than all previous LVAs.
Programming with Static Invariants in \Omega mega
, 2004
"... Abstract We present an implementation of binomial heaps that enforces the balancing invariants at compile time. We present an implementation of a typed CPS transform that enforces the typing invariants of both the source and target terms. 1 Introduction There has been a lot of interest recently in g ..."
Abstract
 Add to MetaCart
Abstract We present an implementation of binomial heaps that enforces the balancing invariants at compile time. We present an implementation of a typed CPS transform that enforces the typing invariants of both the source and target terms. 1 Introduction There has been a lot of interest recently in generalizing algebraic datatypes asfound in most functional programming languages. These generalizations have