Hoare Logic for Quantum Programs Mingsheng Ying University of - - PowerPoint PPT Presentation

hoare logic for quantum programs
SMART_READER_LITE
LIVE PREVIEW

Hoare Logic for Quantum Programs Mingsheng Ying University of - - PowerPoint PPT Presentation

Hoare Logic for Quantum Programs Mingsheng Ying University of Technology, Sydney and Tsinghua University SamsonFest, May 28-30,2013 Abramsky Conjecture: For every n > 2, every n partite entangled state is logically non-local Happy


slide-1
SLIDE 1

Hoare Logic for Quantum Programs

Mingsheng Ying

University of Technology, Sydney and Tsinghua University

SamsonFest, May 28-30,2013

slide-2
SLIDE 2

Abramsky Conjecture:

For every n > 2, every n−partite entangled state is logically non-local

slide-3
SLIDE 3

Happy Birthday, Samson!

slide-4
SLIDE 4

Outline

Introduction Syntax of Quantum Programs Operational Semantics Denotational Semantics Correctness Formulas Proof System for Quantum Programs Conclusion

slide-5
SLIDE 5

Outline

Introduction Syntax of Quantum Programs Operational Semantics Denotational Semantics Correctness Formulas Proof System for Quantum Programs Conclusion

slide-6
SLIDE 6

Quantum Programming

◮ Quantum Random Access Machine (QRAM) model

  • E. H. Knill, Conventions for quantum pseudocode, Technical Report, Los

Alamos National Laboratory, 1996.

slide-7
SLIDE 7

Quantum Programming

◮ Quantum Random Access Machine (QRAM) model ◮ A set of conventions for writing quantum pseudocode

  • E. H. Knill, Conventions for quantum pseudocode, Technical Report, Los

Alamos National Laboratory, 1996.

slide-8
SLIDE 8

Quantum Programming Languages

◮ qGCL: quantum extension of Dijkstra’s Guarded Command

Language [1] [1] J. W. Sanders and P. Zuliani, Quantum programming, Mathematics

  • f Program Construction, 2000.

[2] B. Ömer, Structural quantum programming, Ph.D. Thesis, Technical University of Vienna, 2003. [3] P. Selinger, Towards a quantum programming language, Mathematical Structures in Computer Science, 14(2004)

slide-9
SLIDE 9

Quantum Programming Languages

◮ qGCL: quantum extension of Dijkstra’s Guarded Command

Language [1]

◮ QCL: high-level, architecture independent, with a syntax derived

from classical procedural languages like C or Pascal [2] [1] J. W. Sanders and P. Zuliani, Quantum programming, Mathematics

  • f Program Construction, 2000.

[2] B. Ömer, Structural quantum programming, Ph.D. Thesis, Technical University of Vienna, 2003. [3] P. Selinger, Towards a quantum programming language, Mathematical Structures in Computer Science, 14(2004)

slide-10
SLIDE 10

Quantum Programming Languages

◮ qGCL: quantum extension of Dijkstra’s Guarded Command

Language [1]

◮ QCL: high-level, architecture independent, with a syntax derived

from classical procedural languages like C or Pascal [2]

◮ QPL: functional in nature, with high-level features (loops,

recursive procedures, structured data types) [3] [1] J. W. Sanders and P. Zuliani, Quantum programming, Mathematics

  • f Program Construction, 2000.

[2] B. Ömer, Structural quantum programming, Ph.D. Thesis, Technical University of Vienna, 2003. [3] P. Selinger, Towards a quantum programming language, Mathematical Structures in Computer Science, 14(2004)

slide-11
SLIDE 11

Quantum Programming Languages

◮ Scaffold: Quantum programming language (Princeton, UCS,

UCSB) [1] [1] A. J. Abhari, et al., Scaffold: Quantum Programming Language, Technical Report, Department of Computer Science, Princeton University, 2012. [2] A. S. Green, P. L. Lumsdaine, N. J. Ross, P. Selinger and B. Valiron, Quipper: A Scalable Quantum Programming Language, PLDI, 2013.

slide-12
SLIDE 12

Quantum Programming Languages

◮ Scaffold: Quantum programming language (Princeton, UCS,

UCSB) [1]

◮ Quipper: A Scalable Quantum Programming Language [2]

