This paper was converted on www.awesomepapers.org from LaTeX by an anonymous user.
Want to know more? Visit the Converter page.

11institutetext: Informatics Institute, Faculty of Science, University of Amsterdam
Science Park 904, 1098 XH Amsterdam, the Netherlands
11email: [email protected]

Imperative Process Algebra with Abstraction

C.A. Middelburg
Abstract

This paper introduces an imperative process algebra based on ACP (Algebra of Communicating Processes). Like other imperative process algebras, this process algebra deals with processes of the kind that arises from the execution of imperative programs. It distinguishes itself from already existing imperative process algebras among other things by supporting abstraction from actions that are considered not to be visible. The support of abstraction of this kind opens interesting application possibilities of the process algebra. This paper goes briefly into the possibility of information-flow security analysis of the kind that is concerned with the leakage of confidential data. For the presented axiomatization, soundness and semi-completeness results with respect to a notion of branching bisimulation equivalence are established. mperative process algebra, abstraction, branching bisimulation, information-flow security, data non-interference with interactions.

1998 ACM Computing Classification: D.2.4, D.4.6, F.1.1, F.1.2, F.3.1.

Keywords:
i

1 Introduction

Generally speaking, process algebras focus on the main role of a reactive system, namely maintaining a certain ongoing interaction with its environment. Reactive systems contrast with transformational systems. A transformational system is a system whose main role is to produce, without interruption by its environment, output data from input data.111The terms reactive system and transformational system are used here with the meaning given in [26]. In general, early computer-based systems were transformational systems. Nowadays, many systems are composed of both reactive components and transformational components. A process carried out by such a system is a process in which data are involved. Usually, the data change in the course of the process, the process proceeds at certain stages in a way that depends on the changing data, and the interaction of the process with other processes consists of communication of data.

This paper introduces an extension of ACP [6] with features that are relevant to processes of the kind referred to above. The extension concerned is called ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I. Its additional features include assignment actions to change the data in the course of a process, guarded commands to proceed at certain stages of a process in a way that depends on the changing data, and data parameterized actions to communicate data between processes. The processes of the kind that ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I is concerned with are reminiscent of the processes that arise from the execution of imperative programs. In [33], the term imperative process algebra was coined for process algebras like ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I. Other imperative process algebras are VPLA [27], IPAL [33], CSPσ [16], AWN [19], and the unnamed process algebra introduced in [13].

ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I distinguishes itself from those imperative process algebras by being the only one with the following three properties: (1) it supports abstraction from actions that are considered not to be visible; (2) a verification of the equivalence of two processes in its semantics is automatically valid in any semantics that is fully abstract with respect to some notion of observable behaviour (cf. [41]); (3) it offers the possibility of equational verification of process equivalence. CSPσ is the only one of the above-mentioned imperative process algebras that has property (1) and none of them has property (2). ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I is probably unique in being the only imperative process algebra with properties (1), (2) and (3).

Property (1) is achieved by providing a special constant (called the silent step constant), special operators (called abstraction operators), and an appropriate notion of equivalence of processes in the semantics of ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I. Property (2) is achieved by using a notion of branching bisimulation equivalence [41] for the equivalence of processes in the semantics of ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I. Property (3) is achieved by providing an equational axiomatization of the equivalence concerned.

Property (1) is essential for the verification of properties concerning the external behaviour of a system. Property (2) is desirable for such verifications in applications where the final word on what exactly is observable behaviour has not been pronounced. This means that ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I is an interesting process algebra for the verification of properties concerning the external behaviour of a system whose description calls for an imperative process algebra. It makes ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I, among other things, suitable for the verification of properties concerning the information-flow security of a system in which confidential and non-confidential data, contained in state components of the system, are looked up and changed and an ongoing interaction with the environment of the system is maintained.

A great part of the work done on information-flow security is concerned with secure information flow in programs, where information flow in a program is considered secure if information derivable from the confidential data contained in its high-security variables cannot be inferred from the non-confidential data contained in its low-security variables (see e.g. [42, 40, 12, 34, 10]). A notable exception is the work done in a process-algebra setting, where the focus has shifted from programs to processes of the kind to which programs in execution belong and where the information flow in a process is usually considered secure if information derivable from confidential actions cannot be inferred from non-confidential actions (see e.g. [20, 36, 11, 31]).

Recent work done on information-flow security in a process-algebra setting occasionally deals with the data-oriented notion of secure information flow, but on such occasions program variables are always mimicked by processes (see e.g. [21, 29]). A suitable imperative process algebra would obviate the need to mimic program variables. This state of affairs motivated the development of ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I. This paper also shows how ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I can be used for information-flow security analysis of the kind that is concerned with the leakage of confidential data.

The development of ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I was primarily aimed at obtaining an imperative process algebra with the properties that are designated above as essential and desirable for the verification of properties concerning the external behaviour of a system. The starting point of the development of ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I is ACPϵτ\textup{ACP}_{\epsilon}^{\tau} [3, Section 5.3], which is a non-imperative process algebra with these properties. This makes it a convenient starting point in view of the primary aim of the development.

ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I is closely related to ACPϵ\textup{ACP}_{\epsilon}^{*}-D [9]. The main differences between them can be summarized as follows: (a) only the former supports abstraction from actions that are considered not to be visible and (b) only the latter has an iteration operator. This paper introduces, in addition to ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I, guarded linear recursion in the setting of ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I. The set of processes that can be defined by means of the operators of ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I extended with the iteration operator is a proper subset of the set of processes that can be defined by means of guarded linear recursion in the setting of ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I. Therefore, (a) should be considered the important difference. However, using the semantics of ACPϵ\textup{ACP}_{\epsilon}^{*}-D as presented in [9] as the starting point of the semantics of ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I turned out to result in a semantics that is too complicated to establish the soundness and semi-completeness results.

This paper is organized as follows. First, a survey of the algebraic theory ACPϵτ\textup{ACP}_{\epsilon}^{\tau}, which is the extension of ACP with the empty process constant ϵ\epsilon and the silent step constant τ\tau, is given (Section 2). Next, the algebraic theory ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I is introduced as an extension of ACPϵτ\textup{ACP}_{\epsilon}^{\tau} (Section 3) and guarded linear recursion in the setting of ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I is treated (Section 4). After that, a structural operational semantics of ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I is presented and a notion of branching bisimulation equivalence based on this semantics is defined (Section 5). Following this, the reasons for two relatively uncommon choices made in the preceding sections are clarified (Section 6). Then, results concerning the soundness and (semi-)completeness of the given axiomatization with respect to branching bisimulation equivalence are established (Section 7). Thereafter, it is explained how ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I can be used for information-flow security analysis of the kind that is concerned with the leakage of confidential data (Section 8). Finally, some concluding remarks are made (Section 9).

There is also an appendix in which, for comparison, an alternative structural operational semantics of ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I is presented and a notion of branching bisimulation equivalence based on this alternative structural operational semantics is defined. The alternative in question is the above-mentioned result of using the structural operational semantics of ACPϵ\textup{ACP}_{\epsilon}^{*}-D as the starting point.

Section 2, Section 3, and the appendix mainly extend the material in Section 2, Section 3, and Section 4, respectively, of [9]. Portions of that material have been copied near verbatim or slightly modified.

2 ACP with Empty Process and Silent Step

In this section, ACPϵτ\textup{ACP}_{\epsilon}^{\tau} is presented. ACPϵτ\textup{ACP}_{\epsilon}^{\tau} is ACP [6] extended with the empty process constant ϵ\epsilon and the silent step constant τ\tau as in [3, Section 5.3]. In ACPϵτ\textup{ACP}_{\epsilon}^{\tau}, it is assumed that a fixed but arbitrary finite set 𝖠\mathsf{A} of basic actions, with τ,δ,ϵ𝖠\tau,\delta,\epsilon\not\in\mathsf{A}, and a fixed but arbitrary commutative and associative communication function γ:(𝖠{τ,δ})×(𝖠{τ,δ})(𝖠{τ,δ}){\gamma}\mathbin{:}(\mathsf{A}\cup\{\tau,\delta\})\times(\mathsf{A}\cup\{\tau,\delta\})\to(\mathsf{A}\cup\{\tau,\delta\}), such that γ(τ,a)=δ\gamma(\tau,a)=\delta and γ(δ,a)=δ\gamma(\delta,a)=\delta for all a𝖠{τ,δ}a\in\mathsf{A}\cup\{\tau,\delta\}, have been given. Basic actions are taken as atomic processes. The function γ\gamma is regarded to give the result of synchronously performing any two basic actions for which this is possible, and to be δ\delta otherwise. Henceforth, we write 𝖠τ{\mathsf{A}_{\tau}} for 𝖠{τ}\mathsf{A}\cup\{\tau\}.

The algebraic theory ACPϵτ\textup{ACP}_{\epsilon}^{\tau} has one sort: the sort 𝐏\mathbf{P} of processes. This sort is made explicit to anticipate the need for many-sortedness later on. The algebraic theory ACPϵτ\textup{ACP}_{\epsilon}^{\tau} has the following constants and operators to build terms of sort 𝐏\mathbf{P}:

  • for each a𝖠a\in\mathsf{A}, the basic action constant a:𝐏{a}\mathbin{:}\mathbf{P};

  • the silent step constant τ:𝐏{\tau}\mathbin{:}\mathbf{P};

  • the inaction constant δ:𝐏{\delta}\mathbin{:}\mathbf{P};

  • the empty process constant ϵ:𝐏{\epsilon}\mathbin{:}\mathbf{P};

  • the binary alternative composition operator +:𝐏×𝐏𝐏{\mathbin{+}}\mathbin{:}\mathbf{P}\times\mathbf{P}\to\mathbf{P};

  • the binary sequential composition operator :𝐏×𝐏𝐏{\cdot}\mathbin{:}\mathbf{P}\times\mathbf{P}\to\mathbf{P};

  • the binary parallel composition operator :𝐏×𝐏𝐏{\mathbin{\parallel}}\mathbin{:}\mathbf{P}\times\mathbf{P}\to\mathbf{P};

  • the binary left merge operator ⌊⌊:𝐏×𝐏𝐏{\mathbin{\lfloor\lfloor}}\mathbin{:}\mathbf{P}\times\mathbf{P}\to\mathbf{P};

  • the binary communication merge operator :𝐏×𝐏𝐏{\mathbin{\mid}}\mathbin{:}\mathbf{P}\times\mathbf{P}\to\mathbf{P};

  • for each H𝖠H\subseteq\mathsf{A} and for H=𝖠τH={\mathsf{A}_{\tau}}, the unary encapsulation operator H:𝐏𝐏{{\partial_{H}}}\mathbin{:}\mathbf{P}\to\mathbf{P};

  • for each I𝖠I\subseteq\mathsf{A}, the unary abstraction operator τI:𝐏𝐏{{\tau_{I}}}\mathbin{:}\mathbf{P}\to\mathbf{P}.

It is assumed that there is a countably infinite set 𝒳\mathcal{X} of variables of sort 𝐏\mathbf{P}, which contains xx, yy and zz. Terms are built as usual. Infix notation is used for the binary operators. The following precedence conventions are used to reduce the need for parentheses: the operator {}\cdot{} binds stronger than all other binary operators and the operator +{}\mathbin{+}{} binds weaker than all other binary operators.

The constants of ACPϵτ\textup{ACP}_{\epsilon}^{\tau} can be explained as follows (a𝖠a\in\mathsf{A}):

  • aa denotes the process that performs the observable action aa and after that terminates successfully;

  • τ\tau denotes the process that performs the unobservable action τ\tau and after that terminates successfully;

  • ϵ\epsilon denotes the process that terminates successfully without performing any action;

  • δ\delta denotes the process that cannot do anything, it cannot even terminate successfully.

Let tt and tt^{\prime} be closed ACPϵτ\textup{ACP}_{\epsilon}^{\tau} terms denoting processes pp and pp^{\prime}, respectively, let H𝖠H\subseteq\mathsf{A} or H=𝖠τH={\mathsf{A}_{\tau}}, and let I𝖠I\subseteq\mathsf{A}. Then the operators of ACPϵτ\textup{ACP}_{\epsilon}^{\tau} can be explained as follows:

  • t+tt\mathbin{+}t^{\prime} denotes the process that behaves either as pp or as pp^{\prime}, where the choice between the two is resolved at the instant that one of them performs its first action or terminates successfully without performing any action, and not before;

  • ttt\cdot t^{\prime}  denotes the process that first behaves as pp and following successful termination of pp behaves as pp^{\prime};

  • ttt\mathbin{\parallel}t^{\prime} denotes the process that behaves as pp and pp^{\prime} in parallel, by which is meant that, each time an action is performed, either a next action of pp is performed or a next action of pp^{\prime} is performed or a next action of pp and a next action of pp^{\prime} are performed synchronously — successful termination may take place at any time that both pp and pp^{\prime} can terminate successfully;

  • t⌊⌊tt\mathbin{\lfloor\lfloor}t^{\prime} denotes the same process as ttt\mathbin{\parallel}t^{\prime}, except that it starts with performing an action of pp;

  • ttt\mathbin{\mid}t^{\prime} denotes the same process as ttt\mathbin{\parallel}t^{\prime}, except that it starts with performing an action of pp and an action of pp^{\prime} synchronously;

  • H(t){\partial_{H}}(t) denotes the process that behaves the same as pp, except that actions from HH are blocked from being performed;

  • τI(t){\tau_{I}}(t) denotes the process that behaves the same as pp, except that actions from II are turned into the unobservable action τ\tau.

The operators ⌊⌊\mathbin{\lfloor\lfloor} and \mathbin{\mid} are of an auxiliary nature. They make a finite axiomatization of ACPϵτ\textup{ACP}_{\epsilon}^{\tau} possible.

The operator 𝖠τ{\partial_{{\mathsf{A}_{\tau}}}} can also be explained as follows: 𝖠τ(t){\partial_{{\mathsf{A}_{\tau}}}}\!(t) denotes the process that behaves the same as ϵ\epsilon if tt denotes a process that has the option to behave the same as ϵ\epsilon and it denotes the process that behaves the same as δ\delta otherwise. In [3, Section 5.3], the symbol \surd is used instead of 𝖠τ{\partial_{{\mathsf{A}_{\tau}}}}.

The axioms of ACPϵτ\textup{ACP}_{\epsilon}^{\tau} are presented in Table 1.

Table 1: Axioms of ACPϵτ\textup{ACP}_{\epsilon}^{\tau}
x+y=y+xA1(x+y)+z=x+(y+z)A2x+x=xA3(x+y)z=xz+yzA4(xy)z=x(yz)A5x+δ=xA6δx=δA7xϵ=xA8ϵx=xA9xy=x⌊⌊y+y⌊⌊x+xy+𝖠τ(x)𝖠τ(y)CM1Eϵ⌊⌊x=δCM2Eαx⌊⌊y=α(xy)CM3(x+y)⌊⌊z=x⌊⌊z+y⌊⌊zCM4ϵx=δCM5Exϵ=δCM6Eaxby=γ(a,b)(xy)CM7(x+y)z=xz+yzCM8x(y+z)=xy+xzCM9H(ϵ)=ϵD0H(α)=αif αHD1H(α)=δif αHD2H(x+y)=H(x)+H(y)D3H(xy)=H(x)H(y)D4τI(ϵ)=ϵT0τI(α)=αif αIT1τI(α)=τif αIT2τI(x+y)=τI(x)+τI(y)T3τI(xy)=τI(x)τI(y)T4α(τ(x+y)+x)=α(x+y)BE\begin{array}[t]{@{}l@{\;}l@{\;\;}l@{}}x\mathbin{+}y=y\mathbin{+}x&&\mathrm{A1}\\ (x\mathbin{+}y)\mathbin{+}z=x\mathbin{+}(y\mathbin{+}z)&&\mathrm{A2}\\ x\mathbin{+}x=x&&\mathrm{A3}\\ (x\mathbin{+}y)\cdot z=x\cdot z\mathbin{+}y\cdot z&&\mathrm{A4}\\ (x\cdot y)\cdot z=x\cdot(y\cdot z)&&\mathrm{A5}\\ x\mathbin{+}\delta=x&&\mathrm{A6}\\ \delta\cdot x=\delta&&\mathrm{A7}\\ x\cdot\epsilon=x&&\mathrm{A8}\\ \epsilon\cdot x=x&&\mathrm{A9}\\[6.45831pt] x\mathbin{\parallel}y=x\mathbin{\lfloor\lfloor}y\mathbin{+}y\mathbin{\lfloor\lfloor}x\mathbin{+}x\mathbin{\mid}y\mathbin{+}{\partial_{{\mathsf{A}_{\tau}}}}\!(x)\cdot{\partial_{{\mathsf{A}_{\tau}}}}\!(y)&&\mathrm{CM1E}\\ \epsilon\mathbin{\lfloor\lfloor}x=\delta&&\mathrm{CM2E}\\ \alpha\cdot x\mathbin{\lfloor\lfloor}y=\alpha\cdot(x\mathbin{\parallel}y)&&\mathrm{CM3}\\ (x\mathbin{+}y)\mathbin{\lfloor\lfloor}z=x\mathbin{\lfloor\lfloor}z\mathbin{+}y\mathbin{\lfloor\lfloor}z&&\mathrm{CM4}\\ \epsilon\mathbin{\mid}x=\delta&&\mathrm{CM5E}\\ x\mathbin{\mid}\epsilon=\delta&&\mathrm{CM6E}\\ a\cdot x\mathbin{\mid}b\cdot y=\gamma(a,b)\cdot(x\mathbin{\parallel}y)&&\mathrm{CM7}\\ (x\mathbin{+}y)\mathbin{\mid}z=x\mathbin{\mid}z\mathbin{+}y\mathbin{\mid}z&&\mathrm{CM8}\\ x\mathbin{\mid}(y\mathbin{+}z)=x\mathbin{\mid}y\mathbin{+}x\mathbin{\mid}z&&\mathrm{CM9}\\[6.45831pt] {\partial_{H}}(\epsilon)=\epsilon&&\mathrm{D0}\\ {\partial_{H}}(\alpha)=\alpha&\textsf{if }\alpha\notin H&\mathrm{D1}\\ {\partial_{H}}(\alpha)=\delta&\textsf{if }\alpha\in H&\mathrm{D2}\\ {\partial_{H}}(x\mathbin{+}y)={\partial_{H}}(x)\mathbin{+}{\partial_{H}}(y)&&\mathrm{D3}\\ {\partial_{H}}(x\cdot y)={\partial_{H}}(x)\cdot{\partial_{H}}(y)&&\mathrm{D4}\\[6.45831pt] {\tau_{I}}(\epsilon)=\epsilon&&\mathrm{T0}\\ {\tau_{I}}(\alpha)=\alpha&\textsf{if }\alpha\notin I&\mathrm{T1}\\ {\tau_{I}}(\alpha)=\tau&\textsf{if }\alpha\in I&\mathrm{T2}\\ {\tau_{I}}(x\mathbin{+}y)={\tau_{I}}(x)\mathbin{+}{\tau_{I}}(y)&&\mathrm{T3}\\ {\tau_{I}}(x\cdot y)={\tau_{I}}(x)\cdot{\tau_{I}}(y)&&\mathrm{T4}\\[6.45831pt] \alpha\cdot(\tau\cdot(x\mathbin{+}y)\mathbin{+}x)=\alpha\cdot(x\mathbin{+}y)&&\mathrm{BE}\\[0.86108pt] \end{array}

In these equations, aa, bb, and α\alpha stand for arbitrary constants of ACPϵτ\textup{ACP}_{\epsilon}^{\tau} other than ϵ\epsilon,  HH stands for an arbitrary subset of 𝖠\mathsf{A} or the set 𝖠τ{\mathsf{A}_{\tau}}, and II stands for an arbitrary subset of 𝖠\mathsf{A}. So, CM3, CM7, D0–D4, T0–T4, and BE are actually axiom schemas. In this paper, axiom schemas will usually be referred to as axioms.

The occurrence of the strange-looking term 𝖠τ(x)𝖠τ(y){\partial_{{\mathsf{A}_{\tau}}}}\!(x)\cdot{\partial_{{\mathsf{A}_{\tau}}}}\!(y) in axiom CM1E deserves some explanation. This term is needed to handle successful termination in the presence of ϵ\epsilon: it stands for the process that behaves the same as ϵ\epsilon if both xx and yy stand for a process that has the option to behave the same as ϵ\epsilon and it stands for the process that behaves the same as δ\delta otherwise.

Notice that there are no operators H{\partial_{H}} for H𝖠τH\subset{\mathsf{A}_{\tau}} with τH\tau\in H in ACPϵτ\textup{ACP}_{\epsilon}^{\tau}. If one or more of them were present, the equation αδ=α\alpha\cdot\delta=\alpha would be derivable from the axioms of ACPϵτ\textup{ACP}_{\epsilon}^{\tau}.

In the sequel, the notation i=1nti\sum_{i=1}^{n}t_{i}, where n1n\geq 1, will be used for right-nested alternative compositions. For each n+n\in\mathbb{N}^{+},222We write +\mathbb{N}^{+} for the set {nn1}\{n\in\mathbb{N}\mathrel{\mid}n\geq 1\} of positive natural numbers. the term i=1nti\sum_{i=1}^{n}t_{i} is defined by induction on nn as follows: i=11ti=t1\sum_{i=1}^{1}t_{i}=t_{1} and i=1n+1ti=t1+i=1nti+1\sum_{i=1}^{n+1}t_{i}=t_{1}\mathbin{+}\sum_{i=1}^{n}t_{i+1}. In addition, the convention will be used that i=10ti=δ\sum_{i=1}^{0}t_{i}=\delta.

3 Imperative ACPϵτ\textup{ACP}_{\epsilon}^{\tau}

In this section, ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I, imperative ACPϵτ\textup{ACP}_{\epsilon}^{\tau}, is presented. This extension of ACPϵτ\textup{ACP}_{\epsilon}^{\tau} has been inspired by [8]. It extends ACPϵτ\textup{ACP}_{\epsilon}^{\tau} with features that are relevant to processes in which data are involved, such as guarded commands (to deal with processes that only take place if some data-dependent condition holds), data parameterized actions (to deal with process interactions with data transfer), and assignment actions (to deal with data that change in the course of a process).

In ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I, it is assumed that the following has been given with respect to data:

  • a many-sorted signature Σ𝔇\mathrm{\Sigma}_{\mathfrak{D}} that includes:

    • a sort 𝐃{\mathbf{D}} of data and a sort 𝐁{\mathbf{B}} of booleans;

    • constants of sort 𝐃{\mathbf{D}} and/or operators with result sort 𝐃{\mathbf{D}};

    • constants 𝗍𝗍\mathsf{t\!t} and 𝖿𝖿\mathsf{f\!f} of sort 𝐁{\mathbf{B}} and operators with result sort 𝐁{\mathbf{B}};

  • a minimal algebra 𝔇\mathfrak{D} of the signature Σ𝔇\mathrm{\Sigma}_{\mathfrak{D}} in which the carrier of sort 𝐁{\mathbf{B}} has cardinality 22 and the equation 𝗍𝗍=𝖿𝖿\mathsf{t\!t}=\mathsf{f\!f} does not hold.

We write 𝔻\mathbb{D} for the set of all closed terms over the signature Σ𝔇\mathrm{\Sigma}_{\mathfrak{D}} that are of sort 𝐃{\mathbf{D}}. The sort 𝐁{\mathbf{B}} is assumed to be given in order to make it possible for operators to serve as predicates.

It is also assumed that a finite or countably infinite set 𝒱\mathcal{V} of flexible variables has been given. A flexible variable is a variable whose value may change in the course of a process.333The term flexible variable is used for this kind of variables in e.g. [39, 30]. Typical examples of flexible variables are the program variables known from imperative programming. An evaluation map is a function from 𝒱\mathcal{V} to 𝔻\mathbb{D}. We write \mathcal{E}\!\mathcal{M} for the set of all evaluation maps.

The algebraic theory ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I has the following sorts: the sort 𝐏\mathbf{P} of processes, the sort 𝐂{\mathbf{C}} of conditions, and the sorts from Σ𝔇\mathrm{\Sigma}_{\mathfrak{D}}.

It is assumed that there are countably infinite sets of variables of sort 𝐂{\mathbf{C}} and 𝐃{\mathbf{D}} and that the sets of variables of sort 𝐏\mathbf{P}, 𝐂{\mathbf{C}}, and 𝐃{\mathbf{D}} are mutually disjoint and disjoint from 𝒱\mathcal{V}.

Below, the constants and operators of ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I are introduced. The operators of ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I include two variable-binding operators. The formation rules for ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I terms are the usual ones for the many-sorted case (see e.g. [38, 43]) and in addition the following rule:

  • if OO is a variable-binding operator O:S1××SnS{O}\mathbin{:}S_{1}\times\ldots\times S_{n}\to S that binds a variable of sort SS^{\prime}, t1,,tnt_{1},\ldots,t_{n} are terms of sorts S1,,SnS_{1},\ldots,S_{n}, respectively, and XX is a variable of sort SS^{\prime}, then OX(t1,,tn)OX(t_{1},\ldots,t_{n}) is a term of sort SS.

