Chpt 1. Set Theory
幂集, Power Set: 集合A的所有子集构成的集合,记作P(A)或2A
外延性公理, Axiom of Extensionality: 两个集合包含相同的元素则它们相等
∀A∀B(∀x(x∈A↔x∈B)→A=B).
构造公理:
∃A∀x(x∈/A).
∀u∀v∃A∀x(x∈A↔(x=u∨x=v)
∀A∃B∀x(x∈B↔∃C(C∈A∧x∈C))
∀A∃B∀x(x∈B↔x⊆A)
偏序, Partial Order: 对于一个关系R和一个集合X,如果满足:
- Reflexivity 自反性:∀x∈X,xRx
- Anti-symmetry 反对称性:∀x∀y∈X,xRy,yRx↔x=y
- Transitivity 传递性:∀x∀y∀z∈X,xRy,yRz→xRz.
则⟨X,R⟩是一个偏序关系。
Chpt 2. Operational Semantics
IMP语言的操作语义
- 状态(State) :
- 状态是一个函数 σ:Loc→N
- 状态的集合表示为∑
- 直观理解:状态指定了各个位置(变量)所持有的值
- 目标 :
- 构建一个关系 R⊆(Com×∑)×∑,使得 (c,σ)Rσ′ 表示在初始状态 σ 下执行命令 c,最终得到状态σ′
- 算术表达式的配置(Configurations for Aexp) :
- 配置是一个对⟨a,σ⟩,其中a∈Aexp 且σ∈∑
- 目标:定义一个关系⟨a,σ⟩→n,表示在状态σ下,算术表达式a被求值为整数n.
IMP的命令语义
⟨X:=a,σ⟩⇒σ[X↦n]⟨a,σ⟩⇒n
⟨c1;c2,σ⟩⇒σ′⟨c1,σ⟩⇒σ′′⟨c2,σ′′⟩⇒σ′
⟨if b then c1 else c2,σ⟩⇒σ′⟨b,σ⟩⇒true⟨c1,σ⟩⇒σ′⟨if b then c1 else c2,σ⟩⇒σ′⟨b,σ⟩⇒false⟨c2,σ⟩⇒σ′
⟨while b do c,σ⟩⇒σ⟨b,σ⟩⇒false⟨while b do c,σ⟩⇒σ′⟨b,σ⟩⇒true⟨c,σ⟩⇒σ′′⟨while b do c,σ′′⟩⇒σ′
大步语义:如上,描述程序从初始状态到最终状态的转变,不关注中间过程;⟨c,σ⟩→σ′
小步语义:描述one-step的执行变化,比如执行了一次加法或赋值;⟨c,σ⟩→1⟨c′,σ′⟩
Chpt 3. Some Principles of Induction
数学归纳法:
[P(0)&∀n∈N.(P(n)→P(n+1))]→∀n∈N.P(n)
良基归纳 Well-Founded Induction:
- A: a set
- ≺⊆A×A: a binary relation on A
The relation ≺ is well-founded if:
- there is no infinite descending sequence ...≺an≺...≺a1≺a0 in A.
- well-foundedness implies irreflexibility: ∀a∈A,a⊀a.
即不允许无限下降链,所以≤不是良基的,因为可以出现无限下降链(全等于)。
结构归纳 Structural Induction:
- 基始步(Base Case) :证明性质对于基本结构(即最小或最简单的结构)成立。
- 归纳步(Inductive Step) :假设性质对某些子结构成立,然后证明性质对包含这些子结构的复合结构也成立。
Chpt 4. Inductive Definitions
前提/结论
Axiom Instances: ∅/y
Non-axiom Rule Instances: {x1,...,xn}/y
d⊢Ry:推导d在规则集R下可以导出结论y。
(∅/y)⊢Ry if (∅/y)∈R
({d1,…,dn}/y)⊢y if ({x1,…,xn}/y)∈R and d1⊢Rx1,…,dn⊢Rxn;
Rule Induction:
- IR={y∈E∣⊢Ry}, I是元素集合E中可以通过规则R推导得到的元素的集合;
- P是IR上的一个谓词:
∀x∈IR.P(x) iff ∀(X/y)∈R.[(X⊆IR & ∀x∈X.P(x))→P(y)]
就是若X则y,X都满足P则y也满足
Closedness:
∀(X/y)∈R.(x⊆Q→y∈Q).
Special Rule Induction: 证明一个谓词P在IR的一个子集A上成立
∀(X/y)∈R.[(X⊆IR & y∈A & (∀x∈X∩A. Q(x)))→Q(y)]
证明过程例子:Y: a location (program variable)
∀c,σ,σ′⋅[(Y∈/loc(c) & ⟨c,σ⟩→σ′)⇒σ(Y)=σ′(Y)]
证:
- 定义集合A:
A:={⟨c,σ⟩→σ′∣Y∈/loc(c)}
- 定义谓词Q:
Q(c,σ,σ′):=σ(Y)=σ′(Y)
- 验证条件:
∀⟨c,σ⟩→σ′∈A.Q(c,σ,σ′)
- 利用闭合性:
∀(X/y)∈R.[(X⊆IR & y∈A & (∀x∈X∩A⋅Q(x)))⇒Q(y)]
Chpt 5. The Denotational Semantics of IMP
Equivalence over Commands:
c0∼c1, iff ∀σ,σ′,(⟨c0,σ⟩→σ′↔⟨c1,σ⟩→σ′)iff {(σ,σ′)∣⟨c0,σ⟩→σ′}={(σ,σ′)∣⟨c1,σ⟩→σ′}
从这个视角来看,commands都是一些偏函数,展示了从一些状态转移到另一些状态的过程。Denotational Semantics指称语义就是研究程序对应的数学对象,通过这些数学对象的性质研究程序的性质。
完备偏序集 Complete Partial Orders CPOs:
- 上界
- (P,⊑)是一个偏序集,指P是一个集合而⊑是一个偏序关系;
- X是P的一个子集;
- 若p∈P满足∀q∈X. q⊑p.,则p是X的上界。
- p0是最小上界:∀q∈Xp,p0⊑q
- ω-链
- 无限序列d0,...,dn,...,满足d0⊑d1⊑...⊑dn⊑...
- CPOs
- (P,⊑)是一个CPO,如果对于P上任意的ω-链,最小的上界都存在于P中,记作:
n∈ω⨆dn:=⊔{dn∣n∈ω}=⊔{d0,d1,...,dn,...}
- 最小元素:p∈P是最小元素,如果∀q∈P.p⊑q.
- CPOs with bottom: 有最小元素的CPO
单调函数 Monotonic Functions:
With(D,⊑D), (E,⊑E),a functionf: D→E is monotonic if
∀d,d′∈D. [d⊑Dd′→f(d)⊑Ef(d′)]
连续函数Continous Functions:
A function f: D→E is continuous if
- f is monotonic
- for all ω-chains d0⊑d1⊑...⊑dn⊑... in D, we have
n∈ω⨆f(dn)=f(n∈ω⨆dn)
不动点Fixed Points:
An element d∈D is:
- a fixed point of f if f(d)=d
- a prefixed point of f if f(d)⊑d
Suppose
- (D,⊑D) with a bottom ⊥D
- f:D→D a continuous function
- ⊥D⊑f(⊥D)⊑f2(⊥D)⊑...⊑fn(⊥D)⊑...
- fix(f)=⨆n∈ωfn(⊥D)
Then
- fix(f) is fix point of f
- fix(f) is the least prefixed point of f: f(d)⊑d→fix(f)⊑d
- fix(f) is the least fixed point of f: f(d)=d→fix(f)⊑d
Knaster-Tarski不动点 Knaster-Tarski Fixed-Point Theorem:
- 完全格 Complete Lattices:(D,⊑) is a complete lattice if greatest lower bound ⊓X exists for every X⊆D
- L是一个完全格,f:L→L是一个单调函数,则f在L上有不动点,有最大最小不动点,且不动点的集合也是一个完全格
Chpt 5. The Axiomatic Semantics of IMP
霍尔三元组 Hoare Triples:
{P}c{Q}
P是前条件,c是命令,Q是后条件。
Assn定义一组逻辑断言,描述和验证程序的行为。状态σ满足一个断言A记作σ⊨A,当且仅当A中所有的X被σ(X)替代之后A仍然为真。A[a/i]就是把程序A中的i全部替换成a。
σ⊨′{A}c{B} iff (σ⊨′A⟹C[x](σ)⊨′B)
如果A满足,c能停止,则停止后B一定满足