(Translated by https://www.hiragana.jp/)
On the Relative Completeness of Satisfaction-based Probabilistic Hoare Logic With While Loop

On the Relative Completeness of Satisfaction-based Probabilistic Hoare Logic With While Loop

Xin Sun xin.sun.logic@gmail.com Zhejiang LabHangzhouZhejiangChina Xingchi Su x.su1993@gmail.com Zhejiang LabHangzhouZhejiangChina Xiaoning Bian bian@zhejianglab.com Zhejiang LabHangzhouZhejiangChina  and  Anran Cui 52265902013@stu.ecnu.edu.cn East China Normal UniversityShanghaiChina
(2018)
Abstract.

Probabilistic Hoare logic (PHL) is an extension of Hoare logic and is specifically useful in verifying randomized programs. It allows researchers to formally reason about the behavior of programs with stochastic elements, ensuring the desired probabilistic properties are upheld. The relative completeness of satisfaction-based PHL has been an open problem ever since the birth of the first PHL in 1979. More specifically, no satisfaction-based PHL with While-loop has been proven to be relatively complete yet. This paper solves this problem by establishing a new PHL with While-loop and prove its relative completeness. The programming language concerned in our PHL is expressively equivalent to the existing PHL systems but brings a lot of convenience in showing completeness. The weakest preterm for While-loop command reveals how it changes the probabilistic properties of computer states, considering both execution branches that halt and infinite runs. We prove the relative completeness of our PHL in two steps. We first establish a semantics and proof system of Hoare triples with probabilistic programs and deterministic assertions. Then, by utilizing the weakest precondition of deterministic assertions, we construct the weakest preterm calculus of probabilistic expressions. The relative completeness of our PHL is then obtained as a consequence of the weakest preterm calculus.

Hoare logic, Probabilistic program, Relative completeness, Formal verification, Weakest precondition
copyright: acmlicensedjournalyear: 2018doi: XXXXXXX.XXXXXXXconference: Make sure to enter the correct conference title from your rights confirmation emai; October 14-18, 2024; Salt Lake City, U.S.A.isbn: 978-1-4503-XXXX-X/18/06

1. Introduction

Hoare Logic. Hoare logic provides a formalization with logical rules on reasoning about the correctness of programs. It was originally designed by C. A. R. Hoare in 1969 in his seminal paper (Hoare, 1969) which was in turn extended by himself in (Hoare, 1971a). The underpinning idea captures the precondition and postcondition of executing a certain program. The precondition describes the property that the command relies on as a start. The postcondition describes the property that the command must lead to after each correct execution. Hoare logic has become one of the most influential tools in the formal verification of programs in the past decades. It has been successfully applied in analysis of deterministic (Hoare, 1969, 1971a; Winskel, 1993), nondeterministic (Dijkstra, 1975, 1976; Apt, 1984), recursive (Hoare, 1971b; Foley and Hoare, 1971; Apt et al., 2009b), probabilistic (Ramshaw, 1979; Den Hartog and de Vink, 2002; Chadha et al., 2007; Rand and Zdancewic, 2015) and quantum programs (Ying, 2011; Liu et al., 2019; Unruh, 2019; Zhou et al., 2019; Deng and Feng, 2022). A comprehensive review of Hoare logic is referred to Apt, Boer, and Olderog (Apt et al., 2009a; Apt and Olderog, 2019).

Probabilistic Hoare Logic. Probabilistic Hoare logic (PHL) (Ramshaw, 1979; Den Hartog and de Vink, 2002; Chadha et al., 2007; Rand and Zdancewic, 2015) is an extension of Hoare logic. It introduces probabilistic commands to handle programs with randomized behavior, providing tools to derive probabilistic assertions that guarantee a program fulfills its intended behavior with certain probabilities. Nowadays PHL plays important roles in the formal verification of cryptographic algorithm (Corin and den Hartog, 2005; den Hartog, 2008; Barthe et al., 2009, 2012, 2013), machine learning algorithm (Sutskever et al., 2013; Srivastava et al., 2014) and others systems involving uncertainty.

Ramshaw (Ramshaw, 1979) developed the first Probabilistic Hoare Logic (PHL) using a truth-functional assertion language, where logic formulas are interpreted as either true or false. This type of PHL is called satisfaction-based PHL within the Hoare logic community. There are two types of formulas in this logic: deterministic formulas and probabilistic formulas. The truth value of deterministic formulas is interpreted on program states, which are functions that map program variables to their values. On the other hand, the truth value of probabilistic formulas is interpreted on the probability distribution of program states. However, Ramshaw’s PHL is incomplete and may not be able to prove some simple and valid assertions.

To address this problem, expectation-based PHL was introduced in a series of work (Kozen, 1985; Jones, 1990; Morgan et al., 1996; Morgan and McIver, 1999). This approach employs arithmetical assertions instead of truth-functional assertions. In this context, a Hoare triple {f}C{g}𝑓𝐶𝑔\{f\}C\{g\}{ italic_f } italic_C { italic_g } represents that the expected value of the function g𝑔gitalic_g after the execution of program C𝐶Citalic_C should be at least as high as the expected value of the function f𝑓fitalic_f before the execution.

Different Probabilistic Commands. Satisfaction-based PHL was developed further by den Hartog, Vink and Ricardo (Den Hartog and de Vink, 2002; Corin and den Hartog, 2005; den Hartog, 2008). Their PHL captures randomized behaviors by probabilistic choices, where the command S1subscript𝑆1S_{1}italic_S start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT is chosen with probability ρ𝜌\rhoitalic_ρ and the command S2subscript𝑆2S_{2}italic_S start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT is chosen with probability 1ρ1𝜌1-\rho1 - italic_ρ, represented as S1ρS2subscriptdirect-sum𝜌subscript𝑆1subscript𝑆2S_{1}\oplus_{\rho}S_{2}italic_S start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ⊕ start_POSTSUBSCRIPT italic_ρ end_POSTSUBSCRIPT italic_S start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT. They also provide a denotational semantics accordingly and establish the completeness of the proof system without a while-loop. On the other hand, Chadha et al. (Chadha et al., 2007) constructed their PHL by incorporating randomness from tossing a biased coin. They showed that their PHL without the while-loop is complete and decidable. Rand and Zdancewic (Rand and Zdancewic, 2015) established the randomness of their PHL by also using a biased coin. They formally verified their logic in the Coq proof assistant.

Our Contribution. While recent work (Batz et al., 2021) has proved that expectation-based PHL with the While loop is relatively complete, the work to date has not proven the relative completeness of any satisfaction-based PHL with the While loop. This is just the main contribution of this paper. To elaborate:

  1. (1)

    We propose a new satisfaction-based PHL in which the randomness is introduced by the command of probabilistic assignment, i.e., X${a1:k1,,an:kn}currency-dollar𝑋conditional-setsubscript𝑎1:subscript𝑘1subscript𝑎𝑛subscript𝑘𝑛X\xleftarrow{\$}\{a_{1}:k_{1},...,a_{n}:k_{n}\}italic_X start_ARROW over$ ← end_ARROW { italic_a start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT : italic_k start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , … , italic_a start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT : italic_k start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT }. This construction makes our logic concise in expressing random assignments with respect to discrete distribution, which are commonly seen in areas of cryptography, computer vision, coding theory and biology (Gordon et al., 2014). For example, in cryptographic algorithms, almost all nonces are chosen from some prepared discrete distributions on integers, rational or real numbers. Similarly, in the phase of parameter setting, a machine learning algorithm would choose parameters from a distribution over floating point numbers w.r.t. with some accuracy (discrete as well). The probabilistic assignment also brings a lot of convenience to the completeness proof since it can be treated as a probabilistic extension of the normal assignment. It is also expressively equivalent to the existing randomized commands, like probabilistic choices and biased coins.

  2. (2)

    We find out the appropriate weakest preterm for probabilistic expressions w.r.t. While-loop. It shows how While-loop changes the probabilistic properties of computer states, considering both execution branches that halt and infinite runs. As a preview, we prove the relative completeness of our PHL in two steps. We first establish a proof system of Hoare triples with deterministic assertions. Then, by utilizing the weakest precondition of deterministic assertions, we construct the weakest preterm calculus of probabilist expressions. The relative completeness of our PHL is then obtained as an application of the weakest preterm calculus.

The outline of this paper is as follows. We first introduce our PHL with deterministic assertions in Section 2. We define the denotational semantics of deterministic assertions, construct a proof system and show that it is sound and relatively complete. Then Section 3 introduces the proof system for probabilistic assertions based on weakest preconditions and proves that it is relatively complete as well. We conclude this paper with future work in Section 4.

2. Probabilistic Hoare Logic with Deterministic Assertion

Hoare logic is a formal system that reasons about ”Hoare triples” of the form {ϕ}C{ψ}italic-ϕ𝐶𝜓\{\phi\}C\{\psi\}{ italic_ϕ } italic_C { italic_ψ }. A Hoare triple characterizes the effect of a command C𝐶Citalic_C on the states that satisfy the precondition ϕitalic-ϕ\phiitalic_ϕ, which means that if a program state satisfies ϕitalic-ϕ\phiitalic_ϕ, it must also satisfy the postcondition ψ𝜓\psiitalic_ψ after the correct execution of C𝐶Citalic_C on the state. These assertions, also known as formulas, are built from deterministic and probabilistic expressions and will be defined in this section and the next. The commands C𝐶Citalic_C are based on classical program statements such as assignment, conditional choice, while loop, and so on. This section will focus on the deterministic formulas.

2.1. Deterministic Expressions and Formulas

Let 𝕍={X,Y,Z,}𝕍𝑋𝑌𝑍\mathbb{PV}=\{X,Y,Z,\ldots\}blackboard_P blackboard_V = { italic_X , italic_Y , italic_Z , … } be a set of program variables denoted by capital letters. Let 𝕃𝕍={x,y,z,}𝕃𝕍𝑥𝑦𝑧\mathbb{LV}=\{x,y,z,\ldots\}blackboard_L blackboard_V = { italic_x , italic_y , italic_z , … } be a set of logical variables. We assume 𝕃𝕍𝕃𝕍\mathbb{LV}blackboard_L blackboard_V and 𝕍𝕍\mathbb{PV}blackboard_P blackboard_V are disjoint. Program variables are those variables that may occur in programs. They constitute deterministic expressions. Deterministic expressions are classified into arithmetic expression E𝐸Eitalic_E and Boolean expression B𝐵Bitalic_B. The arithmetic expression consists of integer constant n𝑛n\in\mathbb{Z}italic_n ∈ blackboard_Z and variables from 𝕍𝕍\mathbb{PV}blackboard_P blackboard_V. It also involves arithmetic operators between these components. The arithmetic operator set is defined as {+,,×,}×\{+,-,\times,...\}\subseteq\mathbb{Z}\times\mathbb{Z}\rightarrow\mathbb{Z}{ + , - , × , … } ⊆ blackboard_Z × blackboard_Z → blackboard_Z. In contrast, logical variables are used only in assertions.

Definition 2.1 (Arithmetic expressions).

Given a set of program variables 𝕍𝕍\mathbb{PV}blackboard_P blackboard_V, we define the arithmetic expression E𝐸Eitalic_E as follows:

E:=nX(EaopE)assign𝐸𝑛delimited-∣∣𝑋𝐸𝑎𝑜𝑝𝐸E:=n\mid X\mid(E\ aop\ E)italic_E := italic_n ∣ italic_X ∣ ( italic_E italic_a italic_o italic_p italic_E ).

This syntax allows an arithmetic expression (E𝐸Eitalic_E) to be either an integer constant (n𝑛nitalic_n), a program variable (X𝑋Xitalic_X), or a composition of two arithmetic expressions (EaopE𝐸𝑎𝑜𝑝𝐸E\ aop\ Eitalic_E italic_a italic_o italic_p italic_E) built by an arithmetic operation (aop𝑎𝑜𝑝aopitalic_a italic_o italic_p). They intuitively represent integers in programs.

The Boolean constant set is 𝔹={,}𝔹topbottom\mathbb{B}=\{\top,\bot\}blackboard_B = { ⊤ , ⊥ }. We define relational operators (rop𝑟𝑜𝑝ropitalic_r italic_o italic_p) to be performed on arithmetic expressions including {>,<,,=,,}×𝔹𝔹\{>,<,\geq,=,\leq,...\}\subseteq\mathbb{Z}\times\mathbb{Z}\rightarrow\mathbb{B}{ > , < , ≥ , = , ≤ , … } ⊆ blackboard_Z × blackboard_Z → blackboard_B. And logical operators, e.g., ,,¬,,\wedge,\vee,\neg,\rightarrow,...∧ , ∨ , ¬ , → , …, can be applied to any Boolean expressions.

Definition 2.2 (Boolean expressions).

The Boolean expression is defined as follows:

B:=(EropE)¬B(BlopB).assign𝐵topdelimited-∣∣bottomdelimited-∣∣𝐸𝑟𝑜𝑝𝐸𝐵𝐵𝑙𝑜𝑝𝐵B:=\top\mid\bot\mid(E\ rop\ E)\mid\neg B\mid(B\ lop\ B).italic_B := ⊤ ∣ ⊥ ∣ ( italic_E italic_r italic_o italic_p italic_E ) ∣ ¬ italic_B ∣ ( italic_B italic_l italic_o italic_p italic_B ) .

A Boolean expression represents some truth value, true or false. The expression (EropE)𝐸𝑟𝑜𝑝𝐸(E\ rop\ E)( italic_E italic_r italic_o italic_p italic_E ) represents that the truth value is determined by the binary relation rop𝑟𝑜𝑝ropitalic_r italic_o italic_p between two integers.

The semantics of deterministic expressions is defined on deterministic states S𝑆Sitalic_S which are denoted as mappings S:𝕍:𝑆𝕍S:\mathbb{PV}\rightarrow\mathbb{Z}italic_S : blackboard_P blackboard_V → blackboard_Z. Let 𝕊𝕊\mathbb{S}blackboard_S be the set of all deterministic states. Each state S𝕊𝑆𝕊S\in\mathbb{S}italic_S ∈ blackboard_S is a description of the value of every program variable. Accordingly, the semantics of arithmetic expressions is [[E]]:𝕊:delimited-[]delimited-[]𝐸𝕊[\![E]\!]:\ \mathbb{S}\rightarrow\mathbb{Z}[ [ italic_E ] ] : blackboard_S → blackboard_Z which maps each deterministic state to an integer. Analogously, the semantics of Boolean expressions is [[B]]:𝕊𝔹:delimited-[]delimited-[]𝐵𝕊𝔹[\![B]\!]:\ \mathbb{S}\rightarrow\mathbb{B}[ [ italic_B ] ] : blackboard_S → blackboard_B which maps each state to a Boolean value.

Definition 2.3 (Semantics of deterministic expressions).

The semantics of deterministic expressions are defined inductively as follows:

[[X]]Sdelimited-[]delimited-[]𝑋𝑆[\![X]\!]S[ [ italic_X ] ] italic_S = S(X)𝑆𝑋S(X)italic_S ( italic_X )
[[n]]Sdelimited-[]delimited-[]𝑛𝑆[\![n]\!]S[ [ italic_n ] ] italic_S = n𝑛nitalic_n
[[E1aopE2]]Sdelimited-[]delimited-[]subscript𝐸1𝑎𝑜𝑝subscript𝐸2𝑆[\![E_{1}\ aop\ E_{2}]\!]S[ [ italic_E start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT italic_a italic_o italic_p italic_E start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ] ] italic_S = [[E1]]Saop[[E2]]Sdelimited-[]delimited-[]subscript𝐸1𝑆𝑎𝑜𝑝delimited-[]delimited-[]subscript𝐸2𝑆[\![E_{1}]\!]S\ aop\ [\![E_{2}]\!]S[ [ italic_E start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ] ] italic_S italic_a italic_o italic_p [ [ italic_E start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ] ] italic_S
[[]]Sdelimited-[]delimited-[]top𝑆[\![\top]\!]S[ [ ⊤ ] ] italic_S = top\top
[[]]Sdelimited-[]delimited-[]bottom𝑆[\![\bot]\!]S[ [ ⊥ ] ] italic_S = bottom\bot
[[E1ropE2]]Sdelimited-[]delimited-[]subscript𝐸1𝑟𝑜𝑝subscript𝐸2𝑆[\![E_{1}\ rop\ E_{2}]\!]S[ [ italic_E start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT italic_r italic_o italic_p italic_E start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ] ] italic_S = [[E1]]Srop[[E2]]Sdelimited-[]delimited-[]subscript𝐸1𝑆𝑟𝑜𝑝delimited-[]delimited-[]subscript𝐸2𝑆[\![E_{1}]\!]S\ rop\ [\![E_{2}]\!]S[ [ italic_E start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ] ] italic_S italic_r italic_o italic_p [ [ italic_E start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ] ] italic_S
[[¬B]]Sdelimited-[]delimited-[]𝐵𝑆[\![\neg B]\!]S[ [ ¬ italic_B ] ] italic_S = ¬[[B]]Sdelimited-[]delimited-[]𝐵𝑆\neg[\![B]\!]S¬ [ [ italic_B ] ] italic_S
[[B1lopB2]]Sdelimited-[]delimited-[]subscript𝐵1𝑙𝑜𝑝subscript𝐵2𝑆[\![B_{1}\ lop\ B_{2}]\!]S[ [ italic_B start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT italic_l italic_o italic_p italic_B start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ] ] italic_S = [[B1]]Slop[[B2]]Sdelimited-[]delimited-[]subscript𝐵1𝑆𝑙𝑜𝑝delimited-[]delimited-[]subscript𝐵2𝑆[\![B_{1}]\!]S\ lop\ [\![B_{2}]\!]S[ [ italic_B start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ] ] italic_S italic_l italic_o italic_p [ [ italic_B start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ] ] italic_S

As mentioned above, the interpretation of an arithmetic expression is an integer. A program variable X𝑋Xitalic_X on a deterministic state is interpreted as its value on the state. A constant is always itself over any state. An arithmetic expression E1aopE2subscript𝐸1𝑎𝑜𝑝subscript𝐸2E_{1}\ aop\ E_{2}italic_E start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT italic_a italic_o italic_p italic_E start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT is mapped to the integer calculated by the operator aop𝑎𝑜𝑝aopitalic_a italic_o italic_p applied on the interpretation of E1subscript𝐸1E_{1}italic_E start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT and the interpretation of E2subscript𝐸2E_{2}italic_E start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT on the state. The Boolean expressions can be understood similarly. For example, let S𝑆Sitalic_S be a state such that S(X)=1𝑆𝑋1S(X)=1italic_S ( italic_X ) = 1 and S(Y)=2𝑆𝑌2S(Y)=2italic_S ( italic_Y ) = 2. Then [[X+ 1]]S=2delimited-[]delimited-[]𝑋1𝑆2[\![X\ +\ 1]\!]S=2[ [ italic_X + 1 ] ] italic_S = 2 and [[(X+23)(X+Y=3)]]S=delimited-[]delimited-[]𝑋23𝑋𝑌3𝑆top[\![(X+2\leq 3)\wedge\ (X+Y=3)]\!]S=\top[ [ ( italic_X + 2 ≤ 3 ) ∧ ( italic_X + italic_Y = 3 ) ] ] italic_S = ⊤.

Next we define deterministic formulas based on deterministic expressions.

Definition 2.4 (Syntax of deterministic formulas).

The deterministic formulas are defined by the following BNF:

ϕ:=(erope)¬ϕ(ϕlopϕ)xϕ\phi:=\top\mid\bot\mid(e\ rop\ e)\mid\neg\phi\mid(\phi\ lop\ \phi)\mid\forall x\phiitalic_ϕ := ⊤ ∣ ⊥ ∣ ( italic_e italic_r italic_o italic_p italic_e ) ∣ ¬ italic_ϕ ∣ ( italic_ϕ italic_l italic_o italic_p italic_ϕ ) ∣ ∀ italic_x italic_ϕ

where e𝑒eitalic_e represents arithmetic expression build on 𝕃𝕍𝕍𝕃𝕍𝕍\mathbb{LV}\cup\mathbb{PV}blackboard_L blackboard_V ∪ blackboard_P blackboard_V:

e:=nXx(eaope)assign𝑒conditional𝑛delimited-∣∣𝑋𝑥𝑒𝑎𝑜𝑝𝑒e:=n\mid X\mid x\mid(e\ aop\ e)italic_e := italic_n ∣ italic_X ∣ italic_x ∣ ( italic_e italic_a italic_o italic_p italic_e ).

We restricts lop𝑙𝑜𝑝lopitalic_l italic_o italic_p to the classical operators: ¬\neg¬ and \wedge. \vee and \to can be expressed in the standard way. The formula xϕfor-all𝑥italic-ϕ\forall x\phi∀ italic_x italic_ϕ applies universal quantifier to the logical variable x𝑥xitalic_x in formula ϕitalic-ϕ\phiitalic_ϕ.

An interpretation I:𝕃𝕍:𝐼maps-to𝕃𝕍I:\mathbb{LV}\mapsto\mathbb{Z}italic_I : blackboard_L blackboard_V ↦ blackboard_Z is a function which maps logical variables to integers. Given an interpretation I𝐼Iitalic_I and a deterministic state S𝑆Sitalic_S, the semantics of e𝑒eitalic_e is defined as follows.

[[n]]ISsuperscriptdelimited-[]delimited-[]𝑛𝐼𝑆[\![n]\!]^{I}S[ [ italic_n ] ] start_POSTSUPERSCRIPT italic_I end_POSTSUPERSCRIPT italic_S = n𝑛nitalic_n
[[X]]ISsuperscriptdelimited-[]delimited-[]𝑋𝐼𝑆[\![X]\!]^{I}S[ [ italic_X ] ] start_POSTSUPERSCRIPT italic_I end_POSTSUPERSCRIPT italic_S = S(X)𝑆𝑋S(X)italic_S ( italic_X )
[[x]]ISsuperscriptdelimited-[]delimited-[]𝑥𝐼𝑆[\![x]\!]^{I}S[ [ italic_x ] ] start_POSTSUPERSCRIPT italic_I end_POSTSUPERSCRIPT italic_S = I(x)𝐼𝑥I(x)italic_I ( italic_x )
[[E1aopE2]]ISsuperscriptdelimited-[]delimited-[]subscript𝐸1𝑎𝑜𝑝subscript𝐸2𝐼𝑆[\![E_{1}\ aop\ E_{2}]\!]^{I}S[ [ italic_E start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT italic_a italic_o italic_p italic_E start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ] ] start_POSTSUPERSCRIPT italic_I end_POSTSUPERSCRIPT italic_S = [[E1]]ISaop[[E2]]ISsuperscriptdelimited-[]delimited-[]subscript𝐸1𝐼𝑆𝑎𝑜𝑝superscriptdelimited-[]delimited-[]subscript𝐸2𝐼𝑆[\![E_{1}]\!]^{I}S\ aop\ [\![E_{2}]\!]^{I}S[ [ italic_E start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ] ] start_POSTSUPERSCRIPT italic_I end_POSTSUPERSCRIPT italic_S italic_a italic_o italic_p [ [ italic_E start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ] ] start_POSTSUPERSCRIPT italic_I end_POSTSUPERSCRIPT italic_S

The semantics of a deterministic formula is denoted by [[ϕ]]I={SSIϕ}superscriptdelimited-[]delimited-[]italic-ϕ𝐼conditional-set𝑆superscriptmodels𝐼𝑆italic-ϕ[\![\phi]\!]^{I}=\{S\mid S\models^{I}\phi\}[ [ italic_ϕ ] ] start_POSTSUPERSCRIPT italic_I end_POSTSUPERSCRIPT = { italic_S ∣ italic_S ⊧ start_POSTSUPERSCRIPT italic_I end_POSTSUPERSCRIPT italic_ϕ } which represents the set of all states satisfying ϕitalic-ϕ\phiitalic_ϕ.

Definition 2.5 (Semantics of deterministic formulas).

The semantics of deterministic formulas is defined inductively as follows:

[[]]Isuperscriptdelimited-[]delimited-[]top𝐼[\![\top]\!]^{I}[ [ ⊤ ] ] start_POSTSUPERSCRIPT italic_I end_POSTSUPERSCRIPT = 𝕊𝕊\mathbb{S}blackboard_S
[[]]Isuperscriptdelimited-[]delimited-[]bottom𝐼[\![\bot]\!]^{I}[ [ ⊥ ] ] start_POSTSUPERSCRIPT italic_I end_POSTSUPERSCRIPT = \emptyset
[[e1rope2]]Isuperscriptdelimited-[]delimited-[]subscript𝑒1𝑟𝑜𝑝subscript𝑒2𝐼[\![e_{1}\ rop\ e_{2}]\!]^{I}[ [ italic_e start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT italic_r italic_o italic_p italic_e start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ] ] start_POSTSUPERSCRIPT italic_I end_POSTSUPERSCRIPT = {S𝕊[[e1]]ISrop[[e2]]IS=}conditional-set𝑆𝕊superscriptdelimited-[]delimited-[]subscript𝑒1𝐼𝑆𝑟𝑜𝑝superscriptdelimited-[]delimited-[]subscript𝑒2𝐼𝑆top\{S\in\mathbb{S}\mid[\![e_{1}]\!]^{I}S\ rop\ [\![e_{2}]\!]^{I}S=\top\}{ italic_S ∈ blackboard_S ∣ [ [ italic_e start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ] ] start_POSTSUPERSCRIPT italic_I end_POSTSUPERSCRIPT italic_S italic_r italic_o italic_p [ [ italic_e start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ] ] start_POSTSUPERSCRIPT italic_I end_POSTSUPERSCRIPT italic_S = ⊤ }
[[¬ϕ]]Isuperscriptdelimited-[]delimited-[]italic-ϕ𝐼[\![\neg\phi]\!]^{I}[ [ ¬ italic_ϕ ] ] start_POSTSUPERSCRIPT italic_I end_POSTSUPERSCRIPT = 𝕊\[[ϕ]]I\𝕊superscriptdelimited-[]delimited-[]italic-ϕ𝐼\mathbb{S}\backslash[\![\phi]\!]^{I}blackboard_S \ [ [ italic_ϕ ] ] start_POSTSUPERSCRIPT italic_I end_POSTSUPERSCRIPT
[[ϕ1ϕ2]]Isuperscriptdelimited-[]delimited-[]subscriptitalic-ϕ1subscriptitalic-ϕ2𝐼[\![\phi_{1}\wedge\phi_{2}]\!]^{I}[ [ italic_ϕ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ∧ italic_ϕ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ] ] start_POSTSUPERSCRIPT italic_I end_POSTSUPERSCRIPT = [[ϕ1]]I[[ϕ2]]Isuperscriptdelimited-[]delimited-[]subscriptitalic-ϕ1𝐼superscriptdelimited-[]delimited-[]subscriptitalic-ϕ2𝐼[\![\phi_{1}]\!]^{I}\cap[\![\phi_{2}]\!]^{I}[ [ italic_ϕ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ] ] start_POSTSUPERSCRIPT italic_I end_POSTSUPERSCRIPT ∩ [ [ italic_ϕ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ] ] start_POSTSUPERSCRIPT italic_I end_POSTSUPERSCRIPT
[[xϕ]]delimited-[]delimited-[]for-all𝑥italic-ϕ[\![\forall x\phi]\!][ [ ∀ italic_x italic_ϕ ] ] === {S\{S\mid{ italic_S ∣ for all integer n𝑛nitalic_n and I=I[xn]superscript𝐼𝐼delimited-[]maps-to𝑥𝑛I^{\prime}=I[x\mapsto n]italic_I start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT = italic_I [ italic_x ↦ italic_n ], SIϕ}S\models^{I^{\prime}}\phi\}italic_S ⊧ start_POSTSUPERSCRIPT italic_I start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_POSTSUPERSCRIPT italic_ϕ }

The [[]]Isuperscriptdelimited-[]delimited-[]top𝐼[\![\top]\!]^{I}[ [ ⊤ ] ] start_POSTSUPERSCRIPT italic_I end_POSTSUPERSCRIPT defaults to all deterministic states 𝕊𝕊\mathbb{S}blackboard_S, while [[]]Isuperscriptdelimited-[]delimited-[]bottom𝐼[\![\bot]\!]^{I}[ [ ⊥ ] ] start_POSTSUPERSCRIPT italic_I end_POSTSUPERSCRIPT is interpreted as the empty set. The symbol \\\backslash\ denotes complement, and [[¬ϕ]]Isuperscriptdelimited-[]delimited-[]italic-ϕ𝐼[\![\neg\phi]\!]^{I}[ [ ¬ italic_ϕ ] ] start_POSTSUPERSCRIPT italic_I end_POSTSUPERSCRIPT represents the set of remaining states in 𝕊𝕊\mathbb{S}blackboard_S after removing all states satisfying ϕitalic-ϕ\phiitalic_ϕ. The logical operations \wedge and \vee between formulas can be interpreted as intersection and union operation of state sets which satisfy corresponding formulas, respectively. And the formula xϕfor-all𝑥italic-ϕ\forall x\phi∀ italic_x italic_ϕ is satisfied on a deterministic state with interpretation I𝐼Iitalic_I if and only if ϕitalic-ϕ\phiitalic_ϕ is true with respect to all interpretations Isuperscript𝐼I^{\prime}italic_I start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT which assigns the same values to every variable as I𝐼Iitalic_I except x𝑥xitalic_x.

For example, let S𝑆Sitalic_S be a state such that S(X)=1𝑆𝑋1S(X)=1italic_S ( italic_X ) = 1 and let I(x)=3𝐼𝑥3I(x)=3italic_I ( italic_x ) = 3. The deterministic formula x((x>0)(x+X>X))for-all𝑥𝑥0𝑥𝑋𝑋\forall x((x>0)\to(x+X>X))∀ italic_x ( ( italic_x > 0 ) → ( italic_x + italic_X > italic_X ) ) is satisfied on S𝑆Sitalic_S, i.e. SIx(x>0x+X>X)superscriptmodels𝐼𝑆for-all𝑥𝑥0𝑥𝑋𝑋S\models^{I}\forall x(x>0\to x+X>X)italic_S ⊧ start_POSTSUPERSCRIPT italic_I end_POSTSUPERSCRIPT ∀ italic_x ( italic_x > 0 → italic_x + italic_X > italic_X ). It is also valid (satisfied on arbitrary state and interpretation).

2.2. Commands

Commands are actions that we perform on program states. They change a deterministic state to a probabilistic distribution of deterministic states. We introduce the probabilistic assignment command to capture the randomized executions of probabilistic programs.

Definition 2.6 (Syntax of command expressions).

The commands are defined inductively as follows:

C:=skipXEX$RC1;C2ifBthenC1elseC2while B do CC:=\texttt{skip}\mid X\leftarrow E\mid X\xleftarrow[]{\$}R\mid C_{1};C_{2}\mid% \texttt{if}\ B\ \texttt{then}\ C_{1}\ \texttt{else}\ C_{2}\mid\texttt{while}% \mbox{ }B\mbox{ }\texttt{do}\mbox{ }Citalic_C := skip ∣ italic_X ← italic_E ∣ italic_X start_ARROW over$ ← end_ARROW italic_R ∣ italic_C start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ; italic_C start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ∣ if italic_B then italic_C start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT else italic_C start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ∣ typewriter_while italic_B typewriter_do italic_C

where R={a1:k1,,an:kn}𝑅conditional-setsubscript𝑎1:subscript𝑘1subscript𝑎𝑛subscript𝑘𝑛R=\{a_{1}:k_{1},\cdots,a_{n}:k_{n}\}italic_R = { italic_a start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT : italic_k start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , ⋯ , italic_a start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT : italic_k start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT } in which {k1,,kn}subscript𝑘1subscript𝑘𝑛\{k_{1},\cdots,k_{n}\}{ italic_k start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , ⋯ , italic_k start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT } is a set of integers and a1,,ansubscript𝑎1subscript𝑎𝑛a_{1},\ldots,a_{n}italic_a start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , … , italic_a start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT are real numbers such that 0ai10subscript𝑎𝑖10\leq a_{i}\leq 10 ≤ italic_a start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ≤ 1 and a1++an=1subscript𝑎1subscript𝑎𝑛1a_{1}+\ldots+a_{n}=1italic_a start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT + … + italic_a start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT = 1. We omit those aisubscript𝑎𝑖a_{i}italic_a start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPTs when they are all equal to 1n1𝑛\frac{1}{n}divide start_ARG 1 end_ARG start_ARG italic_n end_ARG. B𝐵Bitalic_B is deterministic formula.

The command skip represents a null command doing nothing. XE𝑋𝐸X\leftarrow Eitalic_X ← italic_E is the deterministic assignment. C1;C2subscript𝐶1subscript𝐶2C_{1};C_{2}italic_C start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ; italic_C start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT is the sequential composition of C1subscript𝐶1C_{1}italic_C start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT and C2subscript𝐶2C_{2}italic_C start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT as usual. The last two expressions are the conditional choice and loop, respectively. X$Rcurrency-dollar𝑋𝑅X\xleftarrow[]{\$}Ritalic_X start_ARROW over$ ← end_ARROW italic_R can be read as a value kisubscript𝑘𝑖k_{i}italic_k start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT is chosen with probability aisubscript𝑎𝑖a_{i}italic_a start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT and is assigned to X𝑋Xitalic_X. The probabilistic assignment is the way to introduce randomness in this paper. It is worth noting that the language we use for command expressions is just as expressive as the languages that are constructed by using biased coins or probabilistic choices. This can be easily understood through an example: a probabilistic choice C113C2subscriptdirect-sum13subscript𝐶1subscript𝐶2C_{1}\oplus_{\frac{1}{3}}C_{2}italic_C start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ⊕ start_POSTSUBSCRIPT divide start_ARG 1 end_ARG start_ARG 3 end_ARG end_POSTSUBSCRIPT italic_C start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT is equivalent to the following program in our language (assuming that X𝑋Xitalic_X is a new program variable):

X${13:0,23:1};if(X=0)thenC1elseC2currency-dollar𝑋conditional-set13:0231if𝑋0thensubscript𝐶1elsesubscript𝐶2X\xleftarrow[]{\$}\{\frac{1}{3}:0,\frac{2}{3}:1\};\texttt{if}\ (X=0)\ \texttt{% then}\ C_{1}\ \texttt{else}\ C_{2}italic_X start_ARROW over$ ← end_ARROW { divide start_ARG 1 end_ARG start_ARG 3 end_ARG : 0 , divide start_ARG 2 end_ARG start_ARG 3 end_ARG : 1 } ; if ( italic_X = 0 ) then italic_C start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT else italic_C start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT

The semantics of commands is defined on probabilistic states. It shows how different commands update probabilistic states. A probabilistic state, denoted by μ𝜇\muitalic_μ, is a probability sub-distribution on deterministic states, i.e., μD(𝕊)𝜇𝐷𝕊\mu\in D(\mathbb{S})italic_μ ∈ italic_D ( blackboard_S ). Thus, each μ:𝕊[0,1]:𝜇𝕊01\mu:\mathbb{S}\to[0,1]italic_μ : blackboard_S → [ 0 , 1 ] requires that ΣS𝕊μ(S)1subscriptΣ𝑆𝕊𝜇𝑆1\Sigma_{S\in\mathbb{S}}\mu(S)\leq 1roman_Σ start_POSTSUBSCRIPT italic_S ∈ blackboard_S end_POSTSUBSCRIPT italic_μ ( italic_S ) ≤ 1. We use sub-distributions to take into account the situations where some programs may never terminate in certain states. For a deterministic state S𝕊𝑆𝕊S\in\mathbb{S}italic_S ∈ blackboard_S, μSsubscript𝜇𝑆\mu_{S}italic_μ start_POSTSUBSCRIPT italic_S end_POSTSUBSCRIPT is a special probabilistic state that assigns the value of 1 to S𝑆Sitalic_S and the value of 0 to any other state. We call it the probabilistic form of a deterministic state. A deterministic state S𝑆Sitalic_S is considered to be a support of μ𝜇\muitalic_μ if μ(S)>0𝜇𝑆0\mu(S)>0italic_μ ( italic_S ) > 0. The set of all supports of μ𝜇\muitalic_μ is denoted by sp(μ)𝑠𝑝𝜇sp(\mu)italic_s italic_p ( italic_μ ).

Definition 2.7 (Semantics of command expressions).

The semantics of commands is a function [[C]]D(𝕊)D(𝕊)delimited-[]delimited-[]𝐶𝐷𝕊𝐷𝕊[\![C]\!]\in D(\mathbb{S})\rightarrow D(\mathbb{S})[ [ italic_C ] ] ∈ italic_D ( blackboard_S ) → italic_D ( blackboard_S ). It is defined inductively as follows:

  • [[skip]](μ)=μdelimited-[]delimited-[]skip𝜇𝜇[\![\texttt{skip}]\!](\mu)=\mu[ [ skip ] ] ( italic_μ ) = italic_μ

  • [[XE]](μ)=S𝕊μ(S)μS[X[[E]]S]delimited-[]delimited-[]𝑋𝐸𝜇subscript𝑆𝕊𝜇𝑆subscript𝜇𝑆delimited-[]maps-to𝑋delimited-[]delimited-[]𝐸𝑆[\![X\leftarrow E]\!](\mu)=\displaystyle\sum\limits_{S\in\mathbb{S}}\mu(S)% \cdot\mu_{S[X\mapsto[\![E]\!]S]}[ [ italic_X ← italic_E ] ] ( italic_μ ) = ∑ start_POSTSUBSCRIPT italic_S ∈ blackboard_S end_POSTSUBSCRIPT italic_μ ( italic_S ) ⋅ italic_μ start_POSTSUBSCRIPT italic_S [ italic_X ↦ [ [ italic_E ] ] italic_S ] end_POSTSUBSCRIPT

  • [[X${a1:k1,,an:kn}]](μ)=i=1nai[[Xki]](μ)delimited-[]delimited-[]currency-dollar𝑋conditional-setsubscript𝑎1:subscript𝑘1subscript𝑎𝑛subscript𝑘𝑛𝜇superscriptsubscript𝑖1𝑛subscript𝑎𝑖delimited-[]delimited-[]𝑋subscript𝑘𝑖𝜇[\![X\xleftarrow{\$}\{a_{1}:k_{1},...,a_{n}:k_{n}\}]\!](\mu)=\displaystyle\sum% _{i=1}^{n}a_{i}[\![X\leftarrow k_{i}]\!](\mu)[ [ italic_X start_ARROW over$ ← end_ARROW { italic_a start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT : italic_k start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , … , italic_a start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT : italic_k start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT } ] ] ( italic_μ ) = ∑ start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT italic_a start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT [ [ italic_X ← italic_k start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ] ] ( italic_μ )

  • [[C1;C2]](μ)=[[C2]]([[C1]](μ))delimited-[]subscript𝐶1subscript𝐶2𝜇delimited-[]delimited-[]subscript𝐶2delimited-[]delimited-[]subscript𝐶1𝜇[\![C_{1};\ C_{2}]\!](\mu)=[\![C_{2}]\!]([\![C_{1}]\!](\mu))[ [ italic_C start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ; italic_C start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ] ] ( italic_μ ) = [ [ italic_C start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ] ] ( [ [ italic_C start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ] ] ( italic_μ ) )

  • [[ifBthenC1elseC2]](μ)=[[C1]](B(μ))+[[C2]](¬B(μ))[\![\texttt{if}\ B\ \texttt{then}\ C_{1}\ \texttt{else}\ C_{2}]\!](\mu)=[\![C_% {1}]\!](\downarrow_{B}(\mu))+[\![C_{2}]\!](\downarrow_{\neg B}(\mu))[ [ if italic_B then italic_C start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT else italic_C start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ] ] ( italic_μ ) = [ [ italic_C start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ] ] ( ↓ start_POSTSUBSCRIPT italic_B end_POSTSUBSCRIPT ( italic_μ ) ) + [ [ italic_C start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ] ] ( ↓ start_POSTSUBSCRIPT ¬ italic_B end_POSTSUBSCRIPT ( italic_μ ) )

  • [[while B do C]](μ)=i=0¬B(([[C]]B)i(μ))[\![\texttt{while}\mbox{ }B\mbox{ }\texttt{do}\mbox{ }C]\!](\mu)=\displaystyle% \sum_{i=0}^{\infty}\downarrow_{\neg B}(([\![C]\!]\circ\downarrow_{B})^{i}(\mu))[ [ typewriter_while italic_B typewriter_do italic_C ] ] ( italic_μ ) = ∑ start_POSTSUBSCRIPT italic_i = 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∞ end_POSTSUPERSCRIPT ↓ start_POSTSUBSCRIPT ¬ italic_B end_POSTSUBSCRIPT ( ( [ [ italic_C ] ] ∘ ↓ start_POSTSUBSCRIPT italic_B end_POSTSUBSCRIPT ) start_POSTSUPERSCRIPT italic_i end_POSTSUPERSCRIPT ( italic_μ ) )

The command skip changes nothing. We write S[X[[E]]S]𝑆delimited-[]maps-to𝑋delimited-[]delimited-[]𝐸𝑆S[X\mapsto[\![E]\!]S]italic_S [ italic_X ↦ [ [ italic_E ] ] italic_S ] to denote the state which assigns variables the same values as S𝑆Sitalic_S except that the variable X𝑋Xitalic_X is assigned the value [[E]]Sdelimited-[]delimited-[]𝐸𝑆[\![E]\!]S[ [ italic_E ] ] italic_S. Here B(μ)subscript𝐵absent𝜇\downarrow_{B}(\mu)↓ start_POSTSUBSCRIPT italic_B end_POSTSUBSCRIPT ( italic_μ ) denotes the distribution μ𝜇\muitalic_μ restricted to those states where B𝐵Bitalic_B is true. Formally, B(μ)=vsubscript𝐵absent𝜇𝑣\downarrow_{B}(\mu)=v↓ start_POSTSUBSCRIPT italic_B end_POSTSUBSCRIPT ( italic_μ ) = italic_v with v(S)=μ(S)𝑣𝑆𝜇𝑆v(S)=\mu(S)italic_v ( italic_S ) = italic_μ ( italic_S ) if [[B]]S=delimited-[]delimited-[]𝐵𝑆top[\![B]\!]S=\top[ [ italic_B ] ] italic_S = ⊤ and v(S)=0𝑣𝑆0v(S)=0italic_v ( italic_S ) = 0 otherwise. We can write [[C]]Sdelimited-[]delimited-[]𝐶𝑆[\![C]\!]S[ [ italic_C ] ] italic_S to denote [[C]]μSdelimited-[]delimited-[]𝐶subscript𝜇𝑆[\![C]\!]\mu_{S}[ [ italic_C ] ] italic_μ start_POSTSUBSCRIPT italic_S end_POSTSUBSCRIPT if the initial state is deterministic.

In general, if μ=[[C]]S𝜇delimited-[]delimited-[]𝐶𝑆\mu=[\![C]\!]Sitalic_μ = [ [ italic_C ] ] italic_S, Ssp(μ)superscript𝑆𝑠𝑝𝜇S^{\prime}\in sp(\mu)italic_S start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ∈ italic_s italic_p ( italic_μ ) and μ(S)=a𝜇superscript𝑆𝑎\mu(S^{\prime})=aitalic_μ ( italic_S start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ) = italic_a. Then it means that executing command C𝐶Citalic_C from state S𝑆Sitalic_S will terminate on state Ssuperscript𝑆S^{\prime}italic_S start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT with probability a𝑎aitalic_a.

Example 2.8.

Let R={12:0,12:1}𝑅conditional-set12:0121R=\{\frac{1}{2}:0,\frac{1}{2}:1\}italic_R = { divide start_ARG 1 end_ARG start_ARG 2 end_ARG : 0 , divide start_ARG 1 end_ARG start_ARG 2 end_ARG : 1 } and let S𝑆Sitalic_S be a deterministic state such that S(X)=1𝑆𝑋1S(X)=1italic_S ( italic_X ) = 1. If we run the command X$Rcurrency-dollar𝑋𝑅X\xleftarrow{\$}Ritalic_X start_ARROW over$ ← end_ARROW italic_R on S𝑆Sitalic_S, then distribution [[X${12:0,12:1}]]μS=12(μS[X0])+12(μS[X1])delimited-[]delimited-[]currency-dollar𝑋conditional-set12:0121subscript𝜇𝑆12subscript𝜇𝑆delimited-[]maps-to𝑋012subscript𝜇𝑆delimited-[]maps-to𝑋1[\![X\xleftarrow{\$}\{\frac{1}{2}:0,\frac{1}{2}:1\}]\!]\mu_{S}=\frac{1}{2}(\mu% _{S[X\mapsto 0]})+\frac{1}{2}(\mu_{S[X\mapsto 1]})[ [ italic_X start_ARROW over$ ← end_ARROW { divide start_ARG 1 end_ARG start_ARG 2 end_ARG : 0 , divide start_ARG 1 end_ARG start_ARG 2 end_ARG : 1 } ] ] italic_μ start_POSTSUBSCRIPT italic_S end_POSTSUBSCRIPT = divide start_ARG 1 end_ARG start_ARG 2 end_ARG ( italic_μ start_POSTSUBSCRIPT italic_S [ italic_X ↦ 0 ] end_POSTSUBSCRIPT ) + divide start_ARG 1 end_ARG start_ARG 2 end_ARG ( italic_μ start_POSTSUBSCRIPT italic_S [ italic_X ↦ 1 ] end_POSTSUBSCRIPT ) is obtained.

Example 2.9.

Let 0 be the probabilistic state that maps every deterministic state to 0. For any probabilistic state μ𝜇\muitalic_μ,

[[while  do skip]](μ)= 0.delimited-[]delimited-[]topwhile  do skip𝜇 0[\![\texttt{while}\mbox{ }\top\mbox{ }\texttt{do}\mbox{ }\texttt{skip}]\!](\mu% )=\textbf{ 0}.[ [ typewriter_while ⊤ typewriter_do typewriter_skip ] ] ( italic_μ ) = 0 .

This is because

[[while  do skip]](μ)=delimited-[]delimited-[]topwhile  do skip𝜇absent[\![\texttt{while}\mbox{ }\top\mbox{ }\texttt{do}\mbox{ }\texttt{skip}]\!](\mu)=[ [ typewriter_while ⊤ typewriter_do typewriter_skip ] ] ( italic_μ ) =
i=0¬()(([[skip]])i(μ))=\displaystyle\sum_{i=0}^{\infty}\downarrow_{\neg(\top)}(([\![\texttt{skip}]\!]% \circ\downarrow_{\top})^{i}(\mu))=∑ start_POSTSUBSCRIPT italic_i = 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∞ end_POSTSUPERSCRIPT ↓ start_POSTSUBSCRIPT ¬ ( ⊤ ) end_POSTSUBSCRIPT ( ( [ [ skip ] ] ∘ ↓ start_POSTSUBSCRIPT ⊤ end_POSTSUBSCRIPT ) start_POSTSUPERSCRIPT italic_i end_POSTSUPERSCRIPT ( italic_μ ) ) =
¬()(μ)+¬()(([[skip]])(μ))+¬()(([[skip]])2(μ))+\downarrow_{\neg(\top)}(\mu)+\downarrow_{\neg(\top)}(([\![\texttt{skip}]\!]% \circ\downarrow_{\top})(\mu))+\downarrow_{\neg(\top)}(([\![\texttt{skip}]\!]% \circ\downarrow_{\top})^{2}(\mu))+\ldots↓ start_POSTSUBSCRIPT ¬ ( ⊤ ) end_POSTSUBSCRIPT ( italic_μ ) + ↓ start_POSTSUBSCRIPT ¬ ( ⊤ ) end_POSTSUBSCRIPT ( ( [ [ skip ] ] ∘ ↓ start_POSTSUBSCRIPT ⊤ end_POSTSUBSCRIPT ) ( italic_μ ) ) + ↓ start_POSTSUBSCRIPT ¬ ( ⊤ ) end_POSTSUBSCRIPT ( ( [ [ skip ] ] ∘ ↓ start_POSTSUBSCRIPT ⊤ end_POSTSUBSCRIPT ) start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ( italic_μ ) ) + …

It’s easy to see that ¬()(μ)= 0subscripttopabsent𝜇 0\downarrow_{\neg(\top)}(\mu)=\textbf{ 0}↓ start_POSTSUBSCRIPT ¬ ( ⊤ ) end_POSTSUBSCRIPT ( italic_μ ) = 0 and ([[skip]])k(μ)=μ([\![\texttt{skip}]\!]\circ\downarrow_{\top})^{k}(\mu)=\mu( [ [ skip ] ] ∘ ↓ start_POSTSUBSCRIPT ⊤ end_POSTSUBSCRIPT ) start_POSTSUPERSCRIPT italic_k end_POSTSUPERSCRIPT ( italic_μ ) = italic_μ for all k𝑘kitalic_k. Therefore, [[while  do skip]](μ)= 0delimited-[]delimited-[]topwhile  do skip𝜇 0[\![\texttt{while}\mbox{ }\top\mbox{ }\texttt{do}\mbox{ }\texttt{skip}]\!](\mu% )=\textbf{ 0}[ [ typewriter_while ⊤ typewriter_do typewriter_skip ] ] ( italic_μ ) = 0. The statement implies that certain programs that never terminate result in probabilistic states 0.

Example 2.10.

Assume that there are two variables X,Y𝑋𝑌X,Yitalic_X , italic_Y and infinitely many states S0,S1,subscript𝑆0subscript𝑆1S_{0},S_{1},\ldotsitalic_S start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , italic_S start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , … where S0(X)=0,S0(Y)=0formulae-sequencesubscript𝑆0𝑋0subscript𝑆0𝑌0S_{0}(X)=0,S_{0}(Y)=0italic_S start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ( italic_X ) = 0 , italic_S start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ( italic_Y ) = 0, Si(X)=1,Si(Y)=iformulae-sequencesubscript𝑆𝑖𝑋1subscript𝑆𝑖𝑌𝑖S_{i}(X)=1,S_{i}(Y)=iitalic_S start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_X ) = 1 , italic_S start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_Y ) = italic_i for all i>0𝑖0i>0italic_i > 0. Consider the command C:=while X=0 do (X{12:0,12:1};YY+1)assign𝐶while 𝑋0 do formulae-sequence𝑋conditional-set12:0121𝑌𝑌1C:=\texttt{while}\mbox{ }X=0\mbox{ }\texttt{do}\mbox{ }(X\leftarrow\{\frac{1}{% 2}:0,\frac{1}{2}:1\};Y\leftarrow Y+1)italic_C := typewriter_while italic_X = 0 typewriter_do ( italic_X ← { divide start_ARG 1 end_ARG start_ARG 2 end_ARG : 0 , divide start_ARG 1 end_ARG start_ARG 2 end_ARG : 1 } ; italic_Y ← italic_Y + 1 ). If we let μ=[[C]](S0)𝜇delimited-[]delimited-[]𝐶subscript𝑆0\mu=[\![C]\!](S_{0})italic_μ = [ [ italic_C ] ] ( italic_S start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ), then μ(S0)=0𝜇subscript𝑆00\mu(S_{0})=0italic_μ ( italic_S start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) = 0 and μ(Si)=12i𝜇subscript𝑆𝑖1superscript2𝑖\mu(S_{i})=\frac{1}{2^{i}}italic_μ ( italic_S start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) = divide start_ARG 1 end_ARG start_ARG 2 start_POSTSUPERSCRIPT italic_i end_POSTSUPERSCRIPT end_ARG for all i>0𝑖0i>0italic_i > 0.

