1 \section{Sets and Relations}
3 \begin{definition}[Polyhedral Set]
4 A {\em polyhedral set}\index{polyhedral set} $S$ is a finite union of basic sets
5 $S = \bigcup_i S_i$, each of which can be represented using affine
8 S_i : \Q^n \to 2^{\Q^d} : \vec s \mapsto
10 \{\, \vec x \in \Z^d \mid \exists \vec z \in \Z^e :
11 A \vec x + B \vec s + D \vec z + \vec c \geq \vec 0 \,\}
14 with $A \in \Z^{m \times d}$,
15 $B \in \Z^{m \times n}$,
16 $D \in \Z^{m \times e}$
17 and $\vec c \in \Z^m$.
20 \begin{definition}[Parameter Domain of a Set]
21 Let $S \in \Q^n \to 2^{\Q^d}$ be a set.
22 The {\em parameter domain} of $S$ is the set
23 $$\pdom S \coloneqq \{\, \vec s \in \Z^n \mid S(\vec s) \ne \emptyset \,\}.$$
26 \begin{definition}[Polyhedral Relation]
27 A {\em polyhedral relation}\index{polyhedral relation}
28 $R$ is a finite union of basic relations
29 $R = \bigcup_i R_i$ of type
30 $\Q^n \to 2^{\Q^{d_1+d_2}}$,
31 each of which can be represented using affine
36 \{\, \vec x_1 \to \vec x_2 \in \Z^{d_1} \times \Z^{d_2}
37 \mid \exists \vec z \in \Z^e :
38 A_1 \vec x_1 + A_2 \vec x_2 + B \vec s + D \vec z + \vec c \geq \vec 0 \,\}
41 with $A_i \in \Z^{m \times d_i}$,
42 $B \in \Z^{m \times n}$,
43 $D \in \Z^{m \times e}$
44 and $\vec c \in \Z^m$.
47 \begin{definition}[Parameter Domain of a Relation]
48 Let $R \in \Q^n \to 2^{\Q^{d+d}}$ be a relation.
49 The {\em parameter domain} of $R$ is the set
50 $$\pdom R \coloneqq \{\, \vec s \in \Z^n \mid R(\vec s) \ne \emptyset \,\}.$$
53 \begin{definition}[Domain of a Relation]
54 Let $R \in \Q^n \to 2^{\Q^{d+d}}$ be a relation.
55 The {\em domain} of $R$ is the polyhedral set
56 $$\domain R \coloneqq \vec s \mapsto
57 \{\, \vec x_1 \in \Z^{d_1} \mid \exists \vec x_2 \in \Z^{d_2} :
58 (\vec x_1, \vec x_2) \in R(\vec s) \,\}
63 \begin{definition}[Range of a Relation]
64 Let $R \in \Q^n \to 2^{\Q^{d+d}}$ be a relation.
65 The {\em range} of $R$ is the polyhedral set
67 \range R \coloneqq \vec s \mapsto
68 \{\, \vec x_2 \in \Z^{d_2} \mid \exists \vec x_1 \in \Z^{d_1} :
69 (\vec x_1, \vec x_2) \in R(\vec s) \,\}
74 \begin{definition}[Composition of Relations]
75 Let $R \in \Q^n \to 2^{\Q^{d_1+d_2}}$ and
76 $S \in \Q^n \to 2^{\Q^{d_2+d_3}}$ be two relations,
77 then the composition of
78 $R$ and $S$ is defined as
82 \{\, \vec x_1 \to \vec x_3 \in \Z^{d_1} \times \Z^{d_3}
83 \mid \exists \vec x_2 \in \Z^{d_2} :
84 \vec x_1 \to \vec x_2 \in R(\vec s) \wedge
85 \vec x_2 \to \vec x_3 \in S(\vec s)
91 \begin{definition}[Difference Set of a Relation]
92 Let $R \in \Q^n \to 2^{\Q^{d+d}}$ be a relation.
93 The difference set ($\Delta \, R$) of $R$ is the set
94 of differences between image elements and the corresponding
99 \{\, \vec \delta \in \Z^{d} \mid \exists \vec x \to \vec y \in R :
100 \vec \delta = \vec y - \vec x
105 \section{Transitive Closure}
107 \subsection{Introduction}
109 \begin{definition}[Power of a Relation]
110 Let $R \in \Q^n \to 2^{\Q^{d+d}}$ be a relation and
112 a positive number, then power $k$ of relation $R$ is defined as
114 \label{eq:transitive:power}
117 R & \text{if $k = 1$}
119 R \circ R^{k-1} & \text{if $k \ge 2$}
125 \begin{definition}[Transitive Closure of a Relation]
126 Let $R \in \Q^n \to 2^{\Q^{d+d}}$ be a relation,
127 then the transitive closure $R^+$ of $R$ is the union
128 of all positive powers of $R$,
130 R^+ \coloneqq \bigcup_{k \ge 1} R^k
134 Alternatively, the transitive closure may be defined
137 \label{eq:transitive:inductive}
138 R^+ \coloneqq R \cup \left(R \circ R^+\right)
142 Since the transitive closure of a polyhedral relation
143 may no longer be a polyhedral relation \shortcite{Kelly1996closure},
144 we can, in the general case, only compute an approximation
145 of the transitive closure.
146 Whereas \shortciteN{Kelly1996closure} compute underapproximations,
147 we, like \shortciteN{Beletska2009}, compute overapproximations.
148 That is, given a relation $R$, we will compute a relation $T$
149 such that $R^+ \subseteq T$. Of course, we want this approximation
150 to be as close as possible to the actual transitive closure
151 $R^+$ and we want to detect the cases where the approximation is
152 exact, i.e., where $T = R^+$.
154 For computing an approximation of the transitive closure of $R$,
155 we follow the same general strategy as \shortciteN{Beletska2009}
156 and first compute an approximation of $R^k$ for $k \ge 1$ and then project
157 out the parameter $k$ from the resulting relation.
160 As a trivial example, consider the relation
161 $R = \{\, x \to x + 1 \,\}$. The $k$th power of this map
164 R^k = k \mapsto \{\, x \to x + k \mid k \ge 1 \,\}
167 The transitive closure is then
170 R^+ & = \{\, x \to y \mid \exists k \in \Z_{\ge 1} : y = x + k \,\}
172 & = \{\, x \to y \mid y \ge x + 1 \,\}
178 \subsection{Computing an Approximation of $R^k$}
180 In general, it is impossible to construct a closed form
181 of $R^k$ as a polyhedral relation.
182 We will therefore need to make some approximations.
183 As a first approximations, we will consider each of the basic
184 relations in $R$ as simply adding one or more offsets to a domain element
185 to arrive at an image element and ignore the fact that some of these
186 offsets may only be applied to some of the domain elements.
187 That is, we will only consider the difference set $\Delta\,R$ of the relation.
188 In particular, we will first construct a collection $P$ of paths
190 a total of $k$ offsets and then intersect domain and range of this
191 collection with those of $R$.
194 \label{eq:transitive:approx}
195 K = P \cap \left(\domain R \to \range R\right)
200 \label{eq:transitive:path}
201 P = \vec s \mapsto \{\, \vec x \to \vec y \mid
202 \exists k_i \in \Z_{\ge 0} :
203 \vec y = \vec x + \sum_i k_i \, \Delta_i(\vec s)
208 and with $\Delta_i$ the basic sets that compose
209 the difference set $\Delta\,R$.
210 Note that the number of basic sets $\Delta_i$ need not be
211 the same as the number of basic relations in $R$.
212 Also note that since addition is commutative, it does not
213 matter in which order we add the offsets and so we are allowed
214 to group them as we did in \eqref{eq:transitive:path}.
216 If all the $\Delta_i$s are singleton sets
217 $\Delta_i = \{\, \vec \delta_i \,\}$ with $\vec \delta_i \in \Z^d$,
218 then \eqref{eq:transitive:path} simplifies to
220 \label{eq:transitive:singleton}
221 P = \{\, \vec x \to \vec y \mid
222 \exists k_i \in \Z_{\ge 0} :
223 \vec y = \vec x + \sum_i k_i \, \vec \delta_i
228 and then the approximation computed in \eqref{eq:transitive:approx}
229 is essentially the same as that of \shortciteN{Beletska2009}.
230 If some of $\Delta_i$s are not singleton sets or if
231 some of $\vec \delta_i$s are parametric, then we need
232 to resort to further approximations.
234 To ease both the exposition and the implementation, we will for
235 the remainder of this section work with extended offsets
236 $\Delta_i' = \Delta_i \times \{\, 1 \,\}$.
237 That is, each offset is extended with an extra coordinate that is
238 set equal to one. The paths constructed by summing such extended
239 offsets have the length encoded as the difference of their
240 final coordinates. The path $P'$ can then be decomposed into
241 paths $P_i'$, one for each $\Delta_i$,
243 \label{eq:transitive:decompose}
245 (P_m' \cup \identity) \circ \cdots \circ
246 (P_2' \cup \identity) \circ
247 (P_1' \cup \identity)
250 \vec x' \to \vec y' \mid y_{d+1} - x_{d+1} = k > 0
256 P_i' = \vec s \mapsto \{\, \vec x' \to \vec y' \mid
257 \exists k \in \Z_{\ge 1} :
258 \vec y' = \vec x' + k \, \Delta_i'(\vec s)
262 Note that each $P_i'$ contains paths of length at least one.
263 We therefore need to take the union with the identity relation
264 when composing the $P_i'$s to allow for paths that do not contain
265 any offsets from one or more $\Delta_i'$.
266 The path that consists of only identity relations is removed
267 by imposing the constraint $y_{d+1} - x_{d+1} > 0$.
269 Let us now consider how to compute an overapproximation of $P_i'$.
270 Those that correspond to singleton $\Delta_i$s are grouped together
271 and handled as in \eqref{eq:transitive:singleton}.
272 Note that this is just an optimization. The procedure described
273 below would produce results that are at least as accurate.
274 For simplicity, we will assume that no constraint in $\Delta_i'$
275 involves any existentially quantified variables. Dropping such
276 constraints results in a larger $\Delta_i'$. An overapproximation
277 of the paths corresponding to this larger set will also be an
278 overapproximation of the paths corresponding to the original set.
279 Without existentially quantified variables, we can classify
280 the constraints of $\Delta_i'$ as follows
282 \item non-parametric constraints
284 \label{eq:transitive:non-parametric}
285 A_1 \vec x + \vec c_1 \geq \vec 0
287 \item purely parametric constraints
289 \label{eq:transitive:parametric}
290 B_2 \vec s + \vec c_2 \geq \vec 0
292 \item negative mixed constraints
294 \label{eq:transitive:mixed}
295 A_3 \vec x + B_3 \vec s + \vec c_3 \geq \vec 0
297 such that for each row $j$ and for all $\vec s$,
299 \Delta_i'(\vec s) \cap
300 \{\, \vec x' \to \vec y' \mid B_{3,j} \vec s + c_{3,j} > 0 \,\}
303 \item positive mixed constraints
305 A_4 \vec x + B_4 \vec s + \vec c_4 \geq \vec 0
307 such that for each row $j$, there is at least one $\vec s$ such that
309 \Delta_i'(\vec s) \cap
310 \{\, \vec x' \to \vec y' \mid B_{4,j} \vec s + c_{4,j} > 0 \,\}
314 We will use the following approximation $Q_i$ for $P_i'$:
316 \label{eq:transitive:Q}
321 \mid {} & \exists k \in \Z_{\ge 1}, \vec f \in \Z^d :
322 \vec y' = \vec x' + (\vec f, k)
326 A_1 \vec f + k \vec c_1 \geq \vec 0
328 B_2 \vec s + \vec c_2 \geq \vec 0
330 A_3 \vec f + B_3 \vec s + \vec c_3 \geq \vec 0
335 To prove that $Q_i$ is indeed an overapproximation of $P_i'$,
336 we need to show that for every $\vec s \in \Z^n$, for every
337 $k \in \Z_{\ge 1}$ and for every $\vec f \in k \, \Delta_i(\vec s)$
339 $(\vec f, k)$ satisfies the constraints in \eqref{eq:transitive:Q}.
340 If $\Delta_i(\vec s)$ is non-empty, then $\vec s$ must satisfy
341 the constraints in \eqref{eq:transitive:parametric}.
342 Each element $(\vec f, k) \in k \, \Delta_i'(\vec s)$ is a sum
343 of $k$ elements $(\vec f_j, 1)$ in $\Delta_i'(\vec s)$.
344 Each of these elements satisfies the constraints in
345 \eqref{eq:transitive:non-parametric}, i.e.,
360 The sum of these elements therefore satisfies the same set of inequalities,
361 i.e., $A_1 \vec f + k \vec c_1 \geq \vec 0$.
362 Finally, the constraints in \eqref{eq:transitive:mixed} are such
363 that for any $\vec s$ in the parameter domain of $\Delta$,
364 we have $-\vec r(\vec s) \coloneqq B_3 \vec s + \vec c_3 \le \vec 0$,
365 i.e., $A_3 \vec f_j \ge \vec r(\vec s) \ge \vec 0$
366 and therefore also $A_3 \vec f \ge \vec r(\vec s)$.
367 Note that if there are no mixed constraints and if the
368 rational relaxation of $\Delta_i(\vec s)$, i.e.,
369 $\{\, \vec x \in \Q^d \mid A_1 \vec x + \vec c_1 \ge \vec 0\,\}$,
370 has integer vertices, then the approximation is exact, i.e.,
371 $Q_i = P_i'$. In this case, the vertices of $\Delta'_i(\vec s)$
372 generate the rational cone
373 $\{\, \vec x' \in \Q^{d+1} \mid \left[
377 \right] \vec x' \,\}$ and therefore $\Delta'_i(\vec s)$ is
378 a Hilbert basis of this cone \shortcite[Theorem~16.4]{Schrijver1986}.
380 The accurateness of the above approach
381 can be improved by also classifying the existentially
382 quantified variables into variables that are uniquely
383 determined by the parameters, variables that are independent
384 of the parameters and others. The first set can be treated
385 as parameters and the second as variables. Constraints involving
386 the other existentially quantified variables should continue to
389 \subsection{Checking Exactness}
391 The approximation $T$ for the transitive closure $R^+$ can be obtained
392 by projecting out the parameter $k$ from the approximation $K$
393 \eqref{eq:transitive:approx} of the power $R^k$.
394 Since $K$ is an overapproximation of $R^k$, $T$ will also be an
395 overapproximation of $R^+$.
396 To check whether the results are exact, we need to consider two
397 cases depending on whether $R$ is {\em cyclic}, where $R$ is defined
398 to be cyclic if $R^+$ maps any element to itself, i.e.,
399 $R^+ \cap \identity \ne \emptyset$.
400 If $R$ is acyclic, then the inductive definition of
401 \eqref{eq:transitive:inductive} is equivalent to its completion,
404 R^+ = R \cup \left(R \circ R^+\right)
406 is a defining property.
407 Since $T$ is known to be an overapproximation, we only need to check
410 T \subseteq R \cup \left(R \circ T\right)
413 This is essentially Theorem~5 of \shortciteN{Kelly1996closure}.
414 The only difference is that they only consider lexicographically
415 forward relations, a special case of acyclic relation.
417 If, on the other hand, $R$ is cyclic, then we have to resort
418 to checking whether the approximation $K$ of the power is exact.
419 Note that $T$ may be exact even if $K$ is not exact, so the check
420 is sound, but incomplete.
421 To check exactness of the power, we simply need to check
422 \eqref{eq:transitive:power}. Since again $K$ is known
423 to be an overapproximation, we only need to check whether
426 K'|_{y_{d+1} - x_{d+1} = 1} & \subseteq R'
428 K'|_{y_{d+1} - x_{d+1} \ge 2} & \subseteq R' \circ K'|_{y_{d+1} - x_{d+1} \ge 1}
432 where $R' = \{\, \vec x' \to \vec y' \mid \vec x \to \vec y \in R
433 \wedge y_{d+1} - x_{d+1} = 1\,\}$, i.e., $R$ extended with path
436 All that remains is to explain how to check the cyclicity of $R$.
437 Note that the exactness on the power is always sound, even
438 in the acyclic case, so we only need to be careful that we find
439 all cyclic cases. Now, if $R$ is cyclic, i.e.,
440 $R^+ \cap \identity \ne \emptyset$, then, since $T$ is
441 an overapproximation of $R^+$, also
442 $T \cap \identity \ne \emptyset$. This in turn means
443 that $\Delta \, K'$ contains a point whose first $d$ coordinates
444 are zero and whose final coordinate is positive.
445 In the implementation we currently perform this test on $P'$ instead of $K'$.
446 Note that if $R^+$ is acyclic and $T$ is not, then the approximation
447 is clearly not exact and the approximation of the power $K$
448 will not be exact either.
450 \subsection{Decomposing $R$ into strongly connected components}
452 If the input relation $R$ is a union of several basic relations
453 that can be partially ordered
454 then the accuracy of the approximation may be improved by computing
455 an approximation of each strongly connected components separately.
456 For example, if $R = R_1 \cup R_2$ and $R_1 \circ R_2 = \emptyset$,
457 then we know that any path that passes through $R_2$ cannot later
458 pass through $R_1$, i.e.,
460 R^+ = R_1^+ \cup R_2^+ \cup \left(R_2^+ \circ R_1^+\right)
463 We can therefore compute (approximations of) transitive closures
464 of $R_1$ and $R_2$ separately.
465 Note, however, that the condition $R_1 \circ R_2 = \emptyset$
466 is actually too strong.
467 If $R_1 \circ R_2$ is a subset of $R_2 \circ R_1$
468 then we can reorder the segments
469 in any path that moves through both $R_1$ and $R_2$ to
470 first move through $R_1$ and then through $R_2$.
472 This idea can be generalized to relations that are unions
473 of more than two basic relations by constructing the
474 strongly connected components in the graph with as vertices
475 the basic relations and an edge between two basic relations
476 $R_i$ and $R_j$ if $R_i$ needs to follow $R_j$ in some paths.
477 That is, there is an edge from $R_i$ to $R_j$ iff
479 \label{eq:transitive:edge}
485 The components can be obtained from the graph by applying
486 Tarjan's algorithm \shortcite{Tarjan1972}.
488 In practice, we compute the (extended) powers $K_i'$ of each component
489 separately and then compose them as in \eqref{eq:transitive:decompose}.
490 Note, however, that in this case the order in which we apply them is
491 important and should correspond to a topological ordering of the
492 strongly connected components. Simply applying Tarjan's
493 algorithm will produce topologically sorted strongly connected components.
494 The graph on which Tarjan's algorithm is applied is constructed on-the-fly.
495 That is, whenever the algorithm checks if there is an edge between
496 two vertices, we evaluate \eqref{eq:transitive:edge}.
497 The exactness check is performed on each component separately.
498 If the approximation turns out to be inexact for any of the components,
499 then the entire result is marked inexact and the exactness check
500 is skipped on the components that still need to be handled.
504 \begin{tikzpicture}[x=0.5cm,y=0.5cm,>=stealth,shorten >=1pt]
505 \foreach \x in {1,...,10}{
506 \foreach \y in {1,...,10}{
507 \draw[->] (\x,\y) -- (\x,\y+1);
510 \foreach \x in {1,...,20}{
511 \foreach \y in {5,...,15}{
512 \draw[->] (\x,\y) -- (\x+1,\y);
517 \caption{The relation from \autoref{ex:closure4}}
522 Consider the relation in example {\tt closure4} that comes with
523 the Omega calculator~\shortcite{Omega_calc}, $R = R_1 \cup R_2$,
527 R_1 & = \{\, (x,y) \to (x,y+1) \mid 1 \le x,y \le 10 \,\}
529 R_2 & = \{\, (x,y) \to (x+1,y) \mid 1 \le x \le 20 \wedge 5 \le y \le 15 \,\}
533 This relation is shown graphically in \autoref{f:closure4}.
538 \{\, (x,y) \to (x+1,y+1) \mid 1 \le x \le 9 \wedge 5 \le y \le 10 \,\}
541 \{\, (x,y) \to (x+1,y+1) \mid 1 \le x \le 10 \wedge 4 \le y \le 10 \,\}
545 Clearly, $R_1 \circ R_2 \subseteq R_2 \circ R_1$ and so
551 \left(R_2^+ \circ R_1^+\right)
565 \begin{tikzpicture}[>=stealth,shorten >=1pt]
567 \foreach \i in {1,...,\value{n}}{
568 \foreach \j in {1,...,\value{n}}{
569 \setcounter{t1}{2 * \j - 4 - \i + 1}
570 \setcounter{t2}{\value{n} - 3 - \i + 1}
571 \setcounter{t3}{2 * \i - 1 - \j + 1}
572 \setcounter{t4}{\value{n} - \j + 1}
573 \ifnum\value{t1}>0\ifnum\value{t2}>0
574 \ifnum\value{t3}>0\ifnum\value{t4}>0
575 \draw[thick,->] (\i,\j) to[out=20] (\i+3,\j);
577 \setcounter{t1}{2 * \j - 1 - \i + 1}
578 \setcounter{t2}{\value{n} - \i + 1}
579 \setcounter{t3}{2 * \i - 4 - \j + 1}
580 \setcounter{t4}{\value{n} - 3 - \j + 1}
581 \ifnum\value{t1}>0\ifnum\value{t2}>0
582 \ifnum\value{t3}>0\ifnum\value{t4}>0
583 \draw[thick,->] (\i,\j) to[in=-20,out=20] (\i,\j+3);
585 \setcounter{t1}{2 * \j - 1 - \i + 1}
586 \setcounter{t2}{\value{n} - 1 - \i + 1}
587 \setcounter{t3}{2 * \i - 1 - \j + 1}
588 \setcounter{t4}{\value{n} - 1 - \j + 1}
589 \ifnum\value{t1}>0\ifnum\value{t2}>0
590 \ifnum\value{t3}>0\ifnum\value{t4}>0
591 \draw[thick,->] (\i,\j) to (\i+1,\j+1);
597 \caption{The relation from \autoref{ex:decomposition}}
598 \label{f:decomposition}
601 \label{ex:decomposition}
602 Consider the relation on the right of \shortciteN[Figure~2]{Beletska2009},
603 reproduced in \autoref{f:decomposition}.
604 The relation can be described as $R = R_1 \cup R_2 \cup R_3$,
608 R_1 &= n \mapsto \{\, (i,j) \to (i+3,j) \mid
614 R_2 &= n \mapsto \{\, (i,j) \to (i,j+3) \mid
620 R_3 &= n \mapsto \{\, (i,j) \to (i+1,j+1) \mid
628 The figure shows this relation for $n = 7$.
630 $R_3 \circ R_1 \subseteq R_1 \circ R_3$
632 $R_3 \circ R_2 \subseteq R_2 \circ R_3$,
633 which the reader can verify using the {\tt iscc} calculator:
635 R1 := [n] -> { [i,j] -> [i+3,j] : i <= 2 j - 4 and i <= n - 3 and
636 j <= 2 i - 1 and j <= n };
637 R2 := [n] -> { [i,j] -> [i,j+3] : i <= 2 j - 1 and i <= n and
638 j <= 2 i - 4 and j <= n - 3 };
639 R3 := [n] -> { [i,j] -> [i+1,j+1] : i <= 2 j - 1 and i <= n - 1 and
640 j <= 2 i - 1 and j <= n - 1 };
641 (R1 . R3) - (R3 . R1);
642 (R2 . R3) - (R3 . R2);
644 $R_3$ can therefore be moved forward in any path.
645 For the other two basic relations, we have both
646 $R_2 \circ R_1 \not\subseteq R_1 \circ R_2$
648 $R_1 \circ R_2 \not\subseteq R_2 \circ R_1$
649 and so $R_1$ and $R_2$ form a strongly connected component.
650 By computing the power of $R_3$ and $R_1 \cup R_2$ separately
651 and composing the results, the power of $R$ can be computed exactly
652 using \eqref{eq:transitive:singleton}.
653 As explained by \shortciteN{Beletska2009}, applying the same formula
654 to $R$ directly, without a decomposition, would result in
655 an overapproximation of the power.