[1] A. J. Abhari, et al., Scaffold: Quantum Programming Language, Technical Report, Department of Computer Science, Princeton University, 2012. [2] A. S. Green, P. L. Lumsdaine, N. J. Ross, P. Selinger and B. Valiron, Quipper: A Scalable Quantum Programming Language, PLDI, 2013.

slide-13
SLIDE 13

Floyd-Hoare Logic for Quantum Programs

[1] O. Brunet and P. Jorrand, Dynamic quantum logic for quantum programs, International Journal of Quantum Information, 2(2004) [2] A. Baltag and S. Smets, LQP: the dynamic logic of quantum information, Mathematical Structures in Computer Science, 16(2006) [3] Y. Kakutani, A logic for formal verification of quantum programs, Proceedings of 13th Asian conference on Advances in Computer Science, 2009 [4] M. S. Ying, TOPLAS 39(2011), art. no. 19 [4’] M. S. Ying, arXiv (quant-ph): 0906.4586

slide-14
SLIDE 14

Outline

Introduction Syntax of Quantum Programs Operational Semantics Denotational Semantics Correctness Formulas Proof System for Quantum Programs Conclusion

slide-15
SLIDE 15

Syntax

A “core”language for imperative quantum programming

◮ A countably infinite set Var of quantum variables

slide-16
SLIDE 16

Syntax

A “core”language for imperative quantum programming

◮ A countably infinite set Var of quantum variables ◮ Two basic data types: Boolean, integer

slide-17
SLIDE 17

Syntax, Continued

Hilbert spaces denoted by Boolean and integer: HBoolean = H2, Hinteger = H∞. Space l2 of square summable sequences H∞ = {

n=−∞

αn|n : αn ∈ C for all n ∈ Z and

n=−∞

|αn|2 < ∞}, where Z is the set of integers.

slide-18
SLIDE 18

Syntax, Continued

A quantum register is a finite sequence of distinct quantum variables. State space of a quantum register q = q1, ..., qn: Hq =

n

  • i=1

Hqi.

slide-19
SLIDE 19

Syntax, Continued

Quantum extension of classical while-programs: S ::= skip | q := 0 | q := Uq | S1; S2 | measure M[q] : S | while M[q] = 1 do S

◮ q is a quantum variable and q a quantum register

slide-20
SLIDE 20

Syntax, Continued

Quantum extension of classical while-programs: S ::= skip | q := 0 | q := Uq | S1; S2 | measure M[q] : S | while M[q] = 1 do S

◮ q is a quantum variable and q a quantum register ◮ U in the statement “q := Uq”is a unitary operator on Hq

slide-21
SLIDE 21

Syntax, Continued

Quantum extension of classical while-programs: S ::= skip | q := 0 | q := Uq | S1; S2 | measure M[q] : S | while M[q] = 1 do S

◮ q is a quantum variable and q a quantum register ◮ U in the statement “q := Uq”is a unitary operator on Hq ◮ statement measure:

slide-22
SLIDE 22

Syntax, Continued

Quantum extension of classical while-programs: S ::= skip | q := 0 | q := Uq | S1; S2 | measure M[q] : S | while M[q] = 1 do S

◮ q is a quantum variable and q a quantum register ◮ U in the statement “q := Uq”is a unitary operator on Hq ◮ statement measure:

◮ M = {Mm} is a measurement on the state space Hq of q

slide-23
SLIDE 23

Syntax, Continued

Quantum extension of classical while-programs: S ::= skip | q := 0 | q := Uq | S1; S2 | measure M[q] : S | while M[q] = 1 do S

◮ q is a quantum variable and q a quantum register ◮ U in the statement “q := Uq”is a unitary operator on Hq ◮ statement measure:

◮ M = {Mm} is a measurement on the state space Hq of q ◮ S = {Sm} is a set of quantum programs such that each outcome m

  • f measurement M corresponds to Sm
slide-24
SLIDE 24

Syntax, Continued

Quantum extension of classical while-programs: S ::= skip | q := 0 | q := Uq | S1; S2 | measure M[q] : S | while M[q] = 1 do S

◮ q is a quantum variable and q a quantum register ◮ U in the statement “q := Uq”is a unitary operator on Hq ◮ statement measure:

◮ M = {Mm} is a measurement on the state space Hq of q ◮ S = {Sm} is a set of quantum programs such that each outcome m

  • f measurement M corresponds to Sm

◮ statement while: M = {M0, M1} is a yes-no measurement on Hq

