rems-project/netsem

Network Semantics

HTML

96

140 commits

updated Jan 6, 2019

See the code

README

Network Semantics

This repository contains the formal specification of TCP, UDP, and the Sockets API developed in the Netsem project:

http://www.cl.cam.ac.uk/~pes20/Netsem/index.html

It has been relicensed under the simplified BSD license. Currently (2015), it is revived using contemporary systems (newer HOL4, PolyML, DTrace, ..)

The demo-traces/ directory contains some example traces (state is unclear)

The HOLDoc/ directory contains tools to typeset the specification (compiles and works).

The notes/ directory contains (meeting and other random) notes.

The specification/ directory contains the segment-level HOL4 specification (previously called Spec1).

The test/ directory contains the test generation and checking tools.

The unmaintained/ directory contains unmaintained specifications, the Lem port of the specifications, etc.

Building

  • Get PolyML (5.5.2 works fine)
  • Get HOL (69fd18990913826ed08e76f768e703515de9c806 from 5th April 2017 works fine)
  • Building specification: cd specification ; $HOL/bin/Holmake
  • Building documentation: cd HOLDoc/src ; $HOL/bin/Holmake followed by cd specification ; $HOL/bin/Holmake TCP1_net1Theory.ui TCP1_netTheory.ui ; make alldoc
  • Building test tools (required OCaml (tested with 4.02.3)): cd test ; make depend OCAMLPATH=~/.opam/4.02.3/bin ; make OCAMLPATH=~/.opam/4.02.3/bin

Contributors

mn200

58 commits

hannesm

49 commits

tomjridge

23 commits

PeterSewell

10 commits

rems-project/netsem

Network Semantics

HTML

96

140 commits

updated Jan 6, 2019

See the code

README

Network Semantics

This repository contains the formal specification of TCP, UDP, and the Sockets API developed in the Netsem project:

http://www.cl.cam.ac.uk/~pes20/Netsem/index.html

It has been relicensed under the simplified BSD license. Currently (2015), it is revived using contemporary systems (newer HOL4, PolyML, DTrace, ..)

The demo-traces/ directory contains some example traces (state is unclear)

The HOLDoc/ directory contains tools to typeset the specification (compiles and works).

The notes/ directory contains (meeting and other random) notes.

The specification/ directory contains the segment-level HOL4 specification (previously called Spec1).

The test/ directory contains the test generation and checking tools.

The unmaintained/ directory contains unmaintained specifications, the Lem port of the specifications, etc.

Building

  • Get PolyML (5.5.2 works fine)
  • Get HOL (69fd18990913826ed08e76f768e703515de9c806 from 5th April 2017 works fine)
  • Building specification: cd specification ; $HOL/bin/Holmake
  • Building documentation: cd HOLDoc/src ; $HOL/bin/Holmake followed by cd specification ; $HOL/bin/Holmake TCP1_net1Theory.ui TCP1_netTheory.ui ; make alldoc
  • Building test tools (required OCaml (tested with 4.02.3)): cd test ; make depend OCAMLPATH=~/.opam/4.02.3/bin ; make OCAMLPATH=~/.opam/4.02.3/bin

Contributors

mn200

58 commits

hannesm

49 commits

tomjridge

23 commits

PeterSewell

10 commits

Languages

HTML

33.0%

TeX

30.9%

Standard ML

19.5%

OCaml

10.1%

PostScript

2.3%

C

2.3%