向量逻辑

向量逻辑是一种建基于矩阵代数的逻辑模型。它假设逻辑真值可成为一种向量，而一元和二元谓词演算皆以矩阵的算法进行。

## 历史

向量逻辑是人们在研究人工神经网络模型所涉及的多维矩阵及向量时受到启发而发展出来的理论系统。它把逻辑代数以矩阵和向量的形式表示。这种逻辑形式被用来发展一种以复数进行运算的模糊逻辑。另外，以矩阵和向量作为媒介的逻辑运算亦应用于量子物理、计算机科学及光学。皮尔士及柯比是最早尝试使用线性代数来演绎逻辑运算的数学家之一。印度生物物理学家G.N.拉马钱德兰曾经提出一种以矩阵及向量来演绎一种古典耆那教逻辑运算。该逻辑系统要求每个命题各自有独立的证明，而不能以二值逻辑的互补性质进行论证。

## 概观

传统的二值逻辑仅使用少量数学函数演算一个或两个逻辑变量。在古典逻辑，值 1 被赋为“真”，而值 0 则被赋为“假”。相对地，一个二值的向量逻辑需要为“真”、“假”二值赋予两个由实数组成的 q-维单位列向量 s 及 n，亦即：

$t\mapsto s$ and $f\mapsto n$

(其中 $q \geq 2$ 为一任意自然数，而“单位”的意思是两个向量的范数为 1。又，s、n 二者通常互相正交)。由这种关系可衍生出一个内含各逻辑值的向量空间V2 = {s,n}。使用这些逻辑值推演的逻辑运算子则为矩阵运算子。

向量逻辑的运算建基于以上 q-维列向量的数量积$u^Tv=\langle u,v\rangle$。由于 s 及 n 相互正交，假如 u = v，则$\langle u,v\rangle=1$，而如果 u \ne v，则 $\langle u,v\rangle=0$。

### 一元谓词运算子

向量逻辑的一元谓词运算子是运用$Mon: V_2 \to V_2$的成果，而相关的矩阵有 q 行及 q 列。在上面提及的向量逻辑系统中，两个基本的一元谓词运算子分别是“恒等”及“否定”：

- 恒等：逻辑恒等函数 ID(p) 可以矩阵 $I=ss^T + nn^T$ 表达。该矩阵的操作方式为：Ip = p, p ∈ V2；由于 s 对于 n 而言是正交的，我们可以得到：$Is=ss^Ts+nn^Ts=s\langle s,s\rangle+n\langle n,s\rangle=s$，反之 $In=n$.
- 否定：逻辑否定函数 ¬p 可以矩阵 $N=ns^T + sn^T$ 表示。由此推论，Ns = n 且 Nn = s。由于否定函数有对合性，即 ¬(¬p) 等于 p （对应于 N2 = I）。Is 应予注意的是，以上的逻辑恒等矩阵并非矩阵代数中的单位矩阵。

### 二元谓词运算子

每个向量逻辑系统都会有16个二元谓词运算子，对应于$Dyad: V_2 \otimes V_2\to V_2$类型的函数；这些二元谓词运算矩阵有 q 行及 q2 列，并且根据克罗内克积的其中两种特性而演算出来：

- 混合律：如果 A、B、C、D 是四个可以构成 AC 及 BD 两个乘积的矩阵，则

$$(A \otimes B)(C \otimes D) = AC \otimes BD$$

- 转置分配律：涉及转置的乘积可以分配：

(A\otimes B)^T = A^T \otimes B^T.

根据以上特性，可以演算出以下向量逻辑运算子：

- 与：在向量逻辑中，两个逻辑值的“与” (p∧q) 是由一个应用于两个向量值的矩阵 $C(u\otimes v)$ 表示。此矩阵透过以下算式实现古典逻辑与的真值表：

$$C=s(s\otimes s)^T + n(s\otimes n)^T + n(n\otimes s)^T + n(n\otimes n)^T$$

此矩阵应当满足