slide-25
SLIDE 25

Outline

Introduction Syntax of Quantum Programs Operational Semantics Denotational Semantics Correctness Formulas Proof System for Quantum Programs Conclusion

slide-26
SLIDE 26

Notation

◮ A quantum configuration is a pair

S, ρ

slide-27
SLIDE 27

Notation

◮ A quantum configuration is a pair

S, ρ

◮ S is a quantum program or E (the empty program)

slide-28
SLIDE 28

Notation

◮ A quantum configuration is a pair

S, ρ

◮ S is a quantum program or E (the empty program) ◮ ρ ∈ D−(Hall) is a partial density operator on Hall — (global) state

  • f quantum variables
slide-29
SLIDE 29

Notation

◮ A quantum configuration is a pair

S, ρ

◮ S is a quantum program or E (the empty program) ◮ ρ ∈ D−(Hall) is a partial density operator on Hall — (global) state

  • f quantum variables

◮ Tensor product of the state spaces of all quantum variables:

Hall =

  • all q

Hq

slide-30
SLIDE 30

Notation

◮ A quantum configuration is a pair

S, ρ

◮ S is a quantum program or E (the empty program) ◮ ρ ∈ D−(Hall) is a partial density operator on Hall — (global) state

  • f quantum variables

◮ Tensor product of the state spaces of all quantum variables:

Hall =

  • all q

Hq

◮ Transitions between configurations:

S, ρ → S′, ρ′

slide-31
SLIDE 31

Operational Semantics

(Skip) skip, ρ → E, ρ (Initialization) q := 0, ρ → E, ρq

◮ type(q) = Boolean:

ρq

0 = |0q0|ρ|0q0| + |0q1|ρ|1q0|

slide-32
SLIDE 32

Operational Semantics

(Skip) skip, ρ → E, ρ (Initialization) q := 0, ρ → E, ρq

◮ type(q) = Boolean:

ρq

0 = |0q0|ρ|0q0| + |0q1|ρ|1q0|

◮ type(q) = integer:

ρq

0 = ∞

n=−∞

|0qn|ρ|nq0|

slide-33
SLIDE 33

Operational Semantics, Continued

(Unitary Transformation) q := Uq, ρ → E, UρU† (Sequential Composition) S1, ρ → S′

1, ρ′

S1; S2, ρ → S′

1; S2, ρ′

Convention : E; S2 = S2. (Measurement) measure M[q] : S, ρ → Sm, MmρM†

m

for each outcome m

slide-34
SLIDE 34

Operational Semantics, Continued

(Loop 0) while M[q] = 1 do S, ρ → E, M0ρM† (Loop 1) while M[q] = 1 do S, ρ → S; while M[q] = 1 do S, M1ρM†

1

slide-35
SLIDE 35

Outline

Introduction Syntax of Quantum Programs Operational Semantics Denotational Semantics Correctness Formulas Proof System for Quantum Programs Conclusion

slide-36
SLIDE 36

Definition

Semantic function of quantum program S: S : D−(Hall) → D−(Hall) is defined by S(ρ) = ∑{|ρ′ : S, ρ →∗ E, ρ′|} for all ρ ∈ D−(Hall).

slide-37
SLIDE 37

Representation of Semantic Function

  • 1. skip(ρ) = ρ.
slide-38
SLIDE 38

Representation of Semantic Function

  • 1. skip(ρ) = ρ.
slide-39
SLIDE 39

Representation of Semantic Function

  • 1. skip(ρ) = ρ.

2.

◮ type(q) = Boolean:

q := 0(ρ) = |0q0|ρ|0q0| + |0q1|ρ|1q0|. type(q) = integer: q := 0(ρ)

n=−∞

|0qn|ρ|nq0|.

slide-40
SLIDE 40

Representation of Semantic Function

  • 1. skip(ρ) = ρ.

2.

◮ type(q) = Boolean:

q := 0(ρ) = |0q0|ρ|0q0| + |0q1|ρ|1q0|. type(q) = integer: q := 0(ρ)

n=−∞

|0qn|ρ|nq0|.

  • 3. q := Uq(ρ) = UρU†.
slide-41
SLIDE 41

Representation of Semantic Function

  • 1. skip(ρ) = ρ.

2.

◮ type(q) = Boolean:

q := 0(ρ) = |0q0|ρ|0q0| + |0q1|ρ|1q0|. type(q) = integer: q := 0(ρ)

