SlideShare uma empresa Scribd logo
Paradigmas de Programação
Ronaldo F. Ramos
Instituto Federal do Ceará
15 de outubro de 2023
PARTE 2 - PARADIGMA DECLARATIVO
PROLOG
PROGRAMMING IN LOGICS
Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 2 / 48
Interpretadores Disponíveis
SWI - PROLOG
https://www.swi-prolog.org/
SWISH
https://swish.swi-prolog.org/
Gnu PROLOG
http://www.gprolog.org/
Em Python
https://pypi.org/project/pyswip/0.2.2/
Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 3 / 48
Roteiro
Conceitos Iniciais
Definição de Programa, Computação, Termos, Átomos, Fatos, Regras e Queries
Definição de Metas, Meaning, Procedures, etc
Exemplos iniciais
Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 4 / 48
Programa
Conjunto de Axiomas
(Programação Axiomática)
Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 5 / 48
Computação
Prova construtiva de uma meta a partir de um programa.
Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 6 / 48
Termos
Blocos de construção para a representação de dados. Podem ser variáveis, inteiros, números
reais, átomos e listas.
Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 7 / 48
Átomos
Alfanumérico: banana, c3, banana_split
Cadeias: ’Banana-split é para a sobremesa?’
Simbólicos: #, &, =
Especiais: $, !, ; , [, ],
Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 8 / 48
Fatos
Forma mais simples de comando/declaração é um fato.
1 pai(abraão,isaque).
2 soma (0,1,1).
3 soma (1,1,2).
Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 9 / 48
Uma Família Bíblica em Fatos 1/2
1 pai(terá,abraão).
2 pai(terá,naor).
3 pai(terá,arão).
4 pai(abraão,isaque).
5 pai(arão,ló).
6 pai(arão,milca).
7 pai(arão,iscá).
8 homem(terá).
9 homem(abraão).
10 homem(naor).
Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 10 / 48
Uma Família Bíblica em Fatos 2/2
1 homem(arão).
2 homem(isaque).
3 homem(ló).
4 mulher(sara).
5 mulher(milca).
6 mulher(iscá).
7 mãe(sara,isaque).
Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 11 / 48
Predicados
Um predicado é um nome dado a uma relação entre termos. Predicados definidos pelo usuário
e próprios da linguagem. O número de argumentos de um predicado é a sua Aridade.
Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 12 / 48
Queries (Perguntas)
Uma pergunta é uma forma de extrair informação de programas lógicos. É um predicado
interrogativo. Uma pergunta pode conter uma ou mais metas.
Ex.
1 ?-pai(abraão,isaque).
2 ?-soma (0,1,1).
3 ?-soma (1,1,2).
Uma pergunta é consequência lógica de um fato idêntico.
Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 13 / 48
Variáveis
Uma variável é uma representação de um dado que pode mudar ao longo do tempo. Não
representa uma posição de memória, mas um conceito abstrato.
Ex. X, _tape_number, Age
Sempre começam com letras maiúsculas ou caractere de sublinha (underscore).
Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 14 / 48
Substituição
Conjunto finito (Possivelmente vazio) de pares na forma Xi = tj onde Xi é uma variável e ti é
um termo e Xi ̸= Xj ∀i ̸= j e Xi não ocorre em tj ∀i, j.
Ex. {X = isaque, Y = abraao}
O resultado de aplicação de uma substituição θ a um termo A é denotado por Aθ. Seja o
termo A = pai(abraao, X) e a substituição θ = {X = isaque} então Aθ = pai(abraao, isaque)
Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 15 / 48
Instância
A é instância de B se existe uma substituição tal que A = Bθ
Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 16 / 48
Perguntas Existenciais
Toda pergunta com variáveis se transforma em uma pergunta existencial.
Ex. pai(abraao, X) significa : "Existe alguém de quem abraão é pai?"
Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 17 / 48
Regras
Expressões na forma de horn invertida.
< Consequente >: − < antecedente1, .., antecedenten > equivale a dizer Consequente se
antecedente1 e atencedente2 e... etc ou ainda para satisfazer o Consequente faça o
antecedente1, ... etc
Ex.
1 filho(X,Y) :- pai(Y,X), homem(X).
2 filha(X,Y) :- pai(Y,X), mulher(X).
Observe que a vírgula substitui a conjunção ∧
Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 18 / 48
Cláusulas
Fatos ou regras são cláusulas. Finalizadas por um ponto.
Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 19 / 48
Fatos Universais
Todos os fatos com variáveis são universalmente quantificados.
Todos gostam de caju.
1 gosta(X,caju).
Qualquer número multiplicado por zero resulta zero.
1 vezes (0,X,0).
Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 20 / 48
Instância Comum
C é uma instância comum de A e B se é uma instância de A e uma instância de B, ou seja,
existem substituições θ1 e θ2 tais que C = Aθ1 = Bθ2
Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 21 / 48
Perguntas Conjuntivas
Conjunção de metas colocadas como uma pergunta. As variáveis com mesmo nome criam
relação de dependência.
Ex.
Abraão é pai de alguém que por sua vez é pai de outra pessoa?
1 pai(abraao,X),pai(X,Y).
Uma pergunta conjuntiva é consequência lógica de um programa(P) se todas as metas na
conjunção são consequências de P e as variáveis compartilhadas são instanciadas com os
mesmos valores nas diferentes metas.
Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 22 / 48
Programa
Um programa é um conjunto finito de regras.
Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 23 / 48
Meta Quantificada Existencialmente
Uma meta quantificada existencialmente (G) é uma consequência lógica de um programa (P)
se existe uma instância ground A ← B1, B2, ..., Bnn > 0 tal que B1, B2, ..., Bn sejam
consequência lógica de P e A seja uma instância de G.
Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 24 / 48
Procedimento - Procedure
Um conjunto de regras com o mesmo predicado na cabeça.
1 avo(X,Y) :- pai(X,Z), pai(Z,Y).
2 avo(X,Y) :- pai(X,Z), mae(Z,Y).
3 avoh(X,Y) :- mae(X,Z), pai(Z,Y).
4 avoh(X,Y) :- mae(X,Z), mae(Z,Y).
Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 25 / 48
Redução
A redução de uma meta (G) por um programa (P) é a substituição de G pelo corpo de uma
instância de uma cláusula em P cuja cabeça é idêntica a G. Trata-se de um passo
computacional básico em programação lógica.
Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 26 / 48
Redução
A redução de uma meta (G) por um programa (P) é a substituição de G pelo corpo de uma
instância de uma cláusula em P cuja cabeça é idêntica a G. Trata-se de um passo
computacional básico em programação lógica.
Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 27 / 48
Meaning - Significado
O significado de um programa lógico é o conjunto de metas ground dedutíveis dele. Dizemos
que um programa é correto com relação a um significado desejado (M) se M(P) é subconjunto
de M
Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 28 / 48
Comandos Iniciais Úteis do Interpretador
assert(<predicado ou regra>). - Adiciona um fato ou regra a base de conhecimento
halt. - Sai do interpretador
consult(<endereço do arquivo>). ou [<endereço do arquivo>] - Carrega programa
(base de conhecimento) para a memória.
trace. - Liga o modo de rastrabilidade para debug.
notrace. - Desliga o trace.
Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 29 / 48
Programa 001 - Familia Bíblica
Use o interpretador ou o swish para carregar os predicados abaixo.
1 % base de dados biblicos
2 masculino(tera).
3 masculino(abraao).
4 masculino(naor).
5 masculino(haran).
6 masculino(isaque).
7 masculino(lo).
8 feminino(sara).
9 feminino(milca).
10 feminino(iscah).
11 ...
Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 30 / 48
Programa 001 - Familia Bíblica
Use o interpretador ou o swish para carregar os predicados abaixo.
1 pai(tera,abraao).
2 pai(tera,naor).
3 pai(tera,haran).
4 pai(abraao,isaque).
5 pai(haran,lo).
6 pai(haran,milca).
7 pai(haran,iscah).
8 mae(sara,isaque).
Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 31 / 48
Metas Existenciais
Vamos testar as metas:
1 ? :- pai(tera,naor).
2 ? :- pai(tera,jose).
3 ? :- pai(X,lo).
4 ? :- pai(X,Y).
5 ? :- masculino(Alguem).
6 ? :- feminino(Mulher).
Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 32 / 48
Acrescentando Regras
Vamos acrescentar regras a estes predicados
Um avô é um pai de um pai ou pai de uma mãe.
(Desconsiderando o sexo do neto por enquanto)
1 avo(Avo,Neto) :- pai(Avo,Filho),pai(Filho,Neto).
2 avo(Avo,Neto) :- pai(Avo,Filha),mae(Filha,Neto).
Agora podemos fazer novas perguntas:
1 avo(tera,X).
2 avo(X,Y).
Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 33 / 48
Definindo Irmão
Irmão são filhos do mesmo pai ou da mesma mãe.
1 irmao(X,Y) :- pai(Z,X),pai(Z,Y).
2 irmao(X,Y) :- mae(Z,X),mae(Z,Y).
Há algo errado com a definição acima? Alguém é irmão de si mesmo? Experimente.
Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 34 / 48
Definindo Irmão - Correção
Ninguém é irmão de si mesmo.
1 irmao(X,Y) :- pai(Z,X),pai(Z,Y), X = Y.
2 irmao(X,Y) :- mae(Z,X),mae(Z,Y), X = Y.
Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 35 / 48
Definindo Homem e Mulher
Podemos usar homem e mulher como sinônimos de masculino e feminino ou substituí-los
1 homem(H) :- masculino(H).
2 mulher(M) :- feminino(M).
Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 36 / 48
Definindo Filho e Filha
Podemos usar homem e mulher como sinônimos de masculino e feminino ou substituí-los
1 filho(X,Y) :- pai(Y,X),homem(X).
2 filho(X,Y) :- mae(Y,X),homem(X).
3 filha(X,Y) :- pai(Y,X),mulher(X).
4 filha(X,Y) :- mae(Y,X),mulher(X).
Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 37 / 48
Definindo Progenitor (sem sexo)
Podemos usar homem e mulher como sinônimos de masculino e feminino ou substituí-los
1 progenitor(X,Y) :- pai(X,Y).
2 progenitor(X,Y) :- mae(X,Y).
Agora podemos definir irmão em função de progenitor. Experimente.
Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 38 / 48
Exercício
Agora defina os seguintes predicados: tio, tia, avô, avó, bisavô, bisavó, trisavô, trisavó,
tetraavô, tetraavó, primo, familiar (faz parte da família), tio avô, tia avó, primo em segundo
grau, primo em terceiro grau, ancestral e descendente.
Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 39 / 48
Pausa
Tente
Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 40 / 48
Regras Recursivas
Definir uma coisa em termos dela própria (kkkk). Vejamos a definição de ancestral.
Observemos as relações recursivas.
avô(Ancestral,Descendente) :- pai1(Ancestral, Pessoa), pai(Pessoa, Descendente)
bisavô(Ancestral,Descendente) :- pai(Ancestral, Pessoa), avô(Pessoa, Descendente)
trisavô(Ancestral,Descendente) :- pai(Ancestral, Pessoa), bisavô(Pessoa, Descendente)
Isto nos leva ao padrão:
ancestral(Ancestral,Descendente) :-pai(Ancestral,Pessoa),ancestral(Pessoa,Descendente)
Não leva a um loop infinito??
1
Vamos abstrair das mães por enquanto
Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 41 / 48
Caso Base
Em algum momento a recursão deve ser obrigada a parar.
ancestral(Ancestral, Descendente) :- pai(Ancestral,Descendente).
Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 42 / 48
Programa Ancestral
% Casos Base
ancestral(Ancestral,Descendente) :- pai(Ancestral,Descendente).
ancestral(Ancestral,Descendente) :- mãe(Ancestral,Descendente).
% Definição
ancestral(Ancestral,Descendente) :- pai(Ancestral,Pessoa), ancestral(Pessoa,Descendente).
ancestral(Ancestral,Descendente) :- mãe(Ancestral,Pessoa), ancestral(Pessoa,Descendente).
Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 43 / 48
Fechamento Transitivo
É dito que a relação ancestral é um fechamento transitivo da relação de parentesco e
portanto facilmente realizada através de uma regra recursiva.
Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 44 / 48
Recursão Linear
Um programa é recursivo linear se possui apenas uma meta recursiva no corpo da cláusula.
Ex de definição de ancestral não linear:
ancestral(Ancestral,Descendente) :- ancestral(Ancestral,Pessoa),
ancestral(Pessoa,Descendente).
Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 45 / 48
Grafo Direcionado Simples
Vejamos um outro exemplo de fecho transitivo
Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 46 / 48
Descrevendo o grafo
% fatos
eixo(a,b). eixo(a,c). eixo(b,d).
eixo(c,d). eixo(d,e). eixo(f,g).
% caso base
conectado(nó,nó).
% regra recursiva
conectado(nó1,nó2) :- eixo(nó1,Link), conectado(Link,nó2).
Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 47 / 48
CONTINUA
Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 48 / 48

