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

被引:1
|
作者
Sabel, David [1 ]
Schmidt-Schauss, Manfred [1 ]
机构
[1] Goethe Univ Frankfurt, Inst Informat, D-60054 Frankfurt, Germany
关键词
Verification; Functional programming; Logics; Semantics; Contextual equivalence; UNDEFINEDNESS; PROOF;
D O I
10.1007/s10817-012-9253-6
中图分类号
TP18 [人工智能理论];
学科分类号
081104 ; 0812 ; 0835 ; 1405 ;
摘要
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.
引用
收藏
页码:383 / 421
页数:39
相关论文
共 50 条