3. Instância Comum
Um termo t é uma instância comum de dois outros termos t1 e t2
se existirem duas substituições θ1 e θ2 tais que t = θ1t1 = θ2t2
3/16
4. Termo mais geral
Termo s é mais geral que um termo t se t é uma instância de s,
mas s não é instância de t.
4/16
5. Variante alfabética
Um termo s é uma variante alfabética de um termo t se s é
instância de t e t é instância de s.
Ex. membro(X,árvore(E,X,D)) e membro(Y,árvore(E,Y,Z)) são
variantes alfabéticas.
5/16
6. Unificador
Um unificador de dois termos é uma substituição que torna os dois
termos idênticos. Unificador mais geral. UMG ou GMU é o
unificador cuja instância associada é a mais geral.
Ex.Unificando Conhece(John,X) e Conhece(Y,Z), teremos
θ = {Y /John, X/Z} ou θ = {Y /John, X/John, Z/John}
O primeiro unificador é mais geral que o segundo.
6/16
7. Busca e Unificação
Parte central do trabalho do interpretador prolog lida com busca e
unificação.
7/16
8. Universo de Herbrand
Dado um programa P, o universo de Herbrand U(P) é o conjunto
de todos os termos ground que podem ser formados a partir das
constantes e dos sı́mbolos de funções que aparecem em P.
Exemplos
1. Para o programa da famı́lia bı́blica o U(P) seria { terá,
abraão, isaque, jacó }.
2. Para o programa dos números naturais o U(P) seria { 0, s(0),
s(s(0),... }.
8/16
9. Base de Herbrand
Todo o conjunto de metas ”ground”que podem ser formadas com
os predicados de um programa a partir do Universo de Herbrand é
chamada de Base de Herbrand.
Exemplo.
{ pai(terá,isaque), pai(terá,terá), pai(terá,abraão),
pai(terá,jacó),..., ancestral(terá,isaque), ancestral(terá,terá),
ancestral(terá,abraão), ancestral(terá,jacó)... }
OBS: Se o universo for infinito a base também será.
9/16
10. Interpretação
Uma interpretação(I) de um programa lógico é um subconjunto da
Base de Herbrand. A interpretação atribui verdade ou falsidade a
cada elemento da base. Uma meta na Base de Herbrand é verdade
com relação a uma interpretação se ela é membro da mesma.
10/16
11. Modelo
Uma interpretação (I) é um modelo para um programa lógico se
para cada instância ”ground”de uma cláusula do programa
(A ← B1, ..., Bn), A está em I se (B1, ..., Bn) está em I.
11/16
12. Modelo Mı́nimo
O conjunto intersecção de todos os modelos de um programa é
chamado de modelo mı́nimo M(P). O modelo mı́nimo é o
significado declarativo de de um programa lógico.
12/16
14. Domı́nio de Conclusão
Um domı́nio de conclusão de um programa é um domı́nio (D) onde
toda computação sobre toda a meta em D termina ou conclui.
14/16
16. Outras Definições usadas em estudos teóricos da
Programação Lógica
Completeza de Tipos e Listas, Complexidade de Comprimento,
Complexidade de Tamanho de Meta, Complexidade de
Profundidade, etc.
16/16