Skip to content

Benchmarks

independent high-pressure trip (graphical LD)

suite id g_independent_hp_trip
domain chemical_batch
language LD-graphical
difficulty medium
validation status validated
origin authored
license CC-BY-4.0

Authored for this suite, modeling a single independent overpressure trip layer distinct from the existing 2-of-3 voted trip

What is proved

From benchmarks/chemical_batch/g_independent_hp_trip/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 !pressure_high || vent_valve The independent high-pressure trip must vent whenever pressure is high, regardless of what the batch sequencer is doing.

Variants

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

Files

file what it is size sha256
benchmark.yml benchmark metadata 1.1 KB 1e73b0ef5cb5
bomb.xml ladder program, PLCopen XML 2.5 KB f1efeeda1cb1
clean.xml ladder program, PLCopen XML 1.8 KB 067497f30cc1
props.yaml property file 0.2 KB 272e188ff6a7

Structured text, derived

Read off the ladder graph by runner/ld_to_st.py: every rung's contacts and coils rewritten as IEC 61131-3 assignments, in the same series/parallel logic the PLCopen XML encodes. This is a reading aid, not a second source of expected verdicts; ESBMC verifies the ladder program shown above, never this rendering.

PROGRAM g_independent_hp_trip_bomb
VAR_INPUT
    pressure_high : BOOL;
    sequence_step_active : BOOL;
    maint : BOOL;
END_VAR

VAR_OUTPUT
    vent_valve : BOOL;
END_VAR


vent_valve := ((pressure_high AND NOT maint) OR (pressure_high AND sequence_step_active));

END_PROGRAM
PROGRAM g_independent_hp_trip_clean
VAR_INPUT
    pressure_high : BOOL;
    sequence_step_active : BOOL;
    maint : BOOL;
END_VAR

VAR_OUTPUT
    vent_valve : BOOL;
END_VAR


vent_valve := pressure_high;

END_PROGRAM

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.

  • g_independent_hp_trip__bomb (props.yaml, expected VIOLATION): v8.4 VIOLATION
  • g_independent_hp_trip__clean (props.yaml, expected SAFE): v8.4 SAFE