Labs/RailCheck
Make the station safe
Select the rules the railway dispatcher must follow; Artificial Intelligence translates each rule to logic. Next, the theorem prover Foras, attempts to verify every order of moves that the rules allow. The simulation exposes any dangerous moves that the set of rules allow.
- You choose the rules
- AI converts rules into logic
- Foras verifies the logic
- Simulation exposes dangerous logic
Verification
Remember: once you're done experimenting with rules, apply them to the Groningen Network!
The Rules
Switch rules on or off. Foras checks all the rules that are on together, then shows the verdict and the board.The Logic
Compare each line with its rule in English. An AI wrote it once and it never changes, so a flaw in the wording stays here.The Verdict
Read the verdict for the rules that are on. Press Play or Step on the board to watch the moves listed here: the crash, or a safe way home. After a crash, switch on the rule named under "Would have stopped it".Foras 0.4.0 · Every answer cross-checked by an independent brute-force search.
The rules on a network
The same rules, read for a whole network: every junction, every signal, every tram.
20 simulated mornings
Score per morning: +1 for every tram on time, −1 for every tram 10 min late or missing. No score if anything collides or goes the wrong way. Each rule costs the signaller time; choose the rules and how often the trams run.
Route Table
Derived from the layout, not typed: for each signal, the route it protects, the sections and points that route needs, and the routes it must never run with.
Safety Properties
The collision is one property of seven. Each is proved on its own for the rules ticked above; a violation is a trace you can replay on the board.
Interlocking Code
The rules checked above define the interlocking’s command permissions. Each command was generated from a single expression, compiled, and verified against the clauses Foras proved. We offer three different representations of the interlocking code, and each can be downloaded