Skip to content

Benchmarks

Cleanroom airlock door interlock

suite id airlock_pressure_interlock
domain building_automation
language ST
difficulty easy
validation status candidate
origin authored
license CC-BY-4.0

Authored for the esbmc-plc-benchmark-suite as a clean peer-actuator mutual_exclusion example, the corpus's dominant shape for that kind, included for breadth rather than to target a known failure.

What is proved

From benchmarks/building_automation/airlock_pressure_interlock/props.yaml. What each kind claims, and what it becomes on either route, is on The properties we prove.

id kind claim requirement
P1 mutual_exclusion never true together: inner_unlocked, outer_unlocked The inner and outer airlock doors must never both be unlocked at the same time, to maintain pressure differential and contamination control.
P2 reachability reachable: inner_unlocked && outer_unlocked Trigger synthesis: a witness recovers the case where both doors are unlocked simultaneously, matching the seeded defect that lets a stale request bypass the cycle_busy interlock on one side.

Variants

file expected verdict violates method
clean.st SAFE none expert
bomb.st VIOLATION P1 fault-injection

Files

file what it is size sha256
benchmark.yml benchmark metadata 1.2 KB f90a890aad87
bomb.st structured text 1.4 KB 75c32945d1f0
clean.st structured text 1.1 KB 63e5d8a9009c
props.yaml property file 0.6 KB 8effd5efd8db

Recorded runs

A task can carry two routes. ld is ESBMC's ladder front end reading the program directly. via C is the same solver reached through Beremiz and MatIEC, which is the only route that reaches ST, IL, FBD and SFC; see How ESBMC-PLC works.

No ESBMC run is recorded against this task yet. The lessons carry the recorded runs; see Reproducing to make your own.