<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Coupling and Cohesion Measures for Calculating P-Invariants for Modular P/T Nets⋆</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Simon Bott</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Laif-Oke Clasen</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Marcel Hansson</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Niklas Levens</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Daniel Moldt</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>University of Hamburg, Faculty of Mathematics</institution>
          ,
          <addr-line>Informatics and Natural Sciences</addr-line>
          ,
          <institution>Department of Informatics</institution>
        </aff>
      </contrib-group>
      <abstract>
        <p>Decomposition of complex systems into smaller, independent modules is a fundamental approach for reducing complexity. The computation of structural invariants, a common method for verification, is aided by this modular reduction in complexity. However, while T-invariants can be combined from the module's local T-invariants and local P-invariants are preserved, synchronization between modules introduces new P-invariants. Current algorithms do not consider these modular structures of the P/T nets for the calculations of P-invariants. The incidence matrix of modular Petri nets, in which interactions between modules are restricted to only transitions, has a singly-bordered block diagonal (SBBD) structure. This structure may lead to speedups in reducing the matrix to row echelon form, the main challenge in the computation of invariants. In this paper, we examine the specific properties of modular nets that facilitate these speedups. We present an algorithm for the reduction through Gaussian elimination. Through its analysis, we find that module size, number of external transitions and synchronized firing groups, and number of linearly independent internal transitions highly influence the runtime of our algorithm. Our algorithm performs better than the naive Gaussian elimination for good modularized nets. The conditions leading to speed-ups naturally serve as formalizations of coupling and cohesion.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;Petri Nets</kwd>
        <kwd>Invariants</kwd>
        <kwd>Synchronous Channels</kwd>
        <kwd>Modeling</kwd>
        <kwd>Verification</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>Design of complex and interacting systems was and still is a challenge. Modeling a system with specific
perspectives is one way to address this. The divide-and-conquer principle has a long tradition in
informatics, following far older sciences.</p>
      <p>
        Parts of such decomposable systems are related in a specific way to specify the relationship. Parnas
names such parts modules (see [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]). Nowadays the modules are also called components, services,
entities, objects etc.
      </p>
      <p>
        Fettke and Reisig use the notion of modules as their basic modeling entities [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] for their so called
HERAKLIT approach. Petri nets can be used as a formal basis for the semantics of the modules. One
central motivation for Fettke and Reisig is that Petri nets provide means to prove properties for the
module models, even if they concentrate more on the understanding and modeling of systems in [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ].
What is also very convincing of the HERAKLIT approach is the associative composition of modules
that allows to build nested models of systems on an abstract level.
      </p>
      <p>
        In [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] the HERAKLIT approach is combined with the ideas of agent-oriented modeling to emphasize
the process perspective for entities that incorporate roles. Such roles are represented as agent templates.
Their orchestration and choreography is modeled with an extended version of UML sequence charts.
      </p>
      <p>Here we pick up the central ideas of modules to add some formal aspects to the models that can be
created in the above contexts. One of the traditional concepts, invariants, are used to link modules.
Calculation of invariants for very large Petri net models is dificult due to the algorithmic complexity
resulting in long calculation times.</p>
      <p>
        Based on the ideas of nets-within-nets [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] and modeling aspects of invariants [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] in combination with
the decomposition of nets following the Mulan framework [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] we address the application of invariants
to simple modular Petri net models. These modular Petri nets (P/T-nets) are coupled via synchronous
channels to result in P/T-nets with synchronous channels [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] covered invariant calculations for
P/T-Nets with synchronous channels. Here we extend all of the above aspects by a discussion of coupling
and cohesion measures for calculating P-invariants for modular P/T Nets.
      </p>
      <p>The following sections show the related work of the abovementioned topic Section 2 and the formal
background of the paper Section 3. Requirements for the paper are presented in Section 4. Then, our
algorithm for reducing a modular net’s incidence matrix to row echelon form is given and explained
in Section 5. In Section 6, an example run of the algorithm follows to give further illustration of its
behavior, while the formal analysis is done in Section 7. Based on the findings in this analysis, we
formally define notions of coupling and cohesion in Section 8 that naturally lead to formulating the
modularization of P/T nets as the problem of permuting matrices into bordered block diagonal form.
Then, we discuss our findings in Section 10 and conclude with Section 11.</p>
    </sec>
    <sec id="sec-2">
      <title>2. Related Work</title>
      <p>
        By dividing complex systems into diferent parts that exhibit significant internal behavior in comparison
to the external interactions between each other, their subsequent analysis can be facilitated. Such a
modular approach is realized in the context of Petri nets in the form of formal models as modular nets.
In [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], such a model based on P/T nets was introduced. A modular P/T net consists of non-modular
P/T nets serving as modules. Their interactions with each other are governed by fusion sets that allow
sharing of places and synchronization of transitions. The characteristics of these modular P/T nets
were then examined with respect to their P-invariants. A relation between local invariants and global
invariants is given, but no explicit way of computing them is specified. In particular, it isn’t further
examined how specific modular structures could afect runtimes of such computations.
      </p>
      <p>
        In [
        <xref ref-type="bibr" rid="ref10 ref11">10, 11</xref>
        ], modular CP-nets extend the capabilities of modular P/T nets by using colored Petri
nets as modules. In this way, variables are allowed as edge weights through the use of synchronous
channels. In the specific context of P/T nets, synchronous channels were integrated in [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] to define
modular PTC-nets. In this way, variables as edge weights are possible while remaining close to the
formal models of P/T nets. The modular PTC-nets were, however, strongly constrained in the possible
synchronizations between modules.
      </p>
      <p>
        In [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], the modular PTC-nets were expanded upon to give a more general model that isn’t so heavily
constrained called the PTC-system net. It also allows variables as edge weights and, together with the
formulation through multisets, further increases capabilities of aggregating similar interface transitions
into fewer external transitions. Both P-invariants and T-invariants were examined, but no way of
computing them is explicitly given. It is this model that will serve as the formal basis for this paper.
The properties of invariants in PTC-system nets were further examined in [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], where an algorithm for
computing all of a net’s P-invariants was given and analyzed, and which this paper will expand upon.
      </p>
      <p>However, these papers only state in rough terms how the specifics of the modular structure actually
aid in subsequent analysis. Especially, formal definitions of such measures of modularity could be
of interest. The commonly used concepts of coupling and cohesion serve to describe the quality of
modular systems and could also do so for modular nets.</p>
      <p>
        In [
        <xref ref-type="bibr" rid="ref13 ref14">13, 14</xref>
        ], it was examined how to replace shared places by use of synchronous channels to generate
more compact modular state spaces. It was found through experiments that weak coupling and strong
cohesion were most beneficial, but these measures weren’t expressed formally.
      </p>
      <p>
        In [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ], properties for potential measures of coupling and cohesion were formalized to enable precise
statements about modular systems in the field of software engineering. They aren’t specific measures
but instead a general framework of how a measure should behave to be considered a coupling or
cohesion measure.
      </p>
      <p>
        Approaches to give specific measures of coupling and cohesion in accordance with this framework
include definitions based on information-theoretic principles [
        <xref ref-type="bibr" rid="ref16 ref17">16, 17</xref>
        ] and pertaining to diferent types
of systems such as object-oriented systems [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] or knowledge-based systems [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ]. Further formal
definitions were posited based on a metamodel approach in [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ].
      </p>
      <p>
        In the context of Petri nets, formal measures were given in [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ]. Among other things, the number of
incoming arcs and the number of outgoing arcs were used as two separate bases to formulate coupling
measures. However, these were only stated for a specific type of Petri net, and no measure for cohesion
was given.
      </p>
    </sec>
    <sec id="sec-3">
      <title>3. Preliminaries</title>
      <sec id="sec-3-1">
        <title>3.1. Gaussian Elimination</title>
        <p>
          Gaussian Elimination is an algorithm for solving systems of linear equations [
          <xref ref-type="bibr" rid="ref22">22</xref>
          ]. The algorithm
transforms a given matrix, by swapping rows, adding rows or multiplying a row with a non-zero
number. The resulting matrix is always in upper triangular form.
        </p>
        <p>
          The algorithm eliminates all leading leftmost non-zero entries in each row but one, by adding
multiples of the topmost row to the other rows, so that the given entry is zero. The rows are always
sorted so that the number of leading zeros in each row is increasing. By iterating through these steps
until there are no more than one leading non-zero entries per column, the matrix will be in row echelon
form [
          <xref ref-type="bibr" rid="ref22">22</xref>
          ].
        </p>
        <p>
          A matrix is in row echelon form when all rows containing only zeros are at the bottom and every
leading non-zero entry is on the right of the leading non-zero entry of the row above. This implies that
all entries under a leading coeficient are zeros [
          <xref ref-type="bibr" rid="ref22">22</xref>
          ].
        </p>
        <p>
          For a given  ×  matrix , the number of leading non-zero entries in its row echelon form is
referred to as the rank of . It is denoted as rank() and always lies between 0 and min(, ). Notably,
rank() = rank(T) and rank() = 0 if and only if  only consists of zeros [
          <xref ref-type="bibr" rid="ref23">23</xref>
          ]. For the example
above, from the row echelon form it is clear to see that rank() = 3.
        </p>
      </sec>
      <sec id="sec-3-2">
        <title>3.2. Bordered Block Diagonal Matrices</title>
        <p>A matrix is in doubly bordered block diagonal form if it resembles this form:
⎛11
⎜
 = ⎜⎜
⎜
⎝</p>
        <p>22
1
2
...</p>
        <p>
          ... 
1 ⎞
2 ⎟
... ⎟⎟
⎠⎟

(1)
The blocks  are matrices with the dimensions  ×  . The border blocks  and  have a dimension
of  ×  and  ×  , respectively, where ideally  should be significantly smaller than  [
          <xref ref-type="bibr" rid="ref24">24</xref>
          ]. Each
