HOL4P4 is a small-step, heapless formalisation and a type system of the P4 language implemented in HOL4. The syntax and semantics is written in the Ott metalanguage, which co-organizes export of definitions to multiple interactive theorem provers.
-
Semantics, more specifically:
-
Type system, more specifically:
-
Type preservation proof for:
-
Type progress proof for:
-
Executable semantics, more specifically:
-
Proof of soundness of the executable semantics:
-
Case studies:
- Pipeline interference: Concrete execution, Concurrency theory
- VSS: Concrete execution, Data non-interference
-
Architecture instantiations
To set up the development environment, follow the instructions in INSTALL.md.
A. Alshnakat, D. Lundberg, R. Guanciale, M. Dam and K. Palmskog, "HOL4P4: Semantics for a Verified Data Plane", in P4 Workshop in Europe (EuroP4 '22), 2022.
A. Alshnakat, D. Lundberg, R. Guanciale, and M. Dam "HOL4P4: Mechanized Small-Step Semantics for P4", to appear in (OOPSLA '24).