Mais conteúdo relacionado

Mais de ronaldo ramos

Mais de ronaldo ramos (20)

02_lisp.pdf
02_lisp.pdf02_lisp.pdf
02_lisp.pdf
 
01_lisp.pdf
01_lisp.pdf01_lisp.pdf
01_lisp.pdf
 
javascript_funcional.pdf
javascript_funcional.pdfjavascript_funcional.pdf
javascript_funcional.pdf
 
python_funcional.pdf
python_funcional.pdfpython_funcional.pdf
python_funcional.pdf
 
paradigmas_de_programacao_2_X.pdf
paradigmas_de_programacao_2_X.pdfparadigmas_de_programacao_2_X.pdf
paradigmas_de_programacao_2_X.pdf
 
paradigmas_de_programacao_1_X.pdf
paradigmas_de_programacao_1_X.pdfparadigmas_de_programacao_1_X.pdf
paradigmas_de_programacao_1_X.pdf
 
paradigmas_de_programacao.pdf
paradigmas_de_programacao.pdfparadigmas_de_programacao.pdf
paradigmas_de_programacao.pdf
 
python_funcional.pdf
python_funcional.pdfpython_funcional.pdf
python_funcional.pdf
 
40-aula40.pdf
40-aula40.pdf40-aula40.pdf
40-aula40.pdf
 
43-aula43.pdf
43-aula43.pdf43-aula43.pdf
43-aula43.pdf
 
48-aula48-modelosTemporais.pdf
48-aula48-modelosTemporais.pdf48-aula48-modelosTemporais.pdf
48-aula48-modelosTemporais.pdf
 
47-aula47-fuzzy-aplicacao.pdf
47-aula47-fuzzy-aplicacao.pdf47-aula47-fuzzy-aplicacao.pdf
47-aula47-fuzzy-aplicacao.pdf
 
46-aula46-fuzzy.pdf
46-aula46-fuzzy.pdf46-aula46-fuzzy.pdf
46-aula46-fuzzy.pdf
 
42-aula42.pdf
42-aula42.pdf42-aula42.pdf
42-aula42.pdf
 
39-aula39.pdf
39-aula39.pdf39-aula39.pdf
39-aula39.pdf
 
38-aula38.pdf
38-aula38.pdf38-aula38.pdf
38-aula38.pdf
 
36-aula36.pdf
36-aula36.pdf36-aula36.pdf
36-aula36.pdf
 
35-aula35.pdf
35-aula35.pdf35-aula35.pdf
35-aula35.pdf
 
34-aula34.pdf
34-aula34.pdf34-aula34.pdf
34-aula34.pdf
 
