Skip to content

Commit 3277308

Browse files
committed
Typos + forest instead of trees
1 parent ee592f2 commit 3277308

File tree

1 file changed

+16
-15
lines changed

1 file changed

+16
-15
lines changed

papers/2025-pldi-relational-abstractions-labeled-uf.md

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -28,31 +28,32 @@ Our goal is to find **a new family of relational abstract domains that are cheap
2828
For this, a central question is **can we compute the expensive transitive closure much more cheaply?** The answer is yes, if we assume that the relation obtained on each path between
2929
two variables is always the same. This allows eliminating the vast majority of relations, **we only need to
3030
store a spanning tree** and can still recover any arbitrary relation in amortized almost-constant time, using a variation
31-
of the efficient [union-find](https://en.wikipedia.org/wiki/Disjoint-set_data_structure) data structure, that we call the **labeled union-find**.
31+
of the efficient [union-find](https://en.wikipedia.org/wiki/Disjoint-set_data_structure) data structure, that we call the **labeled union-find**.
3232

3333
## The labeled union-find data structure
3434

3535
<img src="/assets/publications/imgs/2025-pldi-labeled-uf-simple.svg"
3636
style="width:400px; display:block; margin-left:auto; margin-right:auto">
3737

3838
Similarly to the classical union-find, the labeled union-find
39-
represent a rooted tree (where each node points to its parents). The
40-
extension consists in adding labels $$\mathbb L$$ to the parent edges,
39+
is a rooted forest, i.e. a set of trees where each node points to its parent.
40+
The
41+
extension adds labels $$\mathbb L$$ to the parent edges,
4142
representing relations. In the figure above, these relations are
4243
affine constraints between two variables (of the form $$y = a*x +
4344
b$$). From this labeled union-find, it is easy to infer the relation
44-
between any two variables (if there is one) by composing or reversing
45+
between any two variables (if there is one, i.e. when they are in the same tree) by composing or reversing
4546
relations. For instance, from $$z = y - 1$$ and $$y = 2 * r$$, we can
4647
deduce that $$z = 2*r - 1$$. While computing this, we can shrink the
47-
distance between the element and the root of the tree, doing the
48+
distance between the element $$z$$ and the root of the tree $$r$$, doing the
4849
analog of path compression in the union-find structure.
4950

5051
Computing the relation between some variables may also require
51-
inversing relations; for instance, the relation between $$y$$ and $$x$$ is
52+
inverting relations; for instance, the relation between $$y$$ and $$x$$ is
5253
the composition of $$y = 2*r$$ and the inverse of $$x = 3*r+2$$,
53-
i.e. $$r = x/3 - 2/3$$, yielding $$y = 2/3 x - 4/3$$. In general, the
54-
labels thus have an assocative composition operation, and an inverse
55-
operation, i.e., must have a a [**group
54+
i.e. $$\displaystyle r = \frac x 3 - \frac 2 3$$, yielding $$\displaystyle y = \frac 2 3 x - \frac 4 3$$. In general, the
55+
labels thus have an associative composition operation, and an inverse
56+
operation. Formally, labels must have a [**group
5657
structure**](https://en.wikipedia.org/wiki/Group_(mathematics)). This
5758
requirement also derives fairly naturally from our previous assumption
5859
(same relation on each path).
@@ -64,7 +65,7 @@ When using labeled union-find to represent abstract relations between
6465
variables, the soundness of operations places strong requirements on
6566
the relations that can be used. We show that these relations **must
6667
correspond to injective functions** between equivalence classes. This
67-
allows to discover many suitable example of relations, such as:
68+
allows to discover many suitable examples of relations, such as:
6869

6970
- Constant offset: relations of the form $$y = x + b$$ for some constant $$b$$
7071
- Two Value per Equality (TVPE): $$ax + by + c = 0$$, with $$a,b,c \in \mathbb Z^3$$, $$\mathbb Q^3$$ or $$\mathbb R^3$$
@@ -93,10 +94,10 @@ The abstraction has also been implemented in the [Colibri2](https://colibri.fram
9394
9495
## Combining with other abstractions
9596
96-
Labeled union-find groups variables into related class, which each
97-
point to the same representative. This can be used both to provide new
98-
information to other parts of the analysis, or to simplify other
99-
abstractions: instead of computing relations between individual
97+
Labeled union-find groups variables into related classes, which each
98+
point to the same representative. This can not only be used to provide new
99+
information to other parts of the analysis, but also simplify other
100+
abstractions. Instead of computing relations between individual
100101
variables, we can just compute relations between groups of variables
101102
related by labeled union-find.
102103
@@ -109,7 +110,7 @@ updated at once any time new information is learned.
109110
<img src="/assets/publications/imgs/2025-pldi-factorization.svg"
110111
style="width:700px; display:block; margin-left:auto; margin-right:auto">
111112
<center>
112-
Fig. Using labeled union-find to factorize a non-relational abstraction. On the left, we associate an interval
113+
Fig. Using labeled union-find to factorize a non-relational abstraction. On the left, we associate an interval
113114
to every node in the graph. On the right, we can group related nodes and only store an interval value
114115
on the representative. The values of other nodes are recomputed as needed without precision loss.
115116
</center>

0 commit comments

Comments
 (0)