$C(s\otimes s)=s,$ 及

$$C(s\otimes n)=C(n\otimes s)=C(n\otimes n)=n.$$

- 或：两个逻辑值的“或” (p∨q) 由以下矩阵运算：

$D=s(s\otimes s)^T+s(s\otimes n)^T+s(n\otimes s)^T+n(n\otimes n)^T,$，而且

$D(s\otimes s)=D(s\otimes n)=D(n\otimes s)=s$ 及

$$D(n\otimes n)=n.$$

- 蕴涵：古典逻辑的“蕴涵”对应于逻辑式 p → q ≡ ¬p ∨ q。向量逻辑亦定义相对应的矩阵去表示该关系：$L=D(N\otimes I)$。较直接的表达式则为

$L=s(s\otimes s)^T+n(s\otimes n)^T+s(n\otimes s)^T+n(n\otimes n)^T,$

该矩阵应当满足

$L(s\otimes s)=L(n\otimes s)=L(n\otimes n)=s$ 及

$$L(s\otimes n)=n.$$

- 等价值与异或。在向量逻辑中，等价值表达式 p≡q 由以下矩阵表示：

$E=s(s\otimes s)^T+n(s\otimes n)^T+n(n\otimes s)^T+s(n\otimes n)^T$而且

$E(s\otimes s)=E(n\otimes n)=s$ 及

$$E(s\otimes n)=E(n\otimes s)=n.$$

至于异或则是等价值的否定：¬(p≡q)，因此有关矩阵可由 $X=NE$ 给出，亦即：

$X=n(s\otimes s)^T+s(s\otimes n)^T+s(n\otimes s)^T+n(n\otimes n)^T,$

而且 $X(s\otimes s)=X(n\otimes n)=n$ 及

$X(s\otimes n)=X(n\otimes s)=s.$

- 与非及或非

矩阵 S 及 P 分别对应古典逻辑的谢费尔（即“与非”）及皮尔士（即“或非”）操作：

$$S=NC$$

$$P=ND$$

### 德摩根定律

古典逻辑中的“与”、“或”两个操作皆满足德摩根定律，即 p∧q≡¬(¬p∨¬q) 以及其对偶 p∨q≡¬(¬p∧¬q))。向量逻辑的相关操作亦可被证实为满足德摩根定律：

$C(u\otimes v)=ND(Nu\otimes Nv)$，其中 u 及 v 皆为逻辑向量。

基于克罗内克积的特性，以下的因式分解成立：

$$C(u\otimes v)=ND(N\otimes N)(u\otimes v).$$

由此可以证明，在二维的向量逻辑中，德摩根定律不仅与逻辑操作有关，亦适用于有关的逻辑运算子：

$$C=ND(N\otimes N)$$

### 对位定律

在古典命题运算中，对位定律 p → q ≡ ¬q → ¬p 是由于有关等价值算式对于任何真值 p、q 皆成立而获得证明。但是，在向量逻辑范畴，对位定律是由一系列的等价值及克罗内克积运算而得出：

$D(NNv\otimes Nu)=D(N\otimes I)(Nv\otimes Nu)=L(Nv\otimes Nu)$

这是建基于向量逻辑的“或”运算矩阵 D 满足交换律的特性。

## 二维多值逻辑

多值逻辑的学说体系由多位研究者协力发展（尤其是波兰数学家扬·武卡谢维奇）。它容许涉及不确定值的逻辑运算。在二值向量逻辑范畴中，不确定值可由 s、n 两个基本真值以概率比重混合而成。

假设存在一个不确定值 $f=\epsilon s + \delta n$（其中 $\epsilon, \delta \in [0,1], \epsilon + \delta = 1$）。向量逻辑的多值性可以由对这种不确定值的运算获得证明。

### 向量输出值的纯量投影

