Pergunta

GJ Woeginger listas de 116 inválido provas de P vs.NP problema.Scott Aaronson publicado "Oito Sinais de Um Alegado P≠NP Prova Está Errada"para reduzir o hype cada vez que alguém tenta liquidar P vs.NP.Alguns pesquisadores ainda recusar-se a prova de leitura de trabalhos de assentamento "P versus NP" pergunta.

Eu tenho 3 perguntas relacionadas:

  1. Por que as pessoas não utilização de prova de assistentes que podem verificar se uma prova de P vs.NP é a correta?
  2. Como rígido ou o quanto de esforço seria a de estado de P vs.NP em uma prova de assistente em primeiro lugar?
  3. Há, atualmente, qualquer software que seria, pelo menos em princípio, capaz de verificar o P vs.NP prova?
Foi útil?

Solução

Eu discordo com o DW.Eu acho que é possível (embora seja difícil) para um P vs.NP resultado para ser indicado a uma prova assistente, e além disso, eu não confiar em qualquer um suposto provas, a menos que eles foram formalizadas desta forma, a menos que eles vieram muito fontes fidedignas.

Em particular, nenhum dos recursos DW estados de são baseados no tipo de teoria, o que é muito promissor direção para a prova de assistentes.Coq tem sido usado para formalizar a prova do 4-cor teorema entre outros, então é claramente capaz de pesados matemática de elevação.

Para responder suas perguntas específicas:

  1. A principal razão é que o teorema de equipamentos para assar não são amplamente aceitos na comunidade matemática.Aprender exige esforço, e os matemáticos são muitas vezes cético em relação as técnicas de base (tipo de teoria, construtiva, matemática, etc.) Mas existem alguns campos onde os principais pesquisadores são muito confortáveis para fazer grandes desenvolvimentos formalizado em uma prova de assistente, como categoria de teoria, linguagem de programação teoria, a lógica formal, etc.Então eu acho que não é tanto uma questão cultural como inerente a viabilidade problema.

    O outro motivo é que, até agora, a maioria das supostas "provas" foram por manivelas, que não querem formalizar o seu resultado, pois, inevitavelmente, revelar as falhas.

  2. Não é difícil para o estado P vs.NP em uma prova de assistente.Pode-se usar Máquinas de Turing, mas provavelmente seria mais fácil para um modelo simples de Turing-completa linguagem de programação usando indutivo famílias para pequenas modelo-etapa semântica, e definir o tempo de execução como o número de passos que um programa leva.Você pode definir $P$ como os idiomas aceitos pelo programas de parar em um polinˆ omio número de passos, e $NP$ como os idiomas que podem ser verificados em polytime com um polinômio de certificado de comprimento.

    EDITAR:Acontece existem técnicas existentes para mostrar que executar algoritmos em tempo polinomial em um provador de teorema.Por isso, esta pode ser utilizada para mostrar um polytime algoritmo para uma NP-difícil problema, ou para derivar uma contradição da existência de um tal algoritmo.

  3. toneladas de software que é capaz de verificar tal prova, desde a prova foi escrito usando o software.Os dois candidatos, eu ia colocar o maior estoque em são Coq e Lean.Coq, em particular, tem sido usada para verificar vários grandes resultados em matemática.

Outras dicas

Usar os assistentes de prova para este propósito é certamente possível, em princípio, mas eu suspeito que levaria mais esforço do que a maioria das pessoas que escrevem essas provas estariam interessadas em colocar dentro. Isso exigiria uma quantidade substancial de esforço do autor de pretendido p vs np prova para formalizar sua prova.

Traduzindo uma prova escrita para os humanos em um formato que uma prova de assistente pode verificar era tediosa e demorada. Eu vi estimativas entre um dia a uma semana de esforço por página da prova escrita humana. Então, é preciso também formalizar todos os resultados anteriores que a prova está sendo construída. Quando olhamos para tentativas recentes de provar p vs np, eles normalmente usam muitos maquinaria avançada e resultados pré-existentes sofisticados de papéis anteriores, que precisariam ser formalizados também.

Por causa disso, espero que seja completamente impraticável formalizar tanto a proposta nova prova e as provas de todos os resultados anteriores que dependem, para os tipos de provas suportadas que vimos até agora. Como User21820 aponta, o que seria mais prático seria formalizar apenas a declaração de todos os resultados anteriores que são invocados, mas não sua prova. Assim, em vez de provar o teorema $ t $ , formalizamos uma prova de que $ (x \ terra y \ terra \ CDOts) \ Implique T $ , onde $ x, y, \ pontos $ são os resultados anteriores que a prova depende. Isso fica aquém de verificar completamente o resultado da completude NP, mas se as pessoas têm fé nos resultados anteriores, permitiria que as pessoas ganhassem confiança no novo resultado. Isso seria muito mais realista do que formalizar toda a prova de $ t $ : enquanto levaria algum esforço para formalizar todos os resultados anteriores $ x, y, \ pontos $ , é muito menos do que o esforço para formalizar as provas dos resultados anteriores também.

Ainda assim, seria um desafio e exigiria uma despesa não trivial de esforço para formalizar uma prova, mesmo com este truque.

Você pode analisar as bibliotecas existentes de teoremas em matemática e ciência da computação que foram formalizadas e formalmente verificadas: ver http://us.metamath.org/ e http://formalmath.org/ e https://www.sa-afp.org/topics.html e http://mizar.org/library/ . Você pode notar que muito do que é formalizado, há um material de graduação básica. Estamos longe de formalizar todos os teoremas ensinados em um nível de graduação, muito menos aqueles ensinados em um nível de pós-graduação, muito menos novos resultados de pesquisa.

Para mais fundo, consulte https://math.stackexchange.com/q/792010/14578 e https://math.stackexchange.com/q/113316/14578 e https://math.stackexchange.com/q/1767070/14578 e https://math.stackexchange.com/q/2747661/14578 e http://www.ams.org/notices/200811/TX081101370P.PDF .

I can give a direct answer to (2): $P\ne NP$ has been stated in Lean (along with the other main results of Cook's paper, where the conjecture was first described), as part of the Formal Abstracts project.

I believe your question is not that much of a proper theory question, so with your permission I'll give it a not-so-technical answer.

Why are people not using proof assistants that could verify whether a proof of P vs. NP is correct?

Because CS theorists rarely (perhaps extremely rarely) write proofs in machine-verifiable form.

How hard or how much effort would it be to state P vs. NP in a proof assistant in the first place?

Very hard at least in the "uninteresting" sense that @DW explained; but it could be anywhere from easy to impossible in the "interesting" sense of expressing the concepts in a proof, if it were to exist.

But you know, this will never happen because:

  1. Until a proof is found it can't be done anyway
  2. You have to know the proof like the back of your hand to convert it into machine-verifiable form.
  3. ... and when enough people know the proof, they will either have found a flaw or be satisfied that it's valid and not care about machine-checking it.

Is there currently any software that would be at least in principle capable of verifying a P vs. NP proof?

I'm not well-versed enough in proof verification software to comment about what's actually implemented, but it's probably nearly-impossible to answer your question, because - who knows what form such a proof will take? And thus - how would you know, now, if it's expressible in such a way that your proof verifier can process?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a cs.stackexchange
scroll top