n=−∞

|0qn|ρ|nq0|.

  • 3. q := Uq(ρ) = UρU†.
  • 4. S1; S2(ρ) = S2(S1(ρ)).
slide-42
SLIDE 42

Representation of Semantic Function

  • 1. skip(ρ) = ρ.

2.

◮ type(q) = Boolean:

q := 0(ρ) = |0q0|ρ|0q0| + |0q1|ρ|1q0|. type(q) = integer: q := 0(ρ)

n=−∞

|0qn|ρ|nq0|.

  • 3. q := Uq(ρ) = UρU†.
  • 4. S1; S2(ρ) = S2(S1(ρ)).
  • 5. measure M[q] : S(ρ) = ∑mSm(MmρM†

m).

slide-43
SLIDE 43

Representation of Semantic Function

  • 1. skip(ρ) = ρ.

2.

◮ type(q) = Boolean:

q := 0(ρ) = |0q0|ρ|0q0| + |0q1|ρ|1q0|. type(q) = integer: q := 0(ρ)

n=−∞

|0qn|ρ|nq0|.

  • 3. q := Uq(ρ) = UρU†.
  • 4. S1; S2(ρ) = S2(S1(ρ)).
  • 5. measure M[q] : S(ρ) = ∑mSm(MmρM†

m).

  • 6. while M[q] = 1 do S(ρ) = ∞

n=0(while M[q] = 1 do S)n(ρ).

slide-44
SLIDE 44

Notation

(while M[q] = 1 do S)0 = Ω, (while M[q] = 1 do S)n+1 = measure M[q] : S, where:

◮ Ω is a program such that Ω = 0Hall for all ρ ∈ D(H)

slide-45
SLIDE 45

Notation

(while M[q] = 1 do S)0 = Ω, (while M[q] = 1 do S)n+1 = measure M[q] : S, where:

◮ Ω is a program such that Ω = 0Hall for all ρ ∈ D(H) ◮ S = S0, S1,

slide-46
SLIDE 46

Notation

(while M[q] = 1 do S)0 = Ω, (while M[q] = 1 do S)n+1 = measure M[q] : S, where:

◮ Ω is a program such that Ω = 0Hall for all ρ ∈ D(H) ◮ S = S0, S1,

S0 = skip, S1 = S; (while M[q] = 1 do S)n for all n ≥ 0.

slide-47
SLIDE 47

Recursion

while(ρ) = M0ρM†

0 + while(S(M1ρM† 1))

for all ρ ∈ D−(Hall), where:

◮ while is the quantum loop “while M[q] = 1 do S”.

slide-48
SLIDE 48

Observation:

tr(S(ρ)) ≤ tr(ρ) for any quantum program S and all ρ ∈ D−(Hall).

◮ tr(ρ) − tr(S(ρ)) is the probability that program S diverges

from input state ρ.

slide-49
SLIDE 49

Outline

Introduction Syntax of Quantum Programs Operational Semantics Denotational Semantics Correctness Formulas Proof System for Quantum Programs Conclusion

slide-50
SLIDE 50

Definition

  • E. D’Hondt and P. Panangaden, Quantum weakest preconditions,

Mathematical Structures in Computer Science, 16(2006)

◮ For any X ⊆ Var, a quantum predicate on HX is a Hermitian

  • perator P:

0HX ⊑ P ⊑ IHX.

slide-51
SLIDE 51

Definition

  • E. D’Hondt and P. Panangaden, Quantum weakest preconditions,

Mathematical Structures in Computer Science, 16(2006)

◮ For any X ⊆ Var, a quantum predicate on HX is a Hermitian

  • perator P:

0HX ⊑ P ⊑ IHX.

◮ P(HX) denotes the set of quantum predicates on HX.

slide-52
SLIDE 52

Definition

  • E. D’Hondt and P. Panangaden, Quantum weakest preconditions,

Mathematical Structures in Computer Science, 16(2006)

◮ For any X ⊆ Var, a quantum predicate on HX is a Hermitian

  • perator P:

0HX ⊑ P ⊑ IHX.

◮ P(HX) denotes the set of quantum predicates on HX. ◮ For any ρ ∈ D−(HX), tr(Pρ) stands for the probability that

predicate P is satisfied in state ρ.

slide-53
SLIDE 53

Definition

