something is a person if it is either Adam or Eve, or if it has a mother. We can express this in a single rule as follows:

person(X) :- (X=adam; X=eve; mother(X, Y)).

  • bleistift2@sopuli.xyz
    link
    fedilink
    English
    arrow-up
    4
    ·
    edit-2
    5 days ago

    doesn’t this definition lack a recursive case to ensure that the mother is either Eve or a descendent of Eve

    We don’t see the definition of mother. It might already encode that Y is a person.

    And there should probably be a father case in there as well?

    While every person does also have a father, it’s completely redundant, since being a person can fully be described by [Edit: being having] a mother (or being Adam or Eve).