导航↓ 相册|收藏博客|加入友情链接|给博主留言
畅享博客 > Smarthings事脉顺-业务建模的目标 > 知识价值管理 > [原创]从布尔逻辑扩展三态逻辑的语义分析
2010/11/4 11:24:25

[原创]从布尔逻辑扩展三态逻辑的语义分析

问题的提出

二态逻辑(布尔逻辑)的语义是明确而且完备的。
也就是“真”、“假”数符和“与”、“或”、“非”算符的含义已经是清晰的,相互计算转换关系也是完备的了。(是不是就是一个逻辑群的概念?)
如果要以这样的二态逻辑扩展三态逻辑的话,那么,扩展的结果,必定要完全包含这样的二态逻辑的语义。也就是是说,要使布尔逻辑成为扩展的三态逻辑的特例。
在三态逻辑的基础上,做出某种语义的约束,就自然得到二态逻辑。如果得不到,就说明扩展的三态逻辑还不够理想。
这就是二态逻辑和三态逻辑的兼容性问题。
 

引入语义映射

下面看我们可以如何扩展布尔逻辑。
从真假二态扩展到三态,必定引入一个新的状态表示。
从数论上得到启示:
真,可以是对所有正实数的抽象,表示过剩的“有”,用+1代表。
假,可以是对所有负实数的抽象,表示欠缺的“有”,用-1代表。
我们自然想到“0”,表示“无”或“空”,准确地说是“平衡”。
于是,我们得到扩展的三态:-1,0,+1。用语义词表述,可以是“假”、“空”、“真”。

现在,我们就可以来先部分检查一下这个扩展的“兼容性”了。

我们知道,二态逻辑其实可以用整数的乘、加运算来表示。就是:
把真,定义为1,假定义为0,“与”定义为“乘”,“或”定义为“加”,非定义为“1-”,就能完备表达布尔逻辑关系,如下:


1*0 = 0
1*1 = 1


1+0 = 1
1+1 = 2, >0, =1(1代表所有的正实数)


1-1 = 0
1-0 = 1

如果在三态中用-1,0,1分别表示“假”、“空”和“真”。
为了保持二态逻辑的完备性,必须将二态中“假”转换为三态中的“空”,而三态中的“假”,作为新扩展出来的“缺有”态。也就是将布尔逻辑的真假,理解为是“剩有”和“无”的语义关系。
这样,我们才能顺利过第一关:第三态逻辑扩展了新的第三态后,原来的二态逻辑可以原封不动(除了做一个语义映射之外)。

解决语义对称性问题

接下来的问题是:如何用同样语义的“与”“或”“非”运算,作用到新扩展的“假”态与原来二态的关系上?能否保持合理的语义关系?
下面转到三态进行类似的整数计算:

与(*)
-1_*0 = 0; 语义表述:假与空为空
-1_*1 = -1; 语义表述:假与真为假
-1_*(-1) = 1(注意1:≠-1,出现一个语义不对称,在二态中,有 1*1 = 1);语义表述:假与假为真(缺少了缺少就是过剩)

或(+)
-1 + 0 = -1;语义表述:假或空为假
-1 + 1 = 0;语义表述:假或真为空
-1 +(-1) = -2,<0, =-1;语义表述:假或假为假(缺少再缺少还是缺少)

非(1-)
1-(-1) = 2,>0,=1;语义表述:非假为真(用最过剩的补缺结果是过剩)。

作为新扩展态与原运算作用后,得到的结果,仍然在三态中,仍然满足群的特征。
而且,仔细审核语义关系,除了一个语义不对称之外,没有不合理的新语义出来。
可以说,这个扩展是基本成功的。经过一个语义变换(二态假变为三态空)保持了二态语义的稳定性,扩展的三态运算语义也不矛盾。

不爽的是,存在一个语义的不对称问题。
这个问题的影响是:如果要把三态的“假-空”逻辑理解为是反向的“真-空”逻辑的话,-1_*(-1) 应该还是-1,才对。
这与乘法的语义有关
在三态中对应的二态逻辑中,乘法可表示“叠加”的语义,也可以表示“扩维”的语义。解释如下:

如果是“叠加”的语义:
1表示过剩,那么,1*1 的意思就是:过剩的状态过剩了,结果依然是过剩。
-1表示欠缺,那么,-1*(-1) 的意思就是:欠缺了欠缺的状态,结果也是过剩。

如果是“扩维”的语义,类似从直线长度到面积:
1表示过剩,那么,1*1 的意思就是:两个正交直线方向上都过剩了,结果是面积过剩。
-1表示欠缺,那么,-1*(-1) 的意思就是:两个正交直线方向上都欠缺了,结果是面积欠缺。

于是,出现一个乘法语义的选择问题。
不管乘法选择哪个语义,对二态逻辑没有影响,但对正反逻辑的对称性是有影响的。假设,选择“扩维”语义。即可解决语义对称性和兼容性的问题。

现在的问题是:“非”运算作用于“空”,语义上如何处理?
 

引入负非运算实现完美对称的三态逻辑

“非”从语义上讲,是“求补”的意思,也就是用最大可能数的减去现有的数。
在三态逻辑上,0表示空,那么非空,就是不为空,按语义,应该有2种可能的结论:要么是多出来了,要么是缺少了,都是不为空。
1 - 0 = 1的意思只是用“最多过剩可能的减空,当然结果是过剩”;
1 -(-1)= 1的意思是“用最多可能的过剩来减少已经有的缺少,就是再增加过剩,结果是过剩。
语义都是正确的。
但怎么能出现“不空(平衡),是少了”的“非”语义呢?
从语义对称性讲,应该可以“用最大可能的缺少来减已有的数”的“取非”运算。才能实现非运算的语义对称性。
也就是说:应该存在另外一种非逻辑运算,是用-1来减已有的数。可以叫“负非”运算:
-1 - 0 = -1
-1 -(-1) = 0
-1 - 1 = -1
与正非运算:
1 - 0 = 1
1 - 1 = 0
1 -(-1) = 1
正好对称,彻底实现“假-空”逻辑是反向的“真-空”逻辑,正反两个二态逻辑恰好形成三态逻辑。这样完美的结果。

小结

如果不进行“二态假对三态空”的语义变换,逻辑就不兼容。
如果不引入负非运算,并选择“扩维”语义的乘法,就不能实现语义对称。

完美对称的三态逻辑如下:


与:
真 与 假 = 假
真 与 空 = 空
真 与 真 = 真

假 与 假 = 假
假 与 空 = 空

空 与 空 = 空

或:
真 或 空 = 真
真 或 假 = 空
真 或 真 = 真

假 或 空 = 假
假 或 假 = 假

空 或 空 = 空

正非:
正非 真 = 空
正非 空 = 真
正非 假 = 真

负非:
负非 真 = 假
负非 空 = 假
负非 假 = 空

或许应该用“多”、“平”、“少”来取代“真”、“空”、“假”的语义表述,就更容易得到直观的理解了。 



查阅更多相关主题的帖子: 知识库

评论

好像还有一点不完美。
为什么
假与真只能是假呢?
三态中的真假是关于空对称的。为什么假与真,不能为真呢?如果假与真只能是假,不就破坏了平衡性吗?

发布者 babituo
2010/11/4 11:44:34


下面用“扩维”乘法语义来理解一下“三态的真与假”
三态“真”是“多出”含义;“假”是“缺少”含义。
与是“扩维”含义,
那么,真 与 假
就是在一个方向上设置多出状态;在正交的另一个方向上设置缺少的状态。2个方向交叠起来,一多一少,正好抵消。应该是回复到“空”状态。
所以,应该修正如下:
真 与 假 = 空

发布者 babituo
2010/11/4 11:53:47


用“多平少”逻辑更正如下:

与:
多 与 少 = 平
多 与 平 = 平
多 与 多 = 多

少 与 少 = 少
少 与 平 = 平

平 与 平 = 平

或:
多 或 平 = 多
多 或 少 = 平
多 或 多 = 多

少 或 平 = 少
少 或 少 = 少

平 或 平 = 平

正非:
正非 多 = 平
正非 平 = 多
正非 少 = 多

负非:
负非 多 = 少
负非 平 = 少
负非 少 = 平

发布者 babituo
2010/11/4 11:59:45


您还未登录,不能对文章发表评论!请先登录