Ed
há 7 meses
Vamos analisar a consulta `metropole(X)` com base nos fatos e na regra fornecida. A regra `metropole(X) :- maior(X,Y), capital(Y)` significa que X é uma metrópole se existe um Y tal que X é maior que Y e Y é uma capital. Agora, vamos verificar os fatos: 1. `maior(São Paulo, Rio de Janeiro)` - Aqui, São Paulo é maior que Rio de Janeiro. 2. `maior(São Paulo, Juiz de Fora)` - Aqui, São Paulo é maior que Juiz de Fora. 3. `maior(Rio de Janeiro, Curitiba)` - Aqui, Rio de Janeiro é maior que Curitiba. 4. `maior(Rio de Janeiro, Juiz de Fora)` - Aqui, Rio de Janeiro é maior que Juiz de Fora. 5. `maior(Curitiba, Juiz de Fora)` - Aqui, Curitiba é maior que Juiz de Fora. 6. `capital(São Paulo)` - São Paulo é uma capital. 7. `capital(Rio de Janeiro)` - Rio de Janeiro é uma capital. 8. `capital(Curitiba)` - Curitiba é uma capital. Agora, vamos aplicar a regra: - Para `X = São Paulo`: - `maior(São Paulo, Y)` e `capital(Y)`: - Para `Y = Rio de Janeiro`: é verdade, pois Rio de Janeiro é capital. - Para `Y = Juiz de Fora`: não é capital. - Para `X = Rio de Janeiro`: - `maior(Rio de Janeiro, Y)` e `capital(Y)`: - Para `Y = Curitiba`: é verdade, pois Curitiba é capital. - Para `Y = Juiz de Fora`: não é capital. - Para `X = Curitiba`: - Não há nenhum Y que satisfaça a condição. Portanto, as metrópoles que satisfazem a regra são: - São Paulo (maior que Rio de Janeiro, que é capital) - Rio de Janeiro (maior que Curitiba, que é capital) Assim, a resposta correta que o Prolog retornará à consulta `metropole(X)` é: b) São Paulo; Rio de Janeiro; Curitiba.