问题标签 [modal-logic]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
prolog - prolog catch all 子句只有在没有其他子句时才有效
我有一个谓词将模态逻辑公式与其负范式联系起来。除了模态运算符、合取和析取之外的所有连接词都被消除了,并且否定被尽可能地推到表达式的叶子中。
rewrite/2
✱ 谓词有一个包罗万象的子句,rewrite(A, A).
在文本上是 last。有了这个包罗万象的子句,就可以提取否定范式的公式。在这个例子中,e
是一个像 Łukasiewicz 表示法一样的双条件连接词,4
并且7
是模态逻辑中的变量(因此是 Prolog 常量)。
Z
与负范式的公式统一。
但是,rewrite(<some constant>, <some constant>)
总是成功,我不希望它成功。包罗万象的条款真的应该是一个包罗万象的条款,而不是如果另一个条款适用的话可能会触发的东西。
我尝试用受rewrite(A, A).
保护的版本替换:
我认为当且仅当A 不是由具有特殊含义的原子/构造函数领导时,这将阻止包罗万象的条款适用。但是,在进行更改后,rewrite
如果递归调用,总是会失败。
什么是设置捕获所有子句的正确方法。
✱ 方案全文供参考:
model-checking - NuSMV 返回未定义的操作
我写了以下代码:
但是,当我执行命令“flatten_hierarchy”时,出现以下错误:“x-1”未定义
我不知道为什么 x-1 是未定义的。