This article is a case study in the implementation of a portable,
proven and efficient correctly rounded elementary function in
double-precision. We describe the methodology used to achieve these
goals in the crlibm library. There are two novel aspects to
this approach. The first is the proof framework, and in general the
techniques used to balance performance and provability. The second
is the introduction of processor-specific optimization to get
performance equivalent to the best current mathematical libraries,
while trying to minimize the proof work. The implementation of the
natural logarithm is detailed to illustrate these questions.