30-aula30.pdf
30-aula30.pdf30-aula30.pdf
30-aula30.pdf
 

Último

História do Brasil e Geral - Cláudio Vicentino
História do Brasil e Geral - Cláudio VicentinoHistória do Brasil e Geral - Cláudio Vicentino
História do Brasil e Geral - Cláudio VicentinoThayaneLopes10
 
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptx
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptxSlides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptx
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptxLuizHenriquedeAlmeid6
 
Correção do 1º Simulado Enem 2024 - Mês de Abril.pdf
Correção do 1º Simulado Enem 2024 - Mês de Abril.pdfCorreção do 1º Simulado Enem 2024 - Mês de Abril.pdf
Correção do 1º Simulado Enem 2024 - Mês de Abril.pdfEdilson431302
 
PERFIL M DO LUBANGO e da Administraçao_041137.pptx
PERFIL M DO LUBANGO e da Administraçao_041137.pptxPERFIL M DO LUBANGO e da Administraçao_041137.pptx
PERFIL M DO LUBANGO e da Administraçao_041137.pptxtchingando6
 
Sequência Didática - Cordel para Ensino Fundamental I
Sequência Didática - Cordel para Ensino Fundamental ISequência Didática - Cordel para Ensino Fundamental I
Sequência Didática - Cordel para Ensino Fundamental ILetras Mágicas
 
Obra - Curso de Direito Tributário - Doutrina Direito
Obra - Curso de Direito Tributário - Doutrina DireitoObra - Curso de Direito Tributário - Doutrina Direito
Obra - Curso de Direito Tributário - Doutrina Direitorarakey779
 
Exercícios de Queda Livre e Lançamento Vertical.pptx
Exercícios de Queda Livre e Lançamento Vertical.pptxExercícios de Queda Livre e Lançamento Vertical.pptx
Exercícios de Queda Livre e Lançamento Vertical.pptxJonathasAureliano1
 
Desastres ambientais e vulnerabilidadess
Desastres ambientais e vulnerabilidadessDesastres ambientais e vulnerabilidadess
Desastres ambientais e vulnerabilidadessRodrigoGonzlez461291
 
Apresentação Formação em Prevenção ao Assédio
Apresentação Formação em Prevenção ao AssédioApresentação Formação em Prevenção ao Assédio
Apresentação Formação em Prevenção ao Assédioifbauab
 
Slides Lição 9, Central Gospel, As Bodas Do Cordeiro, 1Tr24.pptx
Slides Lição 9, Central Gospel, As Bodas Do Cordeiro, 1Tr24.pptxSlides Lição 9, Central Gospel, As Bodas Do Cordeiro, 1Tr24.pptx
Slides Lição 9, Central Gospel, As Bodas Do Cordeiro, 1Tr24.pptxLuizHenriquedeAlmeid6
 
Junho Violeta - Sugestão de Ações na Igreja
Junho Violeta - Sugestão de Ações na IgrejaJunho Violeta - Sugestão de Ações na Igreja
Junho Violeta - Sugestão de Ações na IgrejaComando Resgatai
 
Apresentação de vocabulário fundamental em contexto de atendimento
Apresentação de vocabulário fundamental em contexto de atendimentoApresentação de vocabulário fundamental em contexto de atendimento
Apresentação de vocabulário fundamental em contexto de atendimentoPedroFerreira53928
 
Projeto aLeR+ o Ambiente - Os animais são nossos amigos.pdf
Projeto aLeR+ o Ambiente - Os animais são nossos amigos.pdfProjeto aLeR+ o Ambiente - Os animais são nossos amigos.pdf
Projeto aLeR+ o Ambiente - Os animais são nossos amigos.pdfBibliotecas Infante D. Henrique
 
Apresentação sobre as etapas do desenvolvimento infantil
Apresentação sobre as etapas do desenvolvimento infantilApresentação sobre as etapas do desenvolvimento infantil
Apresentação sobre as etapas do desenvolvimento infantilMariaHelena293800
 
DIFERENÇA DO INGLES BRITANICO E AMERICANO.pptx
DIFERENÇA DO INGLES BRITANICO E AMERICANO.pptxDIFERENÇA DO INGLES BRITANICO E AMERICANO.pptx
DIFERENÇA DO INGLES BRITANICO E AMERICANO.pptxcleanelima11
 
Fotossíntese para o Ensino médio primeiros anos
Fotossíntese para o Ensino médio primeiros anosFotossíntese para o Ensino médio primeiros anos
Fotossíntese para o Ensino médio primeiros anosbiancaborges0906
 
