Quali algoritmi sono noti per il calcolo degli interpolanti Craig?


19

Esiste un sondaggio sugli algoritmi per gli interpolanti informatici? Che dire dei documenti su un solo algoritmo? Il caso che mi interessa di più è e , più il vincolo che l'interpolante è il più piccolo possibile. (Conosco il documento di McMillan del 2005 , che descrive come ottenere interpolanti, evitando quantificatori.)A=¬pqC=q

Background: il teorema di interpolazione di Craig (1957) dice che se , dove è una formula ( fol ) in e è una formula di , allora esiste una formula tale che e . La formula è un interpolante Craig di e (o, in definizioni alternative, di e ). Un banale interpolante di e èTATCACATACTCBTAABTCBCBACA¬C¬pqqq , ma voglio un piccolo interpolante, per una ragionevole definizione di "piccolo" (come la dimensione sintattica). (Gli interpolanti hanno molti usi e, nel caso tu sia curioso, eccone uno .)

Motivazione: ciò sarebbe utile nella verifica (molto) incrementale del programma tramite la generazione delle condizioni di verifica.


Ci sono vari risultati sulla complessità di trovare l'interpolante da una data prova in vari sistemi di prova. In alcuni sistemi di prove deboli è possibile trovare l'interpolante in modo efficiente (e quindi diciamo che il sistema di prove soddisfa la proprietà di interpolazione fattibile) ma i sistemi più forti non hanno questa proprietà assumendo ipotesi plausibili in criptovaluta. I breve, l'algoritmo per trovare l'interpolante dipende dal sistema a prova viene utilizzato per mostrare . AC
Kaveh,

Mi manca qualcosa. Il banale interpolante ha dimensione 1. Come può essere più piccolo? q
Emil Jeřábek sostiene Monica il

@ EmilJeřábek: e q sono una meta-variabili, che si distinguono per le formule. Ad esempio, potresti avere p ( ( x = 1 ) p r i m e ( x ) ) e q ( ( x = 1 ) o d d ( x ) ) , nel qual caso f a l s e è un buon interpolante di ¬ p qpqp((x=1)prime(x))q((x=1)odd(x))false¬pqe , perché ¬ p q non è soddisfacente. Nella mia applicazione, p è una vecchia condizione di verifica e q è la condizione di verifica ottenuta dopo che il programma è stato leggermente modificato. q¬pqpq
Radu GRIGore,

Vedo. Sono abbastanza confuso dalla notazione. C'è un motivo per cui sono in minuscolo e A , B , C in maiuscolo? p,qA,B,C
Emil Jeřábek sostiene Monica

Risposte:


16

Dai un'occhiata alla tesi di dottorato di Himanshu Jain , Verifica usando il controllo di soddisfazione, astrazione predicata e interpolazione Craig . Considera le prestazioni di diverse tecniche fondamentali tenendo conto delle applicazioni in fase di verifica e ha un capitolo sull'interpolazione di formule che coinvolgono equazioni lineari e diottantine.

Dà uno sguardo particolare a quello che conosco come metodo di connessione di Bibel e che chiama General Matings. Questi sono approcci alla soddisfacibilità basati su grafici, piuttosto che su formule di inferenza. Se siete interessati a loro in generale, lasciatemi raccomandare le prove ragionevolmente brevi (11 pagine) di Dominic Hughes senza sintassi .


8

È interessante notare che esiste una connessione tra l'eliminazione del taglio e il teorema di interpolazione. Innanzitutto il teorema di interpolazione sembra un rovescio dell'eliminazione della regola di miscelazione usata durante l'eliminazione del taglio. Questa eliminazione dice:

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

Ora una forma di teorema di interpolazione basata su prove prive di taglio, può essere fatta come segue. È la versione capovolta dell'eliminazione. Inizia con G, D | - B e dà 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

Metto di proposito un punto e virgola tra le premesse G e D. Qui è dove tracciamo la linea, quali premesse vogliamo vedere come consegna dell'interpolante e quali premesse vogliamo vedere usando l'interpolante.

Quando l'input è una prova senza taglio, lo sforzo dell'algroitmo è proporzionale al numero di nodi della prova senza taglio. Quindi è pratico un metodo lineare nell'input. Ad ogni passaggio di prova della prova senza taglio, l'algoritmo assembla l'interpolante introducendo un nuovo connettivo.

L'osservazione di cui sopra vale per la semplice costruzione dell'interpolazione, in cui richiediamo solo che l'interpolante abbia proposizioni simultaneamente da G e D. Gli interpolanti con una condizione variabile richiedono un po 'più di passaggi, poiché è necessario eseguire anche alcuni hinding variabili.

Probabilmente esiste una connessione tra la minimalità della prova senza taglio e la dimensione dell'interpolante. Non tutte le prove senza tagli sono minime. Ad esempio, le prove uniformi sono spesso più brevi delle prove senza tagli. Il lemma per prove uniformi è abbastanza semplice, un'applicazione di regole del modulo:

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

Può essere evitato, quando B non è usato nella dimostrazione di C. Quando B non è usato nella dimostrazione di C, abbiamo già G | - C, e quindi indebolendo G, A -> B | - C. L'interpolazione l'algoritmo menzionato qui, non presterà attenzione a questo.

I migliori saluti

Riferimenti: Teorema di interpolazione di Craig formalizzato e meccanizzato a Isabelle / HOL, Tom Ridge, Università di Cambridge, 12 lug 2006 http://arxiv.org/abs/cs/0607058v1

Il riferimento di cui sopra non mostra esattamente la stessa interpolazione, poiché utilizza multi-set nella parte conclusiva di un sequence. Inoltre non fa uso di implicazioni. Ma è interessante poiché supporta la mia richiesta di complessità e poiché mostra una verifica meccanizzata.


Jan, puoi usare la matematica in stile LaTeX su cstheory.
Kaveh,

8

Sono passati più di due anni da quando questa domanda è stata posta, ma a quel tempo, sono stati pubblicati più articoli sugli algoritmi per il calcolo degli interpolanti Craig. Questa è un'area di ricerca molto attiva e non è possibile fornire un elenco completo qui. Ho scelto articoli piuttosto arbitrariamente di seguito. Suggerirei di seguire gli articoli che li citano e di leggere le relative sezioni di lavoro per ottenere un quadro chiaro del paesaggio.

  1. Generazione efficiente di interpolanti nella teoria dei moduli , Alessandro Cimatti, Alberto Griggio, Roberto Sebastiani, ACM TOCL, 2010.

    Copre l'interpolazione per l'aritmetica razionale lineare, la logica della differenza razionale e intera e la logica dell'Unità Due variabili per disuguaglianza (UTVPI).

  2. Generazione efficiente di interpolanti in termini di soddisfazione Modulo Linear Integer Arithmetic , Alberto Griggio, Thi Thieu Hoa Le e Roberto Sebastiani. 2010.

  3. Un metodo di combinazione per generare interpolanti , Greta Yorsh e Madanlal Musuvathi. Del 2005.

    Mostra come generare interpolanti in presenza della combinazione della teoria di Nelson-Oppen.

  4. Interpolazione di base per la teoria dell'uguaglianza , Alexander Fuchs, Amit Goel, Jim Grundy, Sava Krstic, Cesare Tinelli. 2011.

  5. Interpolazione completa basata sull'istanza, Nishant Totla e Thomas Wies. 2012.

  6. Interpolanti come classificatori , Rahul Sharma, Aditya V. Nori e Alex Aiken, 2012.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.