Como minha pergunta se relaciona diretamente a uma parte do texto de um livro de 2004, Lógica em Ciência da Computação: Modelagem e Raciocínio sobre Sistemas (2ª Edição), de Michael Huth e Mark Ryan , para fornecer contexto para a discussão a seguir, citando parcialmente o livro literalmente:
O problema de decisão da validade na lógica de predicados é indecidível: não existe um programa que, dado qualquer , decida se .
PROVA: Como dissemos antes, pretendemos que a validade é decidível para a lógica de predicados e, assim, resolvemos o problema (insolúvel) de correspondência posterior. Dada uma instância de problema de correspondência : , precisamos ser capazes de construir, dentro de espaço e tempo finitos e uniformemente, para todas as instâncias, alguma fórmula de lógica predicada como mantém se a instância do problema de correspondência acima tiver uma solução.
Como símbolos de função, escolhemos uma constante e dois símbolos de função e cada um dos quais requer um argumento. Pensamos em como a sequência vazia, ou palavra, e e representam simbolicamente a concatenação com 0, respectivamente 1. Portanto, se é uma sequência binária de bits, podemos codificá-la como o termo . Observe que essa codificação soletra essa palavra para trás. Para facilitar a leitura dessas fórmulas, abreviamos termos como por .
Também exigimos um símbolo predicado que espera dois argumentos. O significado pretendido de é que existe alguma sequência de índices tal que é o termo que representa e representa . Assim, constrói uma string usando a mesma sequência de índices que ; somente usa o enquanto usa o .
Nossa frase tem a estrutura grossa onde definimos
.Nossa afirmação é é válida se o problema de correspondência posterior tiver uma solução.
Ao provar PCP ⟹ Validade:
Por outro lado, suponhamos que o problema de pós-correspondência C tenha alguma solução, [...] A maneira como procedemos aqui é interpretando seqüências finitas e binárias no domínio dos valores do modelo . Isso não é diferente da codificação de um intérprete para uma linguagem de programação em outra. A interpretação é feita por uma função interpretada que é definida indutivamente na estrutura de dados de seqüências finitas e binárias:
.[...] Usando [ ] e o fato de que , concluímos que para . [...] desde , sabemos que para todos temos isso para . Usando esses dois fatos, começando com , usamos repetidamente a última observação para obter
(2.9) .
[...] Portanto (2.9) verifica em e, portanto, .
Ao provar que a validade da lógica de predicados é indecidível, de acordo com a abordagem que aprendi na escola, que se baseia na do livro de Huth & Ryan (2ª edição, página 135) , ao construir a redução do problema de PCP para validade, "cadeias binárias finitas" do universo são interpretadas com uma " função de interpretação ", que codifica cadeias binárias em compostos de funções do modelo.
Em seguida, mostra que, usando o fato de que o antecedente de deve ser considerado não trivial, ambas as subfórmulas do antecedente podem ser expressas com a referida " função de interpretação ". A partir daí, conclui-se que a consequência também se mantém, pois também pode ser expressa de uma maneira com a função interpretar que se segue das expressões anteriores com interpretar .
Minha pergunta é: qual é o objetivo dessa " função de interpretação "? Por que não podemos simplesmente usar o anteriormente concebido φ e obter o mesmo resultado? O que obtemos do uso de interpretar para expressar nossos elementos?
E também, e se o nosso universo contiver alguns elementos arbitrários; isto é, e se não forem cadeias binárias? Acabamos de construir algum mapeamento dos dois?