【集合论】集合恒等式 ( 幂等律 | 交换律 | 结合律 | 分配率 | 德摩根律 | 吸收率 | 零律 | 同一律 | 排中律 | 矛盾律 | 余补律 | 双重否定定律 | 补交转换律 )





一、 集合恒等式



1. 幂等律 : A ∪ A = A A \cup A = A AA=A , A ∩ A = A A \cap A = A AA=A


2. 交换律 : A ∪ B = B ∪ A A \cup B = B \cup A AB=BA , A ∩ B = B ∩ A A \cap B = B \cap A AB=BA


3. 结合律 : ( A ∪ B ) ∪ C = A ∪ ( B ∪ C ) (A \cup B) \cup C = A \cup ( B \cup C ) (AB)C=A(BC) , ( A ∩ B ) ∩ C = A ∩ ( B ∩ C ) (A \cap B) \cap C = A \cap ( B \cap C ) (AB)C=A(BC)


4. 分配率 : A ∪ ( B ∩ C ) = ( A ∪ B ) ∩ ( A ∪ C ) A \cup ( B \cap C ) = ( A \cup B ) \cap ( A \cup C ) A(BC)=(AB)(AC) , A ∩ ( B ∪ C ) = ( A ∩ B ) ∪ ( A ∩ C ) A \cap ( B \cup C ) = ( A \cap B ) \cup ( A \cap C ) A(BC)=(AB)(AC)


5. 德摩根律 :

① 绝对形式 : ∼ ( A ∪ B ) = ∼ A ∩ ∼ B \sim ( A \cup B ) = \sim A \cap \sim B (AB)=AB , ∼ ( A ∩ B ) = ∼ A ∪ ∼ B \sim ( A \cap B ) = \sim A \cup \sim B (AB)=AB

② 相对形式 : A − ( B ∪ C ) = ( A − B ) ∩ ( A − C ) A - (B \cup C) = ( A - B ) \cap (A - C) A(BC)=(AB)(AC) , A − ( B ∩ C ) = ( A − B ) ∪ ( A − C ) A - (B \cap C) = ( A - B ) \cup (A - C) A(BC)=(AB)(AC)


6. 吸收率 : A ∪ ( A ∩ B ) = A A \cup ( A \cap B ) = A A(AB)=A , A ∩ ( A ∪ B ) = A A \cap (A \cup B) = A A(AB)=A


7. 零律 : A ∪ E = E A \cup E = E AE=E , A ∩ ∅ = ∅ A \cap \varnothing = \varnothing A=


8. 同一律 : A ∪ ∅ = A A \cup \varnothing = A A=A , A ∩ E = A A \cap E = A AE=A

( 空集是并运算的单位元 , 全集是交运算的单位元 )


9. 排中律 : A ∪ ∼ A = E A \cup \sim A = E AA=E


10. 矛盾律 : A ∩ ∼ A = ∅ A \cap \sim A = \varnothing AA=


11. 余补律 : ∼ ∅ = E \sim \varnothing = E =E , ∼ E = ∅ \sim E= \varnothing E=


12. 双重否定定律 : ∼ ( ∼ A ) = A \sim ( \sim A ) = A (A)=A


13. 补交转换律 : A − B = A ∩ ∼ B A - B = A \cap \sim B AB=AB

( 集合的差运算是不必要的 , 集合的交运算和补运算可以替代差运算 )





二、 集合恒等式推广到集族



{ A α } α ∈ S \{ A_\alpha \}_{\alpha \in S} {Aα}αS 为集族 , S S S 是指标集 , α \alpha α 是指标集中的元素 , 对于 S S S 集合中的 α \alpha α 元素 , 都有一个集合 A α A_\alpha Aα 与之对应 ; 所有的 A α A_\alpha Aα 集合放在一起 , 形成一个集族 ;

B B B 是任意的一个集合 ;


1 . 分配律


分配律 ① :

B ∪ ( ⋂ { A α } α ∈ S ) = ⋂ α ∈ S ( B ∪ A α ) B \cup ( \bigcap \{ A_\alpha \}_{\alpha \in S} ) = \bigcap_{\alpha \in S} ( B \cup A_\alpha ) B({Aα}αS)=αS(BAα)

集族中每个集合元素求交 , 然后与 B B B 进行并运算 ; 等价于 集族中每个元素与 B B B 求并 , 然后在求上述每个并运算结果的交 ;


分配律 ② :

B ∩ ( ⋃ { A α } α ∈ S ) = ⋃ α ∈ S ( B ∩ A α ) B \cap ( \bigcup \{ A_\alpha \}_{\alpha \in S} ) = \bigcup_{\alpha \in S} ( B \cap A_\alpha ) B({Aα}αS)=αS(BAα)

