Network


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

Hotspot


Dive into the research topics where Lindsay Groves is active.

Publication


Featured researches published by Lindsay Groves.


formal techniques for networked and distributed systems | 2004

Formal Verification of a Practical Lock-Free Queue Algorithm

Simon Doherty; Lindsay Groves; Victor Luchangco; Mark Moir

We describe a semi-automated verification of a slightly optimised version of Michael and Scott’s lock-free FIFO queue implementation. We verify the algorithm with a simulation proof consisting of two stages: a forward simulation from an automaton modelling the algorithm to an intermediate automaton, and a backward simulation from the intermediate automaton to an automaton that models the behaviour of a FIFO queue. These automata are encoded in the input language of the PVS proof system, and the properties needed to show that the algorithm implements the specification are proved using PVS’s theorem prover.


computer aided verification | 2006

Formal verification of a lazy concurrent list-based set algorithm

Robert Colvin; Lindsay Groves; Victor Luchangco; Mark Moir

A process for the removal and recovery of sulfur oxides from gas streams by contacting the gas stream with an aqueous suspension of melamine whereupon a mixture of solid, hydrated melamine sulfites, hydrated melamine sulfate is formed. The solids are separated from the reaction product and the clarified liquid recycled. The solids are then heated to temperatures up to 200 DEG C. to decompose the hydrated melamine sulfites into free melamine, gaseous water, and sulfur dioxide, and the gaseous water and sulfur dioxide withdrawn as product. The hot solids are cooled and split into two portions. One portion is recycled and the other portion is treated with a base stronger than melamine to decompose the contained melamine sulfate into free melamine and a basic sulfate salt solution. The basic sulfate salt solution is separated from the melamine and withdrawn as product and the melamine is recycled to the process.


acm symposium on parallel algorithms and architectures | 2004

DCAS is not a silver bullet for nonblocking algorithm design

Simon Doherty; David L. Detlefs; Lindsay Groves; Christine H. Flood; Victor Luchangco; Paul A. Martin; Mark Moir; Nir Shavit; Guy L. Steele

Despite years of research, the design of efficient nonblocking algorithms remains difficult. A key reason is that current shared-memory multiprocessor architectures support only single-location synchronisation primitives such as compare-and-swap (CAS) and load-linked/store-conditional (LL/SC). Recently researchers have investigated the utility of double-compare-and-swap (DCAS)--a generalisation of CAS that supports atomic access to two memory locations -- in overcoming these problems. We summarise recent research in this direction and present a detailed case study concerning a previously published nonblocking DCAS-based double-ended queue implementation. Our summary and case study clearly show that DCAS does not provide a silver bullet for nonblocking synchronisation. That is, it does not make the design and verification of even mundane nonblocking data structures with desirable properties easy. Therefore, our position is that while slightly more powerful synchronisation primitives can ave a profound effect on ease of algorithm design and verification, DCAS does not provide sufficient additional power over CAS to justify supporting it in hardware.


Formal Aspects of Computing | 2013

Towards formally specifying and verifying transactional memory

Simon Doherty; Lindsay Groves; Victor Luchangco; Mark S. Moir

Over the last decade, great progress has been made in developing practical transactional memory (TM) implementations, but relatively little attention has been paid to precisely specifying what it means for them to be correct, or formally proving that they are. In this paper, we present TMS1 (Transactional Memory Specification 1), a precise specification of correct behaviour of a TM runtime library. TMS1 targets TM runtimes used to implement transactional features in an unmanaged programming language such as C or C++. In such contexts, even transactions that ultimately abort must observe consistent states of memory; otherwise, unrecoverable errors such as divide-by-zero may occur before a transaction aborts, even in a correct program in which the error would not be possible if transactions were executed atomically. We specify TMS1 precisely using an I/O automaton (IOA). This approach enables us to also model TM implementations using IOAs and to construct fully formal and machine-checked correctness proofs for them using well established proof techniques and tools. We outline key requirements for a TM system. To avoid precluding any implementation that satisfies these requirements, we specify TMS1 to be as general as we can, consistent with these requirements. The cost of such generality is that the condition does not map closely to intuition about common TM implementation techniques, and thus it is difficult to prove that such implementations satisfy the condition. To address this concern, we present TMS2, a more restrictive condition that more closely reflects intuition about common TM implementation techniques. We present a simulation proof that TMS2 implements TMS1, thus showing that to prove that an implementation satisfies TMS1, it suffices to prove that it satisfies TMS2. We have formalised and verified this proof using the PVS specification and verification system.


Electronic Notes in Theoretical Computer Science | 2005

Verifying Concurrent Data Structures by Simulation

