Book contents
- Frontmatter
- Foreword
- Introduction
- Acknowledgements
- What is B?
- Contents
- I Mathematics
- 1 Mathematical Reasoning
- 2 Set Notation
- 3 Mathematical Objects
- II Abstract Machines
- III Programming
- IV Refinement
- Appendix A Summary of Notations
- Appendix B Syntax
- Appendix C Definitions
- Appendix D Visibility Rules
- Appendix E Rules and Axioms
- Appendix F Proof Obligations
- Index
1 - Mathematical Reasoning
Published online by Cambridge University Press: 21 January 2010
- Frontmatter
- Foreword
- Introduction
- Acknowledgements
- What is B?
- Contents
- I Mathematics
- 1 Mathematical Reasoning
- 2 Set Notation
- 3 Mathematical Objects
- II Abstract Machines
- III Programming
- IV Refinement
- Appendix A Summary of Notations
- Appendix B Syntax
- Appendix C Definitions
- Appendix D Visibility Rules
- Appendix E Rules and Axioms
- Appendix F Proof Obligations
- Index
Summary
When doing mathematics, people prove assertions. This is accomplished with the implicit or explicit help of some rules of reasoning admitted, for quite a long time, to be the correct rules of reasoning. Our goal, in this chapter, is to make absolutely precise what such rules are, so that, in principle, if not in practice, the activity of proving could be made checkable by a robot.
The reason why we insist, in this first chapter, on the very precise definition of what mathematical reasoning is, must be clear. Our eventual aim is to have a significant part of software systems constructed in a way that is guaranteed by proofs. Most of the time such proofs are, mathematically speaking, not very deep; however, there will be many of them. Hence, it will be quite easy to introduce errors in doing them, in very much the same way as people introduce errors in writing programs. There is, clearly, no gain in just shifting the production of errors from programs to proofs. Fortunately, however, there exists an important distinction between programs and proofs. Both are formal texts, but, provided the foundation for proofs is sufficiently elaborate (hence this chapter), then proofs can always be checked mechanically for correctness, whereas programs cannot.
This chapter is organized as follows. In the first section, we introduce the way mathematical conjectures are presented and the way such conjectures can be eventually proved. This is done independently of any precise mathematical domain.
- Type
- Chapter
- Information
- The B-BookAssigning Programs to Meanings, pp. 3 - 54Publisher: Cambridge University PressPrint publication year: 1996