信息化的本质分享 http://blog.sciencenet.cn/u/Babituo

博文

真假逻辑和有无逻辑是一致的吗?

已有 7153 次阅读 2011-5-4 17:06 |个人分类:立体逻辑|系统分类:科研笔记| 真假逻辑, 有无逻辑

真假逻辑(布尔逻辑)是逻辑学的基础。
真假逻辑为命题限定了2种相互矛盾的状态:不是真,就是假,不是假,就是真。
 
从实数集的非负实数中,利用数值压缩原理反推的逻辑数得到的{0,1}数集,继承实数的加法和乘法运算之后,居然得到的形式体系和布尔逻辑运算体系是一摸一样的。难道这只是巧合?
 
暂时把非负实数压缩后的逻辑体系叫有无逻辑体系:
实数0:代表没有;任意的正实数,表示有那个实数的数量那么多,自然就是“有”了。而“有”的基本单位量,用“1”表示,显然也是恰当的。
所以,有无逻辑在语义上也是相当完善的。
 
问题就来了:布尔逻辑和有无逻辑是否等价?我们怎么就能轻易放过这个问题了呢?
假设是等价的,那么,
布尔逻辑的“真”与有无逻辑的“有”该等价;
布尔逻辑的“假”,则应和有无逻辑的“无”等价。
这是自然的想法。
先从语义上进行一些验证:
通常,我们在逻辑上陈述一个命题,除了我们说这个命题“是真还是假”的说法之外,还有一种说法,就是这个命题“有没有道理”。“有道理”就是真,“没道理”就是假。
看起来,“真和假”,真的是“有和无”的一个语义的特例。
 
但有无逻辑的有无,是从数量多少含义上的“有无”,而“真假逻辑”转换得到的“有无”,则是道理上的有无。看起来还有需要统一的地方。
“道理”难道也可以用某种数值来衡量的一种“数量”吗?
似乎也有这种用法:“很有道理”,“有些道理”,“没有道理”。
嗯,道理,也是一种可用数值大小来衡量的一种数量。说得通,有道理,呵呵。
 
假定,就这么验证通过了:布尔逻辑和有无逻辑是等价的,至少,布尔逻辑是有无逻辑的一种特例。
 
新的问题就来了:可不可以用“有无逻辑”来替换“布尔逻辑”来进行逻辑命题的演算呢?
既然已经假设验证通过了,我们就可暂时认为可以这样做了,做的结果肯定是没问题的,
无非是把原来的“真”替换为“有道理”;把原来的“假”替换为“无道理”。
 
好了,我们在有无逻辑中,新发现三态逻辑,也就是,还存在经负实数压缩来的负逻辑状态。
我们也找到了负逻辑状态的合理语义:有少。原来的正逻辑是:有多。
“有多”和“有少”,都是“有”,只是一种有是“多出来的有”,另一种是“缺少的有”。
这很好解释:
平地上挖一个坑,把挖出来的泥土堆一边。
平地就是什么也没有,挖下去的地方就是“有坑”,堆起来的地方就是“有堆”。
 
如果真假逻辑和有无逻辑真的是等价,真假逻辑也应该能进行这样的“负逻辑扩展”。成吗?
难道“有道理”还可以分成“有欠缺道理”和“有多出道理”不成?
或者,真,可以是“少真”,也可以是“多真”不成?
需要仔细考虑以下了。
 
思考1:
我宁愿相信这两种逻辑的同形绝对不是巧合,也就是说,一定能找到真假逻辑的负逻辑的语义。
在命题逻辑中,我们常常会谈到两种操作,就是:逆和否。这两种操作的含义是不同的。
我们在算术运算中,常常也会说,加法运算的逆运算是减法。
是不是有可能对于逻辑值“真”求逆,就是“负真”呢?
如何理解?
在命题逻辑中,真,还有一个理解是“对的”,其反面是“错的”。
但似乎“假”表示的,就是“错”。
如果,“假”被用来表示错,那就一定还有一种状态被忽略了,就是:不对也不错,无所谓,无对错。
按照等价假设,真假逻辑取的是三态有无逻辑中的正负逻辑,而忽视了,0态逻辑。
难道这样的推理,是一点都不靠谱的吗?绝不是。
 
