3
votes

":-" serves as an infix operator in the Prolog logic programming language that, in the following context, roughly means:

H :- B1, B2, ... BN  

H is provable if bodies B1 through BN are all provable.

Somewhat remarkably, in all my time studying Prolog, I've neglected to assign a name to this symbol. Does anybody know what the agreed upon name for :- is?

2
It is a right-to-left "arrow". Note that in the early 1970s it was very common to simulate arrows with the :. Also Pascal's assignment operator := was also mean to be an arrow. - false

2 Answers

4
votes

The :- sign represents an implication arrow. If you write your example with logical symbols it reads:

H ← B1 ∧ B2 ∧ ... ∧ BN

So you can also say: "H is implied by B1 and B2 and ... and BN" or "The body of the rule implies its head." It is also correct to call the operator itself "implication arrow" or just "implication".

2
votes

I'm not sure how agreed upon it is, but here's a reference to naming it "neck":

http://www.cse.unsw.edu.au/~billw/prologdict.html#neck