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


    在这里插入图片描述

    引言

    上次写了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.
    
    • 1
    • 2
    • 3
    • 4
    • 5
    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.
    
    • 1
    • 2
    • 3
    • 4
    • 5
    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.
    
    • 1
    • 2
    • 3
    • 4
    • 5
    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.
    
    • 1
    • 2
    • 3
    • 4
    • 5
    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.
    
    • 1
    • 2
    • 3
    • 4
    • 5
    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.
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    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.
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    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.
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    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.
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    结语

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

  • 相关阅读:
    保护鲸鱼动物网页设计作业 静态HTML宠物主题网页作业 DW鲸鱼网站模板下载 大学生简单动物网页作品代码 个人网页制作 学生个人网页
    大数据必学Java基础(六十):集合补充
    大数据必学Java基础(三十):IDEA的使用介绍
    CSAPP 练习题 2.25
    PMD 6.47.0 发布,代码分析器
    【数据结构】二叉树链式结构的实现
    Annotorious入门教程:图片注释工具
    Springboot 项目打成jar包部署到服务器中的方式
    差分约束学习笔记
    Spring Security漏洞防护—HttpFirewall和 HTTPS
  • 原文地址:https://blog.csdn.net/egman/article/details/134531616