Skip to content

Benchmarks

Batch mixer lid/stall dual interlock

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

Authored alongside elevator_door_motion_interlock and breaker_earth_trip_interlock to give the corpus's 2-invariant-plus-reachability-witness shape enough repetition to be learned; kiln_door_lockout was previously the only such example and the model failed to reproduce it in training. This variant uses two different actuators (agitator, heater) for the two hazards, a third structural variant from the shared-actuator shape used by the other two. See ml/README.md.

What is proved

From benchmarks/chemical_batch/mixer_lid_stall_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 invariant !(agitator_on && lid_open) The agitator must never run while the vessel lid is open.
P2 invariant !(heater_on && agitator_stalled) The heater must never run while the agitator is stalled, to avoid local scorching and pressure buildup around a stationary rotor.
P3 reachability reachable: heater_on && agitator_stalled Trigger synthesis: a witness recovers the bad state P2 forbids, so the counterexample search has a concrete target when the stall interlock is bypassed.

Variants

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

Files

file what it is size sha256
benchmark.yml benchmark metadata 1.5 KB 914bf82edfad
bomb.st structured text 1.2 KB 2e72e7c44529
clean.st structured text 1.2 KB ad8898c05ad6
props.yaml property file 0.7 KB 1a8bc57b0863

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.