Download Constructing Correct Software (Formal Approaches to by D. John Cooke PDF

By D. John Cooke

Principal to Formal tools is the so-called Correctness Theorem which relates a specification to its right Implementations. This theorem is the objective of conventional application checking out and, extra lately, of software verification (in which the theory needs to be proved). Proofs are tough, even though inspite of using strong theorem provers. This quantity explains and illustrates another technique, which permits the development of (necessarily right) algorithms from a specification utilizing algebraic ameliorations and refinement thoughts which stop the advent of error. in keeping with educating fabric used largely at Loughborough collage, John Cooke introduces the fundamentals, utilizing uncomplicated examples and many distinct operating (which can usually be re-used). developing right software program will supply valuable examining for college kids and practitioners of computing device technological know-how and software program Engineering to whom correctness of software program is of top significance.

Show description

Read or Download Constructing Correct Software (Formal Approaches to Computing and Information Technology) PDF

Similar algorithms books

Parallel Algorithms for Irregular Problems: State of the Art

Effective parallel suggestions were discovered to many difficulties. a few of them could be bought instantly from sequential courses, utilizing compilers. besides the fact that, there's a huge type of difficulties - abnormal difficulties - that lack effective suggestions. abnormal ninety four - a workshop and summer season university geared up in Geneva - addressed the issues linked to the derivation of effective suggestions to abnormal difficulties.

Algorithms and Computation: 21st International Symposium, ISAAC 2010, Jeju, Korea, December 15-17, 2010, Proceedings, Part II

This ebook constitutes the refereed lawsuits of the twenty first foreign Symposium on Algorithms and Computation, ISAAC 2010, held in Jeju, South Korea in December 2010. The seventy seven revised complete papers awarded have been rigorously reviewed and chosen from 182 submissions for inclusion within the booklet. This quantity includes issues akin to approximation set of rules; complexity; information constitution and set of rules; combinatorial optimization; graph set of rules; computational geometry; graph coloring; fastened parameter tractability; optimization; on-line set of rules; and scheduling.

Algorithms and Architectures for Parallel Processing: 15th International Conference, ICA3PP 2015, Zhangjiajie, China, November 18-20, 2015, Proceedings, Part II

This 4 quantity set LNCS 9528, 9529, 9530 and 9531 constitutes the refereed lawsuits of the fifteenth overseas convention on Algorithms and Architectures for Parallel Processing, ICA3PP 2015, held in Zhangjiajie, China, in November 2015. The 219 revised complete papers provided including seventy seven workshop papers in those 4 volumes have been conscientiously reviewed and chosen from 807 submissions (602 complete papers and 205 workshop papers).

Additional info for Constructing Correct Software (Formal Approaches to Computing and Information Technology)

Example text

F = g and f(x) = g(x) for (3). An important property of ‘°’, of functional composition, is that when (say) f:A — B, g:B — C, and h:C — D and f · g and g · h , so that when x ˜ f, h(g(f(x))) is properly defined. It follows that ( h ° g) ° f = h ° (g ° f). We say that functional composition is associative. ) (4). It is also convenient here to give the definition of the graph of a function. The distinction between a function and its graph is often blurred, but here goes. Given a function f of type X — Y, the graph of f is the relation (which is of type (X Ù Y) ) consisting of the pairs ”x, f(x)’ for all x for which f(x) exists.

We can now introduce the notation associated with the concept of a set, already mentioned informally in passing. Sets can be defined in several ways, and here we shall use two. Firstly, a (small) set can be defined explicitly; for example: A – {1,2,3,5,7,9} All the elements of the set are written out. ” 40 Constructing Correct Software Following on from these definitions we can write A Ù B and T explicitly: A Ù B is the set {”1,1’ ”1,2’ ”1,4’ ”1,6’ ”1,8’ , ”2,1’ , ”2,2’ , ”2,4’ , ”2,6’ , ”2,8’ , ”3,1’ , , ”3,2’ , , ”3,4’ , , ”3,6’ , , ”3,8’ , ”5,1’ , ”7,1’ , ”9,1’ , ”5,2’ , ”7,2’ , ”9,2’ , ”5,4’ , ”7,4’ , ”9,4’ , ”5,6’ , ”7,6’ , ”9,6’ , ”5,8’ , ”7,8’ , ”9,8’ } and T is the set { ”1,2’ ”1,4’ ”1,6’ ”1,8’ , , ”2,4’ , ”3,4’ , , ”2,6’ , ”3,6’ , ”5,6’ , , ”2,8’ , ”3,8’ , ”5,8’ , ”7,8’ } or, in a more usual, but perhaps less comprehensible, form5: { ”1,2’ , ”1,4’ , ”2,4’ , ”3,4’ , ”1,6’ , ”2,6’ , ”3,6’ , ”5,6’ , ”1,8’ , ”2,8’ , ”3,8’ , ”5,8’ , ”7,8’ } Notice that the relation T, and in fact any relation, is also a set.

40 Constructing Correct Software Following on from these definitions we can write A Ù B and T explicitly: A Ù B is the set {”1,1’ ”1,2’ ”1,4’ ”1,6’ ”1,8’ , ”2,1’ , ”2,2’ , ”2,4’ , ”2,6’ , ”2,8’ , ”3,1’ , , ”3,2’ , , ”3,4’ , , ”3,6’ , , ”3,8’ , ”5,1’ , ”7,1’ , ”9,1’ , ”5,2’ , ”7,2’ , ”9,2’ , ”5,4’ , ”7,4’ , ”9,4’ , ”5,6’ , ”7,6’ , ”9,6’ , ”5,8’ , ”7,8’ , ”9,8’ } and T is the set { ”1,2’ ”1,4’ ”1,6’ ”1,8’ , , ”2,4’ , ”3,4’ , , ”2,6’ , ”3,6’ , ”5,6’ , , ”2,8’ , ”3,8’ , ”5,8’ , ”7,8’ } or, in a more usual, but perhaps less comprehensible, form5: { ”1,2’ , ”1,4’ , ”2,4’ , ”3,4’ , ”1,6’ , ”2,6’ , ”3,6’ , ”5,6’ , ”1,8’ , ”2,8’ , ”3,8’ , ”5,8’ , ”7,8’ } Notice that the relation T, and in fact any relation, is also a set.

Download PDF sample

Rated 4.21 of 5 – based on 15 votes