You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

咨询:我的Prolog表达式结构是否与说谎者悖论结构同构?

咨询:我的Prolog表达式结构是否与说谎者悖论结构同构?

我们假设Prolog不评估术语“not”和“true”的含义,仅对表达式的结构进行评估。

英文表述的说谎者悖论: "This sentence is not true."

?- LP = not(true(LP)).
LP = not(true(LP)).

?- unify_with_occurs_check(LP, not(true(LP))).
false.

经他人仔细审核后,可以确定上述表达式与(结构层面的)说谎者悖论同构。

专家认为Prolog将“not”和“true”视为无意义符号,仅评估表达式的结构。

?- LP = foo(bar(LP)).
LP = foo(bar(LP)).

?- unify_with_occurs_check(LP, foo(bar(LP))).
false.

SWI-Prolog中unify_with_occurs_check/2的实现具有循环安全性,仅防范创建循环,而非防范参数中已存在的循环。

我的理解是,Prolog检测到了表达式求值序列有向图中的循环。

我的回答中引用的Clocksin & Mellish文献详细解释了unify_with_occurs_check拒绝LP的原因。


内容的提问来源于stack exchange,提问作者polcott

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 01:37:37