A correctness formula (Hoare triple) is a statement of the form: {P}S{Q} where:

◮ S is a quantum program

slide-54
SLIDE 54

Definition

A correctness formula (Hoare triple) is a statement of the form: {P}S{Q} where:

◮ S is a quantum program ◮ P and Q are quantum predicates on Hall.

slide-55
SLIDE 55

Definition

A correctness formula (Hoare triple) is a statement of the form: {P}S{Q} where:

◮ S is a quantum program ◮ P and Q are quantum predicates on Hall. ◮ Operator P is called the precondition and Q the postcondition.

slide-56
SLIDE 56

Definition

  • 1. The correctness formula {P}S{Q} is true in the sense of total

correctness, written | =tot {P}S{Q}, if tr(Pρ) ≤ tr(QS(ρ)) for all ρ ∈ D−(Hall).

slide-57
SLIDE 57

Definition

  • 1. The correctness formula {P}S{Q} is true in the sense of total

correctness, written | =tot {P}S{Q}, if tr(Pρ) ≤ tr(QS(ρ)) for all ρ ∈ D−(Hall).

  • 2. The correctness formula {P}S{Q} is true in the sense of partial

correctness, written | =par {P}S{Q}, if tr(Pρ) ≤ tr(QS(ρ)) + [tr(ρ) − tr(S(ρ))] for all ρ ∈ D−(Hall).

slide-58
SLIDE 58

Outline

Introduction Syntax of Quantum Programs Operational Semantics Denotational Semantics Correctness Formulas Proof System for Quantum Programs Conclusion

slide-59
SLIDE 59

Proof System PD for Partial Correctness

(Axiom Skip) {P}Skip{P} (Axiom Initialization) type(q) = Boolean : {|0q0|P|0q0| + |1q0|P|0q1|}q := 0{P} type(q) = integer : {

n=−∞

|nq0|P|0qn|}q := 0{P} (Axiom Unitary Transformation) {U†PU}q := Uq{P}

slide-60
SLIDE 60

Proof System PD for Partial Correctness, Continued

(Rule Sequential Composition) {P}S1{Q} {Q}S2{R} {P}S1; S2{R} (Rule Measurement) {Pm}Sm{Q} for all m {∑m M†

mPmMm}measure M[q] : S{Q}

(Rule Loop Partial) {Q}S{M†

0PM0 + M† 1QM1}

{M†

0PM0 + M† 1QM1}while M[q] = 1 do S{P}

(Rule Order) P ⊑ P′ {P′}S{Q′} Q′ ⊑ Q {P}S{Q}

slide-61
SLIDE 61

Soundness Theorem for PD

Proof system PD is sound for partial correctness of quantum programs.

◮ For any quantum program S and quantum predicates

P, Q ∈ P(Hall), we have: ⊢PD {P}S{Q} implies | =par {P}S{Q}.

slide-62
SLIDE 62

Completeness Theorem for PD

Proof system PD is complete for partial correctness of quantum programs.

◮ For any quantum program S and quantum predicates

P, Q ∈ P(Hall), we have: | =par {P}S{Q} implies ⊢PD {P}S{Q}.

slide-63
SLIDE 63

Proof System TD for Total Correctness

Let P ∈ P(Hall) and ǫ > 0. A function t : D−(Hall) → N is called a (P, ǫ)−bound function of quantum loop: while M[q] = 1 do S if:

  • 1. t(S(M1ρM†

1)) ≤ t(ρ);

for all ρ ∈ D−(Hall).

slide-64
SLIDE 64

Proof System TD for Total Correctness

Let P ∈ P(Hall) and ǫ > 0. A function t : D−(Hall) → N is called a (P, ǫ)−bound function of quantum loop: while M[q] = 1 do S if:

  • 1. t(S(M1ρM†

1)) ≤ t(ρ);

  • 2. tr(Pρ) ≥ ǫ implies t(S(M1ρM†

1)) < t(ρ)

for all ρ ∈ D−(Hall).

slide-65
SLIDE 65

Proof System TD for Total Correctness

Proof System TD = (Proof System PD − Rule Loop Partial) + Rule Loop Total

slide-66
SLIDE 66

Proof System TD for Total Correctness

Proof System TD = (Proof System PD − Rule Loop Partial) + Rule Loop Total

Rule: Total Correctness for Loop

(Rule Loop Total) (1) {Q}S{M†

0PM0 + M† 1QM1}

