# Algebraic Wasserstein distances and stable homological invariants of data

Jens Agerberg  Andrea Guidolin  Isaac Ren  Martina Scolamiero

###### Abstract

Distances have an ubiquitous role in persistent homology, from the direct
comparison of homological representations of data to the definition and
optimization of invariants. In this article we introduce a family of
parametrized pseudometrics based on the algebraic Wasserstein distance defined
in [ST20] and phrase them in the formalism of noise systems. This is achieved
by comparing $p$-norms of cokernels (resp. kernels) of monomorphisms (resp.
epimorphisms) between persistence modules and corresponding bar-to-bar
morphisms. We use these pseudometrics to define associated stable invariants,
called Wasserstein stable ranks, and compute them efficiently. Experimental
results illustrate the use of Wasserstein stable ranks on real and artificial
data.

MSC: 55N31, 62R40, 55U99

Keywords: Persistent homology, persistence modules, stable topological
invariants of data, Wasserstein metrics

###### Contents

  1. 1 Introduction
  2. 2 Preliminaries
    1. 2.1 Persistence modules and persistent homology
    2. 2.2 Contours
    3. 2.3 Noise systems
    4. 2.4 Pseudometrics between persistence modules
    5. 2.5 Hierarchical stabilization and stable rank
    6. 2.6 $p$-norms
  3. 3 Monomorphisms, epimorphisms, and their $p$-norms
    1. 3.1 Free presentations of monomorphisms
    2. 3.2 Finding monomorphisms with smaller cokernels
    3. 3.3 Bar-to-bar epimorphisms
  4. 4 Noise systems and Wasserstein pseudometrics
    1. 4.1 Pseudometrics associated to noise systems
    2. 4.2 $p$-norms of persistence modules and contours
    3. 4.3 Contours and algebraic Wasserstein distances
    4. 4.4 Algebraic and combinatorial $(p,C)$-Wasserstein distances
    5. 4.5 Algebraic parametrized Wasserstein distances
  5. 5 Wasserstein stable ranks: computations and stability
    1. 5.1 Computation of the stable rank with Wasserstein distances
    2. 5.2 Interleaving distance between stable ranks
    3. 5.3 Metric learning
  6. 6 Examples of analyses with Wasserstein stable ranks
    1. 6.1 Synthetic data
    2. 6.2 Brain artery data

##  1 Introduction

While Topological Data Analysis has historically focused on studying the
global shape of data, persistent homology has since grown to provide popular
techniques for incorporating both global topological features and local
geometry into data analysis pipelines [AM21]. Through the lens of persistent
homology, global topological features can be encoded by long bars in a barcode
decomposition of the persistence module, while local geometric features are
characterized by short bars in the barcode. Indeed, both the information of
long bars and short bars in the barcode [BMM+16, HNH+16], as well as their
location along the filtration scale [SHP17, CR20, ARSC21], turn out to be
relevant in data analysis tasks. Wasserstein distances offer a way to
determine a trade-off between global and local features in persistence. Such
distances, first introduced in [CSEHM10] in the context of persistent
homology, have been widely used in applications and have been studied both
from a combinatorial perspective and more recently with an algebraic approach
[BSS22, ST20]. Wasserstein distances are parametrized by two parameters in
$[1,\infty]$ commonly fixed to the values of $1,2$ and $\infty.$ One of the
aims of this article is to define a richer family of parametrized Wasserstein
distances where, in addition to standard parameters determining sensitivity to
short bars globally in the parameter space, a _contour_ is introduced to
locally weight different parts of the parameter space. We propose that the
optimal parameter values for a particular task should be learned in a machine
learning context. Our contribution is part of more general efforts of
identifying parametrized families of metrics and invariants for persistence
[BDSS15, SCL+17, HKNU17, ZW19, CCI+20].

The parametrized Wasserstein distances are defined as a generalization of the
_algebraic Wasserstein distances_ , associated with $p$-_norms_ of persistence
modules, defined in [ST20]. Indeed, algebraic formulations allow for easier
generalizations, but their algorithmic implementations tend to be harder to
develop. One way to define algebraic distances is through the axioms of _noise
systems_ [SCL+17, GC17]. Properties of noise systems for Wasserstein distances
were already stated in [ST20]. Motivated by such properties, we prove the
noise system axioms for Wasserstein distances directly at an algebraic level.
By including these distances in the noise system framework, our results allow
for an alternative proof to the one in [ST20], that algebraic Wasserstein
distances are indeed pseudometrics. This algebraic proof easily generalizes to
show that the richer parametrized family of Wasserstein distances
$d^{q}_{\mathcal{S}^{p,C}}$ is indeed a family of pseudometrics between
persistence modules. It is interesting to see that Wasserstein metrics fit in
the noise system framework, as they are fundamentally different from noise
systems that have been studied from a computational perspective so far. In
fact, algorithms for the computational aspects of noise systems were only
developed for so called _simple noise systems_ [GC17, CR20]. These noise
systems have the extra property of being closed under direct sums, and can
intuitively be thought of being sensitive only to the longest bars, which
leads to $L^{\infty}$ type distances. Algebraic Wasserstein distances for
$p<\infty$ are of a different nature, and are not closed under direct sums.

The approach carried out in this article for proving that $p$-norms of
persistence modules satisfy the axioms of noise systems relies on comparing
monomorphisms (resp. epimorphisms) between persistence modules and so-called
_bar-to-bar_ monomorphisms (resp. epimorphisms) between the same persistence
modules. Intuitively, in a bar-to bar morphisms every bar in the barcode
decomposition of the domain maps non-trivially to at most one bar in the
barcode decomposition of the codomain. Our main theoretical results Theorem
3.13 and Theorem 3.14 state that for any monomorphism (resp. epimorphism)
between two persistence modules there exists a bar-to-bar monomorphism (resp.
epimorphism) between the same persistence modules whose cokernel (resp.
kernel) has smaller or equal norm. We believe these results are of independent
interest, as formally similar results on persistence modules have been
developed in [BPP+22] for applications to spectral theory.

The computation of Wasserstein distances between persistence modules remains
expensive despite recent progress [KMN17], and the space of persistent modules
is not directly amenable to statistical methods and machine learning. For
these reasons, feature maps from persistence modules or diagrams have become
an important component of the TDA machine learning pipeline. These techniques
introduce a map between the space of persistence modules and a vector space
where statistical and machine learning methods are well-developed. We propose
a new class of feature maps, directly related to the Wasserstein distances
$d^{q}_{\mathcal{S}^{p,C}}$ between persistence modules and with
interpretable, learnable parameters. Having fixed a pseudometric in the family
of Wasserstein distances $d^{q}_{\mathcal{S}^{p,C}}$, the Wasserstein stable
rank of a persistence module with respect to the chosen pseudometric can be
explicitly computed with a formula (Proposition 5.3) we derived from our
results on monomorphisms and epimorphisms. The computational complexity of
determining the Wasserstein stable rank is $O(n\log n)$ in the number $n$ of
bars of a persistence module.

A parametrized family of stable ranks can be obtained by varying the
Wasserstein distances, opening up for the possibility to tune parameters for a
particular task, resulting in feature maps that focus on the discriminative
aspects of the persistence modules in a dataset. Previous learnable feature
maps [HKNU17, CCI+20, RCB21] make the choice of expressiveness (being able to
learn any arbitrary function on the space of persistence modules) over
stability (learning a function under the constraint that it is robust to
perturbations of the input). Moreover, since the methods are often
parametrized by complex neural networks, it is difficult to compare and
interpret parametrizations learned for different tasks. Our Wasserstein stable
ranks are stable by construction. More precisely, the interleaving distance
between Wasserstein stable ranks is $1$-Lipschitz with respect to the
corresponding Wasserstein distance used in its construction. Similarly to
Wasserstein stable ranks, we also provide a simple formula for computing the
interleaving distance between them at the cost of $O(n\log n)$ in the maximum
number of bars in the two persistence modules we are comparing.

We use a metric learning framework to learn an optimal parametrization for a
problem at hand, observe that a better model can be obtained by jointly
optimizing the parameters $p$ and the ones related to the contour $C$ and
illustrate that the output can be readily interpreted in terms of the learned
parametrization focusing on e.g. global/local features or various parts of the
filtration scale. The methods are demonstrated on a synthetic and a real-world
datasets.

#### Outline of the paper.

Section 2 contains background material. In Section 3 we prove results on the
$p$-norm of the cokernel of a monomorphism and, dually, of the kernel of an
epimorphism of persistence modules. Section 4 is a study of Wasserstein
distances and their generalizations involving contours in the framework of
noise systems. In Section 5 we compute Wasserstein stable ranks and
interleaving distances between them, which we use to formulate a metric
learning problem. In Section 6 we illustrate the use of Wasserstein stable
ranks on synthetic and real-world data, learning optimal parameters of
algebraic Wasserstein distances.

##  2 Preliminaries

###  2.1 Persistence modules and persistent homology

Let $[0,\infty)$ denote the totally ordered set of nonnegative real numbers,
regarded as the category induced by the order structure. We consider an
arbitrary fixed field $K$ and denote by $\operatorname{vect}_{\mathit{K}}$ the
category of finite dimensional vector spaces over $K$. A persistence module
over $K$ is a functor $X:[0,\infty)\to\operatorname{vect}_{\mathit{K}}$.
Explicitly, $X$ consists of a collection of finite dimensional vector spaces
$X_{t}$ for all $t$ in $[0,\infty)$, together with a collection of linear
functions $X_{s\leq t}:X_{s}\to X_{t}$, called transition functions, for all
$s\leq t$ in $[0,\infty)$, such that $X_{s\leq t}X_{r\leq s}=X_{r\leq t}$ for
all $r\leq s\leq t$, and $X_{t\leq t}$ is the identity function on $X_{t}$ for
all $t$ in $[0,\infty)$. A morphism or natural transformation $f:X\to Y$
between two persistence modules $X$ and $Y$ is a collection of linear
functions $f_{t}:X_{t}\to Y_{t}$, for all $t$ in $[0,\infty)$, such that
$f_{t}X_{s\leq t}=Y_{s\leq t}f_{s}$ for all $s\leq t$ in $[0,\infty)$.

A persistence module $X$ is tame if there exist real numbers
$0=t_{0}<t_{1}<\cdots<t_{k}$ such that the transition function $X_{s\leq t}$
is a non-isomorphism only if $s<t_{i}\leq t$ for some $i\in\\{1,\ldots,k\\}$.
We denote by $\operatorname{\mathsf{Tame}}$ the category of tame persistence
modules and morphisms between them. The class of objects of this category will
be denoted by $\operatorname{\mathsf{Tame}}$ as well.

######  Convention 2.1.

In this article we always work in the category of tame persistence modules
over a fixed field $K$. For brevity the term persistence module will be used
to refer to tame persistence modules over $K$.

A morphism $f:X\to Y$ in $\operatorname{\mathsf{Tame}}$ is a monomorphism
(respectively, an epimorphism or isomorphism) if the linear functions
$f_{t}:X_{t}\to Y_{t}$ are monomorphisms (respectively, epimorphisms or
isomorphisms) of vector spaces, for all $t$ in $[0,\infty)$. Kernels,
cokernels and direct sums in $\operatorname{\mathsf{Tame}}$ are defined
componentwise. For example, for any persistence modules $X$ and $Y$, the
direct sum $X\oplus Y$ is the persistence module defined by $(X\oplus
Y)_{t}=X_{t}\oplus Y_{t}$ and $(X\oplus Y)_{s\leq t}=X_{s\leq t}\oplus
Y_{s\leq t}$, for all $s\leq t$ in $[0,\infty)$. The zero persistence module
or zero module, i.e., the functor identically equal to the zero vector space
on objects, will be denoted by $0$.

Let $a<b$ in $[0,\infty]$. We denote by $K(a,b)$ the persistence module
defined as follows: for any $t$ in $[0,\infty)$,

$K(a,b)_{t}:=\begin{cases}K&\text{if $a\leq t<b$}\\\
0&\text{otherwise},\end{cases}$

and for any $s\leq t$ in $[0,\infty)$,

$K(a,b)_{s\leq t}:=\begin{cases}\operatorname{id}_{K}&\text{if
$K(a,b)_{s}=K=K(a,b)_{t}$}\\\ 0&\text{otherwise}.\end{cases}$

We call $K(a,b)$ the bar (or interval module) with start-point $a$ and end-
point $b$. We say that the bar $K(a,b)$ is infinite if $b=\infty$ and finite
otherwise. We say that the left-closed, right-open interval $[a,b)$ in
$[0,\infty)$ is the support of the bar $K(a,b)$. As an easy consequence of
naturality, a morphism $f:K(a_{1},b_{1})\to K(a_{2},b_{2})$ between bars can
be nonzero (i.e. have some component $f_{a}$ different from the zero map) only
if $a_{2}\leq a_{1}<b_{2}\leq b_{1}$. In this case, $\ker f$ is isomorphic to
$K(b_{2},b_{1})$ if $b_{2}<b_{1}$, and is zero otherwise, and
$\operatorname{coker}f$ is isomorphic to $K(a_{2},a_{1})$ if $a_{2}<a_{1}$,
and is zero otherwise.