在三态逻辑中,已经有人提出了非真非假的“不确定态”,类似电路中的高阻态。
从数值表示的角度来说:不确定态与0态对应应该更符合语义的习惯。因为只有0态是既可以连续变为正,又可以连续变为负的状态。而真与假之间,存在非真非假的状态也是可以理解的,只有非真非假态,是即可以直接转变为真态,又可以直接转变为假态的。
 
真正的真假逻辑和有无逻辑的等价假设可以明确了:
真——>有多——>1
非真非假——>无——>0
假——>有少——>-1
 
为了简洁起见,可以把“非真非假”态命名为“空”态。
经过如此的假设,真假逻辑的逻辑运算关系就要发生变化了:
由三态逻辑中的非运算,需要扩展为正非和负非运算,于是有:
 
正非(真) = 空——>1-1=0
负非(假) = 空——>-1-(-1)=0
正非(空)= 真——>1-0=1
负非(空)= 假——>-1-0=-1
负非(真)= 假——>-1-1=-2=-1
正非(假)= 真——>1-(-1)=2=1
 
逻辑学,如果按照以这个新的“假”“空”“真”的三态来演绎,会是什么新的景象呢?
难道这种问题对逻辑学者而言,就一点吸引力都没有?反正我是被吸引了。
干脆,把三态假空真逻辑的与或运算也列将出来:
 
与运算:
真与假 = 假——> 1 X (-1) = -1
真与空 = 空——> 1 X 0 = 0
真与真 = 真——> 1 X 1 = 1
假与空 = 空——> -1 X 0 = 0
空与空 = 空——> 0 X 0 = 0
假与假 = 真——> -1 X (-1) = 1
 
或运算:
真或假 = 空——> 1 + (-1) = 0
真或空 = 真——> 1 + 0 = 1
真或真 = 真——> 1 + 1 = 2 = 1
假或空 = 假——> -1 + 0 = -1
空或空 = 空——> 0 + 0 = 0
 
新的问题又显现出来了:
1.“真假”的操作语义是我们在命题逻辑中已经惯用的语义,不应该因为和有无三态逻辑对应之后,就发生变化。
2.“真假”的形式语义却因为与有无三态逻辑对应之后,已经发生了变化。
3. 按照变化后的形式语义,我们可以找到真假新的操作语义,和1.中的一定会产生冲突。
4. 除非我们能发现:1.中的操作语义是2.中的不精确表示,才能统一这两种不同形式的真假形式运算规则。(我们绝对不能简单地把“假”从对应0的形式换到对应-1,而用0来对应“原来的假”这样来满足形式的要求就了事,因为那样,就偷换了“假”的概念了)。
 
也就是说:原来的“真”还是“原来的真的意思”,原来的“假”也必须是“原来的假的意思”,新的运算规则不同了,一定是发现了新的“真假”关系,而不是换掉原来的真假概念。
现在就顺着这个思路来检验。
 
在进行真假逻辑对应变换前后,关于真假逻辑计算的规则出现了如下的变化:
 
1.非运算发生的变化
原来的运算关系——>变换对应后的运算关系
非(真)= 假 ——> 负非(真)= 假 
非(假)= 真 ——> 正非(假)= 真
理解:原来的“非”运算语义不够精确,没有区分非操作的方向,是按正向来取非,还是按反向来取非。
经过三态形式对应,我们发现了非操作是有方向性的。原来的“非真=假”,实际是从反向(假的方向)来对真求最大补的操作。而原来的“非假 = 真”,实际是从正向(真的方向)来对假求最大补的操作。对应在命题逻辑中,就是各自都是从反面的立场来否定对方的。这说明,三态真假逻辑的语义与实际操作语义吻合得更好,正负非的形式突出表达了各自立场的对立。
可以进一步探究,对于有“空”参与的非运算,也是更精细的操作语义细分的新发现。
 
