# 学习 Prolog 和 离散逻辑的16个等价公式:一趟有趣的逻辑之旅

在这里插入图片描述
Prolog 的语法很奇怪,需要一些时间来适应,所以我花了点时间,想用Prolot来学习和验证离散逻辑的16组等价公式。

1. 双重否定律 (Double Negation Law)

A ⇔¬¬A
首先,我们来看看双重否定律。在 Prolog 中,我们可以这样验证它:

fun1(A,Z):-member(A,[false,true]),(((Z1 = not(A),Z2=not(Z1)) , equal(A,Z2)) ->Z=true;Z=false),format('A = ~w , Z = ~w~n',[A,Z]),fail.

这个函数检查一个值和它的双重否定是否相等。是不是感觉就像在镜子里看镜子?

2. 幂等律 (Idempotent Laws)

A ⇔ A∨A
A ⇔ A∧A
接下来是幂等律,这听起来像是一种超级能力,但实际上它很简单:

fun2_1(A,Z):-member(A,[false,true]),(((Z1=(A;A)),equal(A,Z1))->Z=true;Z=false),format('A = ~w , Z = ~w~n',[A,Z]),fail.fun2_2(A,Z):-member(A,[false,true]),(((Z1=(A,A)),equal(A,Z1))->Z=true;Z=false),format('A = ~w , Z = ~w~n',[A,Z]),fail.

就像说“给我再多的杨幂,不如只给我一个杨幂就够了"。

3. 交换律 (Commutative Laws)

A∨B ⇔ B∨A
A∧B ⇔ B∧A
交换律告诉我们,顺序不重要,就像在决定先穿袜子还是裤子一样:

fun3_1(A,B,Z):-member(A,[false,true]),member(B,[false,true]),((Z1=(A;B),Z2=(B;A),equal(Z1,Z2))->Z=true;Z=false),format('A = ~w , B = ~w, Z = ~w~n',[A,B,Z]),fail.fun3_2(A,B,Z):-member(A,[false,true]),member(B,[false,true]),((Z1=(A,B),Z2=(B,A),equal(Z1,Z2))->Z=true;Z=false),format('A = ~w , B = ~w, Z = ~w~n',[A,B,Z]),fail.

4. 结合律 (Associative Laws)

