Tools and notions for program construction an advanced course (Cambridge Univ. Press, 1982)