5 research outputs found

    A Calculus for Set-Based Program Development

    No full text
    A Calculus for Set-Based Program Development. - In: Formal methods and software engineering : 5th International Conference on Formal Engineering Methods, ICFEM 2003, Singapore, November 5-7, 2003 ; proceedings / Jin Song Dong ... (eds.). - Berlin u.a. : Springer, 2003. - S. 541-559. - (Lecture notes in computer science ; 2885

    A calculus for set-based program development part I: mathematical foundations

    Get PDF
    We propose an algebraic core calculus for naive or intuitive set theory. We reconstruct a fragment of set theory via atomic distributive lattices. Semantically, atomic distributive lattices extend boolean reasoning about sets by element-wise reasoning; the ontological commitment to a universal set is avoided. Operationally, reasoning with atomic distributive lattices yields abtract, concise, elegant proofs for sets from a few elementary principles. We also present an algebraic treatment of extensionality in terms of a lattice congruence. Our results are particularly suited for automated proof search in set theory. Main application is the proof support for set-based program development methods like B or Z

    A calculus for set-based program development part II: proof search

    Get PDF
    The first part of this work introduced a calculus for atomic distributive lattices. It is tailored for operational reasoning in naive or intuitive set theory and in set-based program development methods like Z or B. Here, we use this calculus for developing several focused automated proof-search procedures for atomic distributive and atomic boolean lattices. The procedures are based on ordered resolution; proof-search is guided by rewriting techniques. We derive simple deducation and powerful reduction and simplification rules, in particular decision procedures for several subclasses. Our results solve a longstanding open problem in automatic deduction and close an interesting gap in the proof support for formal methods
    corecore