A persistence module is indecomposable if, whenever it is isomorphic to a
direct sum $Y\oplus Z$ with $Y$ and $Z$ in $\operatorname{\mathsf{Tame}}$,
either $Y=0$ or $Z=0$. Bars are indecomposable and, as the following
fundamental result implies, any indecomposable in
$\operatorname{\mathsf{Tame}}$ is isomorphic to a bar. We refer the reader to
[CDSGO16] for more details on the algebraic structure of persistence modules.

######  Theorem 2.2 (Structure of persistence modules).

Any (tame) persistence module $X$ is isomorphic to a finite direct sum of bars
of the form $\bigoplus_{i=1}^{k}K(a_{i},b_{i})$, with $a_{i}<b_{i}$ in
$[0,\infty]$ for every $i\in\\{1,\ldots,k\\}$. This decomposition is unique up
to permutation: if
$X\cong\bigoplus_{i=1}^{k}K(a_{i},b_{i})\cong\bigoplus_{j=1}^{\ell}K(c_{j},d_{j})$,
then $k=\ell$ and there exists a permutation $\sigma$ on $\\{1,\ldots,k\\}$
such that $a_{i}=c_{\sigma(i)}$ and $b_{i}=d_{\sigma(i)}$, for every
$i\in\\{1,\ldots,k\\}$.

A decomposition of a persistence module $X$ as a direct sum of bars as in
Theorem 2.2 is called a barcode decomposition of $X$. In this article, we will
occasionally denote a barcode decomposition of $X$ by
$\bigoplus_{i=1}^{k}X_{i}$ when we do not need an explicit notation for the
bars’ endpoints. The number $k$ of bars in any barcode decomposition of $X$ is
called the rank of $X$, denoted by $\operatorname{rank}(X)$.

Given a persistence module $X$, consider an element $x\in X_{a}$ for some $a$
in $[0,\infty)$, and let $b:=\sup\\{t\in[a,\infty)\mid X_{a\leq t}(x)\neq
0\\}$ in $[a,\infty]$. The element $x$ is called a generator of $X$ if the
morphism $g:K(a,b)\to X$ defined by $g_{a}(1)=x$ is such that the composition
$rg$ with some morphism $r:X\to K(a,b)$ is the identity on $K(a,b)$. We call
$K(a,b)$ the bar generated by $x$, and we observe that it is a direct summand
of $X$. We call a collection of elements $\\{x_{i}\in X_{a_{i}}\\}_{i=1}^{k}$
a set of generators of $X$ if each $x_{i}$ generates a bar $K(a_{i},b_{i})$
and the morphisms $g_{i}:K(a_{i},b_{i})\to X$ defined by $x_{i}$ induce an
isomorphism $\bigoplus_{i=1}^{k}K(a_{i},b_{i})\to X$.

As we will use basic homological algebra methods in
$\operatorname{\mathsf{Tame}}$, we remark that infinite bars $K(a,\infty)$,
for all $a$ in $[0,\infty)$, are free in $\operatorname{\mathsf{Tame}}$, and
that the notions of free and projective coincide in
$\operatorname{\mathsf{Tame}}$ (see [BM21] for details). Any bar $K(a,b)$ with
$b<\infty$ admits a minimal free resolution of the form $0\to K(b,\infty)\to
K(a,\infty)\to K(a,b)\to 0$.

######  Remark 2.3.

We note that $\operatorname{rank}(X)$ can be viewed as a classical homological
invariant corresponding to the number of generators in a minimal free
resolution of $X$, which yields an alternative definition of the rank that is
applicable to multiparameter persistence modules [SCL+17].

Lastly, let us briefly comment on a set theoretical detail regarding the
category $\operatorname{\mathsf{Tame}}$. In $\operatorname{\mathsf{Tame}}$,
the class of isomorphism classes of objects is a set, as a consequence of
Theorem 2.2. In this article, we consider some class functions defined on
$\operatorname{\mathsf{Tame}}$, referring to them simply as functions for
brevity. Since all class functions on $\operatorname{\mathsf{Tame}}$ we
consider are constant on isomorphism classes of objects, they can be regarded
as proper functions defined on the set of isomorphisms classes of persistent
modules.

###  2.2 Contours

Contours can be thought of as describing coherent ways to “flow” across the
parameter space $[0,\infty)$ of persistence modules. In this article, we call
contour a function $C:[0,\infty)\times[0,\infty)\to[0,\infty)$ such that, for
all $a,b,\varepsilon,\tau$ in $[0,\infty)$, the following inequalities hold:

  1. 1.

if $a\leq b$ and $\varepsilon\leq\tau$, then $C(a,\varepsilon)\leq C(b,\tau)$;

  2. 2.

$a\leq C(a,0)$;

  3. 3.

$C(C(a,\varepsilon),\tau)\leq C(a,\varepsilon+\tau)$.

In [GC17] contours are defined in the case of $n$-parameter persistence
modules. Contours are further studied for $1$-parameter persistence in [CR20],
where several concrete examples are given. In [CR20], the definition of
contour is slightly more general than ours; for example, $C(a,\varepsilon)$
can take the value $\infty$. Similar notions to contours appear in the
literature by the name of _superlinear families of tranlations_ [BDSS15] and
_flows on posets_ [dSMS18].

A contour $C$ is called an action if the inequalities of (2.) and (3.) are
equalities, that is, if $a=C(a,0)$ and
$C(C(a,\varepsilon),\tau)=C(a,\varepsilon+\tau)$, for all
$a,\varepsilon,\tau$. A contour $C$ is regular [CR20] if the following
conditions hold:

  * •

$C(-,\varepsilon):[0,\infty)\to[0,\infty)$ is a monomorphism for all
$\varepsilon\in[0,\infty)$;

  * •

$C(a,-):[0,\infty)\to[0,\infty)$ is a monomorphism whose image is
$[a,\infty)$, for all $\varepsilon\in[0,\infty)$.

The second condition of regular contours ensures that $C(a,0)=a$, for any $a$
in $[0,\infty)$, and that $C$ is strictly increasing in the second variable:
$C(a,\varepsilon)<C(a,\tau)$ whenever $\varepsilon<\tau$, for any $a$ in
$[0,\infty)$.

Let $C$ be a regular contour. For all $a\in[0,\infty)$, we define the function
$\ell(a,-)$ to be the inverse of the function
$C(a,-):[0,\infty)\to[a,\infty)$, that is, $\ell(a,b)=C^{-1}(a,-)(b)$ for any
$b\in[a,\infty)$, and we set $\ell(a,\infty)=\infty$. We call $\ell$ the
lifetime function associated with $C$. We observe that, since regular contours
are injective functions in the second variable, $\ell(a,b)$ is well-defined
for every pair $a\leq b$. Throughout the article, the lifetime of a bar
$K(a,b)$ with respect to a contour $C$ is the value $\ell(a,b)$ of the
lifetime function associated with $C$.

As a first example of contour we consider the standard contour, a function $D$
defined by $D(a,\varepsilon)=a+\varepsilon$, for every
$a,\varepsilon\in[0,\infty)$. Informally, the standard contour describes the
most uniform way to flow in the parameter space $[0,\infty)$ of a persistence
module, linearly with unitary speed. We now introduce a large family of
contours, called integral contours of distance type [CR20, ARSC21],
parametrized by certain real-valued functions. Let $f:[0,\infty)\to(0,\infty)$
be a Lebesgue measurable function, called here a density. For every
$a,\varepsilon\in[0,\infty)$, let $D_{f}(a,\varepsilon)$ be the real number in
$[a,\infty)$ such that

$\varepsilon=\int_{a}^{D_{f}(a,\varepsilon)}f(x)\,dx,$

which is uniquely defined since $f$ takes strictly positive values. The
function $D_{f}:[0,\infty)\times[0,\infty)\to[0,\infty)$ is a contour;
moreover, it is regular and an action. We observe that, if the density $f$ is
the constant function $1$, the distance type contour $D_{1}$ coincides with
the standard contour.

###  2.3 Noise systems

Noise systems provide a way to quantify the size of persistence modules and to
produce pseudometrics on $\operatorname{\mathsf{Tame}}$ by comparing their
sizes [SCL+17]. A noise system on $\operatorname{\mathsf{Tame}}$ is a sequence
$\mathcal{S}=\\{\mathcal{S}_{\varepsilon}\\}_{\varepsilon\in[0,\infty)}$ of
subclasses of $\operatorname{\mathsf{Tame}}$ such that:

  * •

$0\in\mathcal{S}_{\varepsilon}$, for all $\varepsilon$,

  * •

$\mathcal{S}_{\tau}\subseteq\mathcal{S}_{\varepsilon}$ whenever
$\tau\leq\varepsilon$,

  * •

if $0\to X_{0}\to X_{1}\to X_{2}\to 0$ is a short exact sequence in
$\operatorname{\mathsf{Tame}}$, then:

    * –

if $X_{1}\in\mathcal{S}_{\varepsilon}$, then
$X_{0},X_{2}\in\mathcal{S}_{\varepsilon}$,

    * –

if $X_{0}\in\mathcal{S}_{\varepsilon}$ and $X_{2}\in\mathcal{S}_{\tau}$, then
$X_{1}\in\mathcal{S}_{\varepsilon+\tau}$.

Given a noise system
$\mathcal{S}=\\{\mathcal{S}_{\varepsilon}\\}_{\varepsilon\in[0,\infty)}$ it is
natural to associate to each persistence module $X$ the smallest $\varepsilon$
such that $X\in\mathcal{S}_{\varepsilon}$. This defines a function
$\alpha_{\mathcal{S}}:\operatorname{\mathsf{Tame}}\rightarrow[0,\infty]$
called in [GNOW21] the amplitude associated to $\mathcal{S}$.

A noise system
$\mathcal{S}=\\{\mathcal{S}_{\varepsilon}\\}_{\varepsilon\in[0,\infty)}$ is
closed under direct sums if $X\oplus Y\in\mathcal{S}_{\varepsilon}$ whenever
$X,Y\in\mathcal{S}_{\varepsilon}$, for every $\varepsilon\in[0,\infty)$.
Contours (Section 2.2) provide examples of noise systems satisfying this
property. Given a contour $C$ and any $\varepsilon\in[0,\infty)$, let

$\mathcal{S}_{\varepsilon}:=\\{X\in\operatorname{\mathsf{Tame}}\mid X_{a\leq
C(a,\varepsilon)}=0\text{ for all }a\in[0,\infty)\\}.$

It is proved in [GC17, Prop. 9.4] that the sequence
$\\{\mathcal{S}_{\varepsilon}\\}_{\varepsilon\in[0,\infty)}$ defined in this
way is a noise system closed under direct sums. In particular, the noise
system induced by the standard contour has components

$\mathcal{S}_{\varepsilon}:=\\{X\in\operatorname{\mathsf{Tame}}\mid X_{a\leq
a+\varepsilon}=0\text{ for all }a\in[0,\infty)\\},$

and coincides with the standard noise system introduced in [SCL+17].

###  2.4 Pseudometrics between persistence modules

In this article, we call (extended) pseudometric on
$\operatorname{\mathsf{Tame}}$ a function $d$ assigning to any pair of
persistence modules $X,Y$ in $\operatorname{\mathsf{Tame}}$ an element
$d(X,Y)\in[0,\infty]$ such that the following conditions hold for any $X,Y,Z$:

  * •

$d(X,Y)=d(Y,X)$,

  * •

$d(X,Y)=0$ whenever $X$ is isomorphic to $Y$,

  * •

$d(X,Z)\leq d(X,Y)+d(Y,Z)$.

The third condition, known as the triangle inequality, combined with the
second one yields $d(X,Y)=d(X^{\prime},Y^{\prime})$ whenever $X\cong
X^{\prime}$ and $Y\cong Y^{\prime}$. This definition of pseudometric coincides
with Definition $3.3$ in [BSS22] when considering the category Tame.

We now briefly explain how noise systems yield pseudometrics on
$\operatorname{\mathsf{Tame}}$. Let $\mathcal{S}$ be a noise system on
$\operatorname{\mathsf{Tame}}$. For any $\varepsilon\in[0,\infty)$, we say
that two persistence modules $X$ and $Y$ are $\varepsilon$-close if there
exists a persistence module $Z$ and a pair of morphisms
$X\xleftarrow{f}Z\xrightarrow{g}Y$ such that