Definition 2.5 gives the semantics of deterministic formulas over deterministic states. A deterministic formula describes some property of deterministic states. But how to evaluate a deterministic formula on probabilistic states? The semantics is given as follows:

μIϕsuperscriptmodels𝐼𝜇italic-ϕ\mu\models^{I}\phiitalic_μ ⊧ start_POSTSUPERSCRIPT italic_I end_POSTSUPERSCRIPT italic_ϕ iff for each support S𝑆Sitalic_S of μ𝜇\muitalic_μ, S[[ϕ]]I𝑆superscriptdelimited-[]delimited-[]italic-ϕ𝐼S\in[\![\phi]\!]^{I}italic_S ∈ [ [ italic_ϕ ] ] start_POSTSUPERSCRIPT italic_I end_POSTSUPERSCRIPT.

We call it possibility semantics because the definition intuitively means that a formula ϕitalic-ϕ\phiitalic_ϕ is true on a probabilistic state if and only if ϕitalic-ϕ\phiitalic_ϕ is true on all possible deterministic states indicated by the probabilistic state. That implies that all supports of a distribution share a common property. Hence we can claim that the distribution satisfies the formula. The possibility semantics makes our PHL with deterministic formula (PHLd) essentially equivalent to Dijkstra’s non-deterministic Hoare logic (Dijkstra, 1975). However, the former serves as a better intermediate step towards PHL with probabilistic formulas than the latter. Therefore, we will still present PHLd in detail, especially the weakest precondtion calculus of PHLd, which is not concretely introduced in non-deterministic Hoare logic.

