---
layout: default
title : "Examples.Structures.Signatures module (Agda Universal Algebra Library)"
date : "2021-07-16"
author: "agda-algebras development team"
---
### Example signatures for general structures
This is the [Examples.Structures.Signatures][] module of the [Agda Universal Algebra Library][].
Eight tiny signatures for the general `structure` type of the frozen `Legacy.Base`
tree, named by an arity-counting convention: position `k` of the digit string
counts the symbols of arity `k`, so `S001` has one binary symbol and `S111` has one
nullary, one unary, and one binary. They give the structure examples of
[Examples.Structures.Basic][] and the finite-CSP exercises of
[Exercises.Complexity.FiniteCSP][] something concrete to instantiate.
<!--
```agda
{-# OPTIONS --without-K --exact-split --safe #-}
module Examples.Structures.Signatures where
open import Data.Empty using () renaming ( ā„ to š )
open import Data.Unit.Base using () renaming ( ⤠to š ; tt to š )
open import Level using () renaming ( 0ā to āā )
open import Overture using ( š ; š )
open import Legacy.Base.Structures.Basic using ( signature )
```
-->
#### Examples of finite signatures
Each is a `signature` record whose `symbol` type is `š`, `š`, `š`, or `š` and
whose arity map sends a symbol to the finite type of its argument positions: `Sā
`
(no symbols, so bare sets), `S1` (one constant, pointed sets), `S01` (one unary),
`S001` (one binary, magmas and their kin), `S0001` (one ternary, the NAE-3-SAT
relation), `S021` (two unary and one binary), `S101` (one constant and one binary,
monoids), and `S111` (one constant, one unary, and one binary, groups).
```agda
Sā
: signature āā āā
Sā
= record { symbol = š ; arity = Ī» () }
S1 : signature āā āā
S1 = record { symbol = š ; arity = Ī» _ ā š }
S01 : signature āā āā
S01 = record { symbol = š ; arity = Ī» _ ā š }
S001 : signature āā āā
S001 = record { symbol = š ; arity = Ī» _ ā š }
S0001 : signature āā āā
S0001 = record { symbol = š ; arity = Ī» _ ā š }
S021 : signature āā āā
S021 = record { symbol = š ; arity = Ī»{ š.š ā š ; š.š ā š ; š.š ā š } }
S101 : signature āā āā
S101 = record { symbol = š ; arity = Ī»{ š.š ā š ; š.š ā š } }
S111 : signature āā āā
S111 = record { symbol = š ; arity = Ī»{ š.š ā š ; š.š ā š ; š.š ā š } }
```