$\ker
f\in\mathcal{S}_{\varepsilon_{1}},\quad\operatorname{coker}f\in\mathcal{S}_{\varepsilon_{2}},\quad\ker
g\in\mathcal{S}_{\varepsilon_{3}},\quad\operatorname{coker}g\in\mathcal{S}_{\varepsilon_{4}},$

for some
$\varepsilon_{1},\varepsilon_{2},\varepsilon_{3},\varepsilon_{4}\in[0,\infty)$
such that
$\varepsilon_{1}+\varepsilon_{2}+\varepsilon_{3}+\varepsilon_{4}\leq\varepsilon$.
Define

$d_{\mathcal{S}}(X,Y)\coloneqq\inf\left\\{\varepsilon\in[0,\infty)\mid\text{$X$
and $Y$ are $\varepsilon$-close}\right\\},$

adopting the convention $\inf\varnothing=\infty$. As shown in [SCL+17, Prop.
8.7], $d_{\mathcal{S}}$ is a pseudometric on $\operatorname{\mathsf{Tame}}$.

We remark that the pseudometric $d_{\mathcal{S}}$ associated with the standard
noise system is equivalent to the interleaving distance [Les15], as proved by
[GC17, Prop. 12.2].

###  2.5 Hierarchical stabilization and stable rank

In the context of topological data analysis, hierarchical stabilization is a
method to convert a discrete invariant of persistence modules into a stable
invariant suitable for data analysis. This technique has been studied in
[SCL+17, GC17] in the case of multiparameter persistence modules, and has been
further investigated in [CR20] in the case of one-parameter persistence.
Hierarchical stabilization has a very general formulation, which allows for
several choices of discrete invariants, and in principle is not restricted to
categories of persistence modules. For the hierarchical stabilization of the
rank, also called stable rank, some computational methods have been developed
[GC17, CR20]. In this article we will restrict our attention to the stable
rank and further develop its computation.

Besides choosing a discrete invariant, hierarchical stabilization requires the
choice of a pseudometric between persistence modules, which plays an active
role in calculating the corresponding stable invariant. Consider the rank of a
persistence module (Section 2.1) as a function
$\operatorname{rank}:\operatorname{\mathsf{Tame}}\to\mathbb{N}$ mapping any
persistence module $X$ to the natural number $\operatorname{rank}(X)$.

######  Definition 2.4.

Given a pseudometric $d$ on $\operatorname{\mathsf{Tame}}$ (Section 2.4), the
stable rank of a persistence module $X$ with respect to the pseudometric $d$
is the function $\widehat{\operatorname{rank}}_{d}(X):[0,\infty)\to[0,\infty)$
defined, for all $t\in[0,\infty)$, by

$\widehat{\operatorname{rank}}_{d}(X)(t):=\min\\{\operatorname{rank}(Y)\mid
Y\in\operatorname{\mathsf{Tame}}\text{ and }d(X,Y)\leq t\\}.$

We observe that the function $\widehat{\operatorname{rank}}_{d}(X)$ is non-
increasing and takes values in $\mathbb{N}$, so it belongs to the set
$\mathcal{M}$ of Lebesgue measurable functions $[0,\infty)\to[0,\infty)$.

To illustrate the stability of the invariant
$\widehat{\operatorname{rank}}_{d}$, we consider a pseudometric $d_{\bowtie}$
on $\mathcal{M}$, called the interleaving distance, defined for all
$f,g\in\mathcal{M}$ by

$d_{\bowtie}(f,g):=\inf\\{\varepsilon\in[0,\infty)\mid f(t)\geq
g(t+\varepsilon)\text{ and }g(t)\geq f(t+\varepsilon),\text{ for all
}t\in[0,\infty)\\},$

setting by convention $\inf\varnothing=\infty$. The stable rank then satisfies
the following Lipschitz condition.

######  Proposition 2.5 ([SCL+17]).

Let $d$ be a pseudometric on $\operatorname{\mathsf{Tame}}$, and let $X,Y$ be
persistence modules. Then $d(X,Y)\geq
d_{\bowtie}(\widehat{\operatorname{rank}}_{d}(X),\widehat{\operatorname{rank}}_{d}(Y))$.

###  2.6 $p$-norms

In this subsection, we briefly review properties of $p$-norms that are useful
for our work. For $p\in[1,\infty]$, the $p$-norm (also called $L^{p}$-norm) on
$\mathbb{R}^{n}$ is the function
$\left\|\cdot\right\|_{p}:\mathbb{R}^{n}\to[0,\infty)$ defined, for each
$x=(x_{1},x_{2},\ldots,x_{n})\in\mathbb{R}^{n}$, by

$\left\|x\right\|_{p}\coloneqq\begin{cases}\left(\sum_{i=1}^{n}\lvert
x_{i}\rvert^{p}\right)^{\frac{1}{p}}&\text{for $p\in[1,\infty)$}\\\
\max\\{\lvert x_{i}\rvert\\}_{i\in\\{1,\ldots,n\\}}&\text{for
$p=\infty$}.\end{cases}$

We note that $\displaystyle\|x\|_{\infty}=\lim_{p\to\infty}\|x\|_{p}$, for all
$x\in\mathbb{R}^{n}$. The triangle inequality (or subadditivity condition)
$\left\|x+y\right\|_{p}\leq\left\|x\right\|_{p}+\left\|y\right\|_{p}$, for all
$x,y\in\mathbb{R}^{n}$, is also referred to as Minkowski inequality.

A fundamental property of $p$-norms on $\mathbb{R}^{n}$ is the following: for
$x\in\mathbb{R}^{n}$ and for $1\leq p\leq q\leq\infty$, the inequalities

$\left\|x\right\|_{q}\leq\left\|x\right\|_{p}\leq
n^{\left(\frac{1}{p}-\frac{1}{q}\right)}\left\|x\right\|_{q}$ (2.1)

hold and are sharp, where by convention we set $\frac{1}{\infty}=0$. We refer
to the first inequality as the monotonicity property of $p$-norms.

The following elementary property of $p$-norms is useful in this work: for
$p\in[1,\infty]$, if $x=(x_{1},\ldots,x_{n})\in\mathbb{R}^{n}$,
$y=(y_{1},\ldots,y_{m})\in\mathbb{R}^{m}$ and
$z=(x_{1},\ldots,x_{n},y_{1},\ldots,y_{m})\in\mathbb{R}^{n+m}$, then

$\left\|\left(\left\|x\right\|_{p},\left\|y\right\|_{p}\right)\right\|_{p}=\left\|z\right\|_{p}.$
(2.2)

Finally, let us also observe that $p$-norms are permutation invariant, and
that they preserve the order on $[0,\infty)^{n}$, meaning that if $x\leq y$ in
$[0,\infty)^{n}$ according to the coordinate-wise order, then
$\|x\|_{p}\leq\|y\|_{p}$.

In this article, we generally consider $p$-norms as functions from
$[0,\infty]^{n}$ to $[0,\infty]$, extending the usual definition by setting
$\|x\|_{p}=\infty$ whenever $x$ has some coordinate $x_{i}=\infty$. All
properties stated above still hold with this definition.

Following [ST20], we will consider $p$-norms of persistence modules, whose
definition relies on the barcode decomposition (Section 2.1). For
$p\in[1,\infty]$, the $p$-norm of a persistence module $X$ having barcode
decomposition $X\cong\bigoplus_{i=1}^{k}K(a_{i},b_{i})$ is defined by

$\left\|X\right\|_{p}\coloneqq\begin{cases}\left(\sum_{i=1}^{k}\lvert
b_{i}-a_{i}\rvert^{p}\right)^{\frac{1}{p}}&\text{for $p\in[1,\infty)$}\\\
\max\\{\lvert b_{i}-a_{i}\rvert\\}_{i\in\\{1,\ldots,k\\}}&\text{for
$p=\infty$}.\end{cases}$

##  3 Monomorphisms, epimorphisms, and their $p$-norms

In this section we introduce bar-to-bar morphisms between persistence modules
(Definition 3.1), which can informally be described as morphisms such that
every bar in the barcode decomposition of the domain maps non-trivially to at
most one bar in the barcode decomposition of the codomain. Our aim is proving
results (Theorem 3.13 and Theorem 3.14) which compare monomorphisms and
epimorphisms between two persistence modules to bar-to-bar monomorphisms and
epimorphisms between the same persistence modules.

###  3.1 Free presentations of monomorphisms

Given a monomorphism $f:Z\hookrightarrow X$ between persistence modules, we
want to determine the barcode decomposition of $\operatorname{coker}f$. We
briefly describe a method that uses free resolutions of the persistence
modules $Z$ and $X$.

Consider the diagram

${0}$${{R_{Z}}}$${{G_{Z}}}$${Z}$${0}$${0}$${{R_{X}}}$${{G_{X}}}$${X}$${0}$${{\operatorname{coker}f}}$$\scriptstyle{f}$$\scriptstyle{f_{G}}$$\scriptstyle{f_{R}}$$\scriptstyle{i_{Z}}$$\scriptstyle{p_{Z}}$$\scriptstyle{i_{X}}$$\scriptstyle{p_{X}}$$\scriptstyle{q}$

where the rows are (minimal) free resolutions of the persistence modules $Z$
and $X$ respectively, and $q$ denotes the canonical epimorphism. The given
morphism $f$ induces a morphism $f_{G}:G_{Z}\to G_{X}$ between the modules of
generators and a morphism $f_{R}:R_{Z}\to R_{X}$ between the modules of
relations that make the diagram commutative (see e.g. [Rot09, Thm. 6.16]). We
have
$\operatorname{coker}f\cong\operatorname{coker}([f_{G}\;i_{X}]:G_{Z}\oplus
R_{X}\xrightarrow{}G_{X})$, where the morphism $[f_{G}\;i_{X}]$ sends
$(z,r)\in G_{Z}\oplus R_{X}$ to $f_{G}(z)+i_{X}(r)$. The isomorphisms of
cokernels is easy to prove, for example observing that the image of the
composition $qp_{X}$ is $\operatorname{coker}f$ and verifying via diagram
chasing that its kernel coincides with the image of
$[f_{G}\;i_{X}]:G_{Z}\oplus R_{X}\xrightarrow{}G_{X}$.

In other words, we have a free presentation of $\operatorname{coker}f$

$G_{Z}\oplus
R_{X}\xrightarrow{[f_{G}\;i_{X}]}G_{X}\twoheadrightarrow\operatorname{coker}f,$

and we can use it to determine the barcode decomposition of
$\operatorname{coker}f$. More precisely, observing that
$\operatorname{coker}f$ is isomorphic to the homology at the middle term of
the free chain complex

$G_{Z}\oplus R_{X}\xrightarrow{[f_{G}\;i_{X}]}G_{X}\longrightarrow 0,$

we can compute the barcode decomposition of $\operatorname{coker}f$ by using
the persistent homology algorithm on a matrix $M_{f}$ representing the
morphism $[f_{G}\;i_{X}]$, as we detail in Section 3.2. The persistent
homology algorithm determines “pairings” of the basis elements of $G_{Z}\oplus
R_{X}$ with the basis elements of $G_{X}$, which corresponds to the start- and
endpoint pairs of the bars of $\operatorname{coker}f$.

In this section, we are interested in particular morphisms between persistence
modules, which we call bar-to-bar morphisms.

######  Definition 3.1.

A morphism $f:Z\to X$ of persistence modules is bar-to-bar if there are
barcode decomposition $Z=\bigoplus_{i=1}^{m}Z_{i}$ and
$X=\bigoplus_{j=1}^{n}X_{j}$ and there exist a subset
$I\subseteq\\{1,\ldots,m\\}$ and an injective function
$\alpha:I\to\\{1,\ldots,n\\}$ such that

$f=\bigoplus_{i\in I}f_{i}\oplus\bigoplus_{i\in\\{1,\ldots,m\\}\setminus
I}g_{i}\oplus\bigoplus_{j\in\\{1,\ldots,n\\}\setminus\alpha(I)}h_{j},$ (3.1)

where each $f_{i}:=f|_{Z_{i}}$ is a nonzero morphism $Z_{i}\to X_{\alpha(i)}$,
and where $g_{i}$ denotes the zero morphism $Z_{i}\to 0$ and $h_{j}$ denotes
the zero morphism $0\to X_{j}$.

######  Remark 3.2.

If $f$ is a bar-to-bar morphism as in (3.1), then $\ker f$ and
$\operatorname{coker}f$ are easily determined recalling the case of a morphism
between two bars (see Section 2.1), namely:

$\ker f=\bigoplus_{i\in I}\ker
f_{i}\oplus\bigoplus_{i\in\\{1,\ldots,m\\}\setminus
I}Z_{i},\qquad\operatorname{coker}f=\bigoplus_{i\in
I}\operatorname{coker}f_{i}\oplus\bigoplus_{j\in\\{1,\ldots,n\\}\setminus\alpha(I)}X_{j}.$

