Prolog 中的逻辑探险:学习9组逻辑蕴涵公式

news/2024/4/17 16:49:01

在这里插入图片描述

引言

上次写了16组等价公式定律,今天继续用Prolog写9组逻辑蕴涵公式。
感觉这些公式的名称与公式挺难一一对应来记忆的,只能多练习了.

1. 附加律 (Addition)

A ⇒ A∨B
当你拿到一个苹果(A),突然你知道,即使有了梨(B),你依然拥有苹果。这就是附加律的奇妙之处!如同魔术师,展示了这种简单却深刻的真理。

fun1(A,B,Z):-member(A,[false,true]),member(B,[false,true]),((A->(A;B);true)->Z=true;Z=false),format('A = ~w,B = ~w, Z = ~w~n',[A,B,Z]),fail.
2. 化简律 (Simplification)

(A∧B)⇒A
有了一篮子水果(A 和 B),但你只想要一个苹果(A)。化简律就像是从繁到简的艺术,巧妙地帮你从复杂中找到简单。

fun2(A,B,Z):-member(A,[false,true]),member(B,[false,true]),(((A,B)->A;true)->Z=true;Z=false),format('A = ~w,B = ~w, Z = ~w~n',[A,B,Z]),fail.
3. 假言推理 (Modus Ponens)

(A→B)∧A⇒B
如果吃苹果(A)能让你快乐(B),那么当你吃苹果时,快乐就会随之而来。就是这样一个快乐的制造者!

fun3(A,B,Z):-member(A,[false,true]),member(B,[false,true]),((((A->B;true),A)->B;true)->Z=true;Z=false),format('A = ~w,B = ~w, Z = ~w~n',[A,B,Z]),fail.
4. 拒取式 (Modus Tollens)

(A→B)∧¬B⇒¬A
如果苹果能带来快乐,但你不快乐,那么你可能没有吃苹果。这就是其聪明之处,通过否定的结果找到原因。

fun4(A,B,Z):-member(A,[false,true]),member(B,[false,true]),((((A->B;true),\+ B)-> \+ A;true)->Z=true;Z=false),format('A = ~w,B = ~w, Z = ~w~n',[A,B,Z]),fail.
5. 析取三段论 (Disjunctive Syllogism)

(A∨B)∧¬B⇒A
苹果或梨(A 或 B),如果不是梨,那肯定是苹果。就像是逻辑世界的侦探,排除不可能,找到答案。

fun5(A,B,Z):-member(A,[false,true]),member(B,[false,true]),((((A;B), \+ B ) -> A ; true)->Z=true;Z=false),format('A = ~w,B = ~w, Z=~w~n',[A,B,Z]),fail.
6. 假言三段论 (Hypothetical Syllogism)

(A→B)∧(B→C)⇒(A→C)
苹果带来快乐,快乐带来舞蹈,那么苹果就能带来舞蹈!展示了这一系列逻辑链条的美妙。

fun6(A,B,C,Z):-member(A,[false,true]),member(B,[false,true]),member(C,[false,true]),((((A->B;true),(B->C;true))->(A->C;true);true)->Z=true;Z=false),format('A = ~w,B = ~w,C = ~w, Z = ~w~n',[A,B,C,Z]),fail.
7. 等价三段论

(A↔B)∧(B↔C)⇒(A↔C)
如果苹果像梨,梨像桃子,那么苹果就像桃子。逻辑世界中的等价转换大师。

fun7(A,B,C,Z):-member(A,[false,true]),member(B,[false,true]),member(C,[false,true]),(((equal(A,B),equal(B,C)->equal(A,C));true)->Z=true;Z=false),format('A = ~w,B = ~w,C = ~w, Z = ~w~n',[A,B,C,Z]),fail.
8. 构造性二难 (Constructive Dilemma)

(A→B)∧(C→D)∧(A∨C)⇒(B∨D)
如果苹果能让你快乐,梨能让你舞蹈,那么苹果或梨都能给你快乐或舞蹈。你得到很多选项时,也同样要面对开心选择的烦恼。

