Event-B ist die Weiterentwicklung der B-Methode für reaktive, nebenläufige und verteilte Systeme. Jean-Raymond Abrial entwickelte sie in den 2000er-Jahren zusammen mit der Rodin-Plattform, einer Open-Source-IDE auf Eclipse-Basis. Statt Operationen stehen hier Ereignisse (Events) im Mittelpunkt — sie eignen sich dadurch besonders für Systeme, die auf Umgebungsreize reagieren, wie Protokolle, Eisenbahnsicherung oder Blockchain-Konsens.
Modellierungssprache
Ein Event-B-Modell trennt Maschinen (dynamischer Teil) und Kontexte (statischer Teil mit Mengen und Konstanten). Eine Maschine deklariert Variablen, eine Invariante und Events. Jedes Event besteht aus Wachen (grd, Guards: Bedingungen, wann es feuern darf) und Aktionen (act, die die Variablen ändern). Die zugrunde liegende Mathematik ist Mengenlehre und Prädikatenlogik — dieselbe Basis wie die Z-Notation.
Verfeinerung und Beweisverpflichtungen
Das Herzstück ist die schrittweise Verfeinerung: Abstrakte Events werden in konkretere zerlegt, dabei entstehen automatisch Beweisverpflichtungen — Invariantenerhalt, Guard-Verschärfung und Simulationstreue. Die Rodin-Plattform erzeugt diese Proof Obligations und bietet automatische und interaktive Beweisführung (u. a. über SMT-Löser), Animation und Model Checking über das ProB-Plugin.
rodin # Rodin-Plattform starten (Eclipse-basiert)
# Modellkomponenten: .bum (Maschine), .buc (Kontext)
# Events: event name, grd1: ..., act1: ...
# Proof Obligations: automatisch nach Speichern; Auto-Prover + SMT
Einordnung
Event-B wird industriell und in der Forschung eingesetzt, etwa zur Verifikation von Blockchain-Konsensmechanismen und Sicherheitsprotokollen. Es ergänzt klassische Model Checker wie NuSMV und SPIN um deduktive Verifikation und ist eng mit Z-Notation, VDM und Alloy verwandt.
Verwandte Grundlagen: Python-Befehle (ProB/Modell-Automation), TLA+ (Alternativ-Ansatz für reaktive Systeme).