Proof

We only prove (ii), and the proof of (i) is similar and easier. For every ρD(Hall)si143_e, by Proposition 4.2.3 (iv) we observe:

tr[(M0PM0+M1(wlp.S.(wlp.while.P))M1)ρ]=tr(PM0ρM0)+tr[(wlp.S.(wlp.while.P))M1ρM1]=tr(PM0ρM0)+tr[(wlp.while.P)S(M1ρM1)]+[tr(M1ρM1)tr(S(M1ρM1))]=tr(PM0ρM0)+tr[Pwhile(S(M1ρM1))]+[tr(S(M1ρM1)tr(while(S(M1ρM1))]+[tr(M1ρM1)tr(S(M1ρM1))]=tr[P(M0ρM0+while(S(M1ρM1)))]+[tr(M1ρM1)tr(while(S(M1ρM1))]=tr(Pwhile(ρ))+[tr(ρM1M1)tr(while(S(M1ρM1)))]=tr(Pwhile(ρ))+[tr(ρ(IM0M0))tr(while(S(M1ρM1)))]=tr(Pwhile(ρ))+[tr(ρ)tr(M0ρM0+while(S(M1ρM1)))]=tr(Pwhile(ρ))

Get Foundations of Quantum Programming now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.