2.与运算发生的变化
原来的运算关系——>变换对应后的运算关系
假与假 = 假 ——> 假与假 = 真
这个矛盾就大了,原来为假的判断,变换逻辑形式,居然要为真,这不是要颠倒黑白吗?还能解释得通?
暂且放着,先看看或运算中的情况如何。
 
3.或运算发生的变化
原来的运算关系——>变换对应后的运算关系
真或假 = 真 ——> 真或假 = 空
这个矛盾似乎没有与运算带来的激烈,但也是不相容的。看我还能怎么解释得通?
 
先寻求对“或运算的矛盾”解决办法:
在原来的真假逻辑中,
“真”的含义至少包含:“是有道理的”、“是成立的”、“是对的”、“是符合事实的”的。
而“假”的含义则是:“是没有道理的”、“是不成立的”、“是错的”、“是不符合事实的”的。
“或”运算的含义是:“只要有一个是对的,合起来就至少有一个是对的”。
这实际表达了一种“择优”的行为:把所有的放一块,只要有一个拔尖的,我们就得到了拔尖的效果。十个人都去炸碉堡,只要有一个人炸成了,碉堡就被炸了。这意味着,“或”就是将被或的两种状态并列起来,而不是串接起来。
 
这样做的实质,实际上就是:只要有一个因素是“成立”的,所有的“不成立”的因素都可以被忽略。忽略的意思,就是当没有。所以,真假逻辑中的“或”的实质,并不是直接将“真”与“假”直接来“和”,而是先将“假”变换成“空”,接着用“真”来和“空”来“和”,如果“和”出来的结果是真,结果就是真,如果“和”出来是“空”,说明没有“真”,再用所有的“假”来“和”就得到“假”。
这说明真假逻辑中的“或”并不是一种基本的逻辑运算。可以通过更基本“和”运算的上述算法得到。“和”运算是比“或”运算更基本的算符。
而三态逻辑中的“或”运算,其实也不是真假逻辑中的“或”,而就是更基本的“和”运算。
可见,真假逻辑中的“或”本身就是一种复合的关系,更细致地追究,我们就发现,“或”关系,只是有无逻辑中的“或”关系(实际是“和”关系)衍生出来的。当然,作为衍生的必要条件,必须在逻辑状态中,添加一个“空”的状态。
分析到此,我们必须对有无逻辑中的“或”运算的名称做出调整,让它回到其本来的含义“和”上面去。
真假逻辑的和有无逻辑的“或运算矛盾”就迎刃而解。
 
目前还遗留了一个重大的问题来考验我自己:就是在逻辑对应转换之后,原来的某个与运算可以得出相反的结论。即:
原来的运算关系——>变换对应后的运算关系
假与假 = 假 ——> 假与假 = 真
假和真还是原来的假和真,经过同样叫“与”的操作,得出的结果为什么相反?这又如何解释?
难道是这两个“与”,也有所不同?关键是,他们如何能协调起来?
真假逻辑中的“与”的含义是:把两个因素放在一起,比须在2个因素都成立的情况下,共同作用的结果才成立,如果其中有1个不成立,则总的结果也不成立。显然,“与”是将2个因素串联起来的关系。而不是象“或”那样,把2个因素并起来。
这说明“与”运算正好和“或”运算反过来了,是一种“择劣”的行为:把多有的放在一起,只要有一个是坏了,那么,总的效果就是坏的,就是俗话说的“一粒老鼠屎坏了一锅粥。”的意思。只要有一个是假,其他的所有的都是真都没有用。
这样做的实质就是:只要有一个假,就立即把这个“假”当做是“空”,再和其他因素去“乘”,“乘”出来了结果,自然还是“空”,最后把这个结果再换回是“假”。如果一开始就内有一个是“假”,就是所有的真直接相“乘”,结果当然就会是真。
而三态逻辑中的“与”运算,其实也不是真假逻辑中的“与”,而就是更基本的“乘”运算。在三态逻辑中的“假与假”实际是“假乘假”,得到的是“减少错误”的效果,减少了错,当然就“多出了对”,也就是“负负得正”的效果。
可见,真假逻辑中的“与”本身就是一种复合的关系,更细致地追究,我们就发现,“与”关系,只是有无逻辑中的“与”关系(实际是“乘”关系)衍生出来的。当然,作为衍生的必要条件,必须在逻辑状态中,添加一个“空”的状态。
分析到此,我们必须对有无逻辑中的“与”运算的名称做出调整,让它回到其本来的含义“乘”上面去。
真假逻辑的和有无逻辑的“与运算矛盾”就迎刃而解。
 
