Introduzione alla verifica logica del primo ordine


9

Sto cercando di insegnarmi diversi approcci alla verifica del software. Ho letto alcuni articoli. Per quanto ho appreso, la logica proposizionale con temporale generalmente usa il controllo del modello con solutori SAT (nei sistemi in corso - reattivi), ma che dire della logica del primo ordine con temporale? Usa i dimostratori di teoremi? O può anche usare SAT?

Qualsiasi suggerimento su libri o articoli per principianti in questa materia è molto apprezzato.


2
Prima di tutto benvenuti in CS: SE. Anche se non sono un esperto in questo, sembra che tu stia afferrando diversi argomenti contemporaneamente lasciando molti buchi. Non ti preoccupare; Lo faccio tutto il tempo. Date un'occhiata al software di verifica poi verifica formale quindi il controllo del modello e formale del software di verifica: Controllo per modello e Teorema Proving
Guy Coder

Risposte:


9

La logica del primo ordine è indecidibile, quindi la risoluzione SAT non aiuta davvero. Detto questo, esistono tecniche per il controllo del modello limitato delle formule del primo ordine. Ciò significa che è possibile considerare solo un numero fisso di oggetti quando si cerca di determinare se la formula è vera o falsa. Chiaramente, questo non è completo, ma se viene trovato un contro-esempio, allora è davvero un contro-esempio.

Lo strumento Lega è uno strumento che consente di descrivere i modelli nella logica del primo ordine (sebbene la sintassi della superficie sia basata su modelli descritti relazionalmente) e utilizza il controllo del modello limitato per trovare soluzioni. Un solutore SAT viene utilizzato sotto il cofano. Un'estensione in lega consente modelli con un carattere temporale, sebbene tecnicamente non supporti la logica temporale.

Se si desidera esplorare ulteriormente, ad esempio, per verificare la correttezza del programma, è possibile consultare gli strumenti di verifica del programma. Questi sono generalmente basati sulla logica Hoare (per il ragionamento su pre e post-condizioni), eventualmente estesa con la logica di Separazione (per ragionare sui cumuli). Queste logiche sono generalmente indecidibili, quindi è richiesta una certa interazione tra lo strumento umano e lo strumento di verifica. Alcuni strumenti di esempio sono:


10

Dopo aver letto la tua domanda, l'unico modo per vedere e avere abbastanza conoscenze per legare gli argomenti era quello di fornire una serie di articoli di alto livello che analizzassero dalla verifica del software alla fine cercando di unire la verifica del modello e la dimostrazione del teorema. Spero che il mio commento abbia fatto questo:

Date un'occhiata al software di verifica quindi formale di verifica , allora il controllo del modello e formale di verifica del software: Controllo per modello e teoremi

Dave ha dato una buona risposta per la quale non posso rendere molto più giustizia alla prima parte della domanda rispetto a Dave, dal momento che sono anche nuovo a questo.

Poiché questa è la tua prima domanda in un sito SE , il motivo per cui non ho dato una risposta ma un commento è perché qui una risposta non può essere solo un insieme di collegamenti, ma deve dare una risposta scritta e utilizzare i collegamenti a supporto della risposta; quindi un commento invece di una risposta.

Per quanto riguarda:

Qualsiasi suggerimento su libri o articoli per principianti in questa materia è molto apprezzato.

I libri che suggerirei e che uso sono:

Al momento non posso approfondire ulteriormente la dimostrazione del teorema perché sto ancora imparando i pro / contro e le differenze di ciascuno, ma quelli su cui mi sto concentrando sono

  • HOL Light a causa del libro di John Harrison.
  • Coq perché si basa sul calcolo delle costruzioni
  • Isabelle perché si basa sull'unificazione di ordine superiore.

    Questi assistenti di prova in genere hanno anche libri, sono attuali, popolari, open source, gestiti e hanno comunità di supporto attivo.

Nota: ho usato worldcat.org per fare riferimento ai libri, ma puoi rivederli utilizzando la funzione interna di Amazon.


Per evitare molte modifiche alla risposta, lascerò cadere le informazioni aggiunte come commenti e in futuro le arrotolerò nella risposta. Per aver cercato di risolvere le molte somiglianze e differenze tra gli assistenti di prova. Google per Freek Wiedijk; Trovo che i suoi documenti siano abbastanza utili.
Guy Coder,

Mille grazie per la risposta dettagliata e approfondita. Per aggiungere i tuoi commenti sui libri e fornire un link al libro gratuito. Ancora una volta, non posso ringraziarti abbastanza :-)
FELIPE N.
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.