In Prolog we can write very simple programs like this:
mammal(dog).
mammal(cat).
animal(X) :- mammal(X).
The last line uses the symbol :-
which informally lets us read the final fact as: if X is a mammal then it is also an animal.
I am beginning to learn Prolog and trying to establish which of the following is meant by the symbol :-
- Implies (⇒)
- Entails (⊨)
- Provable (⊢)
In addition, I am not clear on the difference between these three. I am trying to read threads like this one, but the discussion is at a level above my capability, https://math.stackexchange.com/questions/286077/implies-rightarrow-vs-entails-models-vs-provable-vdash.
My thinking:
- Prolog works by pattern-matching symbols (unification and search) and so we might be tempted to say the symbol
:-
means 'syntactic entailment'. However this would only be true of queries that are proven to be true as a result of that syntactic process. - The symbol
:-
is used to create a database of facts, and therefore is semantic in nature. That means it could be one of Implies (⇒) or Entails (⊨) but I don't know which.
|
before some lines? If it is separate sections then why not---
– Cubbyhole