Skip to content

An Agda library for reasoning about asynchronous iterative algorithms and network routing problems

Notifications You must be signed in to change notification settings

MatthewDaggitt/agda-routing

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

Agda-routing

Requirements: Agda 2.6.4 and Standard Library 2.0

This library reasons about asynchronous iterative algorithms and network routing problems. It is organised in the same manner as the Agda standard library and contains extensions of several of the Agda standard library modules. The core contributions of this library can be found in the RoutingLib.Iteration and RoutingLib.Routing directories.

The contents of the library is described in An Algebraic Perspective on the Convergence of Vector-Based Routing Protocols by Matthew L. Daggitt, submitted for his PhD thesis at the Department of Computer Science and Technology, University Of Cambridge, 2019.

Below is a guide that helps users match up the content of the thesis with their associated formalisation in Agda.

Chapter 3 - Asynchronous iterative algorithms

A formalisation of the pre-existing theory of static asynchronous iterative algorithms can be found in the directory RoutingLib.Iteration.Asynchronous.Static and is organised as follows:

A formalisation of the new theory of dynamic asynchronous iterations can be found in the directory RoutingLib.Iteration.Asynchronous.Dynamic and is organised as follows:

Chapter 4 - An algebraic model for vector-based protocols

Chapter 5 - Convergence

The proof of convergence of finite, strictly increasing distance-vector protocols is organised as follows:

The proof of convergence of increasing path-vector protocols is organised as follows:

A summary of all the convergence results can be found in: RoutingLib.Routing.VectorBased.Asynchronous.Results

Chapter 6 - Rate of convergence

Note that, as discussed in the thesis, the Θ(n²) convergence time for the Qₙ gadgets is the only major proof not formalised in Agda. This is because:

  1. it is time consuming to formally reason about the entire execution trace of an abstract family of graphs.

  2. being a lower bound there are less severe practical consequences if it turns out to be incorrect.

  3. execution traces that exhibit convincing quadratic behaviour have been generated using Python scripts.

The proof of the Ω(n²) bound on convergence in the worst case is laid out as follows:

Chapter 7 - Practicalities

Chapter 8 - Agda: proofs and protocols

Related work

[1] Üresin, A., Dubois, M. Parallel asynchronous algorithms for discrete data. Journal of the ACM 37(3) (1990)

[2] Gurney, A.J.T. Asynchronous iterations in ultrametric spaces (2017),https://arxiv.org/abs/1701.07434

Resulting publications

[3] Daggitt, M.L., Gurney, A.J.T., Griffin, T.G. Asynchronous convergence of policy-rich distributed bellman-ford routing protocols, SIGCOMM (2018)

[4] Daggitt, M.L, Griffin, T.G. Rate of convergence of increasing path-vector routing protocols, ICNP (2018)

[5] Zmigrod, R. , Daggitt, M.L., Griffin, T. G. An Agda Formalization of Üresin & Dubois’ Asynchronous Fixed-Point Theory, ITP (2018).

[6] Daggitt M.L., Zmigrod, R., Griffin T.G. A Relaxation of Üresin & Dubois' Asynchronous Fixed-Point Theory in Agda JAR (2019)

[7] Daggitt M.L., Griffin T.G. Dynamic Asynchronous Iterations JPDC (2022)

[8] Daggitt M.L., Griffin T.G. Formally verified convergence of policy-rich DBF routing protocols, ToN (2023)

About

An Agda library for reasoning about asynchronous iterative algorithms and network routing problems

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages