To determine where pledge calls can be inserted into the program shown in Figure 1, knowledge of function \(f\) calling function \(g\), \(f\) calling system call 1, and both functions calling system call 2 is required. That knowledge would allow the determination that a pledge on system call 2 can only occur at the end of the second basic block in \(f\) instead of after \(g\) is called. To make that determination, two sets can be used to represent which system calls have executed so far and which system calls have yet to execute for each function, \(A\) and \(A'\), respectively. In order to form \(A\) and \(A'\) for a function \(f\) with a call to another function \(g\), the set of all system calls in \(g\) will have to be known which will be called \(G\). Finally, for each basic block \(f_i\) in a function \(f\), the set of system calls will be denoted by \(F_i\)