Categorical UML

Posted on March 1, 2020
Tags: typetheory

1 1 to 1

\[A\xlongequal{isomorphism}B\]

2 0..1 to 1

\[A\xrightarrow{injective}B\]

3 0..* to 1

\[A\xrightarrow{function}B\]

4 1..* to 1

\[A\xtwoheadrightarrow{surjective}B\]

5 0..1 to 0..1

\[A \xleftarrow{injective} R\xrightarrow{injective}B\]

6 0..1 to 0..*

\[A \xleftarrow{function} R\xrightarrow{injective}B\]

7 0..1 to 1..*

\[A \xtwoheadleftarrow{surjective} R\xrightarrow{injective}B\]

8 0..* to 0..*

\[A \xleftarrow{function} R\xrightarrow{function}B\]

9 0..* to 1..*

\[A \xtwoheadleftarrow{surjective} R\xrightarrow{function}B\]

10 1..* to 1..*

\[A \xtwoheadleftarrow{surjective} R\xtwoheadrightarrow{surjective}B\]