Recursive programs as predicate transformers : (preprint)