column in the column border is called a coupling column, and each row in the row border is called a
coupling row.
        </p>
        <p>A singly bordered block diagonal matrix is a special arrangement of entries in a matrix:
Algorithm 1 Gaussian Elimination to row echelon form
◁ Move to the next column
⎛11
 = ⎜⎜
⎝
22
...</p>
        <p>
          1 ⎞
2 ⎟
... ⎠⎟
 
(2)
The blocks  are matrices with the dimensions  ×  . The border blocks  have a dimension of
 × , where ideally  should be significantly smaller than   [
          <xref ref-type="bibr" rid="ref24 ref25">24, 25</xref>
          ].
        </p>
      </sec>
      <sec id="sec-3-3">
        <title>3.3. P/T Nets with synchronous channels</title>
        <p>
          Synchronous channels allow the linking of transitions which are part of the same net, or diferent
nets. A transition which is part of a synchronous channel can either be a Uplink or a Downlink. In
Renew synchronous channels are defined with inscriptions. These inscriptions are either :&lt;Channel
Name&gt;(&lt;Parameters&gt;) for Uplinks or &lt;Net-reference&gt;:&lt;Channel Name&gt;(&lt;Parameters&gt;) for
Downlinks, as can be seen in Figure 1. Using the net-reference a synchronous channel can access another net
with the same channel. Using the parameters variables can be passed through the channel. A transition
can have multiple Downlinks, but only one Uplink [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ].
        </p>
      </sec>
      <sec id="sec-3-4">
        <title>3.4. Modular P/T nets</title>
        <p>
          The basic idea behind the various diferent models for describing modular P/T nets [
          <xref ref-type="bibr" rid="ref10 ref7 ref8">10, 7, 8</xref>
          ] is to partition
the elements of a P/T net into a set of disjoint P/T nets serving as modules. These modules each have
internal behavior, but interactions between modules are governed by the overarching framework of the
modular P/T net. In the case of limiting interactions between modules to just transitions, this framework
determines in which ways specific transitions of modules can be fired synchronously. Transitions that
only fire when synchronized are called external transitions and constitute the interface of the module.
Transitions that aren’t external are called internal. In such a model, the internal transitions of modules
behave as expected, while the synchronizations cause sets [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ] or multisets [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ] of external transitions
to fire together.
        </p>
        <p>
          The formal model serving as the basis for this paper will be the Ptc-system net [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ]. As such, it will
also determine the notation used. A Ptc-system net  is a tuple  = (, , ,  , ), where 
is a set of P/T-net modules,  is a set of channels,  is a set of synchronization rules,   is a set of
variables, and  is a variable assignment function.
        </p>
        <p>The P/T-net modules  ∈  themselves are P/T nets with a designated set of external transitions  ,
which are each assigned a channel from  and potential assignments for variables . Further, they
allow variables to be used as arc weights. The synchronization rules are multisets over  and allow
multisets of external transitions to fire if their channels sum to any such synchronization rule. At the
same time, the variable assignment functions  and  ensure that all relevant variables are assigned a
valid value. A multiset of external transitions that is allowed to fire in this way is called a synchronized
ifring group , and the set of all firing groups is called .</p>
        <p>In figure 2, a simple example for a Ptc-system net is given in Renew. It consists of a producer
and a consumer that are connected by a shared storage. All three are each a module in the
Ptcsystem net, whose synchronization rules are expressed by the transitions t2 and t3. The variable
assignments are performed implicitly by the synchronous channels in Renew. The synchronization rule
{produce, store} allows the firing group {tp1, ts0} to fire while assigning  a value of 3. Similarly,
{retrieve, consume} allows {ts1, tc1} to fire while assigning  a value of 2.</p>
        <p>The change a synchronized firing group afects on specific places can then be expressed similarly to
the arc weight function, leading to ̃︁ : ( × ) ∪ ( ×  ) → N 0. ̃︁(, ) describes how the
marking of a place  is decreased if a firing group  fires, and ̃︁(, ) describes how it increases.</p>
        <p>Together with the arc weight functions of all modules , aggregated into a single function ̃︁ with
extended domain to include all places and transitions, the incidence matrix of a Ptc-system net can be
succinctly described. To better diferentiate between internal and external components, the internal
incidence matrix  and the synchronized incidence matrix  are introduced in addition to the global</p>
        <p>The global incidence matrix can be formed with the internal incidence matrix  and the synchronized
incidence matrix  . The resulting matrix is a singly bordered block diagonal matrix as described above. The
rows and columns are sorted by the modules .</p>
        <p>∆ =</p>
        <p>⎜ 0
︀(   )︀ = ⎜⎜⎜ ...</p>
        <p>⎛ 1
Definition 2. The synchronized incidence matrix  considers the efects of synchronized transition sets. A
synchronized incidence matrix exists for each module, in which the efects of the synchronized transition
sets on the places of the modules are observed.</p>
        <p>,pg = ∆() =</p>
        <p>
          ̃︁sync(, ) − ̃︁sync(, )
 ,pg = ∆() =
̃︁sync(, ) − ̃︁sync(, ),
for  ∈ 
Definition 3. The global incidence matrix ∆ results from the efects of the transition and synchronized
transition sets from the PTC-System Net.
incidence matrix ∆ [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ].
        </p>
        <p>Definition 1. The internal incidence matrix  results from the efect of the internal transitions. Each
module has an internal incidence matrix, which is calculated independently from the other modules. The
entries of the internal incidence matrices aren’t necessarily integers, because the external transition can
include variables on their arc weights. These are only relevant if the whole net is considered.</p>
      </sec>
      <sec id="sec-3-5">
        <title>3.5. Formal Definitions of Coupling &amp; Cohesion</title>
        <p>
          As a foundation for discussing coupling and cohesion in modular systems we will use the formal
definitions given in [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ]. They are based on a representation of modular systems consisting of a set of
elements and the relationships between these elements represented by a binary relation. Modules are
then each a subset of these elements, collectively forming a partition. Relationships between elements
are categorized as intra-module relationships   connecting elements belonging to the same module
and inter-module relationships connecting elements belonging to diferent modules. The latter are
further divided into input and output relationships. However, for our purposes we will refer to these
external relationships collectively as .
        </p>
        <p>Intuitively, the coupling of a module describes how many relationships exist between it and other
modules. The coupling of a modular system describes how many relationships exist between all its
modules. Formally, the coupling of a module  or modular system   is a function coupling() or
coupling( ) characterized by the following properties:
1–23
(11)
(15)
(16)
(17)</p>
        <sec id="sec-3-5-1">
          <title>1. Non-negativity and Normalization</title>
          <p>
            Cohesion is non-negative and normalized:
cohesion() ∈ [
            <xref ref-type="bibr" rid="ref1">0, 1</xref>
            ],
cohesion( ) ∈ [
            <xref ref-type="bibr" rid="ref1">0, 1</xref>
            ]
          </p>
        </sec>
        <sec id="sec-3-5-2">
          <title>2. Null Value</title>
          <p>The cohesion is 0 if the set of intra-module relationships in a module () or in a modular
system () is empty:</p>
          <p>= ∅ ⇒ cohesion() = 0,  = ∅ ⇒ cohesion( ) = 0</p>
        </sec>
        <sec id="sec-3-5-3">
          <title>3. Monotonicity</title>
          <p>Adding intra-module relationships does not decrease cohesion. Let ′ be a module that results
from a module  by adding intra-module relationships so that  ⊆  ′ , and let  ′ be a
modular system that results from a modular system   containing  by replacing  with ′.
Then:
coupling() ≥ 0,
coupling( ) ≥ 0
(10)</p>
        </sec>
        <sec id="sec-3-5-4">
          <title>2. Null Value</title>
          <p>The coupling is 0 if the set of inter-module relationships in a module () or in a modular
system () is empty:</p>
          <p>= ∅ ⇒ coupling() = 0,  = ∅ ⇒ coupling( ) = 0</p>
        </sec>
        <sec id="sec-3-5-5">
          <title>3. Monotonicity</title>
          <p>Adding inter-module relationships does not decrease coupling. Let ′ be a module that results
from a module  by adding inter-module relationships so that  ⊆  ′ , and let  ′ be a
modular system that results from a modular system   containing  by replacing  with ′.
Then:
coupling() ≤ coupling( ′),
coupling( ) ≤ coupling(  ′)
(12)</p>
        </sec>
        <sec id="sec-3-5-6">
          <title>4. Merging of Modules</title>
          <p>Merging two modules together does not increase coupling. Let 1, 2 be two modules, let ′ be
the union of 1 and 2, and let  ′ be a modular system that results from a modular system
  containing 1, 2 by replacing both with ′. Then:
coupling(1) + coupling(2) ≥ coupling( ′),
coupling( ) ≥ coupling(  ′) (13)</p>
        </sec>
        <sec id="sec-3-5-7">
          <title>5. Disjoint Module Additivity</title>
          <p>In the case of two unrelated modules being merged, the coupling remains unchanged. If there are
no relationships between 1 and 2, then:
coupling(1) + coupling(2) = coupling(′),
coupling( ) = coupling( ′) (14)</p>
          <p>Intuitively, the cohesion of a module describes how well the elements of the module are grouped
together. The cohesion of a modular system acts as a comprehensive measure for the cohesion of all its
modules. Formally, the cohesion of a module  or modular system   is a function cohesion() or
cohesion( ) characterized by the following properties:</p>
        </sec>
        <sec id="sec-3-5-8">
          <title>1. Non-negativity</title>
          <p>Coupling is non-negative:
cohesion() ≤ cohesion( ′),
cohesion( ) ≤ cohesion(  ′)</p>
        </sec>
        <sec id="sec-3-5-9">
          <title>4. Cohesive Modules</title>
          <p>Merging together unrelated modules does not increase cohesion. Let 1, 2 be two modules