2.3. Proof System with deterministic assertions

A proof system for PHL is comprised of Hoare triples. A Hoare triple, written as {ϕ}C{ψ}italic-ϕ𝐶𝜓\{\phi\}C\{\psi\}{ italic_ϕ } italic_C { italic_ψ }, is considered valid if, for every deterministic state that satisfies ϕitalic-ϕ\phiitalic_ϕ, executing command C results in a probabilistic state that satisfies ψ𝜓\psiitalic_ψ. Formally,

{ϕ}C{ψ}modelsabsentitalic-ϕ𝐶𝜓\models\{\phi\}C\{\psi\}⊧ { italic_ϕ } italic_C { italic_ψ } if for all interpretation I𝐼Iitalic_I and deterministic state S𝑆Sitalic_S, if SIϕsuperscriptmodels𝐼𝑆italic-ϕS\models^{I}\phiitalic_S ⊧ start_POSTSUPERSCRIPT italic_I end_POSTSUPERSCRIPT italic_ϕ, then [[C]](μS)Iψsuperscriptmodels𝐼delimited-[]delimited-[]𝐶subscript𝜇𝑆𝜓[\![C]\!](\mu_{S})\models^{I}\psi[ [ italic_C ] ] ( italic_μ start_POSTSUBSCRIPT italic_S end_POSTSUBSCRIPT ) ⊧ start_POSTSUPERSCRIPT italic_I end_POSTSUPERSCRIPT italic_ψ.

