I am currently struggling with this question. It is obvious that the relation is transitive however I'm not sure how to prove it.
A call graph is a relation RC and a pair (f, g) of function names is in RC, iff the body of function f calls the function g. For example for the function
f ( ) {
g ( );
h ( );
}
the pairs (f, g) and (f, h) are in the relation RC. The transitive closure of the relation RC written as T rans(RC) is a new relation, which contains a
pair(f, f0), if there is a chain (f, f2),(f2, f3), ...,(fn−1, f0) of pairs all contained in RC. Formally
this can be defined as
Trans(RC) = {(f, f0)| ∃(f1, ..., fn) with f = f1∧f0 = fn∧∀i ∈ {1, ...,(n−1)}(fi, fi+1) ∈ RC}
The symmetric closure of the relation RC is a new relation written as Sym(RC), which contains
all pairs (f, g) from RC along with their corresponding pairs (g, f).
(a) Prove that T rans(RC) is transitive