VLDB 2026 Research / reviewers in the wild / expert
Ian J. Hayes
dblp:h/IanJHayes
· DBLP profile ↗
74ranked-venue papers
31as first author
8since 2021 · last 2026
0000-0003-3649-392XORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Theory of computation · 40 · 17 first-author · 5 since 2021Software engineering, systems software and programming languages · 39 · 16 first-author · 4 since 2021Applied, interdisciplinary, general and emerging computing · 2 · 1 first-authorSystems, architecture and hardware · 1Human-computer interaction and ubiquitous computing · 1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2026 | Reasoning about expression evaluation under interferenceabstractHoare-style inference rules for program constructs permit the copying of expressions and tests from program text into logical contexts. It is known that this requires care even for sequential programs but much more serious issues arise with concurrent programs because of potential interference to the values of variables. The “rely-guarantee” approach tackles the challenge of recording acceptable interference and offers a way to provide safe inference rules for concurrent constructs. This article shows how the algebraic presentation of rely-guarantee ideas can clarify and formalise the conditions for safely re-using expressions and tests from program text in logical contexts for reasoning about concurrent programs; crucially this extends to handling expressions that reference more than one shared variable. A non-trivial example related to the Fischer-Galler forest representation of equivalence relations is treated. Ian J. Hayes, Cliff B. Jones, Larissa Meinicke |
Formal Aspects Comput. | 1 |
| 2024 | Restructuring a Concurrent Refinement Algebra
Ian J. Hayes, Larissa Meinicke, Nasos Evangelou-Oost |
RAMiCS | 1 |
| 2023 | Contextuality in Distributed Systems
Nasos Evangelou-Oost, Callum Bannister, Ian J. Hayes |
RAMiCS | 3 |
| 2023 | Verifying Term Graph Optimizations using Isabelle/HOLabstractOur objective is to formally verify the correctness of the hundreds of expression optimization rules used within the GraalVM compiler. When defining the semantics of a programming language, expressions naturally form abstract syntax trees, or, terms. However, in order to facilitate sharing of common subexpressions, modern compilers represent expressions as term graphs. Defining the semantics of term graphs is more complicated than defining the semantics of their equivalent term representations. More significantly, defining optimizations directly on term graphs and proving semantics preservation is considerably more complicated than on the equivalent term representations. On terms, optimizations can be expressed as conditional term rewriting rules, and proofs that the rewrites are semantics preserving are relatively straightforward. In this paper, we explore an approach to using term rewrites to verify term graph transformations of optimizations within the GraalVM compiler. This approach significantly reduces the overall verification effort and allows for simpler encoding of optimization rules. Brae J. Webb, Ian J. Hayes, Mark Utting |
CPP | 2 |
| 2023 | Trace Models of Concurrent Valuation Algebras
Nasos Evangelou-Oost, Larissa Meinicke, Callum Bannister, Ian J. Hayes |
ICFEM | 4 |
| 2023 | Verifying Compiler Optimisations - (Invited Paper)
Ian J. Hayes, Mark Utting, Brae J. Webb |
ICFEM | 1 |
| 2021 | A Formal Semantics of the GraalVM Intermediate Representation
Brae J. Webb, Mark Utting, Ian J. Hayes |
ATVA | 3 |
| 2021 | Convolution Algebras: Relational Convolution, Generalised Modalities and Incidence Algebras
Brijesh Dongol, Ian J. Hayes, Georg Struth |
Log. Methods Comput. Sci. | 2 |
| 2020 | Deriving Specifications of Control Programs for Cyber Physical SystemsabstractAbstract Cyber physical systems (CPS) exist in a physical environment and comprise both physical components and a control program. Physical components are inherently liable to failure and yet an overall CPS is required to operate safely, reliably and cost effectively. This paper proposes a framework for deriving the specification of the software control component of a CPS from an understanding of the behaviour required of the overall system in its physical environment. The two key elements of this framework are (i) an extension to the use of rely/guarantee conditions to allow specifications to be obtained systematically from requirements (as expressed in terms of the required behaviour in the environment) and nested assumptions (about the physical components of the CPS); and (ii) the use of time bands to record the temporal properties required of the CPS at a number of different granularities. The key contribution is in combining these ideas; using time bands overcomes a significant drawback in earlier work. The paper also addresses the means by which the reliability of a CPS can be addressed by challenging each rely condition in the derived specification and, where appropriate, improve robustness and/or define weaker guarantees that can be delivered with respect to the corresponding weaker rely conditions. Alan Burns 0001, Ian J. Hayes, Cliff B. Jones |
Comput. J. | 2 |
| 2019 | Cylindric Kleene Lattices for Program Construction
Brijesh Dongol, Ian J. Hayes, Larissa Meinicke, Georg Struth |
MPC | 2 |
| 2019 | A synchronous program algebra: a basis for reasoning about shared-memory and event-based concurrencyabstractAbstract In this paper we introduce an abstract algebra for reasoning about concurrent programs, that includes an abstract algebra of atomic steps, with sub-algebras of program and environment steps, and an abstract synchronisation operator. We show how the abstract synchronisation operator can be instantiated as a synchronous parallel operator with interpretations in rely-guarantee concurrency for shared-memory systems, and in process algebras CCS and CSP. It is also instantiated as a weak conjunction operator, an operator that is useful for the specification of rely and guarantee conditions in rely/guarantee concurrency. The main differences between the parallel and weak conjunction instantiations of the synchronisation operator are how they combine individual atomic steps. Lemmas common to these different instantiations are proved once using the axiomatisation of the abstract synchronous operator. Using the sub-algebras of program and environment atomic steps, rely and guarantee conditions, as well as Morgan-style specification commands, are defined at a high-level of abstraction in the program algebra. Lifting these concepts from rely/guarantee concurrency to a higher level of abstraction makes them more widely applicable. We demonstrate the practicality of the algebra by showing how a core law from rely-guarantee theory, the parallel introduction law, can be abstracted and verified easily in the algebra. In addition to proving fundamental properties for reasoning about concurrent shared-variable programs, the algebra is instantiated to prove abstract process synchronisation properties familiar from the process algebras CCS and CSP. The algebra has been encoded in Isabelle/HOL to provide a basis for tool support for concurrent program verification based on the rely/guarantee technique. It facilitates simpler, more general, proofs that allow a higher level of automation than what is possible in low-level, model-specific interpretations. Ian J. Hayes, Larissa Meinicke, Kirsten Winter, Robert Colvin |
Formal Aspects Comput. | 1 |
| 2018 | Encoding Fairness in a Synchronous Concurrent Program Algebra
Ian J. Hayes, Larissa Meinicke |
FM | 1 |
| 2018 | Engineering a Theory of Concurrent Programming
Ian J. Hayes |
ICFEM | 1 |
| 2018 | Type Capabilities for Object-Oriented Programming Languages
Xi Wu 0005, Yi Lu 0003, Patrick A. Meiring, Ian J. Hayes, Larissa Meinicke |
ICFEM | 4 |
| 2017 | Capabilities for Java: Secure Access to Resources
Ian J. Hayes, Xi Wu 0005, Larissa Meinicke |
APLAS | 1 |
| 2017 | Designing a semantic model for a wide-spectrum language with concurrencyabstractAbstract A wide-spectrum language integrates specification constructs into a programming language in a manner that treats a specification command just like any other command. The primary contribution of this paper is a semantic model for a wide-spectrum language that supports concurrency and a refinement calculus. A distinguishing feature of the language is that steps of the environment are modelled explicitly, alongside steps of the program. From these two types of steps a rich set of specification commands can be constructed, based on operators for nondeterministic choice, and sequential and parallel composition. We also introduce a novel operator, weak conjunction , which is used extensively to conjoin separate aspects of specifications, allowing us to take a separation-of-concerns approach to subsequent reasoning. We provide a denotational semantics for the language based on traces, which may be terminating, aborting, infeasible, or infinite. To demonstrate the generality and unifying strength of the language, we use it to express a range of concepts from the concurrency literature, including: a refinement theory for rely/guarantee reasoning; an abstract specification of local variables in a concurrent context; specification of an abstract, linearisable data structure; a partial encoding of temporal logic; and defining the relationships between notions of nonblocking programs. The novelty of the paper is that these diverse concepts build on the same theory. In particular, the rely concept from Jones’ rely/guarantee framework, and a stronger demand concept that restricts the environment, are reused across the different domains to express assumptions about the environment. The language and model form an instance of an abstract concurrent program algebra, and this facilitates reasoning about properties of the model at a high level of abstraction. Robert Colvin, Ian J. Hayes, Larissa Meinicke |
Formal Aspects Comput. | 2 |
| 2016 | An Algebra of Synchronous Atomic Steps
Ian J. Hayes, Robert Colvin, Larissa Meinicke, Kirsten Winter, Andrius Velykis |
FM | 1 |
| 2016 | Generalised rely-guarantee concurrency: an algebraic foundationabstractAbstract The rely-guarantee technique allows one to reason compositionally about concurrent programs. To handle interference the technique makes use of rely and guarantee conditions, both of which are binary relations on states. A rely condition is an assumption that the environment performs only atomic steps satisfying the rely relation and a guarantee is a commitment that every atomic step the program makes satisfies the guarantee relation. In order to investigate rely-guarantee reasoning more generally, in this paper we allow interference to be represented by a process rather than a relation and hence derive more general rely-guarantee laws. The paper makes use of a weak conjunction operator between processes, which generalises a guarantee relation to a guarantee process, and introduces a rely quotient operator, which generalises a rely relation to a process. The paper focuses on the algebraic properties of the general rely-guarantee theory. The Jones-style rely-guarantee theory can be interpreted as a model of the general algebraic theory and hence the general laws presented here hold for that theory. Ian J. Hayes |
Formal Aspects Comput. | 1 |
| 2016 | Convolution as a Unifying Concept: Applications in Separation Logic, Interval Calculi, and ConcurrencyabstractA notion of convolution is presented in the context of formal power series together with lifting constructions characterising algebras of such series, which usually are quantales. A number of examples underpin the universality of these constructions, the most prominent ones being separation logics, where convolution is separating conjunction in an assertion quantale; interval logics, where convolution is the chop operation; and stream interval functions, where convolution is proposed for analysing the trajectories of dynamical or real-time systems. A Hoare logic can be constructed in a generic fashion on the power-series quantale, which applies to each of these examples. In many cases, commutative notions of convolution have natural interpretations as concurrency operations. Brijesh Dongol, Ian J. Hayes, Georg Struth |
ACM Trans. Comput. Log. | 2 |
| 2015 | Balancing expressiveness in formal approaches to concurrencyabstractAbstract One might think that specifying and reasoning about concurrent programs would be easier with more expressive languages. This paper questions that view. Clearly too weak a notation can mean that useful properties either cannot be expressed or their expression is unnatural. But choosing too powerful a notation also has its drawbacks since reasoning receives little guidance. For example, few would suggest that programming languages themselves provide tractable specifications. Both rely/guarantee methods and separation logic(s) provide useful frameworks in which it is natural to reason about aspects of concurrency. Rather than pursue an approach of extending the notations of either approach, this paper starts with the issues that appear to be inescapable with concurrency and—only as a response thereto—examines ways in which these fundamental challenges can be met. Abstraction is always a ubiquitous tool and its influence on how the key issues are tackled is examined in each case. Cliff B. Jones, Ian J. Hayes, Robert Colvin |
Formal Aspects Comput. | 2 |
| 2014 | Invariants, Well-Founded Statements and Real-Time Program Algebra
Ian J. Hayes, Larissa Meinicke |
FM | 1 |
| 2014 | Reasoning about goal-directed real-time teleo-reactive programsabstractAbstract The teleo-reactive programming model is a high-level approach to developing real-time systems that supports hierarchical composition and durative actions. The model is different from frameworks such as action systems, timed automata and TLA + , and allows programs to be more compact and descriptive of their intended behaviour. Teleo-reactive programs are particularly useful for implementing controllers for autonomous agents that must react robustly to their dynamically changing environments. In this paper, we develop a real-time logic that is based on Duration Calculus and use this logic to formalise the semantics of teleo-reactive programs. We develop rely/guarantee rules that facilitate reasoning about a program and its environment in a compositional manner. We present several theorems for simplifying proofs of teleo-reactive programs and present a partially mechanised method for proving progress properties of goal-directed agents. Brijesh Dongol, Ian J. Hayes, Peter J. Robinson 0001 |
Formal Aspects Comput. | 2 |
| 2014 | Deriving real-time action systems with multiple time bands using algebraic reasoning
Brijesh Dongol, Ian J. Hayes, John Derrick |
Sci. Comput. Program. | 2 |
| 2013 | Path-Sensitive Data Flow Analysis Simplified
Kirsten Winter, Chenyi Zhang 0001, Ian J. Hayes, Nathan Keynes, Cristina Cifuentes |
ICFEM | 3 |
| 2013 | Visuocode: A software development environment that supports spatial navigation and compositionabstractNavigating through software is an integral part of software development. Studies have identified that during navigation programmers often become disoriented and lose task awareness. To mitigate this, the method-flow visualisation technique displays traversed methods in adjacent editor columns. This paper presents the Visuocode software development environment, which is an implementation of method-flow that, in addition to navigation, supports program composition. Daniel R. Bradley, Ian J. Hayes |
VISSOFT | 2 |
| 2013 | Comparing Degrees of Non-Determinism in Expression EvaluationabstractExpression evaluation in programming languages is normally assumed to be deterministic; however, if an expression involves variables that are being modified by the environment of the process during its evaluation, the result of the evaluation can be non-deterministic. Two common scenarios in which this occurs are concurrent programs within which processes share variables and real-time programs that interact to monitor and/or control their environment. In these contexts, although any particular evaluation of an expression gives a single result, there is a range of possible values that could be returned depending on the relative timing between modification of a variable by the environment and its access within the expression evaluation. To compare the semantics of non-deterministic expression evaluation, one can use the set of possible values the expression evaluation could return. This paper formalizes three approaches to non-deterministic expression evaluation, highlights their commonalities and differences, shows the relationships between the approaches and explores conditions under which they coincide. Modal operators representing that a predicate holds for all possible evaluations and for some possible evaluation are associated with each of the evaluation approaches, and the properties and relationships between these operators are investigated. Furthermore, a link is made to a new notation used in reasoning about interference. Ian J. Hayes, Alan Burns 0001, Brijesh Dongol, Cliff B. Jones |
Comput. J. | 1 |
| 2013 | Deriving real-time action systems in a sampling logic
Brijesh Dongol, Ian J. Hayes |
Sci. Comput. Program. | 2 |
| 2013 | Linking Unifying Theories of Program refinement
Ian J. Hayes, Steve Dunne, Larissa Meinicke |
Sci. Comput. Program. | 1 |
| 2012 | Towards an Algebra for Real-Time Programs
Brijesh Dongol, Ian J. Hayes, Larissa Meinicke, Kim Solin |
RAMiCS | 2 |
| 2012 | Rely/Guarantee Reasoning for Teleo-reactive Programs over Multiple Time Bands
Brijesh Dongol, Ian J. Hayes |
IFM | 2 |
| 2012 | Deriving Real-Time Action Systems Controllers from Multiscale System Specifications
Brijesh Dongol, Ian J. Hayes |
MPC | 2 |
| 2011 | A semantics for Behavior Trees using CSP with specification commands
Robert Colvin, Ian J. Hayes |
Sci. Comput. Program. | 2 |
| 2010 | Invariants and Well-Foundedness in Program Algebra
Ian J. Hayes |
ICTAC | 1 |
| 2010 | Compositional Action System Derivation Using Enforced Properties
Brijesh Dongol, Ian J. Hayes |
MPC | 2 |
| 2010 | Unifying Theories of Programming That Distinguish Nontermination and Abort
Ian J. Hayes, Steve Dunne, Larissa Meinicke |
MPC | 1 |
| 2010 | Integrating Requirements: The Behavior Tree PhilosophyabstractBehavior Trees were invented by Geoff Dromey as a graphical modelling notation. Their design was driven by the desire to ease the task of capturing functional system requirements and to bridge the gap between an informal language description and a formal model. Vital to Dromey's intention is the idea of incrementally building the model out of its building blocks, the functional requirements. This is done by graphically representing each requirement as its own Behavior Tree and incrementally merging the trees to form a more complete model of the system. In this paper we investigate the essence of this constructive approach to creating a model in general notation-independent terms and discuss its advantages and disadvantages. The result can be seen as a framework of rules and provides us with a semantic underpinning of requirements integration. Integration points are identified by examining the (implicit or explicit) preconditions of each requirement. We use Behavior Trees as an example of how this framework can be put into practise. Kirsten Winter, Ian J. Hayes, Robert Colvin |
SEFM | 2 |
| 2010 | A timeband framework for modelling real-time systems
Alan Burns 0001, Ian J. Hayes |
Real Time Syst. | 2 |
| 2009 | CSP with Hierarchical State
Robert Colvin, Ian J. Hayes |
IFM | 2 |
| 2008 | Probabilistic Choice in Refinement Algebra
Larissa Meinicke, Ian J. Hayes |
MPC | 2 |
| 2008 | Algebraic reasoning for probabilistic action systems and while-loops
Larissa Meinicke, Ian J. Hayes |
Acta Informatica | 2 |
| 2008 | Calculating modules in contextual logic program refinementabstractAbstract The refinement calculus for logic programs is a framework for deriving logic programs from specifications. It is based on a wide-spectrum language that can express both specifications and code, and a refinement relation that models the notion of correct implementation. In this paper we extend and generalise earlier work on contextual refinement. Contextual refinement simplifies the refinement process by abstractly capturing the context of a subcomponent of a program, which typically includes information about the values of the free variables. This paper also extends and generalises module refinement. A module is a collection of procedures that operate on a common data type; module refinement between a specification module A and an implementation module C allows calls to the procedures of A to be systematically replaced with calls to the corresponding procedures of C. Based on the conditions for module refinement, we present a method for calculating an implementation module from a specification module. Both contextual and module refinement within the refinement calculus have been generalised from earlier work and the results are presented in a unified framework. Robert Colvin, Ian J. Hayes, Paul A. Strooper |
Theory Pract. Log. Program. | 2 |
| 2007 | Procedures and parameters in the real-time program refinement calculus
Ian J. Hayes |
Sci. Comput. Program. | 1 |
| 2006 | Reasoning Algebraically About Probabilistic Loops
Larissa Meinicke, Ian J. Hayes |
ICFEM | 2 |
| 2006 | Continuous Action System Refinement
Larissa Meinicke, Ian J. Hayes |
MPC | 2 |
| 2005 | A theory for execution-time derivation in real-time programs
Karl Lermer, Colin J. Fidge, Ian J. Hayes |
Theor. Comput. Sci. | 3 |
| 2004 | An Environment for Building a System out of its Requirements
Cameron Smith, Kirsten Winter, Ian J. Hayes, R. Geoff Dromey, Peter A. Lindsay, David A. Carrington |
ASE | 3 |
| 2003 | Programs as Paths: An Approach to Timing Constraint Analysis
Ian J. Hayes |
ICFEM | 1 |
| 2003 | Linear Approximation of Execution-Time ConstraintsabstractAbstract. This paper defines an algorithm for predicting worst-case and best-case execution times, and determining execution-time constraints of control-flow paths through real-time programs using their partial correctness semantics. The algorithm produces a linear approximation of path traversal conditions, worst-case and best-case execution times and strongest postconditions for timed paths in abstract real-time programs. Also shown are techniques for determining the set of control-flow paths with decidable worst-case and best-case execution times. The approach is based on a weakest liberal precondition semantics and relies on supremum and infimum calculations similar to standard computations from linear programming and Presburger arithmetic. The methodology is applicable to any executable language with a predicate transformer semantics and hence provides a verification basis for both high-level language and assembly code execution-time analysis. Karl Lermer, Colin J. Fidge, Ian J. Hayes |
Formal Aspects Comput. | 3 |
| 2002 | Refining Object-Oriented Invariants and Dynamic ConstraintsabstractAn invariant is a constraint on a class which holds for each externally accessible state of its instances. A dynamic constraint is a dual-state property dictating before to after state behaviour that all methods must adhere to. Both invariants and dynamic constraints are of practical benefit as they allow explicit declaration of high-level behavioural constraints on a class and all its sub-classes. In this paper, formalisations of invariants and dynamic constraints are provided in the refinement calculus. Each is separated into coerced (specification) and extant (implemented or documentation) categories. Refinement rules are provided for strengthening invariants and dynamic constraints. Two separate development paths are identified: (behavioural) sub-classing and private refinement. Refining a class may violate its invariant or dynamic constraint. Sub-classing is a constrained form of refinement that maintains these properties. Revised refinement laws are provided. Private refinement is an alternative to (behavioural) sub-classing. It also maintains properties such as invariants and dynamics constraints and foregoes the constraints of sub-classing. The disadvantage is that private refinement can only be used to implement a class. Jamie Shield, Ian J. Hayes |
APSEC | 2 |
| 2002 | Towards a Refinement Calculus for Concurrent Real-Time Programs
Sibylle Peuker, Ian J. Hayes |
ICFEM | 2 |
| 2002 | Reasoning about Timeouts
Ian J. Hayes |
MPC | 1 |
| 2002 | An Introduction to Real-Time Object-ZabstractAbstract. This paper presents Real-Time Object-Z: an integration of the object-oriented, state-based specification language Object-Z with the timed trace notation of the timed refinement calculus. This integration provides a method of formally specifying and refining systems involving continuous variables and real-time constraints. The basis of the integration is a mapping of the existing Object-Z history semantics to timed traces. Graeme Smith 0001, Ian J. Hayes |
Formal Aspects Comput. | 2 |
| 2002 | Reasoning about real-time repetitions: terminating and nonterminating
Ian J. Hayes |
Sci. Comput. Program. | 1 |
| 2002 | A refinement calculus for logic programsabstractExisting refinement calculi provide frameworks for the stepwise development of imperative programs from specifications. This paper presents a refinement calculus for deriving logic programs. The calculus contains a wide-spectrum logic programming language, including executable constructs such as sequential conjunction, disjunction, and existential quantification, as well as specification constructs such as general predicates, assumptions and universal quantification. A declarative semantics is defined for this wide-spectrum language based on executions. Executions are partial functions from states to states, where a state is represented as a set of bindings. The semantics is used to define the meaning of programs and specifications, including parameters and recursion. To complete the calculus, a notion of correctness-preserving refinement over programs in the wide-spectrum language is defined and refinement laws for developing programs are introduced. The refinement calculus is illustrated using example derivations and prototype tool support is discussed. Ian J. Hayes, Robert Colvin, David Hemer, Paul A. Strooper, Ray Nickson |
Theory Pract. Log. Program. | 1 |
| 2001 | A sequential real-time refinement calculus
Ian J. Hayes, Mark Utting |
Acta Informatica | 1 |
| 2000 | Reasoning about real-time programs using idle-invariant assertionsabstractWe develop a set of laws for reasoning about real-time programs using assertions (preconditions and postconditions) in the style of Hoare. In the real-time context assertions may refer to the current time and to the value of external inputs, which are not under the direct control of the program and hence not guaranteed to be stable with respect to the passage of time (even if the program does not modify any of the variables under its control). Hence in order to reason about real-time programs, we make use of idle-invariant assertions: assertions that are invariant to just the passage of time. Ian J. Hayes |
APSEC | 1 |
| 2000 | Structuring Real-Time Object-Z Specifications
Graeme Smith 0001, Ian J. Hayes |
IFM | 2 |
| 2000 | Reasoning about Non-terminating Loops Using Deadline Commands
Ian J. Hayes |
MPC | 1 |
| 1999 | Towards Real-Time Object-Z
Graeme Smith 0001, Ian J. Hayes |
IFM | 2 |
| 1998 | Defining Differentiation and Integration in ZabstractWe show how familiar mathematical concepts from differential and integral calculus can be represented in the Z specification language. Digital computer systems involve hardware devices and software variables that can adopt a limited range of values only, and may be temporarily inaccessible or ill-defined. Emphasis is therefore given to supporting discrete range types and partial functions. Colin J. Fidge, Ian J. Hayes, Brendan P. Mahony |
ICFEM | 2 |
| 1998 | A Set-Theoretic Model for Real-Time Specification and Reasoning
Colin J. Fidge, Ian J. Hayes, Andrew P. Martin, Axel Wabenhorst |
MPC | 2 |
| 1998 | A Program Refinement ToolabstractAbstract. The refinement calculus for the development of programs from specifications is well suited to mechanised support. We review the requirements for tool support of refinement as gleaned from our experience with existing refinement tools, and report on the design and implementation of a new tool to support refinement based on these requirements. The main features of the new tool are close integration of refinement and proof in a single tool (the same mechanism is used for both), good management of the refinement context, an extensible theory base that allows the tool to be adapted to new application domains, and a flexible user interface. David A. Carrington, Ian J. Hayes, Ray Nickson, Geoffrey Watson, Jim Welsh |
Formal Aspects Comput. | 2 |
| 1998 | Expressive Power of Specification LanguagesabstractAbstract. By abstracting away from a particular specification language and considering a ‘specification’ to be just a set of implementations, one can define a partial order on specification languages that reflects their expressive power. In addition, one can show that there is no universal specification language that can express all such ‘specifications’. Ian J. Hayes |
Formal Aspects Comput. | 1 |
| 1997 | Supporting Contexts in Program Refinement
Ray Nickson, Ian J. Hayes |
Sci. Comput. Program. | 2 |
| 1996 | Supporting Module Reuse in Refinement
Ian J. Hayes |
Sci. Comput. Program. | 1 |
| 1995 | Are Formal Methods Relevant?
Ian J. Hayes, Keijiro Araki, David J. Duke, Val E. Veraart |
APSEC | 1 |
| 1995 | Using Units of Measurement in Formal SpecificationsabstractAbstract In the physical sciences and engineering, units of measurement provide a valuable aid to both the exposition and comprehension of physical systems. In addition, they provide an error checking facility comparable to static type checking commonly found with programming languages. It is argued that units of measurement can provide similar benefits in the specification and design of software and computer systems. To demonstrate this, we present an extension of the Z specification notation with support for the incorporation of units in specifications and demonstrate the feasibility of static dimensional analysis of the resulting language. Ian J. Hayes, Brendan P. Mahony |
Formal Aspects Comput. | 1 |
| 1995 | Specification by Interface SeparationabstractAbstract In specifying an operation it is often advantageous to describe it with abstract inputs and outputs whose concrete representation is described separately. For example, it is often convenient to describe as a set, input which in practice occurs as a sequence. The primary advantage of this approach is that one can initially concentrate on specifying an operation without the representations of its interface (that is, its inputs and outputs) obscuring the more important concerns of its abstract functional properties. Interface representations can be tackled independently, after the abstract functionality has been decided. Such separation of an operation into an abstract core and its interface with its environment makes the task of specification simpler, aids clarity of the result, and encourages reuse of both the abstract operation and its interface descriptions. Ian J. Hayes, Jeff W. Sanders |
Formal Aspects Comput. | 1 |
| 1993 | Deriving Modular Designs from Formal Specifications
David A. Carrington, David J. Duke, Ian J. Hayes, Jim Welsh |
SIGSOFT FSE | 3 |
| 1992 | Multi-Relations in Z
Ian J. Hayes |
Acta Informatica | 1 |
| 1992 | VDM and Z: A Comparative Case StudyabstractAbstract The specification notations of VDM and Z are closely related. They both use model-based specification techniques and share a large part of their mathematical notation. However, the approaches taken to writing specifications differ in other, more subtle, ways. We present a comparative case study of VDM and Z for specifying database systems. John Fitzgerald and Cliff Jones in their paper entitled “Modularising the formal description of a database system” in the proceedings of VDM '90: VDM and Z (LNCS Vol. 428, Springer-Verlag) provide the basis for the comparison. We present equivalent Z specifications to the VDM specifications contained in their paper. The approach taken in writing the Z specifications is to reuse as much as possible of the Z mathematical toolkit and to build the system specification from specifications of components of the system. In their paper, Fitzgerald and Jones emphasise their modularisation facilities. While the facilities for modularisation in Z are not as powerful, they are adequate for the specification of the database systems presented. Ian J. Hayes |
Formal Aspects Comput. | 1 |
| 1992 | A Case-Study in Timed Refinement: A Mine PumpabstractA specification and top-level refinement of a simple mine pump control system, as well as a proof of correctness of the refinement, are presented as an example of the application of a formal method for the development of time-based systems. The overall approach makes use of a refinement calculus for timed systems, similar to the refinement calculi for sequential programs. The specification makes use of topologically continuous functions of time to describe both analog and discrete properties of both the system and its refinements. The basic building block of specifications is a specification statement that gives a clear separation between the specification of the assumptions that the system may make about the environment in which it is to be placed, and the effect the system is guaranteed to achieve if placed in such an environment. The top-level refinement of the system is developed by application of refinement laws that allow design decisions to be made, local state to be introduced, and the decomposition of systems into pipelined and/or parallel processes.> Brendan P. Mahony, Ian J. Hayes |
IEEE Trans. Software Eng. | 2 |
| 1986 | Specification Directed Module TestingabstractIf a program is developed from a specification in a mathematically rigorous manner, work done in the development can be utilized in the testing of the program. The better understanding afforded by these methods provides a more thorough check on the correct operation of the program under test. This should lead to earlier detection of faults (making it easier to determine their causes), more useful debugging information, and a greater confidence in the correctness of the final product. Overall, a more systematic approach should expedite the task of the program tester and improve software reliability. The testing techniques described here apply to the testing of abstract data types (modulus, packages). The techniques utilize information generated during refinement of a data type, such as the data type invariant and the relationship between the specification and implementation states; this information is used to specify parts of the code to be written for testing. Ian J. Hayes |
IEEE Trans. Software Eng. | 1 |
| 1985 | Applying Formal Specification to Software Development in IndustryabstractThis paper reports experience gained in applying formal specification techniques to an existing transaction processing system. The system is the IBM Customer Information Control System (CICS) and the work has concentrated on specifying a number of modules of the CICS application programmer's interface. Ian J. Hayes |
IEEE Trans. Software Eng. | 1 |