对序言中命题表达的否定

时间:2016-11-12 14:41:44

标签: prolog

我是prolog的新手,我必须制作一个否定命题表达的程序。

例如:p暗示(q而不是(r))应该是p和(not(q)或r)。

如果有人能帮助我,那就太棒了。

1 个答案:

答案 0 :(得分:0)

  1. 用铅笔和纸写下否定的归纳定义。 (提示:基础案例将是命题常量,归纳案例将是连接词)

  2. 将命题表达式的语法确定为序言。

  3. 对于命题表达式的prolog术语的每个语法cateogry,将1中的规则转录为prolog caluse,为谓词选择合适的名称,例如negate。谓词将是二进制的,其中每个段是另一个的否定。谓词将由几个(我认为一两个)基本案例和几个归纳案例组成。 negate( ... , ... ). % base case negate( ... , ... ) :- ... . % inductive case negate( ... , ... ) :- ... . % inductive case ...