Results 1  10
of
27
Fusion and Simultaneous Execution in the Refinement Calculus
 Acta Informatica
, 1997
"... In the refinement calculus, program statements are modelled as predicate transformers. A product operator for predicate transformers was introduced by Martin [18] and Naumann [25] using category theoretic considerations. ..."
Abstract

Cited by 12 (2 self)
 Add to MetaCart
In the refinement calculus, program statements are modelled as predicate transformers. A product operator for predicate transformers was introduced by Martin [18] and Naumann [25] using category theoretic considerations.
Calculational Derivation of Pointer Algorithms from Tree Operations
 Science of Computer Programming
, 1998
"... We describe an approach to the derivation of correct algorithms on treebased pointer structures. The approach is based on enriching trees in a way that allows us to model commonlyused pointer manipulations on tree structures. ..."
Abstract

Cited by 9 (1 self)
 Add to MetaCart
We describe an approach to the derivation of correct algorithms on treebased pointer structures. The approach is based on enriching trees in a way that allows us to model commonlyused pointer manipulations on tree structures.
Structured Formal Development in Isabelle
 NORDIC JOURNAL OF COMPUTING
, 2006
"... General purpose theorem provers provide advanced facilities for proving properties about specifications, and may therefore be a valuable tool in formal program development. However, these provers generally lack many of the useful structuring mechanisms found in functional programming or specificatio ..."
Abstract

Cited by 6 (2 self)
 Add to MetaCart
General purpose theorem provers provide advanced facilities for proving properties about specifications, and may therefore be a valuable tool in formal program development. However, these provers generally lack many of the useful structuring mechanisms found in functional programming or specification languages. This paper presents a constructive approach to adding theory morphisms and parametrisation to theorem provers, while preserving the proof support and consistency of the prover. The approach is implemented in Isabelle and illustrated by examples of an algorithm design rule and of the modular development of computational effects for imperative language features based on monads.
On Integrating Deductive Synthesis and Verification Systems
, 2013
"... We describe techniques for synthesis and verification of recursive functional programs over unbounded domains. Our techniques build on top of an algorithm for satisfiability modulo recursive functions, a framework for deductive synthesis, and complete synthesis procedures for algebraic data types. W ..."
Abstract

Cited by 3 (3 self)
 Add to MetaCart
We describe techniques for synthesis and verification of recursive functional programs over unbounded domains. Our techniques build on top of an algorithm for satisfiability modulo recursive functions, a framework for deductive synthesis, and complete synthesis procedures for algebraic data types. We present new counterexampleguided algorithms for constructing verified programs. We have implemented these algorithms in an integrated environment for interactive verification and synthesis from relational specifications. Our system was able to synthesize a number of useful recursive functions that manipulate unbounded numbers and data structures.
Executing Specifications using Synthesis and Constraint Solving
"... Abstract. Specifications are key to improving software reliability as well as documenting precisely the intended behavior of software. Writing specifications is still perceived as expensive. Of course, writing implementations is at least as expensive, but is hardly questioned because there is curren ..."
Abstract

Cited by 2 (1 self)
 Add to MetaCart
Abstract. Specifications are key to improving software reliability as well as documenting precisely the intended behavior of software. Writing specifications is still perceived as expensive. Of course, writing implementations is at least as expensive, but is hardly questioned because there is currently no real alternative. Our goal is to give specifications a more balanced role compared to implementations, enabling the developers to compile, execute, optimize, and verify against each other mixed code fragments containing both specifications and implementations. To make specification constructs executable we combine deductive synthesis with runtime constraint solving, in both cases leveraging modern SMT solvers. Our tool decomposes specifications into simpler fragments using a costdriven deductive synthesis framework. It compiles as many fragments as possible into conventional functional code; it executes the remaining fragments by invoking our constraint solver that extends an SMT solver to handle recursive functions. Using this approach we were able to execute constraints that describe the desired properties of integers, sets, maps and algebraic data types. 1
Functional procedures in higherorder logic
 Theorem Proving in Higher Order Logics, volume 1896 of Lect. Notes in Comp. Sci
, 1999
"... In this paper we present an approach for modelling functional procedures (as they occur in imperative programming languages) in a weakest precondition framework. Functional procedures are modelled in their full generality � thus the body of a functional procedure can be built using standard speci ca ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
In this paper we present an approach for modelling functional procedures (as they occur in imperative programming languages) in a weakest precondition framework. Functional procedures are modelled in their full generality � thus the body of a functional procedure can be built using standard speci cation syntax, including nondeterminism, sequential composition, conditionals and loops. We integrate our theory of functional procedures into the existing mechanisation of the re nement calculus in the HOL system. To make formal reasoning possible, we derive correctness rules for functional procedures and their calls. Weshow also how recursive functional procedures can be handled according to our approach. Finally,weprovide a nontrivial example of reasoning about a recursive procedure for binary search.
Compilation of specifications
 In Proceedings.of the Eighth AsiaPacific Software Engineering Conference (APSEC 2001
, 2001
"... reports are available via anonymous ftp, from svrc.it.uq.edu.au in the directory /pub/techreports. Abstracts and compressed postscript files are available via ..."
Abstract

Cited by 2 (1 self)
 Add to MetaCart
reports are available via anonymous ftp, from svrc.it.uq.edu.au in the directory /pub/techreports. Abstracts and compressed postscript files are available via
ComputerAided Development of a RealTime Program
, 2000
"... The refinement calculus is a wellestablished theory for formal development of imperative program code and is supported by a number of automated tools. Via a detailed case study, this article shows how refinement theory and tool support can be extended for a program with realtime constraints. The a ..."
Abstract

Cited by 2 (1 self)
 Add to MetaCart
The refinement calculus is a wellestablished theory for formal development of imperative program code and is supported by a number of automated tools. Via a detailed case study, this article shows how refinement theory and tool support can be extended for a program with realtime constraints. The approach adapts a timed variant of the refinement calculus and makes corresponding enhancements to a theoremprover based refinement tool.
The variety of variables in computeraided realtime programming
 Refine 2002: Proceedings of the BCS/FACS Refinement Workshop, volume 70(3) of Electronic Notes in Theoretical Computer Science
, 2002
"... The refinement calculus is a wellestablished theory for translating specifications to program code. Recent research has extended the calculus to handle realtime requirements and we have developed an interactive support tool based on these extensions. Via a case study, this paper shows how the tool ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
The refinement calculus is a wellestablished theory for translating specifications to program code. Recent research has extended the calculus to handle realtime requirements and we have developed an interactive support tool based on these extensions. Via a case study, this paper shows how the tool helps the programmer by supporting the many forms of variables used in the theory. These include simple state variables as in the untimed calculus, timedtrace variables that model the evolution of properties over time, and auxiliary variables that exist to support formal reasoning only. 1