(2) for any ǫ > 0, tǫ is a (M†

1QM1, ǫ) − bound

function of loop while M[q] = 1 do S {M†

0PM0 + M† 1QM1}while M[q] = 1 do S{P}

slide-67
SLIDE 67

Soundness Theorem for TD

Proof system TD is sound for total correctness of quantum programs.

◮ For any quantum program S and quantum predicates

P, Q ∈ P(Hall), we have: ⊢TD {P}S{Q} implies | =tot {P}S{Q}.

slide-68
SLIDE 68

Completeness Theorem

The proof system TD is complete for total correctness of quantum programs.

◮ For any quantum program S and quantum predicates

P, Q ∈ P(Hall), we have: | =tot {P}S{Q} implies ⊢TD {P}S{Q}.

slide-69
SLIDE 69

Proof Outline

◮ Claim: ⊢PD {wlp.S.Q}S{Q} for any quantum program S and

quantum predicate P ∈ P(Hall). Induction on the structure of S. wp.while.Q = M†

0QM0 + M† 1(wp.S.(wp.while.Q))M1.

Our aim is to derive: {M†

0QM0 + M† 1(wp.S.(wp.while.Q))M1}while{Q}.

slide-70
SLIDE 70

Proof Outline

◮ Claim: ⊢PD {wlp.S.Q}S{Q} for any quantum program S and

quantum predicate P ∈ P(Hall). Induction on the structure of S.

◮ Example case: S = while M[q] = 1 do S′.

wp.while.Q = M†

0QM0 + M† 1(wp.S.(wp.while.Q))M1.

Our aim is to derive: {M†

0QM0 + M† 1(wp.S.(wp.while.Q))M1}while{Q}.

slide-71
SLIDE 71

Proof Outline, Continued

◮ Induction hypothesis on S′:

{wp.S′.(wp.while.Q)}S{wp.while.Q}.

slide-72
SLIDE 72

Proof Outline, Continued

◮ Induction hypothesis on S′:

{wp.S′.(wp.while.Q)}S{wp.while.Q}.

◮ Rule Loop Total: It suffices to show that for any ǫ > 0, there

exists a (M†

1(wp.S′. (wp.S.Q))M1, ǫ)−bound function of quantum

loop while.

slide-73
SLIDE 73

Proof Outline, Continued

◮ Induction hypothesis on S′:

{wp.S′.(wp.while.Q)}S{wp.while.Q}.

◮ Rule Loop Total: It suffices to show that for any ǫ > 0, there

exists a (M†

1(wp.S′. (wp.S.Q))M1, ǫ)−bound function of quantum

loop while.

◮ Bound Function Lemma: We only need to prove:

lim

n→∞ tr(M† 1(wp.S′.(wp.while.Q))M1(S′ ◦ E1)n(ρ)) = 0.

slide-74
SLIDE 74

Proof Outline, Continued

We observe: tr(M†

1(wp.S′.(wp.while.Q))M1(S′ ◦ E1)n(ρ))

= tr(wp.S′.(wp.while.Q)M1(S′ ◦ E1)n(ρ)M†

1)

= tr(wp.while.QS′(M1(S′ ◦ E1)n(ρ)M†

1))

= tr(wp.while.Q(S′ ◦ E1)n+1(ρ)) = tr(Qwhile(S′ ◦ E1)n+1(ρ)) =

k=n+1

tr(Q[E0 ◦ (S′ ◦ E1)k](ρ)).

slide-75
SLIDE 75

Proof Outline, Continued

We consider the infinite series of nonnegative real numbers:

n=0

tr(Q[E0 ◦ (S′ ◦ E1)k](ρ)) = tr(Q

n=0

[E0 ◦ (S′ ◦ E1)k](ρ)). Since Q ⊑ IHall, it follows that tr(Q

n=0

[E0 ◦ (S′ ◦ E1)k](ρ)) = tr(Qwhile(ρ)) ≤ tr(while(ρ)) ≤ tr(ρ) ≤ 1.

slide-76
SLIDE 76

Outline

Introduction Syntax of Quantum Programs Operational Semantics Denotational Semantics Correctness Formulas Proof System for Quantum Programs Conclusion

slide-77
SLIDE 77

Conclusion

Hoare logic for deterministic quantum programs!

◮ Classical control flow ⇒ quantum control flow?

slide-78
SLIDE 78

Thank You!