Using SMT Engine to Generate Symbolic Automata

Authors

  • Eric Madelaine Universite Cote d'Azur, Inria, CNRS, I3S, 06902 Sophia Antipolis, France
  • Xudong Qin Shanghai Key Laboratory of Trustworthy Computing, ECNU
  • Min Zhang Shanghai Key Laboratory of Trustworthy Computing, ECNU
  • Simon Bliudze INRIA Lille – Nord Europe, 40 avenue Halley, 59650 Villeneuve d’Ascq

DOI:

https://doi.org/10.14279/tuj.eceasst.76.1103

Abstract

Open pNets are used to model the behaviour of open systems, both synchronous or asynchronous, expressed in various calculi or languages. They are endowed with a symbolic operational semantics in terms of so-called “Open Automata”. This allows us to check properties of such systems in a compositional manner. We implement an algorithm computing these semantics, building predicates expressing the synchronization conditions between the events of the pNet sub-systems. Checking such predicates requires symbolic reasoning over first order logics, but also over application-specific data. We use the Z3 SMT engine to check satisfiability of the predicates, and prune the open automaton of its unsatisfiable transitions. As an industrial oriented use-case, we use so-called "architectures" for BIP systems, that have been used in the framework of an ESA project and to specify the control software of a nanosatellite at the EPFL Space Engineering Center. We use pNets to encode a BIP architecture extended with explicit data, and compute its open automaton semantics. This automaton may be used to prove behavioural properties; we give 2 examples, a safety and a liveness property.

Downloads

Published

2019-05-14