that have no relationships between them, i.e., 1 ∩ 2 = ∅, let ′ be the union of 1
and 2, and let  ′ be a modular system that results from a modular system   containing
1, 2 by replacing both with ′. Then:
max(cohesion(1), cohesion(2)) ≥ cohesion( ′),
cohesion( ) ≥ cohesion(  ′)</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>4. Problem Description</title>
      <p>Given the incidence matrix ∆</p>
      <p>of a P/T net, the net’s T-invariants are solutions of the homogenous
linear system ∆ = 0 and the P-invariants are solutions of ∆
is based on solving a linear system  = 0.</p>
      <p>T = 0. The computation of invariants</p>
      <p>
        This is done through two steps. First, the matrix  is reduced to row echelon form ̃︀. Then, the
reduced linear system ̃︀ = 0 is solved through backward substitution. Between these two steps, it is
the reduction to row echelon form that is more computationally expensive [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ]. Therefore, our goal is
to exploit the inherent modular structure of modular P/T nets to improve this reduction over the direct
application of Gaussian elimination.
      </p>
      <p>
        Further, for modular nets with synchronous channels, the net’s T-invariants can be combined from
local T-invariants through their coupling components [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ]. Because of this, it isn’t necessary to reduce
∆ in its entirety. This is in contrast to P-invariants, where local invariants are preserved even when
considering the entire modular net. However, through the interactions between modules, further
P-invariants can emerge [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. To compute these invariants, the net has to be considered in its entirety.
What is, therefore, required is a reduction of ∆ T specifically.
      </p>
    </sec>
    <sec id="sec-5">
      <title>5. Modular Gaussian Elimination</title>
      <p>In this section we describe an algorithm for reducing an incidence matrix ∆ T to row echelon form. We
will first give an overview of the entire algorithm. Then, by dividing the algorithm into three phases,
we will describe each part in more detail. Since we only consider the transposed incidence matrix, we
will refer to the transpose matrices without the superscript T from this point forward, keeping notation
simple. So, for example, instead of ∆ T,  T,  T, we will just call them ∆, , .</p>
      <p>Reduction of the incidence matrix ∆</p>
      <p>can be divided into two parts. Firstly, the reduction of its block
diagonal part  , where care is taken to ensure properties that aid in the following part. And secondly,
reduction of the block border part , using the already reduced .</p>
      <sec id="sec-5-1">
        <title>5.1. Overview</title>
        <p>is in SBBD form:
The modular Gaussian elimination, given in Algorithm 2, takes an incidence matrix ∆ consisting of an
internal incidence matrix  and a synchronized incidence matrix  . As  is a block diagonal matrix, ∆
(18)
(19)
∆ =
⎛ 1
⎜⎜ 0  2
0
.
.</p>
        <p>.
· · ·
· · ·
.
.
.</p>
        <p>.
0 
0</p>
        <p>⎞</p>
        <p>As the blocks in  are independent of each other, the main challenge in reducing ∆ is introduced
by the interactions between modules contained in  . First, this independence is completely utilized
This is done by using rows from the just reduced  to avoid interactions between modules. However,
in general, such an isolated approach doesn’t sufice so that some entries in
 remain. Finally, these
remaining entries are eliminated in Phase 3. This requires using rows from  itself so that interactions
between modules are unavoidable. As a last step, simple row permutations are performed so that a
proper row echelon form is achieved.</p>
        <p>Algorithm 2 Reduction of ∆ to row echelon form
2: Output: The matrix ∆ ̃i︀n row echelon form
3: procedure Modular Gaussian Elimination()
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
for all  ∈ [1, ] do
end for
// Phase 1: Reduction of block diagonal matrix  = diag( 1,  2, . . . ,  )</p>
        <p>Transform   to row echelon form  ̃︀</p>
        <p>Move leading entries to the main diagonal by swapping columns
// Phase 2: Initial reduction of synchronization border
for all  ∈ [1, ] do
for all  ∈ [1, rank( ̃︀)] do</p>
        <p>Use row  of  ̃︀ to eliminate all entries in column  of   forming  ′
end for
end for
︃(</p>
        <p>)︃
 ̃︀
 ̃︀
// Phase 3: Final reduction of synchronization border
Eliminate remaining entries in  ′ transforming it to row echelon form  ̃︀
Rearrange rows in</p>
        <p>to get row echelon form ∆ ̃︀
18: end procedure</p>
      </sec>
      <sec id="sec-5-2">
        <title>5.2. Phase 1: Reduction of block diagonal matrix</title>
        <p>Due to the block diagonal structure of  , each of its blocks can be considered in isolation. We reduce each
individual block   into row echelon form through Gaussian. Then, the resulting matrix is transformed
through column permutations to ensure that each leading entry lies along the main diagonal. We will
call the thusly transformed matrix  ̃︀.</p>
        <p>The same column permutations are also performed on  , keeping the columns between both parts
of ∆ consistent. Since these permutations are a simple rearrangement of the columns of  , we won’t
introduce a specific designator and will keep referring to it as .</p>
        <p>The permutations performed on each   are illustrated by taking matrix  in row echelon form as an
example. The leading entries in rows 3 and 4 do not lie on the main diagonal but are located in columns
5 and 7, respectively. To achieve the desired structure, columns 3 and 5 are swapped, as well as columns
4 and 7. The resulting matrix ̃︀ now has all its leading entries along its main diagonal.
Having reduced every block   to  ̃︀ in this way, we get the reduced  ̃︀ as a block diagonal matrix
→−
with all individual reduced blocks along its diagonal:
 ̃︀=</p>
        <p>̃︁1
⎛
⎜⎜ 0
⎜⎜⎝ ...</p>
        <p>0
0
̃︁2
.
.</p>
        <p>.
· · ·
0
· · ·
.
.
.
.
.
.</p>
        <p>0</p>
        <p>⎞
· · ·
0
· · ·
.
.
.
.
.
.</p>
        <p>0</p>
        <p>⎞
Note that  ̃︀ is only almost in row echelon form as it may contain rows with all entries equal to zero
not located at the bottom of the matrix. This is due to the zero rows of a diagonal block being located
higher than the entries of the following blocks. The following matrix illustrates this for the case  = 2
with two 3 × 2 submatrices:
These zero rows could be permuted to the bottom of the block diagonal matrix to achieve a proper
row echelon form. This form is, in a sense, equivalent to row echelon form with respect to simple row
permutations. Therefore, this form of reduction sufices to continue with the subsequent phase.</p>
      </sec>
      <sec id="sec-5-3">
        <title>5.3. Phase 2: Initial reduction of synchronization border</title>
        <p>After the reduction of , the incidence matrix ∆ has been transformed to:
(23)
(24)
While the  blocks were entirely independent of each other, the same does not apply to  , which
relates to the synchronization between modules. However, by using  ̃︀ for eliminating entries in  , the
corresponding row additions only afect the columns of module . In this way, independence between
modules can be further exploited.</p>
        <p>Due to the construction of  ̃︀, all its leading entries lie along its main diagonal and the rest of the
main diagonal is filled with zeros. Therefore, the number of these entries is equal to the rank of the
matrix rank( ̃︀). Each corresponding row allows elimination of all entries in   located in the same
column as the leading entry. Through these eliminations,   is transformed into  ′ in which the first
rank( ̃︀) columns’ entries are all equal to zero.</p>
        <p>︂(  ̃︀</p>
        <p>︂)
 
= ⎜</p>
        <p>⎞
⎛</p>
        <p>* * * * *
⎜
⎜0 * * * * ⎟
⎜⎜0 0 * * * ⎟⎟</p>
        <p>⎟
⎜
⎜0 0 0 0 0⎟
⎜0 0 0 0 0⎟
⎜* * * * * ⎟⎟
⎜
⎜
⎝* * * * * ⎠⎟
⎟
⎟
︂(  ̃︀</p>
        <p>︂)
 ′
= ⎜</p>
        <p>⎞
⎛</p>
        <p>* * * * *
⎜
⎜0 * * * * ⎟
⎜⎜0 0 * * * ⎟⎟</p>
        <p>⎟
⎜</p>
        <p>In the context of modular P/T nets, this process can be further simplified. The rows in  are the efects
of the synchronized firing groups, which result from the combined efects of the participating external
transitions. If the entry for a specific column has been eliminated for each external transition, meaning
that it is then equal to 0, any way of combining such transitions will always yield an efect with that
specific entry also being equal to 0. Therefore, it sufices to reduce just these external transitions for
each module.</p>
        <p>If the elimination in Phase 2 is done on the external transitions instead of the synchronized firing
groups, in which all variables already have a unique value assigned to them, the question arises how
to handle variables. One approach would be to just leave them as is and to perform the elimination
steps through symbolic computations. However, such computations are inherently more expensive
than numerical computations and, further, could make additional entries depend on the specific value
of the variable.</p>
        <p>Indicating against the unconstrained use of variables is the fact that all external transitions of a module
can be replaced by a single transition if assigning negative values is permissible. This is illustrated in
Figure 3, where assignments of  and  with 1 and 3, 2 and 1, and 1 and 0 allow emulating each of the
three replaced transitions. It would then be unreasonable to expect that a problem of any size could be
reduced to just a constant size.</p>
        <p>However, due to only partial reductions being performed in Phase 2, variables can be efectively
hidden from the numerical computations being performed. If a variable of a module  is located in one
of the last || − rank(  ̃︀) columns, i.e., a column whose entries won’t be eliminated in Phase 2, then
the symbolic value of its entry at the end of the phase will be equal to the variable itself plus some
numerical value. As such, the variable can simply be treated as 0 during computations, and only in the
instantiation of the synchronized firing groups for Phase 3 will the variable be assigned its value. The
computed numerical value then simply serves as an ofset in this assignment.</p>
      </sec>
      <sec id="sec-5-4">
        <title>5.4. Phase 3: Final reduction of synchronization border</title>
        <p>In the case that  ̃︀ has rank lower than its number of columns, some entries in   remain, as exemplified
in Equation (24). These entries require rows in  itself to be used for elimination. However, such rows
are not contained to any specific module but instead include nonzero entries in columns belonging to
modules that participate in the synchronized firing group represented by that row.</p>
        <p>Without presupposing anything about anything about the specific external transitions and
participation of modules in synchronizations, all entries not yet eliminated could potentially be a nonzero entry.
As such, each block  ′ consists of some initial zero columns followed by the remaining columns filled
with arbitrary entries. The following matrix exemplifies this structure for  ′:
⎛* *
⎜* *
︀) = ⎜⎜* *
 ′ = (︀  1′  2′  3′ · · ·  ′
⎜
⎝* *
* *
0 0 *
0 0 *
0 0 *
0 0 *
0 0 *
 ′ is then reduced to row echelon form by Gaussian elimination, transforming it into  ̃︀ . Every row
of  ̃︀ that was used to eliminate entries in the rows below it will contain entries that can’t be further
eliminated. When considering ∆ in its entirety, it is therefore not yet in row echelon form. However,
by either swapping these rows with zero rows of the  ̃︀ , which columns its leading entry belongs to, or
by inserting it below  ̃︀if no such zero row exists, full row echelon form of ∆ is achieved.</p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>6. Computation Example of the Algorithm</title>
      <p>As an example to illustrate how the algorithm works, we will consider the modular net in Figure 4.
It consists of 4 modules that are synchronized by two synchronization rules, resulting in 4 possible
synchronized firing groups.
The net’s modular structure results in the following incidence matrix ∆:
The dashed lines indicate the individual modules, with vertical lines separating the places and horizontal
lines separating the internal transitions. The solid line divides ∆ into the internal incidence matrix  in
the upper half and the synchronized incidence matrix  in the lower half.</p>
      <p>The modules are arranged in natural reading order. For example, the first block contains the internal
incidence matrix  1 of the upper left module. It consists of the efect of its internal transition t1 as the
ifrst row and the efect of t2 as the second row. Notably, the third module doesn’t contain any internal
transitions so that its internal incidence matrix is empty.</p>
      <p>The first and second rows in  both result from the synchronization rule {, , }. Multiple external
transitions inscribed with the channel  existing, one in the upper right and the other in the lower left
module, lead to a choice in synchronization. Consequently, two diferent synchronized firing groups
1
0
0
0
0
0
0
0
1
0
0
︃(
︃(
0
2
0
0
0
0
0
0
0
1–23
(27)
(28)
(29)
(30)
(31)
similarly based on the choice regarding channel .</p>
      <p>In Phase 1 of the algorithm, each individual block   is reduced:
are possible. In the first row, the transition from the upper right module is chosen, and in the second
row, the transition from the lower left. The third and fourth rows, resulting from {, , , }, behave
 1 =
︂( 2
−
2
1
doing this for every synchronized firing group, it sufices to do so for every external transition, as the</p>
      <p>Then, in Phase 2, each reduced  ̃︀ is used to eliminate entries in the corresponding  . Instead of
former are composed of the latter.</p>
      <p>︂( ̃︁1︂)</p>
      <p>1
→−
inserted in  ̃:︀
partially reduced  ′. Finally,  ′ is reduced to  ̃︀in Phase 3:
Together,  ̃︀ and  ̃︀ are then almost in row echelon form so that the rows of  ̃︀ simply have to be
As can be seen, due to (̃︁1) = 2 being smaller than |1| = 3, a row with a nonzero entry in the
third column remains in  ̃︀ , requiring insertion. At the same time, ̃︁1 having more columns than rows
means that there is space below it in regard to the row echelon form. This space, then, allows the row
from  ̃︀to be inserted as the third row.</p>
      <p>With (̃︁2) = 1 &lt; |2| = 2, the same applies, resulting in the second row of  ̃︀ being inserted
below ̃︁2. In this case, a zero row has to be swapped to the bottom of the entire matrix in return.</p>
      <p>While (̃︁3) = 0 &lt; |3| = 1 implies that there is a third row in  ̃︀ to be expected, this row
happened to be eliminated in the process of reducing  ′ to  ̃︀ . This fact also means that an invariant
exists in the whole modular net. Specifically, backward substitution yields the following P-invariant:
︀( 1
−</p>
    </sec>
    <sec id="sec-7">
      <title>7. Analysis</title>
      <p>In this section, we will shortly justify that Algorithm 2 works and terminates correctly. Then, we will
analyse the runtime of each of the algorithm’s phases before giving a combined overview.
1–23</p>
      <sec id="sec-7-1">
        <title>7.1. Correctness and Termination</title>
        <p>The Algorithm 2 works mostly like normal Gaussian elimination by using elementary row operations. It
deviates by changing the order in which entries are eliminated and by performing column permutations
in Phase 1.</p>
        <p>The change in order results from performing operations in the outlined phases instead of simply
going row by row. However, this order serves to describe the algorithm more clearly and to ensure
constraints on the row permutations performed. These constraints do not limit the correctness of the
elimination, as they do not prevent the choice of pivot elements if no other alternatives exist. Such a
choice is just postponed to Phase 3.</p>
        <p>Using column permutation is unproblematic, as it does not interfere with the row permutations
necessary for selecting pivot elements. Further, they correspond to changing the order of variables in
the linear system. When subsequently solving the linear system, the column permutations simply have
to be performed in reverse order on the solution vectors to get the correct arrangements of variables.</p>
        <p>Overall, therefore, the correctness and termination of Algorithm 2 follow directly from that of the
Gaussian elimination.</p>
      </sec>
      <sec id="sec-7-2">
        <title>7.2. Runtime of Phase 1: Reduction of block diagonal matrix</title>
        <p>When only considering the internal elements of the individual modules, it is to be expected that
computations involving the entire modular net can be reduced to addressing each module individually.
Just that is what we find for the reduction of the block diagonal matrix to row echelon form. Each block
  is reduced separately so that the runtime of reducing  doesn’t depend on the modular net’s size as a
whole but on the individual sizes of its modules.</p>
        <p>
          Since the algorithm doesn’t depend on the specific method used for reducing each   to row echelon
form, we simply assume it to be an arbitrary runtime  (||, ||) depending on the corresponding
module’s number of places and transitions. In the simplest case, this would be Gaussian elimination
with  (||, ||) =  ︀( max(||, ||) min(||, ||)2)︀ [
          <xref ref-type="bibr" rid="ref28">28</xref>
          ]. But more eficient algorithms exist, such
as Strassen’s algorithm with  () =  ︀( log2(7))︀ ≈  ︀( 2.8)︀ for  ×  matrices [
          <xref ref-type="bibr" rid="ref29 ref30">29, 30</xref>
          ], methods for
significant diferences in || and || [
          <xref ref-type="bibr" rid="ref31 ref32">31, 32</xref>
          ], or potential optimizations based on the specific sparse
structure of the module. This way, it follows for the combined runtime of all modules:

︃( 
∑︁  (||, ||)
=1
)︃
(33)
        </p>
        <p>Even though the sum of maximum terms can be higher than the maximum of the entire net, i.e.,
∑︀=1 max(||, ||) ≥ max(| |, | |) , in terms of time complexity, the more influential minimum
terms are lower, i.e., ∑︀</p>
        <p>=1 min(||, ||) ≤ min(| |, | |) . It follows then that modules that deviate
strongly from being square matrices are beneficial for the block diagonal matrix reduction. In the
following, it is therefore justified to assume  = || = || and let  = 1 + 2 + · · · +  . Expressing
the runtime as a polynomial  with  ≥ 2 leads to the following inequality:</p>
        <p>∑︁  = ⎝
=1
⎛︃( 
∑︁||
=1
)︃ 1 ⎞
⎠
= (‖(1, 2, · · · ,  )‖) ≤ (‖( 1, 2, · · · ,  )‖1) =
︃( 
∑︁||
=1
)︃</p>
        <p>= 
(34)</p>
        <p>
          The inequality follows from the relations between diferent -norms, where ‖‖ ≤ ‖‖  for all
1 ≤  ≤  &lt; ∞ [
          <xref ref-type="bibr" rid="ref33">33</xref>
          ]. This confirms the intuitive notion that it is indeed more eficient to solve 
independent subproblems than to solve the entire problem at once. Moreover, the inequality is strict if
there is more than one non-empty module.
        </p>
        <p>However, in terms of asymptotic runtime, the size of the largest module dominates. This leads to the
ifrst condition for good modularization, requiring modules to all be of roughly the same size  so that
 ≈ /. In that case, the overall runtime simplifies to:
︃(</p>
        <p>)︃

∑︁  ≈  ( ) =  ︁( (1−) )︁
=1
Consequently, if the number of modules  grows with the overall size of the system, a better asymptotic
runtime is achieved. For naive Gaussian elimination, where  = 3, this translates to an improvement
by a factor of 12 . The realistic best case is achieved if the modules are of constant size so that  ∈  ().
Irrespective of the actual algorithm used as a subroutine, the block diagonal matrix would then be
reduced to row echelon form in time  ().</p>
        <p>Beyond these runtime improvements, it is notable that the reduction of the individual blocks is
fully parallelizable and that modules with the same incidence matrix only require the reduction to be
computed once instead of for each of those modules.</p>
      </sec>
      <sec id="sec-7-3">
        <title>7.3. Runtime of Phase 2: Initial reduction of synchronization border</title>
        <p>adding a multiple of a row with || − 
number of operations in the order of
In total, the reduction of  to  ′ involves the elimination of all entries in the first rank(  ̃︀) columns in
  for each . And for each column, the number of entries to be eliminated is equal to the number of
rows in  , which is equal to ||. Each elimination of an entry in   using the -th row from  ̃︀ involves
entries. Consequently, the reduction in its entirety requires a

︃( 
∑︁ rank( ̃︀)||||
=1
∑︁ rank( ̃︀)||||
)︃
)︃
(35)
(36)
(37)
(38)
(39)</p>
        <p>However, because each elimination step only afects the entries in  , its rows contain duplicate
entries if external transitions participate in more than just one synchronization each. Therefore, instead
of ||, the efective number of rows becomes | | and the runtime is reduced to</p>
        <p>In both cases, the runtime depends on the size of the modules by way of the number of their respective
matrix. For modules of roughly the same size (|| ≈ | |/), the runtime simplifies to:
places. Note that rank( ̃︀) also depends on this notion of size as it can only take on values from 1 to
||. Therefore, the same considerations concerning module size apply here as for the block diagonal
︃(</p>
        <p>=1

∑︁ rank( ̃︀)|||| ≈ 
)︃
2 ||| |2 ∑︁ rank( ̃︀) )︃
1</p>
        <p>||
=1
by 1, leading to the following simplification:</p>
        <p>Because rank( ̃︀) can only take on values from 1 to ||, the summands can be upwardly bounded

︃(
1
2 ||| |2 ∑︁ 1
=1
 )︃
= 
︂( 1
 ||| |2
︂)</p>
        <p>It follows then that for modules of constant size ( ∈  (| |)), the reduction of  to  ′ is performed in
time  (||| |). Just as for the block diagonal matrix, this reduction is fully parallelizable, and modules
that have the same external transitions in addition to having the same internal incidence matrix don’t
require separate computations.</p>
      </sec>
      <sec id="sec-7-4">
        <title>7.4. Runtime of Phase 3: Final reduction of synchronization border</title>
        <p>Through the initial reduction, from the original || columns in  ′, rank( ̃︀) have had all their entries
eliminated. Excluding columns with only zeros, the efective number of columns  is therefore:

 = ∑︁(|| − rank(  ̃︀)) = | | − rank(  ̃︀) = | | − rank()</p>
        <p>=1</p>
        <p>Consequently,  ′ is efectively a || ×  matrix. As was the case for the blocks in , the subsequent
reduction of  ′ can be performed by any algorithm for reducing matrices to row echelon. In the case of
naive Gaussian elimination, this leads to the following runtime:</p>
        <p>︀( max(, ||) min(, ||)2)︀</p>
        <p>This means that these computations, in contrast to the previous ones, cannot be considered as
independent computations for each module. The runtime of the entire algorithm is therefore dominated
by the reduction from  ′ to  ̃︀ . What is gained by the previous two reductions is therefore an efective
reduction in rows and columns. The overall | ∖ | + || rows were reduced to just the || rows
corresponding to the interactions between modules, and the | | columns were reduced to just a fraction
depending on the rank of the internal incidence matrix.</p>
      </sec>
      <sec id="sec-7-5">
        <title>7.5. Overall runtime</title>
        <p>Both Phase 1 and Phase 2 make use of the modular structure in such a way that their runtimes are
significantly improved if the modular net is divided into modules of appropriate size. Additionally, Phase
2 is influenced by the size of the interfaces between modules, measured by || or more specifically
by ||. On the other hand, Phase 3 doesn’t benefit in the same way so that its runtime grows
asymptotically the most with the overall size of the modular net. Besides the number of places, the
runtime also increases with the size of the interfaces between modules ||. To some degree these costly
elimination steps, which involve the coupling components between modules, can be alleviated by work
done in Phase 2, exploiting the independence between modules. The extent of this improvement results
from the rank of the internal incidence matrix rank().</p>
        <p>These measures directly influence the overall runtime, and as such, they serve as indicators for how
the modularity of a given modular net aids in its analysis. In this sense, they determine whether a
modular net has good or bad modularity.</p>
      </sec>
    </sec>
    <sec id="sec-8">
      <title>8. Coupling &amp; Cohesion in Modular P/T Nets</title>
      <p>The runtime analysis in Section 7 yielded formal expressions for assessing the modularity of a modular
P/T net. We aim to put these indicators into the proper context by classifying what kind of measures
they are. Specifically, we will express them as measures for coupling and cohesion.</p>
      <p>
        However, we will first reconsider the underlying framework for describing the modular system. In
[
        <xref ref-type="bibr" rid="ref15">15</xref>
        ], the elements of a modular system are connected by a binary relation. In the context of P/T nets, it
is natural to let both places and transitions be elements in this sense. These elements are related to
each other if they are connected by the flow relation  .
      </p>
      <p>
        While such an approach can most definitely be taken [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ], we find that in the context of modularization
through synchronous channels, it is more appropriate to have just the places as elements and the
transitions serve as relationships between these elements. Instead of the modular system being described
by a directed graph, it is then a hypergraph with places as vertices and transitions as hyperedges.
In this way, the modularization through synchronous channels corresponds to a separation of the
elements, with just the relationships between these elements serving as connections between modules.
The categorization of relationships into intra-module  and inter-module  follows naturally.
Transitions that are only connected to places of a single module are intra-module relationships, and all
(40)
(41)
(42)
(43)
(44)
(45)
(46)
(47)
coh() =
( )
      </p>
      <p>||
coh( ) =
()
| |
The cohesion of a Ptc-system net  is equal to the number of internal transitions, whose efect vectors
are linearly independent, divided by the number of all places:</p>
      <p>In this case, the relation between the rank of the internal incidence matrix and what would be
expected of a cohesion measure isn’t as direct as for the coupling measures. Therefore, we will show
that the expected properties as outlined in Section 3.5 are indeed satisfied.</p>
      <sec id="sec-8-1">
        <title>1. Non-negativity and Normalization</title>
        <p>As the rank of a matrix is non-negative and bounded by the minimum between the number of
rows and the number of columns, coh is non-negative and normalized:
The coupling of a Ptc-system net  is equal to the number of its synchronized firing groups:
cou() = |{ ∈  | ∃ ∈  :  ∈ }|</p>
        <p>cou( ) = ||</p>
        <p>
          Each synchronized firing group of a Ptc-system net corresponds to a transition in its equivalent P/T
net connecting places belonging to multiple modules [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ]. Therefore, the firing groups directly relate
to the inter-module relationships . Consequently, it follows that cou satisfies the properties for a
coupling measure as outlined in Section 3.5.
        </p>
        <p>As performing the reduction in Phase 2 leads to the runtime given in Equation (37), it depends on
the number of external transitions || instead of ||. Therefore, another measure of coupling based on
the Ptc-system net’s external transitions arises naturally.</p>
        <p>Definition 5. The coupling of a P/T net module  is equal to the number of its external transitions, and
the coupling of a Ptc-system net  is equal to the number of its external transitions:
coue() = | |,</p>
        <p>coue( ) = ||</p>
        <p>The external transitions directly relate to the synchronized firing groups and, therefore, to the
inter-module relationships . Again, it follows that coue does indeed satisfy the required properties.</p>
        <p>Finally, the extent to which entries in  ′ can be eliminated in Phase 2 instead of Phase 3 captures an
important aspect of modularity in Ptc-system nets. Indeed, the expression of the remaining columns
given in Equation (40) leads to the following measure of cohesion based on the rank of the internal
incidence matrix.</p>
        <p>Definition 6. The cohesion of a P/T net module  is equal to the number of internal transitions, whose
efect vectors are linearly independent, divided by the number of its places:
other transitions are inter-module relationships. With this basis, we can now formally define coupling
and cohesion.</p>
        <p>Both the runtime of Phase 2, as given in Equation (36), and Phase 3, given in Equation (41), depend
on the number of synchronized firing groups ||. On this basis, we formulate the first definition of
coupling.</p>
        <p>
          Definition 4. The coupling of a P/T net module  is equal to the number of synchronized firing groups in
which the module participates:
coh() ∈ [
          <xref ref-type="bibr" rid="ref1">0, 1</xref>
          ],
        </p>
        <p>
          coh( ) ∈ [
          <xref ref-type="bibr" rid="ref1">0, 1</xref>
          ]
(48)
(49)
(50)
(51)
(52)
= max (coh(1), coh(2))
        </p>
      </sec>
      <sec id="sec-8-2">
        <title>2. Null Value</title>
        <p>There being no intra-module relationships in a module means that the module doesn’t contain
any internal transitions. In that case the rank of the internal incidence matrix is equal to 0 for
each module and for the entire modular net. Therefore, it follows:</p>
        <p>= ∅ ⇒ coh() = 0,  = ∅ ⇒ coh( ) = 0</p>
      </sec>
      <sec id="sec-8-3">
        <title>3. Monotonicity</title>
        <p>Intramodule relationships can only be added by adding further internal transitions. If the efect of
such transitions is a linear combination of already existing transitions, the rank stays the same. If
it isn’t a linear combination, the rank increases. Consequently, for a module ′ that results from
a module  by adding intra-module relationships so that  ⊆  ′ and the corresponding
modular systems  ′ (containing ′) and   (containing ), it follows that:
coh() ≤ coh( ′),
coh( ) ≤ coh(  ′)</p>
      </sec>
      <sec id="sec-8-4">
        <title>4. Cohesive Modules</title>
        <p>After merging two unrelated modules, 1 and 2, into the combined ′, their combined incidence
matrix is a block diagonal matrix with the individual incidence matrices as blocks. In this form,
it can be directly seen that the rows/columns corresponding to 1 are necessarily linearly
independent of the rows/columns corresponding to 2. Consequently, the rank of the combined
internal incidence matrix is equal to the sum of the ranks of the individual internal incidence
matrices:</p>
        <p>rank( ′ ) = rank( 1 ) + rank( 2 )
For the cohesion follows then:
coh(′) =
rank( 1 ) + rank( 2 )
|1 | + |2 |
≤ max
︂( rank( 1 ) , rank( 2 ) ︂)
|1 |
|2 |
Considering the modular system as a whole, both the rank of the internal incidence matrix as
well as the number of places stay the same. Therefore, the modular system   containing 1
and 2 has the same cohesion as the modular system  ′ in which 1 and 2 are replaced by
′:</p>
        <p>coh( ) = coh( ′)</p>
        <p>In particular, the desired inequality of coh( ) ≥ coh(  ′) holds.</p>
        <p>
          Interestingly, this cohesion measure inversely relates to the number of internal P-invariants. By the
rank-nullity theorem [
          <xref ref-type="bibr" rid="ref23">23</xref>
          ], the dimension of the solution space of a homogenous linear system with
matrix  is equal to the diference between the dimension of the domain and the rank of . In terms
of internal P-invariants, this is the diference between the number of places | | and the rank of the
internal incidence matrix rank  . It follows then that the cohesion coh is higher if there are fewer
internal P-invariants.
9. Transforming Bordered Block Diagonal Matrices into Modular Nets
In Section 8, measures of coupling and cohesion were defined based on properties of matrices that
allow more eficient computation of solutions to homogenous linear systems as outlined in Section 7. It
follows, then, that this parallel of good modularity between SBBD matrices and modular nets lends
itself to considering them as the same kind of optimization problem.
        </p>
        <p>
          Just as the inherent structure of modular P/T nets translates directly to the structure of the transposed
incidence matrix, forming an SBBD matrix [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ], the reverse is true as well. If the transposed incidence
matrix of a non-modular P/T net is arranged so that it is in SBBD form, then the columns of each block
along the diagonal constitute a set of places. Each of these sets is non-empty and disjoint from all other
blocks, and all sets together encompass all places. Therefore, they together form a partition of the net’s
places. This is illustrated by the following example, in which each set of places corresponding to a block
along the diagonal constitutes a part in the partition:
        </p>
        <p>
          Such a partition is suficient for deducing a modular structure for the initially unmodularized net
[
          <xref ref-type="bibr" rid="ref34">34</xref>
          ]. It follows then that every procedure for converting an arbitrary matrix to SBBD form directly
translates to the automatic modularization of P/T nets.
        </p>
        <p>A matrix structure similar to the SBBD form is the doubly-bordered block diagonal (DBBD) structure,
which also allows a border along the rightmost block column of the matrix. In the context of modular
P/T nets, this additional border would, in the most direct way, translate to inter-module interactions
between places in addition to the interactions between transitions. Therefore, the BDDB structure could
be interpreted as a modular net allowing both synchronous channels and shared places.</p>
        <p>But the BDDB structure is also relevant in modular P/T nets that use only synchronous channels.
Specifically, it is the special case of symmetric matrices in DBBD form that is of interest. When
considering the symmetric preTpre + postTpost in DBBD form, its blocks along the diagonal
translate to internal transitions, while its borders translate to synchronized firing groups. Therefore,
permuting matrices into BDDB form is also analogous to modularization of P/T nets. This is illustrated
by the following example:</p>
        <p>
          The transitions corresponding to the blocks in the diagonal would then be internal transitions. In
this case, 1 and 2 would be internal transitions of the module given by the set of places 1,2. The
same applies to 3, 4 and the module given by 3,4. The remaining places  ∖ (1,2 ∪ 3,4) are only
connected to external transitions, which would be 5. The rank of the blocks in preTpre + postTpost
then relates back to the rank of the blocks in ∆ T [
          <xref ref-type="bibr" rid="ref35 ref36">35, 36</xref>
          ].
        </p>
        <p>
          Permuting matrices into SBBD or DBBD form is a well-researched topic [
          <xref ref-type="bibr" rid="ref24 ref25 ref37 ref38 ref39">25, 37, 38, 39, 24</xref>
          ]. The
common goal of these transformations of minimizing the border size while keeping the size of the
diagonal blocks balanced [
          <xref ref-type="bibr" rid="ref38">38</xref>
          ] also optimizes the modular structure of the corresponding net. The
underlying problem, formulated as the partitioning of hypergraphs, was already examined in the
context of P/T net modularization in [
          <xref ref-type="bibr" rid="ref34">34</xref>
          ]. However, the extensive literature could inform more specific
approaches to this problem, enabling more eficient modularization of P/T nets.
10. Discussion
The analysis of the modular Gaussian elimination naturally leads to notions of coupling and cohesion.
They allow coupling and cohesion in modular P/T nets to be formally defined. Further, by being based
on properties that directly influence the runtime of computing P-invariants, loose coupling and high
cohesion have been formally demonstrated to be desirable properties of modular P/T nets. Therefore,
we believe it is justified to use these measures to judge the quality of modularity. They could be used
to inform decisions in designing modular systems or serve in determining the quality of outputs of
automatic modularization procedures.
        </p>
        <p>It is also conceivable to use them in modularization procedures directly. For example, a probabilistic
algorithm could output many diferent possible ways of splitting a net into modules. It would then be
required to determine which of these potential modularizations is in some sense the best, which could
be done through our coupling and cohesion measures.</p>
        <p>
          Another interesting aspect of the reduction in Phase 1 is that having multiple modules that only
partially exhibit the same internal behavior is already beneficial. This would justify using the
modularization based on replication proposed in [
          <xref ref-type="bibr" rid="ref34">34</xref>
          ] to also find partial replications.
        </p>
        <p>
          One aspect that wasn’t further examined in this paper is that the structure of the synchronized
incidence matrix  could be further utilized. In practice, not every module will be participating in every
synchronized firing group, so that many entries in  could be zeros. However, instead of specifically
addressing this through modifications in the modular Gaussian elimination, it might be more prudent
to instead arrange the matrix in a recursive bordered block diagonal form [
          <xref ref-type="bibr" rid="ref37 ref40">40, 37</xref>
          ]. To describe the
corresponding modular net, a recursive definition would be appropriate, in which not only P/T nets but
also Ptc-system nets themselves would act as potential modules.
        </p>
        <p>
          Lastly, it is worth mentioning that the use of the modular Gaussian elimination isn’t solely confined
to the computation of P-invariants. For example, just the step of reducing an incidence matrix to row
echelon form is enough to identify redundant information, reducing memory resources required for
state space construction [
          <xref ref-type="bibr" rid="ref41">41</xref>
          ].
11. Conclusion
An algorithm for performing Gaussian elimination in a modular manner has been presented and
analyzed. It aims to exploit the independence between modules resulting from the structure of modular
nets as much as possible. Its analysis focuses on how the specifics of this structure influence the
algorithm’s runtime.
        </p>
        <p>The parts of the algorithm that benefit from the independence (Phase 1 and Phase 2) achieve
asymptotic improvements if the number of modules depends on the net’s overall number of places and
transitions as opposed to having a fixed number of modules regardless of the net’s overall size. This is
in particular the case if modules are of roughly the same constant size.</p>
        <p>The size of the interface between modules influences the algorithm’s runtime of parts, in which the
terms corresponding to interactions between modules are considered (Phase 2 and Phase 3). The
specific ways of measuring this interface size, either through the external transitions in the modules or
the resulting possible synchronization, naturally serve as formal measures of coupling in modular P/T
nets.</p>
        <p>The extent to which the computation concerning interactions between modules can be performed in
a manner that keeps modules independent is determined by the rank of the internal incidence matrix.
This rank, then, constitutes a formal measure of cohesion in modular P/T nets.</p>
        <p>These measures of coupling and cohesion are thus based on characteristics of modular nets that are
demonstrably beneficial in the verification of system properties. Due to parallels in the good modularity
in this sense for both matrices and modular nets, it naturally arises that procedures for transforming
matrices into modular structures and the modularization of P/T nets aim to optimize the same goal.
Specifically, procedures for permuting matrices into either SBBD or DBBD form can be directly used to
transform a P/T net into a modular P/T net.</p>
        <p>Further investigations, as discussed in the previous section, are quite promising. The concept of
modules is highly relevant to the design of system models and analysis. The role of the concept of
netswithin-nets is central for the design of complex interacting systems. Therefore, the topic of coupling
and cohesion will be one of our research interests.</p>
      </sec>
    </sec>
    <sec id="sec-9">
      <title>Declaration on Generative AI</title>
      <p>During the preparation of this work, the authors used . . .
• . . . LanguageTool, QuillBot in order to: Grammar and spelling check
• . . . DeepL in order to: Translate Text.
• . . . ChatGPT in order to: Rephrasing.</p>
      <p>• . . . Grammarly in order to: Grammar and spelling check, Repharsing.</p>
      <p>After using these tool(s)/service(s), the authors reviewed and edited the content as needed and take full
responsibility for the publication’s content.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>D. L.</given-names>
            <surname>Parnas</surname>
          </string-name>
          ,
          <article-title>On the criteria to be used in decomposing systems into modules</article-title>
          ,
          <source>Communications of the ACM</source>
          <volume>15</volume>
          (
          <year>1972</year>
          )
          <fpage>1053</fpage>
          -
          <lpage>1058</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>P.</given-names>
            <surname>Fettke</surname>
          </string-name>
          , W. Reisig, Understanding the Digital World - Modeling
          <string-name>
            <surname>with</surname>
            <given-names>HERAKLIT</given-names>
          </string-name>
          , Springer,
          <year>2024</year>
          . URL: https://doi.org/10.1007/978-3-
          <fpage>031</fpage>
          -61898-7. doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>031</fpage>
          -61898-7.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>D.</given-names>
            <surname>Moldt</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Hansson</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Seifert</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Ihlenfeldt</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Clasen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Ehlers</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Feldmann</surname>
          </string-name>
          ,
          <article-title>Enriching HERAKLIT modules by agent interaction diagrams</article-title>
          , in: L.
          <string-name>
            <surname>Gomes</surname>
          </string-name>
          , R. Lorenz (Eds.),
          <source>Application and Theory of Petri Nets and Concurrency - 44th International Conference, PETRI NETS</source>
          <year>2023</year>
          , Lisbon, Portugal, June 25-30,
          <year>2023</year>
          , Proceedings, volume
          <volume>13929</volume>
          of Lecture Notes in Computer Science, Springer Nature Switzerland AG, Cham, Switzerland,
          <year>2023</year>
          , pp.
          <fpage>440</fpage>
          -
          <lpage>463</lpage>
          . URL: https: //doi.org/10.1007/978-3-
          <fpage>031</fpage>
          -33620-1_
          <fpage>23</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>R.</given-names>
            <surname>Valk</surname>
          </string-name>
          ,
          <article-title>Petri nets as dynamical objects</article-title>
          , in: G. Agha,
          <string-name>
            <given-names>F. D.</given-names>
            <surname>Cindio</surname>
          </string-name>
          (Eds.),
          <source>16th Intern. Conf. on Application and Theory of Petri Nets</source>
          , Torino, Italy, Workshop proceedings, University of Torino,
          <year>1995</year>
          .
          <source>Workshop während der "'16th International Conference on Application and Theory of Petri Nets"'</source>
          , Turin, Italien,
          <volume>26</volume>
          .-
          <fpage>30</fpage>
          . Juni,
          <year>1995</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>R.</given-names>
            <surname>Valk</surname>
          </string-name>
          ,
          <article-title>Bridging the gap between place- and Floyd-invariants with applications to preemptive scheduling</article-title>
          , in: A.
          <string-name>
            <surname>Marsan</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          (Ed.),
          <source>Application and Theory of Petri Nets</source>
          <year>1993</year>
          , Proceedings 14th International Conference, Chicago, Illinois, USA, volume
          <volume>691</volume>
          of Lecture Notes in Computer Science, Springer-Verlag,
          <year>1993</year>
          , pp.
          <fpage>433</fpage>
          -
          <lpage>452</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>M.</given-names>
            <surname>Köhler</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Moldt</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Rölke</surname>
          </string-name>
          ,
          <article-title>Modelling the structure and behaviour of Petri net agents</article-title>
          , in: J.
          <string-name>
            <surname>Colom</surname>
          </string-name>
          , M. Koutny (Eds.),
          <source>Proceedings of the 22nd Conference on Application and Theory of Petri Nets</source>
          <year>2001</year>
          , volume
          <volume>2075</volume>
          <source>of Lecture Notes in Computer Science</source>
          , Springer-Verlag,
          <year>2001</year>
          , pp.
          <fpage>224</fpage>
          -
          <lpage>241</lpage>
          . URL: http://www.springerlink.com/link.asp?id=j4kbf32af81bba75.
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>L.</given-names>
            <surname>Voß</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Willrodt</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Moldt</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Haustermann</surname>
          </string-name>
          ,
          <article-title>Between expressiveness and verifiability: P/T-nets with synchronous channels and modular structure</article-title>
          , in: M.
          <string-name>
            <surname>Köhler-Bußmeier</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Moldt</surname>
          </string-name>
          , H. Rölke (Eds.),
          <source>Proceedings of the International Workshop on Petri Nets and Software Engineering</source>
          <year>2022</year>
          co
          <article-title>-located with the 43rd International Conference on Application and Theory of Petri Nets and Concurrency (PETRI NETS</article-title>
          <year>2022</year>
          ), Bergen, Norway, June 20th,
          <year>2022</year>
          , volume
          <volume>3170</volume>
          <source>of CEUR Workshop Proceedings, CEUR-WS.org</source>
          ,
          <year>2022</year>
          , pp.
          <fpage>40</fpage>
          -
          <lpage>59</lpage>
          . URL: https://ceur-ws.
          <source>org/</source>
          Vol-
          <volume>3170</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>S.</given-names>
            <surname>Bott</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Moldt</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Clasen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Hansson</surname>
          </string-name>
          ,
          <article-title>Invariant calculations for P/T-nets with synchronous channels</article-title>
          , in: M.
          <string-name>
            <surname>Köhler-Bußmeier</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Moldt</surname>
          </string-name>
          , H. Rölke (Eds.),
          <source>Proceedings of the International Workshop on Petri Nets and Software Engineering</source>
          <year>2024</year>
          co
          <article-title>-located with the 45th International Conference on Application and Theory of Petri Nets and Concurrency (PETRI NETS</article-title>
          <year>2024</year>
          ), June 24 - 25,
          <year>2024</year>
          , Geneva, Switzerland, volume
          <volume>3730</volume>
          <source>of CEUR Workshop Proceedings, CEUR-WS.org</source>
          ,
          <year>2024</year>
          , pp.
          <fpage>104</fpage>
          -
          <lpage>121</lpage>
          . URL: https://ceur-ws.
          <source>org/</source>
          Vol-
          <volume>3730</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>S.</given-names>
            <surname>Christensen</surname>
          </string-name>
          , L. Petrucci,
          <article-title>Modular analysis of Petri nets</article-title>
          ,
          <source>The Computer Journal</source>
          <volume>43</volume>
          (
          <year>2000</year>
          )
          <fpage>224</fpage>
          -
          <lpage>242</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>S.</given-names>
            <surname>Christensen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Petrucci</surname>
          </string-name>
          ,
          <article-title>Towards a modular analysis of coloured Petri nets</article-title>
          , in: K. Jensen (Ed.),
          <source>Application and Theory of Petri Nets</source>
          <year>1992</year>
          , 13th International Conference, Shefield,
          <string-name>
            <surname>UK</surname>
          </string-name>
          , June 22-26,
          <year>1992</year>
          , Proceedings, volume
          <volume>616</volume>
          of Lecture Notes in Computer Science, Springer,
          <year>1992</year>
          , pp.
          <fpage>113</fpage>
          -
          <lpage>133</lpage>
          . URL: https://doi.org/10.1007/3-540-55676-
          <issue>1</issue>
          _
          <fpage>7</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>S.</given-names>
            <surname>Christensen</surname>
          </string-name>
          , L. Petrucci,
          <article-title>Modular state space analysis of coloured Petri nets</article-title>
          ,
          <source>in: International Conference on Application and Theory of Petri Nets</source>
          , Springer,
          <year>1995</year>
          , pp.
          <fpage>201</fpage>
          -
          <lpage>217</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>S.</given-names>
            <surname>Bott</surname>
          </string-name>
          ,
          <article-title>Untersuchung algorithmischer Optionen für die efiziente Invariantenberechnung in P/T-Netzen mit synchronen Kanälen und der technischen Umsetzung in Renew, Bachelor thesis</article-title>
          , Vogt-Kölln Str. 30,
          <string-name>
            <given-names>D</given-names>
            <surname>-</surname>
          </string-name>
          22527
          <string-name>
            <surname>Hamburg</surname>
          </string-name>
          ,
          <year>2024</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>L.</given-names>
            <surname>Petrucci</surname>
          </string-name>
          ,
          <article-title>Cover picture story: Experiments with modular state spaces</article-title>
          ,
          <source>Petri Net Newsletter</source>
          <volume>68</volume>
          (
          <year>2005</year>
          )
          <article-title>cover-and</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>C.</given-names>
            <surname>Lakos</surname>
          </string-name>
          , L. Petrucci,
          <article-title>Modular state spaces and place fusion</article-title>
          ,
          <source>in: International Workshop on Petri Nets and Software Engineering (PNSE</source>
          <year>2007</year>
          ,
          <article-title>associated with</article-title>
          <source>Petri Nets</source>
          <year>2007</year>
          ),
          <year>2007</year>
          , pp.
          <fpage>175</fpage>
          -
          <lpage>190</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>L. C.</given-names>
            <surname>Briand</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Morasca</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V. R.</given-names>
            <surname>Basili</surname>
          </string-name>
          ,
          <article-title>Property-based software engineering measurement</article-title>
          ,
          <source>IEEE transactions on software Engineering</source>
          <volume>22</volume>
          (
          <year>2002</year>
          )
          <fpage>68</fpage>
          -
          <lpage>86</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>E. B.</given-names>
            <surname>Allen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T. M.</given-names>
            <surname>Khoshgoftaar</surname>
          </string-name>
          ,
          <article-title>Measuring coupling and cohesion: An information-theory approach</article-title>
          ,
          <source>in: Proceedings sixth international software metrics symposium (cat. no. pr00403)</source>
          , IEEE,
          <year>1999</year>
          , pp.
          <fpage>119</fpage>
          -
          <lpage>127</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>E. B.</given-names>
            <surname>Allen</surname>
          </string-name>
          ,
          <article-title>Measuring graph abstractions of software: an information-theory approach</article-title>
          , in: Proceedings eighth ieee symposium
          <source>on software metrics, IEEE</source>
          ,
          <year>2002</year>
          , pp.
          <fpage>182</fpage>
          -
          <lpage>193</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>D.</given-names>
            <surname>Poshyvanyk</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Marcus</surname>
          </string-name>
          ,
          <article-title>The conceptual coupling metrics for object-oriented systems</article-title>
          ,
          <source>in: 2006 22nd IEEE International Conference on Software Maintenance, IEEE</source>
          ,
          <year>2006</year>
          , pp.
          <fpage>469</fpage>
          -
          <lpage>478</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>S.</given-names>
            <surname>Kramer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Kaindl</surname>
          </string-name>
          ,
          <article-title>Coupling and cohesion metrics for knowledge-based systems using frames and rules</article-title>
          ,
          <source>ACM Transactions on Software Engineering and Methodology (TOSEM) 13</source>
          (
          <year>2004</year>
          )
          <fpage>332</fpage>
          -
          <lpage>358</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>S.</given-names>
            <surname>Moser</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V. B.</given-names>
            <surname>Misic</surname>
          </string-name>
          ,
          <article-title>Measuring class coupling and cohesion: a formal metamodel approach</article-title>
          ,
          <source>in: Proceedings of Joint 4th International Computer Science Conference and 4th Asia Pacific Software Engineering Conference</source>
          , IEEE,
          <year>1997</year>
          , pp.
          <fpage>31</fpage>
          -
          <lpage>40</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>S.</given-names>
            <surname>Morasca</surname>
          </string-name>
          ,
          <article-title>Measuring attributes of concurrent software specifications in petrinets</article-title>
          ,
          <source>in: Proceedings Sixth International Software Metrics Symposium (Cat. No. PR00403)</source>
          , IEEE,
          <year>1999</year>
          , pp.
          <fpage>100</fpage>
          -
          <lpage>110</lpage>
          . doi:
          <volume>10</volume>
          .1109/METRIC.
          <year>1999</year>
          .
          <volume>809731</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>R. K.</given-names>
            <surname>George</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Ajayakumar</surname>
          </string-name>
          , A Course in
          <source>Linear Algebra</source>
          ,
          <volume>1</volume>
          <fpage>ed</fpage>
          ., Springer Nature Singapore,
          <year>2024</year>
          . doi:
          <volume>10</volume>
          .1007/
          <fpage>978</fpage>
          -981-99-8680-4.
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>J.</given-names>
            <surname>Liesen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Mehrmann</surname>
          </string-name>
          , Linear algebra, Springer,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>I. S.</given-names>
            <surname>Duf</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. A.</given-names>
            <surname>Scott</surname>
          </string-name>
          ,
          <article-title>Stabilized bordered block diagonal forms for parallel sparse solvers</article-title>
          ,
          <source>Parallel Computing</source>
          <volume>31</volume>
          (
          <year>2005</year>
          )
          <fpage>275</fpage>
          -
          <lpage>289</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <given-names>O.</given-names>
            <surname>Kaya</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Kayaaslan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Uçar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>I. S.</given-names>
            <surname>Duf</surname>
          </string-name>
          ,
          <article-title>Fill-in reduction in sparse matrix factorizations using hypergraphs</article-title>
          ,
          <source>Research Report RR-8448</source>
          , INRIA,
          <year>2014</year>
          . URL: https://inria.hal.science/hal-00932882.
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <given-names>P.</given-names>
            <surname>Deuflhard</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Hohmann</surname>
          </string-name>
          , Numerische Mathematik: Bd.
          <article-title>1: Eine algorithmisch orientierte Einführung</article-title>
          , Walter de Gruyter,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          [27]
          <string-name>
            <given-names>A.</given-names>
            <surname>Bourjij</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Boutayeb</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Cecchin</surname>
          </string-name>
          ,
          <article-title>A decentralized approach for computing invariants in large scale and interconnected petri nets</article-title>
          ,
          <source>in: 1997 IEEE International Conference on Systems, Man, and Cybernetics</source>
          .
          <source>Computational Cybernetics and Simulation</source>
          , volume
          <volume>2</volume>
          , IEEE,
          <year>1997</year>
          , pp.
          <fpage>1741</fpage>
          -
          <lpage>1746</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          [28]
          <string-name>
            <given-names>S.</given-names>
            <surname>Boyd</surname>
          </string-name>
          , L. Vandenberghe,
          <article-title>Introduction to applied linear algebra: vectors, matrices, and least squares</article-title>
          , Cambridge university press,
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          [29]
          <string-name>
            <given-names>V.</given-names>
            <surname>Strassen</surname>
          </string-name>
          ,
          <article-title>Gaussian elimination is not optimal</article-title>
          ,
          <source>Numerische mathematik 13</source>
          (
          <year>1969</year>
          )
          <fpage>354</fpage>
          -
          <lpage>356</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          [30]
          <string-name>
            <given-names>J. R.</given-names>
            <surname>Bunch</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. E.</given-names>
            <surname>Hopcroft</surname>
          </string-name>
          ,
          <article-title>Triangular factorization and inversion by fast matrix multiplication</article-title>
          ,
          <source>Mathematics of Computation</source>
          <volume>28</volume>
          (
          <year>1974</year>
          )
          <fpage>231</fpage>
          -
          <lpage>236</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          [31]
          <string-name>
            <given-names>F. L.</given-names>
            <surname>Gall</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Urrutia</surname>
          </string-name>
          ,
          <article-title>Improved rectangular matrix multiplication using powers of the coppersmithwinograd tensor</article-title>
          ,
          <source>in: Proceedings of the Twenty-Ninth Annual ACM-SIAM Symposium on Discrete Algorithms</source>
          , SIAM,
          <year>2018</year>
          , pp.
          <fpage>1029</fpage>
          -
          <lpage>1046</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          [32]
          <string-name>
            <given-names>C.</given-names>
            <surname>Camarero</surname>
          </string-name>
          ,
          <article-title>Simple, fast and practicable algorithms for cholesky, lu and qr decomposition using fast rectangular matrix multiplication</article-title>
          , arXiv preprint arXiv:
          <year>1812</year>
          .
          <year>02056</year>
          (
          <year>2018</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref33">
        <mixed-citation>
          [33]
          <string-name>
            <surname>S. U. A.</surname>
          </string-name>
          (https://math.stackexchange.com/users/1154/),
          <article-title>How do you show monotonicity of the ℓ norms?</article-title>
          ,
          <source>Mathematics Stack Exchange</source>
          ,
          <year>2010</year>
          . URL: https://math.stackexchange.com/q/4122, visited on 2024-
          <volume>03</volume>
          -27.
        </mixed-citation>
      </ref>
      <ref id="ref34">
        <mixed-citation>
          [34]
          <string-name>
            <given-names>J.</given-names>
            <surname>Gaede</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.-H.</given-names>
            <surname>Overath</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Wallner</surname>
          </string-name>
          ,
          <article-title>Automatic modularization of place/transition nets</article-title>
          , in: M. KöhlerBußmeier, D. Moldt, H. Rölke (Eds.),
          <source>Proceedings of the International Workshop on Petri Nets and Software Engineering</source>
          <year>2024</year>
          co
          <article-title>-located with the 45th International Conference on Application and Theory of Petri Nets and Concurrency (PETRI NETS</article-title>
          <year>2024</year>
          ), June 24 - 25,
          <year>2024</year>
          , Geneva, Switzerland, volume
          <volume>3730</volume>
          <source>of CEUR Workshop Proceedings, CEUR-WS.org</source>
          ,
          <year>2024</year>
          , pp.
          <fpage>53</fpage>
          -
          <lpage>73</lpage>
          . URL: https://ceur-ws.
          <source>org/</source>
          Vol-
          <volume>3730</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref35">
        <mixed-citation>
          [35]
          <string-name>
            <given-names>G.</given-names>
            <surname>Matsaglia</surname>
          </string-name>
          ,
          <string-name>
            <surname>G.</surname>
          </string-name>
          <article-title>PH Styan, Equalities and inequalities for ranks of matrices, Linear and multilinear Algebra 2 (</article-title>
          <year>1974</year>
          )
          <fpage>269</fpage>
          -
          <lpage>292</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref36">
        <mixed-citation>
          [36]
          <string-name>
            <given-names>G.</given-names>
            <surname>Marsaglia</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G. P.</given-names>
            <surname>Styan</surname>
          </string-name>
          ,
          <article-title>When does rank (a+ b)= rank (a)+ rank (b)?</article-title>
          ,
          <source>Canadian Mathematical Bulletin</source>
          <volume>15</volume>
          (
          <year>1972</year>
          )
          <fpage>451</fpage>
          -
          <lpage>452</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref37">
        <mixed-citation>
          [37]
          <string-name>
            <given-names>Ü. V.</given-names>
            <surname>Çatalyürek</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Aykanat</surname>
          </string-name>
          , E. Kayaaslan,
          <article-title>Hypergraph partitioning-based fill-reducing ordering for symmetric matrices</article-title>
          ,
          <source>SIAM Journal on Scientific Computing</source>
          <volume>33</volume>
          (
          <year>2011</year>
          )
          <fpage>1996</fpage>
          -
          <lpage>2023</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref38">
        <mixed-citation>
          [38]
          <string-name>
            <given-names>C.</given-names>
            <surname>Aykanat</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Pinar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Ü. V.</given-names>
            <surname>Çatalyürek</surname>
          </string-name>
          ,
          <article-title>Permuting sparse rectangular matrices into block-diagonal form</article-title>
          ,
          <source>SIAM Journal on scientific computing 25</source>
          (
          <year>2004</year>
          )
          <fpage>1860</fpage>
          -
          <lpage>1879</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref39">
        <mixed-citation>
          [39]
          <string-name>
            <given-names>Z.</given-names>
            <surname>Kukelova</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Bujnak</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Heller</surname>
          </string-name>
          , T. Pajdla,
          <article-title>Singly-bordered block-diagonal form for minimal problem solvers</article-title>
          ,
          <source>in: Asian Conference on Computer Vision</source>
          , Springer,
          <year>2014</year>
          , pp.
          <fpage>488</fpage>
          -
          <lpage>502</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref40">
        <mixed-citation>
          [40]
          <string-name>
            <given-names>B.</given-names>
            <surname>Fagginger</surname>
          </string-name>
          <string-name>
            <surname>Auer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Bisseling</surname>
          </string-name>
          ,
          <article-title>A geometric approach to matrix ordering, arXiv e-prints (</article-title>
          <year>2011</year>
          ) arXiv-
          <fpage>1105</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref41">
        <mixed-citation>
          [41]
          <string-name>
            <given-names>K.</given-names>
            <surname>Schmidt</surname>
          </string-name>
          ,
          <article-title>Using Petri net invariants in state space construction</article-title>
          ,
          <source>in: International Conference on Tools and Algorithms for the Construction and Analysis of Systems</source>
          , Springer,
          <year>2003</year>
          , pp.
          <fpage>473</fpage>
          -
          <lpage>488</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>