algebraic-graphs/agda

The theory of algebraic graphs formalised in Agda

Agda

95

48 commits

updated Jul 15, 2018

See the code

README

The theory of algebraic graphs

Build Status

We use Agda to formalise the theory of algebraic graphs and prove a few key theorems.

Code overview

This repository is fully self-contained and does not depend on any Agda libraries. We use this Travis build script for continuous verification of the proofs. To verify whether your implementation is correct, you can invoke the verify.sh script.

Below we describe the purpose of all source files contained in the src directory.

  • Inside the Algebra folder, we define the following structures:

    • Dioid, a semiring (or rng) where the + operation is idempotent.
    • Bool, an implementation of a dioid.
    • ShortestDistance, another instance.
    • Graph, an algebraic graphs.
    • LabelledGraph, an extension of a Graph.

    for each of these there are three files:

    • Structure.agda, the main implementation.
    • Structure/Reasoning.agda, syntactic sugar for writing equational proofs.
    • Structure/Theorems.agda, some theorems of the structure.
  • Prelude defines products, lists and other functionality for describing Haskell APIs.

  • API defines key functions from the API of the algebraic-graphs library.

  • API/Theorems proves theorems of the API.

agda
algebra
graph

Contributors

snowleopard

30 commits

anfelor

14 commits

nobrakal

3 commits

Rotsor

1 commits

algebraic-graphs/agda

The theory of algebraic graphs formalised in Agda

Agda

95

48 commits

updated Jul 15, 2018

See the code

README

The theory of algebraic graphs

Build Status

We use Agda to formalise the theory of algebraic graphs and prove a few key theorems.

Code overview

This repository is fully self-contained and does not depend on any Agda libraries. We use this Travis build script for continuous verification of the proofs. To verify whether your implementation is correct, you can invoke the verify.sh script.

Below we describe the purpose of all source files contained in the src directory.

  • Inside the Algebra folder, we define the following structures:

    • Dioid, a semiring (or rng) where the + operation is idempotent.
    • Bool, an implementation of a dioid.
    • ShortestDistance, another instance.
    • Graph, an algebraic graphs.
    • LabelledGraph, an extension of a Graph.

    for each of these there are three files:

    • Structure.agda, the main implementation.
    • Structure/Reasoning.agda, syntactic sugar for writing equational proofs.
    • Structure/Theorems.agda, some theorems of the structure.
  • Prelude defines products, lists and other functionality for describing Haskell APIs.

  • API defines key functions from the API of the algebraic-graphs library.

  • API/Theorems proves theorems of the API.

agda
algebra
graph

Contributors

snowleopard

30 commits

anfelor

14 commits

nobrakal

3 commits

Rotsor

1 commits

Languages

Agda

99.3%