18.4 Function call

Still following the syntax of ML, the function application is written (f   a1   ...   an), where f is a function and the ai's its arguments. Notice that f and the ai's may be annotated programs themselves.

In the general case, f is a function already specified (either with Global Variable or with a proof of correctness) and has a pre-condition Pf and a post-condition Qf.

As expected, a proof obligation is generated, which correspond to Pf applied to the values of the arguments, once they are evaluated.

Regarding the post-condition of f, there are different possible cases: