Skip to content

Benchmarks

Crane hoist overload cutoff

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

Authored for the esbmc-plc-benchmark-suite to add a plain 2-variable cause-effect invariant example (a shape already well represented in the corpus, included for breadth rather than to target a known failure).

What is proved

From benchmarks/manufacturing/hoist_overload_cutoff/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 !(overload_tripped && hoist_raise) The hoist motor must never raise the load while the overload sensor is tripped, regardless of the operator's raise command.
P2 reachability reachable: overload_tripped && hoist_raise Trigger synthesis: a witness recovers the case where the motor raises the load despite the overload sensor being tripped, matching the seeded defect that lets a stale raise command survive the trip check.

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 c3f5d58e4bba
bomb.st structured text 1.3 KB 94dc7b6f40ca
clean.st structured text 1.0 KB 8b52d5a7f40c
props.yaml property file 0.6 KB 76f61f45a8ed

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.