离散数学-谓词逻辑与前束范式
谓词逻辑三段论命题与命题函数三段论A:大前提,B:小前提,C:结论,A,B⇒CA,B\Rightarrow C A,B⇒C的推理是有效的但是却无法使用命题逻辑论证命题与命题函数金子闪光,但闪光的不一定都是金子 金子闪光,但闪光的不一定都是金子金子闪光,但闪光的不一定都是金子令令令...
谓词逻辑
三段论
A:大前提,B:小前提,C:结论,
A , B ⇒ C A,B\Rightarrow C A,B⇒C
的推理是有效的但是却无法使用命题逻辑论证
谓词公式
命题与命题函数,命题与命题函数的表达
金 子 闪 光 , 但 闪 光 的 不 一 定 都 是 金 子 \tiny 金子闪光,但闪光的不一定都是金子 金子闪光,但闪光的不一定都是金子
令 G ( x ) : x 是 金 子 , F ( x ) : x 闪 光 命 题 表 达 为 ∀ x ( G ( x ) → F ( x ) ) ∧ ∃ x ( ¬ G ( x ) ∧ F ( x ) ) 或 ∀ x ( G ( x ) → F ( x ) ) ∧ ¬ ∀ x ( F ( x ) → G ( x ) ) \tiny 令G(x):x是金子,F(x):x闪光\\ 命题表达为\forall x(G(x) \rightarrow F(x))\wedge \exists x(\neg G(x) \wedge F(x))或 \forall x(G(x) \rightarrow F(x))\wedge \neg\forall x( F(x) \rightarrow G(x)) 令G(x):x是金子,F(x):x闪光命题表达为∀x(G(x)→F(x))∧∃x(¬G(x)∧F(x))或∀x(G(x)→F(x))∧¬∀x(F(x)→G(x))
谓词公式的赋值
谓词公式的永真式:给谓词公式付任何值,公式的值都为真,如I(x)V¬I(x)
谓词公式的等价
对 于 谓 词 公 式 A , B , 如 果 A ⟷ B 是 永 真 式 , 记 作 A ⟺ B 对于谓词公式A,B,如果A \longleftrightarrow B是永真式,记作A \Longleftrightarrow B 对于谓词公式A,B,如果A⟷B是永真式,记作A⟺B
谓词公式的永真蕴含式
对 于 谓 词 公 式 A , B , 如 果 A → B 是 永 真 式 , 记 作 A ⇒ B 对于谓词公式A,B,如果A \rightarrow B是永真式,记作A \Rightarrow B 对于谓词公式A,B,如果A→B是永真式,记作A⇒B
只 要 不 牵 涉 到 量 词 的 运 算 , 命 题 逻 辑 中 的 等 价 公 式 与 重 言 蕴 含 公 式 均 可 推 广 到 谓 词 逻 辑 中 \color{red} 只要不牵涉到量词的运算,命题逻辑中的等价公式与重言蕴含公式均可推广到谓词逻辑中 只要不牵涉到量词的运算,命题逻辑中的等价公式与重言蕴含公式均可推广到谓词逻辑中
谓词公式中量词的消去与转换
有限论域消去量词
如 论 域 D = { 1 , 2 , 3 } ∀ x A ( x ) ⇔ A ( 1 ) ∧ A ( 2 ) ∧ A ( 3 ) ∃ x A ( x ) ⇔ A ( 1 ) ∨ A ( 2 ) ∨ A ( 3 ) 如论域D=\{ 1,2,3\} \\ \forall xA(x) \Leftrightarrow A(1) \wedge A(2) \wedge A(3) \\ \exist x A(x) \Leftrightarrow A(1) \vee A(2) \vee A(3) \\ 如论域D={1,2,3}∀xA(x)⇔A(1)∧A(2)∧A(3)∃xA(x)⇔A(1)∨A(2)∨A(3)
量词转换
“ 并 非 所 有 的 x 具 有 性 质 A ” 与 “ 存 在 x 没 有 性 质 A ” 是 同 一 个 意 思 : ¬ ∀ x A ( x ) ⇔ ∃ x ¬ A ( x ) “并非所有的x具有性质A”与“存在x没有性质A”是同一个意思:\neg \forall xA(x) \Leftrightarrow \exists x \neg A(x) “并非所有的x具有性质A”与“存在x没有性质A”是同一个意思:¬∀xA(x)⇔∃x¬A(x)
量词辖域的扩充与收缩
不 受 量 词 约 束 的 部 分 可 以 添 加 或 消 除 到 量 词 的 辖 域 1. ∀ x A ( x ) ∨ B < − − > ∀ x ( A ( x ) ∨ B ) 2. ∀ x A ( x ) ∧ B < − − > ∀ x ( A ( x ) ∧ B ) 3. ∃ x A ( x ) ∨ B < − − > ∃ x ( A ( x ) ∨ B ) 4. ∃ x A ( x ) ∧ B < − − > ∃ x ( A ( x ) ∧ B ) 不受量词约束的部分可以添加或消除到量词的辖域\\ 1.\forall x A(x)\vee B<-->\forall x(A(x) \vee B)\\ 2.\forall x A(x)\wedge B<-->\forall x(A(x) \wedge B)\\ 3.\exists x A(x)\vee B<-->\exists x(A(x) \vee B)\\ 4.\exists x A(x)\wedge B<-->\exists x(A(x) \wedge B)\\ 不受量词约束的部分可以添加或消除到量词的辖域1.∀xA(x)∨B<−−>∀x(A(x)∨B)2.∀xA(x)∧B<−−>∀x(A(x)∧B)3.∃xA(x)∨B<−−>∃x(A(x)∨B)4.∃xA(x)∧B<−−>∃x(A(x)∧B)
量词分配公式
∀ x ( A ( x ) ∧ B ( x ) ) ⇔ ∀ x A ( x ) ∧ ∀ x B ( x ) ∃ x ( A ( x ) ∨ B ( x ) ) ⇔ ∃ x A ( x ) ∨ ∃ x B ( x ) ∃ x ( A ( x ) ∧ B ( x ) ) ⇒ ∃ x A ( x ) ∧ ∃ x B ( x ) ∀ x A ( x ) ∨ ∀ x B ( x ) ⇒ ∀ x ( A ( x ) ∨ B ( x ) ) 注 意 后 两 个 公 式 的 变 化 : 比 如 最 后 一 个 : 有 张 三 、 李 四 2 人 , 张 三 会 唱 歌 但 不 会 跳 舞 , 李 四 不 会 唱 歌 但 会 跳 舞 。 “ 所 有 人 或 者 会 唱 歌 或 者 会 跳 舞 ” 是 对 的 , “ 所 有 人 会 唱 歌 或 者 所 有 人 会 跳 舞 ” 是 错 的 。 所 以 : 全 称 量 词 对 析 取 没 有 分 配 律 。 \forall x(A(x) \wedge B(x)) \Leftrightarrow \forall xA(x) \wedge \forall x B(x) \\ \exists x(A(x) \vee B(x)) \Leftrightarrow \exists xA(x) \vee \exists x B(x) \\ \exists x(A(x) \wedge B(x)) \Rightarrow \exists xA(x) \wedge \exists x B(x) \\ \forall xA(x) \vee\forall x B(x) \Rightarrow \forall x(A(x) \vee B(x)) \\ \tiny 注意后两个公式的变化:比如最后一个:有张三、李四2人,张三会唱歌但不会跳舞,李四不会唱歌但会跳舞。\\ “所有人或者会唱歌或者会跳舞”是对的,“所有人会唱歌或者所有人会跳舞”是错的。所以:全称量词对析取没有分配律。 ∀x(A(x)∧B(x))⇔∀xA(x)∧∀xB(x)∃x(A(x)∨B(x))⇔∃xA(x)∨∃xB(x)∃x(A(x)∧B(x))⇒∃xA(x)∧∃xB(x)∀xA(x)∨∀xB(x)⇒∀x(A(x)∨B(x))注意后两个公式的变化:比如最后一个:有张三、李四2人,张三会唱歌但不会跳舞,李四不会唱歌但会跳舞。“所有人或者会唱歌或者会跳舞”是对的,“所有人会唱歌或者所有人会跳舞”是错的。所以:全称量词对析取没有分配律。
范式
前束范式
所有量词前都没有连接词,所有量词都在公式左面,所有量词的辖域都延伸到公式的末尾
例 如 ∀ y ∃ x ( A ( x ) → B ( x , y ) ) 例如 \ \ \ \ \forall y \exists x (A(x) \rightarrow B(x,y)) 例如 ∀y∃x(A(x)→B(x,y))
求 ∀ x A ( x ) → ∃ x B ( x ) 的 前 束 范 式 ¬ ∀ x A ( x ) ∨ ∃ x B ( x ) ∃ x ¬ A ( x ) ∨ ∃ x B ( x ) ∃ x ¬ A ( x ) ∨ ∃ y B ( y ) ( 换 名 原 则 ) ∃ x ( ¬ A ( x ) ∨ ∃ y B ( y ) ) ( 量 词 的 辖 域 扩 充 ) ∃ x ∃ y ( ¬ A ( x ) ∨ B ( y ) ) ( 量 词 的 辖 域 扩 充 ) 求\forall xA(x)\rightarrow \exists xB(x) 的前束范式\\ \neg \forall xA(x) \vee \exists xB(x)\\ \exists x\neg A(x) \vee \exists xB(x)\\ \exists x\neg A(x) \vee \exists yB(y)(换名原则)\\ \exists x(\neg A(x) \vee \exists yB(y))(量词的辖域扩充)\\ \exists x \exists y(\neg A(x) \vee B(y))(量词的辖域扩充)\\ 求∀xA(x)→∃xB(x)的前束范式¬∀xA(x)∨∃xB(x)∃x¬A(x)∨∃xB(x)∃x¬A(x)∨∃yB(y)(换名原则)∃x(¬A(x)∨∃yB(y))(量词的辖域扩充)∃x∃y(¬A(x)∨B(y))(量词的辖域扩充)
求前束范式的步骤:
1. 消 除 公 式 中 的 连 接 词 : → 与 ↔ ( 双 条 件 : p ↔ q 等 于 ( p → q ) ∧ ( q → p ) ) 消除公式中的连接词:\rightarrow 与 \leftrightarrow (双条件:p↔q等于(p→q)∧(q→p)) 消除公式中的连接词:→与↔(双条件:p↔q等于(p→q)∧(q→p))
2.
如 果 量 词 前 有 ¬ , 利 用 前 边 的 量 词 转 换 律 后 移 如果量词前有\neg,利用前边的量词转换律后移 如果量词前有¬,利用前边的量词转换律后移
3.
利 用 约 束 变 元 的 改 名 规 则 , 为 量 词 的 扩 充 做 准 备 利用约束变元的改名规则,为量词的扩充做准备 利用约束变元的改名规则,为量词的扩充做准备
4.
量 词 扩 充 后 提 取 量 词 , 将 式 子 化 为 前 束 范 式 量词扩充后提取量词,将式子化为前束范式 量词扩充后提取量词,将式子化为前束范式
谓词验算的推理
推理
推理的方法
推 理 方 法 P 1 ∧ P 2 ∧ P 3 ⇒ Q { 直 接 推 理 间 接 推 理 { 条 件 论 证 ( P 1 ∧ P 2 ⇒ P 3 → Q ) 反 证 法 ( P 1 ∧ P 2 ∧ P 3 ∧ ¬ Q ⇔ F ) \begin{array}{c}\mathrm{推理方法}\\P_1\wedge P_{2\;}\wedge P_3\Rightarrow Q\\\end{array}\left\{\begin{array}{l}\mathrm{直接推理}\\\mathrm{间接推理}\left\{\begin{array}{l}\mathrm{条件论证}(P_1\wedge P_2\Rightarrow P_3\rightarrow Q)\\\mathrm{反证法}(P_1\wedge P_2\wedge P_3\wedge\neg Q\Leftrightarrow F)\end{array}\right.\end{array}\right. 推理方法P1∧P2∧P3⇒Q⎩⎨⎧直接推理间接推理{条件论证(P1∧P2⇒P3→Q)反证法(P1∧P2∧P3∧¬Q⇔F)
推理的规则
推 理 的 规 则 { P 规 则 ( 证 明 过 程 中 引 入 初 始 条 件 ) T 规 则 ( 证 明 过 程 中 引 入 中 间 结 论 ) C P ( C o n d i t i o n a l P r o o f ) 规 则 ( 使 用 条 件 论 证 ) 脱 掉 或 添 加 量 词 的 规 则 { U S E S E G U G \mathrm{推理的规则}\left\{\begin{array}{l}P\mathrm{规则}(\mathrm{证明过程中引入初始条件})\\T\mathrm{规则}(\mathrm{证明过程中引入中间结论})\\CP(Conditional\;Proof)\mathrm{规则}(\mathrm{使用条件论证})\\ 脱掉或添加量词的规则\left\{\begin{matrix} US\\ ES\\ EG\\ UG \end{matrix}\right. \end{array}\right. 推理的规则⎩⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎧P规则(证明过程中引入初始条件)T规则(证明过程中引入中间结论)CP(ConditionalProof)规则(使用条件论证)脱掉或添加量词的规则⎩⎪⎪⎨⎪⎪⎧USESEGUG
US规则:全称特指规则Universal Specialization
去掉全称量词
∀ x A ( x ) ⇒ A ( c ) ( c 是 个 体 域 中 任 意 指 定 个 体 ) \forall xA(x) \Rightarrow A(c)(c是个体域中任意指定个体) ∀xA(x)⇒A(c)(c是个体域中任意指定个体)
ES规则:特称特指规则Existential Specialization
去掉全存在量词
∃ x A ( x ) ⇒ A ( c ) ( c 是 使 得 A ( c ) 为 真 的 ) \exists xA(x) \Rightarrow A(c)(c是使得A(c)为真的) ∃xA(x)⇒A(c)(c是使得A(c)为真的)
EG规则:存在推广规则Existential Generalization
添加存在量词
A ( c ) ⇒ ∃ x A ( x ) ( c 个 体 域 内 的 某 个 个 体 ) A(c) \Rightarrow \exists xA(x) (c个体域内的某个个体) A(c)⇒∃xA(x)(c个体域内的某个个体)
UG规则:全称推广规则Universal Generalization
添加全称量词
A ( c ) ⇒ ∀ x A ( x ) ( c 个 体 域 内 的 任 意 某 个 个 体 ) A(c) \Rightarrow \forall xA(x) (c个体域内的任意某个个体) A(c)⇒∀xA(x)(c个体域内的任意某个个体)
更多推荐
所有评论(0)