一阶逻辑等值演算与推理

一阶逻辑等值演算与推理

  • 等值式
    • 定义
    • 常用等值式
      • 命题逻辑的等值式
      • 消去量词
        • 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(BA(x))BxA(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)
      • 置换规则
        • 如果 ABA \Leftrightarrow B,则 Φ(A)Φ(B)\Phi(A) \Leftrightarrow \Phi(B)
      • 换名规则
        • AA 为一公式,将 AA 中的某个量词的指导变元、其在辖域中的出现替换为其他符号,新旧公式等值。
        • 换名规则常用于替换同时约束和自由出现的变项。
  • 前束范式
    • 如果公式 AA 具有形式 Q1x1Q2x2QkxkBQ_1x_1Q_2x_2\cdots Q_kx_kBQiQ_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 不在 AAy\forall yy\exists y 的辖域中自由出现。
          • AAxx 都会被替换为 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 BA(y)BxA(x)BA(y) \to B \Rightarrow \exists xA(x) \to Byy 不在 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 BA(c)BxA(x)BA(c) \to B \Rightarrow \exists xA(x) \to Bcc 不在 A,BA,B 和证明的前提中自由出现。
          • 条件原因同上。
      • 存在量词引入规则
        • A(y)xA(x)A(y) \Rightarrow \exists xA(x)BA(y)BxA(x)B \to A(y) \Rightarrow B \to \exists xA(x)yy 不在 AA 中的 x\forall xx\exists x 的辖域中自由出现。
          • 条件原因同 +\forall+,防止与 AA 中已有 xx 冲突。
        • A(c)xA(x)A(c) \Rightarrow \exists xA(x)BA(c)BxA(x)B \to A(c) \Rightarrow B \to \exists xA(x)cc 不在 AA 中的 x\forall xx\exists x 的辖域中自由出现。
          • 条件原因同上。