TY - JOUR
T1 - A UTP semantics for communicating processes with shared variables and its formal encoding in PVS
AU - Shi, Ling
AU - Zhao, Yongxin
AU - Liu, Yang
AU - Sun, Jun
AU - Dong, Jin Song
AU - Qin, Shengchao
PY - 2018/8/1
Y1 - 2018/8/1
N2 - CSP# (communicating sequential programs) is a modelling language designed for specifying concurrent systems by integrating CSP-like compositional operators with sequential programs updating shared variables. In this work, we define an observation-oriented denotational semantics in an open environment for the CSP# language based on the UTP framework. To deal with shared variables, we lift traditional event-based traces into mixed traces which consist of state-event pairs for recording process behaviours. To capture all possible concurrency behaviours between action/channel-based communications and global shared variables, we construct a comprehensive set of rules on merging traces from processes which run in parallel/interleaving. We also define refinement to check process equivalence and present a set of algebraic laws which are established based on our denotational semantics. We further encode our proposed denotational semantics into the PVS theorem prover. The encoding not only ensures the semantic consistency, but also builds up a theoretic foundation for machine- assisted verification of CSP# specifications.
AB - CSP# (communicating sequential programs) is a modelling language designed for specifying concurrent systems by integrating CSP-like compositional operators with sequential programs updating shared variables. In this work, we define an observation-oriented denotational semantics in an open environment for the CSP# language based on the UTP framework. To deal with shared variables, we lift traditional event-based traces into mixed traces which consist of state-event pairs for recording process behaviours. To capture all possible concurrency behaviours between action/channel-based communications and global shared variables, we construct a comprehensive set of rules on merging traces from processes which run in parallel/interleaving. We also define refinement to check process equivalence and present a set of algebraic laws which are established based on our denotational semantics. We further encode our proposed denotational semantics into the PVS theorem prover. The encoding not only ensures the semantic consistency, but also builds up a theoretic foundation for machine- assisted verification of CSP# specifications.
UR - https://doi.org/10.1007/s00165-018-0453-7
U2 - 10.1007/s00165-018-0453-7
DO - 10.1007/s00165-018-0453-7
M3 - Article
SN - 1433-299X
VL - 30
SP - 351
EP - 380
JO - Formal Aspects of Computing
JF - Formal Aspects of Computing
IS - 3-4
ER -