We now build a proof system for PHLd for the derivation of Hoare triples with probabilistic commands and deterministic assertions. Most rules in our proof system are standard, and they are inherited from Hoare logic or natural deduction (Apt and Olderog, 2019). Only one new rule for probabilistic assignment is added, along with some structural rules. The symbol ϕ[X/E]italic-ϕdelimited-[]𝑋𝐸\phi[X/E]italic_ϕ [ italic_X / italic_E ] represents the formula which replaces every occurrence of X𝑋Xitalic_X in ϕitalic-ϕ\phiitalic_ϕ with E𝐸Eitalic_E.

Definition 2.11 (Proof system of PHLd).

The proof system of PHLd consists of the following inference rules:

SKIP::𝑆𝐾𝐼𝑃absentSKIP:italic_S italic_K italic_I italic_P : {ϕ}skip{ϕ}absentprovesabsentitalic-ϕskipitalic-ϕ\frac{}{\vdash\{\phi\}\texttt{skip}\{\phi\}}divide start_ARG end_ARG start_ARG ⊢ { italic_ϕ } skip { italic_ϕ } end_ARG
AS::𝐴𝑆absentAS:italic_A italic_S : {ϕ[X/E]}XE{ϕ}absentprovesabsentitalic-ϕdelimited-[]𝑋𝐸𝑋𝐸italic-ϕ\frac{}{\vdash\{\phi[X/E]\}X\leftarrow E\{\phi\}}divide start_ARG end_ARG start_ARG ⊢ { italic_ϕ [ italic_X / italic_E ] } italic_X ← italic_E { italic_ϕ } end_ARG
PAS::𝑃𝐴𝑆absentPAS:italic_P italic_A italic_S : {ϕ[X/k1]ϕ[X/kn]}X${a1:k1,,an:kn}{ϕ}absentprovesabsentcurrency-dollaritalic-ϕdelimited-[]𝑋subscript𝑘1italic-ϕdelimited-[]𝑋subscript𝑘𝑛𝑋conditional-setsubscript𝑎1:subscript𝑘1subscript𝑎𝑛subscript𝑘𝑛italic-ϕ\frac{}{\vdash\{\phi[X/k_{1}]\wedge\ldots\wedge\phi[X/k_{n}]\}X\xleftarrow{\$}% \{a_{1}:k_{1},...,a_{n}:k_{n}\}\{\phi\}}divide start_ARG end_ARG start_ARG ⊢ { italic_ϕ [ italic_X / italic_k start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ] ∧ … ∧ italic_ϕ [ italic_X / italic_k start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ] } italic_X start_ARROW over$ ← end_ARROW { italic_a start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT : italic_k start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , … , italic_a start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT : italic_k start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT } { italic_ϕ } end_ARG
SEQ::𝑆𝐸𝑄absentSEQ:italic_S italic_E italic_Q : {ϕ}C1{ϕ1}{ϕ1}C2{ϕ2}{ϕ}C1;C2{ϕ2}\frac{\vdash\{\phi\}C_{1}\{\phi_{1}\}\quad\vdash\{\phi_{1}\}C_{2}\{\phi_{2}\}}% {\vdash\{\phi\}C_{1};C_{2}\{\phi_{2}\}}divide start_ARG ⊢ { italic_ϕ } italic_C start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT { italic_ϕ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT } ⊢ { italic_ϕ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT } italic_C start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT { italic_ϕ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT } end_ARG start_ARG ⊢ { italic_ϕ } italic_C start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ; italic_C start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT { italic_ϕ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT } end_ARG
IF::𝐼𝐹absentIF:italic_I italic_F : {ϕB}C1{ψ}{ϕ¬B}C2{ψ}{ϕ}ifBthenC1elseC2{ψ}\frac{\vdash\{\phi\wedge B\}C_{1}\{\psi\}\quad\vdash\{\phi\wedge\neg B\}C_{2}% \{\psi\}}{\vdash\{\phi\}\texttt{if}\ B\ \texttt{then}\ C_{1}\ \texttt{else}\ C% _{2}\{\psi\}}divide start_ARG ⊢ { italic_ϕ ∧ italic_B } italic_C start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT { italic_ψ } ⊢ { italic_ϕ ∧ ¬ italic_B } italic_C start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT { italic_ψ } end_ARG start_ARG ⊢ { italic_ϕ } if italic_B then italic_C start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT else italic_C start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT { italic_ψ } end_ARG
CONS::𝐶𝑂𝑁𝑆absentCONS:italic_C italic_O italic_N italic_S : ϕϕ{ϕ}C{ψ}ψψ{ϕ}C{ψ}provesmodelsabsentsuperscriptitalic-ϕitalic-ϕmodelsitalic-ϕ𝐶𝜓𝜓superscript𝜓provesabsentsuperscriptitalic-ϕ𝐶superscript𝜓\frac{\models\phi^{\prime}\rightarrow\phi\quad\vdash\{\phi\}C\{\psi\}\quad% \models\psi\rightarrow\psi^{\prime}}{\vdash\{\phi^{\prime}\}C\{\psi^{\prime}\}}divide start_ARG ⊧ italic_ϕ start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT → italic_ϕ ⊢ { italic_ϕ } italic_C { italic_ψ } ⊧ italic_ψ → italic_ψ start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_ARG start_ARG ⊢ { italic_ϕ start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT } italic_C { italic_ψ start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT } end_ARG
AND::𝐴𝑁𝐷absentAND:italic_A italic_N italic_D : {ϕ1}C{ψ1}{ϕ2}C{ψ2}{ϕ1ϕ2}C{ψ1ψ2}\frac{\vdash\{\phi_{1}\}C\{\psi_{1}\}\quad\vdash\{\phi_{2}\}C\{\psi_{2}\}}{% \vdash\{\phi_{1}\wedge\phi_{2}\}C\{\psi_{1}\wedge\psi_{2}\}}divide start_ARG ⊢ { italic_ϕ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT } italic_C { italic_ψ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT } ⊢ { italic_ϕ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT } italic_C { italic_ψ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT } end_ARG start_ARG ⊢ { italic_ϕ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ∧ italic_ϕ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT } italic_C { italic_ψ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ∧ italic_ψ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT } end_ARG
OR::𝑂𝑅absentOR:italic_O italic_R : {ϕ1}C{ψ1}{ϕ2}C{ψ2}{ϕ1ϕ2}C{ψ1ψ2}\frac{\vdash\{\phi_{1}\}C\{\psi_{1}\}\quad\vdash\{\phi_{2}\}C\{\psi_{2}\}}{% \vdash\{\phi_{1}\vee\phi_{2}\}C\{\psi_{1}\vee\psi_{2}\}}divide start_ARG ⊢ { italic_ϕ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT } italic_C { italic_ψ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT } ⊢ { italic_ϕ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT } italic_C { italic_ψ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT } end_ARG start_ARG ⊢ { italic_ϕ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ∨ italic_ϕ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT } italic_C { italic_ψ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ∨ italic_ψ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT } end_ARG
WHILE::𝑊𝐻𝐼𝐿𝐸absentWHILE:italic_W italic_H italic_I italic_L italic_E : {ϕB}C{ϕ}{ϕ}while B do C{ϕ¬B}provesabsentitalic-ϕ𝐵𝐶italic-ϕprovesabsentitalic-ϕwhile 𝐵 do 𝐶italic-ϕ𝐵\frac{\vdash\{\phi\wedge B\}C\{\phi\}}{\vdash\{\phi\}\texttt{while}\mbox{ }B% \mbox{ }\texttt{do}\mbox{ }C\{\phi\wedge\neg B\}}divide start_ARG ⊢ { italic_ϕ ∧ italic_B } italic_C { italic_ϕ } end_ARG start_ARG ⊢ { italic_ϕ } typewriter_while italic_B typewriter_do italic_C { italic_ϕ ∧ ¬ italic_B } end_ARG