manual-de-introduc3a7c3a3o-ao-direito-25-10-2011.pdf
manual-de-introduc3a7c3a3o-ao-direito-25-10-2011.pdfmanual-de-introduc3a7c3a3o-ao-direito-25-10-2011.pdf
manual-de-introduc3a7c3a3o-ao-direito-25-10-2011.pdfrarakey779
 
CADERNO DO FUTURO 6- Apostila de Língua Portugesa
CADERNO DO FUTURO 6- Apostila de Língua PortugesaCADERNO DO FUTURO 6- Apostila de Língua Portugesa
CADERNO DO FUTURO 6- Apostila de Língua PortugesaSolangeWaltre
 
O autismo me ensinou - Letícia Butterfield.pdf
O autismo me ensinou - Letícia Butterfield.pdfO autismo me ensinou - Letícia Butterfield.pdf
O autismo me ensinou - Letícia Butterfield.pdfLetícia Butterfield
 
Curso de Direito do Trabalho - Maurício Godinho Delgado - 2019.pdf
Curso de Direito do Trabalho - Maurício Godinho Delgado - 2019.pdfCurso de Direito do Trabalho - Maurício Godinho Delgado - 2019.pdf
Curso de Direito do Trabalho - Maurício Godinho Delgado - 2019.pdfLeandroTelesRocha2
 

Último (20)

História do Brasil e Geral - Cláudio Vicentino
História do Brasil e Geral - Cláudio VicentinoHistória do Brasil e Geral - Cláudio Vicentino
História do Brasil e Geral - Cláudio Vicentino
 
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptx
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptxSlides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptx
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptx
 
Correção do 1º Simulado Enem 2024 - Mês de Abril.pdf
Correção do 1º Simulado Enem 2024 - Mês de Abril.pdfCorreção do 1º Simulado Enem 2024 - Mês de Abril.pdf
Correção do 1º Simulado Enem 2024 - Mês de Abril.pdf
 
PERFIL M DO LUBANGO e da Administraçao_041137.pptx
PERFIL M DO LUBANGO e da Administraçao_041137.pptxPERFIL M DO LUBANGO e da Administraçao_041137.pptx
PERFIL M DO LUBANGO e da Administraçao_041137.pptx
 
Sequência Didática - Cordel para Ensino Fundamental I
Sequência Didática - Cordel para Ensino Fundamental ISequência Didática - Cordel para Ensino Fundamental I
Sequência Didática - Cordel para Ensino Fundamental I
 
Obra - Curso de Direito Tributário - Doutrina Direito
Obra - Curso de Direito Tributário - Doutrina DireitoObra - Curso de Direito Tributário - Doutrina Direito
Obra - Curso de Direito Tributário - Doutrina Direito
 
Exercícios de Queda Livre e Lançamento Vertical.pptx
Exercícios de Queda Livre e Lançamento Vertical.pptxExercícios de Queda Livre e Lançamento Vertical.pptx
Exercícios de Queda Livre e Lançamento Vertical.pptx
 
Desastres ambientais e vulnerabilidadess
Desastres ambientais e vulnerabilidadessDesastres ambientais e vulnerabilidadess
Desastres ambientais e vulnerabilidadess
 
Apresentação Formação em Prevenção ao Assédio
Apresentação Formação em Prevenção ao AssédioApresentação Formação em Prevenção ao Assédio
Apresentação Formação em Prevenção ao Assédio
 
Slides Lição 9, Central Gospel, As Bodas Do Cordeiro, 1Tr24.pptx
Slides Lição 9, Central Gospel, As Bodas Do Cordeiro, 1Tr24.pptxSlides Lição 9, Central Gospel, As Bodas Do Cordeiro, 1Tr24.pptx
Slides Lição 9, Central Gospel, As Bodas Do Cordeiro, 1Tr24.pptx
 
Junho Violeta - Sugestão de Ações na Igreja
Junho Violeta - Sugestão de Ações na IgrejaJunho Violeta - Sugestão de Ações na Igreja
Junho Violeta - Sugestão de Ações na Igreja
 
Apresentação de vocabulário fundamental em contexto de atendimento
Apresentação de vocabulário fundamental em contexto de atendimentoApresentação de vocabulário fundamental em contexto de atendimento
Apresentação de vocabulário fundamental em contexto de atendimento
 
Projeto aLeR+ o Ambiente - Os animais são nossos amigos.pdf
Projeto aLeR+ o Ambiente - Os animais são nossos amigos.pdfProjeto aLeR+ o Ambiente - Os animais são nossos amigos.pdf
Projeto aLeR+ o Ambiente - Os animais são nossos amigos.pdf
 
Apresentação sobre as etapas do desenvolvimento infantil
Apresentação sobre as etapas do desenvolvimento infantilApresentação sobre as etapas do desenvolvimento infantil
Apresentação sobre as etapas do desenvolvimento infantil
 
