Skip to content
HN On Hacker News ↗

ESBMC-Arduino: Closing the Deployment Gap for Formal Verification of Open-Hardware PLCs

▲ 7 points 2 comments by Jimmc414 1mo ago HN discussion ↗

Pangram verdict · v3.3

We believe that this document is fully AI-generated

95 %

AI likelihood · overall

AI
0% human-written 100% AI-generated
SEGMENTS · HUMAN 0 of 2
SEGMENTS · AI 2 of 2
WORD COUNT 302
PEAK AI % 96% · §2
Analyzed
Jul 14
backend: pangram/v3.3
Segments scanned
2 windows
avg 151 words each
Distribution
0 / 100%
human / AI fraction
Verdict
AI
Pangram v3.3

Article text · 302 words · 2 segments analyzed

Human AI-generated
§1 AI · 94%

View PDF HTML (experimental) Abstract:OpenPLC, Arduino OPTA, CONTROLLINO, and Industrial Shields M-Duino bring IEC 61131-3 to low-cost microcontrollers used in real automation and industrial control system (ICS) security research. Existing open-source verifiers for IEC 61131-3, including ESBMC-PLC, prove safety over an abstract scan-cycle model with idealized unbounded integers. The board artifact runs on a resource-constrained microcontroller unit (MCU) with 16-bit words (8-bit AVR Arduinos), and sensors are read via a finite-resolution analog-to-digital converter (ADC). We show this deployment gap makes naive width-aware verification unsound: across 123 real programs, checking 16-bit overflow without a hardware input model yields 44% false alarms (54/123) and finds no genuine defects, because it explores sensor values no ADC can produce. Since the gap lies where computation meets the physical process - a bounded sensor reading scaled by finite-width arithmetic into an actuation command - an overflow can silently suppress a safety action, such as a high-level alarm. An unbounded input model fabricates alarms that no environment can trigger. We present hardware-faithful verification for IEC 61131-3 on open hardware: a declarative hardware abstraction layer (HAL) descriptor (width, ADC/PWM resolution, I/O binding) and a sound lowering that interprets arithmetic at target width and constrains inputs to hardware-realizable ranges. We instantiate it for Arduino as ArduinoTool, deriving HAL parameters from official cores and realizing the input-range model in the ESBMC Ladder Diagram (LD) frontend. On the 123-program corpus, the HAL annotator eliminates all 54 false alarms while preserving robustness proofs, and a controlled corpus demonstrates the rare width-dependent defects it detects with realizable witnesses.

Comments: 21 pages

Subjects: Programming Languages (cs.PL); Hardware Architecture (cs.AR); Systems and Control (eess.SY) Cite as: arXiv:2607.08550 [cs.

§2 AI · 96%

PL]   (or arXiv:2607.08550v1 [cs.PL] for this version)   https://doi.org/10.48550/arXiv.2607.08550 arXiv-issued DOI via DataCite Submission history From: Pierre Dantas [view email] [v1] Thu, 9 Jul 2026 14:42:15 UTC (44 KB)