The majority of the above inference rules are easy to comprehend. (CONS)𝐶𝑂𝑁𝑆(CONS)( italic_C italic_O italic_N italic_S ) is special since it involves semantically valid implications in the premise part. It characterizes the monotonicity of Hoare triples, which means that a stronger precondition must also lead to the same postcondition or some weaker one. In rule (WHILE)𝑊𝐻𝐼𝐿𝐸(WHILE)( italic_W italic_H italic_I italic_L italic_E ), formula ϕitalic-ϕ\phiitalic_ϕ is called loop invariant which will not be changed by command C𝐶Citalic_C. In the remaining part of this section, we prove the soundness and completeness of PHLd. Most of the proofs are similar to their analogue in classical Hoare logic, the confident readers may feel free to skip them.

Theorem 2.12 (Soundness).

For all deterministic formula ϕitalic-ϕ\phiitalic_ϕ and ψ𝜓\psiitalic_ψ and command C𝐶Citalic_C, {ϕ}C{ψ}provesabsentitalic-ϕ𝐶𝜓\vdash\{\phi\}C\{\psi\}⊢ { italic_ϕ } italic_C { italic_ψ } implies {ϕ}C{ψ}modelsabsentitalic-ϕ𝐶𝜓\models\{\phi\}C\{\psi\}⊧ { italic_ϕ } italic_C { italic_ψ }.

