Skip to main content
A vanishing theorem in relative Lie algebra cohomology.- Nilpotent orbits, primitive ideals, and characteristic classes.- Some examples of hochschild and cyclic homology.- On the topology of algebraic torus actions.- Restricted lie... more
A vanishing theorem in relative Lie algebra cohomology.- Nilpotent orbits, primitive ideals, and characteristic classes.- Some examples of hochschild and cyclic homology.- On the topology of algebraic torus actions.- Restricted lie algebra cohomology.- On geometric invariant theory for infinite-dimensional groups.- Etale local structure of matrix invariants and concomitants.- Fourier transforms on a semisimple Lie algebra over Fq.- Commuting differential operators and zonal spherical functions.- Some surfaces covered by the ball and a problem in finite groups.- Invariant theory and kloosterman sums.- On actions of on .- Normality of G-stable subvarieties of a semisimple Lie algebra.- Unipotent elements and parabolic subgroups of reductive groups. II.
The group mutual exclusion (GME) problem (also called the room synchronization problem) arises in various practical applications that require concurrent data sharing. Group mutual exclusion aims to achieve exclusive access to a shared... more
The group mutual exclusion (GME) problem (also called the room synchronization problem) arises in various practical applications that require concurrent data sharing. Group mutual exclusion aims to achieve exclusive access to a shared resource (a shared room) while facilitating concurrency among non-conflicting requests. The problem is that threads with distinct interests are not allowed to access the shared resource concurrently, but multiple threads with same interest can. In Blelloch et al. (2003), the authors presented a simple solution to the room synchronization problem using fetch8add ( F 8 A ) and test-and-set ( T 8 S ) atomic operations. This algorithm has O ( m ) remote memory references (RMRs) in the cache coherent (CC) model, where m is the number of forums. In Bhatt and Huang (2010), an open problem was posed: “ Is it possible to design a GME algorithm with constant RMR for the CC model using fetch8add instructions? ” This question is partially answered in this article ...
Non-blocking algorithms are hard to design correctly, even when apparently straightforward. Ensuring the correctness of the design at the earliest possible stage is a major challenge in any responsible system development. In view of the... more
Non-blocking algorithms are hard to design correctly, even when apparently straightforward. Ensuring the correctness of the design at the earliest possible stage is a major challenge in any responsible system development. In view of the complexity of the algorithm, we turned to the interactive theorem prover PVS for mechanical support. We employ standard deductive verification techniques to prove around 200 invariance properties of our algorithm, and describe how this is achieved with the theorem prover PVS.
Research Interests:
In Owicki and Gries [2] a well known proof method for verifying parallel programs based on the interference freedom test was introduced. We show that their extension of the method to deal with termination is incorrect and suggest two ways... more
In Owicki and Gries [2] a well known proof method for verifying parallel programs based on the interference freedom test was introduced. We show that their extension of the method to deal with termination is incorrect and suggest two ways of repairing it .
All in-text references underlined in blue are linked to publications on ResearchGate, letting you access and read them immediately.
Abstract. A knowledge-based program is a high-level description of the behaviour of agents in terms of knowledge that an agent must have before (s)he may perform an action. The definition of the semantics of knowledge-based programs is... more
Abstract. A knowledge-based program is a high-level description of the behaviour of agents in terms of knowledge that an agent must have before (s)he may perform an action. The definition of the semantics of knowledge-based programs is problematic, since it involves a vicious circle; the knowledge of an agent is defined in terms of the possible behaviours of the program, while the possi-ble behaviours are determined by the actions which depend on knowledge. We define the semantics of knowledge-based programs via an iteration approach generalizing the well-known fixpoint con-struction. We propose a specific iteration as the semantics of a knowledge-based program, and justify our choice by a number of examples, including the Unexpected Hanging Paradox.
The MCS lock of Mellor-Crummey and Scott (1991) is a very efficient FCFS mutual-exclusion algorithm that uses the atomic hardware primitives fetch-and-store and compare-and-swap. However, it has the disadvantage that the calling thread... more
The MCS lock of Mellor-Crummey and Scott (1991) is a very efficient FCFS mutual-exclusion algorithm that uses the atomic hardware primitives fetch-and-store and compare-and-swap. However, it has the disadvantage that the calling thread must provide a pointer to an allocated record. This additional parameter violates the standard locking interface, which has only the lock as a parameter. Hence, it is impossible to switch to MCS without editing and recompiling an application that uses locks. This paper provides a variation of MCS with the standard interface, which remains FCFS, called MCSH. One key ingredient is to stack allocate the necessary record in the acquire procedure of the lock, so its life-time only spans the delay to enter a critical section. A second key ingredient is communicating the allocated record between the acquire and release procedures through the lock to maintain the standard locking interface. Both of these practices are known to practitioners, but our solution ...
\Recursive expressions" is an expression language that allows explicit substitution recur-sively. It lacks functional abstraction, function application and higher order functions, but is powerful enough to construct all partial... more
\Recursive expressions" is an expression language that allows explicit substitution recur-sively. It lacks functional abstraction, function application and higher order functions, but is powerful enough to construct all partial recursive functions. It may be regarded as a lazy rst-order functional language without functions. We give xpoint semantics and rewrite semantics and prove equality between these semantics. In other words, it is proved that the rewrite semantics is sound and complete with respect to the (necessarily lazy) xpoint semantics.
A new linear time scanning algorithm for the exact Euclidean distance transform is presented. It is shorter and uses a smaller data structure than the approximating algorithms of Danielsson. The algorithm consists of two phases. The rst... more
A new linear time scanning algorithm for the exact Euclidean distance transform is presented. It is shorter and uses a smaller data structure than the approximating algorithms of Danielsson. The algorithm consists of two phases. The rst phase uses two scans per line to compute the distance transform over the columns of the image. Then the second phase uses two scans per row. Informally speaking, each of these row scans uses the intersections of the remainder of the row with the Voronoi cells of the source restricted to the halfplane in the past of the scan point. Since it only uses knowledge accumulated per scan line, the algorithm is well suited for parallellization.
The primitives for Java threads and POSIX threads are compared by means of a simulation of cars at a crossing. These cars have to be synchronized in such a way that at every moment only cars in one direction proceed. The initial solution... more
The primitives for Java threads and POSIX threads are compared by means of a simulation of cars at a crossing. These cars have to be synchronized in such a way that at every moment only cars in one direction proceed. The initial solution is based on compound await statements. This solution is subsequently implemented with Java threads and POSIX threads. These two thread formalisms differ: POSIX threads can wait at condition variables of a greater generality than available in Java, but the corresponding queues may be leaky.
The design is described of a parallel version of Tarjan’s algorithm for the determination of equivalence classes in graphs that represent images. Distribution of the vertices of the graph over a number of processes leads to a message... more
The design is described of a parallel version of Tarjan’s algorithm for the determination of equivalence classes in graphs that represent images. Distribution of the vertices of the graph over a number of processes leads to a message passing algorithm. The algorithm is mapped to a shared-memory architecture by means of POSIX threads. It is applied to the determination of connected components in image processing. Experiments show a satisfactory speedup for su;ciently large images. c © 2001 Elsevier Science B.V. All rights reserved.
Research Interests:
The algorithm of Jayanti and Petrovic (ICDCS 2005) gives a wait-free implementation of load-linked/store-conditional (LL/SC) for multiword variables, given LL/SC actions on single words. The authors gave a behavioural proof of... more
The algorithm of Jayanti and Petrovic (ICDCS 2005) gives a wait-free implementation of load-linked/store-conditional (LL/SC) for multiword variables, given LL/SC actions on single words. The authors gave a behavioural proof of correctness. We present a refinement proof that has been verified with the proof assistant PVS. We give an improved algorithm which needs fewer single-word LL/SC registers and fewer shared multiword variables, and in which one single-word LL operation has been eliminated. We also present a pure version in which all accesses to the LL/SC variables are done by LL, SC, or VL.
Lamport’s Bakery Algorithm (Commun ACM 17:453–455, 1974 ) implements mutual exclusion for a fixed number of threads with the first-come first-served property. It has the disadvantage, however, that it uses integer communication variables... more
Lamport’s Bakery Algorithm (Commun ACM 17:453–455, 1974 ) implements mutual exclusion for a fixed number of threads with the first-come first-served property. It has the disadvantage, however, that it uses integer communication variables that can become arbitrarily large. Taubenfeld’s Black-White Bakery Algorithm (Proceedings of the DISC. LNCS, vol 3274, pp 56–70, 2004 ) keeps the integers bounded, and is adaptive in the sense that the time complexity only depends on the number of competing threads, say N . The present paper offers an assertional proof of correctness and shows that the concurrent complexity for throughput is linear in N , and for individual progress is quadratic in N . This is proved with a bounded version of UNITY, i.e., by assertional means.
UNITY is a model for concurrent specifications with a complete logic for proving progress properties of the form “P leads to Q”. UNITY is generalized to U-specifications by giving more freedom to specify the steps that are to be taken... more
UNITY is a model for concurrent specifications with a complete logic for proving progress properties of the form “P leads to Q”. UNITY is generalized to U-specifications by giving more freedom to specify the steps that are to be taken infinitely often. In particular, these steps can correspond to non-total relations. The generalization keeps the logic sound and complete. The paper exploits the generalization in two ways. Firstly, the logic remains sound when the specification is extended with hypotheses of the form “F leads to G”. As the paper shows, this can make the logic incomplete. The generalization is used to show that the logic remains complete, if the added hypotheses “F leads to G” satisfy “F unless G”. The main result extends the applicability and completeness of UNITY logic to proofs that a given concurrent program satisfies any given formula of LTL, linear temporal logic, without the next-operator which is omitted because it is sensitive to stuttering. For this purpose, ...
Partial mutual exclusion is the drinking philosophers problem for complete graphs. It is the problem that a process may enter a critical section CS of its code only when some finite set nbh of other processes are not in their critical... more
Partial mutual exclusion is the drinking philosophers problem for complete graphs. It is the problem that a process may enter a critical section CS of its code only when some finite set nbh of other processes are not in their critical sections. For each execution of CS, the set nbh can be given by the environment. We present a starvation free solution of this problem in a setting with infinitely many processes, each with finite memory, that communicate by asynchronous messages. The solution has the property of first-come first-served, in so far as this can be guaranteed by asynchronous messages. For every execution of CS and every process in nbh, between three and six messages are needed. The correctness of the solution is argued with invariants and temporal logic. It has been verified with the proof assistant PVS.
Arnold Meijster, who wanted to recognize lines of characters in old manuscripts, posed the following problem. Given an array of real numbers and an upper bound, determine the maximal segments with variation below the upper bound, in an... more
Arnold Meijster, who wanted to recognize lines of characters in old manuscripts, posed the following problem. Given an array of real numbers and an upper bound, determine the maximal segments with variation below the upper bound, in an efficient way. Here, the variation of a segment is the difference between the maximum and the minimum value on the segment. It turns out that there is a linear-time algorithm for this problem, and that this algorithm uses the slightly unusual data structure of a two-sided queue. Actually, it uses two such two-sided queues. This suggested a second algorithm that only uses one two-sided queue to determine the maximal segments of bounded descent. We derive the first algorithm in section 2, and present the second algorithm in section 3. To fix the notation, let x be the array, let N be the length of x, and let B be the upper bound, according to the declaration:

And 153 more