于是,只要将三态有无逻辑中的“与”和“或”恢复为“乘”和“加”。然后再定义或运算的算法和与运算的算法,就得到了对应真假逻辑中的“与”和“或”。而“真假”,就可以在增加了“空”的前提下,直接对应“有无”了。
 
思考1小结:
1.从三态有无逻辑的“加”定义真假逻辑“或”运算的算法如下:将假用空代相加,即得结果;
2.从三态有无逻辑的“乘”定义真假逻辑“与”运算的算法如下:将假用空代相乘,结果为真则最终结果为真,否则最终结果为假;
3.从逻辑状态的划分来说,真假逻辑之所以会和“有无逻辑”存在上述关系变换,原因之一也在于在真假逻辑中,没有在逻辑状态中将“空”严格从“假”中分离出来,而是隐藏在“或”和“与”的操作中。真假逻辑和有无逻辑的等价关系的建立,就需要在真假逻辑状态基础上增加“空”状态,而在三态有无逻辑的基础上另外增加用“和”与“乘”来定义的“与”和“或”的复合关系。就能彻底实现真假逻辑和有无逻辑的统一。
 
发现思考1问题:
如果为了适应个别“与”和“或”的运算逻辑语义,将与和或运算对应到乘和加运算的复合运算,那么,其他变换后符合语义的三态运算又不符合原来一致的语义了。矛盾!也就是说,如果要维持状态计算的形式语义一致性,真的有必要重新思考原来命题逻辑中的“真”、“假”操作语义和新的与有无逻辑对应后的“真”、“空”、“假”三态操作语义的转换关系了。
思考1失败。
 
思考2:
先将“真”,“假”与三态有无逻辑按形式对称的原则对应,应该是:
真多——>有多——>1
假——>无——>0
真少——>有少——>-1
也就是:原来的布尔逻辑直接对应三态逻辑中的“有多”和“无”的状态。
即“真”对应“有”,如果不考虑负逻辑,2态的有无逻辑和真假逻辑对应得非常好。
当出现三态,三态有无逻辑实际上就是以0为对称点,将“有”一分为二“有多”,“有少”。
类似,如果将“真假”逻辑中的假对应“0”,那么,就应该将“真”一分为二,“真多”,“真少”。
也就是说:有多也是“真的”,有少也是“真的”,只有“没有”就是“假的”。
如此,“真”的逻辑语义就是“存在”,“假”的逻辑语义就是“不存在”。
存在分为两种:“多出的存在”,“缺损的存在”。
我们只要将布尔逻辑反转,找到“真多”和“真少”的对称语义就可。
似乎这个思路更顺畅一些。
 
联系动力学图景,有多,代表一种供应的动力,有少则代表需求的动力。有多和有少,都代表是有驱动力,就是真。有假,就是没有供应,也没有需求,处于平衡状态。
 


https://wap.sciencenet.cn/blog-33982-440390.html

上一篇:理解立体逻辑由来的关键
下一篇:立体逻辑思想历程
收藏 IP: 183.33.136.*| 热度|

6 杨华磊 陈辉 鲍得海 周可真 vigorous yinglu

发表评论 评论 (18 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-25 14:28

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部