Robert Colvin; Simon Doherty; Lindsay Groves

We describe an approach to verifying concurrent data structures based on simulation between two Input/Output Automata (IOAs), modelling the specification and the implementation. We explain how we used this approach in mechanically verifying a simple lock-free stack implementation using forward simulation, and briefly discuss our experience in verifying three other lock-free algorithms which all required the use of backward simulation.


australian software engineering conference | 2000

A survey of software development practices in the New Zealand software industry

Lindsay Groves; Ray Nickson; Greg Reeve; Steve Reeves; Mark Utting

We report on the software development techniques used in the New Zealand software industry, paying particular attention to requirements gathering. We surveyed a selection of software companies with a general questionnaire and then conducted in-depth interviews with four companies. Our results show a wide variety in the kinds of companies undertaking software development, employing a wide range of software development techniques. Although our data are not sufficiently detailed to draw statistically significant conclusions, it appears that larger software development groups typically have more well-defined software development processes, spend proportionally more time on requirements gathering, and follow more rigorous testing regimes.


international conference on engineering of complex computer systems | 2005

Formal verification of an array-based nonblocking queue

Robert Colvin; Lindsay Groves

We describe an array-based nonblocking implementation of a concurrent bounded queue, due to Shann, Huang and Chen (2000), and explain how we detected errors in the algorithm while attempting a formal verification. We explain how we first corrected the errors, and then modified the algorithm to obtain nonblocking behaviour in the boundary cases. Both the corrected and modified versions of the algorithm were verified using the PVS theorem proven. We describe the verification of the modified algorithm, which subsumes the proof of the corrected version.


Electronic Notes in Theoretical Computer Science | 2007

Derivation of a Scalable Lock-Free Stack Algorithm

Lindsay Groves; Robert Colvin

We show how a sophisticated, lock-free concurrent stack implementation can be derived from an abstract specification in a series of verifiable steps. The algorithm is a simplified version of one described by Hendler, Shavit and Yerushalmi [Hendler, D., N. Shavit and L. Yerushalmi, A scalable lock-free stack algorithm, in: SPAA 2004: Proceedings of the Sixteenth Annual ACM Symposium on Parallel Algorithms, June 27-30, 2004, Barcelona, Spain, 2004, pp. 206-215], which allows push and pop operations to be paired off and eliminated without affecting the central stack. This reduces contention on the stack compared with other implementations, and allows multiple pairs of push and pop operations to be performed in parallel. Our derivation introduces an abstract model of the elimination process, which allows the basic algorithmic ideas to be separated from implementation details, and provides a basis for explaining and comparing different variants of the algorithm. We show that the elimination stack algorithm is linearisable by showing that any execution of the implementation can be transformed into an equivalent execution of an abstract model of a linearisable stack. At each step in the derivation, this transformation reduces an execution of an entire operation at a time of the model at that level, or two in the case of a successful elimination, rather than translating one atomic action at a time as is done in simulation proofs.


Journal of Computational Biology | 1992

A Tactic Driven Refinement Tool

Lindsay Groves; Raymond Nickson; Mark Utting

This paper describes a refinement tool we are developing, with special emphasis on the use of tactics. The operation of the tool is illustrated by stepping through the derivation of a selection sort algorithm. Several aspects of the tool and its implementation are then discussed in more detail, stressing the way in which the tool assists the user in deriving programs using the refinement calculus.


abstract state machines alloy b and z | 2010

Translating z to alloy

Petra Malik; Lindsay Groves; Clare Lenihan

Few tools are available to help with the difficult task of validating that a Z specification captures its intended meaning. One tool that has been proven to be useful for validating specifications is the Alloy Analyzer, an interactive tool for checking and visualising Alloy models. However, Z specifications need to be translated to Alloy notation to make use of the Alloy Analyzer. These translations have been performed manually so far, which is a cumbersome and error-prone activity. The aim of this paper is to explore to what extent this process can be automated. The paper identifies a subset of Z that can be straightforwardly translated to Alloy, and the translation for this subset is formalised. More complex constructs, like schemas, are harder to translate. The paper gives a brief overview of the problems, and discusses alternative translation approaches.

Collaboration


Dive into the Lindsay Groves's collaboration.

Top Co-Authors

Avatar

Robert Colvin

University of Queensland

View shared research outputs
Top Co-Authors

Avatar

Jing Sun

University of Auckland

View shared research outputs
Top Co-Authors

Avatar

Simon Doherty

Victoria University of Wellington

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

John Derrick

University of Sheffield

View shared research outputs
Top Co-Authors

Avatar

David J. Pearce

Victoria University of Wellington

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Researchain Logo
Decentralizing Knowledge