(A∨B)∨C ⇔ (A∨(B∨C)
(A∧B)∧C ⇔ (A∧(B∧C)
结合律就像是一位擅长变魔术的艺术家。就像是在告诉我们:“不管你怎么组合这些逻辑片段,结果都像是经过了魔术师的手,神奇地保持不变!”

fun4_1(A,B,Z):-member(A,[false,true]),member(B,[false,true]),((Z1=((A;B);C),Z2=((A;(B;C)),equal(Z1,Z2)))->Z=true;Z=false),format('A = ~w , B = ~w, Z = ~w~n',[A,B,Z]),fail.fun4_2(A,B,Z):-member(A,[false,true]),member(B,[false,true]),((Z1=((A,B),C),Z2=((A,(B,C)),equal(Z1,Z2)))->Z=true;Z=false),format('A = ~w , B = ~w, Z = ~w~n',[A,B,Z]),fail.

5. 分配律 (Distributive Laws)

A∨(B∧C) ⇔ (A∨B)∧(A∨C)
A∧(B∨C) ⇔ (A∧B)∨(A∧C)
分配律像是在进行一场精彩的逻辑舞蹈。它轻松地在不同逻辑结构之间跳跃

fun5_1(A,B,C,Z):-member(A,[false,true]),member(B,[false,true]),member(C,[false,true]),(((Z1=(A;(B,C))),(Z2=((A;B),(A;C))),equal(Z1,Z2))->Z=true;Z=false),format('A = ~w , B = ~w , C = ~w , Z = ~w~n',[A,B,C,Z]),fail.fun5_2(A,B,C,Z):-member(A,[false,true]),member(B,[false,true]),member(C,[false,true]),(((Z1=(A,(B;C))),(Z2=((A,B);(A,C))),equal(Z1,Z2))->Z=true;Z=false),format('A = ~w , B = ~w , C = ~w , Z = ~w~n',[A,B,C,Z]),fail.

6. 德摩根律 (De Morgan Laws)

¬(A∨B) ⇔ ¬A∧¬B
¬(A∧B) ⇔ ¬A∨¬B
德摩根律就像是逻辑世界的一面镜子。当你通过这面镜子看逻辑表达式时,一切都被反转了,但令人惊奇的是,结果依然成立!

fun6_1(A,B,Z):-member(A,[false,true]),member(B,[false,true]),((Y1=(A;B),Z1=(\+Y1),Z2=(\+A,\+B),equal(Z1,Z2))->Z=true;Z=false),format('A = ~w , B = ~w, Z = ~w~n',[A,B,Z]),fail.
fun6_2(A,B,Z):-member(A,[false,true]),member(B,[false,true]),((Y1=(A,B),Z1=(\+Y1),Z2=(\+A;\+B),equal(Z1,Z2))->Z=true;Z=false),format('A = ~w , B = ~w, Z = ~w~n',[A,B,Z]),fail.

7. 吸收根律 (Absorption Laws)

A∨(A∧B) ⇔ A
A∧(A∨B) ⇔ A
吸收根律就像是一个厨师,能将一桌丰盛的菜肴减少到最基本的几样,但味道依然美妙

fun8_1(A,Z):-member(A,[false,true]),(((Z1=(A;true)),equal(Z1,true))->Z=true;Z=false),format('A = ~w , Z = ~w~n',[A,Z]),fail.fun8_2(A,Z):-member(A,[false,true]),(((Z1=(A,false)),equal(Z1,false))->Z=true;Z=false),format('A = ~w , Z = ~w~n',[A,Z]),fail.

8. 9. 零律和同一律 (Domination Laws & Identity Laws)

A∧1 ⇔ A
A∨0 ⇔ A
零律和同一律就像则是Prolog中的基本常量,它们是逻辑世界中的稳定点,始终如一

fun8_1(A,Z):-member(A,[false,true]),(((Z1=(A;true)),equal(Z1,true))->Z=true;Z=false),format('A = ~w , Z = ~w~n',[A,Z]),fail.fun8_2(A,Z):-member(A,[false,true]),(((Z1=(A,false)),equal(Z1,false))->Z=true;Z=false),format('A = ~w , Z = ~w~n',[A,Z]),fail.fun9_1(A,Z):-member(A,[false,true]),(((Z1=(A,true)),equal(Z1,A))->Z=true;Z=false),format('A = ~w , Z = ~w~n',[A,Z]),fail.fun9_1(A,Z):-member(A,[false,true]),(((Z1=(A,true)),equal(Z1,A))->Z=true;Z=false),format('A = ~w , Z = ~w~n',[A,Z]),fail.fun9_2(A,Z):-member(A,[false,true]),(((Z1=(A;false)),equal(Z1,false))->Z=true;Z=false),format('A = ~w , Z = ~w~n',[A,Z]),fail.

10. 11. 排中律与矛盾律 (Law of the Excluded Middle Laws & Law of Contradiction )

A∨¬A ⇔ 1
A∧¬A ⇔ 0
排中律与矛盾律这两个法则展示了逻辑的极端情况,一方面是充分性,另一方面是不可能性。

fun10(A,Z):-member(A,[false,true]),(((Z1=(A;\+A)),equal(Z1,true))->Z=true;Z=false),format('A = ~w , Z = ~w~n',[A,Z]),fail.fun11(A,Z):-member(A,[false,true]),(((Z1=(A,\+A)),equal(Z1,false))->Z=true;Z=false),format('A = ~w , Z = ~w~n',[A,Z]),fail.

12. 13. 蕴涵律和等价律 (Implication Laws & Eqivalence Laws)

A→B ⇔ ¬A∨B
A↔B ⇔ (A→B )∧(B→A)
蕴涵律和等价律是理解逻辑关系的核心

fun12(A,B,Z):-member(A,[false,true]),member(B,[false,true]),((Z1=(A->B;true),Z2=(\+A;B),equal(Z1,Z2))->Z=true;Z=false),format('A = ~w , B = ~w, Z = ~w~n',[A,B,Z]),fail.fun13(A,B,Z):-member(A,[false,true]),member(B,[false,true]),((Z1=equal(A,B),Z2=(contain(A,B),contain(B,A)),equal(Z1,Z2))->Z=true;Z=false),format('A = ~w , B = ~w, Z = ~w~n',[A,B,Z]),fail.

14. 15. 假言易位律与等价否定律 (Contraposition Laws and Negation of Equivalence Laws)

A→B ⇔ ¬B→¬A
A↔B ⇔ ¬A↔¬B
假言易位律与等价否定律展示了逻辑表达式的巧妙转换,就像是逻辑世界的变形术,展示了多种面貌

fun14(A,B,Z):-member(A,[false,true]),member(B,[false,true]),((Z1=contain(A,B),Y1=(\+B),Y2=(\+A),Z2=(contain(Y1,Y2)),equal(Z1,Z2))->Z=true;Z=false),format('A = ~w , B = ~w, Z = ~w~n',[A,B,Z]),fail.fun15(A,B,Z):-member(A,[false,true]),member(B,[false,true]),((Z1=equal(A,B),Y1=(\+A),Y2=(\+B),Z2=(equal(Y1,Y2)),equal(Z1,Z2))->Z=true;Z=false),format('A = ~w , B = ~w, Z = ~w~n',[A,B,Z]),fail.

16. 归谬律 (Reductio ad Absurdum)

(A→B) ∧(A→¬B) ⇔ ¬A
归谬律是Prolog中逻辑推理的终极检验,它揭示了逻辑中的悖论和矛盾

fun16(A,B,Z):-member(A,[false,true]),member(B,[false,true]),((Y1=(\+B),Z1=(contain(A,B),contain(A,Y1)),Z2=(\+A),equal(Z1,Z2))->Z=true;Z=false),format('A = ~w , B = ~w, Z = ~w~n',[A,B,Z]),fail.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/205376.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

银河麒麟安装Docker

# 配置阿里云 Centos8 镜像源,需要额外的一些依赖,而这些依赖在麒麟官方的源里面是没有的 sudo curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-8.repo# 配置阿里云 docker 镜像源 sudo yum-config-manager --add-r…

【老文新发】Otsu大津法详解及python实现

原文:A Threshold Selection Method from Gray-Level Histograms A Fast Algorithm for Multilevel Thresholding 前言 大津法包含两个重要的概念:类间方差(between-class variance)和类内方差(within-class varianc…

CRM商机管理软件:构建客户为中心的管理理念

企业为什么选择CRM商机管理软件?1.CRM软件能够帮助企业建立以客户为中心的管理理念;2.CRM商机管理软件全面直观的展示客户数据;3.市场人员可以制订个性化的营销策略;4.移动应用为外出的销售带来的便利。 1.构建客户为中心的管理理…

2023年中国雷达设备市场规模及市场份额分析[图]

雷达设备行业是一种利用无线电波对目标进行探测和定位的技术,也被称为无线电探测和定位。雷达通过发射电磁波对目标进行照射并接收其回波,经波形处理后获取目标的位置和速度等信息。雷达具有探测距离远,测定精度高,不受天气和地形…

Motion Plan之搜索算法笔记

背景: 16-18年做过一阵子无人驾驶,那时候痴迷于移动规划;然而当时可学习的资料非常少,网上的论文也不算太多。基本就是Darpa的几十篇无人越野几次比赛的文章,基本没有成系统的文章和代码讲解实现。所以对移动规划的认…

迅为RK3568开发板学习之Linux驱动篇第十三期输入子系统

驱动视频全新升级,并持续更新~更全,思路更科学,入门更简单。 迅为基于iTOP-RK3568开发板进行讲解,本次更新内容为第十三期,主要讲解输入子系统,共计24 讲。 关注B站:北京迅为电子,在…

uboot移植-野火imx6ull

uboot移植及LCD和网络驱动设置 环境: Ubuntu 20.04 野火imx6ull pro开发板 tftp服务的搭建 IMX6ULL开发板参考的是NXP官方的I.MX6ULL EVK开发板做的硬件。 Linux的移植要复杂的多,在移植Linux之前我们需要先移植一个 bootloader 代码,这…

CPSC发布关于亚马逊含有纽扣电池或硬币电池产品的相关规则标准!UL4200A

2023年9月21日,美国消费品安全委员会(CPSC)在《联邦公报》上发布了纽扣及硬币电池及相关产品的最终规则(DFR)16 CFR 1263,以保护6岁以下儿童免受电池摄入危害。DFR将于2023年10月23日生效,除非消…

赛氪荣幸受邀参与中国联合国采购促进会第五次会员代表大会

11 月21 日 (星期二) 下午14:00,在北京市朝阳区定福庄东街1号中国传媒大学,赛氪荣幸参与中国联合国采购促进会第五次会员代表大会。 2022年以来,联合国采购杯全国大学生英语大赛已经走上了国际舞台,共有来自…

替换的DLL用户电脑报错加载失败

编译后混淆加签名的dll 远程下载下来有个选项: 在某用户电脑上出现加载失败的报错 右键dll 属性里勾选解除锁定后 加载运行正常 跟用户电脑安全策略有关系 有的会出现 大部分不会

铸就匠心,打造西部最具权威的行业商会组织

中国商报陕西报道(记者 朱清平)西安市五金机电商会(以下简称商会)第二届一次会员代表大会暨新任理事、监事就职典礼于11月17日在西安经开洲际酒店召开。 商会于2018年10月成立,在5年的发展中,依托“一带一路”发展的“快车道”,通过新丝路国际工业品数字…

前端性能优化总结

这里写目录标题 页面性能测试工具测试指标 前端页面性能常见的问题前端页面性能优化常见策略及方案dns优化------预解析域名(异步进行)http请求优化减少请求次数同时多开持久连接 前面面试url从输入到确认搜索发生了什么js介绍new一个对象的过程&#xf…