## safe

A safe program analysis is one which will not reach invalid conclusions about the behaviour of the program. This may involve making safe approximations to properties of parts of the program. A safe approximation is one which gives less information.

For example, strictness analysis aims to answer the question "will this function evaluate its argument"?. The two possible results are "definitely" and "don't know". A safe approximation for "definitely" is "don't know". The two possible results correspond to the two sets: "the set of all functions which evaluate their argument" and "all functions". A set can be safely approximated by another which contains it.