SALT - Structured Assertion Language for Temporal Logic

This paper presents Salt. Salt is a general purpose specification and assertion language developed for creating concise temporal specifications to be used in industrial verification environments. It incorporates ideas of existing approaches, such as specification patterns, but also provides nested scopes, exceptions, support for regular expressions and real-time. The latter is needed in particular for verification tasks to do with reactive systems imposing strict execution times and deadlines. However, unlike other formalisms used for temporal specification of properties, Salt does not target a specific domain. The paper details on the design rationale, syntax and semantics of Salt in terms of a translation to temporal (real-time) logic, as well as on the realisation in form of a compiler. Our results will show that the higher level of abstraction introduced with Salt does not deprave the efficiency of the subsequent verification tools—rather, on the contrary.

[1]  Bernhard Schätz,et al.  AutoFocus: A Tool for Distributed Systems Specification , 1996, FTRTFT.

[2]  Klaus Schneider,et al.  From PSL to LTL: A Formal Validation in HOL , 2005, TPHOLs.

[3]  Amir Pnueli,et al.  The temporal logic of programs , 1977, 18th Annual Symposium on Foundations of Computer Science (sfcs 1977).

[4]  Deepak D'Souza A Logical Characterisation of Event Clock Automata , 2003, Int. J. Found. Comput. Sci..

[5]  Zohar Manna,et al.  Temporal verification of reactive systems - safety , 1995 .

[6]  Dana Fisman,et al.  The Temporal Logic Sugar , 2001, CAV.

[7]  Zohar Manna,et al.  Temporal Verification of Reactive Systems , 1995, Springer New York.

[8]  James C. Corbett,et al.  Expressing checkable properties of dynamic systems: the Bandera Specification Language , 2002, International Journal on Software Tools for Technology Transfer.

[9]  Stephan Merz,et al.  Model Checking , 2000 .

[10]  Carsten Fritz,et al.  Constructing Büchi Automata from Linear Temporal Logic Using Simulation Relations for Alternating Büchi Automata , 2003, CIAA.

[11]  Orna Kupferman,et al.  Resets vs. Aborts in Linear Temporal Logic , 2003, TACAS.

[12]  Gerard J. Holzmann,et al.  The Model Checker SPIN , 1997, IEEE Trans. Software Eng..

[13]  Edsger W. Dijkstra,et al.  Structured programming , 1972, A.P.I.C. Studies in data processing.

[14]  Johan Anthory Willem Kamp,et al.  Tense logic and the theory of linear order , 1968 .

[15]  허윤정,et al.  Holzmann의 ˝The Model Checker SPIN˝에 대하여 , 1998 .

[16]  Saharon Shelah,et al.  On the temporal analysis of fairness , 1980, POPL '80.

[17]  Maria Spichkova,et al.  Towards verified automotive software , 2005, ACM SIGSOFT Softw. Eng. Notes.

[18]  Paul Gastin,et al.  Fast LTL to Büchi Automata Translation , 2001, CAV.

[19]  Nicolas Markey,et al.  Temporal logic with past is exponentially more succinct, Concurrency Column , 2003, Bull. EATCS.

[20]  Koushik Sen,et al.  Rule-Based Runtime Verification , 2004, VMCAI.

[21]  Pierre-Yves Schobbens,et al.  State Clock Logic: A Decidable Real-Time Logic , 1997, HART.

[22]  C. A. R. Hoare,et al.  A Calculus of Durations , 1991, Inf. Process. Lett..

[23]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[24]  Avner Landver,et al.  The ForSpec Temporal Logic: A New Temporal Property-Specification Language , 2002, TACAS.

[25]  George S. Avrunin,et al.  Patterns in property specifications for finite-state verification , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).