多值向量逻辑的输出值可以被投影为纯量函数，并且能衍生一系列与赖欣巴哈式多值逻辑相似的概率逻辑。当有两个已知的逻辑向量 $u=\alpha s + \beta n$、 $v=\alpha's + \beta'n$，以及一个二元逻辑运算矩阵 $G$，则通过加入特定向量 s，可以得出一个纯量概率逻辑算式：

$Val$(纯量) $= s^TG$(向量)

根据以上投影式可得出以下主要结果：

$$NOT(\alpha)=s^TNu=1-\alpha$$

$$OR(\alpha,\alpha')=s^TD(u\otimes v)=\alpha + \alpha' - \alpha\alpha'$$

$$AND(\alpha,\alpha')=s^TC(u\otimes v)=\alpha\alpha'$$

$$IMPL(\alpha,\alpha')=s^TL(u\otimes v)=1-\alpha(1-\alpha')$$

$$XOR(\alpha,\alpha')=s^TX(u\otimes v)=\alpha+\alpha'-2\alpha\alpha'$$

相关的否定式如下：

$$NOR(\alpha,\alpha')=1-OR(\alpha,\alpha')$$

$$NAND(\alpha,\alpha')=1-AND(\alpha,\alpha')$$

$$EQUI(\alpha,\alpha')=1-XOR(\alpha,\alpha')$$

如果满足该等算式的值属于集合 {0, ½, 1}，则有关的纯量算式与武卡谢维奇提出的三值逻辑系统大致吻合。另外，数学家亦证明了如果将一元和二元向量逻辑运算子施加于该集合属下的概率向量，则其输出值亦必属于该集合。

## 布尔多项式

乔治·布尔确立了以多项式演绎逻辑运算的学说发展。一元逻辑运算子（例如恒等或否定）的布尔多项式可用以下的方式表示：

$$f(x) = f(1)x + f(0)(1-x)$$

根据二值逻辑的值，可以得出四个一元逻辑运算式：恒等式要求 f(1) = 1、f(0) = 0，否定式则要求 f(1) = 0、f(0) = 1。至于16个二元逻辑运算子的布尔多项式可由以下算式求出：

$$f(x,y) = f(1,1)xy + f(1,0)x(1-y) +f(0,1)(1-x)y + f(0,0)(1-x)(1-y)$$

如果从相对应的真值表抽取相应的系数 f，二元逻辑运算子可以转译成多项式。例如要建立一个与非逻辑的布尔多项式，系数 f 的值如下：

$f(1,1)=0$ 及 $f(1,0)=f(0,1)=f(0,0)=1$。

这些布尔多项式可以即时被扩充为包括任意数目的未知值，创造出大量的潜在逻辑运算子。向量逻辑的矩阵-向量结构即为这种运算的线性逻辑演绎，其中上文设立的向量 s 和 n 可以对应上列多项式中的 x、y 和1-x、1-y。In 以“与非”为例，f(1,1)=n 而且 f(1,0)=f(0,1)=f(0,0)=s，从而演算出以下矩阵：

$$S=n(s\otimes s)^T + s[(s\otimes n)^T+(n\otimes s)^T+(n\otimes n)^T]$$

## 延伸

- 向量逻辑理论能够容纳多种真值的运算，其中关键在于向量空间维度越大，能够造出相互正交的真值就越多，同时亦能造出适用于这些真值的逻辑运算矩阵。
- 向量逻辑能够全面地表达模态逻辑，其中递归运算过程是由神经元模型启发所得。
- 一些逻辑运算认知问题（尤其是涉及递归运算的问题）可以透过向量逻辑作出分析。传统逻辑运算通常以树状结构表达，向量逻辑同样能够表达之，而这种特性被部分应用于用以研究自然语言分支结构的神经元模型上。
- 一些运用可逆操作（如弗雷坚闸）的逻辑运算可以透过向量逻辑实现。这种实现方式直接提供能够定义输入参数值格式以及筛选输出值的矩阵运算子。
- 基本细胞自动机可以经由向量逻辑的运算子结构进行分析。这种分析能够把细胞自动机的行动规律进行特征分解。