A Two-Valued Logic for Properties of Strict Functional Programs Allowing Partial Functions

  • Authors:
  • David Sabel;Manfred Schmidt-Schauβ

  • Affiliations:
  • Institut für Informatik, Goethe-Universität, Frankfurt, Germany 60054;Institut für Informatik, Goethe-Universität, Frankfurt, Germany 60054

  • Venue:
  • Journal of Automated Reasoning
  • Year:
  • 2013

Quantified Score

Hi-index 0.00

Visualization

Abstract

A typed program logic LMF for recursive specification and verification is presented. It comprises a strict functional programming language with polymorphic and recursively defined partial functions and polymorphic data types. The logic is two-valued with the equality symbol as only predicate. Quantifiers range over the values, which permits inductive proofs of properties. The semantics is based on a contextual (observational) semantics, which gives a consistent presentation of higher-order functions. Our analysis also sheds new light on the the role of partial functions and loose specifications. It is also an analysis of influence of extensions of programs on the tautologies. The main result is that universally quantified equations are conservative, which is also the base for several other conservative classes of formulas.