Systematic software development using VDM (2nd ed.)
Systematic software development using VDM (2nd ed.)
Specification case studies
Proof in VDM: a practitioner's guide
Proof in VDM: a practitioner's guide
The B-book: assigning programs to meanings
The B-book: assigning programs to meanings
Modelling systems: practical tools and techniques in software development
Modelling systems: practical tools and techniques in software development
Verified Software: A Grand Challenge
Computer
Reasoning About Partial Functions in the Formal Development of Programs
Electronic Notes in Theoretical Computer Science (ENTCS)
A semantic analysis of logics that cope with partial terms
ABZ'12 Proceedings of the Third international conference on Abstract State Machines, Alloy, B, VDM, and Z
A Two-Valued Logic for Properties of Strict Functional Programs Allowing Partial Functions
Journal of Automated Reasoning
Hi-index | 0.89 |
Undefined terms involving the application of partial functions and operators are common in program specifications and in discharging proof obligations that arise in design. One way of reasoning about partial functions with classical First-order Predicate Calculus (FoPC) is to use a non-strict equality notion so as to insulate logical operators from undefined operands. An alternative approach is to work only with strict (weak) equality but use an alternative Logic of Partial Functions (LPF)-a logic in which the ''Law of the Excluded Middle'' does not hold. This paper explores the relationships between the theorems that can be proved in the two approaches. The main result is that theorems in LPF using weak equality can be straightforwardly translated into ones that are true in FoPC; translation in the other direction results, in general, in more complicated expressions but in many cases these can be readily simplified. Such results are important if the laudable move towards interworking of formal methods tools is to be sound.