第一部分 引言和预备知识 2
第1章 引言 2
1.1 量子编程研究简史 2
1.1.1 量子编程语言的设计 2
1.1.2 量子编程语言的语义 3
1.1.3 量子程序的验证和分析 3
1.2 量子编程的方法 4
1.2.1 数据叠加——带经典控制的量子程序 4
1.2.2 程序叠加——带量子控制的量子程序 5
1.3 全书结构 5
第2章 预备知识 8
2.1 量子力学 8
2.1.1 希尔伯特空间 8
2.1.2 线性算子 12
2.1.3 幺正变换 14
2.1.4 量子测量 16
2.1.5 希尔伯特空间的张量积 18
2.1.6 密度算子 20
2.1.7 量子操作 22
2.2 量子线路 24
2.2.1 基本定义 24
2.2.2 单量子比特门 26
2.2.3 受控门 27
2.2.4 量子多路复用器 29
2.2.5 量子门的通用性 31
2.2.6 量子线路的测量 31
2.3 量子算法 32
2.3.1 量子并行性与量子干涉 33
2.3.2 Deutsch-Jozsa算法 35
2.3.3 Grover搜索算法 36
2.3.4 量子游走 39
2.3.5 量子游走搜索算法 42
2.3.6 量子傅里叶变换 44
2.3.7 相位估计 45
2.4 文献注解 48
第二部分 带经典控制的量子程序 50
第3章 量子程序的语法和语义 50
3.1 语法 50
3.2 操作语义 53
3.3 指称语义 59
3.3.1 语义函数的基本属性 61
3.3.2 量子域 62
3.3.3 循环的语义函数 64
3.3.4 量子变量的改变与访问 65
3.3.5 终止和发散的概率 66
3.3.6 作为量子操作的语义函数 68
3.4 量子编程中的经典递归 69
3.4.1 语法 70
3.4.2 操作语义 71
3.4.3 指称语义 71
3.4.4 不动点特性 74
3.5 例子:Grover量子搜索 77
3.6 引理的证明 79
3.7 文献注解 83
第4章 量子程序的逻辑 85
4.1 量子谓词 85
4.1.1 量子最弱前置条件 87
4.2 量子程序的Floyd-Hoare逻辑 91
4.2.1 正确性公式 91
4.2.2 量子程序的最弱前置条件 94
4.2.3 部分正确性的证明系统 101
4.2.4 整体正确性的证明系统 107
4.2.5 例子:推理Grover算法 114
4.3 量子最弱前置条件的可交换性 119
4.4 文献注解 123
第5章 量子程序的分析 124
5.1 量子while循环的终止性分析 124
5.1.1 使用幺正操作作为循环体的量子while循环 124
5.1.2 一般性量子while循环 132
5.1.3 例子 143
5.2 量子图理论 145
5.2.1 基本定义 146
5.2.2 末端强连通分量 149
5.2.3 状态希尔伯特空间的分解 153
5.3 量子马尔可夫链的可达性分析 158
5.3.1 可达性概率 158
5.3.2 重复可达性概率 160
5.3.3 持续性概率 163
5.4 引理的证明 165
5.5 文献注解 173
第三部分 带量子控制的量子程序 176
第6章 量子case语句 176
6.1 case语句:从经典到量子 176
6.2 QuGCL:支持量子case语句的编程语言 179
6.3 量子操作的卫式组合 182
6.3.1 幺正算子的卫式组合 182
6.3.2 算子值函数 183
6.3.3 算子值函数的卫式组合 185
6.3.4 量子操作的卫式组合 187
6.4 QuGCL程序的语义 189
6.4.1 经典态 189
6.4.2 半经典语义 190
6.4.3 纯量子语义 192
6.4.4 最弱前置条件语义 194
6.4.5 例子 195
6.5 量子选择 197
6.5.1 选择:通过概率性从经典转换到量子 197
6.5.2 概率性选择的量子实现 199
6.6 代数法则 202
6.7 例子 204
6.7.1 量子游走 204
6.7.2 量子相位估算 206
6.8 讨论 208
6.8.1 量子操作卫式组合的系数 208
6.8.2 通过子空间控制的量子case语句 211
6.9 引理、命题和定理的证明 213
6.10 文献注解 225
第7章 量子递归 227
7.1 量子递归程序的语法 227
7.2 启发性示例:递归量子游走 230
7.2.1 递归量子游走的规范 230
7.2.2 如何求解递归量子方程 234
7.3 二次量子化 235
7.3.1 多粒子态 235
7.3.2 Fock空间 238
7.3.3 Fock空间的可观测量 241
7.3.4 Fock空间的演变 243
7.3.5 粒子的产生与湮灭 244
7.4 在自由Fock空间中求解递归方程 245
7.4.1 自由Fock空间中算子的域 245
7.4.2 程序模式的语义泛函 248
7.4.3 不动点语义 251
7.4.4 语法逼近 252
7.5 恢复对称性与反对称性 257
7.5.1 对称函数 258
7.5.2 量子递归程序语义的对称性 259
7.6 量子递归的主系统语义 260
7.7 例子:回顾递归量子游走 261
7.8 (带量子控制的)量子while循环 265
7.9 文献注解 268
第四部分 发展前景 272
第8章 发展前景 272
8.1 量子程序与量子机 272
8.2 量子编程语言的实现 273
8.3 函数式量子编程 274
8.4 量子程序的范畴语义 275
8.5 从并行量子程序到量子并行 275
8.6 量子编程中的纠缠 276
8.7 模型检测量子系统 277
8.8 应用于物理学的量子编程 278
参考文献 279
索引 293