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?
Respostas:
Vamos começar com o que exatamente você está tentando provar.
Você está lidando com uma assinatura que consiste em uma constante , dois símbolos de função e um predicado binário . Denotamos por o conjunto de todas as instâncias "yes" para o problema de pós-correspondência, ou seja, todas as seqüências de pares ordenados de cadeias binárias , de forma que exista índices para alguns que satisfazem ( significa concatenação).σ e f0,f1 P(s,t) C (s1,t1),...,(sk,tk) i1,...,in n∈N si1⋅...⋅sin=ti1⋅...⋅tin ⋅
Você deseja mostrar que, dada uma instância para o problema de correspondência posterior,c=(s1,t1),...,(sk,tk)
Onde eφ(c)=φ1(c)∧φ2(c)→φ3(c)
No exemplo acima, dada uma sequência binária , indica a composição . Essa é a redução do PCP para a validade na lógica de predicados descrita em "lógica na ciência da computação" por Huth & Ryan.s=s1,...,sl fs fsl∘fsl−1∘...∘fs1
Pensamos em como concatenação com correspondentemente e em como a string vazia. Nesse caso, podemos pensar em como uma representação da string no mundo de . Intuitivamente, força o predicado a reter quando (talvez em alguns outros casos também, mas não nos importamos) (o que significa que são as interpretações de algumas seqüências finitas no mundo de ) e existe uma sequência de índices modo quef0,f1 0,1 e fs(e) s M φ1,φ2 P(v,w) v=fs(e),w=ft(e) v,w s,t M i1...in s=si1⋅...⋅sin e . Se realmente tem esse significado (que é o que acontece se satisfizer ), então .t=ti1⋅...⋅tin P(v,w) M φ1∧φ2 c∈C⟺∃zP(z,z)
Você pergunta sobre a direção da prova, portanto deve lidar com modelos arbitrários que interpretam , onde o mundo pode ter elementos que não têm nada a ver com strings (isso se refere à sua segunda pergunta). É aqui que entra a função de interpretação. Damos uma correspondência entre todas as seqüências finitas e um subconjunto do mundo de , o que é bastante natural, dada a natureza de nossa assinatura. Uma string é mapeada para o elemento , que pode ser uma string / número / tabela ou qualquer coisa que você desejar.⇒ σ M s fs(e)
Agora, quando tivermos a capacidade de pensar em elementos do formato em (o mundo de ) como cadeias finitas, podemos continuar e provar a implicação . Se satisfaz , então, como mencionamos, é válido quando (agora podemos pensar em como cadeias ), e existe uma sequência de índices de tal modo que e . Portanto, se efs(e) AM M ⇒ M φ1,φ2 P(v,w) v=fs(e),w=ft(e) v,w i1...in s=si1⋅...⋅sin t=ti1⋅...⋅tin c∈C i1...in é uma sequência de índices com , então é válido e temos , pois implica .s=si1...sin=ti1...tin=t P(fs(e),ft(e)) M⊨φ3 s=t fs(e)=ft(e)
fonte