A square-root procedure states one line of its contract: for a whole number from 2 to 20 it returns an estimate with , and it promises nothing about exactness. A caller passes and receives . Compute the residual . The contract's second line is met exactly when that residual is below 0.01.
Worked solution
Write . Split the product: and . Adding gives . Subtract 9: the residual is . Compare with the tolerance: , so the call keeps the stated promise. The estimate is not the square root of 9, since its square is 9.006001, and the second line of the contract does not claim that it is. A caller who reads the second line as "the square root" has dropped the qualifier and will treat a promised approximation as an exact answer.