Three-valued predicates for software specification and validation

Partial functions, hence also partial predicates, cannot be avoided in algorithms. Although the former fact has been accepted in the theory of software very early, the latter is still not quite commonly recognized. In many programming- and software-specification languages the partiality of predicates (Boolean expressions) is treated only semiformally. On the other hand it is quite well known today that an explicit formal treatment of partial predicates substantially improves the discipline of software specification, programming and validation.

[1]  Andrzej Blikle Metasoft Primer: Towards a Metalanguage for Applied Denotational Semantics , 1987 .

[2]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[3]  Albert Hoogewijs,et al.  On a Formalization of the Non-Definedness Notion , 1979, Math. Log. Q..

[4]  Albert Hoogewijs,et al.  A Partial Predicate Calculus in a Two-Valued Logic , 1983, Math. Log. Q..

[5]  Andrzej Blikle,et al.  A Guided Tour of the Mathematics of MetaSoft'88 , 1988, Inf. Process. Lett..

[6]  Andrzej Blikle,et al.  On the Development of Correct Specified Programs , 1981, IEEE Transactions on Software Engineering.

[7]  Jean François Pique,et al.  About Natural Logic , 1979, Advances in Data Base Theory.

[8]  Stephen Cole Kleene,et al.  On notation for ordinal numbers , 1938, Journal of Symbolic Logic.

[9]  Cliff B. Jones,et al.  VDM Proof Obligations and their Justification , 1987, VDM Europe.

[10]  John McCarthy,et al.  A BASIS FOR A MATHEMATICAL THEORY OF COMPUTATION 1) , 2018 .

[11]  Andrzej Trybulec,et al.  Computer Aider Reasoning , 1985, Logic of Programs.

[12]  Cliff B. Jones,et al.  Systematic software development using VDM , 1986, Prentice Hall International Series in Computer Science.

[13]  Andrzej Trybulec,et al.  Computer Assisted Reasoning with MIZAR , 1985, IJCAI.