Results 1  10
of
13
Proof Style
 University of Cambridge Computer Laboratory
, 1997
"... We are concerned with how to communicate a mathematical proof to a computer theorem prover. This can be done in many ways, while allowing the machine to generate a completely formal proof object. The most obvious choice is the amount of guidance required from the user, or from the machine perspe ..."
Abstract

Cited by 13 (3 self)
 Add to MetaCart
We are concerned with how to communicate a mathematical proof to a computer theorem prover. This can be done in many ways, while allowing the machine to generate a completely formal proof object. The most obvious choice is the amount of guidance required from the user, or from the machine perspective, the degree of automation provided. But another important consideration, which we consider particularly significant, is the bias towards a `procedural' or `declarative' proof style. We will explore this choice in depth, and discuss the strengths and weaknesses of declarative and procedural styles for proofs in pure mathematics and for verification applications. We conclude with a brief summary of our own experiments in trying to combine both approaches. This is the text accompanying my invited talk at the European BRA Types annual meeting in Aussois. This talk was given on the 16th of December 1996, and the present text has been slightly modified in the light of some of the subs...
Reasoning Algebraically about Loops
 ACTA INFORMATICA
, 1997
"... We show how to formalise different kinds of loop constructs within the refinement calculus, and how to use this formalisation to derive general transformation rules for loop constructs. The emphasis is on using algebraic methods for reasoning about equivalence and refinement of loop constructs, rath ..."
Abstract

Cited by 13 (4 self)
 Add to MetaCart
We show how to formalise different kinds of loop constructs within the refinement calculus, and how to use this formalisation to derive general transformation rules for loop constructs. The emphasis is on using algebraic methods for reasoning about equivalence and refinement of loop constructs, rather than operational ways of reasoning about loops in terms of their execution sequences. We apply the algebraic reasoning techniques to derive a collection of transformation rules for action systems an for guarded loops. These include transformation rules that have been found important in practical program derivations: data refinement and atomicity refinement of action systems; and merging, reordering, and data refinement of loops with stuttering transitions.
Calculational Reasoning Revisited  An Isabelle/Isar experience
 THEOREM PROVING IN HIGHER ORDER LOGICS: TPHOLS 2001
, 2001
"... We discuss the general concept of calculational reasoning within Isabelle/Isar, which provides a framework for highlevel natural deduction proofs that may be written in a humanreadable fashion. Setting out from a few basic logical concepts of the underlying metalogical framework of Isabelle, such ..."
Abstract

Cited by 13 (5 self)
 Add to MetaCart
We discuss the general concept of calculational reasoning within Isabelle/Isar, which provides a framework for highlevel natural deduction proofs that may be written in a humanreadable fashion. Setting out from a few basic logical concepts of the underlying metalogical framework of Isabelle, such as higherorder unification and resolution, calculational commands are added to the basic Isar proof language in a flexible and nonintrusive manner. Thus calculational proof style may be combined with the remaining natural deduction proof language in a liberal manner, resulting in many useful proof patterns. A casestudy on formalizing Computational Tree Logic (CTL) in simplytyped settheory demonstrates common calculational idioms in practice.
Encoding, Decoding, and Data Refinement
 FORMAL ASPECTS OF COMPUTING
, 1999
"... Data refinement is the systematic replacement of a data structure with another one in program development. Data refinement between program statements can on an abstract level be described as a commutativity property where the abstraction relationship between the data structures involved is represent ..."
Abstract

Cited by 7 (4 self)
 Add to MetaCart
