Rodin Handbook
Handbook Home
Feedback
Email Feedback
Handbook as PDF
Rodin Wiki
Rodin Download
Contact
This work is sponsored by the
Deploy Project
This work is licensed under a
Creative Commons Attribution 3.0 Unported License
User Manual for Rodin v.2.3
User Manual for Rodin v.2.3
User Manual for Rodin v.2.3
Feedback
User Manual for Rodin v.2.3
Work in Progress
Handbook
Rev: 13635
rodin-handbook@formalmind.com
handbook.event-b.org
1 Introduction
1.1 Overview
1.1.1 Formats of this Handbook
1.1.2 Rodin Wiki
1.1.3 Feedback
1.2 Foreword
1.3 Conventions
1.4 Acknowledgements
1.5 DEPLOY
1.6 Creative Commons Legal Code
2 Tutorial
2.1 Outline
2.2 Before Getting Started
2.2.1 Systems Development
2.2.2 Formal Modelling
2.2.3 Predicate Logic
2.2.4 Event-B
2.2.5 Rodin
2.2.6 Eclipse
2.3 Installation
2.3.1 Install Rodin for the first time
2.3.2 Install new plugins
2.4 The First Machine: A Traffic Light Controller
2.4.1 Excursus: The specification process
2.4.2 Project Setup
2.4.3 Camille, a text-based editor
2.4.4 Building the Model
2.4.5 The Final Traffic Light Model
2.5 Mathematical notation
2.5.1 Predicates
2.5.2 Data types
2.5.3 Operations on Sets
2.5.4 Introducing user-defined types
2.5.5 Relations
2.5.6 Arithmetic
2.6 Introducing Contexts
2.6.1 Create a Context
2.6.2 Populate the Context
2.6.3 The Final Context
2.7 Event-B Concepts
2.7.1 Contexts
2.7.2 Machines
2.7.3 Events
2.7.4 Refinement
2.8 Expanding the Traffic Light System: Contexts and Refinement
2.8.1 Data Refinement
2.8.2 A Context with Colours
2.8.3 The Actual Data Refinement
2.8.4 The refined machine with data refinement for peds_go
2.8.5 Witnesses
2.8.6 Discussion
2.8.7 The Refined Machine with All Data Refinement
2.8.8 One more Refinement: The Push Button
2.8.9 Discussion
2.9 Proving
2.9.1 The Celebrity Problem
2.9.2 The Final Second Refinement
2.9.3 The Celebrity algorithm
2.9.4 The First Proof
2.9.5 Proving — an Art or a Science?
2.10 Location Access Controller
2.10.1 Initial Model
2.10.2 First Refinement
2.11 Outlook
3 Reference
3.1 The Rodin Platform
3.1.1 Eclipse in General
3.1.2 The Event-B Perspective
3.1.3 Customizing a perspective suitable for RODIN
3.1.4 The Event-B Editor
3.1.5 The Proving Perspective
3.1.6 Auto Prover
3.1.7 Preferences
3.2 Event-B’s modeling notation
3.2.1 About the notation that we use
3.2.2 Contexts
3.2.3 Machines
3.2.4 Well-definedness proof obligations
3.2.5 Theorems
3.2.6 Generated proof obligations
3.2.7 Visibility of identifiers
3.3 Mathematical Notation
3.3.1 Introduction
3.3.2 Predicates
3.3.3 Booleans
3.3.4 Sets
3.3.5 Relations
3.3.6 Arithmetic
3.3.7 Typing
3.3.8 Assignments
3.4 Proving
3.4.1 Sequents
3.4.2 Proof Rules
3.4.3 Proof Tactics
3.4.4 Provers
3.4.5 How to Use the Provers Effectively
3.4.6 Reasoners
3.4.7 Purging Proofs
4 Frequently Asked Questions
4.1 General Questions
4.1.1 What is Event-B?
4.1.2 What is the difference between Event-B and the B method?
4.1.3 What is Rodin?
4.1.4 Where does the Rodin name come from?
4.1.5 Where I can download Rodin?
4.1.6 How to contribute and develop?
4.2 General Tool Usage
4.2.1 Do I lose my proofs when I clean a project?
4.2.2 How do I install external plug-ins without using Eclipse Update Manager?
4.2.3 The builder takes too long
4.2.4 What are the ASCII shortcuts for mathematical operators
4.2.5 Rodin (and Eclipse) doesn’t take into account the MOZILLA_FIVE_HOME environment variable
4.2.6 No More Handles
4.2.7 Software installation fails
4.3 Modeling
4.3.1 Witness for
Xyz
missing. Default witness generated
4.3.2 Identifier
Xyz
should not occur free in a witness
4.3.3 In
INITIALISATION
, I get Witness
Xyz
must be a disappearing abstract variable or parameter
4.3.4 I’ve added a witness for
Xyz
but it keeps saying “Identifier
Xyz
has not been defined”
4.3.5 How can I create a new Event-B Project?
4.3.6 How to remove a Event-B Project?
4.3.7 How to export an Event-B Project?
4.3.8 How to import a Event-B Project?
4.3.9 How to change the name of a Event-B Project?
4.3.10 How to create a Event-B Component
4.3.11 How to remove a Event-B Component
4.3.12 How to save a Context or a Machine
4.4 Proving
4.4.1 Help! Proving is difficult!
4.4.2 How can I do a Proof by Induction?
4.4.3 Labels of proof tree nodes explained
4.5 Usage Questions
4.5.1 Where did the GUI window go?
4.5.2 Where vs. When: What’s going on?
5 Index