一阶逻辑等值演算与推理

一阶逻辑等值演算与推理

  • 等值式
    • 定义
    • 常用等值式
      • 命题逻辑的等值式
      • 消去量词
        • 设 D={a1,a2,…,an}D = \{a_1,a_2,\dots,a_n\}。
        • ∀xA(x)⇔A(a1)∧A(a2)∧⋯∧A(an)\forall xA(x) \Leftrightarrow A(a_1) \land A(a_2) \land \cdots \land A(a_n)
        • ∃xA(x)⇔A(a1)∨A(a2)∨⋯∨A(an)\exists xA(x) \Leftrightarrow A(a_1) \lor A(a_2) \lor \cdots \lor A(a_n)
      • 量词否定
        • ¬∀xA(x)⇔∃x¬A(x)\neg \forall x A(x) \Leftrightarrow \exists x \neg A(x)
        • ¬∃xA(x)⇔∀x¬A(x)\neg \exists x A(x) \Leftrightarrow \forall x \neg A(x)
      • 辖域收缩与扩张
        • ∀x(A(x)∧B)⇔∀xA(x)∧B\forall x(A(x) \land B) \Leftrightarrow \forall xA(x) \land B
        • ∀x(A(x)∨B)⇔∀xA(x)∨B\forall x(A(x) \lor B) \Leftrightarrow \forall xA(x) \lor B
        • ∀x(A(x)→B)⇔∃xA(x)→B\forall x(A(x) \to B) \Leftrightarrow \exists xA(x) \to B(特别注意)
        • ∀x(B→A(x))⇔B→∀xA(x)\forall x(B \to A(x)) \Leftrightarrow B \to \forall xA(x)
      • 量词分配
        • ∀x(A(x)∧B(x))⇔∀xA(x)∧∀xB(x)\forall x(A(x) \land B(x)) \Leftrightarrow \forall xA(x) \land \forall xB(x)
        • ∃x(A(x)∨B(x))⇔∃xA(x)∨∃xB(x)\exists x(A(x) \lor B(x)) \Leftrightarrow \exists xA(x) \lor \exists xB(x)
      • 置换规则
        • 如果 A⇔BA \Leftrightarrow B,则 Φ(A)⇔Φ(B)\Phi(A) \Leftrightarrow \Phi(B)
      • 换名规则
        • AA 为一公式,将 AA 中的某个量词的指导变元、其在辖域中的出现替换为其他符号,新旧公式等值。
        • 换名规则常用于替换同时约束和自由出现的变项。
  • 前束范式
    • 如果公式 AA 具有形式 Q1x1Q2x2⋯QkxkBQ_1x_1Q_2x_2\cdots Q_kx_kB,QiQ_i 为量词,BB 中无量词,则 AA 为前束范式。
    • 任何公式都存在对应前束范式。
    • 求解前束范式时,一般需要扩展辖域,需要先用换名规则处理变项。
  • 推理理论
    • 推理定律
      • 命题逻辑推理定律
      • 一阶逻辑常用等值式
      • 常用推理定律
        • ∀xA(x)∨∀xB(x)⇒∀x(A(x)∨B(x))\forall xA(x) \lor \forall xB(x) \Rightarrow \forall x(A(x) \lor B(x))
        • ∃x(A(x)∧B(x))⇒∃xA(x)∧∃xB(x)\exists x(A(x) \land B(x)) \Rightarrow \exists xA(x) \land \exists xB(x)
        • ∀x(A(x)→B(x))⇒∀xA(x)→∀xB(x)\forall x(A(x) \to B(x)) \Rightarrow \forall xA(x) \to \forall xB(x)
        • ∃x(A(x)→B(x))⇒∃xA(x)→∃xB(x)\exists x(A(x) \to B(x)) \Rightarrow \exists xA(x) \to \exists xB(x)
      • 全称量词消去规则
        • ∀xA(x)⇒A(y)\forall xA(x) \Rightarrow A(y),yy 为个体变项,且 xx 不在 AA 中 ∀y\forall y 和 ∃y\exists y 的辖域中自由出现。
          • AA 中 xx 都会被替换为 yy,如果 xx 自由出现在 yy 辖域中,则会出现名字冲突。
        • ∀xA(x)⇒A(c)\forall xA(x) \Rightarrow A(c),cc 为个体常项。
      • 全称量词引入规则
        • A(y)⇒∀xA(x)A(y) \Rightarrow \forall xA(x),yy 不在证明的前提中自由出现。
          • 如果前提中有 yy 自由出现,则 yy 被前提约束,无法保证 yy 任意性。
          • 前提中的约束出现 yy 被限定作用域为量词辖域,对这里的 yy 不影响。
      • 存在量词消去规则
        • ∃xA(x)∧(A(y)→B)⇒B\exists xA(x) \land (A(y) \to B) \Rightarrow B 或 A(y)→B⇒∃xA(x)→BA(y) \to B \Rightarrow \exists xA(x) \to B,yy 不在 BB 和证明的前提中自由出现。
          • 如果前提中有 yy 自由出现,则 yy 被前提约束,不一定可以使得 A(y)A(y) 成立。
          • 如果 BB 中有 yy 自由出现,则 BB 不一定对所有 yy 都为真。
        • ∃xA(x)∧(A(c)→B)⇒B\exists xA(x) \land (A(c) \to B) \Rightarrow B 或 A(c)→B⇒∃xA(x)→BA(c) \to B \Rightarrow \exists xA(x) \to B,cc 不在 A,BA,B 和证明的前提中自由出现。
          • 条件原因同上。
      • 存在量词引入规则
        • A(y)⇒∃xA(x)A(y) \Rightarrow \exists xA(x) 或 B→A(y)⇒B→∃xA(x)B \to A(y) \Rightarrow B \to \exists xA(x),yy 不在 AA 中的 ∀x\forall x 或 ∃x\exists x 的辖域中自由出现。
          • 条件原因同 ∀+\forall+,防止与 AA 中已有 xx 冲突。
        • A(c)⇒∃xA(x)A(c) \Rightarrow \exists xA(x) 或 B→A(c)⇒B→∃xA(x)B \to A(c) \Rightarrow B \to \exists xA(x),cc 不在 AA 中的 ∀x\forall x 或 ∃x\exists x 的辖域中自由出现。
          • 条件原因同上。