Furthermore, if $f$ is a monomorphism, the fact that $\ker f$ vanishes implies
that $I=\\{1,\ldots,m\\}$, and the existence of the injective function
$\alpha$ implies $m\leq n$. Dually, $\alpha(I)=\\{1,\ldots,n\\}$ and $n\leq m$
if $f$ is an epimorphism.

The main result of this section is the following (Theorem 3.13): given any
monomorphism $f:Z\hookrightarrow X$, there is a bar-to-bar monomorphism
$f_{b}:Z\hookrightarrow X$ such that
$\|\operatorname{coker}f_{b}\|_{p}\leq\|\operatorname{coker}f\|_{p}$ for any
$p\in[1,\infty]$. A dual statement (Theorem 3.14) holds for kernels of
epimorphisms.

###  3.2 Finding monomorphisms with smaller cokernels

To prove our inequalities between $p$-norms of cokernels, we follow a strategy
used in [ST20, Sect. 7.1] to obtain new inequalities between $p$-norms of
persistence modules, based on the rearrangement inequality (Theorem 3.11) and
on the comparison of pairings in certain barcode decompositions using the
persistent homology algorithm. For simplicity, we fix the field with two
elements $\mathbb{F}_{2}$ as the base field in this subsection, but our
results work for any base field.

Let $Z$ and $X$ be persistence modules and $f\colon Z\hookrightarrow X$ a
monomorphism of persistence modules. Fix $\\{z_{i}\\}_{i=1}^{m}$ and
$\\{x_{j}\\}_{j=1}^{n}$ sets of generators of $Z$ and $X$, respectively, and
denote by $Z=\bigoplus_{i=1}^{m}K(a_{i}^{z},b_{i}^{z})$ and
$X=\bigoplus_{j=1}^{n}K(a_{j}^{x},b_{j}^{x})$ the respective barcode
decompositions. That is, for every $z_{i}$, $a_{i}^{z}$ is the degree of
$z_{i}\in Z_{a_{i}^{z}}$ and $b_{i}^{z}$ is the endpoint of the bar generated
by $z_{i}$, and similarly for the $x_{j}$. In this section, we assume for the
ease of exposition that $X$ has no infinite bars in its decomposition. All the
results we present can be adapted to the general case by setting
$b_{j}^{x}=\infty$ whenever $x_{j}$ generates an infinite bar. Figure 1(a)
represents an example monomorphism $f$ with its barcode decomposition.

The main results of this subsection are based on matrix reduction arguments
applied to a matrix $M_{f}$ associated with the morphism
$[f_{G}\;i_{X}]:G_{Z}\oplus R_{X}\rightarrow G_{X}$ (Section 3.1), which we
construct as follows.

######  Definition 3.3.

Define the sets of labels $L_{X}:=\\{x_{j}\\}_{j=1}^{n}$,
$C_{Z}:=\\{z_{i}\\}_{i=1}^{m}$, and $C_{X}:=\\{r_{j}\\}_{j=1}^{n}$, where
$\\{z_{i}\\}_{i=1}^{m}$ and $\\{x_{j}\\}_{j=1}^{n}$ are generators of $Z$ and
$X$ respectively and $r_{j}$ corresponds to the generator of $R_{X}$ that is
sent by $i_{X}$ to the bar generated by $x_{j}$ in $G_{X}$. The degree of
$r_{j}$ is $b_{j}^{x}$.

The presentation matrix of $f$ is an $n\times(m+n)$ matrix $M_{f}$ with rows
labeled by $L_{X}$ and columns labeled by $C_{Z}\sqcup C_{X}$, constructed as
follows. For each $z_{i}$ in $C_{Z}$, we set the corresponding column of
$M_{f}$ to be the column vector
$f_{a_{i}^{z}}(z_{i})\in\text{span}(X_{a_{j}^{x}\leq
a_{i}^{z}}(x_{j}))_{j=1}^{n}$ in the basis given by the span. For each $r_{j}$
in $C_{X}$, we set the corresponding column of $M_{f}$ to be the zero vector
except with a $1$ on the row $x_{j}$. Finally, we reorder the rows and columns
so that the degrees of the labels are nondecreasing.

We denote by $M_{f}(x,c)$ the entry of $M_{f}$ in row $x\in L_{X}$ and column
$c\in C_{Z}\sqcup C_{X}$.

See Figure 1(b) for a presentation matrix of the example monomorphism $f$ from
Figure 1(a). Note that the restriction of the matrix $M_{f}$ to the columns
$C_{X}$ represents the morphism $i_{X}\colon R_{X}\to G_{X}$.

$a_{1}^{z}$$b_{1}^{z}=b_{3}^{x}$$a_{2}^{z}$$b_{2}^{z}=b_{3}^{x}$$a_{3}^{z}$$b_{3}^{z}=b_{6}^{x}$$a_{1}^{x}$$b_{1}^{x}$$a_{2}^{x}$$b_{2}^{x}$$a_{3}^{x}$$b_{3}^{x}$$a_{4}^{x}$$b_{4}^{x}$$a_{5}^{x}$$b_{5}^{x}$$a_{6}^{x}$$b_{6}^{x}$$Z$$X$$f$
(a) A monomorphism $f$. The persistence modules $Z$ and $X$ are represented in
terms of their barcode decompositions. An arrow between bars indicates that
the bar in the domain maps non-trivially to the bar in the codomain.

