The document describes a formal process for developing programmable logic controller (PLC) software to improve safety verification. The process involves:
1) Formalizing requirements and using them to specify function block designs.
2) Verifying the designs meet requirements and testing them symbolically.
3) Constructing and verifying structured text programs that implement the designs.
4) Testing the final code.
The process is demonstrated by formally developing a CHECK function block that transforms sensor readings within set limits and triggers alarms.