From C to Interaction Trees: Specifying, Verifying, and Testing a Networked Server

11/29/2018
by   Nicolas Koh, et al.
0

We present the first formal verification of a networked server implemented in C. Interaction trees, a general structure for representing reactive computations, are used to tie together disparate verification and testing tools (Coq, VST, and QuickChick) and to axiomatize the behavior of the operating system on which the server runs (CertiKOS). The main theorem connects a specification of acceptable server behaviors, written in a straightforward "one client at a time" style, with the CompCert semantics of the C program. The variability introduced by low-level buffering of messages and interleaving of multiple TCP connections is captured using network refinement, a variant of observational refinement.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
01/31/2021

Model-Based Testing of Networked Applications

We present a rigorous framework for automatically testing application-la...
research
05/11/2021

Formally Verified Simulations of State-Rich Processes using Interaction Trees in Isabelle/HOL

Simulation and formal verification are important complementary technique...
research
12/01/2018

A Scheme to Verify Services with Unboundedly many Clients using NuSMV

We study model checking of client - server systems, where the servers of...
research
07/23/2021

Testing Pushdown Systems

Testing on reactive systems is a well-known laborious activity on softwa...
research
10/09/2017

Threefold Analysis of Distributed Systems: IMDS, Petri Net and Distributed Automata DA3

Integrated Model of Distributed Systems is used for specification and ve...
research
09/28/2022

Verifying Safety of Behaviour Trees in Event-B

Behavior Trees (BT) are becoming increasingly popular in the robotics co...
research
03/16/2023

Formally Verified Animation for RoboChart using Interaction Trees

RoboChart is a core notation in the RoboStar framework. It is a timed an...

Please sign up or login with your details

Forgot password? Click here to reset