$\blockarray{c@{}c@{}*{9}c}&z_{1}r_{1}z_{2}z_{3}r_{2}r_{3}r_{4}r_{5}r_{6}\\\
\block{c[c@{\;}*{9}c]}x_{5}\leavevmode\hbox to11.67pt{\vbox
to13.11pt{\pgfpicture\makeatletter\hbox{\hskip 5.83301pt\lower-3.33301pt\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{
}\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-2.5pt}{0.0pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{0}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hbox
to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}\leavevmode\hbox
to11.67pt{\vbox to13.11pt{\pgfpicture\makeatletter\hbox{\hskip
5.83301pt\lower-3.33301pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{
}\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-2.5pt}{0.0pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{0}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hbox
to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}11\\\ x_{6}0011\\\
x_{2}0101\\\ x_{3}1101\\\ x_{1}1100\\\ x_{4}\leavevmode\hbox to11.67pt{\vbox
to13.11pt{\pgfpicture\makeatletter\hbox{\hskip 5.83301pt\lower-3.33301pt\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{
}\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-2.5pt}{0.0pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{0}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hbox
to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}0\leavevmode\hbox
to11.67pt{\vbox to13.11pt{\pgfpicture\makeatletter\hbox{\hskip
5.83301pt\lower-3.33301pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{
}\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-2.5pt}{0.0pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{1}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hbox
to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}1\\\ \leavevmode\hbox
to12.47pt{\vbox to13.91pt{\pgfpicture\makeatletter\hbox{\hskip
6.233pt\lower-3.733pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{
}\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ } { {}{}{}}{}{{}}{} {
{}{}{}}{}{{}}{}{}{}{}{{}}{}{}\pgfsys@moveto{-6.033pt}{9.97743pt}\pgfsys@moveto{-6.033pt}{9.97743pt}\pgfsys@lineto{-6.033pt}{-3.533pt}\pgfsys@lineto{6.033pt}{-3.533pt}\pgfsys@lineto{6.033pt}{9.97743pt}\pgfsys@closepath\pgfsys@moveto{6.033pt}{-3.533pt}\pgfsys@stroke\pgfsys@invoke{
} { {}{}{}}{}{{}}{} {
{}{}{}}{}{{}}{}{}{}{}{{}}{}{}\pgfsys@moveto{-6.033pt}{9.97743pt}\pgfsys@moveto{-6.033pt}{9.97743pt}\pgfsys@lineto{-6.033pt}{-3.533pt}\pgfsys@lineto{6.033pt}{-3.533pt}\pgfsys@lineto{6.033pt}{9.97743pt}\pgfsys@closepath\pgfsys@moveto{6.033pt}{-3.533pt}\pgfsys@stroke\pgfsys@invoke{
} \pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hbox
to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}$ (b) The associated
presentation matrix $M_{f}$. The columns $C_{Z}=\\{z_{1},z_{2},z_{3}\\}$ are
outlined, while the columns $C_{X}=\\{r_{1},\ldots,r_{6}\\}$ are represented
sparsely: blank spaces are zero coefficients.

Figure 1: Example of a monomorphism and its associated matrix.

######  Remark 3.4.

As we mentioned in Section 3.1, we want to determine the barcode decomposition
of $\operatorname{coker}f$ by using the persistent homology algorithm on the
matrix $M_{f}$ representing the morphism $[f_{G}\;i_{X}]$. More precisely, we
are interested in methods to compute barcode decompositions based on matrix
reduction via left-to-right column operation, like the so-called standard
algorithm for persistent homology [ELZ00, ZC05] (see Algorithm 1 in [OPT+17]
for a description). Even though these methods are usually presented for
filtered simplicial complexes in the literature, they extend to graded free
chain complexes as in our case. The barcode decomposition (of
$\operatorname{coker}f$ in our case) can be read out from a reduced matrix,
and does not depend on the way of reducing the matrix via left-to-right column
operations (see Lemma 3.5).

Let $\bar{M}_{f}$ be a complete reduction of $M_{f}$ by left-to-right column
transformations, where a matrix is said to be reduced if the lowest nonzero
entry of every column is the only nonzero entry of its row. Let $\sigma_{f}$
be the function that to the $k$th nonzero column of $\bar{M}_{f}$ associates
the row of its lowest nonzero entry, for every $k\in\\{1,\ldots,n\\}$. We know
that $\sigma_{f}$ is a permutation on $\\{1,\ldots,n\\}$ since the $n$ columns
of $M_{f}$ in $C_{X}$ are linearly independent. In this section, we use square
brackets for a permutation $\sigma=[\sigma(1)\cdots\sigma(n)]$ on
$\\{1,\ldots,n\\}$ expressed in one-line notation, to distinguish it from the
notation for cycles, denoted by $(c_{1}\,c_{2}\,\cdots\,c_{\ell})$. In the
example of Figure 1, we get

$\bar{M}_{f}=\left[\enspace\begin{matrix}\leavevmode\hbox to11.67pt{\vbox
to13.11pt{\pgfpicture\makeatletter\hbox{\hskip 5.83301pt\lower-3.33301pt\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{
}\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-2.5pt}{0.0pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{0}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hbox
to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}&&\leavevmode\hbox
to11.67pt{\vbox to13.11pt{\pgfpicture\makeatletter\hbox{\hskip
5.83301pt\lower-3.33301pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{
}\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-2.5pt}{0.0pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{0}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hbox
to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}&1&&&&\framebox{$1$}&\\\
0&&0&1&&&\framebox{$1$}&&0\\\ 0&&\framebox{$1$}&0&0&&&&\\\
1&\framebox{$1$}&0&0&&0&&&\\\ \framebox{$1$}&0&0&0&&&&&\\\ \leavevmode\hbox
to11.67pt{\vbox to13.11pt{\pgfpicture\makeatletter\hbox{\hskip
5.83301pt\lower-3.33301pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{
}\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-2.5pt}{0.0pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{0}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hbox
to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}&&0&\leavevmode\hbox
to11.67pt{\vbox to13.11pt{\pgfpicture\makeatletter\hbox{\hskip
5.83301pt\lower-3.33301pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{
}\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-2.5pt}{0.0pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{\framebox{$1$}}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hbox
to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}&&&0&&\\\
\end{matrix}\enspace\right]\leavevmode\hbox to12.47pt{\vbox
to13.91pt{\pgfpicture\makeatletter\hbox{\hskip 6.233pt\lower-3.733pt\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{
}\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ } { {}{}{}}{}{{}}{} {
{}{}{}}{}{{}}{}{}{}{}{{}}{}{}\pgfsys@moveto{-6.033pt}{9.97743pt}\pgfsys@moveto{-6.033pt}{9.97743pt}\pgfsys@lineto{-6.033pt}{-3.533pt}\pgfsys@lineto{6.033pt}{-3.533pt}\pgfsys@lineto{6.033pt}{9.97743pt}\pgfsys@closepath\pgfsys@moveto{6.033pt}{-3.533pt}\pgfsys@stroke\pgfsys@invoke{
} { {}{}{}}{}{{}}{} {
{}{}{}}{}{{}}{}{}{}{}{{}}{}{}\pgfsys@moveto{-6.033pt}{9.97743pt}\pgfsys@moveto{-6.033pt}{9.97743pt}\pgfsys@lineto{-6.033pt}{-3.533pt}\pgfsys@lineto{6.033pt}{-3.533pt}\pgfsys@lineto{6.033pt}{9.97743pt}\pgfsys@closepath\pgfsys@moveto{6.033pt}{-3.533pt}\pgfsys@stroke\pgfsys@invoke{
} \pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hbox
to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}},$

where we have outlined the lowest nonzero coefficient of each column, and so
$\sigma_{f}=[543621]$. We do not need to specify the order of transformations
in this reduction thanks to the following lemma, which is a consequence of the
pairing uniqueness lemma of [CSEM06, Sect. 3].

######  Lemma 3.5.

The permutation $\sigma_{f}$ is well-defined. In particular, it does not
depend on the choice of a sequence of left-to-right column operations to
obtain a reduced matrix from $M_{f}$.

By design of the persistent homology algorithm, a barcode decomposition of
$\operatorname{coker}f$ is completely determined by $\sigma_{f}$ together with
the degrees of the generators of $Z$ and $X$. In Corollary 3.10 we will
provide a precise statement.

From the matrix $M_{f}$ we define the bar-to-bar matrix $M_{b}$ by Algorithm
1. The bar-to-bar matrix $M_{b}$ is the presentation matrix of a bar-to-bar
monomorphism $f_{b}:Z\hookrightarrow X$ having the same domain and codomain as
$f$.

Algorithm 1 also partially reduces $M_{f}$ and constructs an injective
function $r_{\max}\colon C_{Z}\to C_{X}$. Given a column $z$ in $C_{Z}$, we
call $r_{\max}(z)$ its rightmost matched column. Informally, Algorithm 1
computes the bar-to-bar matrix $M_{b}$ by setting to zero each column $z$ of
$M_{f}$ in $C_{Z}$ except for the nonzero entry on the unique row $x$ such
that $M_{f}(x,r_{\max}(z))=1$. See Figure 2 for an example.

$\left[\enspace\begin{matrix}\leavevmode\hbox to11.67pt{\vbox
to13.11pt{\pgfpicture\makeatletter\hbox{\hskip 5.83301pt\lower-3.33301pt\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{
}\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-2.5pt}{0.0pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{0}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hbox
to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}&&\leavevmode\hbox
to11.67pt{\vbox to13.11pt{\pgfpicture\makeatletter\hbox{\hskip
5.83301pt\lower-3.33301pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{
}\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-2.5pt}{0.0pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{0}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hbox
to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}&1&&&&1&\\\
0&&0&\leavevmode\hbox to11.67pt{\vbox
to13.11pt{\pgfpicture\makeatletter\hbox{\hskip 5.83301pt\lower-3.33301pt\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{
}\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-2.5pt}{0.0pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{1}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hbox
to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}&&&&&\leavevmode\hbox
to11.67pt{\vbox to13.11pt{\pgfpicture\makeatletter\hbox{\hskip
5.83301pt\lower-3.33301pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{
}\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-2.5pt}{0.0pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{\framebox{1}}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hbox
to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}\\\
0&&\leavevmode\hbox to11.67pt{\vbox
to13.11pt{\pgfpicture\makeatletter\hbox{\hskip 5.83301pt\lower-3.33301pt\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{
}\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-2.5pt}{0.0pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{1}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hbox
to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}&&\leavevmode\hbox
to11.67pt{\vbox to13.11pt{\pgfpicture\makeatletter\hbox{\hskip
5.83301pt\lower-3.33301pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{
}\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-2.5pt}{0.0pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{\framebox{1}}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hbox
to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}&&&&\\\
\leavevmode\hbox to11.67pt{\vbox
to13.11pt{\pgfpicture\makeatletter\hbox{\hskip 5.83301pt\lower-3.33301pt\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{
}\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-2.5pt}{0.0pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{1}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hbox
to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}&&&&&\leavevmode\hbox
to11.67pt{\vbox to13.11pt{\pgfpicture\makeatletter\hbox{\hskip
5.83301pt\lower-3.33301pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{
}\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-2.5pt}{0.0pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{\framebox{1}}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hbox
to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}&&&\\\ 1&1&0&0&&&&&\\\
\leavevmode\hbox to11.67pt{\vbox
to13.11pt{\pgfpicture\makeatletter\hbox{\hskip 5.83301pt\lower-3.33301pt\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{
}\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-2.5pt}{0.0pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{0}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hbox
to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}&&0&\leavevmode\hbox
to11.67pt{\vbox to13.11pt{\pgfpicture\makeatletter\hbox{\hskip
5.83301pt\lower-3.33301pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{
}\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-2.5pt}{0.0pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{1}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hbox
to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}&&&1&&\\\
\end{matrix}\enspace\right]\leavevmode\hbox to12.47pt{\vbox
to13.91pt{\pgfpicture\makeatletter\hbox{\hskip 6.233pt\lower-3.733pt\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{
}\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ } { {}{}{}}{}{{}}{} {
{}{}{}}{}{{}}{}{}{}{}{{}}{}{}\pgfsys@moveto{-6.033pt}{9.97743pt}\pgfsys@moveto{-6.033pt}{9.97743pt}\pgfsys@lineto{-6.033pt}{-3.533pt}\pgfsys@lineto{6.033pt}{-3.533pt}\pgfsys@lineto{6.033pt}{9.97743pt}\pgfsys@closepath\pgfsys@moveto{6.033pt}{-3.533pt}\pgfsys@stroke\pgfsys@invoke{
} { {}{}{}}{}{{}}{} {
{}{}{}}{}{{}}{}{}{}{}{{}}{}{}\pgfsys@moveto{-6.033pt}{9.97743pt}\pgfsys@moveto{-6.033pt}{9.97743pt}\pgfsys@lineto{-6.033pt}{-3.533pt}\pgfsys@lineto{6.033pt}{-3.533pt}\pgfsys@lineto{6.033pt}{9.97743pt}\pgfsys@closepath\pgfsys@moveto{6.033pt}{-3.533pt}\pgfsys@stroke\pgfsys@invoke{
} { {}{}{}{}{}}{}{ {}{}{}{}{}} {{{{{}}{ {}{}}{{}{}} {}{}}{}{}}}{}{{{{{}}{
{}{}}{{}{}}
{}{}}{}{}}}{{}}{}{}{}{}{}{}{}{{}}\pgfsys@moveto{0.0pt}{3.22221pt}\pgfsys@lineto{0.4pt}{3.22221pt}\pgfsys@stroke\pgfsys@invoke{
}{{}{{}}{}{}{{}}{{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-0.2pt}{3.22221pt}\pgfsys@invoke{
}\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope}}{{}}}} { {}{}{}{}{}}{}{ {}{}{}{}{}} {{{{{}}{ {}{}}{{}{}}
{}{}}{}{}}}{}{{{{{}}{ {}{}}{{}{}}
{}{}}{}{}}}{{}}{}{}{}{}{}{}{}{{}}\pgfsys@moveto{0.0pt}{3.22221pt}\pgfsys@lineto{0.4pt}{3.22221pt}\pgfsys@stroke\pgfsys@invoke{
}{{}{{}}{}{}{{}}{{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-0.2pt}{3.22221pt}\pgfsys@invoke{
}\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope}}{{}}}} { {}{}{}{}{}}{}{ {}{}{}{}{}} {{{{{}}{ {}{}}{{}{}}
{}{}}{}{}}}{}{{{{{}}{ {}{}}{{}{}}
{}{}}{}{}}}{{}}{}{}{}{}{}{}{}{{}}\pgfsys@moveto{0.0pt}{3.22221pt}\pgfsys@lineto{0.4pt}{3.22221pt}\pgfsys@stroke\pgfsys@invoke{
}{{}{{}}{}{}{{}}{{{}}{{{}}{\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-0.2pt}{3.22221pt}\pgfsys@invoke{
}\pgfsys@invoke{ \lxSVG@closescope }\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope}}{{}}}} \pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope\hbox
to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}$

(a) The matrix $M_{f}$ after execution of Algorithm 1, with arrows
representing the function $r_{\max}$.

$\left[\enspace\begin{matrix}\leavevmode\hbox to11.67pt{\vbox
to13.11pt{\pgfpicture\makeatletter\hbox{\hskip 5.83301pt\lower-3.33301pt\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{
}\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-2.5pt}{0.0pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{0}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hbox
to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}&&\leavevmode\hbox
to11.67pt{\vbox to13.11pt{\pgfpicture\makeatletter\hbox{\hskip
5.83301pt\lower-3.33301pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{
}\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-2.5pt}{0.0pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{0}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hbox
to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}&0&&&&1&\\\
0&&0&1&&&&&1\\\ 0&&1&0&1&&&&\\\ 1&&0&0&&1&&&\\\ 0&1&0&0&&&&&\\\
\leavevmode\hbox to11.67pt{\vbox
to13.11pt{\pgfpicture\makeatletter\hbox{\hskip 5.83301pt\lower-3.33301pt\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{
}\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-2.5pt}{0.0pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{0}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hbox
to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}&&0&\leavevmode\hbox
to11.67pt{\vbox to13.11pt{\pgfpicture\makeatletter\hbox{\hskip
5.83301pt\lower-3.33301pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{
}\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-2.5pt}{0.0pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{0}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hbox
to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}&&&1&&\\\
\end{matrix}\enspace\right]\leavevmode\hbox to12.47pt{\vbox
to13.91pt{\pgfpicture\makeatletter\hbox{\hskip 6.233pt\lower-3.733pt\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{
}\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ } { {}{}{}}{}{{}}{} {
{}{}{}}{}{{}}{}{}{}{}{{}}{}{}\pgfsys@moveto{-6.033pt}{9.97743pt}\pgfsys@moveto{-6.033pt}{9.97743pt}\pgfsys@lineto{-6.033pt}{-3.533pt}\pgfsys@lineto{6.033pt}{-3.533pt}\pgfsys@lineto{6.033pt}{9.97743pt}\pgfsys@closepath\pgfsys@moveto{6.033pt}{-3.533pt}\pgfsys@stroke\pgfsys@invoke{
} { {}{}{}}{}{{}}{} {
{}{}{}}{}{{}}{}{}{}{}{{}}{}{}\pgfsys@moveto{-6.033pt}{9.97743pt}\pgfsys@moveto{-6.033pt}{9.97743pt}\pgfsys@lineto{-6.033pt}{-3.533pt}\pgfsys@lineto{6.033pt}{-3.533pt}\pgfsys@lineto{6.033pt}{9.97743pt}\pgfsys@closepath\pgfsys@moveto{6.033pt}{-3.533pt}\pgfsys@stroke\pgfsys@invoke{
} \pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hbox
to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}$

(b) The corresponding matrix $M_{b}$.

Figure 2: Example of the execution of Algorithm 1. Algorithm 1 Bar-to-bar
algorithm

Input: a presentation matrix $M_{f}$ of a monomorphism $f$

Output: a partially reduced matrix $M^{*}_{f}$, the associated bar-to-bar
matrix $M_{b}$, and a function $r_{\max}\colon C_{Z}\to C_{X}$

1:Let $M_{b}:=M_{f}$

2:Let $M_{f}^{*}:=M_{f}$

3:Set the columns $C_{Z}$ of $M_{b}$ to $0$

4:for $r\in C_{X}$ in decreasing order do

5: Let $x$ be the row associated to $r$ (that is, $M_{f}^{*}(x,r)=1$)

6: if $\exists z\in C_{Z}$ such that $M_{f}^{*}(x,z)=1$ and $r_{\max}(z)$ is
undefined then

7: Let $z$ be minimal such that $M_{f}^{*}(x,z)=1$ and $r_{\max}(z)$ is
undefined

8: Set $M_{b}(x,z)=1$

9: Define $r_{\max}(z):=r$

10: for $z^{\prime}>z$ such that $M_{f}^{*}(x,z^{\prime})=1$ do

11: Reduce column $z^{\prime}$ in $M_{f}^{*}$ by column $z$ to set to zero the
entry in row $x$

12: for $r^{\prime}\in C_{X}$ and $x^{\prime}$ the row associated to
$r^{\prime}$, such that $r^{\prime}<z^{\prime}$ and
$M_{f}^{*}(x^{\prime},z^{\prime})=1$ do

13: Reduce column $z^{\prime}$ in $M_{f}^{*}$ by column $r^{\prime}$

14: end for

15: end for

16: end if

17:end for

The following two propositions prove useful facts regarding Algorithm 1.

######  Proposition 3.6.

In a presentation matrix $M_{f}$ of a monomorphism $f:Z\hookrightarrow X$, all
columns in $C_{Z}$ are nonzero. Moreover, for every column $z\in C_{Z}$, all
columns in the set

$\Gamma(z):=\\{r\in C_{X}\mid r\text{ and }z\text{ have a nonzero entry on the
same row}\\}$

have degree strictly larger than the degree of $z$, and $|\Gamma(z)|$ equals
the number of nonzero entries of $z$.

###### Proof.

Since $f$ is a monomorphism, it cannot send a generator of a bar of $Z$ to
zero, hence the columns in $C_{Z}$ are nonzero. A nonzero entry in a column
$z\in C_{Z}$ indicates that the corresponding generator of a bar of $Z$ maps
non-trivially to the vector space generated by $X_{a^{x}\leq a^{z}}(x)$ for
some $x$ generating a bar in $X$, where $a^{x}$ is the degree of $x$ and
$a^{z}$ is the degree of $z$. This implies that the end-point of the bar of
$X$ generated by $x$ has degree strictly larger than the degree of $z$.
Lastly, the cardinality of $\Gamma(z)$ equals the number of nonzero entries of
$z$ because the columns in $C_{X}$ form a permutation matrix of rank $n$. ∎

######  Proposition 3.7.

Let $f:Z\hookrightarrow X$ be a monomorphism and let $M_{f}$ be a presentation
matrix of $f$. The execution of Algorithm 1 on $M_{f}$ returns a well-defined
function $r_{\max}:C_{Z}\to C_{X}$ that is injective. Furthermore, for every
column $z\in C_{Z}$, the column $r_{\max}(z)$ is to the right of $z$.

###### Proof.

We prove that, for every column $z\in C_{Z}$, $r_{\max}(z)$ is well-defined
and to the right of $z$. We proceed by induction on $m:=|C_{Z}|$, proving the
result for all monomorphisms $f\colon Z\hookrightarrow X$ with presentations
such that $|C_{Z}|=m$.

If $m=1$ and $C_{Z}=\\{z\\}$, then the algorithm sets $r_{\max}(z)$ to be the
rightmost column in $C_{X}$ having a nonzero entry on the same row as a
nonzero entry of $z$, which exists and is to the right of $z$ by Proposition
3.6.

Now suppose that the statement holds for every monomorphism presentation
matrix with $m$ columns in $C_{Z}$. Let $M_{f}$ be a presentation matrix such
that $|C_{Z}|=m+1$. Algorithm 1 performs a ‘for’ loop (line 4) until the ‘if’
statement (line 6) is true, which by Proposition 3.6 must happen before the
algorithm terminates. Let $r_{0}$ be the rightmost column in $C_{X}$ such that
there is a (minimal, i.e. leftmost) $z\in C_{Z}$ with $M_{f}(x,z)=1$, where
$x$ is the row associated to $r_{0}$. Again by Proposition 3.6, column $r_{0}$
is to the right of column $z$. The reductions in lines 11-14 of the algorithm
transform $M_{f}$ into a matrix $M^{*}_{f}$ presenting a different
monomorphism $f^{\prime}:Z\hookrightarrow X$. The morphism $f^{\prime}$
coincides with $f$ on all generators of $Z$ except for generator $z^{\prime}$,
which is mapped to the nonzero element
$f_{a^{z^{\prime}}}(z^{\prime})+f_{a^{z^{\prime}}}(Z_{a^{z}\leq
a^{z^{\prime}}}(z))$, where $a^{z}$ and $a^{z^{\prime}}$ respectively denote
the degrees of $z$ and $z^{\prime}$. We see that $f^{\prime}$ is a
monomorphism via the following pointwise argument. For every degree $a$, the
linear function $f_{a}:Z_{a}\to X_{a}$ has $\ker f_{a}=0$, hence it maps
nonzero elements in $\\{Z_{a^{z}_{i}\leq a}(z_{i})\\}_{i=1}^{m}$ to linearly
independent elements $\\{y_{j}\\}$ in $\text{span}(X_{a_{j}^{x}\leq
a}(x_{j}))_{j=1}^{n}$. We see that $f^{\prime}_{a}:Z_{a}\to X_{a}$ satisfies
the same linear independence property (which implies $\ker f^{\prime}_{a}=0$)
because the set of image elements coincides, except for possibly an element
$y^{\prime}$ replaced by $y^{\prime}+y$, where $y$ is a different element of
the set.

In $M^{*}_{f}$, the only column in $C_{Z}$ with nonzero entry in row $x$ is
$z$. By removing column $z$ and row $x$, we obtain a matrix with $m$ columns
in $C_{Z}$ which is again a presentation matrix of a monomorphism. By
induction hypothesis we know that the algorithm determines a function
$r^{\prime}_{\max}:C_{Z}\setminus\\{z\\}\to C_{X}$ whose image does not
contain $r_{0}$ and the columns to its right. The function $r^{\prime}_{\max}$
extends to a function $r_{\max}:C_{Z}\to C_{X}$ by defining
$r_{\max}(z):=r_{0}$. Finally, we observe that the function $r_{\max}$ is
injective by construction. ∎

Let us now go back to the reduction of presentation matrices. As with $M_{f}$,
we can reduce $M_{b}$ by left-to-right column transformations to get a reduced
matrix $\bar{M}_{b}$. We denote by $\sigma_{b}$ the permutation on
$\\{1,\ldots,n\\}$ associated with the nonzero columns of $\bar{M}_{b}$, which
is well-defined because the matrix $M_{b}$ only has columns with at most one
nonzero coefficient and has the same set of columns in $C_{X}$ as $M_{f}$. In
our running example, computing $\bar{M}_{b}$ gives us $\sigma_{b}=[453261]$.

After reduction via left-to-right column operations, the matrices
$\bar{M}_{f}$ and $\bar{M}_{b}$ have non-zero columns with the same set of
labels, as we will prove in Proposition 3.9.

######  Definition 3.8.

Let $n\geq 1$ be an integer and $\sigma$ a permutation on $\\{1,\ldots,n\\}$.
An inversion of $\sigma$ is a pair $(i,j)$ of elements of $\\{1,\ldots,n\\}$
such that $i<j$ and $\sigma(i)>\sigma(j)$.

Given a permutation $\sigma$, we also give the name inversion to a
transposition $(i\,j)$ such that $i<j$ and $\sigma(i)<\sigma(j)$: composing
$\sigma$ by $(i\,j)$ on the right creates an inversion.

Using inversions we can define a poset structure on permutations: we write
$\sigma\leq\sigma^{\prime}$ if there exist $k\geq 0$ and a composition of
transpositions $\tau=\tau_{1}\cdots\tau_{k}$ such that
$\sigma\tau=\sigma^{\prime}$ and, for all $i\leq k$, $\tau_{i}$ is an
inversion of the permutation $\sigma\tau_{1}\cdots\tau_{i-1}$. In what
follows, we often call $\tau$ simply a composition of inversions of $\sigma$
when it satisfies this property. Notice that $\leq$ is a partial order on
$S_{n}$, the symmetric group on $\\{1,\ldots,n\\}$. With respect to this
order, the identity permutation is the smallest element and the reverse
permutation $[n\;n-1\;\ldots\;2\;1]$ is the largest element.

######  Proposition 3.9.

Let $f:Z\hookrightarrow X$ be a monomorphism, $M_{f}$ be a presentation matrix
of $f$ and $M_{b}$ be the bar-to-bar matrix computed via Algorithm 1. Let
$\bar{M}_{f}$ and $\bar{M}_{b}$ be reduced matrices obtained from $M_{f}$ and
$M_{b}$ respectively, and let $\sigma_{f}$ and $\sigma_{b}$ be the associated
permutations. Then, the following facts hold:

  * •

the nonzero columns of the reduced matrices $\bar{M}_{f}$ and $\bar{M}_{b}$
are in the same positions,

  * •

$\sigma_{f}\geq\sigma_{b}$, that is, $\sigma_{f}=\sigma_{b}\tau$ with $\tau$ a
composition of inversions of $\sigma_{b}$.

###### Proof.

Since we can replace $M_{f}$ with the output $M_{f}^{*}$ of Algorithm 1, which
has the same associated permutation $\sigma_{f}$ (as it is obtained by
partially reducing $M_{f}$), we can assume that $M_{f}$ satisfies the
following property: for every column $z$ in $C_{Z}$, the only row $x$ such
that $M_{f}(x,r_{\max}(z))=1$ has exactly one other nonzero entry, which is
$M_{f}(x,z)=1$. We prove the claims by induction on the number of columns in
$C_{Z}$.

If $C_{Z}=\varnothing$, then there is nothing to prove: $M_{f}=M_{b}$ and they
are reduced, so $\sigma_{f}=\sigma_{b}$.

Otherwise, we execute Algorithm 1 to get the bar-to-bar matrix $M_{b}$ and the
function $r_{\max}$. Let $z_{0}$ be the unique column of $M_{f}$ in $C_{Z}$
such that $r_{0}:=r_{\max}(z_{0})$ is maximal in the total order on columns.
By removing column $z_{0}$, we obtain a presentation matrix $M_{f}^{\prime}$
of a monomorphism $f^{\prime}$ with a set of columns $C_{Z}^{\prime}$ strictly
contained in $C_{Z}$, to which we can apply our induction hypothesis:
$\bar{M}_{f}^{\prime}$ and $\bar{M}_{b}^{\prime}$ have the same nonzero
columns, and $\sigma_{f}^{\prime}=\sigma_{b}^{\prime}\tau$ for some
composition of inversions $\tau$ of $\sigma_{b}^{\prime}$. The matrix
$M_{b}^{\prime}$, computed by using Algorithm 1 on $M_{f}^{\prime}$, can be
equivalently obtained by removing column $z_{0}$ from $M_{b}$, since $M_{f}$
satisfies the property stated at the beginning of the proof. See Figure 3 for
matrices $M_{f}^{\prime}$, $M_{b}^{\prime}$, $\bar{M}_{f}^{\prime}$ and
$\bar{M}_{b}^{\prime}$ in the running example.

Let $x_{0}$ be the only row such that $M_{f}(x_{0},r_{0})=1$. By the execution
of Algorithm 1, no other column of $M_{f}^{\prime}$ has a nonzero coefficient
on row $x_{0}$, and so we deduce that the reductions of the matrices
$M_{f}^{\prime}$ and $M_{b}^{\prime}$ do not affect column $r_{0}$. Since by
inductive hypothesis $M_{f}^{\prime}$ and $M_{b}^{\prime}$ have the same
nonzero columns, this implies that column $r_{0}$ does not appear in the
inversions of $\tau$, meaning that
$\tau=(s_{1}\,t_{1})(s_{2}\,t_{2})\cdots(s_{k}\,t_{k})$ with $s_{i}\neq
c_{r_{0}}^{\prime}$ and $t_{i}\neq c_{r_{0}}^{\prime}$ for all
$i\in\\{1,\ldots,k\\}$, where $c_{r_{0}}^{\prime}$ denotes the relative
position in $\\{1,\ldots,n\\}$ of column $r_{0}$ in the (totally ordered) set
of nonzero columns of the reduced matrix $\bar{M}_{b}^{\prime}$.

Now, let $M_{g}$ be the matrix $M_{f}$ where we modify the column $z_{0}$ by
setting to zero all its entries except the one on row $x_{0}$. We reduce the
matrix $M_{f}$ first as for $M_{f}^{\prime}$, and then we reduce the column
$z_{0}$ by columns to its left, which does not affect the nonzero coefficient
on row $x_{0}$: we denote the resulting matrix by $M_{f}^{\prime\prime}$.
$\bar{M}_{f}$ is then obtained by completing the reduction using column
$z_{0}$. We reduce $M_{g}$ and $M_{b}$ in similar fashion, following
$M_{f}^{\prime}$ and $M_{b}^{\prime}$, respectively. We observe the following
facts.

  * •

The nonzero columns of $\bar{M}_{f}$, $\bar{M}_{g}$, and $\bar{M}_{b}$ are the
nonzero columns of $\bar{M}_{f}^{\prime}$ and $\bar{M}_{b}^{\prime}$, except
we replace $r_{0}$ with $z_{0}$. This is clear by construction for the
matrices $\bar{M}_{g}$ and $\bar{M}_{b}$, as the column $z_{0}$ coincides with
$r_{0}$. For the matrix $\bar{M}_{f}$, observe that for every nonzero entry
$M_{f}(x,z_{0})$ on column $z_{0}$, there is a nonzero entry $M_{f}(x,r)$ in a
column $r$ to the left of $r_{0}$, which implies that $r_{0}$ gets zeroed out
after the reduction as it is linearly dependent with a number of columns to
its left.

  * •

$\sigma_{f}=\sigma_{g}\tau^{\prime}$ where
$\tau^{\prime}:=(c_{z_{0}}\,c_{1})(c_{1}\,c_{2})\cdots(c_{k-1}\,c_{k})$ and
$c_{1},\ldots,c_{k},c_{r_{0}}$ are the relative positions in
$\\{1,\ldots,n\\}$ of the nonzero columns of $M_{f}^{\prime\prime}$ whose
lowest nonzero entry is modified (is moved to a different row) when reducing
to $\bar{M}_{f}$, with $c_{z_{0}}$ and $c_{r_{0}}$ respectively denoting the
relative positions of column $z_{0}$ and $r_{0}$ in the set of nonzero columns
of $M_{f}^{\prime\prime}$.

  * •

$\sigma_{g}=\sigma_{f}^{\prime}\gamma^{-1}$ and
$\sigma_{b}=\sigma_{b}^{\prime}\gamma^{-1}$ where
$\gamma:=(c_{z_{0}}\,c_{z_{0}}+1\,\cdots\,c_{r_{0}})$ represents a cyclic
permutation of the nonzero columns between $z_{0}$ and $r_{0}$.

See Figure 4 for concrete examples of these relationships. We deduce that

$\displaystyle\sigma_{f}$ $\displaystyle=\sigma_{g}\tau^{\prime}$
$\displaystyle=\sigma_{f}^{\prime}\gamma^{-1}\tau^{\prime}$
$\displaystyle=\sigma_{b}^{\prime}\tau\gamma^{-1}\tau^{\prime}$
$\displaystyle=\sigma_{b}\gamma\tau\gamma^{-1}\tau^{\prime}.$

By the definition of $\tau^{\prime}$, it is a composition of inversions of
$\sigma_{g}$. We conclude the induction step by showing that
$\gamma\tau\gamma^{-1}$ is a composition of inversions of $\sigma_{b}$.

More precisely, we know that $\tau=(s_{1}\,t_{1})\cdots(s_{k}\,t_{k})$ is a
composition of inversions of $\sigma^{\prime}_{b}$, meaning that
$(s_{i}\,t_{i})$ is an inversion of the permutation
$\sigma^{\prime}_{b}(s_{1}\,t_{1})\cdots(s_{i-1}\,t_{i-1})$, for every
$i\in\\{1,\ldots,k\\}$, and we want to prove that
$\gamma\tau\gamma^{-1}=(\gamma(s_{1})\,\gamma(t_{1}))\cdots(\gamma(s_{k})\,\gamma(t_{k}))$
is a composition of inversions of $\sigma_{b}$, meaning that
$(\gamma(s_{i})\,\gamma(t_{i}))$ is an inversion of the permutation
$\sigma_{b}(\gamma(s_{1})\,\gamma(t_{1}))\cdots(\gamma(s_{i-1})\,\gamma(t_{i-1}))$,
for every $i\in\\{1,\ldots,k\\}$. First, we observe that $s_{i}<t_{i}$ implies
$\gamma(s_{i})<\gamma(t_{i})$, since as observed earlier the relative position
$c_{r_{0}}^{\prime}$ of column $r_{0}$ in the set of nonzero columns of
$\bar{M}_{b}^{\prime}$ does not appear in $\tau$. Let us now denote

$\displaystyle\sigma^{\prime}_{i-1}:=\sigma^{\prime}_{b}(s_{1}\,t_{1})\cdots(s_{i-1}\,t_{i-1}),$
$\displaystyle\sigma_{i-1}:=\sigma_{b}(\gamma(s_{1})\,\gamma(t_{1}))\cdots(\gamma(s_{i-1})\,\gamma(t_{i-1})).$

We have to prove that
$\sigma^{\prime}_{i-1}(s_{i})<\sigma^{\prime}_{i-1}(t_{i})$ implies
$\sigma_{i-1}(\gamma(s_{i}))<\sigma_{i-1}(\gamma(t_{i}))$. This is a
consequence of the equalities

$\sigma_{i-1}(\gamma(s_{i}))=\sigma_{b}\gamma(s_{1}\,t_{1})\gamma^{-1}\gamma\cdots\gamma^{-1}\gamma(s_{i-1}\,t_{i-1})\gamma^{-1}\gamma(s_{i})=\sigma^{\prime}_{i-1}(s_{i})$

and of similar equalities for $t_{i}$. ∎

######  Corollary 3.10.

Let $f:Z\hookrightarrow X$ be a monomorphism, and let $f_{b}:Z\hookrightarrow
X$ be the associated bar-to-bar monomorphism. Let $a_{1}\leq
a_{2}\leq\ldots\leq a_{n}$ be the start-points of the bars of $X$, and let
$b_{1}\leq b_{2}\leq\ldots\leq b_{n}$ be the degrees of the non-zero columns
of $\bar{M}_{f}$. Then

$\operatorname{coker}f=\bigoplus_{j=1}^{n}K(a_{j},b_{\sigma_{f}(j)})\qquad\text{
and
}\qquad\operatorname{coker}f_{b}=\bigoplus_{j=1}^{n}K(a_{j},b_{\sigma_{b}(j)}).$

###### Proof.

By Proposition 3.9, the real numbers $b_{1}\leq b_{2}\leq\ldots\leq b_{n}$ are
also the degrees of the non-zero columns of $\bar{M}_{b}$. By design of the
persistent homology algorithm, the barcode decomposition of
$\operatorname{coker}f$ and $\operatorname{coker}f_{b}$ is then determined by
pairing start-points $\\{a_{j}\\}$ with end-points $\\{b_{j}\\}$ following the
permutations $\sigma_{f}$ and $\sigma_{b}$ respectively, and the claim
follows. ∎

$\left[\enspace\begin{matrix}\leavevmode\hbox to11.67pt{\vbox
to13.11pt{\pgfpicture\makeatletter\hbox{\hskip 5.83301pt\lower-3.33301pt\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{
}\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-2.5pt}{0.0pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{0}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hbox
to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}&&\leavevmode\hbox
to11.67pt{\vbox to13.11pt{\pgfpicture\makeatletter\hbox{\hskip
5.83301pt\lower-3.33301pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{
}\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-2.5pt}{0.0pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{0}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hbox
to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}&\hphantom{0}&&&&1&\\\
0&&0&&&&&&1\\\ 0&&1&&1&&&&\\\ 1&&0&&&1&&&\\\ 1&1&0&&&&&&\\\ \leavevmode\hbox
to11.67pt{\vbox to13.11pt{\pgfpicture\makeatletter\hbox{\hskip
5.83301pt\lower-3.33301pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{
}\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-2.5pt}{0.0pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{0}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hbox
to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}&&\leavevmode\hbox
to11.67pt{\vbox to13.11pt{\pgfpicture\makeatletter\hbox{\hskip
5.83301pt\lower-3.33301pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{
}\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-2.5pt}{0.0pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{0}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hbox
to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}&&&&1&&\\\
\end{matrix}\enspace\right]\leavevmode\hbox to12.47pt{\vbox
to13.91pt{\pgfpicture\makeatletter\hbox{\hskip 6.233pt\lower-3.733pt\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{
}\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ } { {}{}{}}{}{{}}{} {
{}{}{}}{}{{}}{}{}{}{}{{}}{}{}\pgfsys@moveto{-6.033pt}{9.97743pt}\pgfsys@moveto{-6.033pt}{9.97743pt}\pgfsys@lineto{-6.033pt}{-3.533pt}\pgfsys@lineto{6.033pt}{-3.533pt}\pgfsys@lineto{6.033pt}{9.97743pt}\pgfsys@closepath\pgfsys@moveto{6.033pt}{-3.533pt}\pgfsys@stroke\pgfsys@invoke{
} { {}{}{}}{}{{}}{} {
{}{}{}}{}{{}}{}{}{}{}{{}}{}{}\pgfsys@moveto{-6.033pt}{9.97743pt}\pgfsys@moveto{-6.033pt}{9.97743pt}\pgfsys@lineto{-6.033pt}{-3.533pt}\pgfsys@lineto{6.033pt}{-3.533pt}\pgfsys@lineto{6.033pt}{9.97743pt}\pgfsys@closepath\pgfsys@moveto{6.033pt}{-3.533pt}\pgfsys@stroke\pgfsys@invoke{
} \pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hbox
to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}$

(a) The matrix $M_{f}^{\prime}$, where the column $z_{3}$ is omitted.

$\left[\enspace\begin{matrix}\leavevmode\hbox to11.67pt{\vbox
to13.11pt{\pgfpicture\makeatletter\hbox{\hskip 5.83301pt\lower-3.33301pt\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{
}\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-2.5pt}{0.0pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{0}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hbox
to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}&&\leavevmode\hbox
to11.67pt{\vbox to13.11pt{\pgfpicture\makeatletter\hbox{\hskip
5.83301pt\lower-3.33301pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{
}\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-2.5pt}{0.0pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{0}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hbox
to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}&\hphantom{0}&&&&1&\\\
0&&0&&&&&&1\\\ 0&&1&&1&&&&\\\ 1&&0&&&1&&&\\\ 0&1&0&&&&&&\\\ \leavevmode\hbox
to11.67pt{\vbox to13.11pt{\pgfpicture\makeatletter\hbox{\hskip
5.83301pt\lower-3.33301pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{
}\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-2.5pt}{0.0pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{0}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hbox
to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}&&\leavevmode\hbox
to11.67pt{\vbox to13.11pt{\pgfpicture\makeatletter\hbox{\hskip
5.83301pt\lower-3.33301pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{
}\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-2.5pt}{0.0pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{0}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hbox
to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}&&&&1&&\\\
\end{matrix}\enspace\right]\leavevmode\hbox to12.47pt{\vbox
to13.91pt{\pgfpicture\makeatletter\hbox{\hskip 6.233pt\lower-3.733pt\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{
}\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ } { {}{}{}}{}{{}}{} {
{}{}{}}{}{{}}{}{}{}{}{{}}{}{}\pgfsys@moveto{-6.033pt}{9.97743pt}\pgfsys@moveto{-6.033pt}{9.97743pt}\pgfsys@lineto{-6.033pt}{-3.533pt}\pgfsys@lineto{6.033pt}{-3.533pt}\pgfsys@lineto{6.033pt}{9.97743pt}\pgfsys@closepath\pgfsys@moveto{6.033pt}{-3.533pt}\pgfsys@stroke\pgfsys@invoke{
} { {}{}{}}{}{{}}{} {
{}{}{}}{}{{}}{}{}{}{}{{}}{}{}\pgfsys@moveto{-6.033pt}{9.97743pt}\pgfsys@moveto{-6.033pt}{9.97743pt}\pgfsys@lineto{-6.033pt}{-3.533pt}\pgfsys@lineto{6.033pt}{-3.533pt}\pgfsys@lineto{6.033pt}{9.97743pt}\pgfsys@closepath\pgfsys@moveto{6.033pt}{-3.533pt}\pgfsys@stroke\pgfsys@invoke{
} \pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hbox
to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}$

(b) The corresponding matrix $M_{b}^{\prime}$.

$\left[\enspace\begin{matrix}\leavevmode\hbox to11.67pt{\vbox
to13.11pt{\pgfpicture\makeatletter\hbox{\hskip 5.83301pt\lower-3.33301pt\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{
}\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-2.5pt}{0.0pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{0}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hbox
to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}&&\leavevmode\hbox
to11.67pt{\vbox to13.11pt{\pgfpicture\makeatletter\hbox{\hskip
5.83301pt\lower-3.33301pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{
}\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-2.5pt}{0.0pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{0}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hbox
to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}&\hphantom{0}&&&&\framebox{1}&\\\
0&&0&&&&&&\framebox{1}\\\ 0&&\framebox{1}&&0&&&&\\\ 1&\framebox{1}&0&&&0&&&\\\
\framebox{1}&0&0&&&&&&\\\ \leavevmode\hbox to11.67pt{\vbox
to13.11pt{\pgfpicture\makeatletter\hbox{\hskip 5.83301pt\lower-3.33301pt\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{
}\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-2.5pt}{0.0pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{0}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hbox
to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}&&\leavevmode\hbox
to11.67pt{\vbox to13.11pt{\pgfpicture\makeatletter\hbox{\hskip
5.83301pt\lower-3.33301pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{
}\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-2.5pt}{0.0pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{0}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hbox
to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}&&&&\framebox{1}&&\\\
\end{matrix}\enspace\right]\leavevmode\hbox to12.47pt{\vbox
to13.91pt{\pgfpicture\makeatletter\hbox{\hskip 6.233pt\lower-3.733pt\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{
}\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ } { {}{}{}}{}{{}}{} {
{}{}{}}{}{{}}{}{}{}{}{{}}{}{}\pgfsys@moveto{-6.033pt}{9.97743pt}\pgfsys@moveto{-6.033pt}{9.97743pt}\pgfsys@lineto{-6.033pt}{-3.533pt}\pgfsys@lineto{6.033pt}{-3.533pt}\pgfsys@lineto{6.033pt}{9.97743pt}\pgfsys@closepath\pgfsys@moveto{6.033pt}{-3.533pt}\pgfsys@stroke\pgfsys@invoke{
} { {}{}{}}{}{{}}{} {
{}{}{}}{}{{}}{}{}{}{}{{}}{}{}\pgfsys@moveto{-6.033pt}{9.97743pt}\pgfsys@moveto{-6.033pt}{9.97743pt}\pgfsys@lineto{-6.033pt}{-3.533pt}\pgfsys@lineto{6.033pt}{-3.533pt}\pgfsys@lineto{6.033pt}{9.97743pt}\pgfsys@closepath\pgfsys@moveto{6.033pt}{-3.533pt}\pgfsys@stroke\pgfsys@invoke{
} \pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hbox
to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}$

(c) The reduced matrix $\bar{M}_{f}^{\prime}$. We find
$\sigma_{f}^{\prime}=[543612]$.

$\left[\enspace\begin{matrix}\leavevmode\hbox to11.67pt{\vbox
to13.11pt{\pgfpicture\makeatletter\hbox{\hskip 5.83301pt\lower-3.33301pt\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{
}\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-2.5pt}{0.0pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{0}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hbox
to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}&&\leavevmode\hbox
to11.67pt{\vbox to13.11pt{\pgfpicture\makeatletter\hbox{\hskip
5.83301pt\lower-3.33301pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{
}\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-2.5pt}{0.0pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{0}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hbox
to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}&\hphantom{0}&&&&\framebox{1}&\\\
0&&0&&&&&&\framebox{1}\\\ 0&&\framebox{1}&&0&&&&\\\ \framebox{1}&&0&&&0&&&\\\
0&\framebox{1}&0&&&&&&\\\ \leavevmode\hbox to11.67pt{\vbox
to13.11pt{\pgfpicture\makeatletter\hbox{\hskip 5.83301pt\lower-3.33301pt\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{
}\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-2.5pt}{0.0pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{0}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hbox
to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}&&\leavevmode\hbox
to11.67pt{\vbox to13.11pt{\pgfpicture\makeatletter\hbox{\hskip
5.83301pt\lower-3.33301pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{
}\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-2.5pt}{0.0pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{0}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hbox
to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}&&&&\framebox{1}&&\\\
\end{matrix}\enspace\right]\leavevmode\hbox to12.47pt{\vbox
to13.91pt{\pgfpicture\makeatletter\hbox{\hskip 6.233pt\lower-3.733pt\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{
}\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ } { {}{}{}}{}{{}}{} {
{}{}{}}{}{{}}{}{}{}{}{{}}{}{}\pgfsys@moveto{-6.033pt}{9.97743pt}\pgfsys@moveto{-6.033pt}{9.97743pt}\pgfsys@lineto{-6.033pt}{-3.533pt}\pgfsys@lineto{6.033pt}{-3.533pt}\pgfsys@lineto{6.033pt}{9.97743pt}\pgfsys@closepath\pgfsys@moveto{6.033pt}{-3.533pt}\pgfsys@stroke\pgfsys@invoke{
} { {}{}{}}{}{{}}{} {
{}{}{}}{}{{}}{}{}{}{}{{}}{}{}\pgfsys@moveto{-6.033pt}{9.97743pt}\pgfsys@moveto{-6.033pt}{9.97743pt}\pgfsys@lineto{-6.033pt}{-3.533pt}\pgfsys@lineto{6.033pt}{-3.533pt}\pgfsys@lineto{6.033pt}{9.97743pt}\pgfsys@closepath\pgfsys@moveto{6.033pt}{-3.533pt}\pgfsys@stroke\pgfsys@invoke{
} \pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hbox
to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}$

(d) The reduced matrix $\bar{M}_{b}^{\prime}$. We find
$\sigma_{b}^{\prime}=[453612]$.

Figure 3: Example matrices of the induction hypothesis of Proposition 3.9,
with columns $C_{Z}^{\prime}=C_{Z}\setminus\\{z_{3}\\}$. We find that
$\sigma_{f}^{\prime}=\sigma_{b}^{\prime}(1\,2)$, where $(1,2)$ is indeed an
inversion.

$\left[\enspace\begin{matrix}\leavevmode\hbox to11.67pt{\vbox
to13.11pt{\pgfpicture\makeatletter\hbox{\hskip 5.83301pt\lower-3.33301pt\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{
}\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-2.5pt}{0.0pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{0}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hbox
to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}&&\leavevmode\hbox
to11.67pt{\vbox to13.11pt{\pgfpicture\makeatletter\hbox{\hskip
5.83301pt\lower-3.33301pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{
}\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-2.5pt}{0.0pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{0}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hbox
to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}&1&&&&1&\\\
0&&0&1&&&&&1\\\ 0&&1&0&1&&&&\\\ 1&&0&0&&1&&&\\\ 1&1&0&0&&&&&\\\
\leavevmode\hbox to11.67pt{\vbox
to13.11pt{\pgfpicture\makeatletter\hbox{\hskip 5.83301pt\lower-3.33301pt\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{
}\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-2.5pt}{0.0pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{0}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hbox
to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}&&0&\leavevmode\hbox
to11.67pt{\vbox to13.11pt{\pgfpicture\makeatletter\hbox{\hskip
5.83301pt\lower-3.33301pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{
}\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-2.5pt}{0.0pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{1}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hbox
to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}&&&1&&\\\
\end{matrix}\enspace\right]\leavevmode\hbox to12.47pt{\vbox
to13.91pt{\pgfpicture\makeatletter\hbox{\hskip 6.233pt\lower-3.733pt\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{
}\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ } { {}{}{}}{}{{}}{} {
{}{}{}}{}{{}}{}{}{}{}{{}}{}{}\pgfsys@moveto{-6.033pt}{9.97743pt}\pgfsys@moveto{-6.033pt}{9.97743pt}\pgfsys@lineto{-6.033pt}{-3.533pt}\pgfsys@lineto{6.033pt}{-3.533pt}\pgfsys@lineto{6.033pt}{9.97743pt}\pgfsys@closepath\pgfsys@moveto{6.033pt}{-3.533pt}\pgfsys@stroke\pgfsys@invoke{
} { {}{}{}}{}{{}}{} {
{}{}{}}{}{{}}{}{}{}{}{{}}{}{}\pgfsys@moveto{-6.033pt}{9.97743pt}\pgfsys@moveto{-6.033pt}{9.97743pt}\pgfsys@lineto{-6.033pt}{-3.533pt}\pgfsys@lineto{6.033pt}{-3.533pt}\pgfsys@lineto{6.033pt}{9.97743pt}\pgfsys@closepath\pgfsys@moveto{6.033pt}{-3.533pt}\pgfsys@stroke\pgfsys@invoke{
} \pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hbox
to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}$

(a) The matrix $M_{f}$.

$\left[\enspace\begin{matrix}\leavevmode\hbox to11.67pt{\vbox
to13.11pt{\pgfpicture\makeatletter\hbox{\hskip 5.83301pt\lower-3.33301pt\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{
}\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-2.5pt}{0.0pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{0}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hbox
to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}&&\leavevmode\hbox
to11.67pt{\vbox to13.11pt{\pgfpicture\makeatletter\hbox{\hskip
5.83301pt\lower-3.33301pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{
}\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-2.5pt}{0.0pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{0}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hbox
to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}&0&&&&1&\\\
0&&0&1&&&&&1\\\ 0&&1&0&1&&&&\\\ 1&&0&0&&1&&&\\\ 1&1&0&0&&&&&\\\
\leavevmode\hbox to11.67pt{\vbox
to13.11pt{\pgfpicture\makeatletter\hbox{\hskip 5.83301pt\lower-3.33301pt\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{
}\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-2.5pt}{0.0pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{0}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hbox
to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}&&0&\leavevmode\hbox
to11.67pt{\vbox to13.11pt{\pgfpicture\makeatletter\hbox{\hskip
5.83301pt\lower-3.33301pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{
}\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-2.5pt}{0.0pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{0}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hbox
to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}&&&1&&\\\
\end{matrix}\enspace\right]\leavevmode\hbox to12.47pt{\vbox
to13.91pt{\pgfpicture\makeatletter\hbox{\hskip 6.233pt\lower-3.733pt\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{
}\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ } { {}{}{}}{}{{}}{} {
{}{}{}}{}{{}}{}{}{}{}{{}}{}{}\pgfsys@moveto{-6.033pt}{9.97743pt}\pgfsys@moveto{-6.033pt}{9.97743pt}\pgfsys@lineto{-6.033pt}{-3.533pt}\pgfsys@lineto{6.033pt}{-3.533pt}\pgfsys@lineto{6.033pt}{9.97743pt}\pgfsys@closepath\pgfsys@moveto{6.033pt}{-3.533pt}\pgfsys@stroke\pgfsys@invoke{
} { {}{}{}}{}{{}}{} {
{}{}{}}{}{{}}{}{}{}{}{{}}{}{}\pgfsys@moveto{-6.033pt}{9.97743pt}\pgfsys@moveto{-6.033pt}{9.97743pt}\pgfsys@lineto{-6.033pt}{-3.533pt}\pgfsys@lineto{6.033pt}{-3.533pt}\pgfsys@lineto{6.033pt}{9.97743pt}\pgfsys@closepath\pgfsys@moveto{6.033pt}{-3.533pt}\pgfsys@stroke\pgfsys@invoke{
} \pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hbox
to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}$

(b) The matrix $M_{g}$.

$\left[\enspace\begin{matrix}\leavevmode\hbox to11.67pt{\vbox
to13.11pt{\pgfpicture\makeatletter\hbox{\hskip 5.83301pt\lower-3.33301pt\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{
}\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-2.5pt}{0.0pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{0}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hbox
to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}&&\leavevmode\hbox
to11.67pt{\vbox to13.11pt{\pgfpicture\makeatletter\hbox{\hskip
5.83301pt\lower-3.33301pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{
}\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-2.5pt}{0.0pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{0}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hbox
to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}&0&&&&1&\\\
0&&0&1&&&&&1\\\ 0&&1&0&1&&&&\\\ 1&&0&0&&1&&&\\\ 0&1&0&0&&&&&\\\
\leavevmode\hbox to11.67pt{\vbox
to13.11pt{\pgfpicture\makeatletter\hbox{\hskip 5.83301pt\lower-3.33301pt\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{
}\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-2.5pt}{0.0pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{0}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hbox
to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}&&0&\leavevmode\hbox
to11.67pt{\vbox to13.11pt{\pgfpicture\makeatletter\hbox{\hskip
5.83301pt\lower-3.33301pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{
}\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-2.5pt}{0.0pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{0}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hbox
to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}&&&1&&\\\
\end{matrix}\enspace\right]\leavevmode\hbox to12.47pt{\vbox
to13.91pt{\pgfpicture\makeatletter\hbox{\hskip 6.233pt\lower-3.733pt\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{
}\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ } { {}{}{}}{}{{}}{} {
{}{}{}}{}{{}}{}{}{}{}{{}}{}{}\pgfsys@moveto{-6.033pt}{9.97743pt}\pgfsys@moveto{-6.033pt}{9.97743pt}\pgfsys@lineto{-6.033pt}{-3.533pt}\pgfsys@lineto{6.033pt}{-3.533pt}\pgfsys@lineto{6.033pt}{9.97743pt}\pgfsys@closepath\pgfsys@moveto{6.033pt}{-3.533pt}\pgfsys@stroke\pgfsys@invoke{
} { {}{}{}}{}{{}}{} {
{}{}{}}{}{{}}{}{}{}{}{{}}{}{}\pgfsys@moveto{-6.033pt}{9.97743pt}\pgfsys@moveto{-6.033pt}{9.97743pt}\pgfsys@lineto{-6.033pt}{-3.533pt}\pgfsys@lineto{6.033pt}{-3.533pt}\pgfsys@lineto{6.033pt}{9.97743pt}\pgfsys@closepath\pgfsys@moveto{6.033pt}{-3.533pt}\pgfsys@stroke\pgfsys@invoke{
} \pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hbox
to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope
}\pgfsys@endscope\hss}}\lxSVG@closescope\endpgfpicture}}$

(c) The matrix $M_{b}$.

$\left[\enspace\begin{matrix}\leavevmode\hbox to11.67pt{\vbox
to13.11pt{\pgfpicture\makeatletter\hbox{\hskip 5.83301pt\lower-3.33301pt\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{
}\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox
to0.0pt{\pgfsys@beginscope\pgfsys@invoke{
}{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}}
{{}{{}}}{{}{}}{}{{}{}} { }{{{{}}\pgfsys@beginscope\pgfsys@invoke{
}\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{-2.5pt}{0.0pt}\pgfsys@invoke{
}\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{
}\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{0}}
}}\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope}}}
\pgfsys@invoke{\lxSVG@closescope }\pgfsys@endscope\hbox
to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{\lxSVG@closescope