第一章 命题逻辑 1.3等值演算

本文深入探讨了等值演算的基本概念,包括等值符号的定义与性质,以及等值演算中的定律。通过具体例题和练习,帮助读者理解如何运用等值演算解决逻辑问题,特别是复杂的情景推理题目。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.3 等值演算

定义:当且仅当A,B具有相同真值表时,A ↔\leftrightarrow B 为永真式。此时称A与B是等值的,记作 : A ⇔\Leftrightarrow B

注意:

  1. ⇔\Leftrightarrow” 与 “=”不同,“A=B”表示两个公式一样,“A ⇔\Leftrightarrow B”表示两个公式真值一样。
  2. ↔\leftrightarrow ” 与 “⇔\Leftrightarrow” 是两个完全不同的符号, “ ↔\leftrightarrow ”是联结词 ,A ↔\leftrightarrow B是一个公式。 而 “A ⇔\Leftrightarrow B” 并不是一个公式 ,“ ↔\leftrightarrow ”只是两个公式之间的关系符。

⇔\Leftrightarrow ”的性质:

  1. 自反性:A⇔\LeftrightarrowA
  2. 对称性:若A⇔\LeftrightarrowB ,则B⇔\LeftrightarrowA
  3. 传递性:若A⇔\LeftrightarrowB ,B⇔\LeftrightarrowC则A⇔\LeftrightarrowC

等值演算中的定律:

等值演算中的定律

例题:

1

2

3

练习:

  1. 下面哪一组命题公式不是等值的?
  • ¬(A →\rightarrow B),A ∧\wedge ¬B
  • ¬(A ↔\leftrightarrow B) , (A ∧\wedge ¬B ) ∨\vee (¬A ∧\wedge B )
  • A →\rightarrow (B ∨\vee C) , ¬A ∧\wedge (B ∨\vee C) ✔
  • A →\rightarrow (B ∨\vee C) , (A ∧\wedge ¬B ) →\rightarrow C
  1. p ↔\leftrightarrow ¬q ⇔\Leftrightarrow ()
  • ¬p →\rightarrow ( p →\rightarrow q )
  • (¬p ∨\vee q) ∧\wedge ( ¬ q ∨\vee p )
  • (¬p ∧\wedge ¬q) ∧\wedge (¬q ∨\vee p )
  • (¬p ∧\wedge ¬q) ∧\wedge (q ∨\vee p ) ✔

压轴题:

用等值演算法解决下面的问题:
A,B,C,D 4人比赛,观众甲,乙,丙猜他们的比赛名次为:
甲:C第一,B第二
乙:C第二,D第三
丙:A第二,D第四
比赛结束后他们三人各猜对了一半,求实际名次如何?(无并列者)
解: 设AiA_iAi:A第i ,BiB_iBi:B第i ,CiC_iCi:C第i

依题得:

