Understanding entailment

I am trying to understand the concept of entailment when used within the context of inductive logic programming. Could somebody explain this to me?

In other words: if A entails B, this means that B is true when A is true. However how can I understand this in practice? For example, assuming the following:

append(c(U, V), W, c(U,X))) :- append(V, W, X) .     (let's call this A)


and

append,(c(U1, c(V1,W1), X1, c(U1, c(V1,Y1)))) :- append(W1, X1, Y1) (let's call this B)


could I say that A entails B? If so, how?

-

If $A$ entails $B$, and $B$ entails $C$, then $A$ entails $C$.

The "Hypothetical" part of the name results from the fact that it is not obvious from the conclusion (i.e., "$A$ entails $C$") that $B$ was involved in deriving it. So in proving that $A$ entails $C$, we may find use for an intermediary, "hypothetical" statement $B$.

So let us see where this Hypothetical Syllogism comes into play in your situation.

From the premise, i.e.:

$\mathsf{append}(\mathsf c(U_1, \mathsf c(V_1, W_1)), X_1, \mathsf c(U_1, \mathsf c(V_1, Y_1)))$

there's only one statement we can infer by using $A$, namely:

$\mathsf{append}(\mathsf c(V_1, W_1), X_1, \mathsf c(V_1, Y_1))$

Now we can apply our given rule $A$ to this expression again, and obtain:

$\mathsf{append}(W_1, X_1, Y_1)$

In conclusion, we have two valid applications of $A$:

• $\mathsf{append}(\mathsf c(U_1, \mathsf c(V_1, W_1)), X_1, \mathsf c(U_1, \mathsf c(V_1, Y_1))) \vdash \mathsf{append}(\mathsf c(V_1, W_1), X_1, \mathsf c(V_1, Y_1))$

• $\mathsf{append}(\mathsf c(V_1, W_1), X_1, \mathsf c(V_1, Y_1)) \vdash \mathsf{append}(W_1, X_1, Y_1)$

Using the Hypothetical syllogism, we can now infer $B$.

-