Is it really the case?
Human("Socrates"). Animal("Turtle"). Mortal(x) :- Human(x). Mortal(x) :- Animal(x).
Is it really valid according to Datalog semantics?
No, you and sdbrady who commented above are correct; the :- only means "if". I have edited accordingly and apologise for the misunderstanding!
Is it really the case?
Suppose :- means iff. Turtle is Mortal (lines 2+4, implication to the left). Because Turtle is Mortal, it must be a Human (line 3, implication to the right).Is it really valid according to Datalog semantics?