Idris2Doc : Data.Graph.Indexed.Types

Data.Graph.Indexed.Types

(source)
A representation for sparse, simple, undirected
labeled graphs, indexed by their order and backed by an
immutable array for fast O(1) node lookups.

This module provides only the data types plus
interface implementations.

Definitions

0CompFin : Fink->Fink->Ordering
Totality: total
Visibility: public export
recordEdge : Nat->Type->Type
  A labeled edge in a simple, undirected graph.
Since edges go in both directions and loops are not allowed,
we can enforce without loss of generality
that `node2 > node1 = True`.

Totality: total
Visibility: public export
Constructor: 
E : (node1 : Fink) -> (node2 : Fink) ->e-> {auto0_ : CompFinnode1node2=LT} ->Edgeke

Projections:
.label : Edgeke->e
.node1 : Edgeke->Fink
.node2 : Edgeke->Fink
0.prf : ({rec:0} : Edgeke) ->CompFin (node1{rec:0}) (node2{rec:0}) =LT

Hints:
Eqe=>Eq (Edgeke)
Foldable (Edgek)
Functor (Edgek)
Orde=>Ord (Edgeke)
Showe=>Show (Edgeke)
Traversable (Edgek)
.node1 : Edgeke->Fink
Totality: total
Visibility: public export
node1 : Edgeke->Fink
Totality: total
Visibility: public export
.node2 : Edgeke->Fink
Totality: total
Visibility: public export
node2 : Edgeke->Fink
Totality: total
Visibility: public export
.label : Edgeke->e
Totality: total
Visibility: public export
label : Edgeke->e
Totality: total
Visibility: public export
0.prf : ({rec:0} : Edgeke) ->CompFin (node1{rec:0}) (node2{rec:0}) =LT
Totality: total
Visibility: public export
0prf : ({rec:0} : Edgeke) ->CompFin (node1{rec:0}) (node2{rec:0}) =LT
Totality: total
Visibility: public export
fromNat : (x : Nat) -> (y : Nat) -> {auto0_ : LTxk} -> {auto0_ : LTyk} -> {auto0_ : LTxy} ->e->Edgeke
Totality: total
Visibility: export
weakenEdge : Edgeke->Edge (Sk) e
Totality: total
Visibility: export
weakenEdgeN : (0m : Nat) ->Edgeke->Edge (k+m) e
Totality: total
Visibility: export
incEdge : (k : Nat) ->Edgeme->Edge (k+m) e
  Increase both nodes in an edge by the same natural number

Totality: total
Visibility: export
compositeEdge : Fink->Finm->e->Edge (k+m) e
  Creates an edge between two nodes from different graphs,
resulting in a new edge of their composite graph.

Note: This assumes that nodes in the first graph (of order `k`)
will stay the same, while nodes in the second graph
(of order `m`) will be increased by `k`.

Totality: total
Visibility: export
mkEdge : Fink->Fink->e->Maybe (Edgeke)
  Tries to create an edge from two nodes plus a label.

Returns `Nothing` in case the two nodes are identical.

Totality: total
Visibility: public export
tryFromNat : Nat->Nat->e->Maybe (Edgeke)
  Tries to create an edge from two natural numbers plus a label.

Returns `Nothing` in case the two numbers are not in the correct
range or are identical.

Totality: total
Visibility: export
edge : Fink->e->Edge (Sk) e
Totality: total
Visibility: public export
recordAdj : Nat->Type->Type->Type
  Adjacency info of a `Node` in a labeled graph.

This consists of the node's label plus
a list of all its neighboring nodes and
the labels of the edges connecting them.

This is what is stored in underlying `BitMap`
representing the graph.

Totality: total
Visibility: public export
Constructor: 
A : n->AssocListke->Adjken

Projections:
.label : Adjken->n
.neighbours : Adjken->AssocListke

Hints:
Bifoldable (Adjk)
Bifunctor (Adjk)
Bitraversable (Adjk)
Eqe=>Eqn=>Eq (Adjken)
Foldable (Adjke)
Functor (Adjke)
Showe=>Shown=>Show (Adjken)
Traversable (Adjke)
.label : Adjken->n
Totality: total
Visibility: public export
label : Adjken->n
Totality: total
Visibility: public export
.neighbours : Adjken->AssocListke
Totality: total
Visibility: public export
neighbours : Adjken->AssocListke
Totality: total
Visibility: public export
weakenAdj : Adjken->Adj (Sk) en
Totality: total
Visibility: export
weakenAdjN : (0m : Nat) ->Adjken->Adj (k+m) en
Totality: total
Visibility: export
fromLabel : n->Adjken
Totality: total
Visibility: export
recordContext : Nat->Type->Type->Type
Totality: total
Visibility: public export
Constructor: 
C : Fink->n->AssocListke->Contextken

Projections:
.label : Contextken->n
.neighbours : Contextken->AssocListke
.node : Contextken->Fink

Hints:
Bifoldable (Contextk)
Bifunctor (Contextk)
Bitraversable (Contextk)
Eqe=>Eqn=>Eq (Contextken)
Foldable (Contextke)
Functor (Contextke)
Showe=>Shown=>Show (Contextken)
Traversable (Contextke)
.node : Contextken->Fink
Totality: total
Visibility: public export
node : Contextken->Fink
Totality: total
Visibility: public export
.label : Contextken->n
Totality: total
Visibility: public export
label : Contextken->n
Totality: total
Visibility: public export
.neighbours : Contextken->AssocListke
Totality: total
Visibility: public export
neighbours : Contextken->AssocListke
Totality: total
Visibility: public export
recordIGraph : Nat->Type->Type->Type
  An order-indexed graph.

Totality: total
Visibility: public export
Constructor: 
IG : IArrayk (Adjken) ->IGraphken

Projection: 
.graph : IGraphken->IArrayk (Adjken)

Hints:
Bifoldable (IGraphk)
Bifunctor (IGraphk)
Bitraversable (IGraphk)
Eqe=>Eqn=>Eq (IGraphken)
Foldable (IGraphke)
Functor (IGraphke)
Showe=>Shown=>Show (IGraphken)
Traversable (IGraphke)
.graph : IGraphken->IArrayk (Adjken)
Totality: total
Visibility: public export
graph : IGraphken->IArrayk (Adjken)
Totality: total
Visibility: public export
recordGraph : Type->Type->Type
  A graph together with its order

Totality: total
Visibility: public export
Constructor: 
G : (order : Nat) ->IGraphorderen->Graphen

Projections:
.graph : ({rec:0} : Graphen) ->IGraph (order{rec:0}) en
.order : Graphen->Nat

Hints:
BifoldableGraph
BifunctorGraph
BitraversableGraph
Eqe=>Eqn=>Eq (Graphen)
Foldable (Graphe)
Functor (Graphe)
Showe=>Shown=>Show (Graphen)
Traversable (Graphe)
.order : Graphen->Nat
Totality: total
Visibility: public export
order : Graphen->Nat
Totality: total
Visibility: public export
.graph : ({rec:0} : Graphen) ->IGraph (order{rec:0}) en
Totality: total
Visibility: public export
graph : ({rec:0} : Graphen) ->IGraph (order{rec:0}) en
Totality: total
Visibility: public export