The construction of a software system is a task that has to be structured toensure that the software product fulfills all expectations and the process of producing it remains manageable and reliable. Mathematical methods, including logic, algebra and functional calculus, are needed to support structuring and provide notations and basic formal concepts for the foundations of software engineering. Mathematical methods of programming reflect the need for modularization and abstraction and suggest appropriate goal-directed procedures for the construction of software programs. This volume contains the proceedings of an International Summer School held at Marktoberdorf in 1990, the 11th in a series on mathematical methods in programming. Outstanding scientists contributed papers centered around logical and functional calculi for the specification, refinement and verification of programs and program systems, and remarkable examples for the formal development of proofs and algorithms are given.