Refinement Types for tla +
نویسندگان
چکیده
TLA is a specification language, mainly intended for concurrent and distributed systems. Its non-temporal fragment is based on a variant of (untyped) ZF set theory. Motivated by the integration of the TLA Proof System with SMT solvers or similar tools based on multi-sorted first-order logic, we define a type system for TLA and we prove its soundness. The system includes refinement types, which fit naturally in set theory. Combined with dependent function types, we obtain type annotations on top of an untyped specification language, getting the best of both the typed and untyped approaches. After implementing the type inference algorithm, we show that the resulting typing discipline improves the verification capabilities of the proof system.
منابع مشابه
Teaching Transition Systems and Formal Specifications with TLA
We present here our experience with teaching two courses using TLA. The first course concerns state transition systems, and the second one is about formal specifications. In the first course, TLA is used to describe, reason about, and analyze transition systems. The second course deals with refinement, simulation and bisimulation, and TLA is used to check refinements.
متن کاملStepwise Refinement Validation of Design Patterns Formalized in TLA+ using the TLC Model Checker
Spec ∆ = Abstract !Spec This is P ’s specification theorem Spec ⇒ AbstractSpec Spec is Q ’s specification Figure 2: Structure of a TLA+ refinement of patterns
متن کاملVerifying and Constructing Abstract TLA Specifications: Application to the Verification of C programs
One approach to verify the correctness of a system is to prove that it implements an executable (specification) model whose correctness is more obvious. Here, we define a kind of automata whose state is the product of values of multiple variables that we name State Transition System (STS). We define the semantics of TLA+ (specification language of the Temporal Logic of Actions) constructs using...
متن کاملAutomatic Proof of Refinement among Design Patterns using the TLC Model Checker
Design patterns are reuse artifacts meant to improve the quality of software designs as well as the productivity of designers. Patterns (and their relationships) are mostly described in an informal fashion which leads to ambiguity and limits tools support. This has worsened with the growing number of well-established and candidate patterns. This paper discusses how to formally specify the "solu...
متن کاملFeature Interactions: A Mixed Semantic Model Approach
The feature interaction problem is prominent in telephone service development. Through a number of case studies, we have discovered that no one semantic framework is suitable for the synthesis and analysis of formal feature requirements models. We illustrate our mixed-model approach, where we use OO LOTOS, B and TLA+ in a complementary fashion. A simple combination of call forwarding and call s...
متن کامل