Proof.

We prove by structural induction on C𝐶Citalic_C. Let I𝐼Iitalic_I be an arbitrary interpretation.

  • (SKIP) It’s trivial to see that that {ϕ}skip{ϕ}modelsabsentitalic-ϕskipitalic-ϕ\models\{\phi\}\texttt{skip}\{\phi\}⊧ { italic_ϕ } skip { italic_ϕ }.

  • (AS) Assume SIϕ[X/E]superscriptmodels𝐼𝑆italic-ϕdelimited-[]𝑋𝐸S\models^{I}\phi[X/E]italic_S ⊧ start_POSTSUPERSCRIPT italic_I end_POSTSUPERSCRIPT italic_ϕ [ italic_X / italic_E ]. This means that ϕitalic-ϕ\phiitalic_ϕ is true if the variable X𝑋Xitalic_X is assigned to the value [[E]]Sdelimited-[]delimited-[]𝐸𝑆[\![E]\!]S[ [ italic_E ] ] italic_S and all other values are assigned to a value according to S𝑆Sitalic_S. Let S=[[XE]](S)=S[X[[E]]S]superscript𝑆delimited-[]delimited-[]𝑋𝐸𝑆𝑆delimited-[]maps-to𝑋delimited-[]delimited-[]𝐸𝑆S^{\prime}=[\![X\leftarrow E]\!](S)=S[X\mapsto[\![E]\!]S]italic_S start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT = [ [ italic_X ← italic_E ] ] ( italic_S ) = italic_S [ italic_X ↦ [ [ italic_E ] ] italic_S ]. Then Ssuperscript𝑆S^{\prime}italic_S start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT assigns X𝑋Xitalic_X to the value [[E]]Sdelimited-[]delimited-[]𝐸𝑆[\![E]\!]S[ [ italic_E ] ] italic_S and all other variables to the same value as S𝑆Sitalic_S. Therefore, SIϕsuperscriptmodels𝐼superscript𝑆italic-ϕS^{\prime}\models^{I}\phiitalic_S start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ⊧ start_POSTSUPERSCRIPT italic_I end_POSTSUPERSCRIPT italic_ϕ.

  • (PAS) Assume SIϕ[X/k1]ϕ[X/kn]superscriptmodels𝐼𝑆italic-ϕdelimited-[]𝑋subscript𝑘1italic-ϕdelimited-[]𝑋subscript𝑘𝑛S\models^{I}\phi[X/k_{1}]\wedge\ldots\wedge\phi[X/k_{n}]italic_S ⊧ start_POSTSUPERSCRIPT italic_I end_POSTSUPERSCRIPT italic_ϕ [ italic_X / italic_k start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ] ∧ … ∧ italic_ϕ [ italic_X / italic_k start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ]. This means that ϕitalic-ϕ\phiitalic_ϕ is true if the variable X𝑋Xitalic_X is assigned to the any of {k1,,kn}subscript𝑘1subscript𝑘𝑛\{k_{1},\ldots,k_{n}\}{ italic_k start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , … , italic_k start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT } and all other values are assigned to a value according to S𝑆Sitalic_S. Let μ=[[X${a1:k1,,an:kn}]](μS)superscript𝜇delimited-[]delimited-[]currency-dollar𝑋conditional-setsubscript𝑎1:subscript𝑘1subscript𝑎𝑛subscript𝑘𝑛subscript𝜇𝑆\mu^{\prime}=[\![X\xleftarrow{\$}\{a_{1}:k_{1},...,a_{n}:k_{n}\}]\!](\mu_{S})italic_μ start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT = [ [ italic_X start_ARROW over$ ← end_ARROW { italic_a start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT : italic_k start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , … , italic_a start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT : italic_k start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT } ] ] ( italic_μ start_POSTSUBSCRIPT italic_S end_POSTSUBSCRIPT ). Then μsuperscript𝜇\mu^{\prime}italic_μ start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT is a distribution with support {S1,,Sn}subscript𝑆1subscript𝑆𝑛\{S_{1},\ldots,S_{n}\}{ italic_S start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , … , italic_S start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT }, where Si=S[Xki]subscript𝑆𝑖𝑆delimited-[]maps-to𝑋subscript𝑘𝑖S_{i}=S[X\mapsto k_{i}]italic_S start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT = italic_S [ italic_X ↦ italic_k start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ] for i{1,,n}𝑖1𝑛i\in\{1,\ldots,n\}italic_i ∈ { 1 , … , italic_n }. Since Sisubscript𝑆𝑖S_{i}italic_S start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT assigns X𝑋Xitalic_X to the value kisubscript𝑘𝑖k_{i}italic_k start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT and all other variables to the same value as S𝑆Sitalic_S. We know that SiIϕsuperscriptmodels𝐼subscript𝑆𝑖italic-ϕS_{i}\models^{I}\phiitalic_S start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ⊧ start_POSTSUPERSCRIPT italic_I end_POSTSUPERSCRIPT italic_ϕ. This means that ϕitalic-ϕ\phiitalic_ϕ is true on all supports of μsuperscript𝜇\mu^{\prime}italic_μ start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT. Therefore, μIϕsuperscriptmodels𝐼superscript𝜇italic-ϕ\mu^{\prime}\models^{I}\phiitalic_μ start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ⊧ start_POSTSUPERSCRIPT italic_I end_POSTSUPERSCRIPT italic_ϕ.

  • (SEQ) If rule (SEQ) is used to derive {ϕ}C1;C2{ϕ2}provesabsentitalic-ϕsubscript𝐶1subscript𝐶2subscriptitalic-ϕ2\vdash\{\phi\}C_{1};C_{2}\{\phi_{2}\}⊢ { italic_ϕ } italic_C start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ; italic_C start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT { italic_ϕ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT } from {ϕ}C1{ϕ1}provesabsentitalic-ϕsubscript𝐶1subscriptitalic-ϕ1\vdash\{\phi\}C_{1}\{\phi_{1}\}⊢ { italic_ϕ } italic_C start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT { italic_ϕ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT } and {ϕ1}C2{ϕ2}provesabsentsubscriptitalic-ϕ1subscript𝐶2subscriptitalic-ϕ2\vdash\{\phi_{1}\}C_{2}\{\phi_{2}\}⊢ { italic_ϕ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT } italic_C start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT { italic_ϕ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT }, then by induction hypothesis we have {ϕ}C1{ϕ1}modelsabsentitalic-ϕsubscript𝐶1subscriptitalic-ϕ1\models\{\phi\}C_{1}\{\phi_{1}\}⊧ { italic_ϕ } italic_C start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT { italic_ϕ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT } and {ϕ1}C2{ϕ2}modelsabsentsubscriptitalic-ϕ1subscript𝐶2subscriptitalic-ϕ2\models\{\phi_{1}\}C_{2}\{\phi_{2}\}⊧ { italic_ϕ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT } italic_C start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT { italic_ϕ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT }. Assume S[[ϕ]]I𝑆superscriptdelimited-[]delimited-[]italic-ϕ𝐼S\in[\![\phi]\!]^{I}italic_S ∈ [ [ italic_ϕ ] ] start_POSTSUPERSCRIPT italic_I end_POSTSUPERSCRIPT. Let Ssp([[C1;C2]](μS))superscript𝑆𝑠𝑝delimited-[]subscript𝐶1subscript𝐶2subscript𝜇𝑆S^{\prime}\in sp([\![C_{1};C_{2}]\!](\mu_{S}))italic_S start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ∈ italic_s italic_p ( [ [ italic_C start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ; italic_C start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ] ] ( italic_μ start_POSTSUBSCRIPT italic_S end_POSTSUBSCRIPT ) ) be an arbitrary state which belongs to the support of [[C1;C2]](μS)delimited-[]subscript𝐶1subscript𝐶2subscript𝜇𝑆[\![C_{1};C_{2}]\!](\mu_{S})[ [ italic_C start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ; italic_C start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ] ] ( italic_μ start_POSTSUBSCRIPT italic_S end_POSTSUBSCRIPT ). From [[C1;C2]](μS)=[[C2]]([[C1]](μS))delimited-[]subscript𝐶1subscript𝐶2subscript𝜇𝑆delimited-[]delimited-[]subscript𝐶2delimited-[]delimited-[]subscript𝐶1subscript𝜇𝑆[\![C_{1};C_{2}]\!](\mu_{S})=[\![C_{2}]\!]([\![C_{1}]\!](\mu_{S}))[ [ italic_C start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ; italic_C start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ] ] ( italic_μ start_POSTSUBSCRIPT italic_S end_POSTSUBSCRIPT ) = [ [ italic_C start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ] ] ( [ [ italic_C start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ] ] ( italic_μ start_POSTSUBSCRIPT italic_S end_POSTSUBSCRIPT ) ) we know that there is a state S1sp([[C1]](μS))subscript𝑆1𝑠𝑝delimited-[]delimited-[]subscript𝐶1subscript𝜇𝑆S_{1}\in sp([\![C_{1}]\!](\mu_{S}))italic_S start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ∈ italic_s italic_p ( [ [ italic_C start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ] ] ( italic_μ start_POSTSUBSCRIPT italic_S end_POSTSUBSCRIPT ) ) such that Ssp([[C2]](μS1))superscript𝑆𝑠𝑝delimited-[]delimited-[]subscript𝐶2subscript𝜇subscript𝑆1S^{\prime}\in sp([\![C_{2}]\!](\mu_{S_{1}}))italic_S start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ∈ italic_s italic_p ( [ [ italic_C start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ] ] ( italic_μ start_POSTSUBSCRIPT italic_S start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_POSTSUBSCRIPT ) ). Now by {ϕ}C1{ϕ1}modelsabsentitalic-ϕsubscript𝐶1subscriptitalic-ϕ1\models\{\phi\}C_{1}\{\phi_{1}\}⊧ { italic_ϕ } italic_C start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT { italic_ϕ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT } we know that [[C1]](μS)Iϕ1superscriptmodels𝐼delimited-[]delimited-[]subscript𝐶1subscript𝜇𝑆subscriptitalic-ϕ1[\![C_{1}]\!](\mu_{S})\models^{I}\phi_{1}[ [ italic_C start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ] ] ( italic_μ start_POSTSUBSCRIPT italic_S end_POSTSUBSCRIPT ) ⊧ start_POSTSUPERSCRIPT italic_I end_POSTSUPERSCRIPT italic_ϕ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT and S1Iϕ1superscriptmodels𝐼subscript𝑆1subscriptitalic-ϕ1S_{1}\models^{I}\phi_{1}italic_S start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ⊧ start_POSTSUPERSCRIPT italic_I end_POSTSUPERSCRIPT italic_ϕ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT. By {ϕ1}C2{ϕ2}modelsabsentsubscriptitalic-ϕ1subscript𝐶2subscriptitalic-ϕ2\models\{\phi_{1}\}C_{2}\{\phi_{2}\}⊧ { italic_ϕ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT } italic_C start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT { italic_ϕ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT } we know that [[C2]](μS1)Iϕ2superscriptmodels𝐼delimited-[]delimited-[]subscript𝐶2subscript𝜇subscript𝑆1subscriptitalic-ϕ2[\![C_{2}]\!](\mu_{S_{1}})\models^{I}\phi_{2}[ [ italic_C start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ] ] ( italic_μ start_POSTSUBSCRIPT italic_S start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_POSTSUBSCRIPT ) ⊧ start_POSTSUPERSCRIPT italic_I end_POSTSUPERSCRIPT italic_ϕ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT and SIϕ2superscriptmodels𝐼superscript𝑆subscriptitalic-ϕ2S^{\prime}\models^{I}\phi_{2}italic_S start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ⊧ start_POSTSUPERSCRIPT italic_I end_POSTSUPERSCRIPT italic_ϕ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT.

  • (IF) Assume S[[ϕ]]I𝑆superscriptdelimited-[]delimited-[]italic-ϕ𝐼S\in[\![\phi]\!]^{I}italic_S ∈ [ [ italic_ϕ ] ] start_POSTSUPERSCRIPT italic_I end_POSTSUPERSCRIPT, {ϕB}C1{ψ}provesabsentitalic-ϕ𝐵subscript𝐶1𝜓\vdash\{\phi\wedge B\}C_{1}\{\psi\}⊢ { italic_ϕ ∧ italic_B } italic_C start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT { italic_ψ } and {ϕ¬B}C2{ψ}provesabsentitalic-ϕ𝐵subscript𝐶2𝜓\vdash\{\phi\wedge\neg B\}C_{2}\{\psi\}⊢ { italic_ϕ ∧ ¬ italic_B } italic_C start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT { italic_ψ }. By induction hypothesis we know that {ϕB}C1{ψ}modelsabsentitalic-ϕ𝐵subscript𝐶1𝜓\models\{\phi\wedge B\}C_{1}\{\psi\}⊧ { italic_ϕ ∧ italic_B } italic_C start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT { italic_ψ } and {ϕ¬B}C2{ψ}modelsabsentitalic-ϕ𝐵subscript𝐶2𝜓\models\{\phi\wedge\neg B\}C_{2}\{\psi\}⊧ { italic_ϕ ∧ ¬ italic_B } italic_C start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT { italic_ψ }. Let Ssuperscript𝑆S^{\prime}italic_S start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT be an arbitrary state which belongs to sp([[ifBthenC1elseC2]](μS))𝑠𝑝delimited-[]delimited-[]if𝐵thensubscript𝐶1elsesubscript𝐶2subscript𝜇𝑆sp([\![\texttt{if}\ B\ \texttt{then}\ C_{1}\ \texttt{else}\ C_{2}]\!](\mu_{S}))italic_s italic_p ( [ [ if italic_B then italic_C start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT else italic_C start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ] ] ( italic_μ start_POSTSUBSCRIPT italic_S end_POSTSUBSCRIPT ) ).

    Since S𝑆Sitalic_S is a deterministic state, we know that either S[[B]]𝑆delimited-[]delimited-[]𝐵S\in[\![B]\!]italic_S ∈ [ [ italic_B ] ] or S[[¬B]]𝑆delimited-[]delimited-[]𝐵S\in[\![\neg B]\!]italic_S ∈ [ [ ¬ italic_B ] ].

    • If S[[B]]𝑆delimited-[]delimited-[]𝐵S\in[\![B]\!]italic_S ∈ [ [ italic_B ] ], then [[ifBthenC1elseC2]](μS)=[[C1]](B(μS))=[[C1]](μS)delimited-[]delimited-[]if𝐵thensubscript𝐶1elsesubscript𝐶2subscript𝜇𝑆annotateddelimited-[]delimited-[]subscript𝐶1subscript𝐵absentsubscript𝜇𝑆delimited-[]delimited-[]subscript𝐶1subscript𝜇𝑆[\![\texttt{if}\ B\ \texttt{then}\ C_{1}\ \texttt{else}\ C_{2}]\!](\mu_{S})=[% \![C_{1}]\!](\downarrow_{B}(\mu_{S}))=[\![C_{1}]\!](\mu_{S})[ [ if italic_B then italic_C start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT else italic_C start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ] ] ( italic_μ start_POSTSUBSCRIPT italic_S end_POSTSUBSCRIPT ) = [ [ italic_C start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ] ] ( ↓ start_POSTSUBSCRIPT italic_B end_POSTSUBSCRIPT ( italic_μ start_POSTSUBSCRIPT italic_S end_POSTSUBSCRIPT ) ) = [ [ italic_C start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ] ] ( italic_μ start_POSTSUBSCRIPT italic_S end_POSTSUBSCRIPT ). Hence Ssp([[C1]](μS))superscript𝑆𝑠𝑝delimited-[]delimited-[]subscript𝐶1subscript𝜇𝑆S^{\prime}\in sp([\![C_{1}]\!](\mu_{S}))italic_S start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ∈ italic_s italic_p ( [ [ italic_C start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ] ] ( italic_μ start_POSTSUBSCRIPT italic_S end_POSTSUBSCRIPT ) ). From S[[ϕ]]I𝑆superscriptdelimited-[]delimited-[]italic-ϕ𝐼S\in[\![\phi]\!]^{I}italic_S ∈ [ [ italic_ϕ ] ] start_POSTSUPERSCRIPT italic_I end_POSTSUPERSCRIPT and S[[B]]𝑆delimited-[]delimited-[]𝐵S\in[\![B]\!]italic_S ∈ [ [ italic_B ] ] we know that SIϕBsuperscriptmodels𝐼𝑆italic-ϕ𝐵S\models^{I}\phi\wedge Bitalic_S ⊧ start_POSTSUPERSCRIPT italic_I end_POSTSUPERSCRIPT italic_ϕ ∧ italic_B. Now by {ϕB}C1{ψ}modelsabsentitalic-ϕ𝐵subscript𝐶1𝜓\models\{\phi\wedge B\}C_{1}\{\psi\}⊧ { italic_ϕ ∧ italic_B } italic_C start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT { italic_ψ } we deduce that [[C1]](μS)Iψsuperscriptmodels𝐼delimited-[]delimited-[]subscript𝐶1subscript𝜇𝑆𝜓[\![C_{1}]\!](\mu_{S})\models^{I}\psi[ [ italic_C start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ] ] ( italic_μ start_POSTSUBSCRIPT italic_S end_POSTSUBSCRIPT ) ⊧ start_POSTSUPERSCRIPT italic_I end_POSTSUPERSCRIPT italic_ψ. Therefore, SIψsuperscriptmodels𝐼superscript𝑆𝜓S^{\prime}\models^{I}\psiitalic_S start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ⊧ start_POSTSUPERSCRIPT italic_I end_POSTSUPERSCRIPT italic_ψ.

    • If S[[¬B]]𝑆delimited-[]delimited-[]𝐵S\in[\![\neg B]\!]italic_S ∈ [ [ ¬ italic_B ] ], then [[ifBthenC1elseC2]](μS)=[[C2]](¬B(μS))=[[C2]](μS)delimited-[]delimited-[]if𝐵thensubscript𝐶1elsesubscript𝐶2subscript𝜇𝑆annotateddelimited-[]delimited-[]subscript𝐶2subscript𝐵absentsubscript𝜇𝑆delimited-[]delimited-[]subscript𝐶2subscript𝜇𝑆[\![\texttt{if}\ B\ \texttt{then}\ C_{1}\ \texttt{else}\ C_{2}]\!](\mu_{S})=[% \![C_{2}]\!](\downarrow_{\neg B}(\mu_{S}))=[\![C_{2}]\!](\mu_{S})[ [ if italic_B then italic_C start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT else italic_C start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ] ] ( italic_μ start_POSTSUBSCRIPT italic_S end_POSTSUBSCRIPT ) = [ [ italic_C start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ] ] ( ↓ start_POSTSUBSCRIPT ¬ italic_B end_POSTSUBSCRIPT ( italic_μ start_POSTSUBSCRIPT italic_S end_POSTSUBSCRIPT ) ) = [ [ italic_C start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ] ] ( italic_μ start_POSTSUBSCRIPT italic_S end_POSTSUBSCRIPT ). Hence Ssp([[C2]](μS))superscript𝑆𝑠𝑝delimited-[]delimited-[]subscript𝐶2subscript𝜇𝑆S^{\prime}\in sp([\![C_{2}]\!](\mu_{S}))italic_S start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ∈ italic_s italic_p ( [ [ italic_C start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ] ] ( italic_μ start_POSTSUBSCRIPT italic_S end_POSTSUBSCRIPT ) ). From S[[ϕ]]I𝑆superscriptdelimited-[]delimited-[]italic-ϕ𝐼S\in[\![\phi]\!]^{I}italic_S ∈ [ [ italic_ϕ ] ] start_POSTSUPERSCRIPT italic_I end_POSTSUPERSCRIPT and S[[¬B]]𝑆delimited-[]delimited-[]𝐵S\in[\![\neg B]\!]italic_S ∈ [ [ ¬ italic_B ] ] we know that SIϕ¬Bsuperscriptmodels𝐼𝑆italic-ϕ𝐵S\models^{I}\phi\wedge\neg Bitalic_S ⊧ start_POSTSUPERSCRIPT italic_I end_POSTSUPERSCRIPT italic_ϕ ∧ ¬ italic_B. Now by {ϕ¬B}C2{ψ}modelsabsentitalic-ϕ𝐵subscript𝐶2𝜓\models\{\phi\wedge\neg B\}C_{2}\{\psi\}⊧ { italic_ϕ ∧ ¬ italic_B } italic_C start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT { italic_ψ } we deduce that [[C2]](μS)Iψsuperscriptmodels𝐼delimited-[]delimited-[]subscript𝐶2subscript𝜇𝑆𝜓[\![C_{2}]\!](\mu_{S})\models^{I}\psi[ [ italic_C start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ] ] ( italic_μ start_POSTSUBSCRIPT italic_S end_POSTSUBSCRIPT ) ⊧ start_POSTSUPERSCRIPT italic_I end_POSTSUPERSCRIPT italic_ψ. Therefore, SIψsuperscriptmodels𝐼superscript𝑆𝜓S^{\prime}\models^{I}\psiitalic_S start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ⊧ start_POSTSUPERSCRIPT italic_I end_POSTSUPERSCRIPT italic_ψ.

  • (CONS) Assume ϕϕmodelsabsentsuperscriptitalic-ϕitalic-ϕ\models\phi^{\prime}\rightarrow\phi⊧ italic_ϕ start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT → italic_ϕ, {ϕ}C{ψ}provesabsentitalic-ϕ𝐶𝜓\vdash\{\phi\}C\{\psi\}⊢ { italic_ϕ } italic_C { italic_ψ } and ψψmodelsabsent𝜓superscript𝜓\models\psi\rightarrow\psi^{\prime}⊧ italic_ψ → italic_ψ start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT. By induction hypothesis we obtain that {ϕ}C{ψ}modelsabsentitalic-ϕ𝐶𝜓\models\{\phi\}C\{\psi\}⊧ { italic_ϕ } italic_C { italic_ψ }. Let S𝑆Sitalic_S be a state such that SIϕsuperscriptmodels𝐼𝑆superscriptitalic-ϕS\models^{I}\phi^{\prime}italic_S ⊧ start_POSTSUPERSCRIPT italic_I end_POSTSUPERSCRIPT italic_ϕ start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT. Then by ϕϕmodelsabsentsuperscriptitalic-ϕitalic-ϕ\models\phi^{\prime}\rightarrow\phi⊧ italic_ϕ start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT → italic_ϕ we know that SIϕsuperscriptmodels𝐼𝑆italic-ϕS\models^{I}\phiitalic_S ⊧ start_POSTSUPERSCRIPT italic_I end_POSTSUPERSCRIPT italic_ϕ. By {ϕ}C{ψ}modelsabsentitalic-ϕ𝐶𝜓\models\{\phi\}C\{\psi\}⊧ { italic_ϕ } italic_C { italic_ψ } we know that [[C]](S)Iψsuperscriptmodels𝐼delimited-[]delimited-[]𝐶𝑆𝜓[\![C]\!](S)\models^{I}\psi[ [ italic_C ] ] ( italic_S ) ⊧ start_POSTSUPERSCRIPT italic_I end_POSTSUPERSCRIPT italic_ψ. Hence SIψsuperscriptmodels𝐼superscript𝑆𝜓S^{\prime}\models^{I}\psiitalic_S start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ⊧ start_POSTSUPERSCRIPT italic_I end_POSTSUPERSCRIPT italic_ψ for all Ssuperscript𝑆S^{\prime}italic_S start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT which belongs to sp([[C]](S))𝑠𝑝delimited-[]delimited-[]𝐶𝑆sp([\![C]\!](S))italic_s italic_p ( [ [ italic_C ] ] ( italic_S ) ). Now by ψψmodelsabsent𝜓superscript𝜓\models\psi\rightarrow\psi^{\prime}⊧ italic_ψ → italic_ψ start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT we know that SIψsuperscriptmodels𝐼superscript𝑆superscript𝜓S^{\prime}\models^{I}\psi^{\prime}italic_S start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ⊧ start_POSTSUPERSCRIPT italic_I end_POSTSUPERSCRIPT italic_ψ start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT.

  • (AND) Assume {ϕ1}C{ψ1}provesabsentsubscriptitalic-ϕ1𝐶subscript𝜓1\vdash\{\phi_{1}\}C\{\psi_{1}\}⊢ { italic_ϕ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT } italic_C { italic_ψ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT } and {ϕ2}C{ψ2}provesabsentsubscriptitalic-ϕ2𝐶subscript𝜓2\vdash\{\phi_{2}\}C\{\psi_{2}\}⊢ { italic_ϕ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT } italic_C { italic_ψ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT }. By induction hypothesis we know that {ϕ1}C{ψ1}modelsabsentsubscriptitalic-ϕ1𝐶subscript𝜓1\models\{\phi_{1}\}C\{\psi_{1}\}⊧ { italic_ϕ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT } italic_C { italic_ψ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT } and {ϕ2}C{ψ2}modelsabsentsubscriptitalic-ϕ2𝐶subscript𝜓2\models\{\phi_{2}\}C\{\psi_{2}\}⊧ { italic_ϕ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT } italic_C { italic_ψ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT }. Let S𝑆Sitalic_S be a state such that SIϕ1ϕ2superscriptmodels𝐼𝑆subscriptitalic-ϕ1subscriptitalic-ϕ2S\models^{I}\phi_{1}\wedge\phi_{2}italic_S ⊧ start_POSTSUPERSCRIPT italic_I end_POSTSUPERSCRIPT italic_ϕ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ∧ italic_ϕ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT. Let Ssuperscript𝑆S^{\prime}italic_S start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT be a state in sp([[C]](S))𝑠𝑝delimited-[]delimited-[]𝐶𝑆sp([\![C]\!](S))italic_s italic_p ( [ [ italic_C ] ] ( italic_S ) ). Then SIϕ1superscriptmodels𝐼𝑆subscriptitalic-ϕ1S\models^{I}\phi_{1}italic_S ⊧ start_POSTSUPERSCRIPT italic_I end_POSTSUPERSCRIPT italic_ϕ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT and by {ϕ1}C{ψ1}modelsabsentsubscriptitalic-ϕ1𝐶subscript𝜓1\models\{\phi_{1}\}C\{\psi_{1}\}⊧ { italic_ϕ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT } italic_C { italic_ψ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT } we have [[C]](S)Iψ1superscriptmodels𝐼delimited-[]delimited-[]𝐶𝑆subscript𝜓1[\![C]\!](S)\models^{I}\psi_{1}[ [ italic_C ] ] ( italic_S ) ⊧ start_POSTSUPERSCRIPT italic_I end_POSTSUPERSCRIPT italic_ψ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT. Hence SIψ1superscriptmodels𝐼