DIFERENÇA DO INGLES BRITANICO E AMERICANO.pptx
DIFERENÇA DO INGLES BRITANICO E AMERICANO.pptxDIFERENÇA DO INGLES BRITANICO E AMERICANO.pptx
DIFERENÇA DO INGLES BRITANICO E AMERICANO.pptx
 
Fotossíntese para o Ensino médio primeiros anos
Fotossíntese para o Ensino médio primeiros anosFotossíntese para o Ensino médio primeiros anos
Fotossíntese para o Ensino médio primeiros anos
 
manual-de-introduc3a7c3a3o-ao-direito-25-10-2011.pdf
manual-de-introduc3a7c3a3o-ao-direito-25-10-2011.pdfmanual-de-introduc3a7c3a3o-ao-direito-25-10-2011.pdf
manual-de-introduc3a7c3a3o-ao-direito-25-10-2011.pdf
 
CADERNO DO FUTURO 6- Apostila de Língua Portugesa
CADERNO DO FUTURO 6- Apostila de Língua PortugesaCADERNO DO FUTURO 6- Apostila de Língua Portugesa
CADERNO DO FUTURO 6- Apostila de Língua Portugesa
 
O autismo me ensinou - Letícia Butterfield.pdf
O autismo me ensinou - Letícia Butterfield.pdfO autismo me ensinou - Letícia Butterfield.pdf
O autismo me ensinou - Letícia Butterfield.pdf
 
Curso de Direito do Trabalho - Maurício Godinho Delgado - 2019.pdf
Curso de Direito do Trabalho - Maurício Godinho Delgado - 2019.pdfCurso de Direito do Trabalho - Maurício Godinho Delgado - 2019.pdf
Curso de Direito do Trabalho - Maurício Godinho Delgado - 2019.pdf
 

