Quais algoritmos são conhecidos para calcular os interpolantes de Craig?


19

Existe alguma pesquisa de algoritmos para computar interpolantes? E os trabalhos em apenas um algoritmo? O caso em que estou mais interessado é em e C = q , além da restrição de que o interpolante seja o menor possível. (Conheço o artigo de McMillan de 2005 , que descreve como obter interpolantes, evitando quantificadores.)UMA=¬pqC=q

Antecedentes: interpolação de Craig teorema (1957) afirma que se , onde A é um ( fol fórmula na) t A e C é uma fórmula de t C , em seguida, existe uma fórmula B tal que t Um Um B e T C B C . A Fórmula B é um interpolante Craig de A e CTUMATCUMACUMATUMACTCBTAABTCBCBAC(ou, em definições alternativas, de e ¬ C ). Um interpolante trivial de ¬ p q e q é q , mas eu quero um interpolante pequeno , para alguma definição razoável de 'pequeno' (como tamanho sintático). (Os interpoladores têm muitos usos e, caso você esteja curioso, aqui está um .)A¬C¬pqqq

Motivação: Isso seria útil na verificação (muito) incremental do programa via geração de condição de verificação.


Existem vários resultados sobre a complexidade de encontrar o interpolante de uma determinada prova em vários sistemas de provas. Em alguns sistemas de prova fracos, é possível encontrar o interpolante com eficiência (e então dizemos que o sistema de prova satisfaz a propriedade de interpolação viável), mas sistemas mais fortes não têm essa propriedade assumindo hipóteses plausíveis em criptografia. Eu curto, o algoritmo para encontrar a interpolação depende do sistema prova ser usado para mostrar . AC
Kaveh

Eu devo estar esquecendo alguma coisa. O interpolante trivial tem tamanho 1. Como pode ser menor? q
Emil Jeřábek apoia Monica

@ EmilJeřábek: e q são uma meta-variáveis, que representam fórmulas. Por exemplo, é possível ter p ( ( x = 1 ) p r i m e ( x ) ) e q ( ( x = 1 ) o d d ( x ) ) , caso em que f um l s e é um bom interpolante de ¬ p qpqp((x=1 1)prEume(x))q((x=1 1)odd(x))false¬pqe , porque ¬ p q é insatisfatório. No meu aplicativo, p é uma condição de verificação antiga e q é a condição de verificação obtida após a edição do programa. q¬pqpq
Radu GRIGore

Entendo. Estou bastante confuso com a notação. Existe uma razão pela qual são minúsculas e A , B , C maiúsculas? p,qUMA,B,C
Emil Jeřábek apoia Monica

Respostas:


16

Dê uma olhada na tese de doutorado de Himanshu Jain , verificação usando verificação de satisfação, abstração de predicados e interpolação de Craig . Ele considera o desempenho de várias técnicas fundamentais, de olho nas aplicações em verificação, e possui um capítulo sobre interpolação de fórmulas envolvendo equações lineares e diofantinas.

Ele dá uma olhada particular no que eu conheço como método de conexão de Bibel e que ele chama de General Matings. Estas são abordagens baseadas em gráficos, em vez de baseadas em inferência de fórmula, para a satisfação. Se você está interessado neles em geral, deixe-me recomendar as provas razoavelmente curtas (11 páginas) de Dominic Hughes sem sintaxe .


8

Curiosamente, há uma conexão entre eliminação de cortes e o teorema da interpolação. Primeiro de tudo, o teorema da interpolação parece um reverso da eliminação da regra de mistura usada durante a eliminação do corte. Esta eliminação diz:

If G |- A and D, A |- B are cut-free proofs,  
then there is a cut-free proof G, D |- B

Agora, uma forma de teorema de interpolação baseada em provas sem cortes pode ser feita da seguinte maneira. É a versão invertida da eliminação. Começa com G, D | - B e fornece G | - A e D, A | - B:

If G; D |- B is a cut free proof,  
then there is a formula A (the interpolant) 
and cut free proofs G |- A and D, A |- B,  
and A uses only propositions simultaneously from G and D

Coloquei de propósito um ponto-e-vírgula entre as premissas G e D. É aqui que traçamos a linha, quais premissas queremos ver como entregando o interpolante e quais premissas queremos ver usando o interpolante.

Quando a entrada é uma prova de corte livre, o esforço do algroitmo é proporcional ao número de nós da prova de corte livre. Portanto, é prático um método linear na entrada. A cada etapa da prova livre de corte, o algoritmo monta o interpolante, introduzindo um novo conectivo.

A observação acima é válida para a construção de interpolação simples, onde exigimos apenas que o interpolante tenha proposições simultaneamente de G e D. Interpolantes com uma condição variável requerem um pouco mais de etapas, uma vez que também é necessário fazer alguma proteção variável.

Provavelmente, há uma conexão entre a minimalidade da prova livre de corte e o tamanho do interpolante. Nem todas as provas sem cortes são mínimas. Por exemplo, provas uniformes são geralmente mais curtas que provas sem cortes. O lema para provas uniformes é bastante simples, uma aplicação de regra da forma:

 G |- A       G, B |- C
 ----------------------
     G, A -> B |- C

Pode ser evitado quando B não é usado na prova de C. Quando B não é usado na prova de C, já temos G | - C e, assim, enfraquecendo G, A -> B | - C. A interpolação algoritmo mencionado aqui, não prestará atenção nisso.

Cumprimentos

Referências: Teorema da interpolação de Craig formalizado e mecanizado em Isabelle / HOL, Tom Ridge, Universidade de Cambridge, 12 de julho de 2006 http://arxiv.org/abs/cs/0607058v1

A referência acima não mostra exatamente a mesma interpolação, pois usa vários conjuntos na parte final de um sequente. Também não faz uso de implicação. Mas é interessante, pois suporta minha reivindicação de complexidade e mostra uma verificação mecanizada.


Jan, você pode usar a matemática no estilo LaTeX na história.
Kaveh 15/05

8

Já se passaram mais de dois anos desde que essa pergunta foi feita, mas nesse período houve mais trabalhos publicados sobre algoritmos para calcular os interpolantes de Craig. Esta é uma área de pesquisa muito ativa e não é viável fornecer uma lista abrangente aqui. Eu escolhi artigos bastante arbitrariamente abaixo. Sugiro seguir os artigos que os referenciam e ler as seções de trabalho relacionadas para obter uma imagem clara da paisagem.

  1. Geração Interpolante Eficiente em Teoria do Módulo de Satisfação , Alessandro Cimatti, Alberto Griggio, Roberto Sebastiani, ACM TOCL, 2010.

    Abrange a interpolação para aritmética racional linear, lógica de diferença racional e número inteiro e lógica da Unidade Duas Variáveis ​​por Desigualdade (UTVPI).

  2. Geração interpolante eficiente em satisfação Aritmética de módulo inteiro linear , Alberto Griggio, Thi Thieu Hoa Le e Roberto Sebastiani. 2010.

  3. Um método de combinação para geração de interpolantes , Greta Yorsh e Madanlal Musuvathi. 2005.

    Mostra como gerar interpolantes na presença da combinação da teoria de Nelson-Oppen.

  4. Interpolação de solo para a teoria da igualdade , Alexander Fuchs, Amit Goel, Jim Grundy, Sava Krstic, Cesare Tinelli. 2011.

  5. Interpolação completa baseada em instanciação , Nishant Totla e Thomas Wies. 2012.

  6. Interpolantes como Classificadores , Rahul Sharma, Aditya V. Nori e Alex Aiken, 2012.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.