ANCESTRO(X,Y) <- PADRE(X,Y). ANCESTRO(X,Y) <- MADRE(X,Y). ANCESTRO(X,Y) <- PADRE(X,Z), ANCESTRO(Z,Y). ANCESTRO(X,Y) <- MADRE(X,Z), ANCESTRO(Z,Y).
En los capítulos siguientes se presentan dos formas de interpretar el significado de los programas en lógica. Una primera visión proviene de la lógica matemática, y tiene un carácter más denotacional. La segunda introduce los aspectos operacionales que son la base de las implementaciones de programación en lógica. Una fuente de referencia para la escritura de estos capítulos la constituyó el excelente libro de Christopher John Hogger [Hog84].