Data refinement is the systematic replacement of a data structure with another one in program development. Data refinement between program statements can on an abstract level be described as a commutativity property where the abstraction relationship between the data structures involved is represented by an abstract statement (a decoding). We generalise the traditional notion of data refinement by defining an encoding operator that describes the least (most abstract) data refinement with respect to a given abstraction. We investigate the categorical and algebraic properties of encoding and describe a number of special cases, which include traditional notions of data refinement. The dual operator of encoding is decoding, which we investigate and give an intuitive interpretation to. Finally we show a number of applications of encoding and decoding.
Doing High School Mathematics Carefully
, 1997
"... We show how solutions to typical problems of High School and firstyear University mathematics can be written using structured derivations. Such a derivation extends the calculational proof format with subderivations that allow inferences to presented at different levels of detail. By using structur ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
We show how solutions to typical problems of High School and firstyear University mathematics can be written using structured derivations. Such a derivation extends the calculational proof format with subderivations that allow inferences to presented at different levels of detail. By using structured derivations and a minimal amount of logical syntax, we can write solution to typical problems in algebra but also in, e.g., real analysis. We argue why structured derivations give students a better grasp of problem solutions and better possibilities to reread and discuss solutions afterwards, as compared with traditional informal approaches to writing down solutions. TUCS Research Group Programming Methodology Research Group 1 Introduction We are concerned with the way in which High School mathematics is taught. In our view, a more careful use of logical derivations would make the material easier to grasp, and would enhance the manipulative skill of the students. In this paper, we fir...
TAS  A Generic Window Inference System
"... This paper presents work on technology for transformational proof and program development, as used by window inference calculi and transformation systems. The calculi are characterised by a certain class of theorems in the underlying logic. Our transformation system TAS compiles these rules to concr ..."
Abstract

Cited by 2 (2 self)
 Add to MetaCart
This paper presents work on technology for transformational proof and program development, as used by window inference calculi and transformation systems. The calculi are characterised by a certain class of theorems in the underlying logic. Our transformation system TAS compiles these rules to concrete deduction support, complete with a graphical user interface with commandlanguagefree user interaction by gestures like drag&drop and proofbypointing, and a development management for transformational proofs. It is generic in the sense that it is completely independent of the particular window inference or transformational calculus, and can be instantiated to many different ones; three such instantiations are presented in the paper.
Teaching the construction of correct programs using invariant based programming
 In SEEFM07: SouthEast European Worshop on Formal Methods, Thessaloniki
, 2007
"... Abstract. In most computer science curricula, formal reasoning about program correctness is taught separately from practical programming, and is thus by most students considered a purely theoretical activity. It has been a challenge to convince students of the practical applicability of formal metho ..."
Abstract

Cited by 2 (1 self)
 Add to MetaCart
Abstract. In most computer science curricula, formal reasoning about program correctness is taught separately from practical programming, and is thus by most students considered a purely theoretical activity. It has been a challenge to convince students of the practical applicability of formal methods. We present here an effort to apply Invariant Based Programming (IBP), a visual and practical program construction and verification methodology, in an introductory formal methods course as part of a pilot study at ˚Abo Akademi University. The course introduces a minimum of notational overhead, and allows the student to reason about correctness using mathematical concepts with which they are already familiar (such as set theory). We have used a programming environment with theorem prover support (SOCOS) to increase student confidence in the correctness of the program components that they construct. We evaluate the course using a mixed method approach, and provide data which show that IBP is well suited for teaching introductory formal methods. 1
Structured Derivations: a Method for Doing HighSchool Mathematics Carefully
, 1999
"... We show how solutions to typical problems of High School and firstyear University Mathematics can be written using structured derivations. Such a derivation extends the calculational proof format with subderivations that allow inferences to presented at different levels of detail. They also constit ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
We show how solutions to typical problems of High School and firstyear University Mathematics can be written using structured derivations. Such a derivation extends the calculational proof format with subderivations that allow inferences to presented at different levels of detail. They also constitute a new paradigm where the whole solution process is viewed as an object that can be discussed and manipulated. By using structured derivations and a minimal amount of logical syntax, we can write solution to typical problems in not only algebra and equation solving but also in, e.g., real analysis. We argue why structured derivations give students a better grasp of problem solutions and better possibilities to reread and discuss solutions afterwards, as compared with traditional informal approaches to writing down solutions.
An Interactive Metatool for Exploring Program Algebras
, 1999
"... We describe how anexisting tool is extended to allow exploratory reasoning in program algebras with theorem proving support. The existing tool (TkWinHOL and the Re nement Calculator) provides a graphical user interface to the window inference reasoning system for the HOL theorem prover. We show how ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
We describe how anexisting tool is extended to allow exploratory reasoning in program algebras with theorem proving support. The existing tool (TkWinHOL and the Re nement Calculator) provides a graphical user interface to the window inference reasoning system for the HOL theorem prover. We show how a user with a small amount ofwork can build an extension to this tool, which can then be used to build, interactively and stepbystep, a whole theory for the program algebra in question. The ideas are illustrated with an extension for a simple whilelanguage.