Weak Dependencies for Side-Effecting Constraint Systems 🇪🇪
Heigo Tornik
University of Tartu, 2025
Supervisors: Simmo Saan, Vesal Vojdani
The bachelor’s thesis examines the static analysis method abstract interpretation, specifically side-effecting constraint systems. Constraint systems can be used to describe programs in an abstract manner and, by solving them with top-down solvers, such as TDside, several properties, like occuring errors, can be described. The thesis provides a theoretical background on constraint systems and the top-down solver TDside, and describes the inefficiency in TDside, where the program point that creates a thread depends on the thread being created, causing unnecessary recalculations. To solve the inefficiency, so-called “weak dependencies” are described. The right-hand side of the constraint system is supplemented by adding a new function demand and the necessary additions to TDside to solve these new constraint systems are described. In the thesis TDweak was created based on TDside in two variations: eager and lazy. Weak dependencies, when implemented in Goblint, reduced the number of right-hand side evaluations of constraint system by an average of 28.87% for the lazy variation and 13.70% for the eager variation.