218 research outputs found
TLA+ Proofs
TLA+ is a specification language based on standard set theory and temporal
logic that has constructs for hierarchical proofs. We describe how to write
TLA+ proofs and check them with TLAPS, the TLA+ Proof System. We use Peterson's
mutual exclusion algorithm as a simple example to describe the features of
TLAPS and show how it and the Toolbox (an IDE for TLA+) help users to manage
large, complex proofs.Comment: A shorter version of this article appeared in the proceedings of the
conference Formal Methods 2012 (FM 2012, Paris, France, Springer LNCS 7436,
pp. 147-154
A Software Architecture for Knowledge-Based Systems
. The paper introduces a software architecture for the specification and verification of knowledge-based systems combining conceptual and formal techniques. Our focus is component-based specification enabling their reuse. We identify four elements of the specification of a knowledge-based system: a task definition, a problem-solving method, a domain model, and an adapter. We present algebraic specifications and a variant of dynamic logic as formal means to specify and verify these different elements. As a consequence of our architecture we can decompose the overall specification and verification task of the knowledge-based systems into subtasks. We identify different subcomponents for specification and different proof obligations for verification. The use of the architecture in specification and verification improves understandability and reduces the effort for both activities. In addition, its decomposition and modularisation enables reuse of components and proofs. Ther..
VerifyThis 2019:A Program Verification Competition (Extended Report)
VerifyThis is a series of program verification competitions that emphasize
the human aspect: participants tackle the verification of detailed behavioral
properties -- something that lies beyond the capabilities of fully automatic
verification, and requires instead human expertise to suitably encode programs,
specifications, and invariants. This paper describes the 8th edition of
VerifyThis, which took place at ETAPS 2019 in Prague. Thirteen teams entered
the competition, which consisted of three verification challenges and spanned
two days of work. The report analyzes how the participating teams fared on
these challenges, reflects on what makes a verification challenge more or less
suitable for the typical VerifyThis participants, and outlines the difficulties
of comparing the work of teams using wildly different verification approaches
in a competition focused on the human aspect
- …