程序验证(一):命题逻辑
概念
命题逻辑
例如 P ∨ ¬ Q → R P\vee \neg Q \to R P∨¬Q→R
- 一个原子(atom)是一个或为真或为假的判断。
- 一个文字(literal)是一个原子或它的非。
- 命题公式(propositional formulas)由文字和逻辑连接符组成。
合式公式
合式公式(well-formed formulas) 由以下语法得到:
- ⟨ a t o m ⟩ \langle atom\rangle ⟨atom⟩ ::= ⊤ ( t r u e ) ∣ ⊥ ( f a l s e ) ∣ P , Q , . . . ( 命 题 变 量 ) \top (true) | \bot (false)|P,Q, ... (命题变量) ⊤(true)∣⊥(false)∣P,Q,...(命题变量)
- ⟨ l i t e r a l ⟩ \langle literal\rangle ⟨literal⟩::= ⟨ a t o m ⟩ \langle atom\rangle ⟨atom⟩| ¬ \neg ¬ ⟨ a t o m ⟩ \langle atom\rangle ⟨atom⟩(非)
- ⟨ f o r m u l a ⟩ \langle formula\rangle ⟨formula⟩::= ⟨ l i t e r a l ⟩ \langle literal\rangle ⟨literal⟩
| ¬ \neg ¬ ⟨ f o r m u l a ⟩ \langle formula\rangle ⟨formula⟩ (negation)
| ⟨ f o r m u l a ⟩ \langle formula\rangle ⟨formula⟩ ∧ \wedge ∧ ⟨ f o r m u l a ⟩ \langle formula\rangle ⟨formula⟩ (conjunction)
| ⟨ f o r m u l a ⟩ \langle formula\rangle ⟨formula⟩ ∨ \vee ∨ ⟨ f o r m u l a ⟩ \langle formula\rangle ⟨formula⟩ (disjunction)
| ⟨ f o r m u l a ⟩ \langle formula\rangle ⟨formula⟩ → \to → ⟨ f o r m u l a ⟩ \langle formula\rangle ⟨formula⟩ (implication)
| ⟨ f o r m u l a ⟩ \langle formula\rangle ⟨formula⟩ ↔ \leftrightarrow ↔ ⟨ f o r m u l a ⟩ \langle formula\rangle ⟨formula⟩ (equivalence)
举例:
公式 | 是否为合式公式 |
---|---|
⊤ \top ⊤ | 是 |
P ∧ ( Q ∨ R → P ) P\wedge (Q \vee R\to P) P∧(Q∨R→P) | 是 |
P P P | 是 |
P ⇒ Q P\Rightarrow Q P⇒Q | 否 |
语义
目的:给命题逻辑赋予涵义
把布尔值赋值给(公式,解释)对
即
F o r m u l