https://github.com/input-output-hk/network-equivalences
Formal proofs of equivalences of different kinds of networks
https://github.com/input-output-hk/network-equivalences
broadcast formal-methods formal-verification network unicast
Last synced: 4 months ago
JSON representation
Formal proofs of equivalences of different kinds of networks
- Host: GitHub
- URL: https://github.com/input-output-hk/network-equivalences
- Owner: input-output-hk
- License: apache-2.0
- Created: 2022-01-21T19:16:47.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2024-01-23T18:08:25.000Z (over 2 years ago)
- Last Synced: 2025-03-12T06:02:26.142Z (over 1 year ago)
- Topics: broadcast, formal-methods, formal-verification, network, unicast
- Language: Isabelle
- Homepage:
- Size: 243 KB
- Stars: 2
- Watchers: 7
- Forks: 1
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
Awesome Lists containing this project
README
Overview
========
The `network-equivalences` library contains proofs of behavioral
equivalences of various communication networks. For reasoning on an
appropriately high level, it introduces and uses a communication
language that is embedded in [the Þ-calculus][thorn-calculus].
Part of this library are discussed in the following conference articles:
* [Correctness of Broadcast via Multicast: Graphically and
Formally](https://arxiv.org/abs/2209.09472)
* [Proofs about Network Communication: For Humans and
Machines](https://arxiv.org/abs/2308.10652)
[thorn-calculus]:
https://github.com/input-output-hk/thorn-calculus
"Þ-calculus"
Requirements
============
You need Isabelle2022 to use this Isabelle library. You can obtain
Isabelle2022 from the [Isabelle website][isabelle].
[isabelle]:
https://isabelle.in.tum.de/
"Isabelle"
In addition, you need the following Isabelle sessions:
* [`Thorn_Calculus`](https://github.com/input-output-hk/thorn-calculus)
Setup
=====
To make this Isabelle library available to your Isabelle installation,
add the path of the `src` directory to the file
`$ISABELLE_HOME_USER/ROOTS`. You can find out the value of
`$ISABELLE_HOME_USER` by running the following command:
isabelle getenv ISABELLE_HOME_USER
Building
========
Running `make` builds the PDF file that includes the documentation and
the code and places it in `$ISABELLE_BROWSER_INFO/IOG`. You can find out
the value of `$ISABELLE_BROWSER_INFO` by running the following command:
isabelle getenv ISABELLE_BROWSER_INFO
The makefile specifies two targets: `properly`, which is the default,
and `qnd`. With `properly`, fake proofs (`sorry`) are not accepted; with
`qnd`, quick-and-dirty mode is used and thus fake proofs are accepted.