https://github.com/algebraic-graphs/agda
The theory of algebraic graphs formalised in Agda
https://github.com/algebraic-graphs/agda
agda algebra graph
Last synced: about 1 year ago
JSON representation
The theory of algebraic graphs formalised in Agda
- Host: GitHub
- URL: https://github.com/algebraic-graphs/agda
- Owner: algebraic-graphs
- License: mit
- Created: 2017-03-16T00:08:12.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2018-07-15T23:24:38.000Z (almost 8 years ago)
- Last Synced: 2024-08-03T15:05:21.958Z (almost 2 years ago)
- Topics: agda, algebra, graph
- Language: Agda
- Homepage:
- Size: 42 KB
- Stars: 86
- Watchers: 5
- Forks: 6
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# The theory of algebraic graphs
[](https://travis-ci.org/algebraic-graphs/agda)
We use Agda to formalise the theory of [algebraic graphs](https://github.com/snowleopard/alga-paper)
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](https://github.com/scott-fleischman/agda-travis) 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](https://github.com/snowleopard/alga-paper).
* `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.