21 research outputs found

    Tools for the construction of correct programs : an overview

    Get PDF

    A proof repository for formal verification of software

    Get PDF
    We present a proof repository that provides a uniform theorem proving interface to virtually any first-order theorem prover. Instead of taking the greatest common divisor of features supported by the first-order theorem provers, the design allows us to support any extension of the logic that can be expressed in first-order logic. If a theorem prover has native support for such a logic, this is exploited. If the prover has no such support, the repository automatically uses the first-order encoding of the extension. A built-in proof assistant is provided that allows the user to manually guide the proving process when all provers fail to prove a theorem. To prove sub-theorems, the proof assistant is able to use the repository’s full capabilities. The repository also maintains a database of proven theorems. When a requested theorem has been proved before, the result from the database is re-used instead of reconstructing the proof all over again. To test the repository, we constructed a tool for static verification of a basic programming language. This language is also described in this paper

    A proof repository for formal verification of software

    Get PDF
    We present a proof repository that provides a uniform theorem proving interface to virtually any first-order theorem prover. Instead of taking the greatest common divisor of features supported by the first-order theorem provers, the design allows us to support any extension of the logic that can be expressed in first-order logic. If a theorem prover has native support for such a logic, this is exploited. If the prover has no such support, the repository automatically uses the first-order encoding of the extension. A built-in proof assistant is provided that allows the user to manually guide the proving process when all provers fail to prove a theorem. To prove sub-theorems, the proof assistant is able to use the repository’s full capabilities. The repository also maintains a database of proven theorems. When a requested theorem has been proved before, the result from the database is re-used instead of reconstructing the proof all over again. To test the repository, we constructed a tool for static verification of a basic programming language. This language is also described in this paper

    Placeholder calculus for first-order logic

    Get PDF
    In this paper we present an extension of first-order predicate logic with placeholders. These placeholders allow the construction of proofs for incomplete theorems. These theorems can be completed during the proof construction process. By using special definitions of substitutions and replacements, we obtain an unexpectedly simple cal- culus. Furthermore, we avoid the need of additional rules for explicit substitutions to deal with postponed substitutions in placeholders, since the definitions of substitution and replacement deal with them directly

    Efficient evaluation of triangular B-splines

    Get PDF

    Placeholder calculus for first-order logic

    No full text
    In this paper we present an extension of first-order predicate logic with placeholders. These placeholders allow the construction of proofs for incomplete theorems. These theorems can be completed during the proof construction process. By using special definitions of substitutions and replacements, we obtain an unexpectedly simple cal- culus. Furthermore, we avoid the need of additional rules for explicit substitutions to deal with postponed substitutions in placeholders, since the definitions of substitution and replacement deal with them directly

    (P-: A pure type system for first order loginc with automated theorem proving

    No full text

    Cocktail II

    No full text
    Cocktail II is an interactive tool for deriving programs from specifications. Instead of verifying a program after it was constructed, Cocktail II aids the goal oriented derivation of a program. First, the user provides a pre- and postcondition. Then, the program to fill the gap between these condition is constructed by manually inserting statements between them. The tool computes the sub specifications of the new gaps, which can then be manually refined further. Finally, when a precondition of a gap implies its postcondition, the gap can be closed. Cocktail II also provides support for constructing the required proof. The program is complete when all gaps are closed
    corecore