_001_introducao.pdf

  • 1. Paradigmas de Programação Ronaldo F. Ramos Instituto Federal do Ceará 15 de outubro de 2023
  • 2. PARTE 2 - PARADIGMA DECLARATIVO PROLOG PROGRAMMING IN LOGICS Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 2 / 48
  • 3. Interpretadores Disponíveis SWI - PROLOG https://www.swi-prolog.org/ SWISH https://swish.swi-prolog.org/ Gnu PROLOG http://www.gprolog.org/ Em Python https://pypi.org/project/pyswip/0.2.2/ Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 3 / 48
  • 4. Roteiro Conceitos Iniciais Definição de Programa, Computação, Termos, Átomos, Fatos, Regras e Queries Definição de Metas, Meaning, Procedures, etc Exemplos iniciais Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 4 / 48
  • 5. Programa Conjunto de Axiomas (Programação Axiomática) Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 5 / 48
  • 6. Computação Prova construtiva de uma meta a partir de um programa. Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 6 / 48
  • 7. Termos Blocos de construção para a representação de dados. Podem ser variáveis, inteiros, números reais, átomos e listas. Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 7 / 48
  • 8. Átomos Alfanumérico: banana, c3, banana_split Cadeias: ’Banana-split é para a sobremesa?’ Simbólicos: #, &, = Especiais: $, !, ; , [, ], Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 8 / 48
  • 9. Fatos Forma mais simples de comando/declaração é um fato. 1 pai(abraão,isaque). 2 soma (0,1,1). 3 soma (1,1,2). Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 9 / 48
  • 10. Uma Família Bíblica em Fatos 1/2 1 pai(terá,abraão). 2 pai(terá,naor). 3 pai(terá,arão). 4 pai(abraão,isaque). 5 pai(arão,ló). 6 pai(arão,milca). 7 pai(arão,iscá). 8 homem(terá). 9 homem(abraão). 10 homem(naor). Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 10 / 48
  • 11. Uma Família Bíblica em Fatos 2/2 1 homem(arão). 2 homem(isaque). 3 homem(ló). 4 mulher(sara). 5 mulher(milca). 6 mulher(iscá). 7 mãe(sara,isaque). Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 11 / 48
  • 12. Predicados Um predicado é um nome dado a uma relação entre termos. Predicados definidos pelo usuário e próprios da linguagem. O número de argumentos de um predicado é a sua Aridade. Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 12 / 48
  • 13. Queries (Perguntas) Uma pergunta é uma forma de extrair informação de programas lógicos. É um predicado interrogativo. Uma pergunta pode conter uma ou mais metas. Ex. 1 ?-pai(abraão,isaque). 2 ?-soma (0,1,1). 3 ?-soma (1,1,2). Uma pergunta é consequência lógica de um fato idêntico. Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 13 / 48
  • 14. Variáveis Uma variável é uma representação de um dado que pode mudar ao longo do tempo. Não representa uma posição de memória, mas um conceito abstrato. Ex. X, _tape_number, Age Sempre começam com letras maiúsculas ou caractere de sublinha (underscore). Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 14 / 48
  • 15. Substituição Conjunto finito (Possivelmente vazio) de pares na forma Xi = tj onde Xi é uma variável e ti é um termo e Xi ̸= Xj ∀i ̸= j e Xi não ocorre em tj ∀i, j. Ex. {X = isaque, Y = abraao} O resultado de aplicação de uma substituição θ a um termo A é denotado por Aθ. Seja o termo A = pai(abraao, X) e a substituição θ = {X = isaque} então Aθ = pai(abraao, isaque) Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 15 / 48
  • 16. Instância A é instância de B se existe uma substituição tal que A = Bθ Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 16 / 48
  • 17. Perguntas Existenciais Toda pergunta com variáveis se transforma em uma pergunta existencial. Ex. pai(abraao, X) significa : "Existe alguém de quem abraão é pai?" Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 17 / 48
  • 18. Regras Expressões na forma de horn invertida. < Consequente >: − < antecedente1, .., antecedenten > equivale a dizer Consequente se antecedente1 e atencedente2 e... etc ou ainda para satisfazer o Consequente faça o antecedente1, ... etc Ex. 1 filho(X,Y) :- pai(Y,X), homem(X). 2 filha(X,Y) :- pai(Y,X), mulher(X). Observe que a vírgula substitui a conjunção ∧ Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 18 / 48
  • 19. Cláusulas Fatos ou regras são cláusulas. Finalizadas por um ponto. Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 19 / 48
  • 20. Fatos Universais Todos os fatos com variáveis são universalmente quantificados. Todos gostam de caju. 1 gosta(X,caju). Qualquer número multiplicado por zero resulta zero. 1 vezes (0,X,0). Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 20 / 48
  • 21. Instância Comum C é uma instância comum de A e B se é uma instância de A e uma instância de B, ou seja, existem substituições θ1 e θ2 tais que C = Aθ1 = Bθ2 Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 21 / 48
  • 22. Perguntas Conjuntivas Conjunção de metas colocadas como uma pergunta. As variáveis com mesmo nome criam relação de dependência. Ex. Abraão é pai de alguém que por sua vez é pai de outra pessoa? 1 pai(abraao,X),pai(X,Y). Uma pergunta conjuntiva é consequência lógica de um programa(P) se todas as metas na conjunção são consequências de P e as variáveis compartilhadas são instanciadas com os mesmos valores nas diferentes metas. Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 22 / 48
  • 23. Programa Um programa é um conjunto finito de regras. Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 23 / 48
  • 24. Meta Quantificada Existencialmente Uma meta quantificada existencialmente (G) é uma consequência lógica de um programa (P) se existe uma instância ground A ← B1, B2, ..., Bnn > 0 tal que B1, B2, ..., Bn sejam consequência lógica de P e A seja uma instância de G. Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 24 / 48
  • 25. Procedimento - Procedure Um conjunto de regras com o mesmo predicado na cabeça. 1 avo(X,Y) :- pai(X,Z), pai(Z,Y). 2 avo(X,Y) :- pai(X,Z), mae(Z,Y). 3 avoh(X,Y) :- mae(X,Z), pai(Z,Y). 4 avoh(X,Y) :- mae(X,Z), mae(Z,Y). Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 25 / 48
  • 26. Redução A redução de uma meta (G) por um programa (P) é a substituição de G pelo corpo de uma instância de uma cláusula em P cuja cabeça é idêntica a G. Trata-se de um passo computacional básico em programação lógica. Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 26 / 48
  • 27. Redução A redução de uma meta (G) por um programa (P) é a substituição de G pelo corpo de uma instância de uma cláusula em P cuja cabeça é idêntica a G. Trata-se de um passo computacional básico em programação lógica. Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 27 / 48
  • 28. Meaning - Significado O significado de um programa lógico é o conjunto de metas ground dedutíveis dele. Dizemos que um programa é correto com relação a um significado desejado (M) se M(P) é subconjunto de M Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 28 / 48
  • 29. Comandos Iniciais Úteis do Interpretador assert(<predicado ou regra>). - Adiciona um fato ou regra a base de conhecimento halt. - Sai do interpretador consult(<endereço do arquivo>). ou [<endereço do arquivo>] - Carrega programa (base de conhecimento) para a memória. trace. - Liga o modo de rastrabilidade para debug. notrace. - Desliga o trace. Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 29 / 48
  • 30. Programa 001 - Familia Bíblica Use o interpretador ou o swish para carregar os predicados abaixo. 1 % base de dados biblicos 2 masculino(tera). 3 masculino(abraao). 4 masculino(naor). 5 masculino(haran). 6 masculino(isaque). 7 masculino(lo). 8 feminino(sara). 9 feminino(milca). 10 feminino(iscah). 11 ... Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 30 / 48
  • 31. Programa 001 - Familia Bíblica Use o interpretador ou o swish para carregar os predicados abaixo. 1 pai(tera,abraao). 2 pai(tera,naor). 3 pai(tera,haran). 4 pai(abraao,isaque). 5 pai(haran,lo). 6 pai(haran,milca). 7 pai(haran,iscah). 8 mae(sara,isaque). Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 31 / 48
  • 32. Metas Existenciais Vamos testar as metas: 1 ? :- pai(tera,naor). 2 ? :- pai(tera,jose). 3 ? :- pai(X,lo). 4 ? :- pai(X,Y). 5 ? :- masculino(Alguem). 6 ? :- feminino(Mulher). Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 32 / 48
  • 33. Acrescentando Regras Vamos acrescentar regras a estes predicados Um avô é um pai de um pai ou pai de uma mãe. (Desconsiderando o sexo do neto por enquanto) 1 avo(Avo,Neto) :- pai(Avo,Filho),pai(Filho,Neto). 2 avo(Avo,Neto) :- pai(Avo,Filha),mae(Filha,Neto). Agora podemos fazer novas perguntas: 1 avo(tera,X). 2 avo(X,Y). Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 33 / 48
  • 34. Definindo Irmão Irmão são filhos do mesmo pai ou da mesma mãe. 1 irmao(X,Y) :- pai(Z,X),pai(Z,Y). 2 irmao(X,Y) :- mae(Z,X),mae(Z,Y). Há algo errado com a definição acima? Alguém é irmão de si mesmo? Experimente. Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 34 / 48
  • 35. Definindo Irmão - Correção Ninguém é irmão de si mesmo. 1 irmao(X,Y) :- pai(Z,X),pai(Z,Y), X = Y. 2 irmao(X,Y) :- mae(Z,X),mae(Z,Y), X = Y. Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 35 / 48
  • 36. Definindo Homem e Mulher Podemos usar homem e mulher como sinônimos de masculino e feminino ou substituí-los 1 homem(H) :- masculino(H). 2 mulher(M) :- feminino(M). Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 36 / 48
  • 37. Definindo Filho e Filha Podemos usar homem e mulher como sinônimos de masculino e feminino ou substituí-los 1 filho(X,Y) :- pai(Y,X),homem(X). 2 filho(X,Y) :- mae(Y,X),homem(X). 3 filha(X,Y) :- pai(Y,X),mulher(X). 4 filha(X,Y) :- mae(Y,X),mulher(X). Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 37 / 48
  • 38. Definindo Progenitor (sem sexo) Podemos usar homem e mulher como sinônimos de masculino e feminino ou substituí-los 1 progenitor(X,Y) :- pai(X,Y). 2 progenitor(X,Y) :- mae(X,Y). Agora podemos definir irmão em função de progenitor. Experimente. Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 38 / 48
  • 39. Exercício Agora defina os seguintes predicados: tio, tia, avô, avó, bisavô, bisavó, trisavô, trisavó, tetraavô, tetraavó, primo, familiar (faz parte da família), tio avô, tia avó, primo em segundo grau, primo em terceiro grau, ancestral e descendente. Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 39 / 48
  • 40. Pausa Tente Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 40 / 48
  • 41. Regras Recursivas Definir uma coisa em termos dela própria (kkkk). Vejamos a definição de ancestral. Observemos as relações recursivas. avô(Ancestral,Descendente) :- pai1(Ancestral, Pessoa), pai(Pessoa, Descendente) bisavô(Ancestral,Descendente) :- pai(Ancestral, Pessoa), avô(Pessoa, Descendente) trisavô(Ancestral,Descendente) :- pai(Ancestral, Pessoa), bisavô(Pessoa, Descendente) Isto nos leva ao padrão: ancestral(Ancestral,Descendente) :-pai(Ancestral,Pessoa),ancestral(Pessoa,Descendente) Não leva a um loop infinito?? 1 Vamos abstrair das mães por enquanto Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 41 / 48
  • 42. Caso Base Em algum momento a recursão deve ser obrigada a parar. ancestral(Ancestral, Descendente) :- pai(Ancestral,Descendente). Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 42 / 48
  • 43. Programa Ancestral % Casos Base ancestral(Ancestral,Descendente) :- pai(Ancestral,Descendente). ancestral(Ancestral,Descendente) :- mãe(Ancestral,Descendente). % Definição ancestral(Ancestral,Descendente) :- pai(Ancestral,Pessoa), ancestral(Pessoa,Descendente). ancestral(Ancestral,Descendente) :- mãe(Ancestral,Pessoa), ancestral(Pessoa,Descendente). Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 43 / 48
  • 44. Fechamento Transitivo É dito que a relação ancestral é um fechamento transitivo da relação de parentesco e portanto facilmente realizada através de uma regra recursiva. Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 44 / 48
  • 45. Recursão Linear Um programa é recursivo linear se possui apenas uma meta recursiva no corpo da cláusula. Ex de definição de ancestral não linear: ancestral(Ancestral,Descendente) :- ancestral(Ancestral,Pessoa), ancestral(Pessoa,Descendente). Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 45 / 48
  • 46. Grafo Direcionado Simples Vejamos um outro exemplo de fecho transitivo Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 46 / 48
  • 47. Descrevendo o grafo % fatos eixo(a,b). eixo(a,c). eixo(b,d). eixo(c,d). eixo(d,e). eixo(f,g). % caso base conectado(nó,nó). % regra recursiva conectado(nó1,nó2) :- eixo(nó1,Link), conectado(Link,nó2). Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 47 / 48
  • 48. CONTINUA Ronaldo F. Ramos (Instituto Federal do Ceará) Paradigmas de Programação 15 de outubro de 2023 48 / 48