An introduction to programming with specifications a mathematical approach - Kubiak, Ryszard; Rudziński, Roman; Sokołowski, Stefan (Acad. Press, 1991)