33,323 research outputs found
Automated Synthesis of Tableau Calculi
This paper presents a method for synthesising sound and complete tableau
calculi. Given a specification of the formal semantics of a logic, the method
generates a set of tableau inference rules that can then be used to reason
within the logic. The method guarantees that the generated rules form a
calculus which is sound and constructively complete. If the logic can be shown
to admit finite filtration with respect to a well-defined first-order semantics
then adding a general blocking mechanism provides a terminating tableau
calculus. The process of generating tableau rules can be completely automated
and produces, together with the blocking mechanism, an automated procedure for
generating tableau decision procedures. For illustration we show the
workability of the approach for a description logic with transitive roles and
propositional intuitionistic logic.Comment: 32 page
Verifying Safety Properties With the TLA+ Proof System
TLAPS, the TLA+ proof system, is a platform for the development and
mechanical verification of TLA+ proofs written in a declarative style requiring
little background beyond elementary mathematics. The language supports
hierarchical and non-linear proof construction and verification, and it is
independent of any verification tool or strategy. A Proof Manager uses backend
verifiers such as theorem provers, proof assistants, SMT solvers, and decision
procedures to check TLA+ proofs. This paper documents the first public release
of TLAPS, distributed with a BSD-like license. It handles almost all the
non-temporal part of TLA+ as well as the temporal reasoning needed to prove
standard safety properties, in particular invariance and step simulation, but
not liveness properties
Logical Concurrency Control from Sequential Proofs
We are interested in identifying and enforcing the isolation requirements of
a concurrent program, i.e., concurrency control that ensures that the program
meets its specification. The thesis of this paper is that this can be done
systematically starting from a sequential proof, i.e., a proof of correctness
of the program in the absence of concurrent interleavings. We illustrate our
thesis by presenting a solution to the problem of making a sequential library
thread-safe for concurrent clients. We consider a sequential library annotated
with assertions along with a proof that these assertions hold in a sequential
execution. We show how we can use the proof to derive concurrency control that
ensures that any execution of the library methods, when invoked by concurrent
clients, satisfies the same assertions. We also present an extension to
guarantee that the library methods are linearizable or atomic
- …