集族中每个集合元素求并 , 然后与 B B B 进行交运算 ; 等价于 集族中每个元素与 B B B 求交 , 然后在求上述每个并运算结果的并 ;



2 . 德摩根律


德摩根律 ( 绝对形式 ) ① :

∼ ( ⋃ { A α } α ∈ S ) = ⋂ α ∈ S ( ∼ A α ) \sim ( \bigcup \{ A_\alpha \}_{\alpha \in S} ) = \bigcap_{\alpha \in S} ( \sim A_\alpha ) ({Aα}αS)=αS(Aα)

集族的广义并 , 然后求补 ; 等于 集族中的每个集合 , 先求补 , 然后再求广义交 ;


德摩根律 ( 绝对形式 ) ② :

∼ ( ⋂ { A α } α ∈ S ) = ⋃ α ∈ S ( ∼ A α ) \sim ( \bigcap \{ A_\alpha \}_{\alpha \in S} ) = \bigcup_{\alpha \in S} ( \sim A_\alpha ) ({Aα}αS)=αS(Aα)

集族的广义交 , 然后求补 ; 等于 集族中的每个集合 , 先求补 , 然后再求广义并 ;


德摩根律 ( 相对形式 ) ③ :

B − ( ⋃ { A α } α ∈ S ) = ⋂ α ∈ S ( B − A α ) B - ( \bigcup \{ A_\alpha \}_{\alpha \in S} ) = \bigcap_{\alpha \in S} ( B - A_\alpha ) B({Aα}αS)=αS(BAα)

B B B 集合减去 集族的广义并 ( 集族广义并 相对于 集合 B B B 的补集 ) ; 等于 B B B 集合减去集族中的每个集合 , 先求相对补集 , 然后再求广义交 ;


德摩根律 ( 相对形式 ) ④ :

B − ( ⋂ { A α } α ∈ S ) = ⋃ α ∈ S ( B − A α ) B - ( \bigcap \{ A_\alpha \}_{\alpha \in S} ) = \bigcup_{\alpha \in S} ( B - A_\alpha ) B({Aα}αS)=αS(BAα)

B B B 集合减去 集族的广义交 ( 集族广义交 相对于 集合 B B B 的补集 ) ; 等于 B B B 集合减去集族中的每个集合 , 先求相对补集 , 然后再求广义并 ;

在使用z3求解器证明离散数学等值演算式的性质时,我们可以使用z3的Python接口来表示和求解约束。下面是一些示例代码,展示了如何使用z3来证明双重否定排中律幂等律交换律结合律、分配、德·摩根、吸收同一律、->的表示、<->的合取表示以及<->的析取表示。 ```python from z3 import * # 创建布尔变量 p = Bool('p') q = Bool('q') r = Bool('r') # 双重否定 double_negation = simplify(Not(Not(p)) == p) # 排中律 excluded_middle = simplify(Or(p, Not(p))) # 幂等律 idempotent = simplify(And(p, p) == p) # 交换律 commutative = simplify(And(p, q) == And(q, p)) # 结合律 associative = simplify(And(p, And(q, r)) == And(And(p, q), r)) # 分配 distributive = simplify(And(p, Or(q, r)) == Or(And(p, q), And(p, r))) # 德·摩根 de_morgan = simplify(Not(And(p, q)) == Or(Not(p), Not(q))) # 吸收 absorption = simplify(And(p, Or(p, q)) == p) # 同一律 identity = simplify(And(p, True) == p) # null_law = simplify(And(p, False) == False) # ->的表示 implication = simplify(Implies(p, q) == Or(Not(p), q)) # <->的合取表示 biconditional_conjunctive = simplify((p == q) == And(Implies(p, q), Implies(q, p))) # <->的析取表示 biconditional_disjunctive = simplify((p == q) == Or(And(p, q), And(Not(p), Not(q)))) # 异或的表示 exclusive_or = simplify(Xor(p, q) == Or(And(p, Not(q)), And(Not(p), q))) # 创建求解器 solver = Solver() # 将所有性质添加到求解器中 solver.add(double_negation, excluded_middle, idempotent, commutative, associative, distributive, de_morgan, absorption, identity, null_law, implication, biconditional_conjunctive, biconditional_disjunctive, exclusive_or) # 检查是存在解 if solver.check() == sat: print("该集合满足所有性质") else: print("该集合不满足所有性质") ``` 这段代码中,我们使用z3的布尔变量和逻辑运算符来表示离散数学中的逻辑表达式。然后,我们使用`Simplify`函数来简化逻辑表达式,使其更易于处理。最后,我们将所有性质添加到求解器中,并检查是存在满足所有性质的解。 请注意,z3是一个强大的SMT(Satisfiability Modulo Theories)求解器,它可以用于求解各种约束问题,包括离散数学中的逻辑性质证明。希望这个示例代码可以帮助到你!
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值