① (C1C_1C1 ∧\wedge ¬B2B_2B2∨\vee (¬C1C_1C1 ∧\wedge B2B_2B2) ⇔\Leftrightarrow 1
② (C2C_2C2 ∧\wedge ¬D3D_3D3∨\vee (¬C2C_2C2 ∧\wedge D3D_3D3) ⇔\Leftrightarrow 1
③ (A2A_2A2 ∧\wedge ¬D4D_4D4∨\vee (¬A2A_2A2 ∧\wedge D4D_4D4) ⇔\Leftrightarrow 1

∵\because 1 ∧\wedge 2 ⇔\Leftrightarrow 1

∴\therefore [(C1C_1C1 ∧\wedge ¬B2B_2B2∨\vee (¬C1C_1C1 ∧\wedge B2B_2B2) ] ⋀\bigwedge [(C2C_2C2 ∧\wedge ¬D3D_3D3∨\vee (¬C2C_2C2 ∧\wedge D3D_3D3) ] ⇔\Leftrightarrow 1

∴\therefore [(C1C_1C1 ∧\wedge ¬B2B_2B2∧\wedgeC2C_2C2 ∧\wedge ¬D3D_3D3)] ⋁\bigvee [(¬C1C_1C1 ∧\wedge B2B_2B2) ∧\wedgeC2C_2C2 ∧\wedge ¬D3D_3D3)] ⋁\bigvee [(C1C_1C1 ∧\wedge ¬B2B_2B2∧\wedge (¬C2C_2C2 ∧\wedge D3D_3D3) ] ⋁\bigvee [ (¬C1C_1C1 ∧\wedge B2B_2B2) ∧\wedge (¬C2C_2C2 ∧\wedge D3D_3D3) ] ⇔\Leftrightarrow 1

∵\because 在( C1C_1C1 ∧\wedge ¬B2B_2B2 ∧\wedge C2C_2C2 ∧\wedge ¬D3D_3D3)中 C不可能即是第一名也是第二名

且在(¬C1C_1C1 ∧\wedge B2B_2B2 ∧\wedge C2C_2C2 ∧\wedge ¬D3D_3D3)中第二民不可能即是B也是C

∴\thereforeC1C_1C1 ∧\wedge ¬B2B_2B2∧\wedge ¬C2C_2C2 ∧\wedge D3D_3D3) ⋁\bigvee (¬C1C_1C1 ∧\wedge B2B_2B2 ∧\wedge ¬C2C_2C2 ∧\wedge D3D_3D3) ⇔\Leftrightarrow 1 ④

∵\because∧\wedge⇔\Leftrightarrow 1

∴\therefore [(A2A_2A2 ∧\wedge ¬D4D_4D4∨\vee (¬A2A_2A2 ∧\wedge D4D_4D4) ] ⋀\bigwedge [ (C1C_1C1 ∧\wedge ¬B2B_2B2∧\wedge ¬C2C_2C2 ∧\wedge D3D_3D3) ∨\vee (¬C1C_1C1 ∧\wedge B2B_2B2 ∧\wedge ¬C2C_2C2 ∧\wedge D3D_3D3) ] ⇔\Leftrightarrow 1

∴\therefore ( A2A_2A2 ∧\wedge ¬D4D_4D4 ∧\wedge C1C_1C1 ∧\wedge ¬B2B_2B2∧\wedge ¬C2C_2C2 ∧\wedge D3D_3D3 ) ⋀\bigwedge (¬A2A_2A2 ∧\wedge D4D_4D4 ∧\wedge C1C_1C1 ∧\wedge ¬B2B_2B2∧\wedge ¬C2C_2C2 ∧\wedge D3D_3D3 ) ⋀\bigwedge ( A2A_2A2 ∧\wedge ¬D4D_4D4 ∧\wedge¬C1C_1C1 ∧\wedge B2B_2B2 ∧\wedge ¬C2C_2C2 ∧\wedge D3D_3D3) ⋀\bigwedgeA2A_2A2 ∧\wedge D4D_4D4 ∧\wedge¬C1C_1C1 ∧\wedge B2B_2B2 ∧\wedge ¬C2C_2C2 ∧\wedge D3D_3D3) ⇔\Leftrightarrow 1

∵\because (¬A2A_2A2 ∧\wedge D4D_4D4 ∧\wedge C1C_1C1 ∧\wedge ¬B2B_2B2∧\wedge ¬C2C_2C2 ∧\wedge D3D_3D3 )中 D 不可能即是第三名又是第四名

∵\because ( A2A_2A2 ∧\wedge ¬D4D_4D4 ∧\wedge¬C1C_1C1 ∧\wedge B2B_2B2 ∧\wedge ¬C2C_2C2 ∧\wedge D3D_3D3) 第二名不可能即是A又是B

∵\becauseA2A_2A2 ∧\wedge D4D_4D4 ∧\wedge¬C1C_1C1 ∧\wedge B2B_2B2 ∧\wedge ¬C2C_2C2 ∧\wedge D3D_3D3) D不可能即是第三名又是第四名

∴\therefore ( A2A_2A2 ∧\wedge ¬D4D_4D4 ∧\wedge C1C_1C1 ∧\wedge ¬B2B_2B2∧\wedge ¬C2C_2C2 ∧\wedge D3D_3D3 ) ⇔\Leftrightarrow 1

综上可知:

A是第二名
B是第四名
C是第一名
D是第三名

### 离散数学中的命题逻辑等值演算 #### 什么是等值演算等值演算是指通过一系列已知的等值式,逐步推导出目标公式的计算过程。这一过程中使用的等值式通常是基本的逻辑定律或由这些定律组合而成的复杂形式[^2]。 #### 基本定义 1. **等值式** 如果两个命题公式 \(A\) 和 \(B\) 在任何赋值下都具有相同的真假值,则称它们是等值的,记作 \(A \Leftrightarrow B\)[^2]。 2. **常用等值模式** 下面列举了一些常用的等值模式: - 双重否定律:\(¬(¬P) \Leftrightarrow P\) - 德摩根律:\(¬(P ∧ Q) \Leftrightarrow ¬P ∨ ¬Q\);\(¬(P ∨ Q) \Leftrightarrow ¬P ∧ ¬Q\)[^2] - 吸收律:\(P ∨ (P ∧ Q) \Leftrightarrow P\);\(P ∧ (P ∨ Q) \Leftrightarrow P\)[^2] 3. **置换规则** 若在一个命题公式中存在子公式 \(C_1\) 并且它与另一个公式 \(C_2\) 是等值的 (\(C_1 \Leftrightarrow C_2\)),则可以用 \(C_2\) 替换原公式中的 \(C_1\),而不改变整个公式的真值。 #### 示例分析 假设我们需要证明以下两组公式之间的等值关系: ##### 示例 1: 验证 \(¬(P → Q)\) 是否等价于 \(P ∧ ¬Q\) 可以通过如下步骤完成验证: 1. 使用蕴涵等值式替换 \(P → Q\) 为 \(¬P ∨ Q\); 即有:\(¬(P → Q) \Leftrightarrow ¬(¬P ∨ Q)\)[^2] 2. 应用德摩根律展开括号内的表达式得到: \(¬(¬P ∨ Q) \Leftrightarrow P ∧ ¬Q\) 最终得出结论:\(¬(P → Q) \Leftrightarrow P ∧ ¬Q\) 成立。 ##### 示例 2: 利用吸收律简化公式 给定公式:\(P ∨ (P ∧ Q)\),我们希望将其化简成最简单的形式。 利用吸收律可以直接写出结果为:\(P ∨ (P ∧ Q) \Leftrightarrow P\) --- ### Python 实现等值演算的小工具 下面提供了一个基于 Python 的简单实现,用于自动验证两个布尔表达式是否等值。 ```python from sympy.logic.boolalg import Equivalent, to_cnf from sympy.abc import A, B def check_equivalence(expr1, expr2): """Check if two boolean expressions are equivalent.""" equivalence_check = Equivalent(expr1, expr2) simplified_result = to_cnf(equivalence_check).simplify() return simplified_result == True expr_a = ~((~A | B)) expr_b = A & (~B) if check_equivalence(expr_a, expr_b): print("The formulas are equivalent.") else: print("The formulas are not equivalent.") ``` 上述代码片段可以用来检验任意两个布尔表达式之间是否存在等值关系。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值