haskell(30)

唐彦
2023-12-01

haskell在数理逻辑中的应用

基本逻辑运算符定义

    逻辑与、逻辑或、蕴涵、相等,逻辑非用not函数,逻辑与用&&函数,逻辑或用||蕴涵函数定义一个操作符“==>”,然后定义相等操作符“<=>”。

(==>)::Bool->Bool->Bool

True==>p =p

False==>p =True

(<=>)::Bool->Bool->Bool

x<=>y=x==y

加载程序后测试一下:

*Main> (6<7)==>(9<10)

True

*Main> (6<7)==>(9>10)

False

*Main> True&&False

False

*Main> True||False

True

*Main> (6<7)==>(9>10)

False

*Main> (6<7)==>(9<10)

True

*Main> not ((6<7)<=>(9>10))

True

二)量词与谓词逻辑

(1)存在量词

存在M中的一个x,使p(x)成立,简记为:∃x ∈ M,p(x),可读为存在一个x属于M,使p(x)成立。在谓词逻辑中描述为:∃x(p(x)),我们构造一个存在量词的例子:

∃x∃y∃z (x<=y∧y<=z=>x=z)

存在x,y,z使得x<=y,y<=z,则存在x,z使得x=z

我们把x,y和z的范围设置在1-100以内,用haskell运行:

Prelude> any (\(x,z)->x==z)  [(x,z)|x<-[1..100],y<-[1..100],z<-[1..100],x<=y,y<=z]

True

然后看看相反的测试

Prelude> all (\(x,z)->x/=z)  [(x,z)|x<-[1..100],y<-[1..100],z<-[1..100],x<=y,y<=z]

False

Prelude> 

该命题为真。

(2)全称量词

对M中任意的x,有p(x)成立,记作"∀"x∈M,p(x)。

读作:每一个x属于M,使p(x)成立。在谓词逻辑中描述为:∀x(p(x)),我们构造一个存在量词的例子:

∀x∀y∀z (x<y∧y<z=>x<z)

存在任意的x,y,z使得x<=,y<z,则所有x,z使得x<z

我们把x,y和z的范围设置在1-100以内,用haskell运行:

 Prelude> all (\(x,z)->x<z)  [(x,z)|x<-[1..100],y<-[1..100],z<-[1..100],x<y,y<z]

True

Prelude> any (\(x,z)->x>z)  [(x,z)|x<-[1..100],y<-[1..100],z<-[1..100],x<y,y<z]

False

Prelude> 

(3)数理逻辑综合应用

A.公式证明

(x^2-1)=(x+1)(x-1),逻辑描述为:∀x∀y∀z (x^2-1=(x+1)(x-1))

编写haskell代码如下:

Prelude> all (\x->(x^2-1)==(x+1)*(x-1)) [x|x<-[1..10000]]

True

Prelude> any (\x->(x^2-1)/=(x+1)*(x-1)) [x|x<-[1..10000]]

False

Prelude> 

B.等价式

P->Q<=>┐P∨Q

加载操作符定义文件:

:load "logic.hs"

然后编写代码:

*Main> all (\(x,y)->((x==>y)<=>(not x)||y)) [(x,y)|x<-[True,False],y<-[True,False]]

True

*Main> 

再证明一个等价式

┐∀x(p(x))<=>∃x (┐p(x))

*Main> not (all (\x->x>25) [x|x<-[1..100]])<=>any  (\x->not (x>25)) [x|x<-[1..100]]

True

*Main> 

C.推理的证明

明天是星期一或星期三,我就有课,今天必须备课,我今天下午没备课,所以明天不是星期一和星期三

设p:明天是星期一

   q:明天是星期三

   r:我有课

   S:我备课

结论:

   ┐p∧┐q

编写代码证明这个结论

 *Main> all (\(p,q,r,s)->(((p||q)==>r)&&(r==>s)&&(not s))==>((not p)&&(not q))) [(p,q,r,s)|p<-[True,False],q<-[True,False],r<-[True,False],s<-[True,False]]

True

*Main>

本博客所有内容是原创,未经书面许可,严禁任何形式的转载。

http://blog.csdn.net/u010255642


 类似资料: