一种基于交换环的命题逻辑代数推理算法
老实说,我一直觉得类似深度学习的纯数值方法(那些个Neural-Symbolic其实也是意识流的掩耳盗铃,完全没有理论基础,全靠"艺术创作")实在难以胜任逻辑推理,一个可行的、有希望实现计算地进行逻辑推理的方案就是借助构造一种抽象代数结构(最后借助代数结构间的同态性来实现);
构造一种Logic-Ring的意义(Motivation)
最终目的是更好地进行逻辑推理,详细地讲:
- 环代数的结构比逻辑代数更佳;
- 环代数有许多优良的性质(域/理想/复形…);
- 可以引入多项式环或者其它更多种类的、能做到和逻辑环同构的环用作Representation来进而实现推理(比如矩阵环/集合环…);
谓词逻辑命题环
- 令 L \mathcal{L} L是一个谓词逻辑命题的集合,则有运算 ( ∨ , ∧ ) (\lor,\land) (∨,∧)在 L \mathcal{L} L中封闭;
- 令蕴含运算 → \rightarrow →是 L \mathcal{L} L上的一个二元关系,易证 → \rightarrow →在 L \mathcal{L} L上满足"自反性"、“反对称性”、“传递性”(因此是一个偏序关系);
- 我们将 ∨ \lor ∨看作加法、将 ∧ \land ∧看作乘法, → \rightarrow →看作偏序;
现在我们可以将谓词命题逻辑看做一个环结构 ( L , ∨ , ∧ , → ) (\mathcal{L},\lor,\land,\rightarrow) (L,∨,∧,→);
如何推理:引入其它的环
构造逻辑环仅仅完成了对命题的表征,而最终的目的是推理,因此我们必须有赋值:
- 在谓词逻辑环 ( L , ∨ , ∧ , → ) (\mathcal{L},\lor,\land,\rightarrow) (L,∨,∧,→)上表征命题;
- 在多项式环 ( R [ x 1 ⋯ x n ] , + , × , < ) (\mathbb{R}[x_1 \cdots x_n],+,\times,<) (R[x1⋯xn],+,×,<)上推理命题;
- 在集合环 ( E , ∪ , ∩ , ⊂ ) (\mathcal{E},\cup ,\cap,\subset) (E,∪,∩,⊂)上判定命题;
环之间的单同态
因此我们可以构造 L , R [ x 1 ⋯ x n ] , E \mathcal{L},\mathbb{R}[x_1 \cdots x_n],\mathcal{E} L,R[x1⋯xn],E之间的单同态来实现谓词逻辑命题的Computation:
在这个图中有 Ψ = Φ ∘ φ \Psi = \Phi \circ \varphi Ψ=Φ∘φ;更进一步,我们甚至可以引入谓词逻辑环的理想和商环(参见我6月底写的上一篇文档:<<基于多项式环的谓词逻辑命题推理算法>>);
一个漏洞
至此,这一切似乎已经很完美了,但是我发现这个逻辑环并不能满足环的定义,试着带入环的定义:
-
在谓词逻辑环 L \mathcal{L} L中有一元素 F F F满足:对 ∀ p ( x ) ∈ L \forall p(x) \in \mathcal{L} ∀p(x)∈L有: p ( x ) ∨ F = F ∨ p ( x ) = p ( x ) p(x) \lor F =F \lor p(x) = p(x) p(x)∨F=F∨p(x)=p(x)(也就是说永假符号 F F F其实是加法零元);
-
在谓词逻辑环 L \mathcal{L} L中有一元素 T T T满足:对 ∀ p ( x ) , q ( y ) ∈ L \forall p(x),q(y) \in \mathcal{L} ∀p(x),q(y)∈L有: p ( x ) ∨ q ( y ) = q ( y ) ∨ p ( x ) = T p(x) \lor q(y) =q(y) \lor p(x) = T p(x)∨q(y)=q(y)∨p(x)=T(根据排中律: q ( y ) = ¬ p ( x ) q(y) = \lnot p(x) q(y)=¬p(x);也就是说永真符号 T T T其实是加法零元);
-
在谓词逻辑环 L \mathcal{L} L中有一元素 T T T满足:对 ∀ p ( x ) ∈ L \forall p(x) \in \mathcal{L} ∀p(x)∈L有: p ( x ) ∧ T = T ∧ p ( x ) = p ( x ) p(x) \land T =T \land p(x) = p(x) p(x)∧T=T∧p(x)=p(x)(也就是说永真符号 T T T其实是乘法幺元);
那么问题来了:到底 T , F T,F T,F哪个是乘法幺元/加法零元,进而乘法逆元/加法逆元又是什么(最终我们会发现怎么都不能满足);
一种可以表征命题逻辑代数的交换环
现在我们换一种思路,我们已经知道谓词逻辑代数 ( L , ∨ , ∧ , → ) (\mathcal{L},\lor,\land,\rightarrow) (L,∨,∧,→)根本不是环,那我们尝试去定义一种"取巧"的泛代数结构 S \mathcal{S} S,使其能够和谓词逻辑代数 L \mathcal{L} L和环代数 R \mathcal{R} R都能存在同态关系,定义如下:
-
令 S = { s i } S=\{s_i\} S={si}是一个有限集合, p = ∏ i s i , q = ∏ j s j ∈ S p=\prod_{i}s_i,q=\prod_{j}s_j \in \mathcal{S} p=∏isi,q=∏jsj∈S是这些元素的组合, ⊖ r = ⊖ ∏ k s k ∈ S \ominus r=\ominus \prod_{k}s_k \in \mathcal{S} ⊖r=⊖∏ksk∈S是 r ∈ S r \in \mathcal{S} r∈S的加法逆元, ∅ , S \empty,S ∅,S分别是空组合和全组合;
-
乘法 p ⊗ q = ∏ k s k , s k ∈ p ∩ q p \otimes q = \prod_{k}s_k,s_k \in p \cap q p⊗q=∏ksk,sk∈p∩q;
-
加法 p ⊕ q = ∏ k s k , s k ∈ p ∪ q p \oplus q = \prod_{k}s_k,s_k \in p \cup q p⊕q=∏ksk,sk∈p∪q;
-
加法 r ⊕ ⊖ r = ∅ r \oplus \ominus r = \empty r⊕⊖r=∅;
-
乘法 p ⊗ S = p p \otimes S = p p⊗S=p(因此 S S S是乘法幺元);
-
加法 p ⊕ ∅ = p p \oplus \empty = p p⊕∅=p(因此 S S S是加法零元);
-
乘法 p | q ⇔ { s i | s i ∈ p } ⊂ { s j | s j ∈ q } p | q \Leftrightarrow \{s_i |s_i\in p \} \subset \{s_j |s_j\in q \} p|q⇔{si|si∈p}⊂{sj|sj∈q}(因此 ∣ | ∣是偏序关系);
验证
我们现在来验证以上代数结构即可以表征命题逻辑代数、又符合环的定义;
对逻辑代数同态性的验证
考虑谓词逻辑代数 ( L , ∨ , ∧ , → ) (\mathcal{L},\lor,\land,\rightarrow) (L,∨,∧,→)的蕴含公理集、等价公理集;验证如下(视 ⊕ \oplus ⊕为 ∨ \lor ∨, ⊗ \otimes ⊗为 ∧ \land ∧, ∣ | ∣为 → \rightarrow →):
-
分配律I : p ⊗ ( q ⊕ r ) = ( p ⊗ q ) ⊕ ( p ⊗ r ) p \otimes (q \oplus r) = (p \otimes q) \oplus (p \otimes r) p⊗(q⊕r)=(p⊗q)⊕(p⊗r);
-
分配律II: p ⊕ ( q ⊗ r ) = ( p ⊕ q ) ⊗ ( p ⊕ r ) p \oplus (q \otimes r) = (p \oplus q) \otimes (p \oplus r) p⊕(q⊗r)=(p⊕q)⊗(p⊕r);
-
p ∣ p ⊕ q p | p \oplus q p∣p⊕q(命题逻辑的 p → p ∨ q p \rightarrow p \lor q p→p∨q);
-
p ⊗ q ∣ p p \otimes q | p p⊗q∣p(命题逻辑的 p ∧ q → p p \land q \rightarrow p p∧q→p);
-
p ⊕ S = S p \oplus S = S p⊕S=S(命题逻辑的 p ∨ S → S p \lor S \rightarrow S p∨S→S);
-
p ⊗ S = p p \otimes S = p p⊗S=p(命题逻辑的 p ∧ S → p p \land S \rightarrow p p∧S→p);
容易验证其它的定理比如De Morgan律也满足;
对环代数同态性的验证
我们再证明泛代数 ( S , ⊕ , ⊗ ) (\mathcal{S},\oplus,\otimes) (S,⊕,⊗)是一个环;验证如下:
-
加法交换律: p ⊕ q = q ⊕ p , ∀ p , q ∈ S p \oplus q = q \oplus p,\forall p,q \in \mathcal{S} p⊕q=q⊕p,∀p,q∈S;
-
加法结合律: p ⊕ ( q ⊕ r ) = ( p ⊕ q ) ⊕ r p \oplus (q \oplus r) = (p \oplus q) \oplus r p⊕(q⊕r)=(p⊕q)⊕r;
-
加法零元律: ∅ ⊕ p = p ⊕ ∅ = p \empty \oplus p = p \oplus \empty = p ∅⊕p=p⊕∅=p;
-
加法逆元律: p ⊕ ⊖ p = ⊖ p ⊕ p = ∅ p \oplus \ominus p = \ominus p \oplus p = \empty p⊕⊖p=⊖p⊕p=∅;
-
乘法结合律: p ⊗ ( q ⊗ r ) = ( p ⊗ q ) ⊗ r p \otimes (q \otimes r) = (p \otimes q) \otimes r p⊗(q⊗r)=(p⊗q)⊗r;
-
乘法分配律: p ⊗ ( q ⊕ r ) = ( p ⊗ q ) ⊕ ( p ⊗ r ) p \otimes (q \oplus r) = (p \otimes q) \oplus (p \otimes r) p⊗(q⊕r)=(p⊗q)⊕(p⊗r);
并且易知乘法也满足交换律,因此泛代数 ( S , ⊕ , ⊗ ) (\mathcal{S},\oplus,\otimes) (S,⊕,⊗)是一个交换环;
一些注解
我们已经证明泛代数 ( S , ⊕ , ⊗ ) (\mathcal{S},\oplus,\otimes) (S,⊕,⊗)是一个环且可以保持和命题逻辑代数的同态;以下是一些额外的说明:
-
S S S的内涵: S S S中的那些元素 s i ∈ S s_i \in S si∈S可以视作"原子命题",它们如同整数域中的素数一样,不可再分割;
-
⊖ r \ominus r ⊖r的内涵: ⊖ r \ominus r ⊖r的逻辑意义可以认为是"排除了这些可能",比如:
" you kill him " ⊕ " I kill him " ⊕ ⊖ " I kill him " = " you kill him " "\text{you kill him}" \oplus "\text{I kill him}" \oplus \ominus "\text{I kill him}"="\text{you kill him}" "you kill him"⊕"I kill him"⊕⊖"I kill him"="you kill him" -
¬ \lnot ¬的体现:我们有 ¬ p \lnot p ¬p即 S ⊕ ⊖ p S \oplus \ominus p S⊕⊖p,但是我必须指出"构造性二难" p → q ⇔ ¬ p ∨ q p \rightarrow q \Leftrightarrow \lnot p \lor q p→q⇔¬p∨q并不能体现;
-
乘法逆元:我们并没有找到乘法逆元;满足 p ⊗ q = S p \otimes q = S p⊗q=S的元素 q q q找不到(因此 S S S不是域);
我的几个感想
以下是几个随想:
-
天然性:其实格代数才是表征命题逻辑运算的天然方式,很明显它和环代数是矛盾的;
-
他人的相关工作:模糊逻辑推理被从Zadeh到王国俊等研究者做得美观但不足够深刻;
-
接下来:我仍然在努力建立多项式结构与逻辑代数的联系以期望比较严肃地模糊推理;