Expand description
表达式化简。
化简分两步:
- 代数化简:按当前语义可用的规则做结构重写(常量折叠、去重、 吸收、单位元、De Morgan、交换律规范化等)。
- 语义常量检测:若化简后的表达式在全部赋值下取同一个值, 直接替换为该常量。
⚠️ 规则的适用性依赖语义:
- Kleene / Łukasiewicz 的
X是链的中点,构成分配格, 因此吸收律、分配律、a ∧ ¬a = 0之外的格性质成立。 - Bochvar 的
X是毒值(吸收元),分配律、吸收律都不成立 (例:0 ∧ (0 ∨ 1) = 0,但0 ∧ 0 ∨ 0 ∧ 1 = X)。 - 矛盾律
a ∧ ¬a = 0在三种语义下都不成立 (取a = X时X ∧ X = X),因此化简器不使用该规则。
Structs§
- Simplify
Options - 化简选项。
Functions§
- constant_
value - 判断表达式是否语义常量;是则返回该值。
- semantic_
fingerprint - 计算两个表达式的语义指纹(真值表摘要),用于快速判定等价。
- semantically_
equal - 判断两个表达式在给定语义下语义等价(基于真值表指纹)。
- simplify
- 按当前语义化简表达式。
- simplify_
with - 带选项的化简。