An extensive formal treatment of the phenomenon of variable-binding operators can be found in [35].

ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I has the constants and operators from Σ𝔇\mathrm{\Sigma}_{\mathfrak{D}} to build terms of the sorts from Σ𝔇\mathrm{\Sigma}_{\mathfrak{D}} — which include the sort 𝐁{\mathbf{B}} and the sort 𝐃{\mathbf{D}} — and in addition the following constants to build terms of sort 𝐃{\mathbf{D}}:

  • for each v𝒱v\in\mathcal{V}, the flexible variable constant v:𝐃{v}\mathbin{:}{\mathbf{D}}.

We write 𝒟\mathcal{D} for the set of all closed ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I terms of sort 𝐃{\mathbf{D}}.

Evaluation maps are intended to provide the data values assigned to flexible variables when an ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I term of sort 𝐃{\mathbf{D}} is evaluated. However, in order to fit better in an algebraic setting, they provide closed terms over the signature Σ𝔇\mathrm{\Sigma}_{\mathfrak{D}} that denote those data values instead. The requirement that 𝔇\mathfrak{D} is a minimal algebra guarantees that each data value can be represented by a closed term.

ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I has the following constants and operators to build terms of sort 𝐂{\mathbf{C}}:

  • the binary equality operator =:𝐁×𝐁𝐂{=}\mathbin{:}{\mathbf{B}}\times{\mathbf{B}}\to{\mathbf{C}};

  • the binary equality operator =:𝐃×𝐃𝐂{=}\mathbin{:}{\mathbf{D}}\times{\mathbf{D}}\to{\mathbf{C}};444The overloading of == can be trivially resolved if Σ𝔇\mathrm{\Sigma}_{\mathfrak{D}} is without overloaded symbols.

  • the truth constant 𝗍:𝐂{{\mathsf{t}}}\mathbin{:}{\mathbf{C}};

  • the falsity constant 𝖿:𝐂{{\mathsf{f}}}\mathbin{:}{\mathbf{C}};

  • the unary negation operator ¬:𝐂𝐂{\lnot}\mathbin{:}{\mathbf{C}}\to{\mathbf{C}};

  • the binary conjunction operator :𝐂×𝐂𝐂{\land}\mathbin{:}{\mathbf{C}}\times{\mathbf{C}}\to{\mathbf{C}};

  • the binary disjunction operator :𝐂×𝐂𝐂{\lor}\mathbin{:}{\mathbf{C}}\times{\mathbf{C}}\to{\mathbf{C}};

  • the binary implication operator :𝐂×𝐂𝐂{\mathrel{\Rightarrow}}\mathbin{:}{\mathbf{C}}\times{\mathbf{C}}\to{\mathbf{C}};

  • the unary variable-binding universal quantification operator :𝐂𝐂{\forall}\mathbin{:}{\mathbf{C}}\to{\mathbf{C}} that binds a variable of sort 𝐃{\mathbf{D}};

  • the unary variable-binding existential quantification operator :𝐂𝐂{\exists}\mathbin{:}{\mathbf{C}}\to{\mathbf{C}} that binds a variable of sort 𝐃{\mathbf{D}}.

We write 𝒞\mathcal{C} for the set of all closed ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I terms of sort 𝐂{\mathbf{C}}.

Each term from 𝒞\mathcal{C} can be taken as a formula of a first-order language with equality of 𝔇\mathfrak{D} by taking the flexible variable constants as additional variables of sort 𝐃{\mathbf{D}}. The flexible variable constants are implicitly taken as additional variables of sort 𝐃{\mathbf{D}} wherever the context asks for a formula. In this way, each term from 𝒞\mathcal{C} can be interpreted as a formula in 𝔇\mathfrak{D}.

ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I has the constants and operators of ACPϵτ\textup{ACP}_{\epsilon}^{\tau} and in addition the following operators to build terms of sort 𝐏\mathbf{P}:

  • the binary guarded command operator ::𝐂×𝐏𝐏{\mathbin{:\rightarrow}\,}\mathbin{:}{\mathbf{C}}\times\mathbf{P}\to\mathbf{P};

  • for each nn\in\mathbb{N}, for each a𝖠a\in\mathsf{A}, the nn-ary data parameterized action operator a:𝐃××𝐃ntimes𝐏{a}\mathbin{:}\underbrace{{\mathbf{D}}\times\cdots\times{\mathbf{D}}}_{n\;\mathrm{times}}\to\mathbf{P};

  • for each v𝒱v\in\mathcal{V}, a unary assignment action operator v:=:𝐃𝐏{v\mathbin{{:}{=}}\,}\mathbin{:}{\mathbf{D}}\to\mathbf{P};

  • for each σ\sigma\in\mathcal{E}\!\mathcal{M}, a unary evaluation operator 𝖵σ:𝐏𝐏{{\mathsf{V}_{\sigma}}}\mathbin{:}\mathbf{P}\to\mathbf{P}.

We write 𝒫\mathcal{P} for the set of all closed ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I terms of sort 𝐏\mathbf{P}.

The same notational conventions are used as before. Infix notation is also used for the additional binary operators. Moreover, the notation [v:=e][v\mathbin{{:}{=}}e], where v𝒱v\in\mathcal{V} and ee is a ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I term of sort 𝐃{\mathbf{D}}, is used for the term v:=(e)v\mathbin{{:}{=}}(e).

The notation ϕψ\phi\mathrel{\Leftrightarrow}\psi, where ϕ\phi and ψ\psi are ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I terms of sort 𝐂{\mathbf{C}}, is used for the term (ϕψ)(ψϕ)(\phi\mathrel{\Rightarrow}\psi)\land(\psi\mathrel{\Rightarrow}\phi). The axioms of ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I (given below) include an equation ϕ=ψ\phi=\psi for each two terms ϕ\phi and ψ\psi from 𝒞\mathcal{C} for which the formula ϕψ\phi\mathrel{\Leftrightarrow}\psi holds in 𝔇\mathfrak{D}.

Let tt be a term from 𝒫\mathcal{P}, ϕ\phi be a term from 𝒞\mathcal{C}, e1,,ene_{1},\ldots,e_{n} and ee be terms from 𝒟\mathcal{D}, and aa be a basic action from 𝖠\mathsf{A}. Then the additional operators to build terms of sort 𝐏\mathbf{P} can be explained as follows:

  • the term ϕ:t\phi\mathbin{:\rightarrow}t denotes the process that behaves as the process denoted by tt if condition ϕ\phi holds and as δ\delta otherwise;

  • the term a(e1,,en)a(e_{1},\ldots,e_{n}) denotes the process that performs the data parameterized action a(e1,,en)a(e_{1},\ldots,e_{n}) and after that terminates successfully;

  • the term [v:=e][v\mathbin{{:}{=}}e] denotes the process that performs the assignment action [v:=e][v\mathbin{{:}{=}}e], whose intended effect is the assignment of the result of evaluating ee to flexible variable vv, and after that terminates successfully;

  • the term 𝖵σ(t){\mathsf{V}_{\sigma}}(t) denotes the process that behaves the same as the process denoted by tt except that each subterm of tt that belongs to 𝒟\mathcal{D} is evaluated using the evaluation map σ\sigma updated according to the assignment actions that have taken place at the point where the subterm is encountered.

Evaluation operators are a variant of state operators (see e.g. [1]).

The following closed ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I term is reminiscent of a program that computes the difference between two integers by subtracting the smaller one from the larger one (i,j,d𝒱i,j,d\in\mathcal{V}):

[d:=i]((dj=𝗍𝗍):[d:=dj]+(dj=𝖿𝖿):[d:=jd]).\begin{array}[]{@{}l@{}}[d\mathbin{{:}{=}}i]\cdot((d\geq j=\mathsf{t\!t})\mathbin{:\rightarrow}[d\mathbin{{:}{=}}d-j]\mathbin{+}(d\geq j=\mathsf{f\!f})\mathbin{:\rightarrow}[d\mathbin{{:}{=}}j-d])\;.\end{array}

That is, the final value of dd is the absolute value of the result of subtracting the initial value of ii from the initial value of jj. An evaluation operator can be used to show that this is the case for given initial values of ii and jj. For example, consider the case where the initial values of ii and jj are 1111 and 33, respectively. Let σ\sigma be an evaluation map such that σ(i)=11\sigma(i)=11 and σ(j)=3\sigma(j)=3. Then the following equation can be derived from the axioms of ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I given below:

𝖵σ([d:=i]((dj=𝗍𝗍):[d:=dj]+(dj=𝖿𝖿):[d:=jd]))=[d:=11][d:=8].\begin{array}[]{@{}l@{}}{\mathsf{V}_{\sigma}}([d\mathbin{{:}{=}}i]\cdot((d\geq j=\mathsf{t\!t})\mathbin{:\rightarrow}[d\mathbin{{:}{=}}d-j]\mathbin{+}(d\geq j=\mathsf{f\!f})\mathbin{:\rightarrow}[d\mathbin{{:}{=}}j-d]))\\ \;{}=[d\mathbin{{:}{=}}11]\cdot[d\mathbin{{:}{=}}8]\;.\end{array}

This equation shows that in the case where the initial values of ii and jj are 1111 and 33 the final value of dd is 88 (which is the absolute value of the result of subtracting 1111 from 33).

An evaluation map σ\sigma can be extended homomorphically from flexible variables to ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I terms of sort 𝐃{\mathbf{D}} and ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I terms of sort 𝐂{\mathbf{C}}. These extensions are denoted by σ\sigma as well. Below, we write σ{e/v}\sigma\{e/v\} for the evaluation map σ\sigma^{\prime} defined by σ(v)=σ(v)\sigma^{\prime}(v^{\prime})=\sigma(v^{\prime}) if vvv^{\prime}\neq v and σ(v)=e\sigma^{\prime}(v)=e.

Three subsets of 𝒫\mathcal{P} are defined:

𝒜𝑑𝑝𝑎=n+{a(e1,,en)a𝖠e1,,en𝒟},𝒜𝑎𝑠𝑠={[v:=e]v𝒱e𝒟},𝒜={aa𝖠}𝒜𝑑𝑝𝑎𝒜𝑎𝑠𝑠.\begin{array}[]{@{}l@{}}\begin{array}[t]{@{}l@{\;}c@{\;}l@{}l@{}}\mathcal{A}^{\mathit{dpa}}&=&{}\bigcup_{n\in\mathbb{N}^{+}}\{a(e_{1},\dots,e_{n})\mathrel{\mid}a\in\mathsf{A}\land e_{1},\dots,e_{n}\in\mathcal{D}\}\;,\\ \mathcal{A}^{\mathit{ass}}&=&\{[v\mathbin{{:}{=}}e]\mathrel{\mid}v\in\mathcal{V}\land e\in\mathcal{D}\}\;,\\ \mathcal{A}&=&\{a\mathrel{\mid}a\in\mathsf{A}\}\cup\mathcal{A}^{\mathit{dpa}}\cup\mathcal{A}^{\mathit{ass}}\;.\end{array}\end{array}

In ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I, the elements of 𝒜\mathcal{A} are the terms from 𝒫\mathcal{P} that denote the processes that are considered to be atomic. Henceforth, we write 𝒜τ\mathcal{A}_{\tau} for 𝒜{τ}\mathcal{A}\cup\{\tau\} and 𝒜τδ\mathcal{A}_{\tau\delta} for 𝒜{τ,δ}\mathcal{A}\cup\{\tau,\delta\}.

The axioms of ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I are the axioms presented in Table 1, on the understanding that α\alpha now stands for an arbitrary term from 𝒜τδ\mathcal{A}_{\tau\delta},  HH now stands for an arbitrary subset of 𝒜\mathcal{A} or the set 𝒜τ\mathcal{A}_{\tau}, and II now stands for an arbitrary subset of 𝒜\mathcal{A}, and in addition the axioms presented in Table 2.

Table 2: Additional axioms of ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I
e=eif 𝔇e=eIMP1ϕ=ψif 𝔇ϕψIMP2𝗍:x=xGC1𝖿:x=δGC2ϕ:δ=δGC3ϕ:(x+y)=ϕ:x+ϕ:yGC4ϕ:xy=(ϕ:x)yGC5ϕ:(ψ:x)=(ϕψ):xGC6(ϕψ):x=ϕ:x+ψ:xGC7(ϕ:x)⌊⌊y=ϕ:(x⌊⌊y)GC8(ϕ:x)y=ϕ:(xy)GC9x(ϕ:y)=ϕ:(xy)GC10H(ϕ:x)=ϕ:H(x)GC11τI(ϕ:x)=ϕ:τI(x)GC12𝖵σ(ϵ)=ϵV0𝖵σ(τx)=τ𝖵σ(x)V1𝖵σ(ax)=a𝖵σ(x)V2𝖵σ(a(e1,,en)x)=a(σ(e1),,σ(en))𝖵σ(x)V3𝖵σ([v:=e]x)=[v:=σ(e)]𝖵σ{σ(e)/v}(x)V4𝖵σ(x+y)=𝖵σ(x)+𝖵σ(y)V5𝖵σ(ϕ:y)=σ(ϕ):𝖵σ(x)V6a(e1,,en)xb(e1,,en)y=(e1=e1en=en):c(e1,,en)(xy)if γ(a,b)=cCM7Daa(e1,,en)xb(e1,,em)y=δif γ(a,b)=δornmCM7Dba(e1,,en)xαy=δif α𝒜𝑑𝑝𝑎CM7Dcαxa(e1,,en)y=δif α𝒜𝑑𝑝𝑎CM7Dd[v:=e]xαy=δCM7Deαx[v:=e]y=δCM7Dfα(ϕ:τ(x+y)+ϕ:x)=α(ϕ:(x+y))BED\begin{array}[t]{@{}l@{\;}l@{\;\;}l@{}}e=e^{\prime}&\textsf{if }\mathfrak{D}\mathrel{\,\models\,}e=e^{\prime}&\mathrm{IMP1}\\ \phi=\psi&\textsf{if }\mathfrak{D}\mathrel{\,\models\,}\phi\mathrel{\Leftrightarrow}\psi&\mathrm{IMP2}\\[6.45831pt] {\mathsf{t}}\mathbin{:\rightarrow}x=x&&\mathrm{GC1}\\ {\mathsf{f}}\mathbin{:\rightarrow}x=\delta&&\mathrm{GC2}\\ \phi\mathbin{:\rightarrow}\delta=\delta&&\mathrm{GC3}\\ \phi\mathbin{:\rightarrow}(x\mathbin{+}y)=\phi\mathbin{:\rightarrow}x\mathbin{+}\phi\mathbin{:\rightarrow}y&&\mathrm{GC4}\\ \phi\mathbin{:\rightarrow}x\cdot y=(\phi\mathbin{:\rightarrow}x)\cdot y&&\mathrm{GC5}\\ \phi\mathbin{:\rightarrow}(\psi\mathbin{:\rightarrow}x)=(\phi\land\psi)\mathbin{:\rightarrow}x&&\mathrm{GC6}\\ (\phi\lor\psi)\mathbin{:\rightarrow}x=\phi\mathbin{:\rightarrow}x\mathbin{+}\psi\mathbin{:\rightarrow}x&&\mathrm{GC7}\\ (\phi\mathbin{:\rightarrow}x)\mathbin{\lfloor\lfloor}y=\phi\mathbin{:\rightarrow}(x\mathbin{\lfloor\lfloor}y)&&\mathrm{GC8}\\ (\phi\mathbin{:\rightarrow}x)\mathbin{\mid}y=\phi\mathbin{:\rightarrow}(x\mathbin{\mid}y)&&\mathrm{GC9}\\ x\mathbin{\mid}(\phi\mathbin{:\rightarrow}y)=\phi\mathbin{:\rightarrow}(x\mathbin{\mid}y)&&\mathrm{GC10}\\ {\partial_{H}}(\phi\mathbin{:\rightarrow}x)=\phi\mathbin{:\rightarrow}{\partial_{H}}(x)&&\mathrm{GC11}\\ {\tau_{I}}(\phi\mathbin{:\rightarrow}x)=\phi\mathbin{:\rightarrow}{\tau_{I}}(x)&&\mathrm{GC12}\\[6.45831pt] {\mathsf{V}_{\sigma}}(\epsilon)=\epsilon&&\mathrm{V0}\\ {\mathsf{V}_{\sigma}}(\tau\cdot x)=\tau\cdot{\mathsf{V}_{\sigma}}(x)&&\mathrm{V1}\\ {\mathsf{V}_{\sigma}}(a\cdot x)=a\cdot{\mathsf{V}_{\sigma}}(x)&&\mathrm{V2}\\ {\mathsf{V}_{\sigma}}(a(e_{1},\ldots,e_{n})\cdot x)=a(\sigma(e_{1}),\ldots,\sigma(e_{n}))\cdot{\mathsf{V}_{\sigma}}(x)&&\mathrm{V3}\\ {\mathsf{V}_{\sigma}}([v\mathbin{{:}{=}}e]\cdot x)={[v\mathbin{{:}{=}}\sigma(e)]\cdot{\mathsf{V}_{\sigma\{\sigma(e)/v\}}}(x)}&&\mathrm{V4}\\ {\mathsf{V}_{\sigma}}(x\mathbin{+}y)={\mathsf{V}_{\sigma}}(x)\mathbin{+}{\mathsf{V}_{\sigma}}(y)&&\mathrm{V5}\\ {\mathsf{V}_{\sigma}}(\phi\mathbin{:\rightarrow}y)=\sigma(\phi)\mathbin{:\rightarrow}{\mathsf{V}_{\sigma}}(x)&&\mathrm{V6}\\[6.45831pt] a(e_{1},\ldots,e_{n})\cdot x\mathbin{\mid}b(e^{\prime}_{1},\ldots,e^{\prime}_{n})\cdot y={}\\ \quad(e_{1}=e^{\prime}_{1}\land\ldots\land e_{n}=e^{\prime}_{n})\mathbin{:\rightarrow}c(e_{1},\ldots,e_{n})\cdot(x\mathbin{\parallel}y)&\textsf{if }\gamma(a,b)=c&\mathrm{CM7Da}\\ a(e_{1},\ldots,e_{n})\cdot x\mathbin{\mid}b(e^{\prime}_{1},\ldots,e^{\prime}_{m})\cdot y=\delta&\textsf{if }\gamma(a,b)=\delta\;\mathrm{or}\;n\neq m&\mathrm{CM7Db}\\ a(e_{1},\ldots,e_{n})\cdot x\mathbin{\mid}\alpha\cdot y=\delta&\textsf{if }\alpha\notin\mathcal{A}^{\mathit{dpa}}&\mathrm{CM7Dc}\\ \alpha\cdot x\mathbin{\mid}a(e_{1},\ldots,e_{n})\cdot y=\delta&\textsf{if }\alpha\notin\mathcal{A}^{\mathit{dpa}}&\mathrm{CM7Dd}\\ [v\mathbin{{:}{=}}e]\cdot x\mathbin{\mid}\alpha\cdot y=\delta&&\mathrm{CM7De}\\ \alpha\cdot x\mathbin{\mid}[v\mathbin{{:}{=}}e]\cdot y=\delta&&\mathrm{CM7Df}\\[6.45831pt] \alpha\cdot(\phi\mathbin{:\rightarrow}\tau\cdot(x\mathbin{+}y)\mathbin{+}\phi\mathbin{:\rightarrow}x)=\alpha\cdot(\phi\mathbin{:\rightarrow}(x\mathbin{+}y))&&\mathrm{BED}\\[0.86108pt] \end{array}

In the latter table, ϕ\phi and ψ\psi stand for arbitrary terms from 𝒞\mathcal{C},  ee, e1,e2,e_{1},e_{2},\ldots, and ee^{\prime}, e1,e2,e^{\prime}_{1},e^{\prime}_{2},\ldots stand for arbitrary terms from 𝒟\mathcal{D},  vv stands for an arbitrary flexible variable from 𝒱\mathcal{V},  σ\sigma stands for an arbitrary evaluation map from \mathcal{E}\!\mathcal{M},  a,ba,b, and cc stand for arbitrary basic actions from 𝖠\mathsf{A}, and α\alpha stands for an arbitrary term from 𝒜τδ\mathcal{A}_{\tau\delta}.

Axioms GC1–GC12 have been taken from [2] (using a different numbering), but with the axioms with occurrences of Hoare’s ternary counterpart of the guarded command operator (see below) replaced by simpler axioms. Axioms CM7Da and CM7Db have been inspired by [8]. Axiom BED is axiom BE generalized to the current setting. An equivalent axiomatization is obtained if axiom BED is replaced by the equation α(ϕ:τx)=α(ϕ:x)\alpha\cdot(\phi\mathbin{:\rightarrow}\tau\cdot x)=\alpha\cdot(\phi\mathbin{:\rightarrow}x).

Some earlier extensions of ACP include Hoare’s ternary counterpart of the binary guarded command operator (see e.g. [2]). This operator can be defined by the equation xuy=u:x+(¬u):yx\mathbin{\lhd\,u\,\rhd}y=u\mathbin{:\rightarrow}x\mathbin{+}(\lnot\,u)\mathbin{:\rightarrow}y. From this defining equation, it follows that u:x=xuδu\mathbin{:\rightarrow}x=x\mathbin{\lhd\,u\,\rhd}\delta. In [25], a unary counterpart of the binary guarded command operator is used. This operator can be defined by the equation {u}=u:ϵ\{u\}=u\mathbin{:\rightarrow}\epsilon. From this defining equation, it follows that u:x={u}xu\mathbin{:\rightarrow}x=\{u\}\cdot x and also that {𝗍}=ϵ\{{\mathsf{t}}\}=\epsilon and {𝖿}=δ\{{\mathsf{f}}\}=\delta.

4 ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I with Recursion

A closed ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I term of sort 𝐏\mathbf{P} denotes a process with a finite upper bound to the number of actions that it can perform. Recursion allows the description of processes without a finite upper bound to the number of actions that it can perform.

A recursive specification over ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I is a set {Xi=tiiI}\{X_{i}=t_{i}\mathrel{\mid}i\in I\}, where II is a finite set, each XiX_{i} is a variable from 𝒳\mathcal{X}, each tit_{i} is a ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I term of sort 𝐏\mathbf{P} in which only variables from {XiiI}\{X_{i}\mathrel{\mid}i\in I\} occur, and XiXjX_{i}\neq X_{j} for all i,jIi,j\in I with iji\neq j. We write vars(E)\mathrm{vars}(E), where EE is a recursive specification over ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I, for the set of all variables that occur in EE. Let EE be a recursive specification and let Xvars(E)X\in\mathrm{vars}(E). Then the unique equation X=tEX\!=t\;\in\,E is called the recursion equation for XX in EE.

Below, recursive specifications over ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I are introduced in which the right-hand sides of the recursion equations are linear ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I terms. The set \mathcal{L} of linear ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I terms is inductively defined by the following rules:

  • δ\delta\in\mathcal{L};

  • if ϕ𝒞\phi\in\mathcal{C}, then ϕ:ϵ\phi\mathbin{:\rightarrow}\epsilon\in\mathcal{L};

  • if ϕ𝒞\phi\in\mathcal{C}, α𝒜τ\alpha\in\mathcal{A}_{\tau}, and X𝒳X\in\mathcal{X}, then ϕ:αX\phi\mathbin{:\rightarrow}\alpha\cdot X\in\mathcal{L};

  • if t,tt,t^{\prime}\in\mathcal{L}, then t+tt\mathbin{+}t^{\prime}\in\mathcal{L}.

Let tt\in\mathcal{L}. Then we refer to the subterms of tt that have the form ϕ:ϵ\phi\mathbin{:\rightarrow}\epsilon or the form ϕ:αX\phi\mathbin{:\rightarrow}\alpha\cdot X as the summands of tt.

Let XX be a variable from 𝒳\mathcal{X} and let tt be an ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I term in which XX occurs. Then an occurrence of XX in tt is guarded if tt has a subterm of the form αt\alpha\cdot t^{\prime} where α𝒜\alpha\in\mathcal{A} and tt^{\prime} contains this occurrence of XX. An occurrence of a variable XX in a linear ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I term may not be guarded because a linear ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I term may have summands of the form ϕ:τX\phi\mathbin{:\rightarrow}\tau\cdot X.

A guarded linear recursive specification over ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I is a recursive specification {Xi=tiiI}\{X_{i}=t_{i}\mathrel{\mid}i\in I\} over ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I where each tit_{i} is a linear ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I term, and there does not exist an infinite sequence i0i1i_{0}\;i_{1}\;\ldots\, over II such that, for each kk\in\mathbb{N}, there is an occurrence of Xik+1X_{i_{k+1}} in tikt_{i_{k}} that is not guarded.

A linearizable recursive specification over ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I is a recursive specification {Xi=tiiI}\{X_{i}=t_{i}\mathrel{\mid}i\in I\} over ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I where each tit_{i} is rewritable to an ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I term tit^{\prime}_{i}, using the axioms of ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I in either direction and the equations in {Xj=tjjIij}\{X_{j}=t_{j}\mathrel{\mid}j\in I\land i\neq j\} from left to right, such that {Xi=tiiI}\{X_{i}=t^{\prime}_{i}\mathrel{\mid}i\in I\} is a guarded linear recursive specification over ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I.

A solution of a guarded linear recursive specification EE over ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I in some model of ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I is a set {pXXvars(E)}\{p_{X}\mathrel{\mid}X\in\mathrm{vars}(E)\} of elements of the carrier of that model such that each equation in EE holds if, for all Xvars(E)X\in\mathrm{vars}(E), XX is assigned pXp_{X}. A guarded linear recursive specification has a unique solution under the equivalence defined in Section 5 for ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I extended with guarded linear recursion. If {pXXvars(E)}\{p_{X}\mathrel{\mid}X\in\mathrm{vars}(E)\} is the unique solution of a guarded linear recursive specification EE, then, for each Xvars(E)X\in\mathrm{vars}(E), pXp_{X} is called the XX-component of the unique solution of EE.

ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I is extended with guarded linear recursion by adding constants for solutions of guarded linear recursive specifications over ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I and axioms concerning these additional constants. For each guarded linear recursive specification EE over ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I and each Xvars(E)X\in\mathrm{vars}(E), a constant X|E\langle X|E\rangle of sort 𝐏\mathbf{P}, that stands for the XX-component of the unique solution of EE, is added to the constants of ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I. The equation RDP (Recursive Definition Principle) and the conditional equation RSP (Recursive Specification Principle) given in Table 3 are added to the axioms of ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I.

Table 3: Axioms for guarded linear recursion
X|E=t|Eif X=tERDPEX=X|Eif Xvars(E)RSP\begin{array}[t]{@{}l@{\;}l@{\;\;}l@{}}\langle X|E\rangle=\langle t|E\rangle&\textsf{if }X\!=t\;\in\,E&\mathrm{RDP}\\ E\mathrel{\Rightarrow}X=\langle X|E\rangle&\textsf{if }X\in\mathrm{vars}(E)&\mathrm{RSP}\\[0.86108pt] \end{array}

In RDP and RSP, XX stands for an arbitrary variable from 𝒳\mathcal{X}, tt stands for an arbitrary ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I term of sort 𝐏\mathbf{P},  EE stands for an arbitrary guarded linear recursive specification over ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I, and the notation t|E\langle t|E\rangle is used for tt with, for all Xvars(E)X\in\mathrm{vars}(E), all occurrences of XX in tt replaced by X|E\langle X|E\rangle. Side conditions restrict what XX, tt and EE stand for.

We write ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I+REC for the resulting theory. Furthermore, we write 𝒫𝑟𝑒𝑐\mathcal{P}_{\mathit{rec}} for the set of all closed ACPϵτ-I+REC\textup{ACP}_{\epsilon}^{\tau}\textup{-I}\textup{+REC} terms of sort 𝐏\mathbf{P}.

RDP and RSP together postulate that guarded linear recursive specifications over ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I have unique solutions: the equations X|E=t|E\langle X|E\rangle=\langle t|E\rangle and the conditional equations EX=X|EE\mathrel{\Rightarrow}X\!=\!\langle X|E\rangle for a fixed EE express that the constants X|E\langle X|E\rangle make up a solution of EE and that this solution is the only one, respectively.

Because conditional equational formulas must be dealt with in ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I+REC, it is understood that conditional equational logic is used in deriving equations from the axioms of ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I+REC. A complete inference system for conditional equational logic can for example be found in [3, 24].

We write Tt=tT\vdash t=t^{\prime}, where TT is ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I+REC or ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I+REC+CFAR (an extension of ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I+REC introduced below), to indicate that the equation t=tt=t^{\prime} is derivable from the axioms of TT using a complete inference system for conditional equational logic.

The following closed ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I+REC term is reminiscent of a program that computes by repeated subtraction the quotient and remainder of dividing a non-negative integer by a positive integer (i,j,q,r𝒱i,j,q,r\in\mathcal{V}):

[q:=0][r:=i]Q|E,\begin{array}[]{@{}l@{}}[q\mathbin{{:}{=}}0]\cdot[r\mathbin{{:}{=}}i]\cdot\langle Q|E\rangle\;,\end{array}

where EE is the guarded linear recursive specification that consists of the following two equations (Q,R𝒳Q,R\in\mathcal{X}):

Q=(rj=𝗍𝗍):[q:=q+1]R+(rj=𝖿𝖿):ϵ,R=𝗍:[r:=rj]Q.\begin{array}[]{@{}l@{}}Q=(r\geq j=\mathsf{t\!t})\mathbin{:\rightarrow}[q\mathbin{{:}{=}}q+1]\cdot R\mathbin{+}(r\geq j=\mathsf{f\!f})\mathbin{:\rightarrow}\epsilon\;,\\ R={\mathsf{t}}\mathbin{:\rightarrow}[r\mathbin{{:}{=}}r-j]\cdot Q\;.\end{array}

The final values of qq and rr are the quotient and remainder of dividing the initial value of ii by the initial value of jj. An evaluation operator can be used to show that this is the case for given initial values of ii and jj. For example, consider the case where the initial values of ii and jj are 1111 and 33, respectively. Let σ\sigma be an evaluation map such that σ(i)=11\sigma(i)=11 and σ(j)=3\sigma(j)=3. Then the following equation can be derived from the axioms of ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I+REC:

𝖵σ([q:=0][r:=i]Q|E)=[q:=0][r:=11][q:=1][r:=8][q:=2][r:=5][q:=3][r:=2].\begin{array}[]{@{}l@{}}{\mathsf{V}_{\sigma}}([q\mathbin{{:}{=}}0]\cdot[r\mathbin{{:}{=}}i]\cdot\langle Q|E\rangle)\\ \;{}=[q\mathbin{{:}{=}}0]\cdot[r\mathbin{{:}{=}}11]\cdot[q\mathbin{{:}{=}}1]\cdot[r\mathbin{{:}{=}}8]\cdot[q\mathbin{{:}{=}}2]\cdot[r\mathbin{{:}{=}}5]\cdot[q\mathbin{{:}{=}}3]\cdot[r\mathbin{{:}{=}}2]\;.\end{array}

This equation shows that in the case where the initial values of ii and jj are 1111 and 33 the final values of qq and rr are 33 and 22 (which are the quotient and remainder of dividing 1111 by 33).

Below, use will be made of a reachability notion for the variables occurring in a guarded linear recursive specification over ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I.

Let EE be a guarded linear recursive specification over ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I and let X,Yvars(E)X,Y\in\mathrm{vars}(E). Then YY is directly reachable from XX in EE, written XEYX\stackrel{{\scriptstyle E}}{{\leadsto}}Y, if YY occurs in the right-hand side of the recursion equation for XX in EE. We write E\mathrel{\stackrel{{\scriptstyle E}}{{\leadsto}}^{*}} for the reflexive transitive closure of E\stackrel{{\scriptstyle E}}{{\leadsto}}.

Processes with one or more cycles of τ\tau actions are not definable by guarded linear recursion alone, but they are definable by combining guarded linear recursion and abstraction. An example is

τ{a}(X|{X=aY+b,Y=aX+c}).\begin{array}[]{@{}l@{}}{\tau_{\{a\}}}(\langle X|\{X=a\cdot Y\mathbin{+}b,Y=a\cdot X\mathbin{+}c\}\rangle)\;.\end{array}

The semantics of ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I+REC presented in Section 5 identifies this with b+τ(b+c)b\mathbin{+}\tau\cdot(b\mathbin{+}c). However, the equation

τ{a}(X|{X=aY+b,Y=aX+c})=b+τ(b+c)\begin{array}[]{@{}l@{}}{\tau_{\{a\}}}(\langle X|\{X=a\cdot Y\mathbin{+}b,Y=a\cdot X\mathbin{+}c\}\rangle)=b\mathbin{+}\tau\cdot(b\mathbin{+}c)\end{array}

is not derivable from the axioms of ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I+REC. This is remedied by the addition of the equational axiom schema CFAR (Cluster Fair Abstraction Rule) that will be presented below. This axiom schema makes it possible to abstract from a cycle of actions that are turned into the unobservable action τ\tau, by which only the ways out of the cycle remain. The side condition on the equation concerned requires several notions to be made precise.

Let EE be a guarded linear recursive specification over ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I, let Cvars(E)C\subseteq\mathrm{vars}(E), and let I𝒜I\subseteq\mathcal{A}. Then:

  • CC is a cluster for II in EE if, for each ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I term ϕ:αX\phi\mathbin{:\rightarrow}\alpha\cdot X of sort 𝐏\mathbf{P} that is a summand of the right-hand side of the recursion equation for some XCX^{\prime}\in C in EE, XCX\in C only if ϕ𝗍\phi\equiv{\mathsf{t}} and αI{τ}\alpha\in I\cup\{\tau\};666We write \equiv for syntactic equality.

  • for each cluster CC for II in EE, the exit set of CC for II in EE, written 𝑒𝑥𝑖𝑡𝑠I,E(C)\mathit{exits}_{I,E}(C), is the set of ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I terms of sort 𝐏\mathbf{P} defined by t𝑒𝑥𝑖𝑡𝑠I,E(C)t\in\mathit{exits}_{I,E}(C) iff tt is a summand of the right-hand side of the recursion equation for some XCX^{\prime}\in C in EE and one of the following holds:

    • tϕ:αYt\equiv\phi\mathbin{:\rightarrow}\alpha\cdot Y for some ϕ𝒞\phi\in\mathcal{C}, α𝒜τ\alpha\in\mathcal{A}_{\tau}, and Yvars(E)Y\in\mathrm{vars}(E) such that αI{τ}\alpha\notin I\cup\{\tau\} or YCY\notin C;

    • tϕ:ϵt\equiv\phi\mathbin{:\rightarrow}\epsilon for some ϕ𝒞\phi\in\mathcal{C};

  • CC is a conservative cluster for II in EE if CC is a cluster for II in EE and, for each XCX\in C and Y𝑒𝑥𝑖𝑡𝑠I,E(C)Y\in\mathit{exits}_{I,E}(C), XEYX\mathrel{\stackrel{{\scriptstyle E}}{{\leadsto}}^{*}}Y.

The cluster fair abstraction rule is presented in Table 4.

Table 4: Cluster fair abstraction rule
ττI(X|E)=ττI(l=1ntl|E)if for some finite conservative cluster C for I in E,XC and 𝑒𝑥𝑖𝑡𝑠I,E(C)={t1,,tn}CFAR\begin{array}[t]{@{}l@{\;}l@{\;\;}l@{}}\tau\cdot{\tau_{I}}(\langle X|E\rangle)=\tau\cdot{\tau_{I}}(\sum_{l=1}^{n}\langle t_{l}|E\rangle)\\ \textsf{if }\mbox{for some finite conservative cluster $C$ for $I$ in $E$,}\\ \phantom{\textsf{if }}\mbox{$X\in C$ and $\mathit{exits}_{I,E}(C)=\{t_{1},\ldots,t_{n}\}$}&&\mathrm{CFAR}\\[0.86108pt] \end{array}

In this table, XX stands for an arbitrary variable from 𝒳\mathcal{X}, EE stands for an arbitrary guarded linear recursive specification over ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I, II stands for an arbitrary subset of 𝒜\mathcal{A}, and t1,t2,t_{1},t_{2},\ldots\, stand for arbitrary ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I terms of sort 𝐏\mathbf{P}. A side condition restricts what XX, EE, II, and t1,t2,t_{1},t_{2},\ldots\, stand for.

CFAR expresses that every cluster of τ\tau actions will be exited sooner or later. This is a fairness assumption made in the verification of many properties concerning the external behaviour of systems.

We write ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I+REC+CFAR for the theory ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I+REC extended with CFAR.

5 Bisimulation Semantics

In this section, a structural operational semantics of ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I+REC is presented and a notion of branching bisimulation equivalence for ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I+REC based on this structural operational semantics is defined.

The structural operational semantics of ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I+REC consists of

  • a binary conditional transition relation \buildrel{\ell}\over{\hbox to10.41669pt{\rightarrowfill}} on 𝒫𝑟𝑒𝑐\mathcal{P}_{\mathit{rec}} for each ×𝒜τ\ell\in\mathcal{E}\!\mathcal{M}\times\mathcal{A}_{\tau};

  • a unary successful termination relation {σ}\mathrel{{}^{\{\sigma\}}\!{\downarrow}} on 𝒫𝑟𝑒𝑐\mathcal{P}_{\mathit{rec}} for each σ\sigma\in\mathcal{E}\!\mathcal{M}.

We write t{σ}αtt\buildrel{\{\sigma\}\hskip 1.00006pt\alpha}\over{\hbox to26.67787pt{\rightarrowfill}}t^{\prime} instead of (t,t)(σ,α)(t,t^{\prime})\in{\buildrel{(\sigma,\alpha)}\over{\hbox to24.47777pt{\rightarrowfill}}} and t{σ}t\mathrel{{}^{\{\sigma\}}\!{\downarrow}} instead of t{σ}t\in{\mathrel{{}^{\{\sigma\}}\!{\downarrow}}}.

The relations from the structural operational semantics describe what the processes denoted by terms from 𝒫𝑟𝑒𝑐\mathcal{P}_{\mathit{rec}} are capable of doing as follows:

  • t{σ}αtt\buildrel{\{\sigma\}\hskip 1.00006pt\alpha}\over{\hbox to26.67787pt{\rightarrowfill}}t^{\prime}: if the data values assigned to the flexible variables are as defined by σ\sigma, then the process denoted by tt has the potential to make a transition to the process denoted by tt^{\prime} by performing action α\alpha;

  • t{σ}t\mathrel{{}^{\{\sigma\}}\!{\downarrow}}: if the data values assigned to the flexible variables are as defined by σ\sigma, then the process denoted by tt has the potential to terminate successfully.

The relations from the structural operational semantics of ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I+REC are the smallest relations satisfying the rules given in Table 5.

Table 5: Transition rules for ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I

α{σ}αϵϵ{σ}x{σ}x+y{σ}y{σ}x+y{σ}x{σ}αxx+y{σ}αxy{σ}αyx+y{σ}αyx{σ},y{σ}xy{σ}x{σ},y{σ}αyxy{σ}αyx{σ}αxxy{σ}αxyx{σ},y{σ}xy{σ}x{σ}αxxy{σ}αxyy{σ}αyxy{σ}αxyx{σ}ax,y{σ}byxy{σ}cxyγ(a,b)=cx{σ}a(e1,,en)x,y{σ}b(e1,,en)yxy{σ}c(e1,,en)xyγ(a,b)=c,𝔇σ(e1=e1en=en)x{σ}αxx⌊⌊y{σ}αxyx{σ}ax,y{σ}byxy{σ}cxyγ(a,b)=cx{σ}a(e1,,en)x,y{σ}b(e1,,en)yxy{σ}c(e1,,en)xyγ(a,b)=c,𝔇σ(e1=e1en=en)x{σ}H(x){σ}x{σ}αxH(x){σ}αH(x)αHx{σ}τI(x){σ}x{σ}αxτI(x){σ}ατI(x)αIx{σ}αxτI(x){σ}ττI(x)αIx{σ}ϕ:x{σ}𝔇σ(ϕ)x{σ}αxϕ:x{σ}αx𝔇σ(ϕ)x{σ}𝖵σ(x){σ}x{σ}τx𝖵σ(x){σ}τ𝖵σ(x)x{σ}ax𝖵σ(x){σ}a𝖵σ(x)x{σ}a(e1,,en)x𝖵σ(x){σ}a(σ(e1),,σ(en))𝖵σ(x)x{σ}[v:=e]x𝖵σ(x){σ}[v:=σ(e)]𝖵σ{σ(e)/v}(x)t|E{σ}X|E{σ}X=tEt|E{σ}αxX|E{σ}αxX=tE\begin{array}[]{@{}l@{}}\hline\cr{}\\[-12.91663pt] \frac{\rule[3.76735pt]{0.0pt}{10.5486pt}\textstyle}{\rule[-2.2604pt]{0.0pt}{10.5486pt}\textstyle\alpha\buildrel{\{\sigma\}\hskip 1.00006pt\alpha}\over{\hbox to26.67787pt{\rightarrowfill}}\epsilon}\\[-8.61108pt] \frac{\rule[3.76735pt]{0.0pt}{10.5486pt}\textstyle\phantom{\epsilon\mathrel{{}^{\{\sigma\}}\!{\downarrow}}}}{\rule[-2.2604pt]{0.0pt}{10.5486pt}\textstyle\epsilon\mathrel{{}^{\{\sigma\}}\!{\downarrow}}}\\ \frac{\rule[3.76735pt]{0.0pt}{10.5486pt}\textstyle x\mathrel{{}^{\{\sigma\}}\!{\downarrow}}}{\rule[-2.2604pt]{0.0pt}{10.5486pt}\textstyle x\mathbin{+}y\mathrel{{}^{\{\sigma\}}\!{\downarrow}}}\quad\;\frac{\rule[3.76735pt]{0.0pt}{10.5486pt}\textstyle y\mathrel{{}^{\{\sigma\}}\!{\downarrow}}}{\rule[-2.2604pt]{0.0pt}{10.5486pt}\textstyle x\mathbin{+}y\mathrel{{}^{\{\sigma\}}\!{\downarrow}}}\quad\;\frac{\rule[3.76735pt]{0.0pt}{10.5486pt}\textstyle x\buildrel{\{\sigma\}\hskip 1.00006pt\alpha}\over{\hbox to26.67787pt{\rightarrowfill}}x^{\prime}}{\rule[-2.2604pt]{0.0pt}{10.5486pt}\textstyle x\mathbin{+}y\buildrel{\{\sigma\}\hskip 1.00006pt\alpha}\over{\hbox to26.67787pt{\rightarrowfill}}x^{\prime}}\quad\;\frac{\rule[3.76735pt]{0.0pt}{10.5486pt}\textstyle y\buildrel{\{\sigma\}\hskip 1.00006pt\alpha}\over{\hbox to26.67787pt{\rightarrowfill}}y^{\prime}}{\rule[-2.2604pt]{0.0pt}{10.5486pt}\textstyle x\mathbin{+}y\buildrel{\{\sigma\}\hskip 1.00006pt\alpha}\over{\hbox to26.67787pt{\rightarrowfill}}y^{\prime}}\\ \frac{\rule[3.76735pt]{0.0pt}{10.5486pt}\textstyle x\mathrel{{}^{\{\sigma\}}\!{\downarrow}},\;y\mathrel{{}^{\{\sigma\}}\!{\downarrow}}}{\rule[-2.2604pt]{0.0pt}{10.5486pt}\textstyle x\cdot y\mathrel{{}^{\{\sigma\}}\!{\downarrow}}}\quad\;\frac{\rule[3.76735pt]{0.0pt}{10.5486pt}\textstyle x\mathrel{{}^{\{\sigma\}}\!{\downarrow}},\;y\buildrel{\{\sigma\}\hskip 1.00006pt\alpha}\over{\hbox to26.67787pt{\rightarrowfill}}y^{\prime}}{\rule[-2.2604pt]{0.0pt}{10.5486pt}\textstyle x\cdot y\buildrel{\{\sigma\}\hskip 1.00006pt\alpha}\over{\hbox to26.67787pt{\rightarrowfill}}y^{\prime}}\quad\;\frac{\rule[3.76735pt]{0.0pt}{10.5486pt}\textstyle x\buildrel{\{\sigma\}\hskip 1.00006pt\alpha}\over{\hbox to26.67787pt{\rightarrowfill}}x^{\prime}}{\rule[-2.2604pt]{0.0pt}{10.5486pt}\textstyle x\cdot y\buildrel{\{\sigma\}\hskip 1.00006pt\alpha}\over{\hbox to26.67787pt{\rightarrowfill}}x^{\prime}\cdot y}\\ \frac{\rule[3.76735pt]{0.0pt}{10.5486pt}\textstyle x\mathrel{{}^{\{\sigma\}}\!{\downarrow}},\;y\mathrel{{}^{\{\sigma\}}\!{\downarrow}}}{\rule[-2.2604pt]{0.0pt}{10.5486pt}\textstyle x\mathbin{\parallel}y\mathrel{{}^{\{\sigma\}}\!{\downarrow}}}\quad\;\frac{\rule[3.76735pt]{0.0pt}{10.5486pt}\textstyle x\buildrel{\{\sigma\}\hskip 1.00006pt\alpha}\over{\hbox to26.67787pt{\rightarrowfill}}x^{\prime}}{\rule[-2.2604pt]{0.0pt}{10.5486pt}\textstyle x\mathbin{\parallel}y\buildrel{\{\sigma\}\hskip 1.00006pt\alpha}\over{\hbox to26.67787pt{\rightarrowfill}}x^{\prime}\mathbin{\parallel}y}\quad\;\frac{\rule[3.76735pt]{0.0pt}{10.5486pt}\textstyle y\buildrel{\{\sigma\}\hskip 1.00006pt\alpha}\over{\hbox to26.67787pt{\rightarrowfill}}y^{\prime}}{\rule[-2.2604pt]{0.0pt}{10.5486pt}\textstyle x\mathbin{\parallel}y\buildrel{\{\sigma\}\hskip 1.00006pt\alpha}\over{\hbox to26.67787pt{\rightarrowfill}}x\mathbin{\parallel}y^{\prime}}\\ \frac{\rule[3.76735pt]{0.0pt}{10.5486pt}\textstyle x\buildrel{\{\sigma\}\hskip 1.00006pta}\over{\hbox to25.90009pt{\rightarrowfill}}x^{\prime},\;y\buildrel{\{\sigma\}\hskip 1.00006ptb}\over{\hbox to25.20413pt{\rightarrowfill}}y^{\prime}}{\rule[-2.2604pt]{0.0pt}{10.5486pt}\textstyle x\mathbin{\parallel}y\buildrel{\{\sigma\}\hskip 1.00006ptc}\over{\hbox to25.22925pt{\rightarrowfill}}x^{\prime}\mathbin{\parallel}y^{\prime}}{\;\,\gamma(a,b)=c}\\ \frac{\rule[3.76735pt]{0.0pt}{10.5486pt}\textstyle x\buildrel{\{\sigma\}\hskip 1.00006pta(e_{1},\ldots,e_{n})}\over{\hbox to53.06976pt{\rightarrowfill}}x^{\prime},\;y\buildrel{\{\sigma\}\hskip 1.00006ptb(e^{\prime}_{1},\ldots,e^{\prime}_{n})}\over{\hbox to50.17285pt{\rightarrowfill}}y^{\prime}}{\rule[-2.2604pt]{0.0pt}{10.5486pt}\textstyle x\mathbin{\parallel}y\buildrel{\{\sigma\}\hskip 1.00006ptc(e_{1},\ldots,e_{n})}\over{\hbox to52.39893pt{\rightarrowfill}}x^{\prime}\mathbin{\parallel}y^{\prime}}{\;\,\gamma(a,b)=c,\;\mathfrak{D}\mathrel{\,\models\,}\sigma(e_{1}=e^{\prime}_{1}\land\ldots\land e_{n}=e^{\prime}_{n})}\\ \frac{\rule[3.76735pt]{0.0pt}{10.5486pt}\textstyle x\buildrel{\{\sigma\}\hskip 1.00006pt\alpha}\over{\hbox to26.67787pt{\rightarrowfill}}x^{\prime}}{\rule[-2.2604pt]{0.0pt}{10.5486pt}\textstyle x\mathbin{\lfloor\lfloor}y\buildrel{\{\sigma\}\hskip 1.00006pt\alpha}\over{\hbox to26.67787pt{\rightarrowfill}}x^{\prime}\mathbin{\parallel}y}\\ \frac{\rule[3.76735pt]{0.0pt}{10.5486pt}\textstyle x\buildrel{\{\sigma\}\hskip 1.00006pta}\over{\hbox to25.90009pt{\rightarrowfill}}x^{\prime},\;y\buildrel{\{\sigma\}\hskip 1.00006ptb}\over{\hbox to25.20413pt{\rightarrowfill}}y^{\prime}}{\rule[-2.2604pt]{0.0pt}{10.5486pt}\textstyle x\mathbin{\mid}y\buildrel{\{\sigma\}\hskip 1.00006ptc}\over{\hbox to25.22925pt{\rightarrowfill}}x^{\prime}\mathbin{\parallel}y^{\prime}}{\;\,\gamma(a,b)=c}\\ \frac{\rule[3.76735pt]{0.0pt}{10.5486pt}\textstyle x\buildrel{\{\sigma\}\hskip 1.00006pta(e_{1},\ldots,e_{n})}\over{\hbox to53.06976pt{\rightarrowfill}}x^{\prime},\;y\buildrel{\{\sigma\}\hskip 1.00006ptb(e^{\prime}_{1},\ldots,e^{\prime}_{n})}\over{\hbox to50.17285pt{\rightarrowfill}}y^{\prime}}{\rule[-2.2604pt]{0.0pt}{10.5486pt}\textstyle x\mathbin{\mid}y\buildrel{\{\sigma\}\hskip 1.00006ptc(e_{1},\ldots,e_{n})}\over{\hbox to52.39893pt{\rightarrowfill}}x^{\prime}\mathbin{\parallel}y^{\prime}}{\;\,\gamma(a,b)=c,\;\mathfrak{D}\mathrel{\,\models\,}\sigma(e_{1}=e^{\prime}_{1}\land\ldots\land e_{n}=e^{\prime}_{n})}\\ \frac{\rule[3.76735pt]{0.0pt}{10.5486pt}\textstyle x\mathrel{{}^{\{\sigma\}}\!{\downarrow}}}{\rule[-2.2604pt]{0.0pt}{10.5486pt}\textstyle{\partial_{H}}(x)\mathrel{{}^{\{\sigma\}}\!{\downarrow}}}\quad\;\frac{\rule[3.76735pt]{0.0pt}{10.5486pt}\textstyle x\buildrel{\{\sigma\}\hskip 1.00006pt\alpha}\over{\hbox to26.67787pt{\rightarrowfill}}x^{\prime}}{\rule[-2.2604pt]{0.0pt}{10.5486pt}\textstyle{\partial_{H}}(x)\buildrel{\{\sigma\}\hskip 1.00006pt\alpha}\over{\hbox to26.67787pt{\rightarrowfill}}{\partial_{H}}(x^{\prime})}{\;\,\alpha\notin H}\\ \frac{\rule[3.76735pt]{0.0pt}{10.5486pt}\textstyle x\mathrel{{}^{\{\sigma\}}\!{\downarrow}}}{\rule[-2.2604pt]{0.0pt}{10.5486pt}\textstyle{\tau_{I}}(x)\mathrel{{}^{\{\sigma\}}\!{\downarrow}}}\quad\;\frac{\rule[3.76735pt]{0.0pt}{10.5486pt}\textstyle x\buildrel{\{\sigma\}\hskip 1.00006pt\alpha}\over{\hbox to26.67787pt{\rightarrowfill}}x^{\prime}}{\rule[-2.2604pt]{0.0pt}{10.5486pt}\textstyle{\tau_{I}}(x)\buildrel{\{\sigma\}\hskip 1.00006pt\alpha}\over{\hbox to26.67787pt{\rightarrowfill}}{\tau_{I}}(x^{\prime})}{\;\,\alpha\notin I}\quad\;\frac{\rule[3.76735pt]{0.0pt}{10.5486pt}\textstyle x\buildrel{\{\sigma\}\hskip 1.00006pt\alpha}\over{\hbox to26.67787pt{\rightarrowfill}}x^{\prime}}{\rule[-2.2604pt]{0.0pt}{10.5486pt}\textstyle{\tau_{I}}(x)\buildrel{\{\sigma\}\hskip 1.00006pt\tau}\over{\hbox to25.26004pt{\rightarrowfill}}{\tau_{I}}(x^{\prime})}{\;\,\alpha\in I}\\ \frac{\rule[3.76735pt]{0.0pt}{10.5486pt}\textstyle x\mathrel{{}^{\{\sigma\}}\!{\downarrow}}}{\rule[-2.2604pt]{0.0pt}{10.5486pt}\textstyle\phi\mathbin{:\rightarrow}x\mathrel{{}^{\{\sigma\}}\!{\downarrow}}}{\;\,\mathfrak{D}\mathrel{\,\models\,}\sigma(\phi)}\quad\;\frac{\rule[3.76735pt]{0.0pt}{10.5486pt}\textstyle x\buildrel{\{\sigma\}\hskip 1.00006pt\alpha}\over{\hbox to26.67787pt{\rightarrowfill}}x^{\prime}}{\rule[-2.2604pt]{0.0pt}{10.5486pt}\textstyle\phi\mathbin{:\rightarrow}x\buildrel{\{\sigma\}\hskip 1.00006pt\alpha}\over{\hbox to26.67787pt{\rightarrowfill}}x^{\prime}}{\;\,\mathfrak{D}\mathrel{\,\models\,}\sigma(\phi)}\\ \frac{\rule[3.76735pt]{0.0pt}{10.5486pt}\textstyle x\mathrel{{}^{\{\sigma\}}\!{\downarrow}}}{\rule[-2.2604pt]{0.0pt}{10.5486pt}\textstyle{\mathsf{V}_{\sigma}}(x)\mathrel{{}^{\{\sigma^{\prime}\}}\!{\downarrow}}}\quad\;\frac{\rule[3.76735pt]{0.0pt}{10.5486pt}\textstyle x\buildrel{\{\sigma\}\hskip 1.00006pt\tau}\over{\hbox to25.26004pt{\rightarrowfill}}x^{\prime}}{\rule[-2.2604pt]{0.0pt}{10.5486pt}\textstyle{\mathsf{V}_{\sigma}}(x)\buildrel{\{\sigma^{\prime}\}\hskip 1.00006pt\tau}\over{\hbox to26.36003pt{\rightarrowfill}}{\mathsf{V}_{\sigma}}(x^{\prime})}\quad\;\frac{\rule[3.76735pt]{0.0pt}{10.5486pt}\textstyle x\buildrel{\{\sigma\}\hskip 1.00006pta}\over{\hbox to25.90009pt{\rightarrowfill}}x^{\prime}}{\rule[-2.2604pt]{0.0pt}{10.5486pt}\textstyle{\mathsf{V}_{\sigma}}(x)\buildrel{\{\sigma^{\prime}\}\hskip 1.00006pta}\over{\hbox to27.00008pt{\rightarrowfill}}{\mathsf{V}_{\sigma}}(x^{\prime})}\\ \frac{\rule[3.76735pt]{0.0pt}{10.5486pt}\textstyle x\buildrel{\{\sigma\}\hskip 1.00006pta(e_{1},\ldots,e_{n})}\over{\hbox to53.06976pt{\rightarrowfill}}x^{\prime}}{\rule[-2.2604pt]{0.0pt}{10.5486pt}\textstyle{\mathsf{V}_{\sigma}}(x)\buildrel{\{\sigma^{\prime}\}\hskip 1.00006pta(\sigma(e_{1}),\ldots,\sigma(e_{n}))}\over{\hbox to73.05846pt{\rightarrowfill}}{\mathsf{V}_{\sigma}}(x^{\prime})}\quad\;\frac{\rule[3.76735pt]{0.0pt}{10.5486pt}\textstyle x\buildrel{\{\sigma\}\hskip 1.00006pt[v\mathbin{{:}{=}}e]}\over{\hbox to40.38135pt{\rightarrowfill}}x^{\prime}}{\rule[-2.2604pt]{0.0pt}{10.5486pt}\textstyle{\mathsf{V}_{\sigma}}(x)\buildrel{\{\sigma^{\prime}\}\hskip 1.00006pt[v\mathbin{{:}{=}}\sigma(e)]}\over{\hbox to50.92569pt{\rightarrowfill}}{\mathsf{V}_{\sigma\{\sigma(e)/v\}}}(x^{\prime})}\\ \frac{\rule[3.76735pt]{0.0pt}{10.5486pt}\textstyle\langle t|E\rangle\mathrel{{}^{\{\sigma\}}\!{\downarrow}}}{\rule[-2.2604pt]{0.0pt}{10.5486pt}\textstyle\langle X|E\rangle\mathrel{{}^{\{\sigma\}}\!{\downarrow}}}{\;\,X\!\!=\!t\,\in\,E}\qquad\frac{\rule[3.76735pt]{0.0pt}{10.5486pt}\textstyle\langle t|E\rangle\buildrel{\{\sigma\}\hskip 1.00006pt\alpha}\over{\hbox to26.67787pt{\rightarrowfill}}x^{\prime}}{\rule[-2.2604pt]{0.0pt}{10.5486pt}\textstyle\langle X|E\rangle\buildrel{\{\sigma\}\hskip 1.00006pt\alpha}\over{\hbox to26.67787pt{\rightarrowfill}}x^{\prime}}{\;\,X\!\!=\!t\,\in\,E\vspace*{1ex}}\\ \hline\cr\end{array}