fun8(A,B,C,D,Z):-member(A,[false,true]),member(B,[false,true]),member(C,[false,true]),member(D,[false,true]),(((contain(A,B),contain(C,D),(A;C)->(B;D));true)->Z=true;Z=false),format('A = ~w,B = ~w,C = ~w,D = ~w,Z = ~w~n',[A,B,C,D,Z]),fail.
9. 破坏性二难 (Destructive Dilemma)

(A→B)∧(C→D)∧(¬B∨¬D)⇒(¬A∨¬C)
如果苹果不再快乐,梨不再跳舞,那么失去苹果或梨都将失去快乐或舞蹈。 揭示了逻辑中的另一个面,有时也需面对失去的选择障碍。

fun9(A,B,C,D,Z):-member(A,[false,true]),member(B,[false,true]),member(C,[false,true]),member(D,[false,true]),(((contain(A,B),contain(C,D),(\+B;\+D)->(\+A;\+C));true)->Z=true;Z=false),format('A = ~w,B = ~w,C = ~w,D = ~w,Z = ~w~n',[A,B,C,D,Z]),fail.
结语

希望通过这些生动的比喻和 Prolog 代码,让我们记住逻辑蕴涵推理的魅力。其实,逻辑不仅是理性的,还挺有乐趣和需要充分想象力的!


https://www.xjx100.cn/news/3091646.html

相关文章

获取所有非manager的员工emp_no

个人网站 文章首发于公众号小肖学数据分析 题目来自牛客网 描述 有一个员工表employees简况如下: emp_nobirth_datefirst_namelast_namegenderhire_date100011953-09-02GeorgiFacelloM1986-06-26100021964-06-02BezalelSimmelF1985-11-21100031959-12-03PartoBamfordM1986…

CNN卷积神经网络Python实现

import torch from torch import nn# ①定义互相关运算 def corr2d(X, K):"""计算二维互相关运算。"""# 获取K的形状 行为h,列为wh, w K.shape# 生成全0的矩阵,行为X的行减去h加上1,列为X的列减去w加上1Y torch.zeros((…

SAP的一些当说不说的常识

ABAP中的WDA与FRMbopf restful和odata postman软件 SAP中MM模块相关 SAP 物料 移动类型 https://www.cnblogs.com/rainysblog/p/4133259.html T移动类型文本含义一般用途T-code101GR 收货直接收货工单入库,购买成品入库MIGO/CO11N102用于PO冲销的收货冲销直接…

手把手入门MO | 如何使用SeaTunnel将数据写入MatrixOne

1 概述 SeaTunnel 是一个分布式、高性能、易扩展的数据集成平台,专注于海量数据(包括离线和实时数据)同步和转化。MatrixOne 支持使用 SeaTunnel 从其他数据库同步数据,可以稳定高效地处理数百亿条数据。 本文档将介绍如何使用 …

配置中心

服务配置中心介绍 首先我们来看一下,微服务架构下关于配置文件的一些问题: 1. 配置文件相对分散。 在一个微服务架构下,配置文件会随着微服务的增多变的越来越多,而且分散 在各个微服务中,不好统一配置和管理。 2. 配置文件无…

博主都在用的网站,一键制作电子杂志

​随着互联网的发展,越来越多的人开始使用电子杂志来展示自己的作品或宣传自己的品牌。而制作电子杂志的工具也越来越多,其中一些工具非常受欢迎,被许多博主使用。今天,我们就来介绍一款博主都在用的网站,它可以帮助你…

Java WebSocket 获取客户端 IP 地址

在开发 Web 应用程序时,我们通常需要获取客户端的 IP 地址用于日志记录、身份验证、限制访问等操作。当使用 WebSocket 协议时,我们可以使用 Java WebSocket API 来获取客户端的 IP 地址。 本文将介绍如何使用 Java WebSocket API 获取客户端 IP 地址&a…

4本期刊被踢!11月SCI/SSCI目录已更新

​2023年11月20日,科睿唯安更新了Web of Science核心期刊目录。 此次更新后SCIE期刊目录共包含9481本期刊,SSCI期刊目录共包含3551本期刊。此次SCIE & SSCI期刊目录更新,与上次更新(2023年10月)相比,共…