Dadas duas funções recursivas primitivas, é decidível se elas são ou não a mesma função? Por exemplo, vamos considerar os algoritmos de classificação A e B, que são recursivos primitivos. Embora existam muitos algoritmos para classificação, todos descrevem a mesma relação. Dadas duas implementações recursivas primitivas de A e B, elas podem representar a mesma função? Observe que esta pergunta não é sobre recursão irrestrita e, como tal, não é limitada pelas propriedades das máquinas de Turing.
Sei que, se você tem duas funções que são interrompidas e possui um domínio finito, pode ser comprovada a mesma função, porque você pode simplesmente tentar todas as entradas possíveis e comparar a saída de cada função. Minha confusão é quando trabalho com coisas que trabalham dizem números naturais porque eles não são finitos.
Se isso não for decidível para as funções recursivas primitivas, é possível para classes mais fracas, como as funções recursivas elementares. Eu também sei que isso é possível para coisas mais fracas, como máquinas de estados finitos e autômatos determinísticos de empilhamento. Obrigado.
Respostas:
É sabido que a equivalência é indecidível mesmo para os CFGs resp. PDAs (veja até a Wikipedia ). Isso fornece uma prova de que a mesma propriedade é indecidível para cada modelo de qualquer superconjunto de CFL (por uma simples redução de caso especial ).
Como resolver o problema da palavra para qualquer CFL é claramente recursivo primitivo (em virtude do seu algoritmo de análise favorito), isso inclui o conjunto de funções / algoritmos recursivos primitivos.
fonte
Não é decidível, pela prova informal relativamente direta:
Dada uma máquina de Turing arbitrária , é possível definir a seguinte função :M fM
É um fato fundamental da recursão primitiva que é, de fato, recursiva primitiva ("simula" para etapas).fM M n
Agora a instrução
é equivalente a
Não é muito difícil mostrar que decidir equivalência de funções recursivas primitivas é de fato em , ou seja, exatamente tão difícil quanto determinar a não terminação de máquinas de Turing ou decidir sentenças aritméticas com um único quantificador universal não limitado (e possivelmente delimitado e ).Π01 ∀ ∃
fonte