In this table, σ\sigma and σ\sigma^{\prime} stand for arbitrary evaluation maps from \mathcal{E}\!\mathcal{M},  α\alpha stands for an arbitrary action from 𝒜τ\mathcal{A}_{\tau},  a,ba,b, and cc stand for arbitrary actions from 𝖠\mathsf{A},  e,e1,e2,e,e_{1},e_{2},\ldots and e1,e2,e^{\prime}_{1},e^{\prime}_{2},\ldots stand for arbitrary terms from 𝒟\mathcal{D},  HH stands for an arbitrary subset of 𝒜\mathcal{A} or the set 𝒜τ\mathcal{A}_{\tau},  II stands for an arbitrary subset of 𝒜\mathcal{A},  ϕ\phi stands for an arbitrary term from 𝒞\mathcal{C},  vv stands for an arbitrary flexible variable from 𝒱\mathcal{V},  XX stands for an arbitrary variable from 𝒳\mathcal{X},  tt stands for an arbitrary ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I term of sort 𝐏\mathbf{P}, and EE stands for an arbitrary guarded linear recursive specification over ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I.

The rules in Table 5 have the form p1,,pncs\frac{\rule[3.39061pt]{0.0pt}{4.06874pt}\textstyle p_{1},\ldots,p_{n}}{\rule[-2.03436pt]{0.0pt}{6.78123pt}\textstyle\raisebox{2.32501pt}{$c$}}{\,s}, where ss is optional. They are to be read as “if p1p_{1} and …and pnp_{n} then cc, provided ss”. As usual, p1,,pnp_{1},\ldots,p_{n} are called the premises and cc is called the conclusion. A side condition ss, if present, serves to restrict the applicability of a rule. If a rule has no premises, then nothing is displayed above the horizontal bar.

Because the rules in Table 5 constitute an inductive definition, t{σ}αtt\buildrel{\{\sigma\}\hskip 0.90005pt\alpha}\over{\hbox to25.01009pt{\rightarrowfill}}t^{\prime} or t{σ}t\mathrel{{}^{\{\sigma\}}\!{\downarrow}} holds iff it can be inferred from these rules. For instance, for a,b,c𝖠a,b,c\in\mathsf{A}, v,v𝒱v,v^{\prime}\in\mathcal{V}, and σ\sigma\in\mathcal{E}\!\mathcal{M} such that σ(v)=σ(v)\sigma(v)=\sigma(v^{\prime}), we have that (v=v):(a+b)c{σ}aϵc(v=v^{\prime})\mathbin{:\rightarrow}(a\mathbin{+}b)\cdot c\buildrel{\{\sigma\}\hskip 0.90005pta}\over{\hbox to24.31007pt{\rightarrowfill}}\epsilon\cdot c can be inferred by applying the first rule, the third rule for +\mathbin{+}, the second rule for :\mathbin{:\rightarrow}, and the third rule for \cdot in that order.

Two processes are considered equal if they can simulate each other insofar as their observable potentials to make transitions and to terminate successfully are concerned, taking into account the assigments of data values to flexible variables under which the potentials are available. This can be dealt with by means of the notion of branching bisimulation equivalence introduced in [41] adapted to the conditionality of transitions in which the unobservable action τ\tau is performed.

An equivalence relation on the set 𝒜τ\mathcal{A}_{\tau} is needed. Two actions α,α𝒜τ\alpha,\alpha^{\prime}\in\mathcal{A}_{\tau} are data equivalent, written αα\alpha\simeq\alpha^{\prime}, iff one of the following holds:

  • there exists an a𝖠τa\in{\mathsf{A}_{\tau}} such that α=a\alpha=a and α=a\alpha^{\prime}=a;

  • for some n+n\in\mathbb{N}^{+}, there exist an a𝖠a\in\mathsf{A} and e1,,en,e1,,en𝒟e_{1},\dots,e_{n},e^{\prime}_{1},\dots,e^{\prime}_{n}\in\mathcal{D} such that 𝔇e1=e1\mathfrak{D}\mathrel{\,\models\,}e_{1}=e^{\prime}_{1}, …, 𝔇en=en\mathfrak{D}\mathrel{\,\models\,}e_{n}=e^{\prime}_{n}, α=a(e1,,en)\alpha=a(e_{1},\dots,e_{n}), and α=a(e1,,en)\alpha^{\prime}=a(e^{\prime}_{1},\dots,e^{\prime}_{n});

  • there exist a v𝒱v\in\mathcal{V} and e,e𝒟e,e^{\prime}\in\mathcal{D} such that 𝔇e=e\mathfrak{D}\mathrel{\,\models\,}e=e^{\prime}, α=[v:=e]\alpha=[v\mathbin{{:}{=}}e], and α=[v:=e]\alpha^{\prime}=[v\mathbin{{:}{=}}e^{\prime}].

We write [α][\alpha], where α𝒜τ\alpha\in\mathcal{A}_{\tau}, for the equivalence class of α\alpha with respect to \simeq.

For each σ\sigma\in\mathcal{E}\!\mathcal{M}, the binary relation {σ}\mathrel{\buildrel{\{\sigma\}}\over{\hbox to20.34993pt{\rightarrowfill}}\mkern-15.0mu\rightarrow} on 𝒫𝑟𝑒𝑐\mathcal{P}_{\mathit{rec}} defined as the reflexive transitive closure of {σ}τ\buildrel{\{\sigma\}\hskip 0.90005pt\tau}\over{\hbox to23.73404pt{\rightarrowfill}} is also needed.

Moreover, we write t({σ}α)tt\buildrel{(\{\sigma\}\hskip 0.90005pt\alpha)}\over{\hbox to29.91008pt{\rightarrowfill}}t^{\prime}, where σ\sigma\in\mathcal{E}\!\mathcal{M} and α𝒜τ\alpha\in\mathcal{A}_{\tau}, for t{σ}αtt\buildrel{\{\sigma\}\hskip 0.90005pt\alpha}\over{\hbox to25.01009pt{\rightarrowfill}}t^{\prime} or both α=τ\alpha=\tau and t=tt=t^{\prime}.

A branching bisimulation is a binary relation RR on 𝒫𝑟𝑒𝑐\mathcal{P}_{\mathit{rec}} such that, for all terms t1,t2𝒫𝑟𝑒𝑐t_{1},t_{2}\in\mathcal{P}_{\mathit{rec}} with (t1,t2)R(t_{1},t_{2})\in R, the following transfer conditions hold:

  • if t1{σ}αt1t_{1}\buildrel{\{\sigma\}\hskip 0.90005pt\alpha}\over{\hbox to25.01009pt{\rightarrowfill}}t_{1}^{\prime}, then there exist an α[α]\alpha^{\prime}\in[\alpha] and t2,t2𝒫𝑟𝑒𝑐t_{2}^{\prime},t_{2}^{*}\in\mathcal{P}_{\mathit{rec}} such that t2{σ}t2t_{2}\mathrel{\buildrel{\{\sigma\}}\over{\hbox to20.34993pt{\rightarrowfill}}\mkern-15.0mu\rightarrow}t_{2}^{*}, t2({σ}α)t2t_{2}^{*}\buildrel{(\{\sigma\}\hskip 0.90005pt\alpha^{\prime})}\over{\hbox to30.90007pt{\rightarrowfill}}t_{2}^{\prime}, (t1,t2)R(t_{1},t_{2}^{*})\in R, and (t1,t2)R(t_{1}^{\prime},t_{2}^{\prime})\in R;

  • if t2{σ}αt2t_{2}\buildrel{\{\sigma\}\hskip 0.90005pt\alpha}\over{\hbox to25.01009pt{\rightarrowfill}}t_{2}^{\prime}, then there exist an α[α]\alpha^{\prime}\in[\alpha] and t1,t1𝒫𝑟𝑒𝑐t_{1}^{\prime},t_{1}^{*}\in\mathcal{P}_{\mathit{rec}} such that t1{σ}t1t_{1}\mathrel{\buildrel{\{\sigma\}}\over{\hbox to20.34993pt{\rightarrowfill}}\mkern-15.0mu\rightarrow}t_{1}^{*}, t1({σ}α)t1t_{1}^{*}\buildrel{(\{\sigma\}\hskip 0.90005pt\alpha^{\prime})}\over{\hbox to30.90007pt{\rightarrowfill}}t_{1}^{\prime}, (t1,t2)R(t_{1}^{*},t_{2})\in R, and (t1,t2)R(t_{1}^{\prime},t_{2}^{\prime})\in R;

  • if t1{σ}t_{1}\mathrel{{}^{\{\sigma\}}\!{\downarrow}}, then there exists a t2𝒫𝑟𝑒𝑐t_{2}^{*}\in\mathcal{P}_{\mathit{rec}} such that t2{σ}t2t_{2}\mathrel{\buildrel{\{\sigma\}}\over{\hbox to20.34993pt{\rightarrowfill}}\mkern-15.0mu\rightarrow}t_{2}^{*}, t2{σ}t_{2}^{*}\mathrel{{}^{\{\sigma\}}\!{\downarrow}}, and (t1,t2)R(t_{1},t_{2}^{*})\in R;

  • if t2{σ}t_{2}\mathrel{{}^{\{\sigma\}}\!{\downarrow}}, then there exists a t1𝒫𝑟𝑒𝑐t_{1}^{*}\in\mathcal{P}_{\mathit{rec}} such that t1{σ}t1t_{1}\mathrel{\buildrel{\{\sigma\}}\over{\hbox to20.34993pt{\rightarrowfill}}\mkern-15.0mu\rightarrow}t_{1}^{*}, t1{σ}t_{1}^{*}\mathrel{{}^{\{\sigma\}}\!{\downarrow}}, and (t1,t2)R(t_{1}^{*},t_{2})\in R.

If RR is a branching bisimulation, then a pair (t1,t2)(t_{1},t_{2}) is said to satisfy the root condition in RR if the following conditions hold:

  • if t1{σ}αt1t_{1}\buildrel{\{\sigma\}\hskip 0.90005pt\alpha}\over{\hbox to25.01009pt{\rightarrowfill}}t_{1}^{\prime}, then there exist an α[α]\alpha^{\prime}\in[\alpha] and a t2𝒫𝑟𝑒𝑐t_{2}^{\prime}\in\mathcal{P}_{\mathit{rec}} such that t2{σ}αt2t_{2}\buildrel{\{\sigma\}\hskip 0.90005pt\alpha^{\prime}}\over{\hbox to26.00008pt{\rightarrowfill}}t_{2}^{\prime} and (t1,t2)R(t_{1}^{\prime},t_{2}^{\prime})\in R;

  • if t2{σ}αt2t_{2}\buildrel{\{\sigma\}\hskip 0.90005pt\alpha}\over{\hbox to25.01009pt{\rightarrowfill}}t_{2}^{\prime}, then there exist an α[α]\alpha^{\prime}\in[\alpha] and a t1𝒫𝑟𝑒𝑐t_{1}^{\prime}\in\mathcal{P}_{\mathit{rec}} such that t1{σ}αt1t_{1}\buildrel{\{\sigma\}\hskip 0.90005pt\alpha^{\prime}}\over{\hbox to26.00008pt{\rightarrowfill}}t_{1}^{\prime} and (t1,t2)R(t_{1}^{\prime},t_{2}^{\prime})\in R;

  • t1{σ}t_{1}\mathrel{{}^{\{\sigma\}}\!{\downarrow}} iff t2{σ}t_{2}\mathrel{{}^{\{\sigma\}}\!{\downarrow}}.

