【问题标题】:first order logic & prolog一阶逻辑和序言
【发布时间】:2012-03-15 23:26:54
【问题描述】:

我试图了解序言如何表示一阶逻辑。例如,我如何在动物类型列表中表示:

狗(斑点)。

猫(nyny)。

飞(哈利)

所有动物都是哺乳动物还是昆虫?

【问题讨论】:

    标签: prolog first-order-logic


    【解决方案1】:

    我已经扩展了@ Diego Sevilla 的答案以包括动物是什么的原始问题,并添加了执行。

    % Your original facts
    dog(spot).
    cat(nyny).
    fly(harry).
    
    % @ Diego Sevilla's predicates
    mammal(X) :- dog(X).
    mammal(X) :- cat(X).
    insect(X) :- fly(X).
    
    % Defining what an animal is - either insect or (;) mammal
    animal(X) :- insect(X) ; mammal(X). 
    
    % Running it, to get the names of all animals
    ?- animal(X).
    X = harry ;
    X = spot ;
    X = nyny.
    

    【讨论】:

      【解决方案2】:

      我认为您所指的只是以下内容:

      mammal(X) :- dog(X).
      mammal(X) :- cat(X).
      insect(X) :- fly(X).
      

      也就是说,哺乳动物要么是狗,要么是猫。您必须明确指定属于该哺乳动物类别的类别。昆虫也是如此。

      将此与您的一阶逻辑问题联系起来,mammal 的第一个条目将显示为:对于每个 X,其中 X 是狗,X 也是哺乳动物(猫也是如此),依此类推。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-09-20
        • 2019-07-04
        • 2018-05-01
        • 2015-08-05
        • 2011-03-21
        • 2011-01-19
        • 1970-01-01
        相关资源
        最近更新 更多