Results 1  10
of
17
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 17 (6 self)
 Add to MetaCart
(Show Context)
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.
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 14 (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
(Show Context)
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.
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
(Show Context)
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
(Show Context)
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
(Show Context)
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
Verified Calculations
, 2013
"... Calculational proofs—proofs by stepwise formula manipulation—are praised for their rigor, readability, and elegance. It seems desirable to reuse this style, often employed on paper, in the context of mechanized reasoning, and in particular, program verification. This work leverages the power of SMT ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
Calculational proofs—proofs by stepwise formula manipulation—are praised for their rigor, readability, and elegance. It seems desirable to reuse this style, often employed on paper, in the context of mechanized reasoning, and in particular, program verification. This work leverages the power of SMT solvers to machinecheck calculational proofs at the level of detail they are usually written by hand. It builds the support for calculations into the programming language and autoactive program verifier Dafny. The paper demonstrates that calculations integrate smoothly with other language constructs, producing concise and readable proofs in a wide range of problem domains: from mathematical theorems to correctness of imperative programs. The examples show that calculational proofs in Dafny compare favorably, in terms of readability and conciseness, with arguments written in other styles and proof languages.
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
(Show Context)
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.