# Incidence Structures, Graphs and Codes

## `IncidenceStructure(G): Grph -> Inc`

Construct the incidence structure $D$ corresponding to the graph $G$, where the blocks of $D$ correspond to the edges of $G$.

## `PointGraph(D): Inc -> Grph`

The point graph $G$ of the incidence structure $D$. The graph $G$ has the same point set as $D$ and two vertices $u$ and $v$ of $G$ are adjacent whenever there is a block of $D$ containing both $u$ and $v$.

## `BlockGraph(D): Inc -> Grph`

The block graph of the incidence structure $D$, i.e., the point graph of the dual of $D$.

## `IncidenceGraph(D): Inc -> Grph`

The incidence graph of the incidence structure $D$. This bipartite graph has as vertex set the union of the point set $P$ and block set $B$ of $D$. A vertex $p \in P$ is adjacent to a vertex $b \in B$ whenever $p \in b$.

## `LinearCode(D, K): Inc, FldFin -> Code`

Given an incidence structure $D$ with $v$ points and a finite field $K$, this function returns the linear code $C$ of length $v$ generated by the characteristic functions of the blocks of $D$ considered as vectors of the $K$-space $K^{(v)}$.

## `Example: graphs (ex-09b77a)`

The linear code of the Witt 5-(24, 8, 1) design over GF(2) is the extended Golay code over GF(2).

```magma
> D := WittDesign(24);
> C := LinearCode(D, GF(2));
> C eq GolayCode(GF(2), true);
true

```
