@@ -5,4 +5,43 @@ title: "PLDI'25"
5
5
categories : new publication
6
6
date : 2025-06-15
7
7
nav_order : 2025-06-15
8
+ katex : True
8
9
---
10
+
11
+ ## Context
12
+
13
+ In program analysis, various abstractions are used to store known facts about the
14
+ program being studied. Two popular choices are * non-relational abstractions* ,
15
+ which store numeric information on variables (like intervals $$ x \in [0:5] $$ ), or * relational
16
+ abstraction* , which store relations between variables (like $$ 3x + 2y \leqslant -5z $$ ).
17
+ The former is fast (complexity in $$ \mathcal O(|\mathbb X|) $$ where $$ |\mathbb X| $$ is the number of variables)
18
+ but imprecise, whereas the latter is very precise but cost-prohibitive
19
+ (polyhedra has $$ \mathcal O(2^{|\mathbb X|}) $$ complexity).
20
+
21
+ In the middle of this spectrum lie * weakly-relational abstractions* . They only
22
+ store a select few relations between pairs of variables. For example, octagons
23
+ store relations $$ \pm x \pm y \leqslant c $$ . These abstractions are faster than
24
+ full relational domains, but still expensive, in large part due to having to compute
25
+ a transitive closure to find all known relations, which costs $$ \mathcal O(|\mathbb X|^3) $$ .
26
+
27
+ Thus, the central assumption of the paper can be expressed as ** what if we do not need to compute this
28
+ transitive closure?** More formally, we assume that the relation obtained on each
29
+ path between two variables is the same. This allows eliminating the vast majority
30
+ of relations, ** we only need to store a spanning tree** and can still recover
31
+ any arbitrary relation in constant time.
32
+
33
+ ## Extending union-find
34
+
35
+ The [ union-find] ( https://en.wikipedia.org/wiki/Disjoint-set_data_structure ) data
36
+ structure is a well-known extremely efficient way to build and query equivalence
37
+ relations. As such, it is often used in program analysis to represent equality
38
+ between variables or expressions, notably in
39
+ [ e-graphs] ( https://en.wikipedia.org/wiki/E-graph ) .
40
+
41
+ Our work presents an extension of union-find to represent more complex relations
42
+ than equality. This can be done by labeling the parent pointers of union-find
43
+ with a relation. For example, we can use the constant offset relation
44
+
45
+ Crucially, we show that
46
+
47
+ ## A cheap relational domain
0 commit comments