Indirect Dependencies (2)
Transitive closure (f2g)* of the call tree relation f2g (upper left quadrant) finds indirect dependencies of function f on function g.
Example: f gets v, then calls g to convert v to w, then calls h which uses w to set u. Variable w directly depends on v via g: [w = g(v)], and variable u transitively depends on v via f, g and h: [u = h(w) = h(g(v)) = f(v)]
Transitive closure of u2f, (f2g)* and g2v dependencies (lower left, closure of upper left, and upper right quadrants) finds indirect dependencies of variable u on variable v (closure of lower right quadrant).