Two terms t1,t2𝒫𝑟𝑒𝑐t_{1},t_{2}\in\mathcal{P}_{\mathit{rec}} are rooted branching bisimulation equivalent, written t1¯𝗋𝖻t2t_{1}\mathrel{\mathchoice{\raisebox{1.1625pt}{$\displaystyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\textstyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptscriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}}t_{2}, if there exists a branching bisimulation RR such that (t1,t2)R(t_{1},t_{2})\in R and (t1,t2)(t_{1},t_{2}) satisfies the root condition in RR.

In Section 7, it is proved that ¯𝗋𝖻\mathrel{\mathchoice{\raisebox{1.1625pt}{$\displaystyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\textstyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptscriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}} is a congruence with respect to the operators of ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I+REC of which the result sort and at least one argument sort is 𝐏\mathbf{P}. Without the root condition, ¯𝗋𝖻\mathrel{\mathchoice{\raisebox{1.1625pt}{$\displaystyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\textstyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptscriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}} would not be a congruence with respect to the operator +\mathbin{+}. For example, it would be the case that τa¯𝗋𝖻a\tau\cdot a\mathrel{\mathchoice{\raisebox{1.1625pt}{$\displaystyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\textstyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptscriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}}a and not τa+b¯𝗋𝖻a+b\tau\cdot a\mathbin{+}b\mathrel{\mathchoice{\raisebox{1.1625pt}{$\displaystyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\textstyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptscriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}}a\mathbin{+}b.

Let RR be a branching bisimulation such that (t1,t2)R(t_{1},t_{2})\in R and the pair (t1,t2)(t_{1},t_{2}) satisfies the root condition in RR. Then we say that RR is a branching bisimulation witnessing t1¯𝗋𝖻t2t_{1}\mathrel{\mathchoice{\raisebox{1.1625pt}{$\displaystyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\textstyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptscriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}}t_{2}.

6 Interlude

In the preceding sections, two relatively uncommon choices have been made:

  • the choice to include the rather unusual evaluation operators, i.e. 𝖵σ{\mathsf{V}_{\sigma}} for each σ\sigma\in\mathcal{E}\!\mathcal{M}, in the operators of ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I+REC;

  • the choice for a structural operational semantics of ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I+REC with a transition relation \buildrel{\ell}\over{\hbox to9.37502pt{\rightarrowfill}} on 𝒫𝑟𝑒𝑐\mathcal{P}_{\mathit{rec}} for each ×𝒜τ\ell\in\mathcal{E}\!\mathcal{M}\times\mathcal{A}_{\tau}, while a transition relation \buildrel{\ell}\over{\hbox to9.37502pt{\rightarrowfill}} on 𝒫𝑟𝑒𝑐×\mathcal{P}_{\mathit{rec}}\times\mathcal{E}\!\mathcal{M} for each 𝒜τ\ell\in\mathcal{A}_{\tau} is arguably more common.

In this short section, the reasons for these choices are clarified.

The issues which influenced the above-mentioned choices most are:

  • the need for a variant of rooted branching bisimulation equivalence that is a congruence with respect to all operators of ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I+REC;

  • the need for a coarser equivalence in cases where parallel composition, left merge, and communication merge are not involved.

With the chosen kind of transition relations, the first need can be fulfilled with a simple and natural generalization of rooted branching bisimulation equivalence as originally introduced in [41], but with the more common kind of transition relations a less obvious variant of rooted branching bisimulation equivalence, a ‘stateless’ variant in the terminology of [32], has to be devised. As a consequence, with the chosen kind of transition relations, generalizations of existing proof techniques and proof ideas could be used in establishing the soundness and semi-completeness results presented in Section 7, whereas this would not be the case with the more common kind of transition relations.

The variant of rooted branching bisimulation equivalence referred to at the beginning of the previous paragraph is the equivalence ¯𝗋𝖻\mathrel{\mathchoice{\raisebox{1.1625pt}{$\displaystyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\textstyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptscriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}} introduced at the end of Section 5. In order to be a congruence with respect to parallel composition, left merge, and communication merge, ¯𝗋𝖻\mathrel{\mathchoice{\raisebox{1.1625pt}{$\displaystyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\textstyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptscriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}} identifies two terms from 𝒫𝑟𝑒𝑐\mathcal{P}_{\mathit{rec}} if the processes denoted by them can simulate each other even in the case where the data values assigned to flexible variables may change after each transition — through assignment actions performed by parallel processes. The second need mentioned above is the need for an equivalence that does not takes such changes into account in cases where parallel composition, left merge, and communication merge are not involved. Two terms t,t𝒫𝑟𝑒𝑐t,t^{\prime}\in\mathcal{P}_{\mathit{rec}} are equivalent according to this coarser equivalence iff 𝖵σ(t)¯𝗋𝖻𝖵σ(t){\mathsf{V}_{\sigma}}(t)\mathrel{\mathchoice{\raisebox{1.1625pt}{$\displaystyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\textstyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptscriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}}{\mathsf{V}_{\sigma}}(t^{\prime}) for all σ\sigma\in\mathcal{E}\!\mathcal{M}. This means that the coarser equivalence is covered in the semantics of ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I+REC by the choice to include the evaluation operators in the operators of ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I+REC.

We have that, for all t,t𝒫𝑟𝑒𝑐t,t^{\prime}\in\mathcal{P}_{\mathit{rec}} and σ\sigma\in\mathcal{E}\!\mathcal{M}, ACPϵτ-I+REC+CFAR𝖵σ(t)=𝖵σ(t)\textup{ACP}_{\epsilon}^{\tau}\textup{-I}\textup{+REC}\textup{+CFAR}\vdash{\mathsf{V}_{\sigma}}(t)={\mathsf{V}_{\sigma}}(t^{\prime}) iff 𝖵σ(t)¯𝗋𝖻𝖵σ(t){\mathsf{V}_{\sigma}}(t)\mathrel{\mathchoice{\raisebox{1.1625pt}{$\displaystyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\textstyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptscriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}}{\mathsf{V}_{\sigma}}(t^{\prime}) (see Corollary 1 below). So the axioms of ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I+REC+CFAR, which constitute an equational axiomatization of ¯𝗋𝖻\mathrel{\mathchoice{\raisebox{1.1625pt}{$\displaystyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\textstyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptscriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}}, are also adequate for equational verification of the coarser equivalence.

In [25], an extension of ACP with the empty process constant, the unary counterpart of the binary guarded command operator, and actions to change a data-state is presented. Evaluation maps can be taken as special cases of data-states. For similar reasons as in the case of ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I+REC, there is a need for two equivalences. This is not dealt with by the inclusion of evaluation operators. Instead, in equational reasoning, certain axioms may only be applied to terms in which the parallel composition, left merge, and communication merge operators do not occur.

In an appendix, a structural operational semantics of ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I+REC is presented which is reminiscent of a symbolic operational semantics in the sense of [28]. It is a structural operational semantics with a transition relation \buildrel{\ell}\over{\hbox to9.37502pt{\rightarrowfill}} on 𝒫𝑟𝑒𝑐\mathcal{P}_{\mathit{rec}} for each 𝒞𝑠𝑎𝑡×𝒜τ\ell\in\mathcal{C}^{\mathit{sat}}\times\mathcal{A}_{\tau}, where 𝒞𝑠𝑎𝑡\mathcal{C}^{\mathit{sat}} is the set of all terms ϕ𝒞\phi\in\mathcal{C} for which 𝔇⊧̸ϕ𝖿\mathfrak{D}\mathrel{\,\not\models\,}\phi\mathrel{\Leftrightarrow}{\mathsf{f}}. In my opinion, this structural operational semantics is intuitively more appealing than the one presented in Section 5, but the definition of the variant of rooted branching bisimulation equivalence based on it is quite unintelligible.

7 Soundness and Completeness

In this section, soundness and (semi-)completeness results with respect to branching bisimulation equivalence for the axioms of ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I+REC+CFAR are presented.

Firstly, rooted branching bisimulation equivalence is an equivalence relation indeed.

Proposition 1 (Equivalence)

The relation ¯𝗋𝖻\mathrel{\mathchoice{\raisebox{1.1625pt}{$\displaystyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\textstyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptscriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}} is an equivalence relation.

Proof

It must be shown that ¯𝗋𝖻\mathrel{\mathchoice{\raisebox{1.1625pt}{$\displaystyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\textstyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptscriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}} is reflexive, symmetric, and transitive.

Let t𝒫𝑟𝑒𝑐t\in\mathcal{P}_{\mathit{rec}}. Then the identity relation II on 𝒫𝑟𝑒𝑐\mathcal{P}_{\mathit{rec}} is a branching bisimulation such that (t,t)I(t,t)\in I and (t,t)(t,t) satisfies the root condition in II. Hence, t¯𝗋𝖻tt\mathrel{\mathchoice{\raisebox{1.1625pt}{$\displaystyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\textstyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptscriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}}t, which proves that ¯𝗋𝖻\mathrel{\mathchoice{\raisebox{1.1625pt}{$\displaystyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\textstyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptscriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}} is reflexive.

Let t1,t2𝒫𝑟𝑒𝑐t_{1},t_{2}\in\mathcal{P}_{\mathit{rec}} be such that t1¯𝗋𝖻t2t_{1}\mathrel{\mathchoice{\raisebox{1.1625pt}{$\displaystyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\textstyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptscriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}}t_{2}, and let RR be a branching bisimulation such that (t1,t2)R(t_{1},t_{2})\in R and (t1,t2)(t_{1},t_{2}) satisfies the root condition in RR. Then R1R^{-1} is a branching bisimulation such that (t2,t1)R1(t_{2},t_{1})\in R^{-1} and (t2,t1)(t_{2},t_{1}) satisfies the root condition in R1R^{-1}. Hence, t2¯𝗋𝖻t1t_{2}\mathrel{\mathchoice{\raisebox{1.1625pt}{$\displaystyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\textstyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptscriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}}t_{1}, which proves that ¯𝗋𝖻\mathrel{\mathchoice{\raisebox{1.1625pt}{$\displaystyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\textstyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptscriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}} is symmetric.

Let t1,t2,t3𝒫𝑟𝑒𝑐t_{1},t_{2},t_{3}\in\mathcal{P}_{\mathit{rec}} be such that t1¯𝗋𝖻t2t_{1}\mathrel{\mathchoice{\raisebox{1.1625pt}{$\displaystyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\textstyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptscriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}}t_{2} and t2¯𝗋𝖻t3t_{2}\mathrel{\mathchoice{\raisebox{1.1625pt}{$\displaystyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\textstyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptscriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}}t_{3}, let RR be a branching bisimulation such that (t1,t2)R(t_{1},t_{2})\in R and (t1,t2)(t_{1},t_{2}) satisfies the root condition in RR, and let SS be a branching bisimulation such that (t2,t3)S(t_{2},t_{3})\in S and (t2,t3)(t_{2},t_{3}) satisfies the root condition in SS. Then RSR\circ S is a branching bisimulation such that (t1,t3)RS(t_{1},t_{3})\in R\circ S and (t1,t3)(t_{1},t_{3}) satisfies the root condition in RSR\circ S.777We write RSR\circ S for the composition of RR with SS. That RSR\circ S is a branching bisimulation is proved in the same way as Proposition 7 in [4]. Hence, t1¯𝗋𝖻t3t_{1}\mathrel{\mathchoice{\raisebox{1.1625pt}{$\displaystyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\textstyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptscriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}}t_{3}, which proves that ¯𝗋𝖻\mathrel{\mathchoice{\raisebox{1.1625pt}{$\displaystyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\textstyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptscriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}} is transitive. ∎

Moreover, rooted branching bisimulation equivalence is a congruence with respect to the operators of ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I+REC of which the result sort and at least one argument sort is 𝐏\mathbf{P}.

Proposition 2 (Congruence)

For all terms t1,t1,t2,t2𝒫𝑟𝑒𝑐t_{1},t_{1}^{\prime},t_{2},t_{2}^{\prime}\in\mathcal{P}_{\mathit{rec}} and all terms ϕ𝒞\phi\in\mathcal{C}, t1¯𝗋𝖻t2t_{1}\mathrel{\mathchoice{\raisebox{1.1625pt}{$\displaystyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\textstyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptscriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}}t_{2} and t1¯𝗋𝖻t2t_{1}^{\prime}\mathrel{\mathchoice{\raisebox{1.1625pt}{$\displaystyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\textstyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptscriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}}t_{2}^{\prime} only if t1+t1¯𝗋𝖻t2+t2t_{1}\mathbin{+}t_{1}^{\prime}\mathrel{\mathchoice{\raisebox{1.1625pt}{$\displaystyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\textstyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptscriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}}t_{2}\mathbin{+}t_{2}^{\prime}, t1t1¯𝗋𝖻t2t2t_{1}\cdot t_{1}^{\prime}\mathrel{\mathchoice{\raisebox{1.1625pt}{$\displaystyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\textstyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptscriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}}t_{2}\cdot t_{2}^{\prime}, t1t1¯𝗋𝖻t2t2t_{1}\mathbin{\parallel}t_{1}^{\prime}\mathrel{\mathchoice{\raisebox{1.1625pt}{$\displaystyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\textstyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptscriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}}t_{2}\mathbin{\parallel}t_{2}^{\prime}, t1⌊⌊t1¯𝗋𝖻t2⌊⌊t2t_{1}\mathbin{\lfloor\lfloor}t_{1}^{\prime}\mathrel{\mathchoice{\raisebox{1.1625pt}{$\displaystyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\textstyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptscriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}}t_{2}\mathbin{\lfloor\lfloor}t_{2}^{\prime}, t1t1¯𝗋𝖻t2t2t_{1}\mathbin{\mid}t_{1}^{\prime}\mathrel{\mathchoice{\raisebox{1.1625pt}{$\displaystyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\textstyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptscriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}}t_{2}\mathbin{\mid}t_{2}^{\prime}, H(t1)¯𝗋𝖻H(t2){\partial_{H}}(t_{1})\mathrel{\mathchoice{\raisebox{1.1625pt}{$\displaystyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\textstyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptscriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}}{\partial_{H}}(t_{2}), τI(t1)¯𝗋𝖻τI(t2){\tau_{I}}(t_{1})\mathrel{\mathchoice{\raisebox{1.1625pt}{$\displaystyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\textstyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptscriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}}{\tau_{I}}(t_{2}), ϕ:t1¯𝗋𝖻ϕ:t2\phi\mathbin{:\rightarrow}t_{1}\mathrel{\mathchoice{\raisebox{1.1625pt}{$\displaystyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\textstyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptscriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}}\phi\mathbin{:\rightarrow}t_{2}, and 𝖵σ(t1)¯𝗋𝖻𝖵σ(t2){\mathsf{V}_{\sigma}}(t_{1})\mathrel{\mathchoice{\raisebox{1.1625pt}{$\displaystyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\textstyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptscriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}}{\mathsf{V}_{\sigma}}(t_{2}).

Proof

A detailed proof would contain an adapted copy of at least ten pages from [23]. Therefore, only an outline of the proof is given here. In order to fully understand the outline, the above-mentioned paper must be consulted.

In [23], an SOS rule format is presented which guarantees that the ‘standard’ version of branching bisimulation equivalence is a congruence. The format concerned is called the RBB safe format. Below, this format is adapted in order to deal with a set of transition labels that contains a special element {σ}τ\{\sigma\}\hskip 0.90005pt\tau for each σ\sigma\in\mathcal{E}\!\mathcal{M} instead of a single special element τ\tau and with a slightly different version of branching bisimulation equivalence. A definition of a patience rule is needed that differs from the one given in [23]: a patience rule for the iith argument of an nn-ary operator ff is a path rule of the form

xi{σ}τyf(x1,,xi1,xi,xi+1,,xn){σ}τf(x1,,xi1,y,xi+1,,xn),\begin{array}[]{@{}l@{}}\frac{\rule[3.39061pt]{0.0pt}{4.06874pt}\textstyle x_{i}\buildrel{\{\sigma\}\hskip 0.90005pt\tau}\over{\hbox to23.73404pt{\rightarrowfill}}y}{\rule[-2.03436pt]{0.0pt}{6.78123pt}\textstyle f(x_{1},\ldots,x_{i-1},x_{i},x_{i+1},\ldots,x_{n})\buildrel{\{\sigma\}\hskip 0.90005pt\tau}\over{\hbox to23.73404pt{\rightarrowfill}}f(x_{1},\ldots,x_{i-1},y,x_{i+1},\ldots,x_{n})}\;,\end{array}

where σ\sigma\in\mathcal{E}\!\mathcal{M}. The RBB safe format is adapted by making the following changes to the definition of the RBB safe format as given in [23]:

  • in the two syntactic restrictions of the RBB safe format that concern wild arguments, the phrase “a patience rule” is changed to “a patience rule for each σ\sigma\in\mathcal{E}\!\mathcal{M}”;

  • in the second syntactic restrictions of the RBB safe format that concern wild arguments, the phrase “the relation τ\buildrel{\tau}\over{\hbox to9.50407pt{\rightarrowfill}}” is changed to “the relation {σ}τ\buildrel{\{\sigma\}\hskip 0.90005pt\tau}\over{\hbox to23.73404pt{\rightarrowfill}} for some σ\sigma\in\mathcal{E}\!\mathcal{M}”.

It is straightforward to check that the proof of Theorem 3.4 from [23] goes through for the adapted RBB safe format and the version of branching bisimulation equivalence considered in this paper. This means that the proposition holds if the rules in Table 5 are in the adapted RBB safe format with respect to some tame/wild labeling of arguments of operators. It is easy to verify that this is the case with the following tame/wild labeling: both arguments of +\mathbin{+} are tame, the first argument of \cdot is wild and the second argument of \cdot is tame, both arguments of \mathbin{\parallel} are wild, both arguments of ⌊⌊\mathbin{\lfloor\lfloor} and \mathbin{\mid} are tame, the argument of H{\partial_{H}} and τI{\tau_{I}} is wild, the second argument of :\mathbin{:\rightarrow} is tame, and the argument of 𝖵σ{\mathsf{V}_{\sigma}} is wild. ∎

The tame/wild labeling given at the end of the proof of Proposition 2 is provided so that the reader who consults [23] can easily check that the rules in Table 5 are in the adapted RBB safe format.

Below, the soundness of the axiom system of ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I+REC+CFAR with respect to ¯𝗋𝖻{\mathrel{\mathchoice{\raisebox{1.1625pt}{$\displaystyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\textstyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptscriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}}} for equations between terms from 𝒫𝑟𝑒𝑐\mathcal{P}_{\mathit{rec}} will be established.

The following terminology will be used in the soundness proof: (a) an equation 𝑒𝑞\mathit{eq} of ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I+REC terms of sort 𝐏\mathbf{P} is said to be valid with respect to ¯𝗋𝖻{\mathrel{\mathchoice{\raisebox{1.1625pt}{$\displaystyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\textstyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptscriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}}} if, for each closed substitution instance t=tt=t^{\prime} of 𝑒𝑞\mathit{eq}, t¯𝗋𝖻tt\mathrel{\mathchoice{\raisebox{1.1625pt}{$\displaystyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\textstyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptscriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}}t^{\prime} and (b) a conditional equation 𝑐𝑒𝑞\mathit{ceq} of ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I+REC terms of sort 𝐏\mathbf{P} is said to be valid with respect to ¯𝗋𝖻{\mathrel{\mathchoice{\raisebox{1.1625pt}{$\displaystyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\textstyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptscriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}}} if, for each closed substitution instance {ti=tiiI}t=t\{t_{i}=t^{\prime}_{i}\mathrel{\mid}i\in I\}\mathrel{\Rightarrow}t=t^{\prime} of 𝑐𝑒𝑞\mathit{ceq}, t¯𝗋𝖻tt\mathrel{\mathchoice{\raisebox{1.1625pt}{$\displaystyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\textstyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptscriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}}t^{\prime} if ti¯𝗋𝖻tit_{i}\mathrel{\mathchoice{\raisebox{1.1625pt}{$\displaystyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\textstyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptscriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}}t^{\prime}_{i} for each iIi\in I.

Theorem 7.1 (Soundness)

For all terms t,t𝒫𝑟𝑒𝑐t,t^{\prime}\in\mathcal{P}_{\mathit{rec}}, t=tt=t^{\prime} is derivable from the axioms of ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I+REC+CFAR only if t¯𝗋𝖻tt\mathrel{\mathchoice{\raisebox{1.1625pt}{$\displaystyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\textstyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptscriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}}t^{\prime}.

Proof

Because ¯𝗋𝖻{\mathrel{\mathchoice{\raisebox{1.1625pt}{$\displaystyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\textstyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptscriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}}} is a congruence with respect to all operators from the signature of ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I+REC+CFAR, only the validity of each axiom of ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I+REC+CFAR has to be proved.

Below, we write 𝑐𝑠𝑖(𝑒𝑞)\mathit{csi}(\mathit{eq}), where 𝑒𝑞\mathit{eq} is an equation of ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I+REC terms of sort 𝐏\mathbf{P}, for the set of all closed substitution instances of 𝑒𝑞\mathit{eq}. Moreover, we write R𝑖𝑑R_{\mathit{id}} for the identity relation on 𝒫𝑟𝑒𝑐\mathcal{P}_{\mathit{rec}}.

For each axiom 𝑎𝑥\mathit{ax} of ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I+REC+CFAR, a rooted branching bisimulation R𝑎𝑥R_{\mathit{ax}} witnessing the validity of 𝑎𝑥\mathit{ax} can be constructed as follows:

  • if 𝑎𝑥\mathit{ax} is one of the axioms A7, CM2E, CM5E, CM6E, GC2 or an instance of one of the axiom schemas D0, D2, T0, GC3, V0, CM7Db–CM7Df:

    R𝑎𝑥={(t,t)t=t𝑐𝑠𝑖(𝑎𝑥)};\begin{array}[]{@{}l@{}}R_{\mathit{ax}}=\{(t,t^{\prime})\mathrel{\mid}t=t^{\prime}\in\mathit{csi}(\mathit{ax})\}\;;\end{array}
  • if 𝑎𝑥\mathit{ax} is one of the axioms A1–A6, A8, A9, CM4, CM8–CM9, GC1 or an instance of one of the axiom schemas CM3, CM7, D1, D3, D4, T1–T4, GC4–GC12, V1–V6, CM7Da, RDP:

    R𝑎𝑥={(t,t)t=t𝑐𝑠𝑖(𝑎𝑥)}R𝑖𝑑;\begin{array}[]{@{}l@{}}R_{\mathit{ax}}=\{(t,t^{\prime})\mathrel{\mid}t=t^{\prime}\in\mathit{csi}(\mathit{ax})\}\cup R_{\mathit{id}}\;;\end{array}
  • if 𝑎𝑥\mathit{ax} is CM1E:

    R𝑎𝑥={(t,t)t=t𝑐𝑠𝑖(𝑎𝑥)}{(t,t)t=t𝑐𝑠𝑖(xy=yx)}R𝑖𝑑;\begin{array}[]{@{}l@{}}R_{\mathit{ax}}=\{(t,t^{\prime})\mathrel{\mid}t=t^{\prime}\in\mathit{csi}(\mathit{ax})\}\\ \phantom{R_{\mathit{ax}}={}}\,{}\cup\{(t,t^{\prime})\mathrel{\mid}t=t^{\prime}\in\mathit{csi}(x\mathbin{\parallel}y=y\mathbin{\parallel}x)\}\cup R_{\mathit{id}}\;;\end{array}
  • if 𝑎𝑥\mathit{ax} is an instance of BE:

    R𝑎𝑥={(t,t)t=t𝑐𝑠𝑖(𝑎𝑥)}{(t,t)t=t𝑐𝑠𝑖(τ(x+y)+x=x+y)}R𝑖𝑑;\begin{array}[]{@{}l@{}}R_{\mathit{ax}}=\{(t,t^{\prime})\mathrel{\mid}t=t^{\prime}\in\mathit{csi}(\mathit{ax})\}\\ \phantom{R_{\mathit{ax}}={}}\,{}\cup\{(t,t^{\prime})\mathrel{\mid}t=t^{\prime}\in\mathit{csi}(\tau\cdot(x\mathbin{+}y)\mathbin{+}x=x\mathbin{+}y)\}\cup R_{\mathit{id}}\;;\end{array}
  • if 𝑎𝑥\mathit{ax} is an instance of BED: similar;

  • if 𝑎𝑥\mathit{ax} is an instance ττI(X|E)=ττI(l=1ntl|E)\tau\cdot{\tau_{I}}(\langle X|E\rangle)=\tau\cdot{\tau_{I}}(\sum_{l=1}^{n}\langle t_{l}|E\rangle) of CFAR:

    R𝑎𝑥={(ττI(X|E),ττI(l=1ntl|E))}{(τI(X|E),τI(l=1ntl|E))XC}R𝑖𝑑,\begin{array}[]{@{}l@{}}R_{\mathit{ax}}=\{(\tau\cdot{\tau_{I}}(\langle X|E\rangle),\tau\cdot{\tau_{I}}(\sum_{l=1}^{n}\langle t_{l}|E\rangle))\}\\ \phantom{R_{\mathit{ax}}={}}\,{}\cup\{({\tau_{I}}(\langle X^{\prime}|E\rangle),{\tau_{I}}(\sum_{l=1}^{n}\langle t_{l}|E\rangle))\mathrel{\mid}X^{\prime}\in C\}\cup R_{\mathit{id}}\;,\end{array}

    where CC is the finite conservative cluster for II in EE such that XCX\in C and 𝑒𝑥𝑖𝑡𝑠I,E(C)={t1,,tn}\mathit{exits}_{I,E}(C)=\{t_{1},\ldots,t_{n}\};

  • if 𝑎𝑥\mathit{ax} is an instance {Xi=tiiI}Xj=Xj|{Xi=tiiI}\{X_{i}=t_{i}\mathrel{\mid}i\in I\}\mathrel{\Rightarrow}X_{j}=\langle X_{j}|\{X_{i}=t_{i}\mathrel{\mid}i\in I\}\rangle (jIj\in I) of RSP:

    R𝑎𝑥={(θ(Xj),Xj|{Xi=tiiI})jIθΘiIθ(Xi)¯𝗋𝖻θ(ti)}R𝑖𝑑,\begin{array}[]{@{}l@{}}R_{\mathit{ax}}=\{(\theta(X_{j}),\langle X_{j}|\{X_{i}=t_{i}\mathrel{\mid}i\in I\}\rangle)\mathrel{\mid}\\ \phantom{R_{\mathit{ax}}={}\{}\,j\in I\land\theta\in\Theta\land\bigwedge_{i\in I}\theta(X_{i})\mathrel{\mathchoice{\raisebox{1.1625pt}{$\displaystyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\textstyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptscriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}}\theta(t_{i})\}\cup R_{\mathit{id}}\;,\end{array}

    where Θ\Theta is the set of all functions from 𝒳\mathcal{X} to 𝒫𝑟𝑒𝑐\mathcal{P}_{\mathit{rec}} and θ(t)\theta(t), where θΘ\theta\in\Theta and t𝒫𝑟𝑒𝑐t\in\mathcal{P}_{\mathit{rec}}, stands for tt with, for all X𝒳X\in\mathcal{X}, all occurrences of XX replaced by θ(X)\theta(X).

For each equational axiom 𝑎𝑥\mathit{ax} of ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I+REC+CFAR, it is straightforward to check that the constructed relation R𝑎𝑥R_{\mathit{ax}} is a branching bisimulation witnessing, for each closed substitution instance t=tt=t^{\prime} of 𝑎𝑥\mathit{ax}, t¯𝗋𝖻tt\mathrel{\mathchoice{\raisebox{1.1625pt}{$\displaystyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\textstyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptscriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}}t^{\prime}. For each conditional equational axiom 𝑎𝑥\mathit{ax} of ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I+REC+CFAR, i.e. for each instance of RSP, it is straightforward to check that the constructed relation R𝑎𝑥R_{\mathit{ax}} is a branching bisimulation witnessing, for each closed substitution instance {ti=tiiI}t=t\{t_{i}=t^{\prime}_{i}\mathrel{\mid}i\in I\}\mathrel{\Rightarrow}t=t^{\prime} of 𝑎𝑥\mathit{ax}, t¯𝗋𝖻tt\mathrel{\mathchoice{\raisebox{1.1625pt}{$\displaystyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\textstyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptscriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}}t^{\prime} if ti¯𝗋𝖻tit_{i}\mathrel{\mathchoice{\raisebox{1.1625pt}{$\displaystyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\textstyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptscriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}}t^{\prime}_{i} for each iIi\in I. ∎

The axioms of ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I+REC+CFAR are incomplete with respect to ¯𝗋𝖻\mathrel{\mathchoice{\raisebox{1.1625pt}{$\displaystyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\textstyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptscriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}} for equations between terms from 𝒫𝑟𝑒𝑐\mathcal{P}_{\mathit{rec}} and there is no straightforward way to rectify this. Below two semi-completeness results are presented. The next two lemmas are used in the proofs of those results.

A term t𝒫𝑟𝑒𝑐t\in\mathcal{P}_{\mathit{rec}} is called abstraction-free if no abstraction operator occurs in tt. A term t𝒫𝑟𝑒𝑐t\in\mathcal{P}_{\mathit{rec}} is called bool-conditional if, for each ϕ𝒞\phi\in\mathcal{C} that occurs in tt, 𝔇ϕ𝗍\mathfrak{D}\mathrel{\,\models\,}\phi\mathrel{\Leftrightarrow}{\mathsf{t}} or 𝔇ϕ𝖿\mathfrak{D}\mathrel{\,\models\,}\phi\mathrel{\Leftrightarrow}{\mathsf{f}}.

Lemma 1

For all abstraction-free t𝒫𝑟𝑒𝑐t\in\mathcal{P}_{\mathit{rec}}, there exists a guarded linear recursive specification EE and Xvars(E)X\in\mathrm{vars}(E) such that ACPϵτ-I+RECt=X|E\textup{ACP}_{\epsilon}^{\tau}\textup{-I}\textup{+REC}\vdash\linebreak[2]t=\langle X|E\rangle.

Proof

This is easily proved by structural induction on tt. The proof involves constructions of guarded linear recursive specifications from guarded linear recursive specifications for the operators of ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I other than the abstraction operators. For the greater part, the constructions are reminiscent of operations on process graphs defined in Sections 2.7 and 4.5.5 from [3]. ∎

Lemma 2

For all bool-conditional t𝒫𝑟𝑒𝑐t\in\mathcal{P}_{\mathit{rec}}, there exists a guarded linear recursive specification EE and Xvars(E)X\in\mathrm{vars}(E) such that ACPϵτ-I+REC+CFARt=X|E\textup{ACP}_{\epsilon}^{\tau}\textup{-I}\textup{+REC}\textup{+CFAR}\vdash\mbox{$t=\langle X|E\rangle$}.

Proof

This is also proved by structural induction on tt. The cases other than the case where tt is of the form τI(t){\tau_{I}}(t^{\prime}) are as in the proof of Lemma 1. The case where tt is of the form τI(t){\tau_{I}}(t^{\prime}) is the difficult one. It is proved in the same way as it is done for ACPτ\textup{ACP}^{\tau}+REC+CFAR in the proof of Theorem 5.6.2 from [22]. ∎

The difficult case of the proof of Lemma 2 is the only case in which an application of CFAR is involved.

The following two theorems are the semi-completeness results referred to above.

Theorem 7.2 (Semi-completeness I)

For all abstraction-free t,t𝒫𝑟𝑒𝑐t,t^{\prime}\in\mathcal{P}_{\mathit{rec}}, ACPϵτ-I+RECt=t\textup{ACP}_{\epsilon}^{\tau}\textup{-I}\textup{+REC}\vdash\mbox{$t=t^{\prime}$} if t¯𝗋𝖻tt\mathrel{\mathchoice{\raisebox{1.1625pt}{$\displaystyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\textstyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptscriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}}t^{\prime}.

Proof

Because of Lemma 1, Theorem 7.1, and Proposition 1, it suffices to prove that, for all guarded linear recursive specifications EE and EE^{\prime} with Xvars(E)X\in\mathrm{vars}(E) and Xvars(E)X^{\prime}\in\mathrm{vars}(E^{\prime}), ACPϵτ-I+RECX|E=X|E\textup{ACP}_{\epsilon}^{\tau}\textup{-I}\textup{+REC}\vdash\langle X|E\rangle=\langle X^{\prime}|E^{\prime}\rangle if X|E¯𝗋𝖻X|E\langle X|E\rangle\mathrel{\mathchoice{\raisebox{1.1625pt}{$\displaystyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\textstyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptscriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}}\langle X^{\prime}|E^{\prime}\rangle. This is proved in the same way as it is done for ACPτ\textup{ACP}^{\tau}+REC in the proof of Theorem 5.3.2 from [22]. ∎

Theorem 7.3 (Semi-completeness II)

For all bool-conditional t,t𝒫𝑟𝑒𝑐t,t^{\prime}\in\mathcal{P}_{\mathit{rec}}, ACPϵτ-I+REC+CFARt=t\textup{ACP}_{\epsilon}^{\tau}\textup{-I}\textup{+REC}\textup{+CFAR}\vdash\mbox{$t=t^{\prime}$} if t¯𝗋𝖻tt\mathrel{\mathchoice{\raisebox{1.1625pt}{$\displaystyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\textstyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptscriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}}t^{\prime}.

Proof

Because of Lemma 2, Theorem 7.1, and Proposition 1, it suffices to prove that, for all guarded linear recursive specifications EE and EE^{\prime} with Xvars(E)X\in\mathrm{vars}(E) and Xvars(E)X^{\prime}\in\mathrm{vars}(E^{\prime}), ACPϵτ-I+REC+CFARX|E=X|E\textup{ACP}_{\epsilon}^{\tau}\textup{-I}\textup{+REC}\textup{+CFAR}\vdash\langle X|E\rangle=\langle X^{\prime}|E^{\prime}\rangle if X|E¯𝗋𝖻X|E\langle X|E\rangle\mathrel{\mathchoice{\raisebox{1.1625pt}{$\displaystyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\textstyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptscriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}}\nolinebreak\langle X^{\prime}|E^{\prime}\rangle. This is proved in the same way as it is done for ACPτ\textup{ACP}^{\tau}+REC in the proof of Theorem 5.3.2 from [22]. ∎

It is due to sufficiently similar shapes of linear ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I terms and linear ACPτ\textup{ACP}^{\tau} terms that parts of the proof of Theorems 7.2 and 7.3 go in the same way as parts of proofs from [22]. It needs mentioning here that, the body of the proof of Theorem 5.3.2 from [22] is restricted to constants X|E\langle X|E\rangle where EE does not contain equations Y=τ++τY=\tau\mathbin{+}\ldots\mathbin{+}\tau with YXY\not\equiv X. The corresponding part of the proof of Theorems 7.2 and 7.3 is likewise restricted to constants X|E\langle X|E\rangle where EE does not contain equations Y=ϕ1:τ++ϕn:τY=\phi_{1}\mathbin{:\rightarrow}\tau\mathbin{+}\ldots\mathbin{+}\phi_{n}\mathbin{:\rightarrow}\tau with YXY\not\equiv X. This is not because such an equation can be eliminated, but because it can be replaced by Y=ϕ1ϕn:ϵY=\phi_{1}\lor\ldots\lor\phi_{n}\mathbin{:\rightarrow}\epsilon.

The following is a corollary of Theorems 7.1 and 7.3.

Corollary 1

For all t,t𝒫𝑟𝑒𝑐t,t^{\prime}\in\mathcal{P}_{\mathit{rec}}, for all σ\sigma\in\mathcal{E}\!\mathcal{M}, ACPϵτ-I+REC+CFAR𝖵σ(t)=𝖵σ(t)\textup{ACP}_{\epsilon}^{\tau}\textup{-I}\textup{+REC}\textup{+CFAR}\vdash{\mathsf{V}_{\sigma}}(t)={\mathsf{V}_{\sigma}}(t^{\prime}) iff 𝖵σ(t)¯𝗋𝖻𝖵σ(t){\mathsf{V}_{\sigma}}(t)\mathrel{\mathchoice{\raisebox{1.1625pt}{$\displaystyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\textstyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptscriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}}{\mathsf{V}_{\sigma}}(t^{\prime}).

8 Information-Flow Security

In this section, it will be explained how ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I can be used for information-flow security analysis of the kind that is concerned with the leakage of confidential data. However, first, a general idea is given of what information-flow security is about and what results have been produced by research on this subject.

Consider a program whose variables are partitioned into high-security variables and low-security variables. High-security variables are considered to contain confidential data and low-security variables are considered to contain non-confidential data. The information flow in the program is called secure if information derivable from data contained in the high-security variables cannot be inferred from data contained in the low-security variables. Secure information flow means that no confidential data is leaked. A well-known program property that guarantees secure information flow is non-interference. In the case where the program is a deterministic sequential program, non-interference is the property that the data initially contained in high security variables has no effect on the data finally contained in low security variables.

Theoretical work on information-flow security is already done since the 1970s (see e.g. [5, 17, 18, 14, 15]). A great part of the work done until now has been done in a programming-language setting. This work has among other things led to security-type systems for programming languages. The languages concerned vary from languages supporting sequential programming to languages supporting concurrent programming and from languages for programming transformational systems to languages for programming reactive systems (see e.g. [42, 40, 12, 34, 10]).

However, work on information-flow security has also been done in a process-algebra setting. In such a setting, the information flow in a process is generally called secure if information derivable from confidential actions cannot be inferred from non-confidential actions (see e.g. [20, 36, 11, 31]). So, in a process-algebra setting, secure information flow usually means that no confidential action is revealed. Moreover, in such a setting, non-interference is the property that the confidential actions have no effect on the non-confidential actions. Recently, work done on information-flow security in a process-algebra setting occasionally deals with the data-oriented notion of secure information flow, but on such occasions program variables are always mimicked by processes (see e.g. [21, 29]). ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I obviates the need to mimic program variables.

In the rest of this section, the interest is in processes that are carried out by systems that have a state comprising a number of data-containing components whose content can be looked up and changed. Moreover, the attention is focussed on processes, not necessarily arising from the execution of a program, in which (a) confidential and non-confidential data contained in the state components of the system in question are looked up and changed and (b) an ongoing interaction with the environment of the system in question is maintained where data are communicated in either direction. In the terminology of ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I, the state components are called flexible variables. From now on, processes of the kind described above are referred to as processes of the type of interest. The processes that are carried out by many contemporary systems are covered by the processes of the type of interest.

The point of view is taken that the information flow in a process of the type of interest is secure if information derivable from the confidential data contained in state components cannot be inferred from its interaction with the environment. A process property that guarantees secure information flow in this sense is the property that the confidential data contained in state components has no effect on the interaction with the environment. This property, which will be made more precise below, is called the DNII (Data Non-Interference with Interactions) property. For a process with this property, differences in the confidential data contained in state components cannot be observed in (a) what remains of the process in the case where only the actions that are performed to interact with the environment are visible and (b) consequently in the data communicated with the environment.

For each closed ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I+REC term PP of sort 𝐏\mathbf{P} that denotes a process of the type of interest, it is assumed that the following has been given:

  • a set 𝐿𝑜𝑤P𝒱\mathit{Low}^{P}\subseteq\mathcal{V} of low-security flexible variables of PP;

  • a set 𝐸𝑥𝑡P𝖠n+{a(e1,,en)a𝖠e1,,en𝔻}\mathit{Ext}^{P}\subseteq\mathsf{A}\cup\bigcup_{n\in\mathbb{N}^{+}}\{a(e_{1},\dots,e_{n})\mathrel{\mid}a\in\mathsf{A}\land e_{1},\dots,e_{n}\in\mathbb{D}\} of external actions of PP.

For each closed ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I+REC term PP of sort 𝐏\mathbf{P} that denotes a process of the type of interest, we define the following sets:

𝐻𝑖𝑔ℎP={v𝒱Pv𝐿𝑜𝑤P},𝐼𝑛𝑡P={α𝒜Pα𝐸𝑥𝑡P},\begin{array}[]{@{}l@{}}\begin{array}[t]{@{}l@{\;}c@{\;}l@{}l@{}}\mathit{High}^{P}&=&\{v\in\mathcal{V}^{P}\mathrel{\mid}v\notin\mathit{Low}^{P}\}\;,\\ \mathit{Int}^{P}&=&\{\alpha\in\mathcal{A}^{P}\mathrel{\mid}\alpha\notin\mathit{Ext}^{P}\}\;,\end{array}\end{array}

where

𝒱P={v𝒱voccursinP},𝒜P={a𝖠aoccursinP}n+{a(σ(e1),,σ(en))σa(e1,,en)occursinP}{[v:=σ(e)]σ[v:=e]occursinP}.\begin{array}[]{@{}l@{}}\begin{array}[t]{@{}l@{\;}c@{\;}l@{}l@{}}\mathcal{V}^{P}&=&\{v\in\mathcal{V}\mathrel{\mid}v\mathrm{\;occurs\;in\;}P\}\;,\\ \mathcal{A}^{P}&=&\{a\in\mathsf{A}\mathrel{\mid}a\mathrm{\;occurs\;in\;}P\}\\ &&{}\cup\,\bigcup_{n\in\mathbb{N}^{+}}\{a(\sigma(e_{1}),\dots,\sigma(e_{n}))\mathrel{\mid}\sigma\in\mathcal{E}\!\mathcal{M}\land a(e_{1},\dots,e_{n})\mathrm{\;occurs\;in\;}P\}\\ &&{}\cup\{[v\mathbin{{:}{=}}\sigma(e)]\mathrel{\mid}\sigma\in\mathcal{E}\!\mathcal{M}\land[v\mathbin{{:}{=}}e]\mathrm{\;occurs\;in\;}P\}\;.\end{array}\end{array}

𝐻𝑖𝑔ℎP\mathit{High}^{P} is called the set of high-security flexible variables of PP and 𝐼𝑛𝑡P\mathit{Int}^{P} is called the set of internal actions of PP.

The flexible variables in 𝐿𝑜𝑤P\mathit{Low}^{P} are the flexible variables of PP that contain non-confidential data and the flexible variables in 𝐻𝑖𝑔ℎP\mathit{High}^{P} are the flexible variables of PP that contain confidential data. The actions in 𝐸𝑥𝑡P\mathit{Ext}^{P} are the actions that are performed by PP to interact with the environment and the actions in 𝐼𝑛𝑡P\mathit{Int}^{P} are the actions that are performed by PP to do something else than to interact with the environment. The actions in 𝐼𝑛𝑡P\mathit{Int}^{P} are considered to be invisible in the environment. In earlier work based on a purely action-oriented notion of secure information flow, the actions in 𝐸𝑥𝑡P\mathit{Ext}^{P} and 𝐼𝑛𝑡P\mathit{Int}^{P} are called low-security actions and high-security actions, respectively, or something similar.

For each closed ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I+REC term PP of sort 𝐏\mathbf{P} that denotes a process of the type of interest, PP has the DNII property iff

ACPϵτ-I+REC+CFARτ𝐼𝑛𝑡P(𝖵σ(P))=τ𝐼𝑛𝑡P(𝖵σ(P))\begin{array}[]{@{}l@{}}\textup{ACP}_{\epsilon}^{\tau}\textup{-I}\textup{+REC}\textup{+CFAR}\vdash{\tau_{\mathit{Int}^{P}}}({\mathsf{V}_{\sigma}}(P))={\tau_{\mathit{Int}^{P}}}({\mathsf{V}_{\sigma^{\prime}}}(P))\end{array}

for all evaluation maps σ\sigma and σ\sigma^{\prime} such that σ(v)=σ(v)\sigma(v)=\sigma^{\prime}(v) for all v𝐿𝑜𝑤Pv\in\mathit{Low}^{P}.

This definition is justified by the fact, which follows from Corollary 1, that

ACPϵτ-I+REC+CFARτ𝐼𝑛𝑡P(𝖵σ(P))=τ𝐼𝑛𝑡P(𝖵σ(P))iffτ𝐼𝑛𝑡P(𝖵σ(P))¯𝗋𝖻τ𝐼𝑛𝑡P(𝖵σ(P)).\begin{array}[]{@{}l@{}}\textup{ACP}_{\epsilon}^{\tau}\textup{-I}\textup{+REC}\textup{+CFAR}\vdash{\tau_{\mathit{Int}^{P}}}({\mathsf{V}_{\sigma}}(P))={\tau_{\mathit{Int}^{P}}}({\mathsf{V}_{\sigma^{\prime}}}(P))\\ \hfill\mathrm{iff}\;\;{\tau_{\mathit{Int}^{P}}}({\mathsf{V}_{\sigma}}(P))\mathrel{\mathchoice{\raisebox{1.1625pt}{$\displaystyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\textstyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptscriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}}{\tau_{\mathit{Int}^{P}}}({\mathsf{V}_{\sigma^{\prime}}}(P))\;.\hfill\end{array}

The left-hand side and the right-hand side of the equation in the above definition denote the processes that remain of the process denoted by PP in the case that the data values assigned to the flexible variables are initially as defined by σ\sigma and σ\sigma^{\prime}, respectively, and moreover all internal actions of PP are not visible. The condition imposed on the evaluation maps σ\sigma and σ\sigma^{\prime} tells us that the equation must always hold if, for each low-security flexible variable of PP, the data values assigned to it according to σ\sigma and σ\sigma^{\prime} are the same. This corresponds to the intuitive idea mentioned above that, for a process with the DNII property, differences in the confidential data cannot be observed in what remains of the process in the case where only the actions that are performed to interact with the environment are visible.

Assume that h,l𝒱h,l\in\mathcal{V} and a,b𝖠a,b\in\mathsf{A}. Let PP be the closed ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I+REC term

(h=0):[l:=l+1]a+¬(h=0):a[l:=l+1]+b\begin{array}[]{@{}l@{}}(h=0)\mathbin{:\rightarrow}[l\mathbin{{:}{=}}l+1]\cdot a\mathbin{+}\lnot(h=0)\mathbin{:\rightarrow}a\cdot[l\mathbin{{:}{=}}l+1]\mathbin{+}b\end{array}

of sort 𝐏\mathbf{P} with 𝐿𝑜𝑤P={l}\mathit{Low}^{P}=\{l\} and 𝐸𝑥𝑡P={a,b}\mathit{Ext}^{P}=\{a,b\}. PP is a very simple example of a term of which it may not be immediately clear that it denotes a process that does not have the DNII property. Notice that, by definition, h𝐻𝑖𝑔ℎPh\in\mathit{High}^{P} and [l:=l+1]𝐼𝑛𝑡P[l\mathbin{{:}{=}}l+1]\in\mathit{Int}^{P}. When [l:=l+1][l\mathbin{{:}{=}}l+1] is performed, this cannot be observed in the externally observable process because [l:=l+1][l\mathbin{{:}{=}}l+1] is an internal action. This means that, irrespective of the value that is initially assigned to hh, the externally observable process performs either aa or bb and after that terminates successfully. This is why the process denoted by PP may seem to have the DNII property. However, at the point that the externally observable process has the option to perform aa, it has also the option to perform bb in the case where the value initially assigned to hh is not 0, while it does not have also the option to perform bb in the case where the value initially assigned to hh is 0. In other words, the externally observable process in the former case differs from the externally observable process in the latter case. This means that, whether or not 0 is initially assigned to hh can be inferred from the externally observable process. Hence, the informal conclusion is that PP denotes a process that does not have the DNII property. More formally, this conclusion follows from the definition of the DNII property: we have

ACPϵτ-I+REC+CFARτ𝐼𝑛𝑡P(𝖵σ(P))=τa+b\begin{array}[]{@{}l@{}}\textup{ACP}_{\epsilon}^{\tau}\textup{-I}\textup{+REC}\textup{+CFAR}\vdash{\tau_{\mathit{Int}^{P}}}({\mathsf{V}_{\sigma}}(P))=\tau\cdot a\mathbin{+}b\end{array}

for all evaluation maps σ\sigma such that σ(h)=0\sigma(h)=0 and we have

ACPϵτ-I+REC+CFARτ𝐼𝑛𝑡P(𝖵σ(P))=a+b\begin{array}[]{@{}l@{}}\textup{ACP}_{\epsilon}^{\tau}\textup{-I}\textup{+REC}\textup{+CFAR}\vdash{\tau_{\mathit{Int}^{P}}}({\mathsf{V}_{\sigma^{\prime}}}(P))=a\mathbin{+}b\end{array}

for all evaluation maps σ\sigma^{\prime} such that σ(h)0\sigma^{\prime}(h)\neq 0, but we do not have

ACPϵτ-I+REC+CFARτa+b=a+b.\begin{array}[]{@{}l@{}}\textup{ACP}_{\epsilon}^{\tau}\textup{-I}\textup{+REC}\textup{+CFAR}\vdash\tau\cdot a\mathbin{+}b=a\mathbin{+}b\;.\end{array}

In CSPσ [16], presumably the only imperative process algebra that supports abstraction from actions that are considered not to be visible, the DNII property cannot be defined. The cause of this is that abstraction from actions that are considered not to be visible means in CSPσ that these actions are simply removed. Because of that processes such as τ𝐼𝑛𝑡P(𝖵σ(P)){\tau_{\mathit{Int}^{P}}}({\mathsf{V}_{\sigma}}(P)) and τ𝐼𝑛𝑡P(𝖵σ(P)){\tau_{\mathit{Int}^{P}}}({\mathsf{V}_{\sigma^{\prime}}}(P)) from the example given above are equated.

Assume that h,l𝒱h,l\in\mathcal{V} and a,b𝖠a,b\in\mathsf{A}. Let QQ be the closed ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I+REC term

(h=0):[l:=l+1]a+¬(h=0):[l:=l1]a+b\begin{array}[]{@{}l@{}}(h=0)\mathbin{:\rightarrow}[l\mathbin{{:}{=}}l+1]\cdot a\mathbin{+}\lnot(h=0)\mathbin{:\rightarrow}[l\mathbin{{:}{=}}l-1]\cdot a\mathbin{+}b\end{array}

of sort 𝐏\mathbf{P} with 𝐿𝑜𝑤Q={l}\mathit{Low}^{Q}=\{l\} and 𝐸𝑥𝑡Q={a,b}\mathit{Ext}^{Q}=\{a,b\}. QQ is a very simple example of a term that denotes a process that has the DNII property. This follows from the definition of the DNII property: we have

ACPϵτ-I+REC+CFARτ𝐼𝑛𝑡Q(𝖵σ(Q))=τa+b\begin{array}[]{@{}l@{}}\textup{ACP}_{\epsilon}^{\tau}\textup{-I}\textup{+REC}\textup{+CFAR}\vdash{\tau_{\mathit{Int}^{Q}}}({\mathsf{V}_{\sigma}}(Q))=\tau\cdot a\mathbin{+}b\end{array}

for all evaluation maps σ\sigma such that σ(h)=0\sigma(h)=0, we have

ACPϵτ-I+REC+CFARτ𝐼𝑛𝑡Q(𝖵σ(Q))=τa+b\begin{array}[]{@{}l@{}}\textup{ACP}_{\epsilon}^{\tau}\textup{-I}\textup{+REC}\textup{+CFAR}\vdash{\tau_{\mathit{Int}^{Q}}}({\mathsf{V}_{\sigma^{\prime}}}(Q))=\tau\cdot a\mathbin{+}b\end{array}

for all evaluation maps σ\sigma^{\prime} such that σ(h)0\sigma^{\prime}(h)\neq 0, and we trivially have

ACPϵτ-I+REC+CFARτa+b=τa+b.\begin{array}[]{@{}l@{}}\textup{ACP}_{\epsilon}^{\tau}\textup{-I}\textup{+REC}\textup{+CFAR}\vdash\tau\cdot a\mathbin{+}b=\tau\cdot a\mathbin{+}b\;.\end{array}

The DNII property is only one of the process properties related to information flow security that can be defined and verified in ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I+REC+CFAR. Insofar as information flow security of contemporary systems is concerned, it seems to be an essential property. The DNII property is also one of the process properties related to information flow security that cannot be defined naturally in the process algebras used in earlier work on information flow security (cf. [20, 36, 11, 31]). The problem with those process algebras is that state components must be mimicked by processes in them.

The DNII property concerns the non-disclosure of confidential data, contained in state components of a system, through the possibly ongoing interaction of the system concerned with its environment. To my knowledge, such a property has not been proposed in the literature on information-flow security before. However, the DNII property is reminiscent of the combination of data non-interference and event non-interference as defined in [37], but a comparison is difficult to make because of rather different semantical bases.

9 Concluding Remarks

I have introduced an ACP-based imperative process algebra. This process algebra distinguishes itself from imperative process algebras such as VPLA [27], IPAL [33], CSPσ [16], AWN [19], and the process algebra proposed in [13] by the following three properties: (1) it supports abstraction from actions that are considered not to be visible; (2) a verification of the equivalence of two processes in its semantics is automatically valid in any semantics that is fully abstract with respect to some notion of observable behaviour; (3) it offers the possibility of equational verification of process equivalence.

Properties (1)–(3) have been achieved by the inclusion of the silent step constant τ\tau and the abstraction operators τI{\tau_{I}} in the constants and operators of the process algebra, the use of the rooted branching bisimulation equivalence relation ¯𝗋𝖻\mathrel{\mathchoice{\raisebox{1.1625pt}{$\displaystyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\textstyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptscriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}} for the equivalence of processes in its semantics, and the provision of the equational axiomatization of ¯𝗋𝖻\mathrel{\mathchoice{\raisebox{1.1625pt}{$\displaystyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\textstyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptscriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}}.

The axioms of the presented imperative process algebra are not complete with respect to the equivalence of processes in its semantics. There is no straightforward way to rectify this. However, two semi-completeness results that may be relevant to various applications of this imperative process algebra have been established. One of those results is at least relevant to information-flow security analysis. The finiteness and linearity restrictions on guarded recursive specifications are not needed for the uniqueness of solutions. However, there would be no semi-completeness results without these restrictions.

In this paper, I build on earlier work on ACP. The axioms of ACPϵτ\textup{ACP}_{\epsilon}^{\tau} have been taken from Section 5.3 of [3] and the axioms for the guarded command operator have been taken from [2]. The evaluation operators have been inspired by [7] and the data parameterized action operators have been inspired by [8].

Acknowledgement

I thank two anonymous referees for carefully reading a preliminary version of this paper, for suggesting improvements of the presentation of the paper, and for pointing out two minor but annoying errors in it.

Appendix: Alternative Bisimulation Semantics

In this appendix, an alternative to the structural operational semantics of ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I+REC is presented and a definition of rooted branching bisimulation equivalence for ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I+REC based on this alternative structural operational semantics is given. This appendix is strongly based on Section 4 of [9].

We write 𝒞𝑠𝑎𝑡\mathcal{C}^{\mathit{sat}} for the set of all terms ϕ𝒞\phi\in\mathcal{C} for which 𝔇⊧̸ϕ𝖿\mathfrak{D}\mathrel{\,\not\models\,}\phi\mathrel{\Leftrightarrow}{\mathsf{f}}. As formulas of a first-order language with equality of 𝔇\mathfrak{D}, the terms from 𝒞𝑠𝑎𝑡\mathcal{C}^{\mathit{sat}} are the formulas that are satisfiable in 𝔇\mathfrak{D}.

The alternative structural operational semantics of ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I+REC consists of

  • a binary conditional transition relation \buildrel{\ell}\over{\hbox to9.37502pt{\rightarrowfill}} on 𝒫𝑟𝑒𝑐\mathcal{P}_{\mathit{rec}} for each 𝒞𝑠𝑎𝑡×𝒜τ\ell\in\mathcal{C}^{\mathit{sat}}\times\mathcal{A}_{\tau};

  • a unary successful termination relation {ϕ}\mathrel{{}^{\{\phi\}}\!{\downarrow}} on 𝒫𝑟𝑒𝑐\mathcal{P}_{\mathit{rec}} for each ϕ𝒞𝑠𝑎𝑡\phi\in\mathcal{C}^{\mathit{sat}}.

We write t{ϕ}αtt\buildrel{\{\phi\}\hskip 0.90005pt\alpha}\over{\hbox to25.16394pt{\rightarrowfill}}t^{\prime} instead of (t,t)(ϕ,α)(t,t^{\prime})\in{\buildrel{(\phi,\alpha)}\over{\hbox to22.68387pt{\rightarrowfill}}} and t{ϕ}t\mathrel{{}^{\{\phi\}}\!{\downarrow}} instead of t{ϕ}t\in{\mathrel{{}^{\{\phi\}}\!{\downarrow}}}.

The relations from this structural operational semantics describe what the processes denoted by terms from 𝒫𝑟𝑒𝑐\mathcal{P}_{\mathit{rec}} are capable of doing as follows:

  • t{ϕ}αtt\buildrel{\{\phi\}\hskip 0.90005pt\alpha}\over{\hbox to25.16394pt{\rightarrowfill}}t^{\prime}: if condition ϕ\phi holds for the process denoted by tt, then this process has the potential to make a transition to the process denoted by tt^{\prime} by performing action α\alpha;

  • t{ϕ}t\mathrel{{}^{\{\phi\}}\!{\downarrow}}: if condition ϕ\phi holds for the process denoted by tt, then this process has the potential to terminate successfully.

The relations from this structural operational semantics of ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I+REC are the smallest relations satisfying the rules given in Table 6.

Table 6: Transition rules for ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I

α{𝗍}αϵϵ{𝗍}x{ϕ}x+y{ϕ}y{ϕ}x+y{ϕ}x{ϕ}αxx+y{ϕ}αxy{ϕ}αyx+y{ϕ}αyx{ϕ},y{ψ}xy{ϕψ}𝔇⊧̸ϕψ𝖿x{ϕ},y{ψ}αyxy{ϕψ}αy𝔇⊧̸ϕψ𝖿x{ϕ}αxxy{ϕ}αxyx{ϕ},y{ψ}xy{ϕψ}𝔇⊧̸ϕψ𝖿x{ϕ}αxxy{ϕ}αxyy{ϕ}αyxy{ϕ}αxyx{ϕ}ax,y{ψ}byxy{ϕψ}cxyγ(a,b)=c,𝔇⊧̸ϕψ𝖿x{ϕ}a(e1,,en)x,y{ψ}b(e1,,en)yxy{ϕψe1=e1en=en}c(e1,,en)xyγ(a,b)=c,𝔇⊧̸ϕψe1=e1en=en𝖿x{ϕ}αxx⌊⌊y{ϕ}αxyx{ϕ}ax,y{ψ}byxy{ϕψ}cxyγ(a,b)=c,𝔇⊧̸ϕψ𝖿x{ϕ}a(e1,,en)x,y{ψ}b(e1,,en)yxy{ϕψe1=e1en=en}c(e1,,en)xyγ(a,b)=c,𝔇⊧̸ϕψe1=e1en=en𝖿x{ϕ}H(x){ϕ}x{ϕ}αxH(x){ϕ}αH(x)αHx{ϕ}τI(x){ϕ}x{ϕ}αxτI(x){ϕ}ατI(x)αIx{ϕ}αxτI(x){ϕ}ττI(x)αIx{ϕ}ψ:x{ϕψ}𝔇⊧̸ϕψ𝖿x{ϕ}αxψ:x{ϕψ}αx𝔇⊧̸ϕψ𝖿x{ϕ}𝖵σ(x){σ(ϕ)}𝔇⊧̸σ(ϕ)𝖿x{ϕ}τx𝖵σ(x){σ(ϕ)}τ𝖵σ(x)𝔇⊧̸σ(ϕ)𝖿x{ϕ}ax𝖵σ(x){σ(ϕ)}a𝖵σ(x)𝔇⊧̸σ(ϕ)𝖿x{ϕ}a(e1,,en)x𝖵σ(x){σ(ϕ)}a(σ(e1),,σ(en))𝖵σ(x)𝔇⊧̸σ(ϕ)𝖿x{ϕ}[v:=e]x𝖵σ(x){σ(ϕ)}[v:=σ(e)]𝖵σ{σ(e)/v}(x)𝔇⊧̸σ(ϕ)𝖿t|E{ϕ}X|E{ϕ}X=tEt|E{ϕ}αxX|E{ϕ}αxX=tE\begin{array}[]{@{}l@{}}\hline\cr{}\frac{\rule[3.39061pt]{0.0pt}{9.49373pt}\textstyle}{\rule[-2.03436pt]{0.0pt}{9.49373pt}\textstyle\alpha\buildrel{\{{\mathsf{t}}\}\hskip 0.90005pt\alpha}\over{\hbox to23.86018pt{\rightarrowfill}}\epsilon}\quad\;\frac{\rule[3.39061pt]{0.0pt}{9.49373pt}\textstyle}{\rule[-2.03436pt]{0.0pt}{9.49373pt}\textstyle\epsilon\mathrel{{}^{\{{\mathsf{t}}\}}\!{\downarrow}}}\quad\;\frac{\rule[3.39061pt]{0.0pt}{9.49373pt}\textstyle x\mathrel{{}^{\{\phi\}}\!{\downarrow}}}{\rule[-2.03436pt]{0.0pt}{9.49373pt}\textstyle x\mathbin{+}y\mathrel{{}^{\{\phi\}}\!{\downarrow}}}\quad\;\frac{\rule[3.39061pt]{0.0pt}{9.49373pt}\textstyle y\mathrel{{}^{\{\phi\}}\!{\downarrow}}}{\rule[-2.03436pt]{0.0pt}{9.49373pt}\textstyle x\mathbin{+}y\mathrel{{}^{\{\phi\}}\!{\downarrow}}}\quad\;\frac{\rule[3.39061pt]{0.0pt}{9.49373pt}\textstyle x\buildrel{\{\phi\}\hskip 0.90005pt\alpha}\over{\hbox to25.16394pt{\rightarrowfill}}x^{\prime}}{\rule[-2.03436pt]{0.0pt}{9.49373pt}\textstyle x\mathbin{+}y\buildrel{\{\phi\}\hskip 0.90005pt\alpha}\over{\hbox to25.16394pt{\rightarrowfill}}x^{\prime}}\quad\;\frac{\rule[3.39061pt]{0.0pt}{9.49373pt}\textstyle y\buildrel{\{\phi\}\hskip 0.90005pt\alpha}\over{\hbox to25.16394pt{\rightarrowfill}}y^{\prime}}{\rule[-2.03436pt]{0.0pt}{9.49373pt}\textstyle x\mathbin{+}y\buildrel{\{\phi\}\hskip 0.90005pt\alpha}\over{\hbox to25.16394pt{\rightarrowfill}}y^{\prime}}\\ \frac{\rule[3.39061pt]{0.0pt}{9.49373pt}\textstyle x\mathrel{{}^{\{\phi\}}\!{\downarrow}},\;y\mathrel{{}^{\{\psi\}}\!{\downarrow}}}{\rule[-2.03436pt]{0.0pt}{9.49373pt}\textstyle x\cdot y\mathrel{{}^{\{\phi\land\psi\}}\!{\downarrow}}}{\;\,\mathfrak{D}\mathrel{\,\not\models\,}\phi\land\psi\mathrel{\Leftrightarrow}{\mathsf{f}}}\quad\;\frac{\rule[3.39061pt]{0.0pt}{9.49373pt}\textstyle x\mathrel{{}^{\{\phi\}}\!{\downarrow}},\;y\buildrel{\{\psi\}\hskip 0.90005pt\alpha}\over{\hbox to25.51395pt{\rightarrowfill}}y^{\prime}}{\rule[-2.03436pt]{0.0pt}{9.49373pt}\textstyle x\cdot y\buildrel{\{\phi\land\psi\}\hskip 0.90005pt\alpha}\over{\hbox to37.46771pt{\rightarrowfill}}y^{\prime}}{\;\,\mathfrak{D}\mathrel{\,\not\models\,}\phi\land\psi\mathrel{\Leftrightarrow}{\mathsf{f}}}\quad\;\frac{\rule[3.39061pt]{0.0pt}{9.49373pt}\textstyle x\buildrel{\{\phi\}\hskip 0.90005pt\alpha}\over{\hbox to25.16394pt{\rightarrowfill}}x^{\prime}}{\rule[-2.03436pt]{0.0pt}{9.49373pt}\textstyle x\cdot y\buildrel{\{\phi\}\hskip 0.90005pt\alpha}\over{\hbox to25.16394pt{\rightarrowfill}}x^{\prime}\cdot y}\\ \frac{\rule[3.39061pt]{0.0pt}{9.49373pt}\textstyle x\mathrel{{}^{\{\phi\}}\!{\downarrow}},\;y\mathrel{{}^{\{\psi\}}\!{\downarrow}}}{\rule[-2.03436pt]{0.0pt}{9.49373pt}\textstyle x\mathbin{\parallel}y\mathrel{{}^{\{\phi\land\psi\}}\!{\downarrow}}}{\;\,\mathfrak{D}\mathrel{\,\not\models\,}\phi\land\psi\mathrel{\Leftrightarrow}{\mathsf{f}}}\quad\;\frac{\rule[3.39061pt]{0.0pt}{9.49373pt}\textstyle x\buildrel{\{\phi\}\hskip 0.90005pt\alpha}\over{\hbox to25.16394pt{\rightarrowfill}}x^{\prime}}{\rule[-2.03436pt]{0.0pt}{9.49373pt}\textstyle x\mathbin{\parallel}y\buildrel{\{\phi\}\hskip 0.90005pt\alpha}\over{\hbox to25.16394pt{\rightarrowfill}}x^{\prime}\mathbin{\parallel}y}\quad\;\frac{\rule[3.39061pt]{0.0pt}{9.49373pt}\textstyle y\buildrel{\{\phi\}\hskip 0.90005pt\alpha}\over{\hbox to25.16394pt{\rightarrowfill}}y^{\prime}}{\rule[-2.03436pt]{0.0pt}{9.49373pt}\textstyle x\mathbin{\parallel}y\buildrel{\{\phi\}\hskip 0.90005pt\alpha}\over{\hbox to25.16394pt{\rightarrowfill}}x\mathbin{\parallel}y^{\prime}}\\ \frac{\rule[3.39061pt]{0.0pt}{9.49373pt}\textstyle x\buildrel{\{\phi\}\hskip 0.90005pta}\over{\hbox to24.46393pt{\rightarrowfill}}x^{\prime},\;y\buildrel{\{\psi\}\hskip 0.90005ptb}\over{\hbox to24.18758pt{\rightarrowfill}}y^{\prime}}{\rule[-2.03436pt]{0.0pt}{9.49373pt}\textstyle x\mathbin{\parallel}y\buildrel{\{\phi\land\psi\}\hskip 0.90005ptc}\over{\hbox to36.16396pt{\rightarrowfill}}x^{\prime}\mathbin{\parallel}y^{\prime}}{\;\,\gamma(a,b)=c,\;\mathfrak{D}\mathrel{\,\not\models\,}\phi\land\psi\mathrel{\Leftrightarrow}{\mathsf{f}}}\\ \frac{\rule[3.39061pt]{0.0pt}{9.49373pt}\textstyle x\buildrel{\{\phi\}\hskip 0.90005pta(e_{1},\ldots,e_{n})}\over{\hbox to48.91664pt{\rightarrowfill}}x^{\prime},\;y\buildrel{\{\psi\}\hskip 0.90005ptb(e^{\prime}_{1},\ldots,e^{\prime}_{n})}\over{\hbox to46.65942pt{\rightarrowfill}}y^{\prime}}{\rule[-2.03436pt]{0.0pt}{9.49373pt}\textstyle x\mathbin{\parallel}y\buildrel{\{\phi\land\psi\land e_{1}=e^{\prime}_{1}\land\ldots\land e_{n}=e^{\prime}_{n}\}\hskip 0.90005ptc(e_{1},\ldots,e_{n})}\over{\hbox to114.4163pt{\rightarrowfill}}x^{\prime}\mathbin{\parallel}y^{\prime}}{\;\,\begin{array}[]{@{}c@{}}\gamma(a,b)=c,\\[0.96873pt] \mathfrak{D}\mathrel{\,\not\models\,}\phi\land\psi\land e_{1}=e^{\prime}_{1}\land\ldots\land e_{n}=e^{\prime}_{n}\mathrel{\Leftrightarrow}{\mathsf{f}}\end{array}}\\ \frac{\rule[3.39061pt]{0.0pt}{9.49373pt}\textstyle x\buildrel{\{\phi\}\hskip 0.90005pt\alpha}\over{\hbox to25.16394pt{\rightarrowfill}}x^{\prime}}{\rule[-2.03436pt]{0.0pt}{9.49373pt}\textstyle x\mathbin{\lfloor\lfloor}y\buildrel{\{\phi\}\hskip 0.90005pt\alpha}\over{\hbox to25.16394pt{\rightarrowfill}}x^{\prime}\mathbin{\parallel}y}\\ \frac{\rule[3.39061pt]{0.0pt}{9.49373pt}\textstyle x\buildrel{\{\phi\}\hskip 0.90005pta}\over{\hbox to24.46393pt{\rightarrowfill}}x^{\prime},\;y\buildrel{\{\psi\}\hskip 0.90005ptb}\over{\hbox to24.18758pt{\rightarrowfill}}y^{\prime}}{\rule[-2.03436pt]{0.0pt}{9.49373pt}\textstyle x\mathbin{\mid}y\buildrel{\{\phi\land\psi\}\hskip 0.90005ptc}\over{\hbox to36.16396pt{\rightarrowfill}}x^{\prime}\mathbin{\parallel}y^{\prime}}{\;\,\gamma(a,b)=c,\;\mathfrak{D}\mathrel{\,\not\models\,}\phi\land\psi\mathrel{\Leftrightarrow}{\mathsf{f}}}\\ \frac{\rule[3.39061pt]{0.0pt}{9.49373pt}\textstyle x\buildrel{\{\phi\}\hskip 0.90005pta(e_{1},\ldots,e_{n})}\over{\hbox to48.91664pt{\rightarrowfill}}x^{\prime},\;y\buildrel{\{\psi\}\hskip 0.90005ptb(e^{\prime}_{1},\ldots,e^{\prime}_{n})}\over{\hbox to46.65942pt{\rightarrowfill}}y^{\prime}}{\rule[-2.03436pt]{0.0pt}{9.49373pt}\textstyle x\mathbin{\mid}y\buildrel{\{\phi\land\psi\land e_{1}=e^{\prime}_{1}\land\ldots\land e_{n}=e^{\prime}_{n}\}\hskip 0.90005ptc(e_{1},\ldots,e_{n})}\over{\hbox to116.4163pt{\rightarrowfill}}x^{\prime}\mathbin{\parallel}y^{\prime}}{\;\,\begin{array}[]{@{}c@{}}\gamma(a,b)=c,\\[0.96873pt] \mathfrak{D}\mathrel{\,\not\models\,}\phi\land\psi\land e_{1}=e^{\prime}_{1}\land\ldots\land e_{n}=e^{\prime}_{n}\mathrel{\Leftrightarrow}{\mathsf{f}}\end{array}}\\ \frac{\rule[3.39061pt]{0.0pt}{9.49373pt}\textstyle x\mathrel{{}^{\{\phi\}}\!{\downarrow}}}{\rule[-2.03436pt]{0.0pt}{9.49373pt}\textstyle{\partial_{H}}(x)\mathrel{{}^{\{\phi\}}\!{\downarrow}}}\quad\;\frac{\rule[3.39061pt]{0.0pt}{9.49373pt}\textstyle x\buildrel{\{\phi\}\hskip 0.90005pt\alpha}\over{\hbox to25.16394pt{\rightarrowfill}}x^{\prime}}{\rule[-2.03436pt]{0.0pt}{9.49373pt}\textstyle{\partial_{H}}(x)\buildrel{\{\phi\}\hskip 0.90005pt\alpha}\over{\hbox to25.16394pt{\rightarrowfill}}{\partial_{H}}(x^{\prime})}{\;\,\alpha\notin H}\\ \frac{\rule[3.39061pt]{0.0pt}{9.49373pt}\textstyle x\mathrel{{}^{\{\phi\}}\!{\downarrow}}}{\rule[-2.03436pt]{0.0pt}{9.49373pt}\textstyle{\tau_{I}}(x)\mathrel{{}^{\{\phi\}}\!{\downarrow}}}\quad\;\frac{\rule[3.39061pt]{0.0pt}{9.49373pt}\textstyle x\buildrel{\{\phi\}\hskip 0.90005pt\alpha}\over{\hbox to25.16394pt{\rightarrowfill}}x^{\prime}}{\rule[-2.03436pt]{0.0pt}{9.49373pt}\textstyle{\tau_{I}}(x)\buildrel{\{\phi\}\hskip 0.90005pt\alpha}\over{\hbox to25.16394pt{\rightarrowfill}}{\tau_{I}}(x^{\prime})}{\;\,\alpha\notin I}\quad\;\frac{\rule[3.39061pt]{0.0pt}{9.49373pt}\textstyle x\buildrel{\{\phi\}\hskip 0.90005pt\alpha}\over{\hbox to25.16394pt{\rightarrowfill}}x^{\prime}}{\rule[-2.03436pt]{0.0pt}{9.49373pt}\textstyle{\tau_{I}}(x)\buildrel{\{\phi\}\hskip 0.90005pt\tau}\over{\hbox to23.8879pt{\rightarrowfill}}{\tau_{I}}(x^{\prime})}{\;\,\alpha\in I}\\ \frac{\rule[3.39061pt]{0.0pt}{9.49373pt}\textstyle x\mathrel{{}^{\{\phi\}}\!{\downarrow}}}{\rule[-2.03436pt]{0.0pt}{9.49373pt}\textstyle\psi\mathbin{:\rightarrow}x\mathrel{{}^{\{\phi\land\psi\}}\!{\downarrow}}}{\;\,\mathfrak{D}\mathrel{\,\not\models\,}\phi\land\psi\mathrel{\Leftrightarrow}{\mathsf{f}}}\quad\;\frac{\rule[3.39061pt]{0.0pt}{9.49373pt}\textstyle x\buildrel{\{\phi\}\hskip 0.90005pt\alpha}\over{\hbox to25.16394pt{\rightarrowfill}}x^{\prime}}{\rule[-2.03436pt]{0.0pt}{9.49373pt}\textstyle\psi\mathbin{:\rightarrow}x\buildrel{\{\phi\land\psi\}\hskip 0.90005pt\alpha}\over{\hbox to37.46771pt{\rightarrowfill}}x^{\prime}}{\;\,\mathfrak{D}\mathrel{\,\not\models\,}\phi\land\psi\mathrel{\Leftrightarrow}{\mathsf{f}}}\\ \frac{\rule[3.39061pt]{0.0pt}{9.49373pt}\textstyle x\mathrel{{}^{\{\phi\}}\!{\downarrow}}}{\rule[-2.03436pt]{0.0pt}{9.49373pt}\textstyle{\mathsf{V}_{\sigma}}(x)\mathrel{{}^{\{\sigma(\phi)\}}\!{\downarrow}}}{\;\,\mathfrak{D}\mathrel{\,\not\models\,}\sigma(\phi)\mathrel{\Leftrightarrow}{\mathsf{f}}}\quad\;\frac{\rule[3.39061pt]{0.0pt}{9.49373pt}\textstyle x\buildrel{\{\phi\}\hskip 0.90005pt\tau}\over{\hbox to23.8879pt{\rightarrowfill}}x^{\prime}}{\rule[-2.03436pt]{0.0pt}{9.49373pt}\textstyle{\mathsf{V}_{\sigma}}(x)\buildrel{\{\sigma(\phi)\}\hskip 0.90005pt\tau}\over{\hbox to32.38779pt{\rightarrowfill}}{\mathsf{V}_{\sigma}}(x^{\prime})}{\;\,\mathfrak{D}\mathrel{\,\not\models\,}\sigma(\phi)\mathrel{\Leftrightarrow}{\mathsf{f}}}\\ \frac{\rule[3.39061pt]{0.0pt}{9.49373pt}\textstyle x\buildrel{\{\phi\}\hskip 0.90005pta}\over{\hbox to24.46393pt{\rightarrowfill}}x^{\prime}}{\rule[-2.03436pt]{0.0pt}{9.49373pt}\textstyle{\mathsf{V}_{\sigma}}(x)\buildrel{\{\sigma(\phi)\}\hskip 0.90005pta}\over{\hbox to32.96382pt{\rightarrowfill}}{\mathsf{V}_{\sigma}}(x^{\prime})}{\;\,\mathfrak{D}\mathrel{\,\not\models\,}\sigma(\phi)\mathrel{\Leftrightarrow}{\mathsf{f}}}\quad\;\frac{\rule[3.39061pt]{0.0pt}{9.49373pt}\textstyle x\buildrel{\{\phi\}\hskip 0.90005pta(e_{1},\ldots,e_{n})}\over{\hbox to48.91664pt{\rightarrowfill}}x^{\prime}}{\rule[-2.03436pt]{0.0pt}{9.49373pt}\textstyle{\mathsf{V}_{\sigma}}(x)\buildrel{\{\sigma(\phi)\}\hskip 0.90005pta(\sigma(e_{1}),\ldots,\sigma(e_{n}))}\over{\hbox to74.41632pt{\rightarrowfill}}{\mathsf{V}_{\sigma}}(x^{\prime})}{\;\,\mathfrak{D}\mathrel{\,\not\models\,}\sigma(\phi)\mathrel{\Leftrightarrow}{\mathsf{f}}}\\ \frac{\rule[3.39061pt]{0.0pt}{9.49373pt}\textstyle x\buildrel{\{\phi\}\hskip 0.90005pt[v\mathbin{{:}{=}}e]}\over{\hbox to37.49706pt{\rightarrowfill}}x^{\prime}}{\rule[-2.03436pt]{0.0pt}{9.49373pt}\textstyle{\mathsf{V}_{\sigma}}(x)\buildrel{\{\sigma(\phi)\}\hskip 0.90005pt[v\mathbin{{:}{=}}\sigma(e)]}\over{\hbox to54.49684pt{\rightarrowfill}}{\mathsf{V}_{\sigma\{\sigma(e)/v\}}}(x^{\prime})}{\;\,\mathfrak{D}\mathrel{\,\not\models\,}\sigma(\phi)\mathrel{\Leftrightarrow}{\mathsf{f}}}\\ \frac{\rule[3.39061pt]{0.0pt}{9.49373pt}\textstyle\langle t|E\rangle\mathrel{{}^{\{\phi\}}\!{\downarrow}}}{\rule[-2.03436pt]{0.0pt}{9.49373pt}\textstyle\langle X|E\rangle\mathrel{{}^{\{\phi\}}\!{\downarrow}}}{\;\,X\!\!=\!t\,\in\,E}\qquad\frac{\rule[3.39061pt]{0.0pt}{9.49373pt}\textstyle\langle t|E\rangle\buildrel{\{\phi\}\hskip 0.90005pt\alpha}\over{\hbox to25.16394pt{\rightarrowfill}}x^{\prime}}{\rule[-2.03436pt]{0.0pt}{9.49373pt}\textstyle\langle X|E\rangle\buildrel{\{\phi\}\hskip 0.90005pt\alpha}\over{\hbox to25.16394pt{\rightarrowfill}}x^{\prime}}{\;\,X\!\!=\!t\,\in\,E\vspace*{1ex}}\\ \hline\cr\end{array}

In this table, α\alpha stands for an arbitrary action from 𝒜τ\mathcal{A}_{\tau},  ϕ\phi and ψ\psi stand for arbitrary terms from 𝒞𝑠𝑎𝑡\mathcal{C}^{\mathit{sat}},  a,ba,b, and cc stand for arbitrary basic actions from 𝖠\mathsf{A}, e,e1,e2,e,e_{1},e_{2},\ldots and e1,e2,e^{\prime}_{1},e^{\prime}_{2},\ldots stand for arbitrary terms from 𝒟\mathcal{D},  HH stands for an arbitrary subset of 𝒜\mathcal{A} or the set 𝒜τ\mathcal{A}_{\tau},  II stands for an arbitrary subset of 𝒜\mathcal{A},  σ\sigma stands for an arbitrary evaluation map from \mathcal{E}\!\mathcal{M},  vv stands for an arbitrary flexible variable from 𝒱\mathcal{V},  XX stands for an arbitrary variable from 𝒳\mathcal{X},  tt stands for an arbitrary ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I term of sort 𝐏\mathbf{P}, and EE stands for an arbitrary guarded linear recursive specification over ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I.

The alternative structural operational semantics is such that the structural operational semantics presented in Section 5 can be obtained by replacing each transition t{ϕ}αtt\buildrel{\{\phi\}\hskip 0.90005pt\alpha}\over{\hbox to25.16394pt{\rightarrowfill}}t^{\prime} by a transition t{σ}αtt\buildrel{\{\sigma\}\hskip 0.90005pt\alpha}\over{\hbox to25.01009pt{\rightarrowfill}}t^{\prime} for each σ\sigma\in\mathcal{E}\!\mathcal{M} for which 𝔇σ(ϕ)\mathfrak{D}\mathrel{\,\models\,}\sigma(\phi), and likewise each t{ϕ}t\mathrel{{}^{\{\phi\}}\!{\downarrow}}.

Two processes are considered equal if they can simulate each other insofar as their observable potentials to make transitions and to terminate successfully are concerned. In the case of the alternative structural operational semantics, there are two issues that together complicate matters:

  • simply relating a single transition of one of the processes to a single transition of the other process does not work because a transition of one process may be simulated by a set of transitions of another process;

  • simply ignoring all transitions in which the unobservable action τ\tau is performed does not work because the observable potentials to make transitions and to terminate successfully may change by such transitions.

The first issue is illustrated by the processes denoted by ϕψ:a\phi\lor\psi\mathbin{:\rightarrow}a and ϕ:a+ψ:a\phi\mathbin{:\rightarrow}a\mathbin{+}\psi\mathbin{:\rightarrow}a: the only transition of the former process is simulated by the two transitions of the latter process. The second issue is illustrated by the processes denoted by a+τba\mathbin{+}\tau\cdot b and a+ba\mathbin{+}b: by making the transition in which the unobservable action τ\tau is performed, the former process loses the potential to make the transition in which the observable action aa is performed before anything has been observed, whereas this potential is a potential of the latter process so long as nothing has been observed.

The first issue alone can be dealt with by means of the notion of splitting bisimulation equivalence introduced in [7] and the second issue alone can be dealt with by means of the notion of branching bisimulation equivalence introduced in [41] adapted to the conditionality of transitions in which the unobservable action τ\tau is performed. In order to deal with both issues, the two notions are combined.

We write t({ϕ}α)tt\buildrel{(\{\phi\}\hskip 0.90005pt\alpha)}\over{\hbox to30.06393pt{\rightarrowfill}}t^{\prime}, where ϕ𝒞𝑠𝑎𝑡\phi\in\mathcal{C}^{\mathit{sat}} and α𝒜τ\alpha\in\mathcal{A}_{\tau}, for t{ϕ}αtt\buildrel{\{\phi\}\hskip 0.90005pt\alpha}\over{\hbox to25.16394pt{\rightarrowfill}}t^{\prime} or α=τ\alpha=\tau, t=tt=t^{\prime}, and 𝔇ϕ𝗍\mathfrak{D}\mathrel{\,\models\,}\phi\mathrel{\Leftrightarrow}{\mathsf{t}}.

The notation Φ\bigvee\Phi, where Φ={ϕ1,,ϕn}\Phi=\{\phi_{1},\ldots,\phi_{n}\} and ϕ1,,ϕn\phi_{1},\ldots,\phi_{n} are ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I terms of sort 𝐂{\mathbf{C}}, is used for the ACPϵτ\textup{ACP}_{\epsilon}^{\tau}-I term ϕ1ϕn\phi_{1}\lor\ldots\lor\phi_{n}.

An ab-bisimulation is a binary relation RR on 𝒫𝑟𝑒𝑐\mathcal{P}_{\mathit{rec}} such that, for all terms t1,t2𝒫𝑟𝑒𝑐t_{1},t_{2}\in\mathcal{P}_{\mathit{rec}} with (t1,t2)R(t_{1},t_{2})\in R, the following transfer conditions hold:

  • if t1{ϕ}αt1t_{1}\buildrel{\{\phi\}\hskip 0.90005pt\alpha}\over{\hbox to25.16394pt{\rightarrowfill}}t_{1}^{\prime}, then there exists a finite set Ψ𝒞𝑠𝑎𝑡\Psi\subseteq\mathcal{C}^{\mathit{sat}} such that 𝔇ϕΨ\mathfrak{D}\mathrel{\,\models\,}\phi\mathrel{\Rightarrow}\bigvee\Psi and, for all ψΨ\psi\in\Psi, there exists an α[α]\alpha^{\prime}\in[\alpha] and, for some nn\in\mathbb{N}, there exist t20,,t2n,t2𝒫𝑟𝑒𝑐t_{2}^{0},\ldots,t_{2}^{n},t_{2}^{\prime}\in\mathcal{P}_{\mathit{rec}} and ψ1,,ψn,ψ𝒞𝑠𝑎𝑡\psi^{1},\ldots,\psi^{n},\psi^{\prime}\in\mathcal{C}^{\mathit{sat}} such that 𝔇ψψψ1ψn\mathfrak{D}\mathrel{\,\models\,}\psi\mathrel{\Leftrightarrow}\psi^{\prime}\land\psi^{1}\land\ldots\land\psi^{n}, t20t2t_{2}^{0}\equiv t_{2}, for all ii\in\mathbb{N} with i<ni<n, t2i{ψi+1}τt2i+1t_{2}^{i}\buildrel{\{\psi^{i+1}\}\hskip 0.90005pt\tau}\over{\hbox to30.07814pt{\rightarrowfill}}t_{2}^{i+1} and (t1,t2i+1)R(t_{1},t_{2}^{i+1})\in R, t2n({ψ}α)t2t_{2}^{n}\buildrel{(\{\psi^{\prime}\}\hskip 0.90005pt\alpha^{\prime})}\over{\hbox to32.39392pt{\rightarrowfill}}t_{2}^{\prime}, and (t1,t2)R(t_{1}^{\prime},t_{2}^{\prime})\in R;

  • if t2{ϕ}αt2t_{2}\buildrel{\{\phi\}\hskip 0.90005pt\alpha}\over{\hbox to25.16394pt{\rightarrowfill}}t_{2}^{\prime}, then there exists a finite set Ψ𝒞𝑠𝑎𝑡\Psi\subseteq\mathcal{C}^{\mathit{sat}} such that 𝔇ϕΨ\mathfrak{D}\mathrel{\,\models\,}\phi\mathrel{\Rightarrow}\bigvee\Psi and, for all ψΨ\psi\in\Psi, there exists an α[α]\alpha^{\prime}\in[\alpha] and, for some nn\in\mathbb{N}, there exist t10,,t1n,t1𝒫𝑟𝑒𝑐t_{1}^{0},\ldots,t_{1}^{n},t_{1}^{\prime}\in\mathcal{P}_{\mathit{rec}} and ψ1,,ψn,ψ𝒞𝑠𝑎𝑡\psi^{1},\ldots,\psi^{n},\psi^{\prime}\in\mathcal{C}^{\mathit{sat}} such that 𝔇ψψψ1ψn\mathfrak{D}\mathrel{\,\models\,}\psi\mathrel{\Leftrightarrow}\psi^{\prime}\land\psi^{1}\land\ldots\land\psi^{n}, t10t1t_{1}^{0}\equiv t_{1}, for all ii\in\mathbb{N} with i<ni<n, t1i{ψi+1}τt1i+1t_{1}^{i}\buildrel{\{\psi^{i+1}\}\hskip 0.90005pt\tau}\over{\hbox to30.07814pt{\rightarrowfill}}t_{1}^{i+1} and (t1i+1,t2)R(t_{1}^{i+1},t_{2})\in R, t1n({ψ}α)t1t_{1}^{n}\buildrel{(\{\psi^{\prime}\}\hskip 0.90005pt\alpha^{\prime})}\over{\hbox to32.39392pt{\rightarrowfill}}t_{1}^{\prime}, and (t1,t2)R(t_{1}^{\prime},t_{2}^{\prime})\in R;

  • if t1{ϕ}t_{1}\mathrel{{}^{\{\phi\}}\!{\downarrow}}, then there exists a finite set Ψ𝒞𝑠𝑎𝑡\Psi\subseteq\mathcal{C}^{\mathit{sat}} such that 𝔇ϕΨ\mathfrak{D}\mathrel{\,\models\,}\phi\mathrel{\Rightarrow}\bigvee\Psi and, for all ψΨ\psi\in\Psi, for some nn\in\mathbb{N}, there exist t20,,t2n𝒫𝑟𝑒𝑐t_{2}^{0},\ldots,t_{2}^{n}\in\mathcal{P}_{\mathit{rec}} and ψ1,,ψn,ψ𝒞𝑠𝑎𝑡\psi^{1},\ldots,\psi^{n},\psi^{\prime}\in\mathcal{C}^{\mathit{sat}} such that 𝔇ψψψ1ψn\mathfrak{D}\mathrel{\,\models\,}\psi\mathrel{\Leftrightarrow}\psi^{\prime}\land\psi^{1}\land\ldots\land\psi^{n}, t20t2t_{2}^{0}\equiv t_{2}, for all ii\in\mathbb{N} with i<ni<n, t2i{ψi+1}τt2i+1t_{2}^{i}\buildrel{\{\psi^{i+1}\}\hskip 0.90005pt\tau}\over{\hbox to30.07814pt{\rightarrowfill}}t_{2}^{i+1} and (t1,t2i+1)R(t_{1},t_{2}^{i+1})\in R, and t2n{ψ}t_{2}^{n}\mathrel{{}^{\{\psi^{\prime}\}}\!{\downarrow}};

  • if t2{ϕ}t_{2}\mathrel{{}^{\{\phi\}}\!{\downarrow}}, then there exists a finite set Ψ𝒞𝑠𝑎𝑡\Psi\subseteq\mathcal{C}^{\mathit{sat}} such that 𝔇ϕΨ\mathfrak{D}\mathrel{\,\models\,}\phi\mathrel{\Rightarrow}\bigvee\Psi and, for all ψΨ\psi\in\Psi, for some nn\in\mathbb{N}, there exist t10,,t1n𝒫𝑟𝑒𝑐t_{1}^{0},\ldots,t_{1}^{n}\in\mathcal{P}_{\mathit{rec}} and ψ1,,ψn,ψ𝒞𝑠𝑎𝑡\psi^{1},\ldots,\psi^{n},\psi^{\prime}\in\mathcal{C}^{\mathit{sat}} such that 𝔇ψψψ1ψn\mathfrak{D}\mathrel{\,\models\,}\psi\mathrel{\Leftrightarrow}\psi^{\prime}\land\psi^{1}\land\ldots\land\psi^{n}, t10t1t_{1}^{0}\equiv t_{1}, for all ii\in\mathbb{N} with i<ni<n, t1i{ψi+1}τt1i+1t_{1}^{i}\buildrel{\{\psi^{i+1}\}\hskip 0.90005pt\tau}\over{\hbox to30.07814pt{\rightarrowfill}}t_{1}^{i+1} and (t1i+1,t2)R(t_{1}^{i+1},t_{2})\in R, and t1n{ψ}t_{1}^{n}\mathrel{{}^{\{\psi^{\prime}\}}\!{\downarrow}}.

If RR is an ab-bisimulation, then a pair (t1,t2)(t_{1},t_{2}) is said to satisfy the root condition in RR if the following conditions hold:

  • if t1{ϕ}αt1t_{1}\buildrel{\{\phi\}\hskip 0.90005pt\alpha}\over{\hbox to25.16394pt{\rightarrowfill}}t_{1}^{\prime}, then there exists a finite set Ψ𝒞𝑠𝑎𝑡\Psi\subseteq\mathcal{C}^{\mathit{sat}} such that 𝔇ϕΨ\mathfrak{D}\mathrel{\,\models\,}\phi\mathrel{\Rightarrow}\bigvee\Psi and, for all ψΨ\psi\in\Psi, there exist an α[α]\alpha^{\prime}\in[\alpha] and a t2𝒫𝑟𝑒𝑐t_{2}^{\prime}\in\mathcal{P}_{\mathit{rec}} such that t2{ψ}αt2t_{2}\buildrel{\{\psi\}\hskip 0.90005pt\alpha^{\prime}}\over{\hbox to26.50394pt{\rightarrowfill}}t_{2}^{\prime} and (t1,t2)R(t_{1}^{\prime},t_{2}^{\prime})\in R;

  • if t2{ϕ}αt2t_{2}\buildrel{\{\phi\}\hskip 0.90005pt\alpha}\over{\hbox to25.16394pt{\rightarrowfill}}t_{2}^{\prime}, then there exists a finite set Ψ𝒞𝑠𝑎𝑡\Psi\subseteq\mathcal{C}^{\mathit{sat}} such that 𝔇ϕΨ\mathfrak{D}\mathrel{\,\models\,}\phi\mathrel{\Rightarrow}\bigvee\Psi and, for all ψΨ\psi\in\Psi, there exist an α[α]\alpha^{\prime}\in[\alpha] and a t1𝒫𝑟𝑒𝑐t_{1}^{\prime}\in\mathcal{P}_{\mathit{rec}} such that t1{ψ}αt1t_{1}\buildrel{\{\psi\}\hskip 0.90005pt\alpha^{\prime}}\over{\hbox to26.50394pt{\rightarrowfill}}t_{1}^{\prime} and (t1,t2)R(t_{1}^{\prime},t_{2}^{\prime})\in R;

  • if t1{ϕ}t_{1}\mathrel{{}^{\{\phi\}}\!{\downarrow}}, then there exists a finite set Ψ𝒞𝑠𝑎𝑡\Psi\subseteq\mathcal{C}^{\mathit{sat}} such that 𝔇ϕΨ\mathfrak{D}\mathrel{\,\models\,}\phi\mathrel{\Rightarrow}\bigvee\Psi and, for all ψΨ\psi\in\Psi, t2{ψ}t_{2}\mathrel{{}^{\{\psi\}}\!{\downarrow}};

  • if t2{ϕ}t_{2}\mathrel{{}^{\{\phi\}}\!{\downarrow}}, then there exists a finite set Ψ𝒞𝑠𝑎𝑡\Psi\subseteq\mathcal{C}^{\mathit{sat}} such that 𝔇ϕΨ\mathfrak{D}\mathrel{\,\models\,}\phi\mathrel{\Rightarrow}\bigvee\Psi and, for all ψΨ\psi\in\Psi, t1{ψ}t_{1}\mathrel{{}^{\{\psi\}}\!{\downarrow}}.

Two terms t1,t2𝒫𝑟𝑒𝑐t_{1},t_{2}\in\mathcal{P}_{\mathit{rec}} are rooted ab-bisimulation equivalent, written t1¯𝗋𝖺𝖻t2t_{1}\mathrel{\mathchoice{\raisebox{1.1625pt}{$\displaystyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rab}}$}{}}{\raisebox{1.1625pt}{$\textstyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rab}}$}{}}{\raisebox{1.1625pt}{$\scriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rab}}$}{}}{\raisebox{1.1625pt}{$\scriptscriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rab}}$}{}}}t_{2}, if there exists an ab-bisimulation RR such that (t1,t2)R(t_{1},t_{2})\in R and (t1,t2)(t_{1},t_{2}) satisfies the root condition in RR.

In the absence of the constant τ\tau, rooted ab-bisimulation equivalence is essentially the same as splitting bisimulation equivalence as defined in [7]. In the absence of all terms of sort 𝐂{\mathbf{C}} other than the constants 𝗍{\mathsf{t}} and 𝖿{\mathsf{f}}, rooted ab-bisimulation equivalence is essentially the same as rooted branching bisimulation equivalence as defined in [41].

I conjecture that, for all terms t1,t2𝒫𝑟𝑒𝑐t_{1},t_{2}\in\mathcal{P}_{\mathit{rec}}, t1¯𝗋𝖻t2t_{1}\mathrel{\mathchoice{\raisebox{1.1625pt}{$\displaystyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\textstyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}{\raisebox{1.1625pt}{$\scriptscriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rb}}$}{}}}t_{2} iff t1¯𝗋𝖺𝖻t2t_{1}\mathrel{\mathchoice{\raisebox{1.1625pt}{$\displaystyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rab}}$}{}}{\raisebox{1.1625pt}{$\textstyle\underline{{\leftrightarrow}}_{\hskip 0.31502pt\mathsf{rab}}$}{}}{\raisebox{1.1625pt}{$\scriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rab}}$}{}}{\raisebox{1.1625pt}{$\scriptscriptstyle\underline{{\leftrightarrow}}_{\hskip 0.225pt\mathsf{rab}}$}{}}}t_{2}.

References

  • [1] J. C. M. Baeten and J. A. Bergstra. Global renaming operators in concrete process algebra. Information and Control, 78(3):205–245, 1988. doi:10.1016/0890-5401(88)90027-2
  • [2] J. C. M. Baeten and J. A. Bergstra. Process algebra with signals and conditions. In M. Broy, editor, Programming and Mathematical Methods, volume F88 of NATO ASI Series, pages 273–323. Springer-Verlag, 1992. doi:10.1007/978-3-642-77572-713
  • [3] J. C. M. Baeten and W. P. Weijland. Process Algebra, volume 18 of Cambridge Tracts in Theoretical Computer Science. Cambridge University Press, Cambridge, 1990. doi:10.1017/CBO9780511624193
  • [4] A. A. Basten. Branching bisimulation is an equivalence indeed! Information Processing Letters, 58(3):141–147, 1996. doi:10.1016/0020-0190(96)00034-8
  • [5] D. E. Bell and L. J. La Padula. Secure computer systems: Mathematical foundations and model. Technical Report M74-244, MITRE Corporation, 1973.
  • [6] J. A. Bergstra and J. W. Klop. Process algebra for synchronous communication. Information and Control, 60(1–3):109–137, 1984. doi:10.1016/S0019-9958(84)80025-X
  • [7] J. A. Bergstra and C. A. Middelburg. Splitting bisimulations and retrospective conditions. Information and Computation, 204(7):1083–1138, 2006. doi:10.1016/j.ic.2006.03.003
  • [8] J. A. Bergstra and C. A. Middelburg. A process calculus with finitary comprehended terms. Theory of Computing Systems, 53(4):645–668, 2013. doi:10.1007/s00224-013-9468-x
  • [9] J. A. Bergstra and C. A. Middelburg. Using Hoare logic in a process algebra setting. Fundamenta Informaticae, 179(4):321–344, 2021. doi:10.3233/FI-2021-2026
  • [10] A. Bohannon et al. Reactive noninterference. In CCS ’09, pages 79–90. ACM Press, 2009. doi:10.1145/1653662.1653673
  • [11] A. Bossi, R. Focardi, C. Piazza, and S. Rossi. Verifying persistent security properties. Computer Languages, Systems & Structures, 30(3–4):231–258, 2004. doi:10.1016/j.cl.2004.02.005
  • [12] G. Boudol and I. Castellani. Noninterference for concurrent programs and thread systems. Theoretical Computer Science, 281(1–2):109–130, 2002. doi:10.1016/S0304-3975(02)00010-5
  • [13] M. S. Bouwman, S. P. Luttik, W. R. M. Schols, and T. A. C. Willemse. A process algebra with global variables. Electronic Proceedings in Theoretical Computer Science, 322:33–50, 2020. doi:10.4204/EPTCS.322.5
  • [14] E. Cohen. Information transmission in computational systems. In SOSP ’77, pages 133–139. ACM Press, 1977. doi:10.1145/1067625.806556
  • [15] E. Cohen. Information transmission in sequential programs. In R. A. DeMillo, D. P. Dobkin, A. K. Jones, and R. J. Lipton, editors, Foundations of Secure Computation, pages 297–335. Academic Press, 1978.
  • [16] R. Colvin and I. J. Hayes. CSP with hierarchical state. In M. Leuschel and H. Wehrheim, editors, IFM 2009, volume 5423 of Lecture Notes in Computer Science, pages 118–135. Springer-Verlag, 2009. doi:10.1007/978-3-642-00255-7_9
  • [17] D. E. Denning. A lattice model of secure information flow. Communications of the ACM, 19(5):236–243, 1976. doi:10.1145/360051.360056
  • [18] D. E. Denning and P. J. Denning. Certification of programs for secure information flow. Communications of the ACM, 20(7):504–513, 1977. doi:10.1145/359636.359712
  • [19] A. Fehnker, R. J. van Glabbeek, P. Höfner, A. McIver, M. Portmann, and W. L. Tan. A process algebra for wireless mesh networks. In H. Seidl, editor, ESOP 2012, volume 7211 of Lecture Notes in Computer Science, pages 295–315. Springer-Verlag, 2012. doi:10.1007/978-3-642-28869-2_15
  • [20] R. Focardi and R. Gorrieri. A classification of security properties for process algebras. Journal of Computer Security, 3(1):5–33, 1995. doi:10.3233/JCS-1994/1995-3103
  • [21] R. Focardi, S. Rossi, and A. Sabelfeld. Bridging language-based and process calculi security. In V. Sassone, editor, FOSSACS 2005, volume 3441 of Lecture Notes in Computer Science, pages 299–315. Springer-Verlag, 2005. doi:10.1007/978-3-540-31982-5_19
  • [22] W. J. Fokkink. Introduction to Process Algebra. Texts in Theoretical Computer Science, An EATCS Series. Springer-Verlag, Berlin, 2000. doi:10.1007/978-3-662-04293-9
  • [23] W. J. Fokkink. Rooted branching bisimulation as a congruence. Journal of Computer and System Sciences, 60(1):13–37, 2000. doi:10.1006/jcss.1999.1663
  • [24] J. A. Goguen. Theorem proving and algebra. arXiv:2101.02690 [cs.LO], January 2021. arXiv:2101.02690
  • [25] J. F. Groote and A. Ponse. Process algebra with guards: Combining Hoare logic with process algebra. Formal Aspects of Computing, 6(2):115–164, 1994. doi:10.1007/BF01221097
  • [26] D. Harel and A. Pnueli. On the development of reactive systems. In K. Apt, editor, Logics and Models of Concurrent Systems, volume F13 of NATO ASI Series, pages 477–498. Springer-Verlag, 1985. doi:10.1007/978-3-642-82453-1_17
  • [27] M. Hennessy and A. Ingólfsdóttir. Communicating processes with value-passing and assignments. Formal Aspects of Computing, 5(5):432–466, 1993. doi:10.1007/BF01212486
  • [28] M. Hennessy and H. Lin. Symbolic bisimulations. Theoretical Computer Science, 138:353–389, 1995. doi:10.1016/0304-3975(94)00172-F
  • [29] K. Honda and N. Yoshida. A uniform type structure for secure information flow. ACM Transactions on Programming Languages and Systems, 29(6):Article 31, 2007. doi:10.1145/1286821.1286822
  • [30] L. Lamport. The temporal logic of actions. ACM Transactions on Programming Languages and Systems, 16(3):872–923, 1994. doi:10.1145/177492.177726
  • [31] G. Lowe. Semantic models for information flow. Theoretical Computer Science, 315(1):209–256, 2004. doi:10.1016/j.tcs.2003.11.019
  • [32] M. R. Mousavi, M. A. Reniers, and J. F. Groote. Notions of bisimulation and congruence formats for SOS with data. Information and Computation, 200:107–147, 2005. doi:10.1016/j.ic.2005.03.002
  • [33] R. De Nicola and R. Pugliese. Testing semantics of asynchronous distributed programs. In M. Dam, editor, LOMAPS 1996, volume 1192 of Lecture Notes in Computer Science, pages 320–344. Springer-Verlag, 1997. doi:10.1007/3-540-62503-8_15
  • [34] K. R. O’Neill, M. R. Clarkson, and S. Chong. Information-flow security for interactive programs. In CSFW 2006, pages 190–201. IEEE, 2006. doi:10.1109/CSFW.2006.16
  • [35] D. Pigozzi and A. Salibra. The abstract variable-binding calculus. Studia Logica, 55(1):129–179, 1995. doi:10.1007/BF01053036
  • [36] P. Y. A. Ryan and S. A. Schneider. Process algebra and non-interference. In CSFW 1999, pages 214–227. IEEE, 1999. doi:10.1109/CSFW.1999.779775
  • [37] N. B. Said and I. Cristescu. End-to-end information flow security for web services orchestration. Science of Computer Programming, 187:102376, 2020. doi:10.1016/j.scico.2019.102376
  • [38] D. Sannella and A. Tarlecki. Algebraic preliminaries. In E. Astesiano, H.-J. Kreowski, and B. Krieg-Brückner, editors, Algebraic Foundations of Systems Specification, pages 13–30. Springer-Verlag, Berlin, 1999. doi:10.1007/978-3-642-59851-7_2
  • [39] F. B. Schneider. On Concurrent Programming. Graduate Texts in Computer Science. Springer-Verlag, Berlin, 1997. doi:10.1007/978-1-4612-1830-2
  • [40] G. Smith and D. Volpano. Secure information flow in a multi-threaded imperative language. In POPL ’98, pages 355–364. ACM Press, 1998. doi:10.1145/268946.268975
  • [41] R. J. van Glabbeek and W. P. Weijland. Branching time and abstraction in bisimulation semantics. Journal of the ACM, 43(3):555–600, 1996. doi:10.1145/233551.233556
  • [42] D. Volpano, C. Irvine, and G. Smith. A sound type system for secure flow analysis. Journal of Computer Security, 4(3):167–187, 1996. doi:10.3233/JCS-1996-42-304
  • [43] M. Wirsing. Algebraic specification. In J. van Leeuwen, editor, Handbook of Theoretical Computer Science, volume B, pages 675–788. Elsevier, Amsterdam, 1990. doi:10.1016/B978-0-444-88074-1.50018-4